GNU/Linux >> Znalost Linux >  >> Linux

Jak zjistím, zda byl můj server Linux napaden hackery?

Řešení 1:

  1. Uchovejte si původní kopii kritických systémových souborů (jako je ls, ps, netstat, md5sum) někde s jejich součtem md5 a pravidelně je porovnávejte s živými verzemi. Rootkity budou tyto soubory vždy upravovat. Tyto kopie použijte, pokud máte podezření, že byly originály kompromitovány.
  2. pomocník nebo tripwire vám sdělí všechny soubory, které byly změněny – za předpokladu, že s jejich databázemi nebylo manipulováno.
  3. Nakonfigurujte syslog pro odesílání souborů protokolů na vzdálený server protokolů kde je nemůže zmanipulovat vetřelec. Sledujte tyto vzdálené soubory protokolů, zda neobsahují podezřelou aktivitu
  4. přečtěte si své protokoly pravidelně – používejte logwatch nebo kontrola protokolu syntetizovat kritické informace.
  5. Znáte své servery . Zjistěte, jaké druhy činností a protokolů jsou normální.

Řešení 2:

Ty ne.

Já vím, já vím - ale je to paranoidní, smutná pravda, opravdu;) Náznaků je samozřejmě spousta, ale pokud byl systém cílen konkrétně - to by se možná nedalo říct. Je dobré si uvědomit, že nikdy není nic zcela bezpečné. Ale musíme pracovat na větší bezpečnosti, takže místo toho uvedu všechny ostatní odpovědi;)

Pokud byl váš systém kompromitován, žádnému z vašich systémových nástrojů nelze věřit, že odhalí pravdu.

Řešení 3:

Tripwire je běžně používaný nástroj – upozorní vás, když se systémové soubory změní, i když samozřejmě musíte mít nainstalován předem. Jinak jsou obvyklými příznaky položky, jako jsou nové uživatelské účty, o kterých nevíte, podivné procesy a soubory, které nepoznáváte, nebo zvýšené využití šířky pásma bez zjevného důvodu.

Jiné monitorovací systémy, jako je Zabbix, lze nakonfigurovat tak, aby vás upozornily, když se změní soubory jako /etc/passwd.

Řešení 4:

Některé věci, které mě v minulosti upozornily:

  • Vysoká zátěž systému, který by měl být nečinný
  • Podivné segfaulty, např. ze standardních nástrojů jako ls (to se může stát u zlomených kořenových sad)
  • Skryté adresáře v / nebo /var/ (většina script kiddies je příliš hloupá nebo líná na to, aby zakryla stopy)
  • netstat ukazuje otevřené porty, které by tam neměly být
  • Démoni v seznamu procesů, které běžně používáte v různých variantách (např. bind , ale vždy používáte djbdns )

Navíc jsem zjistil, že existuje jeden spolehlivý signál, že je schránka kompromitována:pokud máte špatný pocit z pečlivosti (s aktualizacemi atd.) administrátora, od kterého jste systém zdědili, bedlivě ho sledujte!

Řešení 5:

Existuje metoda kontroly napadených serverů pomocí kill -

V podstatě, když spustíte "kill -0 $PID", vysíláte signál nop pro zpracování identifikátoru $PID. Pokud je proces spuštěn, příkaz kill se normálně ukončí. (FWIW, protože procházíte signálem nop kill, procesu se nic nestane). Pokud proces neběží, příkaz kill selže (stav ukončení menší než nula).

Když je váš server hacknutý / je nainstalován rootkit, jedna z prvních věcí, které udělá, je říct jádru, aby skrylo postižené procesy z tabulek procesů atd. Může však v prostoru jádra dělat různé skvělé věci, aby se procesy. A to tedy znamená, že

a) Tato kontrola není rozsáhlou kontrolou, protože dobře kódované/inteligentní rootkity zajistí, že jádro odpoví odpovědí „proces neexistuje“, čímž je tato kontrola nadbytečná.b) Ať ​​tak či onak, když hacknutý server běží "špatný" proces, jeho PID se obvykle nezobrazí pod /proc.

Takže , pokud jste zde až doteď, metoda je zabít -0 každý dostupný proces v systému (cokoli z 1 -> /proc/sys/kernel/pid_max) a zjistit, zda existují procesy, které běží, ale nejsou hlášeny v /proc.

Pokud se některé procesy objeví jako spuštěné, ale nejsou hlášeny v /proc, pravděpodobně máte problém z jakéhokoli pohledu.

Zde je bash skript, který to vše implementuje - https://gist.github.com/1032229 . Uložte si to do nějakého souboru a spusťte jej, pokud najdete proces, který se v proc objeví neohlášený, měli byste mít nějaké vodítko, abyste mohli začít kopat.

HTH.


Linux
  1. Jak zavést systém Linux bez grafického serveru

  2. Jak dlouho můj systém Linux běží?

  3. Jak zjistit počet jader systému v Linuxu?

  1. Jaký je proces vyřazování hardwaru vašeho serveru Linux z provozu?

  2. Zkontrolujte dostupnost na Ubuntu Linux Server - Jak na to?

  3. Jak zjistím, zda má můj server NUMA?

  1. Jak zabít proces v Linuxu

  2. Jak zjistit, že Java je nainstalována v systému Linux?

  3. Linux:Jak zjistit, kde byl proces spuštěn a jak byl spuštěn?