Linux sunucusunda kötü amaçlı veya arka kapı dosyalarının olmaması gerektiğini hızlı bir şekilde nasıl öğrenebilirim? Bir süre önce, APT yazarken bir sorun fark ettim.Windows kötü amaçlı yazılım tespiti ile ilgili makalelerin ve eğitimlerin çoğunun İnternette olduğunu, ancak Linux sistemlerinde kötü amaçlı yazılımın nasıl bulunacağına dair çok az materyal olduğunu gördüm. Bu nedenle, bu makale esas olarak Linux sistemindeki kötü amaçlı yazılımları kontrol etmek için bazı teknik ve yöntemleri tanıtmak içindir. Söyleyecek çok şey söylemeden konuya geçelim.
İkili dosyayı kontrol edin
Kontrol edilmesi gereken bir şey, çalışmayan ikili dosyaların değiştirilmiş olmasıdır. Bu tür kötü amaçlı yazılımlar, sisteme belirli bir şifreyle veya hatta bazı ikili dosyaların değiştirilmiş bir sürümüyle bağlantıya izin vermek için bir sshd sürümüyle desteklenebilir. Kök kullanıcı olarak çalışır ve yalnızca orijinal tetikleyici paket kümesini izlemesi gerekir. Sadece bağlanın. Bunun için Redhat ve Debian'ı örnek alacağız.
Ait olmayan ikili dosyalar aranıyor
find / proc / * / exe -exec readlink {} + | xargs rpm -qf | grep sahip olunmamış
find / proc / * / exe -exec readlink {} + | xargs dpkg -S | grep yol yok
Çalışan ikili dosyanın paketteki dosyayla eşleştiğini doğrulayın
find / proc / * / exe -exec readlink {} + | xargs rpm -qf | xargs rpm -V
find / proc / * / exe -exec readlink {} + | xargs dpkg -S | cut -d: -f1 | xargs dpkg -V
Tüm paket dosyalarını doğrulayın
Kontrol edilmesi gereken başka bir şey de, pakete ait ikili dosyaların hiçbirinin değiştirilmemiş olmasıdır. Bu işlemin tamamlanması biraz zaman alabilir, ancak buna değer. Belirli bir zamanda çalıştırmak için bir cron işi kurabiliriz.
Tüm paket dosyalarını doğrulayın
rpm -Va
dpkg -V
Çıktı sonucu
Çıktı, pakete ait olan tüm ikili dosyaları göstermeli, ikili dosyanın karma değerini hesaplamalı ve paket kurulduğunda veya güncellendiğinde kaydedilen değerle karşılaştırmalıdır. Aşağıdakiler Redhat sistemine dayalı çıktıdır. Dpkg kullanan Debian sistemi bunların çoğunu doğrulamaz, bu nedenle ikili dosya değiştirilirse yalnızca "5" görüntülenir.
S dosya boyutu farklı
Farklı M modları (izinler ve dosya türleri dahil)
5 Özet (eski adıyla MD5 toplamı) farklıdır
D Cihazın büyük / küçük numarası eşleşmiyor
L readLink (2) yolu eşleşmiyor
U Kullanıcı sahipliği farklıdır
G Grubu'nun farklı mülkiyeti var
T mTime farklı
P yetenekler farklıdır
RAW soketini kontrol edin
Arka kapılarda sık sık RAW soket görebiliriz. Yeni keşfedilen "Kaos" arka kapısı gibi gelen paketleri dinler ve olayları tetikler ve github'da ham yuva arka kapısını ararken ortaya çıkan bir örnek. Bu kontrol için sadece RAW soket kullanma sürecine bakacağız. Bunları kullanan pek çok ortak program yoktur, bu nedenle görüntülenecek sürecin kapsamını daraltabiliriz.
İkili dosyaları kontrol etmek için işlenmemiş soketleri kullanın
netstat -lwp veya ss -lwp
lsof | grep RAW
Olası enjeksiyon hafızasını kontrol edin
Çeşitli yanlış pozitifler olabilir. RWX belleği (okuma-yazma yürütme) çoğu yorumlanmış diller olan birçok program tarafından kullanılır, bu nedenle python ve java gibi şeyler için çok normaldir veya komut dosyalarını ayrıştırmak için herhangi bir kitaplığı kullanır. RWX belleğinde birçok girdi bulursanız ve işlem python veya java değilse, daha yakından bakmalısınız. Bu komut, RWX belleğinin işlem kimliğini listeleyecektir. Açıkça anormal bir süreç olan aşağıda listelenen cron'u görebilirsiniz.
Pid bulma komutu
grep -r rwx / proc / * / maps | cut -d / -f 3 | uniq -c | sort -nr
Değiştirilmiş PAM modülünü kontrol edin
Ortak bir arka kapı, kimlik doğrulama için PAM modüllerini eklemek veya değiştirmektir. Bu, uzaktan erişime izin verebilir ve ayrıca bir saldırganın herhangi bir kullanıcıdan kök ayrıcalıkları elde etmesine olanak tanır. Bu arka kapı, / etc / passwd'nin değiştirilmesiyle ilgilenmez, bu nedenle tüm orijinal şifreler ve değiştirilmiş şifreler hala geçerlidir. Sağladığı erişim türü nedeniyle, bence bu çok tehlikeli bir arka kapı türüdür. Normal oturum açma girişleri için normal protokolü kullanabilirsiniz, böylece kötü niyetli ağ etkinliği yokmuş gibi görünür.
PAM modülünü doğrulayın
find / lib64 / security / | xargs rpm -qf | grep sahip olunmamış
find / lib64 / security / | xargs rpm -qf | grep -v "değil" | xargs rpm -V
SSH erişimi
İkili dosyaları silmeden erişim haklarını korumanın çok basit bir yolu, ssh anahtarını yalnızca belirli bir kullanıcının auth_keys dosyasına eklemek ve saldırganın normal bir kullanıcı gibi ssh girmesine izin vermektir. Bu aynı zamanda tespit edilmesi en zor yöntemlerden biridir çünkü ssh anahtarının meşru veya kötü niyetli olup olmadığını belirlemeniz gerekir, bu da kullanıcıların dosyada yalnızca anahtarlarının olduğunu doğrulamasını gerektirir. Saldırganlar, daha önce çalınmışlarsa kullanıcıların anahtarlarını da çalabilirler.
Tüm kullanıcıların .ssh klasörlerini listeleyin
cat / etc / passwd | cut -d: -f 6 | xargs -I @ / bin / sh -c echo @; ls -al @ /. ssh / 2 > / dev / null "
sonuç olarak
Bir Linux sunucusuna ayrıcalıklı erişim sağlamanın birçok farklı yolu vardır. Yukarıdaki arama listesi tam değildir, ancak Meterpreter ve github'da bulunan diğer yaygın arka kapı programları dahil olmak üzere arka kapıları bulmanın daha yaygın yollarından bazılarıdır.