Webová aplikace dává naši síť všanc

Kromě pořizování kopií disků pro federální vyšetřovatele se Mathias musí zabývat i odhalováním chyb jedné webov...


Kromě pořizování kopií disků pro federální vyšetřovatele se Mathias musí
zabývat i odhalováním chyb jedné webové aplikace. Výsledky jsou alarmující.
Většina z mé běžné denní rutiny šla v poslední době stranou. Jsem totiž nucen
uspokojit požadavky vyšetřovatelů a pořídit kopie disků notebooků asi 30 našich
zaměstnanců. V odpovědi na požadavek od federálních orgánů používáme k pořízení
obrazů disků software EnCase Forensic Edition od společnosti Guidance Software.
Tento nástroj nejdříve vytvoří bootovací disketu, která zabezpečí disk proti
zápisu a poté vás nechá manuálně nebo automaticky detekovat cílové úložné
zařízení. Já jsem použil síťový port a překřížený ethernetový kabel, abych se
připojil ke své pracovní stanici vyhrazené právě pro podobné účely a jejím
prostřednictvím kopie pořizoval. Sebraná data ukládám na DVD.
Vytvoření komprimovaného obrazu každého ze 40GB disků trvá okolo pěti hodin.
Celý proces naštěstí může běžet bez mé přítomnosti. To mi dává čas věnovat se
dalšímu z mých aktuálních úkolů provádět bezpečnostní prověrku aplikace, jež
nám umožní provádět on-line průzkumy mezi našimi zákazníky prostřednictvím
webu. V průběhu této činnosti mě bohužel čekalo několik nesmírně nemilých
překvapení.

Díry v průzkumu
Všechno začalo tím, že mě náš právník požádal, abych zhodnotil bezpečnost
našeho nového formuláře na webu. Ten má sloužit k provedení on-line průzkumu
mezi našimi zákazníky. Členové týmu, který ho nasazoval, se ptali, k čemu je
vlastně takové bezpečnostní vyhodnocení dobré. "To přece není, jako kdybychom
sbírali čísla kreditních karet, osobní informace nebo na web vystavovali nějaký
zdrojový kód," argumentoval jeden z nich.
Měl do jisté míry pravdu. Aplikace má za cíl realizovat jenom běžný průzkum
mezi zákazníky, jehož výsledky nám mají usnadnit poskytování ještě lepších
služeb než dosud. Nesbíráme žádná osobní ani finanční data. Budeme se našich
uživatelů ptát, v čem vidí slabiny našich služeb, jak hodnotí jejich úroveň
apod.
I když nejde o nějaká skutečně velmi citlivá data, stejně rozhodně nechceme,
aby se sebrané informace dostaly do rukou někomu z našich konkurentů. A právě z
tohoto důvodu se naše právní oddělení rozhodlo, že by sebrané informace měly
být považovány za důvěrné. A to není vše. Nejenže se trochu bojíme o výsledky
svého průzkumu, ale aplikace sloužící ke sběru údajů současně poběží na webovém
serveru v demilitarizované zóně a tedy tváří v tvář úskalím internetu. Sama
aplikace využívá trojvrstvou architekturu skládající se z front-endového
webového serveru, prostředního aplikačního serveru a back-endového databázového
SQL serveru. Jestliže se potenciálním hackerům podaří probourat do jakékoli z
částí této infrastruktury, potom budou moci číst informace, jako je konfigurace
serveru, identifikace uživatelů a jejich hesla, která mohou být obvykle
příslušnými nástroji vytažena z některých souborů. Hackeři mohou také
nainstalovat software pro čmuchání paketů (packet-sniffing software), aby
odchytávali náš provoz a použili ho později k přístupu do dalších částí naší
infrastruktury.
Kdyby například hacker spustil sniffer na dobytém webovém serveru a poté
správce tohoto serveru přistoupil k jinému zdroji v té samé síti, útočník by za
určitých okolností mohl být schopen získat přihlašovací údaje tohoto
administrátota pro další objekty v síti. Dokonce i na přepínané síti je stále
možné odchytávat provoz a nabourat se i do šifrovaných protokolů, jako je SSH a
HTTPS. Pokud tomu nevěříte (a ani já jsem tomu zprvu nevěřil), přečtěte si
specifikace programu Ettercap na webové adrese http://ettercap.sourceforge.
net/.

Zjišťování slabin
Stanovit bezpečnost nějaké aplikace je vždy obtížnější, než určit zabezpečení
serveru nebo operačního systému, na kterých je aplikace nainstalována. Druhá
varianta typicky zahrnuje kontrolu otevřených portů a potenciálně napadnutelné
služby. Stanovení bezpečnosti aplikace by ale mělo zahrnovat zhodnocení
potenciálních slabin vzniklých v procesu její tvorby i následné konfigurace. Já
jsem použil několik běžných metod, jejichž prostřednictvím bych mohl k naší
aplikaci získat neautorizovaný přístup. Mj. jsem se snažil využít dvou známých
slabin: vložení nevhodných dat do SQL dotazu (SQL injection) a přechod do
adresáře, který je běžně nepřístupný (directory traversal).

SQL injection
Útok typu SQL injection se objeví tehdy, když například aplikace nekontroluje
data, která byla zadána do formuláře. Když hacker zadá výrazy pro SQL do
webového formuláře a aplikace předá data přímo databázovému serveru, je za
určitých okolností možné, že server přímo provede příkazy, které touto cestou
obdrží. Jestliže pak databáze obsahuje třeba čísla kreditních karet nebo jiná
finanční data, správně vytvořená otázka v jazyce SQL je může z databáze
vytáhnout a poskytnout útočníkovi.


Directory traversal
Také chyba typu directory traversal je důsledkem nedostatečné nebo chybějící
kontroly vstupních dat. Je možno zadat přímo z adresové řádky internetového
prohlížeče příkazy, které umožní hackerovi zobrazit jakýkoli soubor na webovém
serveru tím, že se dostane mimo běžný rozsah adresářů aplikace. Mohlo by to
vypadat například nějak takto:
http://www.webserver.com/../../../../../etc/shadow.
Na nechráněném webovém serveru by mohl hacker využít tuto adresu, aby viděl
tzv. shadow file, který obsahuje šifrovaná hesla pro uživatelské účty na
většině unixových operačních systémů. Potom už by prostě jen zkopíroval data do
textového souboru a spustil na něj nějaký z nástrojů, který je schopen šifru
prolomit a hesla přečíst.

Léčba slabin
Uvedené slabiny lze snadno vyléčit, ale jejich objevení může být složité. Abych
si tento proces usnadnil, použil jsem nástroj AppScan od společnosti Sanctum.
Výsledek mého pokusu byl skutečně alarmující. Objevil jsem několik chyb typu
directory traversal a několik typu SQL injection.
A kromě toho sama aplikace uchovávala informace o účtech jako prostý
nešifrovaný text. Všechny tyto slabiny bude třeba vyřešit předtím, než ji
schválím pro ostrý provoz.

Inspirace
Na základě získaných zkušeností se v nejbližší době chystám na prozkoumání
bezpečnosti všech našich webových aplikací, které jsou obráceny směrem k
veřejnosti, tedy do volného internetu. A zkontroluji také administrátorský
přístup do naší zóny DMZ (demilitarizovaná zóna), kde, jak se zdá, máme velké
slabiny.
Dokážu si představit, že mnozí lidé u nás ve firmě nebudou mou aktivitou
nadšeni, ale takový už je život. Já koneckonců také nejsem nadšen z toho, že
ještě musím dokončit tvorbu kopií disků našich notebooků.
Řešíte podobné problémy jako Mathias Thurman? Podělte se o svoje zkušenosti s
námi i se čtenáři Computerworldu. Můžete psát na adresu bezpecnost@idg.cz.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.