Czasami w trakcie pracy doświadczam dysonansu poznawczego. Z jednej strony mam pewne oczekiwanie odnośnie tego, jak coś powinno wyglądać/być zrealizowane/działać, a z drugiej mam empiryczne dowody, że jest zupełnie inaczej. W tej chwili pojawia się pytanie "dlaczego to jest tak zrobione", oraz wizja "jak to poprawić". Zgodnie z podstawowym błędem atrybucji pojawia się również skłonność do przypisania "winy" za stan zastany cechom osób odpowiedzialnych za taki stan, pomijane są natomiast kwestie "środowiskowe".
Ideał sięgnął bruku
Jednym z ważnych uwarunkowań zewnętrznych jest historia rozwoju produktu. Jeśli pewne mechanizmy są wbudowane w system od samego początku, można je zaimplementować w sposób przemyślany, spójny i "elegancki". Gdy produkt ma za sobą kilka/kilkanaście lat rozwoju i ma wiele wdrożeń, wówczas każda zmiana, nie tylko ta związana z bezpieczeństwem, przypomina stepowanie na polu minowym. Każda zmiana może powodować nieoczekiwane konsekwencje, zarówno rzeczywiste błędy (ta, lub inna funkcja systemu działa niezgodnie z oczekiwaniami), jak i błędy "urojone" (np. jakiś użytkownik systemu korzysta z nieudokumentowanej/niezamierzonej własności systemu, która w zasadzie była błędem i została poprawiona, ale ten konkretny klient na tej własności w jakiś sposób polegał). Jak nic efekt motyla.
Ja jako zewnętrzny konsultant wielu z tych uwarunkowań nie jestem świadomy. O ile w przypadku samego stwierdzenia błędu problem jest mniejszy - słabość/podatność istnieje, to w zakresie ich usuwania trzeba nauczyć się "pokory". Moje pomysły jak coś poprawić wcale nie muszą być najlepsze. A nawet jeśli są "najlepsze" (w pewnych ustalonych kryteriach "najlepszości"), wcale nie muszą dać się wykorzystać w tym konkretnym przypadku.
Na koniec pewna historia umiarkowanie związana z głównym tematem. Za dawnych czasów, gdy robiłem jeszcze coś nieco innego, była sobie historia, w której dostawca miał w ramach wdrożenia zrealizować integrację mechanizmu uwierzytelnienia aplikacji z Active Directory. Dostawca ten postanowił wykorzystać w tym celu podatność pass the hash. Nie przewidział jednego małego problemu - zastosowania w sieci środków zaradczych, które ten atak skutecznie uniemożliwiały. Nie muszę chyba dodawać, że za sugestię "poprawki" polegającej na wyłączeniu zabezpieczenia został zabity śmiechem...
Cóż to za magiczne środki zaradcze? Czy chodzi o ustawienie LmCompatibilityLevel (Network security: Lan Manager authentication level)? Czy może coś innego?