Paweł Goleń, blog

Zajęty jestem ostatnio i to na wiele różnych sposobów. Chcę tylko zwrócić uwagę na ten post na Niebezpieczniku: Zakupy przez internet za darmo? Poważny problem systemu płatności Sofort. Mam pewne wątpliwości, czy wycofanie przelewu jest rzeczywiście problemem. Mam na myśli to, co się stanie “potem”. Taka akcja to oszustwo, które podpada pewnie pod kilka różnych paragrafów. Przekręt musiałby być naprawdę na dużą kasę, by się opłacać. Zresztą w treści artykułu ten wątek jest też poruszany.

Przejrzałem sobie komentarze pod tym wpisem i mam wrażenie, że ich autorzy mają nieco przyciasne horyzonty (nie, to nie jest obraza). Praktycznie nikt nie zwrócił uwagę na fakt, który poruszył viroos (mówię o komentarzach). Dlaczego ktoś korzysta z usług Sofort (w sensie – integruje się z tym systemem płatności)? Odpowiedź – bo jest to tańsze niż inne dostępne rozwiązania. A dlaczego ktoś z tego korzysta? Dlatego:

Musząc wybrać między obejrzeniem tańczących świnek a bezpieczeństwem, użytkownicy za każdym razem zdecydują się na świnki.

W treści posta pojawia się takie tłumaczenie:

Paweł Fornalski: Podstawą bezpieczeństwa klienta jest to co firma robi z jego danymi i jej zasady etyczne, a nie zastosowane technologie.

Nie do końca zgadzam się z tym stwierdzeniem, ale częściowo jest ono słuszne. Jest ono słuszne w tym względzie, że technologie to jeszcze za mało, by zapewnić bezpieczeństwo. Etyka rzeczywiście ma tutaj również swoje miejsce.

Temat zostawiam Wam do przemyślenia.

Oryginał tego wpisu dostępny jest pod adresem Sofort

Autor: Paweł Goleń

Dziś dla odmiany coś na temat kryptografii. Konkretnie trochę o XOR, jego własnościach i co z tych własności wynika.

Czytaj dalej...

Ten temat po części już poruszałem we wpisie Niekonsekwencje w ASP.NET, ale postanowiłem do niego wrócić. Część rzeczy się powtórzy, więc ewentualne uczucie Deja vu jest uzasadnione. Chodzi o to, w jakich przypadkach ASP.NET sam zastosuje odpowiedni encoding, a w jakim programista musi sam o to zadbać.

Czytaj dalej...

Raz na jakiś czas spotykam się z mechanizmem, którego przeznaczenia nie rozumiem. Albo inaczej – nie jestem w stanie zrozumieć, dlaczego ktoś myśli, że ten mechanizm będzie działać. Na przykład ładnych już kilka lat temu w trakcie pracy nad projektem pewnej aplikacji jej dostawca zaproponował, by wprowadzić dodatkową warstwę szyfrowania przy przesyłaniu formularzy na serwer. Połączenie z serwerem miało być oczywiście realizowane standardowo przy pomocy SSL, natomiast jeszcze sama aplikacja po stronie klienta miała szyfrować dane przed ich wysłaniem do serwera. Miało to być zabezpieczenie przed atakiem typu man-in-the-middle. Ostatecznie funkcja ta nie została zaimplementowana, i dobrze.

Czytaj dalej...

W końcu udało mi się wybrać na dłuższą trasę. Zrobiło się z tego trochę ponad 60 kilometrów, a trasa prowadziła przez cztery dolinki podkrakowskie, Dolinę Prądnika, Dolinę Sąspowską (z małym odbiciem na Złotą Górę), Dolinę Będkowską i Dolinę Kobylańską. Na siłę można jeszcze wspomnieć Dolinę Szklarki, ale to ledwie początek był.

W sumie miałem ochotę jeszcze przeskoczyć przez Dolinę Bolechowicką lub Dolinę Kluczwody, ale jednak słońce dało mi się już we znaki...

Oryginał tego wpisu dostępny jest pod adresem Cztery Dolinki

Autor: Paweł Goleń

Dziś będzie krótko. Na początek odsyłam do tekstu, do którego chcę się odnieść: A czy Twój bank jest odporny na ataki UI Redressing – Clickjacking? A teraz konkretniej – ja z UI Redressing mam pewien problem. To jest doskonała podatność do pokazywania na konferencjach, szkoleniach, prezentacjach. Jest bardzo efektowna , ale już z jej efektywnością bywa różnie. Tekst, do którego odsyłam, dotyczy bankowości internetowych. Obawiam się, że w tym konkretnym przypadku z efektywnością (czyli skutecznością) tego typu ataku byłoby bardzo słabo.

Czytaj dalej...

Wdałem się ostatnio w nieco dziwną dyskusję odnośnie tego, czy każdy wyjątek występujący w aplikacji powinien być obsłużony. Dla uściślenia chodzi mi tutaj o aplikacje webowe i wyjątki występujące w wyniku manipulacji przez użytkownika przekazywanymi danymi.

Moim zdaniem obsługiwanie każdego wyjątku na siłę po to, by było “ładnie” nie jest dobrym pomysłem. Na przykłada dlatego, że do obsługi takiego wyjątku potrzeba jakiegoś kodu, a im więcej linii kodu, tym większe prawdopodobieństwo wystąpienia błędu. Jeszcze gorsze rzeczy mogą się dziać, jeśli kod obsługi wyjątku będzie usiłował “naprawić” sytuację wyjątkową i kontynuować wykonanie kodu (i to nawet wówczas, gdy nie ma to większego sensu). W takich przypadkach często jest lepiej po prostu przerwać wykonanie kodu, a nieobsłużony wyjątek robi to zwykle dość skutecznie.

Oczywiście można też patrzeć na sprawę w inny sposób. Co się stanie, jeśli wyjątek wystąpi w trakcie jakiejś operacji? Być może jakiś obiekt/proces/cokolwiek zostanie wówczas w osieroconym stanie i być może będzie można to w jakiś sposób wykorzystać. Pomijam tu również sytuację, gdy nieobsłużony wyjątek skutkuje wyświetleniem jakże przydatnych dla atakującego informacji (stacktrace).

Czytaj dalej...

Zacznę od stwierdzenia, które powtarzam tak często, jak tylko mam okazję. Bezpieczeństwo nie jest celem samym w sobie, bezpieczeństwo musi czemuś służyć. To “coś” to niekoniecznie jest dobre samopoczucie bezpieczników. Celem aplikacji jest realizowanie jej celów biznesowych z zachowaniem akceptowalnego poziomu ryzyka. W wielu miejscach pewne rzeczy można zrobić lepiej. Widziałem ważne mechanizmy bezpieczeństwa, które są zaimplementowane źle. Widziałem pozorne mechanizmy bezpieczeństwa (ach ten security theater) zaimplementowane źle, widziałem też kompletnie nieprzydatne mechanizmy bezpieczeństwa (rozwiązujące nie ten problem, co trzeba), które akurat zostały zaimplementowane dobrze...

Czytaj dalej...

Dziś po TKonferencji jedna osoba pytała się mnie, jak bezpiecznie przechowywać salt użyty przy hashowaniu hasła w bazie. Odpowiedź brzmi – salta nie trzeba przechowywać bezpiecznie, ponieważ jest jawny. Albo inaczej – dostęp do bazy danych trzeba ograniczać (co jest oczywiste), jednak sam salt nie wymaga specjalnej ochrony.

Czytaj dalej...

No cóż za zbieg okoliczności. Pojawił się dobry artykuł mówiący o tym, dlaczego należy używać HMAC. Ostatnio o tym wspominałem. Przy okazji akurat dzisiaj na WhiteHat Security Blog wygasł certyfikat.

I z tego wszystkiego aż dodałem kolejne zadanie do mojego wyzwania, trochę zawiązane z tematem.

Oryginał tego wpisu dostępny jest pod adresem Hash Length Extension Attacks

Autor: Paweł Goleń