it-swarm-eu.dev

Jak víte, že váš server byl ohrožen?

Nedávno jsem pomohl klientovi, který nechal jejich server napadnout. Hackeři přidali do záhlaví domovské stránky nějaký kód PHP), který přesměroval uživatele na pornografický web - ale pouze v případě, že pocházejí od Googlu, což pro klienta bylo o něco obtížnější. uvidí web dobře. Pouze porno návštěvníci z Googlu budou přesměrováni na porno stránku.

Včera v noci se podobná věc stala jinému klientovi. Předpokládal jsem, že to byl podobný hack, ale když jsem zkontroloval kódovou základnu, nemohl jsem najít žádný škodlivý kód. Jeho chrome prohlížeč přesměruje z klientských webových stránek na www(dot)pc-site(dot)com. Nemohu toto chování replikovat. Myslím, že je možné, že se škodlivý kód přidává a odstraňuje. Potřebuji tedy komplexnější způsob, jak zjistit, zda byl server napaden.

Pouze dva vývojáři mají přístup k tomuto dedikovanému serveru (a hostitelské společnosti Rackspace). Server je Red Hat Linux.

Jaké jsou kroky, kterými procházím, abych zjistil, zda byl server napaden?

45
Boz

[~ # ~] aktualizováno [~ # ~]

Zkontroloval bych následující:

  1. Protokoly. Pokud máte root přístup, měli byste zkontrolovat věci jako history, které vám poskytnou historii příkazů a protokolované soubory v /var/logs.

  2. Základní hodnota. Pokud máte základní linii jako hash souborů pro práci s aplikačními a systémovými soubory, pomůže vám to hodně. Zálohy můžete také použít k porovnání předchozího stavu. Pokud používáte zálohu k porovnání souborů, použijte, pokud je to možné, o něco starší. Stránka mohla být před nějakou dobou ohrožena a teprve nyní je přesměrování aktivováno.

  3. Zkontrolujte jakékoli položky. Soubory nemusí být na vašem serveru. Mohou to být skripty, jako jsou značky typu <script src=”http://baddomain.com/s.js” /> Nebo iframe. Nevylučujte také obrázky, soubory PDF Flash (SWF), video soubory. Je docela běžným trikem vkládání odkazů do souborů jiného typu obsahu. Navrhuji, abyste je zkontrolovali ručně, zejména na začátku a na konci souboru. Soubor může být kompletně odkazem/html/javascript nebo se může jednat o legitimní obrazový soubor s koncem odkazu na konci souboru.

  4. Zkontrolujte neobvyklá data souborů, velikosti a oprávnění, např. 777.

  5. Zkontrolujte neobvyklé úlohy u cron. Někdo ohrožující systém často opustí zadní dveře, aby se sem dostal znovu a znovu. Cron je velmi populární způsob, jak toho dosáhnout, pokud se jim podaří dostat se tak daleko.

  6. Zkontrolujte, zda neexistují soubory. Pravděpodobně nebudete mít přístup k protokolům, ale jejich absence je stejně známkou, že někdo po sobě vyčistil.

  7. Použijte vyhledávače. Není divu, že vyhledávače dokáží najít vše. Použijte direktivy jako site:site:yoursitehere.com baddomain.com Zjistěte, zda se vám nepodaří získat nějaké zásahy.

  8. Často bude odkaz nebo přesměrování zamlženo, takže by měl být pečlivě analyzován dlouhý javascriptový kód s proměnnými s jedním písmenem.

  9. Zachyťte pakety pomocí nástroje jako Wireshark nebo tcpdump ze zabezpečené pracovní stanice na web. Uložte jej do souboru a vyhledejte v něm části adresy URL.

  10. Zkontrolujte záznamy databáze, které mohou být dotazovány nebo aktualizovány. Odkaz mohl být vložen do databáze, nikoli do PHP.

  11. Nevylučujte pracovní stanici klienta. V případě potřeby použijte bezplatný online antivirový program. Zkontrolujte také nslookup a podívejte se, k čemu se to vyřeší. Zkontrolujte rozšíření prohlížeče, vymažte mezipaměť a zkontrolujte soubory hosts.

Chcete-li to vyčistit (pokud jste ohroženi), musíte se vrátit zpět na holý kov a znovu jej nainstalovat. Je to bolestivé, ale je to jediný způsob, jak se ujistit, že máte všechno.

Chcete-li tomu zabránit v budoucnu, měli byste dělat následující (i když již možná některé z nich děláte):

  1. Vytvářejte servery, včetně používání doporučení výrobce o bezpečných konfiguracích, pomocí aktuálního softwaru. Používejte přísnou kontrolu zabezpečení, jako jsou oprávnění, zásady týkající se hesel. Viz také sdílená oprávnění ke složkám a souborům Doporučení hostitele .

  2. Implementujte postupy kontroly kvality, jako je testování v prostředí s nízkým zabezpečením, kontrola kódu a testování.

  3. Nechte zranitelnost své webové aplikace/webu ověřit alespoň jednou profesionálním certifikovaným testerem. Podívejte se na testery certifikované Evropskou radou, ISO 27001 a PCI. http://www.eccouncil.org/certification/licensed_penetration_tester.aspx

  4. Podívejte se na stránky OWASP www.owasp.org a http://phpsec.org/projects/guide/2.html , kde najdete zdroje zabezpečení webových aplikací.

  5. Použijte nástroje systému prevence narušení (IPS). V závislosti na poskytovateli hostingu však můžete mít omezení ohledně toho, co můžete použít. Host založené IPS nástroje by měly být v pořádku, pokud máte vyhrazený virtuální počítač.

Doufám, že to pomůže. Jinak byste mohli poskytnout více informací o systémech, které používáte?

45
Bernie White

Jak říká @ Dgarcia, rychlá metoda je použít něco jako Tripwire nebo jiný nástroj, který sleduje soubory nebo hashe souborů ke kontrole změn. To slouží k identifikaci serverů ohrožených mnoha typy útoků.

  1. To nemusí fungovat pro ty, kde byl nainstalován rootkit, který působí proti tomuto procesu.
  2. To nebude fungovat pro servery, které upadly do kompromisu pouze s pamětí nebo těch, které se nedotýkají sledovaných souborů.

Jedinou možností je přestavba od nuly

Pokud jde o 2, vaše nejlepší volba je přestavět od nuly, protože jakýkoli kompromis by mohl implementovat zadní vrátka, která rozbije vše, co se pokusíte opravit, ale další kroky by mohly být užitečné:

  • zkontrolujte verzi svého webového serveru a php a použijte je k vyhledání známých exploitací v seznamu doporučení - to vám pomůže identifikovat oblasti, které mohou být ohroženy. Pak
  • zkontrolujte kód webové aplikace
  • zkontrolujte konfigurace webového serveru
  • zkontrolujte počítač klienta (soubor hostitelů, DNS atd.), protože to může být problém
7
Rory Alsop

Na tuto otázku je těžké odpovědět, protože je tak široká. V mé knize jsou dvě kategorie „hacků“ - malé a vážné. Zařadil bych rootkit do seriózní kategorie a váš průměrný útok na skripty jako menší. Zatímco s malými útoky je můžete vyčistit, nemůžete si být stoprocentně jistí, že jste je odstranili, nebo jste uzavřeli veškerý přístup k opakování útoku, ale můžete si být 99% jistí analýzou útoku na klíčové faktory, jako je „ Byl tento člověk dobrý programátor? “ a "Jaký byl záměr osoby?" Rootkity jsou ošklivé podnikání. Odebrání rootkitu vyžaduje úplné vymazání a obnovení. Detekce jednoho na dálku je téměř nemožná - pro jistotu musíte mít fyzický přístup k počítači a spouštěcí disketu.

Ještě důležitější je prevence. Říká se, že „unce prevence stojí za libru léku“ je v tomto kontextu zcela pravda. Nainstalujte software, který vám umožní sledovat různé aspekty systému a odesílat denní nebo dokonce hodinové zprávy. Tripwire byl zmíněn, ale existují i ​​jiné nástroje. Doporučuji použít několik různých nástrojů - domácí nástroje jsou těžší najít a není těžké je napsat. Chcete si vybudovat solidní obranu a omezit přístup do systému. Nenechte nikomu na světě mít přístup k portu SSH (alespoň jej omezte adresou IP/malým rozsahem adres IP). Před každý server nalepte vyhrazený firewall, takže existuje další vrstva ochrany. Nechcete, aby byla krabice sama o sobě jedinou obrannou linií. Kritická data spravujte se serverem pouze přes SSH/SSL, takže vše je šifrováno a bez zvědavých očí. Nikdy ne spravujte své servery z otevřených sítí WiFi.

Mnoho webů používá MySQL nebo podobnou databázi. Zjištění věcí, jako jsou útoky XSS nebo jiná nepoctivá data v databázi, není snadné, protože existují problémy závislé na schématu. Neviděl jsem žádná řešení tohoto problému, ale nepochybuji o tom, že existují.

6
Linders

Rychlou metodou je mít md5 všech souborů, o kterých víte, že jsou zdravé. Pokud máte podezření, že se váš web chová špatně nebo jako pravidelná kontrola, můžete provést kontrolu souborů. Pokud se některý z md5 neshoduje, můžete soubory šířit a změny prohlížet.

To samozřejmě nefunguje u dinamic souborů: protokoly, výpisy z databáze atd. Pokud nemůžete sledovat změny.

Existuje samozřejmě několik metod (kontrolovat protokoly ...) a prevence, ale je to snadná a rychlá cesta.

2
dgarcia