Pertanyaan ini sudah ada jawabannya di sini:
Alasan saya menanyakan hal ini adalah karena saya ingin tahu apakah ada virus di komputer tanpa saya pernah tahu keberadaannya. Untuk lebih spesifik, virus yang tidak memancarkan tanda apa pun.
Pertanyaan ini sudah ada jawabannya di sini:
Alasan saya menanyakan hal ini adalah karena saya ingin tahu apakah ada virus di komputer tanpa saya pernah tahu keberadaannya. Untuk lebih spesifik, virus yang tidak memancarkan tanda apa pun.
Jawaban:
Ada kelas malware yang dapat menyembunyikan dirinya sepenuhnya dari sistem operasi yang dikenal sebagai rootkit .
Rootkit digunakan untuk menyembunyikan bukti malware lain di tempat kerja dan tertanam sangat dalam di sistem operasi. Karena embedding mereka yang dalam, mereka dapat memanipulasi daftar proses, tabel sistem file dan struktur penting lainnya saat bepergian.
Dengan memanipulasi struktur sistem file dalam memori, mereka dapat mengembalikan hasil yang salah atau menyesatkan untuk direktori, khususnya tidak menunjukkan file yang terkait dengan malware utama itu sendiri. File-file ada di sana, dan boot ke sistem operasi yang tidak terinfeksi seperti Linux LiveCD akan menunjukkan file, karena mereka harus disimpan di suatu tempat.
Demikian pula, rootkit dapat dengan mudah menghentikan proses tertentu agar tidak dilaporkan ke program seperti Task Manager. Inti sistem operasi tahu tentang mereka, karena perlu untuk menjadwalkan mereka, itu baru saja diblokir dari membiarkan dunia luar tahu tentang mereka.
shutdown -r -t 0
, tidak ada hak istimewa yang diperlukan), atau hanya menunggu sampai reboot pengguna.
Semua program normal akan muncul di sana, tetapi ...
svchost
proses (dalam kebanyakan kasus), jadi tidak ada titik mudah di mana layanan berjalan di bawah contoh svchost yang diberikan.Ada beberapa program yang dirancang untuk mendeteksi rootkit. Mereka melakukannya dengan memeriksa misalnya daftar utas yang diprogram untuk eksekusi dan daftar proses dalam sistem (utas yang tidak termasuk dalam proses apa pun adalah tanda proses tersembunyi), atau daftar file yang terlihat pada tingkat tinggi, dan membandingkannya dengan file yang dibaca secara manual dari partisi disk.
Meskipun demikian, begitu Anda terinfeksi, ada kemungkinan virus menyembunyikan keberadaannya dengan sangat baik sehingga hampir tidak mungkin terdeteksi. Itu biasanya disebut APT (ancaman persisten tingkat lanjut).
Sistem operasi memiliki komponen yang dikenal sebagai kernel. Salah satu tanggung jawab kernel (banyak) adalah mengelola memori sistem (baik fisik maupun virtual).
Sebagai bagian dari melakukan ini, kernel membagi memori yang tersedia menjadi dua wilayah berbeda yang dikenal sebagai mode pengguna dan mode kernel. Kernel dan driver berbagi memori mode kernel, dan program pengguna dan komponen sistem yang kurang kritis berada di wilayah memori mode pengguna.
Proses dalam mode pengguna umumnya tidak dapat berkomunikasi dengan mereka dalam mode kernel, kecuali melalui saluran yang ditunjuk dan dikontrol secara khusus.
Untuk kelengkapan harus disebutkan bahwa proses yang berjalan dalam mode pengguna juga terisolasi satu sama lain, tetapi dapat lebih bebas berkomunikasi satu sama lain menggunakan fasilitas yang disediakan oleh sistem operasi asalkan program dirancang untuk melakukannya.
Kernel menyediakan kemampuan untuk meluncurkan proses dalam mode pengguna. Ketika suatu proses dibuat itu ditambahkan ke daftar internal proses yang saat ini ada. Ketika sebuah program seperti Task Manager meminta daftar proses, ia menerima subset dari informasi dalam daftar ini, difilter menurut per izin pengguna.
Salah satu cara untuk malware seperti rootkit untuk menyembunyikan keberadaannya adalah dengan langsung menghapus dirinya dari tabel ini. Setelah melakukan ini masih dapat dijalankan, tetapi tidak akan lagi muncul pada daftar proses yang diperoleh dengan cara normal.
Karena proses ini masih benar-benar ada dan dijalankan, mereka dapat ditemukan dengan memeriksa struktur data kernel lainnya, seperti handle tables, yang menyimpan informasi tentang sumber daya yang telah dibuka oleh suatu proses (misalnya file), atau dengan memeriksa alokasi memori yang darinya lebih sulit disembunyikan tanpa menghalangi kemampuan perangkat lunak untuk berfungsi.
Driver Mode Kernel digunakan untuk banyak hal termasuk berinteraksi dengan perangkat keras fisik. Mereka mengeksekusi di bawah kendali kernel sebagaimana diperlukan, tetapi karena mereka bukan proses mode pengguna, mereka tidak muncul dalam tabel proses. dan karenanya tidak akan muncul di Task Manager, atau alat lain yang berkaitan secara eksklusif dengan proses.
Mampu menjalankan kode dalam mode kernel adalah langkah penting untuk dapat secara efektif menyembunyikan keberadaan kode eksekusi. Dalam keadaan normal Windows mengharuskan kode dalam mode kernel ditandatangani untuk dijalankan, sehingga malware mungkin perlu menggunakan eksploit dalam sistem operasi, perangkat lunak lain, atau bahkan rekayasa sosial untuk sampai ke sini, tetapi begitu kode dijalankan dalam mode kernel, bersembunyi menjadi lebih mudah.
Singkatnya, mungkin untuk menyembunyikan bukti keberadaan proses, kemungkinan selalu ada beberapa indikasi bahwa proses itu ada, karena umumnya akan selalu perlu menggunakan beberapa bentuk sumber daya untuk melakukan apa pun yang dirancang untuknya, betapa sulitnya deteksi itu tergantung pada malware tertentu.
Virus cukup canggih saat ini. Ada bisa menjadi virus di komputer Anda, tetapi tidak muncul di Task Manager . Mungkin saja Task Manager (dan bagian lain dari sistem operasi) untuk dikompromikan, sehingga menyembunyikan virus. Misalnya, rootkit.
Jika Anda berencana mengandalkan Task Manager untuk memeriksa virus, maka Anda harus berhenti sekarang. Instal antivirus, dan bahkan antivirus terkadang gagal mendeteksi virus di PC Anda.
Ada satu lagi cara sederhana untuk "menyembunyikan virus" selain dari yang lain yang sudah dijelaskan dengan baik dalam jawaban lain:
DLL yang dikompromikan (pustaka yang terhubung secara dinamis)
Banyak program - hampir semua yang tidak terselamatkan - memerlukan satu atau lebih DLL untuk dijalankan. Beberapa milik OS itu sendiri (misalnya hal.dll, yang abstrak akses perangkat keras untuk Windows), beberapa digunakan oleh satu program saja, yang dipecah menjadi potongan-potongan kecil (satu file .exe dan lebih banyak file .dll dengan fungsionalitas inti, plugins etc.) Anda tidak mendapatkan virus Anda berjalan sepanjang waktu seperti proses atau layanan biasa, tetapi virus Anda akan sangat sulit ditemukan, karena itu akan terlihat seperti program atau komponen program yang sama sekali tidak bersalah.
Bacaan lebih lanjut: http://msitpros.com/?p=2012
Dan ada satu hal yang sangat menarik tentang pembuatan virus semacam ini: ada banyak situs web yang menawarkan unduhan dll gratis (tidak memerlukan pembayaran) yang mungkin karena ini atau itu hilang di komputer Anda. Karena kemungkinan untuk membandingkan checksum dari file .dll asli dan baru sangat terbatas dan hampir tidak ada yang peduli, dll-virus dapat masuk dan tinggal dalam sistem untuk waktu yang lama tanpa diketahui (kecuali, tentu saja, program antivirus mendeteksi mereka dan pengguna setuju dengan penghapusan - Anda sudah melihat polanya).
Dari pertanyaan saya anggap kita berbicara tentang Windows di sini, tetapi teknik ini mungkin juga berlaku untuk OS lain.
TL; DR: Task Manager Windows sangat terbatas dalam apa yang dapat dilakukannya, dan * tidak akan pernah menampilkan setiap proses yang berjalan pada sistem Anda. Ingin bukti? Hitung (kira-kira) jumlah RAM yang ditunjukkan oleh proses yang digunakan dalam Task Manager, dan bandingkan dengan penggunaan RAM sistem; Anda harus memiliki setidaknya 100MB RAM yang belum ditemukan, dan kadang-kadang naik menjadi sekitar 1GB, tergantung pada apa Anda menggunakan sistem. Kartu grafis juga dapat mengambil sebagian memori dari RAM bersama dengan GDDR RAM-nya sendiri. *
Untuk memperluas jawaban Pavel Petman, saya dapat menambahkan bahwa banyak mesin cheat canggih untuk game bergantung pada menyuntikkan kode ke dalam DLL game yang memungkinkan cheat mereka.
Jenis kompromi ini cukup sulit dideteksi, dan teknik yang sama dapat diterapkan dalam pertanyaan ini. Jika, katakanlah, suatu virus ingin tidak terdeteksi, ia dapat berperan sebagai pembaruan Windows dari jenis yang mengekstrak dirinya ke direktori sistem, virus dapat menimpa file sistem yang kritis. Sebagian besar program antivirus tidak akan mendeteksi jenis virus ini, yang berarti virus dapat terus menyuntikkan kode virus ke dalam DLL Windows yang kritis (dan juga .exes).
Ketika seorang klien saya menceritakan tentang perilaku yang tidak biasa, saya selalu menjalankan Process Explorer (unduh dari Microsoft) untuk mendeteksi virus yang berjalan. Process Explorer dapat memberi tahu Anda proses mana yang sedang berjalan (bahkan yang tidak ada di Task Manager), dan juga modul DLL apa yang mereka gunakan.