IDS dla aplikacji webowej w PHP

18 lutego 2008, by: kozik

Zainteresował mnie ostatnio projekt PHPIDS, czyli IDS dla aplikacji webowej pisanej w PHP. I to nie tylko z uwagi na ostatnie poważne luki w MyBB, ale i w kontekście mojego serwisu, czyli www.pcformat.pl i www.nextmag.pl.

Jednym z najtrudniejszych elementów hartowania (hardeningu) aplikacji jest chyba oszacowanie zagrożenia związanego z nieznanymi lukami i błędami. Oszacowanie i zabezpieczenie przed nimi. No tak, ale jak zabezpieczyć się przed czymś o czym się nie wie? Da się…

PHPIDS skanuje dane docierające do aplikacji (GET, POST, COOKIE itp.) i na bazie przygotowanych reguł szuka prób wykorzystania luk. Jak zwykle przy tego typu mechanizmie – bazującym na zestawie gotowych reguł – powstaje problem bycia o jeden krok w tyle za atakującym. Napastnik wymyśla nowe metody ataku czy nowe sposoby „ukrycia” ataku w normalnej komunikacji (przykładowo – czyli jak przekazać znacznik <script> by to nie wyglądało dla IDS-u jak <script>). Stąd o 100% skuteczności marzyć nawet nie można… ale zdecydowana większość niechcianego ruchu pewnie da się wykryć.

Innym problemem jest wydajność. Póki co zaimplementowałem PHPIDS tylko na stronie NEXTA i widać niecałe dwukrotne wydłużenie czasu przetwarzania skryptów PHP – średnio z 0.02 sekundy do 0.04 sekundy. Jest to ciągle akceptowalna wartość, a nie wziąłem się jeszcze za tuningowanie IDS-u (ma własne mechanizmy cache’u). Pewnie na stronę PC Formatu też wrzucę bez obaw o zbytne spowolnienie ładowania się strony.

Zgrzyt pojawi się przy implementacji na forum. Nie tylko z powodu idiotycznego wręcz rozbicia punktów wejściowych do aplikacji (kupa plików PHP „wystawionych” dla użytkownika), ale właśnie z faktu obciążenia. Ruch na forum PC Formatu jest całkiem pokaźny (szczegółów nie podaję…) i koszt wdrożenia IDS-u może tu być za wysoki… Z drugiej strony to właśnie na zabezpieczeniu forum przed nieznanymi lukami, których jest tam dużo, najbardziej mi zależy…

No cóż… będzie wyzwanie :) .

Update – 19.02.2008:

Napisanie pluginu do MyBB okazało prościutkie i szybkie. Obciążenie na akceptowalnym poziomie. Już widać łapanie typowych exploitów… od phpBB :) .

Wysłano w Blog - Web | Tagi: , , , , , , , | 2 komentarzy »

Adres dla trackback. RSS dla komentarzy w tym wpisie.

2 komentarzy

  1. pozmu Says:

    Hmm, ciekawe. Planujesz udostępnić ten plugin?
    Nie ma przypadkiem czegoś podobnego dla Apache (nie chodzi o mod_security)?

  2. kozik Says:

    1. Nie planowałem pluginu do MyBB udostępniać. Jest on bardzo prosty, a trudność w użyciu IDS-u raczej się sprowadza do:
    – instalacji PHP IDS (niezbyt trudne, ale dla niektórych użycie patcha jest zbyt skomplikowane…),
    – dopracowania reguł powiadamiana o wykryciu ataku, by pozbyć się mnóstwa automatycznych exploitów na jakieś phpBB/PHPNuke/Mambo i inne.

    Jeśli byłaby potrzeba i zainteresowanie, to może…

    2. Jeśli to ma działać na poziomie Apache’a, to może po prostu lepiej zainwestować czas w porządnego IDS-a, np. SNORT?

Dodaj komentarz




Uwaga: Włączona jest moderacja komentarzy, więc nowy komentarz nie ukaże się bezpośrednio po jego wysłaniu.

Uwaga: Działa filtr antyspamowy. Jeśli umieścisz w komentarzu odnośniki, to może on zostać błędnie zakwalifikowany jako spam.