Punkt A1 Injection nie dotyczy tylko błędów typu SQL Injection. Coraz częściej dostęp do danych jest realizowany za pośrednictwem jakiejś warstwy abstrakcji (np. ORM). Użycie tego typu rozwiązań nie gwarantuje odporności na błędy typu injection, np. CWE-564: SQL Injection: Hibernate.
W piątek mój bardzo stary komputer zakończył swój żywot. Bardzo stary, bo jego początek datował się gdzieś w okolicy roku 2001- 2002. Najpierw uporczywie rzucał BSOD, a potem zaśmierdział paloną elektroniką. Najwięcej zabawy miałem jednak z odzyskiwaniem danych z dysków. Nie to, by się uszkodziły, ale nie było też tak, że mogłem sobie dysk po prostu podpiąć i odczytać dane.
A mnie to Lotto. Szansa na trafienie szóstki to 1:13 983 816. Hasło o długości 10 znaków składające się z samych małych liter to 141 167 095 653 376 możliwości. Nawet zakładając, że jest 10 prób na zgadnięcie hasła, to i tak mam większe szanse na zgarnięcie puli w kumulacji, niż trafienie we właściwe hasło. A jak już mi się przypadkiem uda trafić w prawidłowe hasło, to się okaże, że nadal nie mogę wyprowadzić pieniędzy, bo jest jeszcze coś, co się nazywa autoryzacja transakcji.
PIN karty to (zwykle) 4 cyfry. Tylko 10000 możliwości, a jednak samo skopiowanie paska magnetycznego nie wystarcza, jeszcze skimmerzy po coś montują te kamerki...
Od dłuższego czasu mam pewną ideę. Pisałem już dawno temu, że jestem znudzony wyszukiwaniem podstawowych dość podatności związanych z walidacją danych wejściowych, kodowaniem na wyjściu, prostymi przypadkami SQL injection czy błędami kontroli dostępu do funkcji i do danych. Wyszukiwanie podstawowych przypadków tych wymienionych podatności to praca mozolna, metodyczna, ale również do pewnego stopnia mechaniczna. Nie twierdzę, że w czysto mechaniczny sposób uda się zidentyfikować 100%25 podatności tego typu, z doświadczenia jednak wiem, że jeśli w aplikacji są podatności, to często występują również takie proste błędy.
Moja idea zakłada(ła) nauczenie testerów funkcjonalnych prostych technik, które pozwolą na zidentyfikowanie wymienionych typów podatności. Muszę przyznać jednak, że pomysł ten muszę chyba jednak w pewnym stopniu zrewidować. Teraz coraz bardziej dochodzę do wniosku, że oprócz nauczenia tego, jak mechanicznie szukać prostych podatności, konieczne jest obudzenie w ludziach ukrytego upierdliwca/anarchisty/destruktora.
Mam trackballa. Starego. Takiego obsługiwanego kciukiem. Ostatnio wpadłem na pomysł by kupić sobie nowego trackballa, ale dla leworęcznych. Taki neurobik. A może bardziej zmiana mojego “modelu ruchu”, bo prawe ramię (bark i okolice) regularnie daje mi do zrozumienia, że ma dość.
Szybkie poszukiwania pokazują, że:
jest mały wybór trackballi (obsługiwanych kciukiem),
trackballe tego typu dla leworęcznych są jak Yeti,
ogólnie trackballe są drogie (moim zdaniem – irracjonalnie),
Zastanawiam się, czy ja coś przespałem? Przyznam się, że ten trackball, którego używam, to wygrana. Nie mam pojęcia ile kosztował w czasie, gdy go zdobyłem (i jak trackballe były popularne w tym czasie, jaki był wybór). A czasy to były zamierzchłe bardzo, bo razem z nim wygrałem pendrive 256 MiB, który na owe czasy był duży i szybki. Szybki pozostał nawet jak na obecne czasy (wciąż go używam), a pojemności komentować nie muszę :)
Ewentualnie mogę jeszcze sprawić sobie myszkę, podłączyć je jako drugie urządzenie wskazujące i uprawiać neurobik pełną gębą, raz korzystając z trackballa, raz z myszki. Trackball ma jednak taką przewagę nad myszką, że potrzebuje mniej “przestrzeni operacyjnej”. Ewentualnie czy ktoś z Was ma doświadczenia z trackballem uniwersalnym (np.: Logitech Trackman Marble)?
Nie mam czasu/ochoty/weny na bardziej konkretny wpis, choć tematów trochę by się znalazło. W ramach dania znać, że trwam, krótka historia.
Stałem się szczęśliwym(?) posiadaczem telefonu z Androidem. Konkretnie to Wt19i. Wybrałem go z dwóch powodów: był tani i miał Androida 4 (no, miał po upgrade). Powoli się do niego przyzwyczajam, dostrzegam zarówno dobre, jak i złe strony. Najśmieszniejsze jest to, że z Androidem miałem trochę do czynienia od strony bezpieczeństwa aplikacji, ale do tego celu wystarczał mi emulator. A nie, przepraszam. Najśmieszniejsze jest to, w jaki sposób podłączałem telefon do swojej sieci WiFi. Okazało się, że najłatwiejszym sposobem było:
podpięcie do sieci mojego starego AP i założenie otwartej sieci (inny mój nie taki nowy nabytek to RB751G-2HnD),
podpięcie telefonu do otwartej sieci,
umieszczenie hasła do WiFi (63 losowe znaki) na WWW,
skopiowanie hasła ze strony do telefonu,
Za paranoję się czasem płaci...
Oryginał tego wpisu dostępny jest pod adresem os.urandom(1)
Jeśli kogoś interesuje kryptografia, to 11 czerwca startuje kolejna edycja kursu ze Stanford University. Jak rozumiem będzie to ten sam materiał, który był prezentowany od 12 marca. Druga część kursu (kolejne tematy) mają pojawić się jesienią. A przynajmniej jak na razie taka wersja jest obowiązująca:
The class starting on June 11 is mostly identical to the crypto class that just ended. It will run for six weeks and cover the same material. The extended class with new material is planned for the fall and will be called Crypto II.
Polecam. Materiał ciekawy, zadania programistyczne... Cóż, powiedzmy, że najwięcej problemów miałem ze zmieszczeniem wystarczająco dużych struktur danych w pamięci na moim 32 bitowym systemie. Oczywiście pisałem w Pythonie (zupełnie wystarczające narzędzie do zadań). Jeśli ktoś ma 64 bitowy system, to zadania można uznać za trywialne. Może ciut trudniej było po przejściu do kryptografii asymetrycznej, ale znów problemem nie było programowanie, tylko liczenie. Na początek kartka i długopis, a potem było już z górki.
A ja jestem na siebie z lekka zły, bo w Final Exam przez głupie pomylenie ½n z 1/n2 zamiast tradycyjnych 100%25 mam tylko 92%25. Chlip...
Miałem okazję ostatnio prowadzić kilka iteracji szkolenia dotyczącego bezpieczeństwa aplikacji internetowych. Było to ciekawe, ale i wymagające doświadczenie (również fizycznie, zwykle nie pracuję głosem). Po podsumowaniu ankiet oceniających szkolenie jestem z siebie dumny :) Generalnie oceny powyżej 5 punktów (zakres 1 – 6).
Szkolenie było interesujące dla mnie również z innego powodu. Do czasu, gdy obracam się w grupie ludzi związanych z pewnym tematem, wiele rzeczy jest “powszechnie znane” i “oczywiste”. Gdy nagle zmienia się otoczenie, okazuje się, że to wcale tak oczywiste nie jest...
Atak na profil zaufany ogranicza się do przejęcia kontroli nad skrzynką poczty elektronicznej użytkownika, co umożliwia całkowite przejęcie wykorzystania profilu zaufanego przez atakującego.
Chodzi oczywiście o funkcję “przypominania” hasła. ePUAP nie jest ani pierwszą, ani jedyną aplikacją, w której mechanizm ten został zaimplementowany źle.