Jak do tej pory nikt nie wykazał się wystarczającą spostrzegawczością. A przynajmniej nikt się nią nie pochwalił. Dla przypomnienia, chodzi o to zadanie: Ćwiczenie na spostrzegawczość.
W ramach podpowiedzi dwa obrazki, które różnią się drobnym(?) szczegółem. Co ta różnica oznacza, z czego ona wynika i jak ją wykorzystać?
Prawie, bo jakoś nie tęsknię za czasami słusznie minionymi na tyle, by nawet w górach uczestniczyć w nudnym dość obrzędzie popularnie zwanym “stanie w kolejce”. Jak widać na załączonym obrazku chętni się znajdują. W liczbie sporej.
Tak na wszelki wypadek, jeśli komuś przydarzyłoby się coś niepożądanego (np. tak jak tutaj: Historia pewnej infekcji), warto mieć na podorędziu kilka narzędzi. Jednym z możliwych sposobów postępowania w takim przypadku jest analiza pamięci fizycznej komputera. W takim przypadku pomocne mogą być:
Bardzo wiele zapytań ofertowych dotyczących “audytu bezpieczeństwa” (w rzeczywistości przedmiot zamówienia z audytem ma niewiele wspólnego) zawiera założenie/wymaganie odnośnie zastosowania “metodologii black box “. Moim zdaniem w zdecydowanej większości wypadków takie podejście jest błędne, charakteryzuje się wyjątkowo niekorzystnym stosunkiem price/performance , lub mówiąc jeszcze bardziej “profesjonalnie”, niskim ROI. Proste pytanie – jakie zalety daje podejście black box? Ja nie jestem w stanie wskazać praktycznie żadnej wartości dodanej takiego podejścia, potrafię natomiast wskazać kilka istotnych jego wad.
A poważnie – nie, nie miałem do tej pory okazji natknąć się na kozicę w Tatrach. Tym razem taka okazja natrafiła się aż dwa razy. W tym raz kozica popisała się biegiem na krechę z Kołowej Czuby w stronę Zadniego Stawu Polskiego.
Ponieważ zainteresowanie drugą częścią zadania (Bootcamp IIa: ciąg dalszy zadania) spadło, a ja mam kilka minut czasu, opiszę o co w nim chodziło. Jest to prawie rozwiązanie zadania. Prawie, bo rozwiązanie zadania dostępne jest w formie wizualnej: Bootcamp: lesson02a – hint/spoiler.
Z moich doświadczeń wynika, że obecnie większość aplikacji korzysta z wbudowanego we framework mechanizmu sesji. Jest to zresztą pierwsze z wymagań ASVS. Takie podejście jest o tyle dobre, że w większości przypadków standardowa obsługa sesji jest po prostu wystarczająco dobra. Mimo wszystko pewne problemy wciąż się powtarzają, w szczególności:
brak zmiany cookie po uwierzytelnieniu (lub “after reauthentication”),
brak ochrony cookie przy pomocy flag Secure i httpOnly,
brak ograniczenia ścieżki, do której wysyłane jest cookie,
brak wygasania sesji po określonym czasie bezczynności,
brak niszczenia sesji po wylogowaniu,
przesyłanie identyfikatora sesji bez szyfrowania,
przesyłanie identyfikatora sesji w query string ,
ujawnianie identyfikatorów sesji (np. w logach),
Mechanizmy związane z uwierzytelnieniem i kontrolą dostępu są po prostu nieskuteczne, jeśli atakujący jest w stanie ustalić lub wykraść prawidłowy identyfikator sesji ofiary.
Dodatkowo warto pamiętać również, że:
reguły same-origin policy dla rożnych elementów (cookie, DOM, JavaScript, XMLHttpRequest) nieco różnią się między sobą,
sesja jest (często) dobrem wspólnym – dwie różne aplikacje na jednym serwerze mogą wzajemnie “brudzić” swoje sesje,
Ostatnio zdarzyło się coś. Tym czymś był komunikat antywirusa o wykryciu malware na jednym z zaprzyjaźnionych komputerów. Teoretycznie wszystko jest w porządku, malware jakoś wlazł, antywirus go znalazł i usunął. Po sprawie. No dobrze, tylko jak wlazł i czy aby na pewno nic po sobie nie zostawił?