Bir bilgisayarda çalışan tüm programlar Görev Yöneticisi'ndeki işlemler sekmesinde görünüyor mu? [çift]


Yanıtlar:


48

Kendisini tamamen rootkit olarak bilinen işletim sisteminden gizleyebilen bir malware sınıfı var .

Rootkit'ler, işteki diğer kötü amaçlı yazılımların kanıtlarını gizlemek için kullanılır ve işletim sistemine çok derine gömülür. Derin gömülmeleri nedeniyle işlem listelerini, dosya sistemi tablolarını ve diğer önemli yapıları anında değiştirebilirler.

Dosya sistemi yapılarını bellekte değiştirerek, özellikle ana kötü amaçlı yazılımın kendisiyle ilgili dosyaları göstermeyerek, dizinler için yanlış veya yanıltıcı sonuçlar verebilir. Dosyalar orada ve Linux LiveCD gibi etkilenmeyen bir işletim sistemine önyükleme yapmak, dosyaları bir yerde saklamak zorunda oldukları halde gösterecektir.

Benzer şekilde, rootkitler belli süreçleri rapor edilmekten Task Manager gibi programlara bırakabilirler. İşletim sistemi çekirdeği onlar hakkında bilgi sahibi olur, onları zamanlamak için ihtiyaç duydukları için, dış dünyaya onları tanımaları engellenmiştir.


1
Merak ediyorum, bu başarıya nasıl ulaşıyorlar? Windows'un ilk başta izin vermemesi gereken bir şey gibi görünüyor. Yani, "tüm kullanıcıların gösterme süreci" bile daha az "saklanma" ve "daha fazla kategorize ediyor"
Raestloz

2
@Raestloz: Kök erişimi sağlayarak başarıya ulaşıyor ve ardından izin vermeyen bitleri kaldırmak için Windows'u yeniden yazıyorlar. Ben ettik duydum böylece kullanıcı ne, bazıları Windows'u değiştirerek, bir işletim sistemi olarak rootkit içine "önyükleme" bunu ve daha sonra Windows çalıştırmak olduğunu ya da Windows şey olağandışı olduğuna dair herhangi bir fikri vardır.
Mooing Duck

3
Pekala, belki birileri BIOS lol ile çalışan bir anti-virüs icat etmeli
Raestloz

1
@zyboxenterprises Real Windows güncelleştirmeleri imzalandı ve sahte edilemez, ancak yalnızca yeniden başlatma isteği iletişim kutusunu düzenleyebilir veya kullanıcıyı başka bir şekilde yeniden başlatması için kandırabilir veya yeniden başlatmayı zorlayabilir ( shutdown -r -t 0ayrıcalık gerekmez) veya yalnızca kullanıcının yeniden başlatılmasını bekleyebilirsiniz.
gronostaj

4
@zyboxenterprises Belki, belki de değil;) Alev , bir sertifika oluşturarak Windows Update'ten kendi amaçları için faydalandı, ancak bu güvenlik açığı zaten yamalandı. Halka açık bilinen WU istismarları yok, ancak bu, hiçbirinin olmadığı anlamına gelmiyor. Flame tarafından kullanılan, daha önce de bilinmiyordu. ( 0 günlük saldırıya
gronostaj

16

Tüm normal programlar orada görünecek, ama ...

  • Yönetici hesabı olmadan yalnızca kendi işleminizi görebilirsiniz (Yönetici hesapları herkesin işlemlerini görüntülemeyi seçebilir)
  • rootkits, sürecini listeden gizleyerek, görev yöneticisinden ödün vermeden (onu göstermez), başka bir süreç adres alanının içinde saklanarak varlığını gizlemeye çalışacak ...
  • hizmetler bir svchostişlem altında iş parçacığı olarak çalışacaktır (çoğu durumda), bu nedenle hizmetin belirli bir svchost örneği altında çalıştığı kolay bir nokta yoktur.

Kök setlerini algılamak için tasarlanmış bazı programlar vardır. Bunu, örneğin yürütmek için programlanan iş parçacıklarının listesini ve sistemdeki işlemlerin listesini (herhangi bir işleme ait olmayan bir iş parçacığı gizli bir işlemin işaretidir) ya da yüksek düzeyde görülen dosyaların listesini kontrol ederek yaparlar, ve disk bölümünden elle okuduğu dosyalarla karşılaştırılması.

Bununla birlikte, bir kez enfekte olduğunuzda, bir virüsün varlığını o kadar iyi gizlemesi mümkündür ki tespit edilmesi neredeyse imkansızdır. Bunlar genellikle APT (ileri ısrarcı tehdit) olarak adlandırılır .


2
Bu noktalardan bazıları Sysinternals Process Explorer tarafından geçersiz kılınmıştır - sınırlı kullanıcılar, başka bir kullanıcı tarafından yürütülen işlemlerin dosya adlarını görebilir ve svchosts araç ipuçlarını ne barındırdıklarını listeler.
kirb

"Tehdit" mi demek istedin yoksa "thread" mı demek istedin? Aslında orada çalışıyor;)
Konerak

Bir rootkit dedektörü dişlileri veya işlemleri nasıl numaralandırır? Tipik bir yöntem / WinAPI ise, bir rootkit numaralandırmayı değiştiremez ve rootkit dedektörü bunu farketmez mi?
Ray

1
@DebugErr, yüksek ve düşük seviyelere bakarlar, sonra farkları bildirirler (bazen bir dosyanın arada değiştirildiği zamanlar gibi yanlış pozitifler üretirler). By yürütülmesi için programlanmış parçacığı listesini kontrol Ben OS zamanlayıcısı yani kullandığı çift bağlantılı listeye atıfta edildi. Tamamen düşük seviye: orada değilse, zaman dilimi almaz (ISR gibi kontrol edilecek daha fazla yer vardır).
Ángel,

5

Arka fon

İşletim sistemi çekirdek olarak bilinen bir bileşene sahiptir. Çekirdeğin (birçok) sorumluluklarından biri sistem belleğini (hem fiziksel hem de sanal) yönetmektir.

Bunu yapmanın bir parçası olarak, çekirdek mevcut belleği kullanıcı modu ve çekirdek modu olarak bilinen iki ayrı bölgeye böler. Çekirdek ve sürücüler çekirdek modu belleğini paylaşır ve kullanıcı programları ve daha az kritik olan sistem bileşenleri kullanıcı modu bellek bölgesinde bulunur.

Kullanıcı modundaki işlemler, özel olarak belirlenmiş ve kontrol edilen kanallar haricinde, genellikle çekirdek modundakilerle iletişim kuramaz.

Bütünlüğü sağlamak için, kullanıcı modunda çalışan işlemlerin birbirlerinden izole edildiği, ancak programların bunu yapmak üzere tasarlanması şartıyla işletim sistemi tarafından sağlanan tesisleri kullanarak birbirleriyle daha serbestçe iletişim kurabileceklerinden söz edilmelidir.

Süreçler

Çekirdek, kullanıcı modunda işlem başlatma yeteneği sağlar. Bir işlem oluşturulduğunda, mevcut olan işlemlerin dahili listesine eklenir. Görev Yöneticisi gibi bir program bir işlem listesi istediğinde, bu izin listesindeki bilgilerin bir alt kümesini alır ve kullanıcı izinlerine göre filtrelenir.

Bir rootkit gibi kötü amaçlı yazılımın varlığını gizlemesi için bir araç, kendisini doğrudan bu tablodan kaldırmaktır. Bunu yaptıktan sonra hala yürütebilir, ancak normal yollarla elde edilen bir işlem listesinde görünmeyecektir.

Bu süreçler hala var olduğu ve yürütüldüğü için, bir işlemin açık olduğu kaynaklar hakkında bilgi tutan tutamaç tabloları (örneğin dosyalar) gibi diğer çekirdek veri yapılarının incelenmesiyle veya bunların daha fazla olduğu bellek tahsislerinin incelenmesiyle bulunabilir. Yazılımın işlevini engellemeden gizlemek zor.

Çekirdek Modu Sürücüleri

Çekirdek Modu sürücüleri, fiziksel donanım aygıtlarıyla etkileşim dahil olmak üzere birçok şey için kullanılır. Gerektiği gibi çekirdeğin kontrolü altında yürütülürler, ancak bir kullanıcı modu işlemi olmadıkları için işlemler tablosunda görünmezler. ve bu nedenle Görev Yöneticisi'nde veya sadece süreçlerle ilgili diğer araçlarda görünmeyecektir.

Kodu çekirdek modunda çalıştırabilmek kod yürütmenin varlığını etkin bir şekilde gizleyebilmek için önemli bir adımdır. Normal şartlar altında Windows, çalışabilmesi için çekirdek modundaki bu kodun imzalanmasını gerektirir; bu nedenle, kötü amaçlı yazılımın buraya gelmek için işletim sistemindeki, diğer yazılımlardaki veya hatta sosyal mühendislikteki istismarları kullanması gerekebilir, ancak kodun çekirdek modunda yürütüldüğü sırada, gizleme kolaylaşır.

özet

Özetle, süreçlerin varlığına dair kanıtları gizlemek mümkündür, muhtemelen sürecin var olduğuna dair her zaman bir belirti olacaktır, çünkü genellikle her ne şekilde tasarlandıysa, ne kadar zor yapılırsa yapılsın diye bir tür kaynak kullanmanız gerekir. bu algılama belirli kötü amaçlı yazılımlara bağlıdır.


3

Virüsler bugünlerde oldukça karmaşık. Orada olabilir bir olmak Görev Yöneticisi gösterilmesini bilgisayarınızda virüs değil . Görev Yöneticisinin (ve işletim sisteminin diğer bölümlerinin) kendilerine zarar vermesi ve böylece virüsü gizlemesi mümkündür. Örneğin, bir rootkit.

Virüsleri kontrol etmek için Görev Yöneticisi'ne güvenmeyi planlıyorsanız, şimdi durmalısınız. Bir virüsten koruma yazılımı kurun; bir virüsten koruma bile bazen bilgisayarınızdaki bir virüsü algılayamaz.


0

Diğer cevaplarda daha önce güzelce anlatılmış olanların dışında bir virüsü gizlemenin daha basit bir yolu var:

Uzlaştırılmış bir DLL

Programların çoğu - önemsiz programların neredeyse tümü - çalıştırmak için bir veya daha fazla DLL gerekir. Bazıları işletim sisteminin kendisine aittir (örneğin, Windows için donanım erişimini durduran hal.dll), bazıları yalnızca daha küçük parçalara ayrılan bir program tarafından kullanılır (bir .exe dosyası ve çekirdek işlevselliğe sahip daha fazla .dll dosyası), Eklentiler vb.) Virüsünüzü sıradan bir işlem veya hizmet gibi her zaman çalıştırmazsınız, ancak virüsünüz gerçekten bulmak çok zor olacaktır, çünkü tamamen masum bir program veya program bileşeni gibi görünecektir.

Daha fazla okuma: http://msitpros.com/?p=2012


Ve bu tür virüslerin yapımında çok çekici olan bir şey var: Bu nedenle veya bu nedenle bilgisayarınızda kaybolabilecek ücretsiz bir ödeme (ücretsiz ödeme gerektiriyor) indirimi sunan web siteleri var. Orijinal ve yeni .dll dosyasının sağlama toplamlarını karşılaştırma imkanı çok sınırlı olduğundan ve neredeyse hiç kimse umursamadığından, dll-virüsleri sisteme uzun bir süre fark edilmeden girebilir ve sistemde kalabilir (tabii ki, bir antivirüs programı algılamıyorsa) Onları ve kullanıcı silme ile kabul eder - zaten desen görüyorsunuz).

Burada Windows'tan bahsettiğimizi sorduğumdan, ancak bu teknik diğer işletim sistemlerinde de geçerli olabilir.


0

TL; DR: Windows Görev Yöneticisi yapabilecekleri konusunda oldukça sınırlıdır ve sisteminizde çalışan her işlemi asla göstermeyecektir. Kanıt ister misin? Görev Yöneticisi'nde gösterilen işlemlerin kullandığı RAM miktarını (kabaca) sayın ve sistemin RAM kullanımıyla karşılaştırın; sistemi en az 100 MB RAM hesaba katmamalısınız ve sistemi ne için kullandığınıza bağlı olarak bazen yaklaşık 1 GB'a çıkar. Grafik kartları ayrıca kendi GDDR RAM'leri ile birlikte RAM'den de biraz bellek alabilir. *

Pavel Petman'ın cevabını genişletmek için, oyunlar için birçok karmaşık hile motorunun, hilelerini sağlayan oyun DLL'lerine kod enjekte etmeye dayandığını ekleyebilirim.

Bu tür bir uzlaşmanın tespit edilmesi oldukça zordur ve bu soruya aynı teknik uygulanabilir. Örneğin, bir virüs tespit edilmek istemiyorsa, kendisini sistem dizinlerine çıkaran türün bir Windows güncelleştirmesi olarak ortaya çıkabilir, virüs kritik bir sistem dosyasının üzerine yazabilir. Çoğu virüsten koruma programı bu tür virüsleri algılamayacaktır; bu, virüsün kritik Windows DLL'lerine (ve ayrıca .exes) virüs kodunu enjekte etmeye devam edebileceği anlamına gelir.

Bir müşterim olağandışı davranışlar söylediğinde, çalışan virüsleri tespit etmek için her zaman İşlem Gezgini'ni (Microsoft'tan indirme) çalıştırıyorum. İşlem Gezgini size tam olarak hangi işlemlerin çalıştığını (Görev Yöneticisi'nde olmayanlar) ve ayrıca hangi DLL modüllerini kullandıklarını söyleyebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.