Linux sunucumun saldırıya uğradığını nasıl anlarım?


36

Bir Linux sunucusunun saldırıya uğradığını anlatan anlatım işaretleri nelerdir? Zamanlanmış olarak bir denetim raporu oluşturabilecek ve e-postayla gönderebilecek herhangi bir araç var mı?


1
Devlet bilinmiyorsa, başka yolu yok. Bu yüzden güvenilir kurulum kaynaklarını kullanmak ve kendisinden başka bir şeye maruz bırakmadan önce Tripwire gibi araçları kurmak çok önemlidir.
Oskar Duveborn


10
"Kırık" demek istiyorsun. Hacking ilk etapta linux'umuzu nasıl yaptıracağı.
gbarry

Sunucusunun sunucusuyla ev sahipliği yapan bir arkadaşım bir keresinde benden garip bir şey olduğunu düşündüğü için sunucusuna bakmamı istedi. Kayıtları görür görmez bir şey olduğunu biliyordum. İzlerini kapatmaya çalıştılar ve sanırım bir kök seti taktı, ancak biraz karışıklık yarattı. Her neyse, uzun lafın kısası, tüm sunucuyu sıfırdan inşa etmek zorunda kaldık. Bütün gece sürdü ve sonra güvenlik denetim araçlarını yapılandırdık.
Matt

@Matt Mind bize hangi araçları söyler? Hala bugün aynı mı?
Rodrigo

Yanıtlar:


34
  1. Kritik sistem dosyalarının (ls, ps, netstat, md5sum gibi) bozulmamış bir kopyasını md5sum ile bir yerde saklayın ve bunları düzenli olarak canlı sürümlerle karşılaştırın. Rootkit'ler bu dosyaları her zaman değiştirecek. Orijinallerin tehlikede olduğundan şüpheleniyorsanız bu kopyaları kullanın.
  2. aide veya tripwire , veritabanlarının tahrif edilmediği varsayılarak, değiştirilmiş dosyaları size söyleyecektir.
  3. Günlük dosyalarınızı, davetsiz misafir tarafından değiştirilemeyecekleri uzaktaki bir günlük sunucusuna göndermek için syslog'u yapılandırın . Şüpheli etkinlik için bu uzak günlük dosyalarını izleyin
  4. Günlüklerinizi okumak düzenli - Kullanım logwatch veya logcheck kritik bilgileri sentezlemek için.
  5. Sunucularınızı bilin . Ne tür faaliyetlerin ve kayıtların normal olduğunu bilin.

8
md5 atılmazsa ciddi şekilde zayıfladı. Sha512'ye geçmek isteyebilirsiniz.
Ocak'ta Broam.

12

Sen değil.

Biliyorum, biliyorum - ama bu paranoyak, kederli gerçek, gerçekten;) Elbette pek çok ipucu var, ancak sistem özellikle hedef alındıysa - bunu söylemek imkansız olabilir. Hiçbir şeyin tamamen güvenli olmadığını anlamak güzel. Fakat daha güvenli çalışmak için çalışmamız gerekiyor, bu yüzden diğer tüm cevapları işaret edeceğim;)

Sisteminiz tehlikeye girdiyse, gerçeği ortaya çıkarmak için sistem araçlarınızın hiçbirine güvenilmez.


5
Saldırganınızın biraz yetenekli olduğunu, herhangi bir şekilde gizli kalmayı istediğini ve tamamen spam’i atmak ve OC3’ünüzü bir botnet’e eklemekle ilgilenmediğini varsayıyorsunuz. Bu günlerde, genellikle büyük miktarda spamin sunucunuzdan, genellikle olmaması gereken aşırı yüklenmiş bir sistemde ortaya çıktığını fark ediyorsunuz. Çoğu "bilgisayar korsanları" bugünlerde parayla motive oluyorlar.
Ernie

2
En gelişmiş saldırı araçları bugünlerde sıfır beceri gerektirir ve kolayca kullanılabilir durumdadır ve bazıları varsayılan olarak ve tasarım açısından son derece gizlidir. Bot ağları / zombiler istenmeyen çöküyor ve garip davranışları vb neden olabilir saldırı araçları zarar ama hatalar için kullanılmadan önce uzun bir süre boşta olabilir
Oskar Duveborn

11

Tripwire yaygın olarak kullanılan bir araçtır - sistem dosyalarının ne zaman değiştiği konusunda sizi bilgilendirir, bununla birlikte önceden kurmanız gerekir. Aksi halde, bilmediğiniz yeni kullanıcı hesapları, tanımadığınız garip işlemler ve dosyalar veya belirgin bir neden olmadan artan bant genişliği kullanımı gibi öğeler olağan işaretlerdir.

Zabbix gibi diğer izleme sistemleri , / etc / passwd gibi dosyalar değiştirildiğinde sizi uyaracak şekilde yapılandırılabilir.


11

Geçmişte beni uyardı bazı şeyler:

  • Boşta olması gereken bir sistemde yüksek yük
  • Garip segfaults, örneğin gibi standart araçlardan ls(bu kırık kök kitleri ile olabilir)
  • /Veya içindeki gizli dizinler /var/(çoğu senaryo çocuğu izlerini kapatamayacak kadar aptal veya tembel)
  • netstat orada olmaması gereken açık portları gösterir
  • Süreç listesindeki normalde farklı lezzetleri kullandığınız (örneğin bind, her zaman kullandığınız djbdns) daemons

Ek olarak, bir kutunun tehlikeye atıldığına dair güvenilir bir işaret olduğunu buldum: Bir sistemi miras aldığınız yöneticinin titizliği (güncelleme vb.) Konusunda kötü bir hisiniz varsa, dikkat edin!


10

Korsan sunucuları kontrol etme yöntemi var kill-

Temel olarak, "kill -0 $ PID" komutunu çalıştırdığınızda $ PID tanımlayıcısını işlemek için bir nop sinyali gönderiyorsunuz. İşlem çalışıyorsa, kill komutu normal şekilde çıkacaktır. (FWIW, bir nop öldürme sinyali geçtiğinden beri, sürece hiçbir şey olmayacak). Bir işlem çalışmıyorsa, kill komutu başarısız olur (çıkış durumu sıfırdan düşük).

Sunucunuz hacklendiğinde / rootkit yüklendiğinde, yaptığı ilk şeylerden biri çekirdeğe etkilenen süreçleri işlem tablolarından vb. Gizlemesini söylemesidir. Bununla birlikte, çekirdek alandaki her türlü serin şeyi, bilgisayarla uğraşması için yapabilir. süreçler. Ve bu demek ki

a) Bu kontrol kapsamlı bir kontrol değildir, çünkü iyi kodlanmış / akıllı rootkit'ler çekirdeğin bu işlemi gereksiz kılan "işlem yoktur" cevabıyla cevap vermesini sağlayacaktır. b) Her iki durumda da, saldırıya uğramış bir sunucunun çalışan "kötü" bir işlemi olduğunda, PID genellikle / proc altında gösterilmez.

Yani , şimdiye kadar buradaysanız, yöntem sistemdeki mevcut tüm işlemleri -0 öldürmek (1 -> / proc / sys / kernel / pid_max olan herhangi bir şey) ve çalışan ancak bildirilmeyen işlemler olup olmadığına bakmaktır. / proc.

Bazı işlemler çalışıyor gibi geliyorsa, ancak / proc'ta bildirilmemişse, muhtemelen ona baktığınız herhangi bir şekilde bir sorunla karşılaşırsınız.

İşte tüm bunları uygulayan bir bash betiği - https://gist.github.com/1032229 . Bunu bir dosyaya kaydedin ve uygulayın, proc'ta bildirilmeyen bir işlem bulursanız, kazmaya başlamak için bir ipucunuz olmalıdır.

HTH.


Bu, sistemi verimli bir çalışma sistemi gibi sürdürmek için zamanımın olmadığı ev sahiplerim için gerçekten yararlı. Her neyse, bunu profesyonel bir ortamda kullanabilir ve sonuçlardan "göreceli" emin olabilir miyim? Ve cevabın 3 yaşında olması için: Bu, bugünlerde 2014'te yaygın enfeksiyon olup olmadığını kontrol etmek için geçerli bir yöntem midir?
hub


5

Gönderen nasıl sunucularda istenmeyen sızmaları algılayabilir?

  • Bir IDS kullanın

    SNORT®, imza, protokol ve anomali temelli denetim yöntemlerinin faydalarını birleştiren, kural odaklı bir dili kullanan, açık kaynaklı bir ağ saldırı önleme ve algılama sistemidir. Bugüne kadarki milyonlarca indirmeyle Snort, dünya çapında en yaygın olarak kullanılan izinsiz giriş tespit ve önleme teknolojisidir ve endüstri için fiili standart haline gelmiştir.

    Snort ağ trafiğini okur ve birisinin sunucularınıza karşı tam bir metasploit taraması yaptığı "kalemle test et" gibi şeyleri arayabilir. Bu tür şeyleri bilmek güzel, bence.

  • Günlükleri kullan ...

    Kullanımınıza bağlı olarak, bir kullanıcının ne zaman giriş yaptığını veya tek bir IP'den giriş yaptığını veya ne zaman root girişi yaptığını veya ne zaman birisinin giriş yapmayı denediğini bilmenizi sağlar. Aslında sunucu bana her hata mesajını Debug'dan daha yüksek olan bir e-posta ile gönderiyor. Evet, hatta Uyarı. Elbette bazılarını filtreliyorum, ancak her sabah bazı şeyler hakkında 10 e-posta aldığımda, düzeltmeyi istememe neden oluyor.

  • Konfigürasyonunuzu izleyin - Aslında / etc 'nin tamamını subversion içinde tutuyorum, böylece revizyonları izleyebiliyorum.

  • Taramaları yürütün. Lynis ve Rootkit Hunter gibi araçlar , uygulamalarınızdaki olası güvenlik açıkları hakkında size uyarı verebilir. Tüm kutularınızın bir karma veya karma ağacını koruyan ve değişikliklerde sizi uyaran programlar vardır.

  • Sunucunuzu izleyin - Diskspace'den bahsettiğiniz gibi - olağandışı bir şey olursa grafikler size bir ipucu verebilir. Kullandığım Cacti şey olursa vs CPU, ağ trafiği, disk alanı, sıcaklıklar, üzerinde bir göz tutmak için bakışlar tuhaf o olduğunu garip ve tuhaf neden dışarı bulmak gerekir.


2

Sadece buna eklemek istiyorum:

Bash geçmişinizi kontrol edin, eğer boşsa ve açmadınız ya da boşaltmadıysanız, birisinin sunucunuzu tehlikeye atması iyi bir olasılık.

Son kontrol et. Ya bilinmeyen IP'leri göreceksiniz ya da çok boş görünecek.

Ardından kabul edilen cevap belirtildiği gibi, sistem dosyaları sıklıkla değiştirilir, değiştirilen tarihi kontrol edin. Ancak, genellikle değiştirilme tarihi değiştirilmekte.

Genellikle rastgele bir portta çalışan başka bir ssh sürümü kurarlar. Bu genellikle bazı garip yerlerde gizlenir. Normalde ssh dışında bir şey olarak değiştirileceğini unutmayın. Bu yüzden netstat'ı kontrol edin (sıklıkla değiştirdikleri gibi çalışmayabilir) ve bilinmeyen portları engellemek için iptables kullanın.

Her durumda, bu önlemenin tedaviden daha iyi olduğu bir durumdur. Eğer ödün verilmişse, sadece biçimlendirmek ve tekrar başlamak en iyisidir. Kesmeyi başarıyla temizlediğinizi onaylamak neredeyse imkansız.

Sunucunuzun tehlikeye girmesini önlemek için aşağıdakilere dikkat edin.

  1. Ssh portunu değiştir
  2. Kökünün giriş yapmasını engelle
  3. yalnızca belirli kullanıcılara izin ver
  4. Şifre girişini önle
  5. Ssh anahtarlarını, tercih edilen şifreli şifreli şifreleri kullanın
  6. Mümkünse tüm IP'leri kara listeye alın ve gerekli ips'leri beyaz listeye alın.
  7. Fail2ban yüklemek ve yapılandırmak
  8. İzinsiz girişleri tespit etmek için tripwire kullanın
  9. Nagios veya zabbix ile giriş yapmış kullanıcı sayısını izleyin. Her giriş yaptığınızda haberdar olsanız bile, en azından bir başkasının ne zaman oynadığını bileceksiniz.
  10. Mümkünse sunucunuzu bir vpn'de tutun ve yalnızca vpn ip aracılığıyla ssh'ye izin verin. VPN'inizi koruyun.

Bir sunucuya girdikten sonra, bash geçmişinizi kontrol edecek ve o sunucudan ssh ile bağlı olduğunuz diğer sunucuları arayacaklarını unutmayın. Daha sonra bu sunuculara bağlanmaya çalışacaklar. Eğer zayıf bir parola nedeniyle zorla cezalandırılırsanız, diğer sunucuya bağlanmaları ve bunları da tehlikeye atmaları çok mümkün.

Dışarısı çirkin bir dünya, önlemenin tedaviden daha iyi olduğunu tekrar ediyorum.



0

GuardRail'i kontrol etmelisin. Sunucunuzu günlük olarak tarayabilir ve neyin değiştiğini güzel bir görsel şekilde söyler. Bir aracıya ihtiyaç duymaz ve SSH üzerinden bağlanabilir, bu nedenle makinenizi ve kaynaklarınızı bir aracı ile karıştırmanıza gerek yoktur.

Hepsinden iyisi, 5 sunucuya kadar ücretsiz.

Buradan kontrol edin:

https://www.scriptrock.com/


Bu, makinenize kök haklarıyla giriş yapan bir bulut hizmeti mi? Hizmet tehlikeye girerse ne olur?
hub

Kök vermene gerek yok. Bunun yerine bir aracı kullanmayı da seçebilirsiniz; bu, makinenizin SSH'nin çağırmak yerine yokladığı anlamına gelir. DB gibi nesnelerin şifreleri bulutta değil, her zaman makinenizde depolanır.
Cheyne
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.