Bagaimana cara mendeteksi dan menghapus trojan Linux?

16

Saya baru-baru ini (kembali) menemukan ini:

Ya, saya tahu bahwa menambahkan beberapa PPA / perangkat lunak acak dari sumber yang tidak terpercaya meminta masalah (atau lebih buruk). Saya tidak pernah melakukan itu, tetapi banyak yang melakukannya (banyak blog dan tabloid Linux mempromosikan penambahan PPA untuk aplikasi mewah, tanpa peringatan bahwa itu dapat merusak sistem Anda atau lebih buruk lagi, membahayakan keamanan Anda.)

Bagaimana kuda trojan atau aplikasi / skrip jahat dapat dideteksi dan dihapus?

iamsid
sumber
Saya telah mengajukan pertanyaan yang sama (3 menit setelah saya bertanya di sini) di: askubuntu.com/questions/13265/… Beritahu saya jika ini merupakan pelanggaran, saya akan menghapus salah satunya.
iamsid
2
Pertukaran ini umumnya berkecil accross Stack Efek , bahkan untuk situs yang memiliki domain tumpang tindih , tetapi tidak ada kebijakan resmi di sisi unix.SE .
Gilles 'SO- stop being evil'

Jawaban:

20

Tidak ada resep umum. Jika sistem Anda telah terinfeksi oleh trojan tidak dikenal, yang dapat Anda lakukan adalah menginstal ulang.

Jika Anda tahu bahwa trojan beroperasi dengan cara tertentu - misalnya Anda tahu bahwa trojan tidak menginfeksi kernel - mungkin ada cara yang kurang keras untuk memulihkan. Tapi itu sepenuhnya tergantung pada mengetahui bagaimana perilaku trojan. Jika yang Anda miliki hanyalah gejalanya (seperti komputer Anda mengirim spam tanpa persetujuan Anda), tidak ada teknik umum: detektor trojan harus lebih pintar daripada perancang trojan (dan beruntung). Sejauh menyangkut trojans, deteksi dan persembunyian seperti senjata dan baju besi: ada peningkatan teknologi, dan tidak ada pihak yang memiliki keunggulan intrinsik (meskipun penyembunyi memiliki kepala permulaan).

Banyak sistem memiliki saluran distribusi yang aman. Misalnya, ketika Anda menginstal paket dari repositori Ubuntu dengan alat berbasis apt (apt-get, aptitude, synaptic, pusat perangkat lunak, ...), alat memeriksa apakah paket tersebut ditandatangani (diperiksa) oleh seseorang yang dipercaya oleh Ubuntu. (Sebagian besar distribusi memiliki mekanisme yang sama.) Ketika Anda menginstal paket dari PPA, yang dapat Anda ketahui adalah bahwa pemilik PPA memeriksa paket tersebut, yang tidak membantu jika Anda tidak memiliki alasan untuk mempercayai pemilik PPA sejak awal.

Tentang trojan dan pintu belakang, saya sangat merekomendasikan membaca ceramah penghargaan Turing Ken Thompson , Reflections on Trusting Trust . Untuk meringkas, dia mengubah kompiler sehingga ketika menyusun program login, itu akan menambahkan kode yang memungkinkan dia untuk masuk dengan kata sandi rahasia; kemudian dia mengubah kompiler sehingga ketika dikompilasi sendiri, itu akan memasukkan kode untuk menambahkan backdoor; kemudian dia mengkompilasi ulang seluruh sistem (khususnya program login dan kompiler); akhirnya ia mengembalikan sumber kompiler ke sumber asli yang tidak perlu dipertanyakan lagi. Sekali lagi, baca artikel Ken Thompson ; maka Anda juga dapat membaca tandingan David Wheeler , mungkin sebaiknya dipahami melalui artikel blog Bruce Schneier .

Gilles 'SANGAT berhenti menjadi jahat'
sumber
+1 untuk jawaban deskriptif dan untuk merekomendasikan artikel-artikel itu: mereka memperluas pengetahuan saya. Terima kasih.
iamsid
7

Jika saya mengerti benar "trojan" yang dijelaskan dalam artikel ini tidak dapat ditemukan dengan cara "normal" sebagai malware "normal". IRCd ini berlaku normal sampai ia digunakan, jadi administrator dapat menemukan lubang keamanan ini hanya ketika: 1) digunakan dan tindakan yang dibuat oleh lubang ini menyebabkan entri dalam log atau terlihat dengan cara lain, 2) membaca kode sumber.

Malware Linux "asli" juga harus terdeteksi oleh perangkat lunak AV untuk Linux atau AV LiveCD Rescue Disks, sehingga Anda dapat memindai komputer menggunakan perangkat lunak ini. Seperti yang Anda lihat di SecureList daftar dalam daftar ada 1941 dengan Linux dalam nama dan perangkat lunak yang harus dideteksi oleh perangkat lunak Kaspersky. Lihat cepat ke daftar ini menunjukkan bahwa banyak entri adalah tentang beberapa alat DDoS dan eksploitasi atau alat yang tidak dapat menyebar secara otomatis dan hanya dapat digunakan sebagai alat untuk menyerang (jadi tidak berbahaya).

Untuk memeriksa backdoors / rootkit yang diinstal oleh cracker Anda dapat menggunakan alat yang memeriksa checksum file (Anda harus membuat daftar file dan checksum pada sistem yang bersih dan memperbaruinya setelah pembaruan perangkat lunak server). Setiap file baru atau file dengan checksum yang salah mencurigakan. Daftar checksum dan alat yang menghasilkannya harus di media hanya baca (cracker juga dapat mengubah misalnya md5sum untuk versi itu sendiri yang menunjukkan checksum yang salah). Cara menemukan malware ini dapat digunakan pada sistem 'stabil' di mana perangkat lunak tidak diperbarui setiap hari.

Beberapa malware dapat dideteksi dengan menjalankan netstatsecara lokal untuk memeriksa lalu lintas jaringan, tetapi jika sistem data yang terinfeksi ditunjukkan oleh netstatjuga dapat diubah. Dalam hal ini beberapa solusinya adalah memonitor lalu lintas jaringan dari komputer lain (misalnya dari router, untuk memeriksa lalu lintas apa yang dikirim ke internet).

pbm
sumber
4

SELinux dan AppArmor ada untuk pencegahan trojan / rootkit dan infeksi lainnya. Saya memberi tahu kasing untuk SELinux, yang saya tahu lebih baik. Dengan SELinux diaktifkan, Anda memberikan konteks untuk semua proses (termasuk daemon) yang Anda instal pada mesin. Anda juga memberi label pada sistem file untuk bekerja dengan konteksnya, mencocokkannya. Ketika suatu proses mencoba melakukan sesuatu yang tidak dalam konteksnya, Anda menerima pesan, dan, jika SELinux dalam mode penegakan, tindakan tidak dapat menyelesaikan. Saya tahu itu sulit untuk dikonfigurasikan, tetapi mesin saya bekerja dengan SELinux yang diberlakukan sekarang, dan (dua) laptop Fedora saya dapat melakukan apa saja yang dibutuhkan desktop tanpa terlalu banyak kesulitan. Bahkan server rumah saya sekarang dalam mode menegakkan.
Dengan cara ini, jika trojan ircd Anda bersedia untuk menimpa perintah ps atau sesuatu yang lain (strategi umum untuk trojan / rootkit / worm untuk menghindari deteksi), saya tidak akan diizinkan untuk melakukan itu. Dan Anda akan diberi tahu.


Strategi lain adalah menjalankan pendeteksi rootkit secara teratur yang menghitung checksum untuk perintah-perintah cirtical, dan memberi tahu Anda tentang perubahan dalam perintah-perintah dasar.
Saya bekerja dengan baik SELinux dan rkhunter diaktifkan (plus antivirus clamav).

Salam

lucabotti
sumber
2

Tanggapan lain menyatakan bahwa "penyembunyi" (stealth malware) memiliki keunggulan intrinsik atas "detektor". Saya tidak setuju. Ini benar jika Anda membatasi diri pada pendekatan deteksi yang mengandalkan tanda tangan atau heuristik untuk mendeteksi malware. Tetapi ada cara lain untuk mendeteksi malware: memverifikasi barang yang dikenal. Tripwire, AIDE, dll. Dapat memverifikasi file pada disk. Second Look dapat memverifikasi kernel dan proses yang sedang berjalan. Second Look menggunakan forensik memori untuk secara langsung memeriksa sistem operasi, layanan aktif, dan aplikasi. Ini membandingkan kode dalam memori dengan apa yang telah dirilis oleh vendor distribusi Linux. Dengan cara ini dapat langsung menunjukkan modifikasi berbahaya yang dilakukan oleh rootkit dan backdoors, dan program yang tidak sah yang mengeksekusi (trojan, dll.).

(Pengungkapan: Saya adalah pengembang utama dari Tampilan Kedua.)

Andrew Tappert
sumber