Firma Microsoft ogłosiła udostępnienie kodu źródłowego swojego narzędzia do analizy kodu źródłowego, Microsoft Application Inspector , aby pomóc programistom korzystającym z komponentów oprogramowania innych firm. Microsoft Application Inspector to analizator kodu źródłowego zaprojektowany w celu wykrywania ważnych i innych cech komponentów oprogramowania, wykorzystujący analizę statyczną z silnikiem reguł opartym na JSON.
Ten analizator kodu różni się od innych narzędzi tego typu, ponieważ nie ogranicza się do wykrywania wyłącznie praktyk programistycznych , lecz został zaprojektowany w taki sposób , że podczas kontroli kodu identyfikuje i wyróżnia te cechy, które zazwyczaj wymagają starannej, ręcznej analizy.
Zgodnie z wyjaśnieniami firmy Microsoft na temat narzędzia:
Microsoft Application Inspector nie próbuje zidentyfikować „dobrych” ani „złych” modeli. Z przyjemnością zgłaszasz znalezione informacje, odwołując się do zestawu ponad 400 szablonów reguł do wykrywania funkcji. Według firmy Microsoft obejmuje to również funkcje mające wpływ na bezpieczeństwo, takie jak szyfrowanie i inne.
Narzędzie działa z poziomu wiersza poleceń i jest wieloplatformowe . Zostało zaprojektowane tak, aby skanować komponenty przed użyciem, aby pomóc określić, czym jest oprogramowanie i co ono robi.
Dostarczone przez Ciebie dane mogą być pomocne w skróceniu czasu potrzebnego do określenia, jakie komponenty oprogramowania robią, poprzez bezpośrednie badanie kodu źródłowego, zamiast polegania na przeważnie ograniczonej dokumentacji lub zaleceniach.
Microsoft Application Inspector obsługuje analizę różnych języków programowania , w tym: C, C++, C#, Java, JavaScript, HTML, Go, PowerShell itp., a także uwzględnianie formatów wyjściowych w formacie HTML, JSON i tekście.
Twórcy narzędzia Microsoft Application Inspector twierdzą, że jest ono przeznaczone do użytku indywidualnego lub na dużą skalę i potrafi analizować miliony wierszy kodu źródłowego z komponentów zbudowanych przy użyciu wielu różnych języków programowania.
Firma Microsoft używa Inspektora aplikacji do identyfikowania kluczowych zmian w zestawie funkcji składnika w czasie (wersja po wersji), ponieważ mogą one wskazywać na wszystko, od zwiększonej powierzchni ataku po złośliwy backdoor.
Narzędzie to służy również do identyfikacji komponentów wysokiego ryzyka oraz tych o nieoczekiwanych cechach, które wymagają dalszej analizy. Komponenty wysokiego ryzyka obejmują te związane z obszarami takimi jak kryptografia, uwierzytelnianie czy deserializacja, gdzie luka w zabezpieczeniach może spowodować więcej problemów.
Celem jest szybka identyfikacja zagrożonych komponentów oprogramowania innych firm na podstawie ich specyficznych cech, jednak narzędzie to przydaje się również w wielu niebezpiecznych kontekstach.
Oto najważniejsze funkcje narzędzia Microsoft Application Inspector:
- Mechanizm reguł oparty na formacie JSON, który przeprowadza analizę statyczną.
- Możliwość analizy milionów wierszy kodu źródłowego z komponentów utworzonych w wielu językach.
- Zdolność do identyfikacji komponentów wysokiego ryzyka i tych o nieoczekiwanych cechach.
- Możliwość identyfikowania zmian w zestawie funkcji składnika, wersja po wersji, które mogą wskazywać na wszystko, od złośliwego backdoora do większej powierzchni ataku.
- Możliwość generowania wyników w wielu formatach, w tym JSON i HTML.
- Możliwość odkrywania funkcji obejmujących Microsoft Azure, Amazon Web Services i usługi API Google Cloud Platform oraz funkcje systemu operacyjnego, takie jak system plików, funkcje bezpieczeństwa i struktury aplikacji.
Zgodnie z oczekiwaniami platforma i kryptografia są dobrze pokryte , z obsługą szyfrowania symetrycznego, asymetrycznego, haszującego i TLS.
Można sprawdzić rodzaje danych pod kątem zagrożeń, w tym informacji wrażliwych i umożliwiających identyfikację osoby.
Inne testy obejmują funkcje systemu operacyjnego, takie jak identyfikacja platformy, system plików, rejestr i konta użytkowników, a także funkcje zabezpieczeń, takie jak uwierzytelnianie i autoryzacja.
Na koniec, dla zainteresowanych wypróbowaniem narzędzia Microsoft Application Inspector, jest ono już dostępne w serwisie GitHub.