03 lipca 2010

Otwartoźródłowy, niewykrywalny dla antywirusów keylogger

Keyloggery, czyli specjalne programy lub urządzenia służące do rejestrowania w docelowym systemie wszystkich wprowadzanych za pomocą klawiatury znaków, mogą przyjmować bardzo różne formy. Omawiałem już swego czasu bardzo interesujący przykład otwartego keyloggera sprzętowego przeznaczonego do samodzielnego montażu. Keylogger może również przyjmować postać dodatku do popularnego Firefoksa. Dziś natomiast chciałbym zaprezentować interesujący przykład otwartoźródłowego keyloggera dla systemów z rodziny Windows.

Keylogger 0.1 to prosty program pozwalający na rejestrowanie wszystkich wprowadzanych znaków w systemach z rodziny Windows (działa zarówno w leciwym już XP, jak i najnowszej Siódemce) opublikowany na Powszechnej Licencji Publicznej GNU. Dzięki temu do dyspozycji mamy program oraz jego kod źródłowy w języku C++, co niesie ze sobą niewątpliwe walory edukacyjne. Poza tym, Keylogger 0.1 możemy dzięki temu  wszystkiemu zmodyfikować, udoskonalić lub w jakikolwiek sposób wykorzystać we własnym projekcie.

Program natychmiast po uruchomieniu rozpoczyna rejestrowanie wszystkich wprowadzanych znaków, tworząc na bieżąco prosty tekstowy log. Warto podkreślić, że w chwili obecnej program ten nie jest wykrywany jako zagrożenie przez żaden z kilkudziesięciu popularnych antywirusów dostępnych w ramach usługi Virustotal:
Dzięki temu, potencjalny intruz chcący poznać wszystkie wprowadzane przez nas w naszym systemie ciągi znaków (w tym nasze hasła) może po prostu uruchomić w naszym systemie (lokalnie lub też zdalnie) program Keylogger 0.1, nie martwiąc się o natychmiastowe wykrycie próby uruchomienia niebezpiecznego programu.

Przykład tego prostego keyloggera przypomina nam ponownie o tym, że zezwalanie innym osobom na choćby chwilowe skorzystanie z naszego systemu nie jest dobrym pomysłem. Zainteresowanych metodami tworzenia programowych keyloggerów zachęcam do zapoznania się z kodem źródłowym, natomiast wszystkich zachęcam do dyskusji na temat potencjalnych metod obrony przed złośliwym oprogramowaniem stworzonym przez potencjalnego intruza od podstaw, które dzięki temu nie jest wykrywane przez dostępne w danej chwili pakiety i programy zabezpieczające.