Paweł Goleń, blog

Moja emigracja powoli dobiega końca. Z jednej strony to dobrze, z drugiej – trochę szkoda. Dobrze, bo chyba jeszcze nigdy nie miałem tak bardzo intensywnego wejścia w nową rolę. Szkoda, bo w Londynie zostało jeszcze tyle rzeczy do zrobienia i tyle miejsc do zobaczenia...

Oryginał tego wpisu dostępny jest pod adresem I (prawie) po emigracji

Autor: Paweł Goleń

Drogi (pen)testerze! Jeśli chcesz odnaleźć się w większej organizacji potrzebujesz szerszej perspektywy. Testy nie są celem samym w sobie. By to zrozumieć, powinieneś mieć przynajmniej oględne wyobrażenie o zarządzaniu ryzykiem i rozumieć pojęcia takie jak risk , impact oraz likelihood.

Choć modele są różne, czasami różniące się w detalach i pewnych definicjach, dobrym wstępem będzie przeczytanie dwóch publikacji NIST:

Do tego dodałbym dwie domeny z CISSP:

  • Security and Risk Management
  • Asset Security

Oryginał tego wpisu dostępny jest pod adresem Szersza perspektywa

Autor: Paweł Goleń

Gdy pierwszy raz usłyszałem, że Google pracuje nad czymś nowym (Inbox), niespecjalnie mnie to ekscytowało. Gmail był dla mnie wystarczająco dobry. Zresztą używam poczty w specyficzny (specyficzny , nie unikalny) sposób:

  • w skrzynce odbiorczej mam nową pocztę;
  • rzeczy zrobione mam w archiwum;
  • rzeczy, które przeczytałem, ale pozostają do zrobienia są...
Czytaj dalej...

No dobra, przesadzam, jeszcze nie tydzień, ale prawie. I ta obczyzna nawet nie taka bardzo obca jest. Przecież taki Millennium Bridge to nic innego jak przerośnięta Kładka Ojca Bernatka :)

Ponieważ nie mam pod ręką (swojego) zdjęcia Millennium Bridge, poratuję się innym mostem:

Czytaj dalej...

No i stało się, przyszła i na mnie pora...

Na szczęście:

  • Nie na zmywak;
  • Na ograniczony czas.

P.S. W ramach zabijania czasu kupiłem sobie książkę pod wiele mówiącym tytułem Marsjanin. Bardzo musiałem się powstrzymywać, by nie skończyć jej przed wylotem. Na szczęście było kilka innych ciekawych rzeczy do przeczytania w ostatnim czasie, na przykład:

Oryginał tego wpisu dostępny jest pod adresem Emigracja

Autor: Paweł Goleń

Jazda na rolkach dawno nie sprawiła mi tyle przyjemności. Było prawie jak za starych, dobrych czasów. Te czasy teraz nie są złe, ale jakoś czasu mniej i więcej pośpiechu. Wczoraj czasu też było niewiele, ale jednak jakoś tak zupełnie na luzie udało mi się pojeździć, bez spieszenia się i ciągłego spoglądania na zegarek.

17 kilometrów w 1:11 nie jest największym wyczynem, ale chyba właśnie dlatego było tak fajnie :)

Ale żeby nie było tak kompletnie bez narzekania, kilka rzeczy jednak jest mniej fajnych:

  • bardzo dużo ludzi zamiast patrzeć gdzie idzie, patrzy w swój telefon;
  • nawierzchnia w niektórych miejscach jest coraz gorsza (jeździ się coraz wolniej).

Oryginał tego wpisu dostępny jest pod adresem Prawie jak za starych dobrych czasów

Autor: Paweł Goleń

Dzisiaj się wykazałem. Wyjątkowo. Przez dość długi czas szukałem sprytnej funkcji robiącej jailbreak detection. Funkcji tej nie było widać w żaden oczywisty sposób, mimo to aplikacja zamykała się chwilę po uruchomieniu...

Ciekawy temat? No jednak nie bardzo. To nie był jailbreak detection , tylko zwykły crash, który powodował xCon i Snoop-it (każde z osobna, niekoniecznie w połączeniu). Tak to jest, jak się założy, że coś jest, a tego nie ma.

Przy okazji – czasem ios-ssl-kill-switch wcale nie jest najlepszym sposobem na pozbycie się Certificate Pinningu. I to wcale nie dlatego, że ktoś podstępnie użył OpenSSL.

Oryginał tego wpisu dostępny jest pod adresem Jak znaleźć coś, czego nie ma

Autor: Paweł Goleń

W ramach ciekawostki – najpierw zapraszam do przeczytania tego rozdziału: 6.3 SPA Traffic Analysis.

Trochę kontekstu – wiadomość (przed base64) ma następujący format:

Salted__SALTSALT0123456789ABCDEF

Gdzie:

  • Salted__ jest pozostałością z Crypt::CBC;
  • SALTSALT jest saltem;
  • Dalsza część jest blokiem/blokami ciphertextu.

Po zakodowaniu ta przykładowa wiadomość ma następujący format (z pominięciem paddingu):

U2FsdGVkX19TQUxUU0FMVDAxMjM0NTY3ODlBQkNERUY

By utrudnić łatwe zidentyfikowanie pakietu zawierającego payload (wiadomość) SPA usuwany jest ten “nagłówek”:

U2FsdGVkX1

Jest tylko mały problem – całe Salted__ po zakodowaniu do base64 wygląda tak (ponownie, z pominięciem paddingu):

U2FsdGVkX18

Coś jakby dłużej, prawda? A z czego to wynika czytelnik ustali sam (mam nadzieję).

Pytania:

  • W jaki sposób sprawdzić, czy dany string base64 jest zakodowaną wiadomością SPA?
  • Jakie jest prawdopodobieństwo false positive w tym przypadku (błędnego zidentyfikowania losowych danych jako SPA)?

Tak, wiem:

Traffic analysis is a powerful technique that is used to extract information from network communications, and the fwknop project is not designed to try and thwart a sophisticated traffic analysis effort.

Ale technika, o której piszę, wcale nie łapie się na sophisticated traffic analysis effort.

Oryginał tego wpisu dostępny jest pod adresem fwknop – ciekawostka

Autor: Paweł Goleń

Przez wiele lat unikałem produktów Apple jak tylko mogłem, a spotkania z nimi były dla mnie dość traumatyczne. Czułem się jak w obcym kraju o zupełnie innej kulturze.

Skąd ta zmiana? Zapotrzebowanie na ludzi, którzy potrafią zrobić krzywdę aplikacji na iOS jest coraz większe, a okazuje się, że wcale nie jest prosto takich znaleźć, Android jest jednak dużo popularniejszy. Od dłuższego czasu zastanawiałem się nad poćwiczeniem czegoś nowego, tak więc to jest pierwsza część motywacji – iOS. W kolejce stał jeszcze Windows Phone (czy jak to się tam teraz nazywa), ale jednak iOS wygrał.

Druga decyzja – jakie urządzenie. Na początku myślałem o kupnie iPhone 4s, ale po dłuższych rozważaniach doszedłem do wniosku, że to nie jest najbardziej racjonalny pomysł. Po prostu do niczego więcej niż eksperymentów bym go nie wykorzystał. W związku z tym wybór padł na iPad, konkretnie na iPad Air jako na rozsądny1 kompromis między ceną i możliwościami wykorzystania.

[1] Dla pewnych konkretnych wartości pojęcia “rozsądny” :)

Oryginał tego wpisu dostępny jest pod adresem No i stało się, mam iPada

Autor: Paweł Goleń

Tak, chodzi o to: Attack of the week: FREAK (or 'factoring the NSA for fun and profit').

W takich przypadkach staram się zrozumieć co (i jak) się dzieje, nie tylko dlatego, że to ciekawe, ale również dlatego, że pozwala mi to zachować “zdrowy rozsądek” i dystans. A z tym drugim w wielu przypadkach bywa problem. Ostatni przykład – POODLE.

W przypadku FREAK problem w tym, że sama sekwencja komunikatów prowadząca do RSA-EXPORT nie była opisana. Być może dlatego, że były to różne sekwencje dla różnych bibliotek. Na szczęście jest strona, na której można sprawdzić, czy dana przeglądarka jest podatna, a to oznacza tylko jedno – gołe pakiety :)

Dla IE 11 na Windows 8.1 sekwencja prowadząca do błędu wygląda następująco:

Client –> Server: Client Hello Server –> Client: Server Hello –> TLSRSAWITHAES-128CBC_SHA Server –> Client: Certificate Server –> Client: Server Key Exchange –> RSA-EXPORT Server –> Client: Server Hello Done Client –> Server: Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message (...)

I w efekcie mamy:

TLS 1.1, AES with 128 bit encryption (High); RSA with 512 bit exchange

Oryginał tego wpisu dostępny jest pod adresem FREAK

Autor: Paweł Goleń