IDS dla aplikacji webowej w PHP

18 luty 2008, autorstwa: 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 | Tags: , , , , , , |

Adres dla trackback. RSS dla komentarzy w tym wpisie.

Liczba komentarzy: 2

  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.