Microsoft je najavio objavljivanje izvornog koda za svoj alat za analizu izvornog koda, Microsoft Application Inspector , kako bi pomogao programerima koji se oslanjaju na softverske komponente trećih strana. Microsoft Application Inspector je analizator izvornog koda dizajniran da otkrije važne i druge karakteristike softverskih komponenti, koristeći statičku analizu s mehanizmom pravila zasnovanim na JSON-u.
Ovaj analizator koda razlikuje se od drugih alata istog tipa jer nije ograničen samo na otkrivanje programskih praksi , budući da je dizajniran na takav način da tokom kontrole koda identificira i ističe one karakteristike koje uglavnom zahtijevaju pažljivu ručnu analizu.
Prema objašnjenjima koja je Microsoft dao o alatu:
Microsoft Application Inspector ne pokušava identificirati "dobre" ili "loše" modele. Sadržajno je izvijestiti o onome što pronađe upućujući na skup od više od 400 predložaka pravila za otkrivanje značajki. Prema Microsoftu, ovo takođe uključuje funkcije koje imaju utjecaj na sigurnost, poput upotrebe šifriranja i još mnogo toga.
Alat radi iz komandne linije i višeplatformski je . Dizajniran je za skeniranje komponenti prije upotrebe kako bi se utvrdilo o kojem se softveru radi ili čemu služi.
Podaci koje pružate mogu biti korisni u smanjenju vremena potrebnog za utvrđivanje softverskih komponenata izravnim ispitivanjem izvornog koda, umjesto oslanjanja na uglavnom ograničenu dokumentaciju ili preporuke.
Microsoft Application Inspector podržava analizu različitih programskih jezika , uključujući: C, C++, C#, Java, JavaScript, HTML, Go, PowerShell itd., kao i uključivanje izlaznih formata u HTML, JSON i tekst.
Programeri Microsoft Application Inspectora kažu da je dizajniran za individualnu ili upotrebu velikih razmjera i da može analizirati milione linija izvornog koda iz komponenti izgrađenih korištenjem mnogo različitih programskih jezika.
Microsoft koristi Application Inspector za identificiranje ključnih promjena u postavljenim komponentama funkcije s vremenom (verzija po verziji), jer mogu ukazivati na bilo šta, od povećane površine napada do zlonamjernog backdoor-a.
Također koriste alat za identifikaciju visokorizičnih komponenti i onih s neočekivanim karakteristikama koje zahtijevaju daljnju provjeru. Visokorizične komponente uključuju one koje su uključene u područja kao što su kriptografija, autentifikacija ili deserijalizacija, gdje ranjivost vjerovatno uzrokuje više problema.
Cilj je brzo identificirati rizične softverske komponente trećih strana na osnovu njihovih specifičnih karakteristika, ali alat je koristan i u mnogim nesigurnim kontekstima.
U osnovi, ovo su najvažnije karakteristike Microsoft Application Inspectora:
- Mehanizam pravila zasnovan na JSON-u koji izvodi statičku analizu.
- Sposobnost analiziranja miliona linija izvornog koda iz komponenata stvorenih na mnogim jezicima.
- Sposobnost prepoznavanja visoko rizičnih komponenata i komponenata sa neočekivanim karakteristikama.
- Mogućnost prepoznavanja promjena u skupu značajki komponente, verzija po verziji, koja može ukazivati na bilo što, od zlonamjernog backdoor-a do veće površine napada.
- Sposobnost generiranja rezultata u više formata, uključujući JSON i HTML.
- Mogućnost otkrivanja funkcija koje pokrivaju Microsoft Azure, Amazon Web Services i API-je usluga usluge Google Cloud Platform i funkcije operativnog sistema, kao što su sistem datoteka, sigurnosne funkcije i okviri aplikacija.
Kao što se i očekivalo, platforma i kriptografija su dobro pokriveni , s podrškom za simetrični, asimetrični, heš i TLS.
Vrste podataka mogu se provjeriti u pogledu rizika, uključujući osjetljive informacije i podatke koji mogu lično identificirati.
Ostale provjere uključuju funkcije operativnog sistema poput identifikacije platforme, sistema datoteka, registra i korisničkih računa i sigurnosne značajke kao što su provjera autentičnosti i autorizacija.
Konačno, za one koji su zainteresirani da isprobaju Microsoft Application Inspector, on je sada dostupan na GitHub-u.