Kaspersky Lab ma problemy z testowaniem własnego kodu
W minionym tygodniu użytkownicy narzędzia Kaspersky PasswordManager, służącego do automatyzacji procesu logowania do witryninternetowych, przy jednoczesnym zwiększeniu bezpieczeństwa tegoprocesu, otrzymali jego aktualizację. Aktualizacja popsuła menedżerahaseł, przy okazji obnażając wstydliwą sprawę – oprogramowanietego producenta najwyraźniej nie przechodzi testów regresji. Kiedy użytkownik potrzebuje hasła z Password Managera, otwiera goza pomocą głównego hasła, kopiuje potrzebne hasło (które w formularzuwidoczne jest w postaci kropek), a następnie zamyka narzędzie. Nowehasła dodawać można przez prosty formularz, w którym ustawić możnam.in. datę wygaśnięcia hasła (czy też zaznaczyć, że hasło nie wygasanigdy). Gdy jednak Password Manager otrzymał łatkę „C”,nagle okazałosię, że wszystkie zapisane w nim hasła wygasły 1 stycznia… 1601 roku. Co gorsza, niemożliwe było wprowadzenie jakichkolwiekzmian – opcja była wygaszona. [img=kaspersky]Wkrótce po tym, jak z różnych części świata zaczęły spływaćdoniesienia o niespodziewanej regresji, producent poinformował, żeproblem sprawdzi i niebawem wyda łatkę „D” – miałasię ona pojawić 24 października. Błędy zdarzają się każdemu, i wzasadzie nie byłoby tu o co kruszyć kopii, gdyby nie analizaproblemu, którą przeprowadził Andrew Binstock, redaktordeweloperskiego serwisu Dr Dobbs. Jego zdaniem usterka dowodzi, żeKaspersky nie stosuje żadnych solidnych praktyk testowaniaoprogramowania.Binstock może być oczywiście uprzedzony do sprawy –przyznaje, że jednym z jego autorytetów jest Robert „Uncle Bob”Martin, współautor manifestu zwinnego programowania i wyznawcapodporządkowania procesu deweloperskiego testom. Z drugiej jednakstrony przypomina, że jeszcze do niedawna mówiło się, że skoro możnabyło bez testów deweloperskich wysłać człowieka na Księżyc, to równiedobrze można pisać dobrej jakości kod bez testów. Taką postawę mawciąż wielu programistów. Skąd jednak mogą oni wiedzieć, jakwprowadzane przez nich zmiany nie wypływają niekorzystnie nadziałanie istniejącego już kodu? Testy, działając jako czujnikimonitorujące zachowanie kodu, pozwalają w porę to wychwycić –tłumaczy redaktor Dr Dobbsa.Skąd jednak podejrzenia, że Kaspersky nie testuje swojegooprogramowania? Po pierwsze – zasięg problemu, dotyczącyróżnych konfiguracji Windows 7, w tym takich, na których byłyzainstalowane wyłącznie aplikacje Microsoftu, po drugie – taciekawa data wygaśnięcia ważności hasła, która wskazuje na małoprzemyślane wykorzystanie przez programistów Kasperskiego inwariantów(czyli tych warunków programu, które zawsze są prawdziwe). W tymwypadku inwariantem programu, jak pisze Binstock, powinno byćzałożenie, że data wygaśnięcia haseł nie może być wcześniejsza, niżdata wydania oprogramowania. Jeśli przykładowo Password Managerzostał wydany 1 lipca 2011 roku, to użytkownik nie mógłby podaćwcześniejszej daty wygaśnięcia. Wszelkie odstępstwa od tego sąprzejawem błędu.Tymczasem pojawiająca się data z 1601 roku pokazuje, żewykorzystano niewłaściwe dane jako coś w rodzaju kodu błędu.Wykorzystywanie pól określonego typu do reprezentacji kompletnieodmiennych danych nie jest praktyką nieznaną – stosowało się jączęsto w systemach wbudowanych o minimalnej ilości pamięci. Jednakdla aplikacji desktopowych to niedopuszczalny błąd. Z jednej stronywyświetla się użytkownikowi bezsensowne dane, z drugiej psuje sięinwariant, tak więc wszystkie testy muszą dodatkowo testować wartościzmiennych pod kątem wszystkich nietypowych wartości, które zperspektywy programisty są jednak dopuszczalne. Właściwą praktyką,jak wyjaśnia redaktor Dr Dobbsa, byłoby stosowanie oddzielnych póldla błędów, z niezależną diagnostyką. Utrzymuje to spójność testów ipozwala zachować czystość i przejrzystość kodu.Co najgorsze, reakcja pracowników Kasperskiego wygląda niezbytciekawie – na forum nie ma żadnych wyjaśnień poza zapowiedziąwydania kolejnej łatki... która właśnie została odsunięta w czasie,do 29 października. To kolejny dowód na to, że pakiet testów dlaPassword Managera nie wygląda najlepiej – a jak jest z innymiaplikacjami tego uznanego dostawcy rozwiązań z zakresu bezpieczeństwaIT?
25.10.2013 10:48
Zalogowani mogą więcej
Możesz zapisać ten artykuł na później. Znajdziesz go potem na swoim koncie użytkownika