Programmēšana

DeepCode nodrošina ar AI darbināmu kodu pārskatīšanu C un C ++

DeepCode, mākoņa pakalpojums, kas izmanto mašīnmācīšanos, lai analizētu koda bāzes drošības trūkumiem un iespējamām kļūdām, tagad var analizēt C un C ++ kodu.

Apmācīts, analizējot tūkstošiem atvērta pirmkoda projektu, DeepCode sniedz atgriezenisko saiti par projektiem kodu mitināšanas platformās vai vietējos krātuvēs. DeepCode veidotāji apgalvo, ka tā sniedz labāku un detalizētāku atgriezenisko saiti nekā tradicionālie kodu analīzes rīki, jo tas analizē kodu kontekstā - ne tikai kā tekstu, bet arī kā darbojošu programmatūru.

Lielākā daļa programmatūrā atrasto ievainojamību parādās C vai C ++ koda bāzēs. Lai arī cik spēcīgas būtu abas valodas, tās maz vai vispār nenodrošina aizsardzību pret izstrādātāju kļūdām, un šo valodu jaunākās versijas ir spiestas saglabāt savietojamību atpakaļ un tādējādi palikt neaizsargātas.

DeepCode problēmu bāze ietver daudzas kopīgas problēmas, kas sastopamas C un C ++, kā arī citās valodās: stila problēmas, resursu noplūdes, atmiņas piešķiršanas problēmas, datumu apstrādes problēmas un nesaderība starp valodas versijām.

Analizējot Linux kodolu, DeepCode atrada vairākas kopīgas problēmas C koda bāzēs, tostarp nesanalizētus parametrus, kas tika nodoti no komandrindas argumentiem vai vides mainīgajiem, problēmas pēc lietošanas bez izmantošanas un trūkst nulles rādītāju pārbaudes. Citas problēmas C kodā ir izsmalcinātākas, piemēram, nedroša pagaidu failu izveidošana vai iespēja, ka dažas instrukcijas var tikt optimizētas kompilācijā un tām nav paredzētā efekta.

Sākotnēji palaižot, DeepCode atbalstīja Java, JavaScript, TypeScript un Python, taču plāni bija uz galda C, C ++ un citām valodām. Saskaņā ar emuāra ziņu, kurā tika paziņots par C / C ++ atbalstu, C un C ++ koda analīzes pievienošana ilga trīs mēnešus, jo sarežģītība bija saistīta ar C / C ++ zemā līmeņa funkcijām.

$config[zx-auto] not found$config[zx-overlay] not found