Oprogramowanie, które samo się naprawia

Martina Rinarda , profesor informatyki na MIT, nie waha się nad ostatecznym celem badań swojej grupy: dostarczeniem nieśmiertelnego, niezniszczalnego programu. W pracy przedstawionej w tym miesiącu na Sympozjum ACM dotyczącym Zasad Systemów Operacyjnych w Big Sky, MT, grupa naukowców z MIT, kierowana przez Rinarda i Michaela Ernsta, który jest obecnie profesorem nadzwyczajnym na Uniwersytecie Waszyngtońskim, opracowała oprogramowanie, które może znaleźć i napraw niektóre rodzaje błędów oprogramowania w ciągu kilku minut.





Zgodnie z raportem wydanym przez firmę Symantec w 2006 r., po wykryciu potencjalnie szkodliwej luki w oprogramowaniu, inżynierom zajmuje się średnio prawie miesiąc, aby opracować poprawkę i rozesłać ją do systemów, których dotyczy problem Naukowcy, którzy współpracowali przy pracach ze startupem Determina, mają nadzieję, że nowe oprogramowanie o nazwie ClearView przyspieszy ten proces, czyniąc oprogramowanie znacznie bardziej odpornym na awarie lub atak.

ClearView działa bez pomocy ludzi i bez dostępu do podstawowego kodu źródłowego programu (często zastrzeżony zestaw instrukcji, które określają, jak będzie się zachowywać oprogramowanie). Zamiast tego system monitoruje zachowanie pliku binarnego: formę, jaką program przyjmuje w celu wykonania instrukcji na sprzęcie komputera.

Obserwując normalne zachowanie programu i przypisując zestaw reguł, ClearView wykrywa pewne typy błędów, w szczególności te, które powstają, gdy osoba atakująca wprowadza złośliwe dane do programu. Gdy coś pójdzie nie tak, ClearView wykrywa anomalię i identyfikuje zasady, które zostały naruszone. Następnie pojawia się kilka potencjalnych poprawek mających na celu zmuszenie oprogramowania do przestrzegania naruszonych zasad. (Łatki są nakładane bezpośrednio na plik binarny, z pominięciem kodu źródłowego.) ClearView analizuje te możliwości, aby zdecydować, które najprawdopodobniej zadziałają, a następnie instaluje najlepszych kandydatów i testuje ich skuteczność. Jeśli zostaną naruszone dodatkowe zasady lub jeśli poprawka spowoduje awarię systemu, ClearView odrzuci ją i spróbuje innej.



ClearView jest szczególnie skuteczny, gdy jest zainstalowany na grupie komputerów z tym samym oprogramowaniem. W takim przypadku to, czego ClearView uczy się z błędów na jednej maszynie, służy do naprawy wszystkich pozostałych. Ponieważ nie wymaga dostępu do kodu źródłowego, Rinard twierdzi, że ClearView może być używany do naprawy programów bez konieczności współpracy firmy, która wyprodukowała oprogramowanie, lub do naprawy programów, które nie są już utrzymywane. Ma nadzieję, że system może przedłużyć żywotność starszych wersji oprogramowania, stworzonych przez firmy, które zbankrutowały, a także chronić obecne oprogramowanie.

Aby przetestować system, badacze zainstalowali ClearView na grupie komputerów z przeglądarką Firefox i zatrudnili niezależny zespół do ataku na przeglądarkę internetową. Wrogi zespół wykorzystał 10 różnych metod ataku, z których każda polegała na wstrzyknięciu szkodliwego kodu do Firefoksa. ClearView skutecznie zablokował wszystkie potencjalne ataki, wykrywając niewłaściwe zachowanie i zamykając aplikację, zanim atak mógł przynieść zamierzony skutek. Gdy ClearView po raz pierwszy napotka exploit, zamyka program i zaczyna analizować plik binarny, szukając łatki, która mogła zatrzymać błąd.

W przypadku siedmiu podejść zespołu atakującego ClearView stworzył poprawki, które naprawiały podstawowe błędy. We wszystkich przypadkach odrzucił poprawki, które miały negatywne skutki uboczne. Przeciętnie ClearView wymyślił skuteczną łatę w ciągu około pięciu minut od pierwszego narażenia na atak.



To badanie prowadzi nas do przekonania, że ​​oprogramowanie samo w sobie nie jest z natury kruche i kruche z powodu błędów, mówi Rinard. Jest kruche i kruche, ponieważ ludzie boją się pozwolić oprogramowaniu kontynuować, jeśli myślą, że coś z nim jest nie tak. Niektóre podejścia do inżynierii oprogramowania, takie jak przetwarzanie bez awarii lub przetwarzanie akceptowalne, podzielają tę filozofię.

ClearView to naprawdę dobry punkt wyjścia, mówi Yuanyuan Zhou , profesor informatyki na Uniwersytecie Kalifornijskim w San Diego, który również bada niezawodność oprogramowania. Zhou chwali proces oceny, który naukowcy wykorzystali w projekcie, ale mówi, że chce, aby ClearView przetestowany w szerszej gamie aplikacji.

Utrzymanie systemu za wszelką cenę wydaje się mieć zalety, dodaje David Pearce , starszy wykładowca informatyki na Victoria University w Wellington w Nowej Zelandii. Wskazuje, że ClearView jest przeznaczony do nakładania łat za każdym razem, gdy wykryje, że coś poszło nie tak. Niektóre systemy są zaprojektowane tak, aby wyłączały się po wykryciu błędu, ale jeśli celem napastnika jest sabotaż, mówi Pearce, takie podejście sprawdza się w ich rękach.

Ale podejście ClearView może spowodować pewne problemy dla użytkownika, dodaje Pearce. Na przykład, jeśli przeglądarka internetowa miała błąd, który uniemożliwiał obsługę adresów URL przekraczających pewną długość, łatka ClearView może chronić system, odcinając końce zbyt długich adresów URL — zapobiegając awarii programu, ale także zapobiegając jej od pełnej pracy. Jednak takie problemy prawdopodobnie nie byłyby wprost szkodliwe. Generalnie tylko hakerzy próbują wykorzystać takie luki, mówi Pearce, i to oni ucierpią.

ukryć