SANS Institute ve spolupráci s FBI připravil základní souhrn 20 nejčastějších problémů, které jsou zneužívány hackery. Ač jsou jednotlivé body často velmi triviální, nebývá jejich řešení obvykle využíváno. Jedná se jistě o povinnou četbu pro všechny administrátory.
Nejvýraznější hackerské a virové útoky využívají jen omezené spektrum různých možností, jak proniknout do systému. Ty jsou přitom velmi dobře známé a existuje na ně oprava či doporučený postup. Administrátoři ale často péči o své servery zanedbávají a je jedno, zda jde o Unixy nebo Windows.
Po útoku Nimdy byl dosavadní seznam 10 nevýraznějších bezpečnostních děr v Internetu rozšířen na dvacet bodů a od počátku října je k dispozici. Plné znění najdete na SANS.org a administrátorům vřele doporučuji prostudování tohoto dokumentu v originále. Zde uvedu jen důležité body tohoto dokumentu a nebudu zabíhat příliš do detailů.
Obecné zranitelnosti systémů
Výchozí instalace systému a aplikací
Při instalaci systému a aplikací na server často dochází k tomu, že se instalují bez vědomí administrátora i součásti, které nakonec nejsou vůbec použité a na serveru zabírají jen místo. Komponenty, které ale nevyužíváte jsou stále aktivní a pokud se objeví nějaká zneužitelná chyba v nainstalované komponentě, nemusíte ani tušit, že se vás to týká. Navíc administrátoři záplatují většinou jen ty komponenty, které jsou aktivně využívány. Při instalaci systému tedy vždy odstraňte nepoužívané komponenty a zakažte provoz na portech, které nehodláte využívat. Při větších instalacích je také doporučeno vypracování přesných směrnic pro instalaci bezpečného systému.
Účty bez hesel nebo se slabými hesly
Řada komponent systému se často instaluje s výchozími uživatelskými jmény a hesly, která je nutné ihned po instalaci změnit na vlastní, není to ale bohužel vždy pravidlem. Stejně tak uživatelé volí snadno uhodnutelná hesla, která může útočník odhalit například prohledáváním podle slovníku.
Administrátoři tedy musí nejen opravit standardní účty ale i kontrolovat hesla (pochopitelně s příslušným oprávněním vedení) a upozorňovat uživatele na nutnost jejich změny. Existují i nástroje pro automatickou kontrolu nových hesel, aby splňovala požadovaná kritéria.
Neúplné nebo neexistující zálohy
Další obvyklým systémovým problémem je zálohování. Velmi často se zapomíná, že není důležité data zálohovat, ale také garantovat, že půjdou ze zálohy obnovit. Stejně tak je nutné pamatovat na to, že zálohy obsahují stejně citlivá data, jako jsou ta na serveru a tak si zasluhují stejnou úroveň systémové ochrany.
Velké množství otevřených portů
K serverům se uživatelé, ať legální či nelegální, připojují přes různé porty. Čím více portů je na serveru otevřených, tím je větší pravděpodobnost, že bude některý z nich zneužit při útoku. Proto je velmi důležité, aby všechny porty, kromě těch nutných, byly zakázány. To, jaké porty jsou otevřeny, zjistíte pomocí port scannerů, prográmků, které využívají i hackeři. Před použitím takového programu opět zjistěte, zda na to máte oprávnění, podobné akce často spustí poplach u bezpečnostních programů. Skenování portů je v podstatě velmi podezřelá činnost a tak je také vnímána jako pokus o průnik.
Nefiltrování paketů pro vstupní a výstupní adresy
Při denial of service útocích je často využíváno přepsání zdrojové IP adresy paketu. Takový paket sice nedojde k zpět útočníkovi, ten ale chce zamést stopy a ne získat zpět data. Jeho cílem je přehlcením cílového serveru nebo sítě dosáhnout odpojení od Internetu. Pro filtrování adres, které přichází do vaší sítě a naopak vychází ven použijte jasná pravidla, že cokoli do vaší sítě vstupuje musí jít z vnějších adres do vašich a obráceně, co jde ven, musí pocházet z vašich adres a směřovat do cizích.
Neúplné nebo neexistující logy
Vše se musí evidovat. Až vám něco útočník provede, musíte být schopni přesně zjistit, co dokázal, kam se dostal a jak mu zabránit v další aktivitě. Velmi se také doporučuje logy duplikovat na jiný server, kde je zapíšete například na cédéčko, aby nešly smazat. Hackeři často za sebou zametají stopy mazáním logů, takto budete mít šanci přežít i smazání logů.
Zranitelné CGI programy
Webové servery umožňují spouštění CGI programů, které slouží k vytváření aktivních stránek reagujících na vstupy uživatele. Bohužel není zrovna pravidlem, že tyto CGI programy mají ošetřené vstupy a tak jsou častou cestou pro útoky typu buffer-overrun. Stejně tak jsou na webových server často předinstalovávány ukázkové dokumenty a skripty, které velmi často obsahují řadu bezpečnostních chyb a jsou zneužívány útočníky. Ukázkové soubory vždy mažte stejně tak velmi pečlivě prověřte případné používané CGI komponenty a ty nebezpečné odstraňte.
Největší problémy systémů s Windows
Procházení složek přes Unicode znaky
Jedná se o velmi často zneužívanou díru (CodeRed, Nimda), na kterou přitom existuje záplata již delší dobu. Spočívá v nahrazení znaků / a \ v cestě k souborům jejich Unicode ekvivalenty %c0%af a %c1%9c. Neopravený systém na tyto znaky nezareaguje jako na špatné a zpracuje zadanou cestu. Pokud jsou data webu na stejném disku jako soubory systému Windows, je možné spustit i například smazání disku.
Přetečení bufferu v ISAPI rozšířeních
ISAPI rozšíření jsou přesně tou kategorií komponent, které se instalují při instalaci systému a jsou aktivní, i když je nikdo nevyužívá. Známé problémy se týkají Index Serveru 2.0 a Indexing Service ve Windows 2000. Dalším je například ISAPI pro tisk přes http. Zde je nutné vypnout ta ISAPI rozšíření, která nepoužíváte, a ta zbývající záplatovat. Doporučit lze nástro IIS Lockdown, o kterém jsme již psali.
Chyby v Remote Data Services
Zneužití RDS spočívá ve spouštění programů na serveru s právy administrátora. Chyby v RDS jsou známé a opět opravené, systém je třeba záplatovat, jinak hrozí zneužití.
Nechráněná sdílení ve Windows
Systém Windows poskytuje možnost sdílení dat přes síť, velmi nebezpečné je ale zapnuté sdílení dat přes TCP/IP, které otevírá prostředky počítače komukoli z Internetu. Sdílení je tedy třeba regulovat a také blokovat vnější komunikaci přes příslušný port TCP 139.
Únik informací přes null session
Spojení přes null session je používáno pro anonymní získávání informací o cílovém systému (například o nabízených síťových sdíleních na cílovém serveru). Stejně tak je využitelné při získávání informací z registru Windows. Internetoví uživatelé by neměli mít právo připojovat se na vnitřní domain controller. Je tedy nutné zablokovat TCP a UDP porty 135 až 139 a 445. Opět je také velmi doporučeno vypnout sdílení prostředků přes TCP/IP.
Slabé hashování starého LAN Manageru
Ačkoli většina uživatelů Windows již dnes nepotřebuje podporu pro LAN Manager, je standardně využívána pro zpětnou kompatibilitu. Hesla uložená v LAN Manageru jsou snadněji rozlomitelná, než při použití ověřování přes NTLMv2. Doporučuje se tedy zrušení podpory LAN Manageru a přechod plně na NTLMv2.
Největší problémy systémů s Unixem
Přetečení bufferu v RPC
RPC –remote procedure call je používán pro vzdálené spouštění programů na jiných počítačích. Existuje několik děr, které byly zneužity při DoS útocích před dvěma lety a stále na nezabezpečených počítačích hrozí. Nejčastěji jsou zneužívány rpc.ttdbserverd, rpc.smsd a rpc.statd. důležité je sledovat aktuální záplaty případně zablokovat na firewallu RPC port 111.
Chyby v sendmailu
Problémy sendmailu patří k těm starším, například bylo možné vyžádat si od sendmailu zaslání lokálních hesel k útočníkovi. Chyby v sendmailu se objevují často, je nutné udržovat vždy aktuální verzi. Stejně tak na serverech, které nejsou určeny pro poštovní služby, se doporučuje vypnout sendmail z daemon režimu.
Díry v BIND
BIND je nejpoužívanější implementací pro DNS servery. Bohužel na tomto systému byly odhaleny chyby, které byly i následně přes dostupnost opravy zneužity hackery. Je tedy důležité zkontrolovat aktuální verzi BINDu a na serverech, které nemají na starosti správu DNS, jej vypnout.
R příkazy
R příkazy slouží na Unixu ke vzdálenému spouštění příkazů na jiném počítači. Místo ověřování přes jméno a heslo, systém povoluje přístup pouze z ověřených IP adres. Pokud ale počítač s touto ověřenou adresou nějaký hacker napadne, otevře se mu naráz celá síť. Doporučením je r příkazy nepoužívat a odstranit seznamy ověřených IP adres.
LPD – remote print protocol daemon
V Unixu poskytuje in.lpd služby pro vzdálený tisk na místní tiskárně. Obsahuje ale chybu když dostane příliš mnoho tiskových úloh v krátkém čase, kdy se buď celý zhroutí nebo umožní spuštění kódu útočníka. Důležité je opět aplikovat příslušnou záplatu.
Sadmind a mountd
Sadmind umožňuje vzdálený administrátorský přístup na systémy Solaris s grafickým rozhraním. Mountd řídí připojování zdrojů na NFS. V těchto aplikacích ale hrozí přetečení bufferu a spuštění kódu útočníka. Opět záplaty existují a musí se instalovat.
Výchozí SNMP názvy
Protokol SNMP slouží ke vzdálené správě různých typů zařízení připojených k síti. SNMP používá nešifrovaný community název. Navíc je tento často v ve výchozím dobře známém tvaru. Útočníci tak mohou vzdáleně přes SNMP překonfigurovat nebo vypnout síťová zařízení. Doporučuje se vypnutí SNMP nebo volba názvů se stejnými pravidly jako pro hesla, aby nešla odhadnout.
Toto je jen stručný seznam navíc jen těch základních chyb, na které musí administrátoři myslet. Když budou myslet jen na ně, nebudou úspěšní, jejich znalost a dodržování ochranných mechanismů však poskytují dobrou šanci ochrany před útoky. Vřele doporučuji k prostudování
kompletní zprávu, kde najdete i odkazy na záplaty a další informace.