Aplikacja KeePass Password Safe to darmowe narzędzie typu opensource, umożliwiające przechowywanie, zarządzanie i generowanie haseł. Wszystkie poufne informacje (w tym hasła) przechowywane są w szyfrowanej bazie danych, zabezpieczonej algorytmem szyfrującym Rijndael (AES), a dostęp do bazy otrzymujemy po wpisaniu głównego hasła. Narzędzie bardzo wygodne dla administratorów oraz m.in. dla tych, którzy posiadają wiele kont w różnych serwisach i celem zwiększenia bezpieczeństwa stosują inne hasło w każdym z nich. Niestety dla użytkowników tego darmowego narzędzia mamy złą informację. Dokładnie osiem dni temu nowozelandzki pentester i badacz bezpieczeństwa, Denis Andzakovic opublikował w serwisie Github darmowe narzędzie o prześmiewczej nazwie "KeeFarce", które korzysta z API C# (CLRMD) i umożliwia ominięcie mechanizmu szyfrowania w programie KeePass (atak na proces) i wydobycie z niego wszystkich poufnych informacji, łącznie z... zapisanymi w bazie hasłami.
KeeFarce może wydobyć hasła po zalogowaniu się użytkownika do programu KeePass, a wykorzystuje do tego atak typu DLL injection, dzięki którym wykonuje kod na uruchomionym procesie narzędzia KeePass. Następnie odczytuje zapisane w bazie KeePass informacje, tj. nazwy użytkowników, hasła, notatki, adresy URL a potem zapisuje je w formacie tekstowym do pliku CSV (domyślnie w %AppData%), umożliwiając atakującemu łatwy ich odczyt. Według Andzakovicia, KeeFarce skutecznie wydobywa wyżej wymienione informacje z najnowszej wersji oprogramowania KeePass (2.30) ale także ze starszych, tj. 2.29 oraz 2.28. Wszystkie wersje testowane były na systemie operacyjnym Windows 8.1 (32 i 64 bity), ale pentester twierdzi, iż KeeFarce będzie również działał bezproblemowo na starszych wersjach systemu Windows.
Czy narzędzie na pewno działa i potrafi wydobyć poufne informacje? Potwierdzamy, sami to sprawdziliśmy:
Testowa baza z użytkownikiem i hasłem zapisanym w KeePass v2.90 |
Przykład wpisu testowego zawierającego łamane hasło |
KeeFarce w akcji - zapis poufnych informacji w %AppData% |
Potwierdzenie uzyskania poufnych informacji z naszego testowego wpisu |
Pomimo faktu, iż atakujący musi posiadać dostęp do komputera na którym zainstalowane jest narzędzie KeePass (fizyczny lub zdalny, np. poprzez trojana) aby wydobyć poufne informacje, to jest to mimo wszystko spore zagrożenie dla użytkowników korzystających z tego dość popularnego i darmowego narzędzia do przechowywania haseł. Przykład ten może uzmysłowić nam dwa fakty. Pierwszy z nich to taki, iż nawet najlepsze szyfrowanie na nic się może zdać, gdy atakujący użyje odpowiedniej metody na wyszukanie luki bądź wykonanie ataku na oprogramowanie. Natomiast drugi fakt jest taki, że zawsze najlepszym miejscem na przechowywanie haseł jest nasz mózg.
Mamy nadzieję, iż twórcy KeePass w kolejnej wersji swojego oprogramowania poprawią je i uniemożliwią wykonanie opisanego wyżej ataku.
Oprogramowanie KeeFarce można pobrać stąd:
Źródło:
https://github.com
http://wikipedia.org
16 komentarze:
Ale czy to trochę nie jest robienie afery z niczego? Nie da się zabezpieczyć programu tego typu w sytuacji, gdy atakujący ma dostęp do naszego komputera a sam program jest uruchomiony.
Lepiej ostrzegać niż być biernym. Jednak niebezpiecznie staje się, gdy atakujący wykorzysta - tak jak napisaliśmy - np. dostęp zdalny (trojan), lub mając okresowy, fizyczny dostęp do komputera odczyta sobie z pliku CSV nasze poufne dane (bo, np. ukryty proces KeeFarce działa w tle i co kilka minut próbuje wykonać atak DLL injection).
Ma się bardzo dobrze! Ja sobie synchronizuję bazę z keepass-a między PC a urządzenia mobilne.
Co do KeeFarce tu masz odpowiedź autora programu na to "zagrożenie":
http://bit.ly/1Q6GZY8
Ten sam (a nawet lepszy) efekt można osiągnąć zwykłym keyloggerem, więc to trochę robienie sensacji z niczego.
Keylogger nie wyciagnie wszystkich informacji zawartych w oprogramowaniu KeePass, a jedynie dane wpisywane z klawiatury. Poza tym, keyloggery w znacznej większości są wykrywane jako złośliwe oprogramowanie i blokowane przez oprogramowanie antywirusowe, natomiast KeeFarce jest traktowany jak zwykły program.
Keyloger wyciągnie ci główne hasło do bazy kluczy, którym będziesz mógł odszyfrować aktualną bazę i prawdopodobnie wcześniejsze/późniejsze snapshoty - efekt jest ten sam. Ale to i tak nie o to chodzi - komputer, na którym użytkownik uruchomił złośliwe oprogramowanie, jest już niebezpieczny z definicji i powierzchni ataku są wtedy setki, naprawdę nie trzeba kombinować z podmianami bibliotek, pewnie wystarczy podmiana skrótu do programu na jego złośliwą wersję. Więc nagłówki typu "twoje hasła nie są bezpieczne" z uzupełnieniem w treści "...ale tylko jeśli masz zawirusowanego kompa" to sianie FUDu i zagrywki rodem z najgorszych tabloidów...
Tylko, że dzięki temu programikowi każdy może wyciągnąć hasło nawet bez instalacji keyloggera, którego wykryja antywirusy więc jest to znaczne ułatwienie dla atakującego. Ja tu siania paniki nie widze, bardziej podniesienie świadomości użytkowników...
Keyloggera też nie musisz instalować, wystarczy że go uruchomisz. Dwa dni temu KeeFarce był wykrywany przez prawie połowę antywirusów: https://www.virustotal.com/en/file/f0d5c8e6df82a7b026f4f0412f8ede11a053185675d965215b1ffbbc52326516/analysis/ (zresztą w ogóle poleganie na antywirusach to mydlenie oczu). Powyżej ktoś wrzucił link z dyskusją na stronie projektu, tam masz dużo sensownych wypowiedzi, także twórców. Żaden program nie jest w stanie zapewnić bezpieczeństwa, jeśli pracuje w skompromitowanym środowisku.
Podniesienie świadomości użytkowników... No na pewno do tej pory wszyscy myśleli, że zawirusowany komputer i uruchamianie lewych binarek z internetu to nic groźnego, o ile mają KeePassa. :D Ja bym jednak zmienił puentę tego wpisu - mózgu jednak lepiej używać do myślenia co i jak się robi, a nie zapamiętywania setek haseł. ;]
Taa, dwa dni temu czyli niedługo PO TYM jak opublikowali KeeFarce, wcześniej twórca miał go dla siebie i z nikim się nie dzielił (a może dzielił ale tego nie wiadomo ) i żaden antywir go nie wykrywał. Oczywiście nie można popadać w paranoje ale twórcy zawsze beda przechylali szalę na stronę swojego dziecka, niejmniej jednak bardziej budowa widnowsa jest do niczego że umożliwia takie ataki jak dll injection..
Antywirusy go nie wykrywały, podobnie jak każdy inny działający malware. Każdego dnia można więc produkować kilka artykułów tego typu, bo wyszedł nowy trojan, który może wykradać hasła - wystarczy tylko że user go sobie ściągnie i uruchomi ;]
na windowsy równie dobrym sposobem jest trzymanie szyfrowanej partycji pod truecrypt, tylko w odpowiedniej wersji. najlepsza jest chyba 7.1a bo nowsze są już "zapluskwione". przynajmniej tego typu narzędzia nie są w stanie (póki co) zorientować się, czy edytujemy zwykły plik, czy to jest coś ważnego. a co do pamiętania w "mózgu", nie da się w nim zapamiętać haseł do 30 różnych serwerów przy zmianie haseł co miesiąc. a niektóre firmy mają taką "politykę" tzw. "bezpieczeństwa".
Jestem przekonany, że błąd leży po stronie KeePass'a.
Na koncie z ograniczonym uprawnieniami, nie można "podsłuchać" procesów działających z uprawnieniami administratora - stąd wszędzie trąbią aby pracować na kontach z ograniczeniami.
KeePas jest po prostu źle napisany.
Pozdr.
Oto co się dzieje, gdy uruchomimy KeePass'a na prawach administratora, a KeeFarce na prawach użytkownika.
D:\x64>keefarce
[.] Injecting BootstrapDLL into 4416
Process found, but OpenProcess() failed: 5
[.] Done! Check %APPDATA%/keepass_export.csv
Otrzymujemy komunikat:
"Process found, but OpenProcess() failed"
i pomimo, że dalej jest napisane "Done", w katalogu nie pojawia się plik csv z hasłami.
Pozdro
Korzystam z linuxa. Nic mi nie grozi
Po pierwsze udostępnianie nawet fragmentu kodu programu do wykradania baz haseł to przesada i jednak portal powinien to wykasować. Na koniec pytanie do "qwerty". Myślisz, że od konkretnego systemu zależy bezpieczeństwo? To czemu nie ma na świecie samych linux-ów?
Prześlij komentarz