| Wyciek informacji w aplikacjach internetowych |
| Przemysław Sobstel | |
| niedziela, 06 stycznia 2008 21:02 | |
|
Wyciek informacji (Information Leakage) związany jest z tymi elementami aplikacji internetowych, które mogą dostarczyć atakującemu szczegółowych informacji na temat witryny. Może on je poznać przeglądając stronę, źródła HTML oraz sprawdzając jej reakcje na różne działania. Może także skorzystać z pomocy różnych narzędzi, chociażby wyszukiwarek internetowych (Google Hacking). Informacje te często bywają kluczowe dla skuteczności ataku. Słabymi punktami będącymi zazwyczaj przyczyną tego typu wycieku informacji są :
Problem wycieku informacji można rozpatrywać także w innym aspekcie. Dotyczy on ujawnienia ukrytych bądź poufnych danych, plików lub dokumentów, które same w sobie mogą być przedmiotem ataku lub też mogą przyczynić się do jego przeprowadzenia. Problem nieuprawnionego dostępu do zasobów, które powinny pozostać poufne, wynika głównie z faktu, że umieszczane są one w ramach głównego katalogu dokumentów WWW serwera. W ten sposób można uzyskać do nich dostęp bezpośrednio po wpisaniu dokładnego adresu URL w oknie przeglądarki. Możliwe jest to wtedy, gdy mechanizm kontroli dostępu nie obejmuje wszystkich możliwych punktów wejścia do systemu lub gdy dopuszcza on użytkownika do zasobów, do których nie uzyskał wymaganych uprawnień podczas uwierzytelniania. Poza tym, programiści zbyt często zapominają, że nawet jeśli do danego zasobu nie prowadzą żadne bezpośrednie odnośniki ze strony, to wcale nie znaczy, że nie jest on osiągalny dla potencjalnych krakerów. Dokładny adres URL może być odnaleziony poprzez atak siłowy, sprawdzanie istnienia popularnych nazw katalogów i plików (np. /admin), a także analizę komunikatów błędów [WASC04, s.13]. Elementy systemu informatycznego, których dotyczy ten rodzaj zagrożenia to :
plików na serwerze [ScSh02, s.207]. Atak ten przebiega poprzez manipulację łańcuchem żądania. Nie występuje powszechnie używany polski odpowiednik terminu Directory Traversal. W literaturze angielskojęzycznej używa się także określeń Path Traversal [WASC04a, s. 52] oraz Path Disclosure [OWASP02, s.40]. Podstawową formą ataku Directory Traversal jest przejście poza główny katalog witryny, aby uzyskać dostęp do plików systemowych, np. ../../../etc/passwd [ScSh02, s. 207]. Jednak atak może być także wykorzystany do ujawnienia zasobów i plików źródłowych w ramach głównego katalogu strony WWW, np. zamierzonym efektem po wpisaniu adresu http://strona.pl/index.php?dzial=glowny.htm może być wyświetlenie głównego szablonu znajdującego się w pliku glowny.htm. Tymczasem atakujący może zmodyfikować parametr dzial i umieścić nazwę dowolnego innego pliku w ramach serwera, w rezultacie powodując wyświetlenie go w przeglądarce. W tej sytuacji pewnym rozwiązaniem wydaje się być wymuszenie rozszerzenia pliku, jednak nie zawsze jest to skuteczne, ponieważ napastnik może umieścić w adresie znak pusty NULL (%00), który oznacza koniec ciągu [ScSh02, s.208-209]. W trakcie przetwarzania takiego ciągu, w którym został umieszczony znak pusty, wszystkie znaki znajdujące się po nim zostaną obcięte, w rezultacie czyniąc powyższe zabezpieczenie bezużytecznym. Wobec tego faktu konieczność poprawnej walidacji i filtracji danych wejściowych nabiera szczególnego znaczenia. Wystąpienie zagrożenia wycieku poufnych informacji zazwyczaj jest efektem niedopatrzenia lub braku dogłębnej analizy aplikacji. Tymczasem dzięki temu atakujący mogą dogłębnie poznać nie tylko strukturę i budowę witryny, ale i szczegółowe informacje na temat zastosowanych technik, a także dane używane do ustanowienia połączenia z bazą danych. Niewątpliwie stanowi to poważne zagrożenie. Jak się chronić? Po pierwsze, zaimplementować dobry system obsługi błędów (np. w PHP własny error handler), który zwraca ogólne i jednolite komunikaty; po drugie upewnić się, że nie zostawiliśmy w HTMLu żadnych komentarzy, a w obrębie głównego katalogu WWW żadnych zbędnych plików (kopii zapasowych, plików ukrytych, instalacyjnych, itp.); po trzecie skrupulatnie weryfikować i filtrować wszystkie dane wejściowe. Literatura [Grze04] Grzesiak P.: Bezpieczeństwo stron internetowych, Internet nr 1/2004, s.59-61. [OWASP02] A Guide to Building Secure Web Applications, Version 1.1.1, The Open Web Application Security Projects 2002. http://www.owasp.org/index.php/Category:OWASP_Guide_Project [ScSh02] Scambray J., Shema M.: Hakerzy - Aplikacje webowe, Translator 2002. [Shif05] Shiflett C.: Essential PHP Security, O'Reilly 2005. [SzWi06] Szeliga M., Wileczek R.: PHP5. Tworzenie bezpiecznych stron WWW, Helion 2006. [WASC04] Threat Classification, Web Application Security Consortium 2004. http://www.webappsec.org/projects/threat/ O autorze Przemek Sobstel - (http://www.sobstel.org) certyfikowany programista PHP (Zend Certified Engineer) webdeveloper, współzałożyciel nieformalnej grupy SegfaultLabs (http://segfaultlabs.com), zajmującej się zagadnieniami szeroko pojętej informatyki, w tym m.in. bezpieczeństwem internetowych aplikacji bazodanowych.
|
| Video | ||||
|---|---|---|---|---|
|
| Aktualności | ||||||
|---|---|---|---|---|---|---|
|
| Najpopularniejsze narzędzia dostępne w sieci | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
| Porady inne | ||
|---|---|---|
|
| Organizacje | |||||||
|---|---|---|---|---|---|---|---|
|
| Reklama |
|---|
| RSS |
|---|
LOCOS RSS |
| Popularne tagi |
|---|
| REKLAMA |
|---|
| Redaktor naczelny |
|---|
|
|









