Apakah semua program yang berjalan di komputer muncul di tab proses di Task Manager? [duplikat]


Jawaban:


48

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.


1
Saya ingin tahu, bagaimana mereka mencapai prestasi itu? Sepertinya sesuatu yang seharusnya tidak diizinkan oleh Windows. Maksudku, bahkan "tampilkan proses dari semua pengguna" kurang 'bersembunyi' dan lebih 'mengkategorikan'
Raestloz

2
@ Raestloz: Mereka mencapai prestasi dengan mendapatkan akses root dan kemudian menulis ulang Windows untuk menghapus bit yang melarangnya. Saya pernah mendengar bahwa beberapa dari mereka melakukan ini dengan "boot" ke rootkit sebagai OS, mengubah Windows, dan kemudian mereka menjalankan Windows, jadi baik pengguna maupun Windows tidak tahu bahwa ada sesuatu yang tidak biasa.
Mooing Duck

3
ya ampun, mungkin seseorang harus menciptakan anti-virus yang berjalan pada BIOS lol
Raestloz

1
@zyboxenterprises Pembaruan Windows nyata ditandatangani dan tidak dapat dipalsukan, tetapi Anda dapat memalsukan dialog permintaan mulai ulang saja, atau menipu pengguna agar memulai kembali dengan cara lain, atau memaksa memulai ulang ( shutdown -r -t 0, tidak ada hak istimewa yang diperlukan), atau hanya menunggu sampai reboot pengguna.
gronostaj

4
@zyboxenterprises Mungkin, mungkin tidak;) Api mengeksploitasi Pembaruan Windows untuk keperluannya sendiri dengan memalsukan sertifikat, tetapi kerentanan itu sudah ditambal. Tidak ada eksploitasi WU yang diketahui secara publik, tetapi itu tidak berarti tidak ada. Yang digunakan oleh Flame juga tidak diketahui sebelumnya. (lihat serangan 0-hari
gronostaj

16

Semua program normal akan muncul di sana, tetapi ...

  • tanpa akun Administrator Anda hanya akan dapat melihat proses Anda sendiri (Akun admin dapat memilih untuk melihat proses semua orang)
  • rootkit akan mencoba untuk menyembunyikan keberadaannya dengan menyembunyikan prosesnya dari daftar, mengkompromikan task manager (sehingga tidak menunjukkan padanya), bersembunyi di dalam ruang alamat proses lain ...
  • layanan akan berjalan sebagai utas dalam svchostproses (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).


2
Beberapa poin ini agak tidak valid oleh Sysinternals Process Explorer - pengguna terbatas dapat melihat nama file proses yang dijalankan oleh pengguna lain, dan tooltips dari svchosts mencantumkan apa yang mereka hosting.
kirb

Apakah Anda bermaksud menulis "ancaman" atau maksud Anda "utas"? Ini benar-benar berfungsi di sana;)
Konerak

Bagaimana cara pendeteksi rootkit menghitung utas atau prosesnya? Jika ini cara yang khas / WinAPI, tidak bisakah rootkit memanipulasi enumerasi dan detektor rootkit tidak akan memperhatikan ini?
Ray

1
@ DebugErr, mereka melihat level tinggi dan level rendah, kemudian melaporkan perbedaannya (kadang-kadang menghasilkan false positive, seperti ketika file telah diubah di antaranya). Dengan memeriksa daftar utas yang diprogram untuk eksekusi, saya merujuk pada daftar dobel-link yang digunakan oleh penjadwal OS. benar-benar tingkat rendah: jika tidak ada di sana, itu tidak mendapatkan waktu-slice (meskipun ada lebih banyak tempat untuk memeriksa, seperti ISR).
Ángel

5

Latar Belakang

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.

Proses

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

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.

Ringkasan

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.


3

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.


0

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.


0

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.