Bagaimana cara Anda memeriksa pustaka sumber terbuka Anda untuk keystroke logger?

8

Orang acak di internet memberi tahu saya bahwa suatu teknologi aman (1), aman digunakan dan tidak mengandung keyloggers karena bersifat open source. Sementara saya dapat dengan mudah mendeteksi stroke logger kunci dalam aplikasi open source ini , apa yang dapat dilakukan pengembang (2) untuk melindungi diri terhadap pemerah rouge terhadap proyek open source?

Melakukan analisis belakang amplop ancaman, jika saya adalah seorang pengembang nakal, saya akan bercabang cabang di git dan mempromosikan unduhan itu karena akan memiliki dukungan twitter (dan kunci logger stroke rahasia). Jika itu repo SVN, saya buat saja buat proyek baru. Yang lebih baik adalah memasukkan kode berbahaya ke dalam rutinitas pembaruan otomatis.

(1) Saya tidak akan menyebutkan yang mana karena saya hanya bisa berurusan dengan satu jenis fanatik pada satu waktu.

(2) Pengguna awam berada pada belas kasihan perangkat lunak pendeteksi virus dan malware mereka - tidak masuk akal jika nenek membaca sumber kode kode sumber pengolah kata open source mereka untuk menemukan keystroke logger.

MatthewMartin
sumber

Jawaban:

7

Baru-baru ini saya memiliki kesempatan untuk melakukan analisis keamanan perangkat lunak pada FileZilla, emule, dan Shareaza. Saya menjalankan kode melalui cppcheck, RATS, dan ITS4. Tidak ada alat yang dapat membedakan apakah suatu kode jinak atau berbahaya. Ini membutuhkan inspeksi visual - yang saya lakukan. Saya menghabiskan dua minggu memeriksa setiap baris kode sumber setiap baris. Saya mungkin melewatkan sesuatu. Itu sebabnya pekerjaan saya didukung oleh orang lain yang juga menemukan hal yang sama atau lebih daripada saya. Misalnya, FileZilla menggunakan skrip PHP untuk menentukan alamat IP eksternal Anda ketika dalam mode PASV. Apa yang dilakukan skrip PHP itu? Siapa yang benar-benar tahu? Saya melihat poin Anda dan poin diambil dengan baik. Bergantung pada strategi Anda, Anda harus mengambil strategi mitigasi risiko dan memeriksa sumbernya sendiri atau menyewa konsultan luar. Dengan begitu Anda akan memastikan bahwa perangkat lunaknya aman.

Brian
sumber
Bagaimana dengan emule? Sangat tertarik untuk mengetahui hal-hal nakal apa yang dilakukan.
@Mouth of a Cow: Menelepon beberapa skrip php luar seperti di Emule.h pada Baris 27: " porttest.emule-project.net/connectiontest.php ". Panggilan ke alat pemutakhiran versi luar di WebServer.cpp. Banyak kesalahan pemrograman, potensi buffer overflows, kerentanan LoadLibrary, kerentanan ShellExecute, dll.
Brian
Apakah Anda elektron mikroskop chip di keyboard buatan Cina Anda? Haruskah Anda jika Anda seorang kontraktor pertahanan?
Martin Beckett
@ Martin: Tergantung pada seberapa aman Anda ingin menjadi saya kira.
Brian
@ MartinBeckett Harus diakui, kecuali jika pengemudi bekerja sama, chip seperti itu tidak akan menghasilkan banyak. Saya kira itu bisa mencoba untuk terhubung ke WiFi tanpa jaminan, tapi saya merasa seperti itu pasti akan diperhatikan pada akhirnya.
Llamageddon
5

Ini termasuk dalam kategori "trust it, the open source". Jika cukup banyak orang yang melihat kode proyek, tidak mungkin ada orang yang bisa lolos dari kesalahan. Juga, lihat reputasi partai yang mendukung proyek. Apakah itu J. Random Coder, atau Apache Software Foundation? Jelas semakin kecil basis kode semakin sulit untuk memasukkan sesuatu. Dan apakah proyek open source tergantung pada perpustakaan eksternal yang bukan open source? Jika sebuah proyek adalah cabang khusus dari proyek tidak jelas yang dihosting di situs web yang tidak dikenal ... yah.

Juga, saya tidak akan khawatir secara khusus tentang keyloggers, tetapi lebih banyak keamanan secara umum. Ini termasuk pelanggaran keamanan yang tidak disengaja, yang jauh lebih mungkin terjadi dalam proyek kecil. Di luar rumah, privasi yang diimplementasikan dengan buruk, dan akses yang diperlukan ke sistem adalah semua risiko yang lebih mungkin daripada keylogger yang disengaja.

Mike Miller
sumber
3

Pengembang dapat mencegah komuter nakal ke proyek open source mereka dengan tidak memberikan hak istimewa kepada semua orang dan penguin mereka. Prinsip pembeda dari Perangkat Lunak Bebas / Open Source bukanlah bahwa pengembangan bersumber dari orang banyak (walaupun bisa jadi) tetapi bahwa mungkin untuk melakukan fork proyek.

Orang yang mengunduh perangkat lunak perlu melakukan sedikit perawatan, dan itu juga berlaku untuk F / OSS maupun perangkat lunak sumber tertutup. Perangkat lunak yang Anda dapatkan dari sumber yang memiliki reputasi baik biasanya (dalam kedua kasus); perangkat lunak dari fly-by-night lebih cenderung memiliki malware.

David Thornley
sumber
0

Ini tidak seperti siapa pun yang memiliki akses komit ke proyek open source apa pun. Dan bahkan jika seseorang melakukan kode berbahaya, itu dapat ditemukan karena sumbernya publik. Jika Anda tidak mempercayai manajer proyek, Anda selalu dapat mempekerjakan seseorang seperti 0A0D untuk memeriksa kode untuk Anda. Itu tidak sempurna, tetapi lebih baik daripada alternatifnya;

Untuk proyek sumber tertutup, Anda hanya perlu mempercayai pemasok. Bagaimana Anda tahu bahwa tidak ada pintu belakang di perangkat lunak sumber tertutup? Kamu tidak. Kode berbahaya dapat ditambahkan oleh karyawan yang tidak puas, seseorang yang mencari cara untuk menghasilkan uang, petugas kebersihan jahat yang kebetulan memiliki akses ke penyimpanan perusahaan ... Dalam perangkat lunak sumber tertutup, tidak ada cara untuk mengetahui.

Martin Vilcans
sumber
Saya ada dalam pikiran open source seperti dalam source forge dan github, bukan open source seperti yang dipublikasikan. Jika ada vendor, Anda memiliki kepastian bahwa kode tersebut tidak berbahaya karena Anda dapat membawa pemasok yang dikenal ke pengadilan dan mendapatkan ganti rugi perdata dan hukuman pidana. Proyek open source adalah sekumpulan kontributor anonim yang tidak bisa Anda bawa ke pengadilan, atau jika Anda melakukannya, mereka tidak akan rugi banyak. Bagaimanapun, jika pelaku yang tidak puas dan jahat ada di mana-mana, maka kode sumber pihak ketiga yang tertutup dan terbuka sama-sama berbahaya untuk digunakan.
MatthewMartin
Open source adalah merek dagang, jadi ketika saya mengatakan open source saya maksudkan dengan definisi OSI. Tapi ada vendor, bahkan untuk perangkat lunak open source. Saya tidak tahu apakah vendor dapat mengklaim tidak bertanggung jawab atas kode yang jelas-jelas berbahaya, tetapi sebagian besar proyek open source mencoba karena lisensi sering berisi klausul "tidak ada jaminan".
Martin Vilcans