12:11
26/10/2012

Matematyk Zachary Harris niezmiernie zdziwił się, kiedy odebrał e-maila od rekrutera z Google. Wiadomość zachęcała do rozpoczęcia procesu rekrutacji i chwaliła matematyka za zdolności programistyczne oraz znajomość Linuksa. Zachary był nieufny, bo wcale nie uważał się za Linuksowego guru… Zwęszył więc podstęp i znalazł poważną podatność na atak — nie tylko na serwerach Google.

Czy to specyficzna rekrutacja do Google?

Obserwując pracę niektórych rekruterów można odnieść wrażenie, że to mocno niezorientowani w branży ludzie, którzy masowo wysyłają e-maile zachęcające do pracy na stanowisku X do osób, które z wymaganiami stawianymi temu stanowisku nie mają zbyt wiele wspólnego. Ot, LinkedIn przypadkiem zwrócił odpowiedni “keyword” na ich profilu.

Zachary jednak nie zignorował e-maila od rekrutera z Google, ale zaczął się zastanawiać, czy przypadkiem ta z pozoru nieadekwatna do jego zdolności propozycja nie jest elementem rekrutacji na zupełnie inne stanowisko…

Zachary Harris

Zachary Harris (fot. Wired)

Matematyk zaczął więc badać źródło e-maila i zauważył w nagłówkach sygnaturę DKIM. Standard. Ale matematykowi w oczy rzuciło się, że klucz który ją wygenerował był dość krótki (512 bitów). Zachary nie sądził, żeby taka firma jak Google pozwoliła sobie na taką wpadkę, pomyślał więc że faktoryzacja tego klucza może być jego ukrytym zadaniem rekrutacyjnym (w końcu był matematykiem!).

Jak pomyślał, tak zrobił. A po “złamaniu” klucza, wykorzystał go do podpisania fałszywego e-maila, wysłanego od jednego założyciela Google — Sergey’a Brina do drugiego — Larry’ego Page’a, w którym zachwalał swoją stronę internetową. Ponieważ zespoofowany przez matematyka e-mail był podpisany poprawnym kluczem, przeszedł walidację DKIM i wylądował w skrzynce odbiorczej Page’a.

Google nie odpowiedziało, ale błąd naprawiło

Matematyk jednak odpowiedzi się nie doczekał ale zauważył, że 2 dni później, Google zmieniło klucz wykorzystywany do DKIM na 2048 bitowy. A więc któryś z googlersów domyślił się w czym rzecz. Co gorsza, do Zacharego dotarło, że chyba jednak faktoryzacja klucza nie była zadaniem rekrutacyjnym…

Jak działa DKIM?
Sygnatura DKIM umieszczona w nagłówkach e-maila służy temu, aby serwer pocztowy odbiorcy mógł zweryfikować, czy e-mail rzeczywiście został wysłany przez serwery z domeny nadawcy (a nie np. zespoofowany). Weryfikacja polega na zapytaniu DNS o rekord TXT w domenie nadawcy. W rekordzie powinien znajdować się klucz DKIM pozwalający poprawnie zweryfikować sygnaturę z e-maila.

Przykład sygnatury od Google:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=date:from:to:message-id:subject:mime-version:content-type:content-transfer-encoding:content-disposition; bh=seTEg3wlfCeoqQt1FD54PlgMApbvE0OnzHHORyyrwlw=;
b=jL/Dw06dEEleG8YQSm0ZmlMVoDzfy2g4cDWA/NceLTocnD
Rzh3zpfQX91IRnu7qNAaao23+0E0nFT3NnfGuyS7gC7f17vG
ZQJ2IhsW/xrJ/LQ77ogGf/dbaCLHX016mmSmNXq4oPfsoLwn
O8MjnP3kj341mDNf5750WlpNPNrV2e/7ZBImBt8ZxFGMe6fX
jQVlzzU2MYE+JOs1bF8KisU1sbi+kzdq8NP8qz+dvdAxbXez
/7C57yPXZhkqf8iWO8Hn7y/n2ekcDXE+9bYK5cPiOZY0eUwd
1odNRF7FhmuCBIkO6LjF9/373sGIw/6fcJQ7plyhE1ExooM7
j9H7FUuw==

Przykład zapytania weryfikującego:
Makabra:~ pk$ host -t TXT 20120113._domainkey.google.com

20120113._domainkey.google.com descriptive text “k=rsa\; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5kQ31/aZDr
eQqR9/ikNe00ywRvZBFHod6dja+Xdui4C1y8SVrkUMQQLOO49UA+ROm4e
vxAru5nGPbSl7WJzyGLl0z8Lt+qjGSa3+qxf4ZhDQ2chLS+2g0Nnzi6co
UpF8r” “juvuWHWXnzpvLxE5TQdfgp8yziNWUqCXG/LBbgeGqCIpaQjla
A6GtPbJbh0jl1NcQLqrOmc2Kj2urNJAW+UPehVGzHal3bCtnNz55sajug
Rps1rO8lYdPamQjLEJhwaEg6/E50m58BVVdK3KHvQzrQBwfvm99mHLALJ
qkFHnhyKARLQf8tQMy8wVtIwY2vOUwwJxt3e0KcIX6NtnjSSwIDAQAB”

Nie tylko Google podatne na spoofing

Zachary zaczął testować inne domeny i to, jak implementują DKIM. Okazało się, że z (za) krótkich, 512-bitowych kluczy korzystają także eBay, Yahoo, Twitter i Amazon. Da się je “złamać” w 72 godziny w chmurze Amazonu, wydając na to 75 dolarów

Trochę mocniejsze, bo 768 bitowe klucze DKIM chroniły domeny PayPal, LinkedIn, US Bank oraz HSBC. Tych matematykowi nie udało się złamać ze względu na potrzebną do tego moc obliczeniową. Zasugerował on jednak, że państwa takie jak np. Iran mogą spokojnie sprostać temu wyzwaniu.

Jak duże jest ryzyko i jak się przed nim chronić?

Złamanie czyjegoś klucza DKIM umożliwia nam wysyłanie fałszywych wiadomości e-mail w czyimś imieniu. Kilka razy już mieliśmy okazję się przekonać, jak wiele daje zwykły spoofing; przypomnijmy chociażby studenta, który podszywając się pod e-mail z Kancelarii Prezydenta RP dostał pracę w TVP oraz PAP, które opublikowało fałszywą wiadomość, bo ktoś podszył się pod e-mail Beaty Kempy. Autorzy tych ataków nie mieli dostępu do kluczy DKIM, istniało więc ryzyko, że ich wiadomości zostaną odrzucone przez serwery pocztowe odbiorców (choć to zależy od ich konfiguracji). Mając klucz DKIM ofiary pod którą chcemy się podszyć, jesteśmy pewni, że e-mail trafi do skrzynki odbiorcy, a nie do spamu — DKIM to wszakże technologia wymyślona po to, aby spoofing ukrócić…

Spear phishing

Taki błąd w kontekście Google jest o tyle zabawny, że firma ta przecież jest właścicielem jednak z najpopularniejszych usług pocztowych — GMail. To raz, a dwa, że sfałszowanie sygnatury DKIM może mocno pomóc różnym rzezimieszkom w przeprowadzaniu ataków spear-phishing, czyli mocno spersonalizowanych prób phishingu. Ofiarą tego typu ataku Google już raz padło. Problem dotknął też RSA i kilku innych dużych firm — ale trzeba lojalnie podkreślić, że nie zawsze zabezpieczenia softwarowo-hardware’owe są w stanie sobie z nim poradzić, bo ataki wycelowane są w ludzi, a nie komputery. Dlatego warto jest inwestować w uświadamiające szkolenia pracowników — niektóre typy phishingu może wykryć tylko człowiek.

Czy masz DKIM na swoim DNS?

Podsumowując, sprawdźcie, czy klucze na waszych serwerach pocztowych, o ile wykorzystujecie DKIM, są odpowiedniej długości. Pamiętajcie też, aby sprawdzić DNS i usunąć przestarzałe rekordy dotyczące DKIM. Atak można bowiem przeprowadzić nawet jeśli serwer pocztowy w ogóle nie korzysta z DKIM, ale w DNS-ie pozostają resztki starej konfiguracji (tj. klucz).

Z przeprowadzanych przez nas komercyjnie audytów bezpieczeństwa wynika, że bardzo często do podatności na ataki prowadzą pozostałości starej, zapomnianej bo niepotrzebnej już konfiguracji jakiegoś oprogramowania/usługi na serwerach produkcyjnych…

Przeczytaj także:



35 komentarzy

Dodaj komentarz
  1. A dostał pracę albo chociaż zwykłe “dziękuję”? :P

    • “Matematyk jednak odpowiedzi się nie doczekał”

    • a czy pomogłeś ofiarom powodzi albo huraganu?

  2. 1. Gość dostał tą pracę czy nie ? :) Albo czy chociaż Google mu podziękowało ?
    2. Co oni mają z tym Iranem ? Wszystkie ‘evil ideas’ to tylko tam ? A Chiny to pies ? Handlują z USA to już nie bawią się w internetową partyzantkę ? Please…

    • Chiny mają środki do złamania n bitowego klucza, Iran stać tylko na 768.

    • Chiny to fizycznie produkują sprzęt, a co za tym idzie nie muszą się w łamanie kluczy bawić. Starczy “mały dodatek” do firmware np routera i już cała sieć dostępna. Albo do bios-u płyty głównej i wszystkie napędy z kompa.

    • Dokładnie – co ma z tym wspólnego Iran? Niestety, widocznie przejmuje rolę wcześniej przypadłej ZSRR i Chinom.

  3. A czytać ze zrozumieniem potrafisz ?

    • A Ty klikać w Reply? :)

    • lol

  4. http://so.pwn.pl/zasady.php?id=629618

    [243] 66.1. Nazwiska zakończone w piśmie:
    a) na spółgłoskę wymawianą, np. Auber, Bush, Eisenhower, Eliot, Pasteur;
    b) na spółgłoskę niewymawianą, np. Anouilh, Diderot, Jouvet, Mitterrand, Villon; wyjątkiem są niewymawiane spółgłoski -s, -x (zob. 66.5., 66.7.);
    c) na -y po samogłosce, np. Disney, Macaulay, Shelley;
    otrzymują końcówki polskie bez apostrofu

    “Specjaliści” od bezpieczeństwa komputerów nie muszą oczywiscie znać zasad języka polskiego.

    • A które nazwisko w tekście zostało źle zapisane (bo nie widzę ani u Brina, ani u Page’a spółgłoski na końcu)?

    • @Piotr Konieczny: Chyba chodzi o “Sergey’a”, do imienia ta zasada też się raczej stosuje.

    • @Michał: a kogo to obchodzi?

    • LawL, SQli detected
      http://so.pwn.pl

    • Ja uwagę zwróciłem na adres URL: “SO PWN” (DKIM). ;-)

    • Na przykład mnie.

    • To nie strona specjalizująca się w zawiłej gramatyce, tylko w bezpieczeństwie, a tekst jest wystarczająco czytelny.

    • ” c) na -y po samogłosce, np. Disney, Macaulay, Shelley;”

      No tak, w końcu zasady trzeba dostosować do polaczkowej wymowy: “Disnej”, “Makałlaj”, “Szelej” xD Prawda jest taka, że tymi bezsensownymi zasadami, gdzie wstawić kreskę, przejmują się tylko bezrobotni humaniści niemający żadnego celu w życiu, dilujcie z tym.

    • Niebezpiecznik mógłby w ramach ujednolicenia z resztą świata pisać w angielskim – bonus: mniej grammar nazi niż w języku polskim ;)

  5. Czy ktoś może wskazać gdzie jest ten klucz w pokazanej wiadomości ? Nie potrafię znaleźć niczego co miałoby długość 512 bitów w przykładowej sygnaturze od Google podanej w tym artykule (czy też 384 jak napisane na wiki http://en.wikipedia.org/wiki/DomainKeys_Identified_Mail#2012_usage_vulnerability )

  6. “Kilka razy już mieliśmy okazję się przekonać, jak wiele daje zwykły spoofing; przypomnijmy chociażby studenta, który podszywając się pod e-mail z Kancelarii Prezydenta RP dostał pracę w TVP oraz PAP, które opublikowało fałszywą wiadomość, bo ktoś podszył się pod e-mail Beaty Kempy”…. a pisaliście, ze te chłopak dostał wpie..dol od tzw “nieznanych sprawców”?
    zamiast informatyków bredzisław ma inne sposoby na sprawdzanie kluczy

  7. “DKIM-Signature: v=1; a=rsa-sha1; d=linkedin.com; s=proddkim1024; c=relaxed/relaxed;
    q=dns/txt; i=@linkedin.com; t=1350750563;
    h=From:Subject:Date:To:MIME-Version:Content-Type:X-LinkedIn-Class:X-LinkedIn-fbl:
    X-LinkedIn-Template;
    bh=3jd6BbuvGjpvjRb4PYrh3+kZ8Q0=;
    b=ARDmg5ZdDSuCWn1wdc70Hae7JktoicYyuhzS4Vth+y1wiT7j1b8DkjiMWuX5LpUR
    Fw8Q65z967H0DqsyCuWhFk19OfGw35OCxymbmVVpQi5Dn8CAeEc5/7bo/qcsBVyk
    oIscUYz8n3pgCxSXCHtvMXwh/m7d5tnjm0lTegXiaFY=;”

    Coś mi mówiże nie jest to 768, a liczyć mi się nie chce :P

    • A o base64 słyszałeś? (Jeśli nie zrozumiałem sarkazmu to z góry przepraszam)
      Swoją drogę ten klucz b=… jest 1024 bitowy

    • @Maciej: Nie znam się jakoś bardzo, ale próbowałem to zdekodować i wyszło mi nawet krótsze niż przed…?

    • 1024 ? -serio???
      Ja tam się nie znam, ale ten przykładowy wygląda mi na 256 ten skitera na 128 ;-p
      …ale ja się nie znam ;-p

    • 128 bajtow = 1024 bity …

  8. Ech, na “słitfoci” od Wired, Zachary pisze odwrotnie — z jego punktu widzenia ma przed sobą lustrzane odbicie. Z tego, co widzę, jest to opis de-/szyfrowania RSA.
    Ech, Ci reporterzy.
    Ech, to przywiązanie do szczegółów.

    • a może to nie zdjęcie Zacharego a lustra…?

  9. Mam pocztę na zwykłym shared hostingu, próbuję teraz dojść czy wszystko co mogłem skonfigurowałem poprawnie (i czy dostawca hostingu gdzieś nie dał ciała). Zna ktoś jakiś tutorial przeprowadzający przez zabezpieczanie poczty krok po kroku?

  10. Dzieki temu panu polatali nam EXIMa. Podziekowal, choc nie uzywa. PS lata przyszla blyskawicznie, niemal tuz po ujawnieniu problemu. Beat that, MS and Apple.

  11. Dziwi mnie ze sie ciagle na roznych forach chce sie ludziom innych ortografii gramatyki i ogolnie jezyka polskiego uczyc. Czasem to sprawia wrazenie ze krytykujacy nie ma nic wiecej do powiedzenia. Wg. Mnie grafomania koltunstwo i bezproduktywne bicie piany. Z perspektywy zagranicy wielokrotnie przekonalem sie ze mniej wazne czy mowi/pisze sie poprawnie o ile tylko przekaz da sie zrozumiec. Duzo wazniejsze jesr zeby miec cos do powiedzenia. Na wszystkich portalach to widac a politycy w tym sa mistrzami tj. W gadaniu o malo waznych bzdetach w celu wymigania sie od rzeczowej odpowiedzi na temat.

    • Tylko że język polski jest jednak specyficzny – trudniejszy i bardziej restrykcyjny, niż angielski. W angielskim nie ma odpowiednika RJP, i w praktyce zasady języka nie są nawet jednoznacznie określone (Amerykanin i Brytyjczyk będą pisać inaczej, zgodnie z konwencjami swoich krajów), w dodatku nie mają tak skomplikowanej ortografii i odmiany.
      Dlatego pisząc po polsku, wystawia się jakieś świadectwo własnemu wykształceniu (i w pewnym sensie też oczytaniu, a co za tym idzie poziomowi kultury czy inteligencji). Jak Polak napisze, że ,,rozómie o co f tym fszystkim hodzi”, to jest to rażące. Anglik ma mniej możliwości popełniania tak rażących błędów – musiałby pewnie napisać w odpowiedzi na wypowiedź z cytatem z Szeskpira: “Who the f*ck is that Shakaspaere?” – wtedy też ktoś by się zapewne przyczepił.
      I chyba dlatego właśnie ludziom chce się poprawiać innych na różnych forach. Oczywiście zgadzam się, że nie powinno się tego robić w celu odwrócenia uwagi od istoty problemu – ale chyba nie ma się co oburzać, że ktoś zwróci uwagę na błąd w artykule (od dziennikarza czy redaktora można chyba wymagać jakiejś elementarnej kultury językowej).

  12. Heh nie mają poczucia humoru w tym google. Za samo to powinni mu dać pracę.

  13. z ciekawości wysłałem przed chwilą maila i widzę nadal 256

    DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
    d=gmail.com; s=20120113;
    h=message-id:date:from:user-agent:mime-version:to:subject
    :content-type:content-transfer-encoding;
    bh=Opn5uLOkDYMlKa4XnjW+VxSLbskfFUB0ysGufbVOXfc=;
    b=ZRYcn6nWhhGn+zB+hko+mlY87Pcu/sGDhjwjj5ME6dOz0vDKSuOKKj8m2/us32DBLD
    [ciach ]==

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: