Skip to main content
European Commission logo print header

A Source code analysis Toolbox for software security AssuraNCE

Article Category

Article available in the following languages:

Nowy zestaw narzędzi bezpieczeństwa dla oprogramowania poprawia wiarygodność istniejących procesów

Naukowcy z UE opracowali zestaw narzędzi do analizy kodu źródłowego umożliwiających weryfikację właściwości bezpieczeństwa aplikacji napisanych w językach C, C++ i Java.

Gospodarka cyfrowa icon Gospodarka cyfrowa

W społeczeństwie, w którym tak wielką rolę odgrywa technologia informacyjna i komunikacja, ochrona i bezpieczeństwo oprogramowania stało się niezwykle istotnym wyzwaniem. Zmierzyli się z nim naukowcy uczestniczący w finansowanym przez UE projekcie STANCE, inicjatywy o charakterze multidyscyplinarnym, która zaowocowała wieloma nowatorskimi pomysłami naukowymi i technologicznymi w obszarze bezpieczeństwa oprogramowania. W czasie 3,5 roku trwania projektu naukowcom udało się zdefiniować, wdrożyć i rozpowszechnić zestaw narzędzi do analizy kodu źródłowego, który umożliwia weryfikację właściwości bezpieczeństwa aplikacji napisanych w językach C, C++ i Java. Zasadniczo, zestaw narzędzi skupia i koordynuje działanie istniejących narzędzi do analizy, w tym platformy Frama-C, weryfikatora VeriFast oraz narzędzia do testowania oprogramowania typu "fuzz". Frama-C to platforma do analizy oprogramowania, która umożliwia projektowanie, wdrażanie i rozpowszechnianie rozwiązań weryfikacji formalnej. VeriFast z kolei to analizator dla kodu źródłowego w języku C i Java z predykatami napisanymi w logice separacji. "Architektura STANCE jest oparta o wyżej wymienione narzędzia analizy", mówi Armand Puccetti, jeden z naukowców uczestniczących w projekcie. "W wyniku realizacji projektu stworzono wiele dodatków plug-in dla tych narzędzi, co pozwala im wykonywać konkretne analizy bezpieczeństwa jak np. modułowe analizy kodu". Według Puccetti’ego, są to potężne narzędzia do formalnej weryfikacji odporności szczególnie chronionych aplikacji. "Projekt STANCE zdołał jeszcze poprawić ich przydatność dzięki stworzeniu metodologii służących do łączenia tych narzędzi do wykorzystania w stadium przypadku w realnym świecie oraz w kontekście certyfikacji Common Criteria", dodaje. Jak to działa Narzędzie STANCE typuje algorytmy do wykrywania dobrze zdefiniowanych klas zagrożeń dla bezpieczeństwa znalezionych w kodzie źródłowym. Jest to możliwe poprzez użycie, rozszerzenie i rozwinięcie znanych technik analizy kodu źródłowego pod względem bezpieczeństwa, co obejmuje abstrakcyjne interpretacje, weryfikacje dedukcyjne i weryfikację modelową. Te analizy są następnie rozszerzane poprzez funkcje diagnostyczne oraz diagnostykę opartą na modelu, a także kontrprzykłady. Analizy mogą być również prowadzone z użyciem analizy dynamicznej ze wstrzykiwaniem błędów oraz automatycznym generowaniem przypadków testowych. Po zakończeniu tej wstępnej fazy narzędzie daje użytkownikowi bazę teoretyczną, która formalnie gwarantuje, że dana część oprogramowania nie zawiera wad w zabezpieczeniach. Wzrost wiarygodności Dzięki opisanemu zestawowi narzędzi i metodom dodatkowym projekt STANCE poprawił wiarygodność i zmniejszył koszty istniejących procesów zapewniających bezpieczeństwo. "Projekt przyniósł pozytywne zmiany w obszarze zapewnienia bezpieczeństwa oprogramowania i miał duży wpływ na jego aspekty prawne, społeczne i ekonomiczne", mówi Puccetti. "Ponadto wiele z nowych narzędzi opracowanych na platformach Frama-C i Verifast będzie rozpowszechnianych jako open source, podczas gdy inne pozostaną w fazie prototypów i będą służyły do kontynuowania badań". Z ekonomicznego punktu widzenia rezultaty projektu będą stanowiły strategiczny wyróżnik na rynku dla firm korzystających z jego narzędzia i metod. Będą również przynosić długofalowe korzyści związane z kosztami projektowania i utrzymania. W szerszym zakresie, projekt zaoferował społeczeństwu nowy standard zaufania — bardzo potrzebny bodziec do dalszych prac nad cybertechnologiami. "Projekt STANCE przyczynił się do realizacji jednej ze strategii polityki UE, zapewniając możliwość wykrywania podatności na atak krytycznych aplikacji oprogramowania, co oznacza, że obywatele UE mogą mieć pewność, iż ich aplikacje sterowane zewnętrznym oprogramowaniem są bezpieczne", podsumowuje Puccetti.

Słowa kluczowe

STANCE, zestaw narzędzi, kod źródłowy, C++, java, bezpieczeństwo teleinformatyczne, frama-c, verifast, analiza kodu, zagrożenia, diagnostyczny, oprogramowanie, utrzymanie, podatność na atak

Znajdź inne artykuły w tej samej dziedzinie zastosowania