Celowo wprowadzają błędy do programów

| Technologia
NYU Tandon School of Engineering

Każdego roku największe koncerny wydają olbrzymie kwoty na wyszukiwanie i naprawianie błędów w swoich programach. Używają w tym celu zautomatyzowanych narzędzi analizujących kod źródłowy oprogramowania. Problem jednak w tym, że nikt nie wie, ile dziur umyka uwadze takich narzędzi, nie można zatem stwierdzić, na ile są one skuteczne.

Naukowcy z New York University, MIT oraz Northeastern University postanowili podejść do problemu wydajności narzędzi debugujących w nietypowy sposób. Celowo dodają do kodu źródłowego tysiące błędów i sprawdzają, jak z ich wyszukiwaniem radzą sobie popularne narzędzia. W tym celu stworzyli oprogramowanie LAVA (Large-Scale Automated Vulnerability Addition), które masowo wprowadza błędy do kodu. Przeprowadzone przez uczonych eksperymenty nie napawają optymizmem. Okazuje się, że wiele popularnych narzędzi do wyszukiwania błędów zauważa zaledwie 2% dziur w oprogramowaniu.

Profesor Brendan Dolan-Gavitt z NYU wyjaśnia, że efektywność debuggerów opiera się na dwóch wskaźnikach - liczbie fałszywie negatywnych oraz fałszywie pozytywnych alarmów. Jednak bez znajomości całkowitej liczby prawdziwych błędów nie można tak naprawdę stwierdzić, na ile dane narzędzie jest efektywne. Jedynym sposobem na ocenienie efektywności narzędzia debugującego jest kontrolowanie liczby błędów w kodzie. Właśnie to próbujemy robić za pomocą LAVA - wyjaśnia Dolan-Gavitt.

Błędy wprowadzane przez LAVA mają podobne cechy, co prawdziwe błędy znajdowane w programach komputerowych. LAVA została jednak przystosowana też do wprowadzania nowych rodzajów błędów po to, by sprawdzić, jak debuggery poradzą sobie z problemami, z którymi dotychczas nie spotykały się lub na które natrafiały rzadko. Naukowcy obiecują, że publicznie udostępnią wyniki swoich badań. Co więcej, w ciągu najbliższych tygodni chcą rozpocząć projekt, w ramach którego twórcy oprogramowania będą mogli otrzymać kod z wprowadzonymi błędami, za pomocą używanych przez siebie narzędzi spróbują znaleźć te błędy i na tej podstawie otrzymają informację, na ile skuteczne są ich narzędzia.

LAVA debugger błąd