Najważniejsze wiadomości - Obniżanie kosztów bezpiecznego, często aktualizowanego oprogramowania
Czy niedawno pobraliście Państwo nowe oprogramowanie dla swojego smarftonu? Jeśli tak, to być może zauważyliście niewielkie pole zaznaczenia, z etykietą "aktualizuj automatycznie". Jest wiele powodów, dla których należy aktualizować oprogramowanie - począwszy od nowych funkcji, aż po poprawki bezpieczeństwa, pozwalające uniknąć ataków ze strony hakerów. Jednak czasami nowo pobrane funkcje zawierają nowe luki bezpieczeństwa. Powyższy problem wynika w dużej mierze z tradycyjnego podejścia do tworzenia i wdrażania oprogramowania. Podejście to bazuje na balansowaniu pomiędzy bezpieczeństwem a elastycznością. "Wyobraźmy sobie, że tworzycie Państwo bezpieczne oprogramowanie. Dostarczacie je następnie klientowi, po czym pojawia się potrzeba zaktualizowania programu, na przykład w celu dodania do niego funkcji pozwalających wyprzedzić konkurencję". Jeśli za każdym razem mielibyście Państwo sprawdzać cały kod, nawet, jeśli zmianie uległa tylko niewielka jego część, to musielibyście poświęcić dużą ilość czasu i pieniędzy", tłumaczy Fabio Massacci, profesor informatyki na Uniwersytecie w Trento (Włochy). Prof. Massacci, koordynator projektu SecureChange (1), którego uczestnicy stawiają czoła powyższemu wyzwaniu, jako typowy przykład oprogramowania, które musi spełniać ścisłe wymogi bezpieczeństwa, a jednocześnie wymaga częstych aktualizacji, podaje przeglądarki internetowe. Z trwającej pięć lat analizy przeprowadzonej przez zespół SecureChange, obejmującej sześć aktualizacji przeglądarki Firefox, posiadającej otwarty kodzie źródłowy, wynika, że przy wprowadzaniu nowej wersji zmianie ulega zwykle zaledwie około jedna trzecia kodu źródłowego. Co więcej, nowe wersje często zawierają liczne luki bezpieczeństwa, obecne we wcześniejszych wersjach. Zjawisko to jest powszechne także w przypadku innych przeglądarek, np. Chrome i IE. Potrzeba częstego udostępniania kolejnych aktualizacji oprogramowania oznacza, że na weryfikację i testowanie nowych wersji pozostaje niewiele czasu. Czy jednak da się przetestować jedynie nowe fragment kodu, gwarantując jednocześnie bezpieczeństwo i integralność całego systemu? Dzięki wsparciu finansowemu w kwocie 5,1 milionów euro, zapewnionemu przez Komisję Europejską, naukowcy uczestniczący w projekcie SecureChange opracowali metodologię, techniki oraz narzędzia pozwalające zwiększyć wydajność, elastyczność i bezpieczeństwo cyklu życia oprogramowania, począwszy od inżynierii wymagań, aż po projektowanie, tworzenie, weryfikację, wdrażanie i aktualizacje, przy jednoczesnym ograniczeniu kosztów czasowych i finansowych. Zmiana jako aktor pierwszoplanowy "Naszym głównym pomysłem było uznanie zmiany za aktora pierwszoplanowego. Osiągnęliśmy to dzięki zastosowaniu reguł ewolucji, pozwalających upewnić się, że każda zmiana jest kompatybilna z określonymi wymaganiami z zakresu bezpieczeństwa. Dzięki temu możemy automatycznie wiedzieć, czy dana zmiana spełnia określone przez nas wymagania", twierdzi Prof. Massacci. Podejście obrane przez uczestników projektu SecureChange bazuje na tak zwanej "delcie", będącej różnicą pomiędzy starą i nową wersją oprogramowania. Uczestnicy projektu stworzyli ponadto szereg innowacyjnych narzędzi, pozwalających programistom i testerom pracować w zsynchronizowany sposób. Narzędzia te automatycznie odnajdują fragmenty kodu, które należy przetestować, a także fragmenty spełniające wymagania, obecne zarówno w starej, jak i w nowej wersji aplikacji. "Testerzy mogą dzięki temu szybko i łatwo decydować, jakie testy należy przeprowadzić oraz które elementy są nowe, a które stały się zbędne, unikając w ten sposób potrzeby ponownego testowania milionów linii kodu, który nie uległ zmianie. Tym samym testerzy mogą skupić się wyłącznie na nowych, potencjalnie bardziej niebezpiecznych elementach", tłumaczy Prof. Massacci. W zakresie tworzenia oprogramowania podejście uczestników projektu SecureChange polegało głównie na orkiestracji zmian w sposób krokowy, zamiast wprowadzania ich w sposób bezpośredni, dzięki czemu modyfikacja jednego elementu aplikacji niekoniecznie wpływa na pozostałe fragmenty kodu. Co istotne, powyższe podejście jest skalowalne i sprawdza się zarówno w przypadku niewielkich aplikacji, jak w przypadku i dużych systemów krytycznych, składających się z milionów elementów. Potencjał powyższego podejścia zweryfikowano w ramach szeregu prototypowych implementacji, bazujących na rzeczywistych studiach przypadków. W próbnych wdrożeniach uczestniczyło kilku partnerów przemysłowych. Wraz z francuską firmą Thales uczestnicy projektu sprawdzili, w jaki sposób opracowane przez nich narzędzia oraz podejście mogą usprawnić i przyspieszyć dodawanie nowych funkcji do systemu zarządzania ruchem lotniczym, co dotychczas wymagało zmian w procesach organizacyjnych i operacyjnych. Natomiast wspólnie z hiszpańską firmą Telefónica naukowcy stworzyli prototypową technologię z zakresu bezpieczeństwa sieci domowych, umożliwiającą samoczynną, dynamiczną konfigurację i rekonfigurację sieci, co pozwala podłączać do sieci nowe urządzenia, np. smarfton kolegi. Z kolei dzięki wsparciu ze strony francuskiej firmy Gemalto, zajmującej się bezpieczeństwem cyfrowym, naukowcy stworzyli system bezpiecznego aktualizowania oprogramowania urządzeń korzystających z inteligentnych kart ('smartcards') oraz tokenów, podobnych do tych, dzięki którym można płacić za przejazdy komunikacją miejską oraz inne usługi. "Jako przykład mogą posłużyć karty Visa oraz Mastercard. Byłoby wygodnie, gdyby przy użyciu tego typu kart można było płacić na przykład za pociąg, obecnie jednak jest to jednak niemożliwe, gdyż proces weryfikacji zmian wprowadzanych w oprogramowaniu kart trwałby zbyt długo oraz byłby zbyt kosztowny dla firm trzecich, takich jak przedsiębiorstwa kolejowe. Wykazaliśmy, że nasze podejście pozwala szybko i łatwo implementować tego typu rozwiązania i dowiedliśmy tego zarówno w teorii, jak i, po raz pierwszy w historii, w praktyce", twierdzi Prof. Massacci. Plany komercyjne oraz firmy-córki Partnerzy przemysłowi projektu SecureChange wykorzystują niektóre wyniki projektu w swych wewnętrznych pracach, twierdzi koordynator inicjatywy SecureChange. Przykładowo, narzędzie o nazwie EvoTest, stworzone przez francuską firmę SmartTesting, jest obecnie w fazie realizacji komercyjnej, natomiast inne narzędzia udostępniono jako rozwiązania o otwartym kodzie źródłowym. Uczestnicy projektu wnieśli ponadto wkład na rzecz stworzenia spółki-córki o nazwie QE LaB Business Services, stworzonej na Uniwersytecie w Innsbrucku oraz dzięki Tyrolskiemu Inkubatorowi Akademickiemu ('Centre for Academic Spin-Offs Tyrol'), w Austrii. Tymczasem prace programistyczne, realizowane przez społeczność zaangażowaną w projekty o otwartym kodzie źródłowym, będą nadal kontynuowane, w celu stworzenia komponentu o nazwie EMF-IncQuery, który zgłoszono do Fundacji Eclipse ('Eclipse Foundation'). Największą korzyścią płynącą z podejścia obranego przez uczestników inicjatywy SecureChange, jeśli zostanie ono powszechnie przyjęte przez społeczność programistyczną, będzie radykalne skrócenie czasu udostępniania nowego oprogramowania oraz nowych jego wersji, a także drastyczne obniżenie kosztów związanych z testowaniem i weryfikacją aplikacji. Obecnie testowanie oprogramowania generuje około połowę kosztów jego produkcji oraz nawet 70% wydatków ponoszonych po rozpoczęciu sprzedaży, a jednocześnie prawie 6 na 10 projektów nie spełnia wstępnych założeń w zakresie funkcjonalności, a ponad 8 na 10 nie jest realizowana na czas. "Nasze podejście pozwala nie tylko zmniejszyć ryzyko pojawiania się błędów oraz luk bezpieczeństwa, ale także umozliwia firmom szybsze udostępnianie oprogramowania, a tym samym sprawniejsze wykorzystywanie okazji biznesowych", zauważa Prof. Massacci. Projekt SecureChange uzyskał wsparcie finansowe w ramach podprogramu Przyszłe i Powstające Technologie ('Future and Emerging Technologies' - FET), będącego częścią Siódmego Programu Ramowego UE (7PR). (1) "Inżynieria bezpieczeństwa systemów ewoluujących przez całą długość życia" ('Security engineering for lifelong evolvable systems') Użyteczne odnośniki: - FET - Strona internetowa projektu "Inżynieria bezpieczeństwa systemów ewoluujących przez całą długość życia" - 'Security engineering for lifelong evolvable systems' - Informacje na temat projektu SecureChange w bazie danych CORDIS