Programmering

DeepCode bringer AI-drevet kodeanmeldelse til C og C ++

DeepCode, cloudtjenesten, der bruger maskinlæring til at analysere kodebaser for sikkerhedsfejl og potentielle fejl, kan nu analysere C- og C ++ -koden.

Trænet ved at analysere tusindvis af open source-projekter, giver DeepCode feedback til projekter i kodehostingsplatforme eller lokale arkiver. DeepCodes skabere hævder, at det giver bedre og mere detaljeret feedback end traditionelle kodeanalyseværktøjer, fordi det analyserer kode i kontekst - ikke kun som tekst, men som kørende software.

De fleste af de sårbarheder, der findes i software, vises i C- eller C ++ -kodebaser. Så magtfulde som de to sprog er, giver de ringe eller ingen beskyttelse mod udviklerfejl, og nyere versioner af disse sprog er tvunget til at bevare bagudkompatibilitet og forbliver således sårbare.

DeepCodes vidensbase om problemer omfatter mange almindelige problemer, der findes i C og C ++ samt andre sprog: stilproblemer, ressourcelækager, problemer med hukommelsesallokering, problemer med datahåndtering og inkompatibilitet på tværs af versioner af et sprog.

I en analyse af Linux-kernen fandt DeepCode et antal almindelige problemer i C-kodebaser, herunder ikke-saniterede parametre, der blev sendt fra kommandolinjeargumenter eller miljøvariabler, brug efter-gratis problemer og manglende kontrol af nul pointers. Andre problemer i C-kode er mere subtile, som f.eks. Usikker oprettelse af midlertidige filer eller muligheden for, at visse instruktioner muligvis optimeres væk i kompilering og ikke har den tilsigtede effekt.

Da den oprindeligt blev lanceret, understøttede DeepCode Java, JavaScript, TypeScript og Python, men der var planer for C, C ++ og andre sprog. Ifølge blogindlægget, der annoncerede C / C ++ support, tog tilføjelse af kodeanalyse til C og C ++ tre måneders arbejde på grund af kompleksitet, der involverede C / C ++ 's lavt niveau funktioner.