Czasami w trakcie testów trafia się na zachowanie aplikacji, które jest co najmniej zagadkowe. Mam na myśli tu różnego rodzaju udziwnienia, które prawdopodobnie w zamyśle jej twórców mają na celu podniesienie jej bezpieczeństwa. W praktyce ich skuteczność jest jednak często bliska zeru. Fakt, trzeba się chwilę zastanowić o co właściwie chodzi (co artysta miał na myśli), ale to trochę security by obscurity przy czym to obscurity szybko przestaje być tajemnicą bo wystarczy na przykład rzucić okiem w kod JavaScript.
Co autor miał na myśli
Zawsze zastanawiam się po co w ten sposób wprowadzać dodatkowe komplikacje. Ja rozumiem, że defense-in-depth (czego jestem zdeklarowanym zwolennikiem), wiem, że żadne zabezpieczenie nie jest w 100% skuteczne. Tworzenia zabezpieczeń, które nie chronią przed niczym lub są trywialne do obejścia jednak nie rozumiem... Często mam wrażenie, że jest to wynik braku właściwego modelowania zagrożeń co skutkuje rozwiązywaniem nie tego problemu co trzeba.
Szczególnie bawią mnie wyrafinowane sposoby przekazywania hasła między klientem i serwerem (tak, by hasło nie było przesyłane w formie jawnej) w sytuacji, gdy cała aplikacja działa po SSL. SSL powinien być tak skonfigurowany, by podsłuchanie ruchu nie było możliwe (SSLv3 lub TLSv1 i mocne szyfry). Skoro tak, to w celu podsłuchiwania ruchu atakujący wykona najpewniej atak man-in-the-middle, nie ma więc powodu by atakujący ograniczał się do samego podsłuchiwania ruchu, lecz może zmodyfikować działanie aplikacji (o czym już pisałem) i przykładowo wyłączyć wszystkie te genialne zabezpieczenia.
Przy okazji w temacie haseł ciekawe spojrzenie na temat: Strong Web Passwords. Co prawda nie jest rozważany dokładnie ten przypadek, o którym mowa w tym wpisie, ale nawet najbardziej wyrafinowane i zakręcone sposoby na przekazanie hasła między klientem i serwerem niewiele wniosą w przypadku phishingu i keyloggera (lub ogólnie w przypadku malware na stacji klienta).
Macie w tym temacie jakieś refleksje?
http://www.securitystandard.pl/artykuly/347006/Bezpieczne.hasla.w.XXI.wieku.html