Paź
29

Uważaj do kogo mailujesz

autor: p____h  //  ::easy::, Security

Wpadł mi dziś w ręce pewien artykuł. Pierwsze skojarzenie: o ktoś z GW przypomniał sobie o zagrożeniu wynikającym z typosquattingu (i nie ironizując, jest to zagadnienie dość poważne – zwłaszcza, że dodając tutaj spoofing nagłówków mailowych można otrzymać naprawdę ciekawe efekty).
Skojarzenie drugie (które dotyczy odpowiedzi na opisany eksperyment) to pytanie, na które postaram się odpowiedzieć w poniższym wpisie – czy rzeczywiście nie istnieje sposób na wyeliminowanie zminimalizowanie pomyłek/literówek podczas wysyłania maili?


Zapewne pojawią się głosy, że przesyłanie ważnych dokumentów drogą mailową jest złe/głupie – zwłaszcza, że istnieje wiele innych sposobów, w jakich można tego dokonać (chociażby DMSy). Pozostańmy jednak na chwilę tradycjonalistami i zastanówmy się czy istnieją jakieś ciekawe (czy nawet finezyjne) rozwiązania dla e-maila. Pomysły dotyczyć będą tylko firm, których polityka bezpieczeństwa zabrania pracownikom wynoszenia dokumentów poza jej siedzibę, czy też wysyłania ich z publicznie dostępnych [czyt. darmowych] skrzynek. Mówiąc w skrócie – każdy z pracowników ma swój komputer, w którym zainstalowany jest klient pocztowy (MUA).

Chyba każdy, kto z informatyką ma choć trochę wspólnego zada teraz pytanie: o czym tu dyskutować? Szyfrowanie załatwi sprawę!. I rzeczywiście – załatwi… gdyby nie jedno (a raczej dwa) ale… Po pierwsze, ludzie w firmie zmieniają się często. Edukowanie każdego nowego pracownika czym jest klucz publiczny/prywatny (zwłaszcza, że przecież nie wszystkie firmy muszą być związane z IT) byłoby za drogie (są ludzie, którym wyjaśnianie jak używać chociażby PGP zajmie więcej niż pół godziny). A nawet gdyby się to udało – warto zastanowić się również nad ergonomią. Po drugie – podstawowym zagadnieniem jest tutaj komunikacja. Wysyłając zaszyfrowanego maila na zły adres zyskujemy jedynie pewność, że ktoś obcy go nie odczyta. Otwarty nadal pozostaje problem, że mail nie dotarł do tego, do kogo dotrzeć miał.

Zastanówmy się teraz trochę nad polityką bezpieczeństwa firmy. Jeśli zakłada ona, że kontaktujemy się tylko i wyłącznie z firmą X i Y (odpowiednio domena x i y) to warto przemyśleć rozwiązanie dość brutalne – tj. filtr na pocztę wychodzącą. Wtedy mamy pewność, że e-mail wysyłany na inne domeny nie zostanie dalej przepuszczony. Z bardziej finezyjnych pomysłów mogłoby być również zainwestowanie w sniffing. Sniffer analizowałby pakiety SMTP i na podstawie tej analizy decydował czy mail wysyłany jest na domenę, na którą rzeczywiście wysłany zostać powinien. Zajmijmy się jednak trochę mniej finezyjnymi pomysłami. Skoro narzucamy pracownikom wysyłanie maili tylko ze służbowych komputerów (co jest moim zdaniem zdrowym podejściem) to niech te komputery wyposażone będą w specjalne MUA.

Co znaczy słowo specjalne? Ano takie, które minimalizowałoby ryzyko popełniania literówek chociażby poprzez kontakt z użytkownikiem. Tak jak w powyżej opisanych pomysłach potrzebna byłaby nam pewna baza maili, na które chcielibyśmy wysyłać nasze e-wiadomości. Oczywiście tutaj działanie nie byłoby tak brutalne. Nie odrzucalibyśmy błędnie wysłanych e-maili, jedynie przed samym procesem wysłania ostrzegalibyśmy przed potencjalną literówką. Patrząc na przykład z GW taką bazę udałoby się stworzyć stosunkowo prosto. Już samo *.gov.pl rozwiązałoby sprawę kilku pomyłek. Jak mogłoby to wszystko działać? Chociażby prosty filtr na pole input, które podświetlane byłoby na czerwono/zielono. Gdy pracownik zobaczy czerwony kolor zapewne jeszcze raz sprawdzi co jest nie tak z wpisywanym adresem. Jeśli mamy do czynienia z webmailem to można zmodyfikować go do formy sprawdzania zmiennych wysyłanych przez przeglądarkę [czyt POST]. Działałoby to wszystko jak web-debugger w tle, który wysyłałby maile dopiero po analizie odpowiednich pól. Korzystając z potocznie znanego faktu, że człowiek jest leniwy – można zaimportować pomysł z wielu obecnych MUA – tj. książka adresowa z auto-uzupełnianiem. Tylko, że tutaj system uzupełniałby tylko nazwy domen.

Wróćmy do przykładu podanego przez GW, a raczej odpowiedzi jaką dostali:

Adresy internetowe pozbawione kropki nie są oficjalnymi, prawnie chronionymi domenami polskich instytucji państwowych. Trudno byłoby zastrzec wszelkie ich kombinacje, z użyciem wszystkich możliwych znaków interpunkcyjnych.

A kto mówi tu o zastrzeganiu czegokolwiek? Zamiast zakazów na rejestrowanie takich domen wypadałoby ustawić zakaz na wysyłanie maili na takie domeny. I nie mówię tu o blacklistach (które rzeczywiście nie zdadzą egzaminu), a o najprostszych możliwych whitelistach po stronie użytkowników wysyłających e-maile.

Jest jeszcze jeden pomysł, który w przypadku eksperymentu GW mógłby zadziałać (zakładając, że maile były wysyłane ze służbowych komputerów, co patrząc na przykłady jest założeniem błędnym). Mam tu na myśli sprawdzanie właściciela domeny, na którą wysyłamy wiadomość:

nslookup
set q=NS
cbagov.pl
cbagov.pl       nameserver = ns1.netart.pl
cbagov.pl       nameserver = ns2.netart.pl
cbagov.pl       nameserver = ns3.netart.pl

Myślę, że ciężko byłoby coś takiego przegapić. Problem pojawia się jednak, gdy chcemy przenieść takie rozwiązanie na inne firmy. Można spróbować zmusić system najpierw do wygenerowania adresów ewentualnie poprawnych (czyli z góry zakładamy, że popełniono literówkę), a następnie sprawdzenia właścicieli wygenerowanych domen i wybrania najbardziej prawdopodobnej. Wbrew pozorom, wspomniane zdanie: generowanie ewentualnie poprawnych adresów nie byłoby wyjątkowo mocno czasowo kosztowne. Biorąc pod uwagę tylko literówki (tj. nie trafiono w sąsiedni klawisz – czyli 4 możliwości) i przepermutowanie sąsiednich liter (tutaj przyda nam się odległość Levenshteina) likwidujemy sporo możliwości. Nie zmienia to jednak faktu, że opisywany właśnie [czyt. ostatni] pomysł ma status „wpadło mi kilka sekund temu do głowy, może ktoś na tej podstawie wymyśli coś fajniejszego”. Także, gdyby komuś udało się jakoś bardziej ulepszyć ostatni pomysł – zapraszam do komentarzy, nie zapominając oczywiście o tych, którzy chcieliby odnieść się do pozostałej części wpisu (oczywiście również zapraszam do komentowania moich przemyśleń).

  

Dodaj komentarz

*

Audio-CAPTCHA