Programavimas

„DeepCode“ suteikia dirbtiniu intelektu pagrįstą kodo peržiūrą C ir C ++

„DeepCode“, debesų paslauga, naudojanti mašininį mokymąsi analizuojant kodų bazes dėl saugos trūkumų ir galimų klaidų, dabar gali analizuoti C ir C ++ kodus.

Apmokytas analizuodamas tūkstančius atvirojo kodo projektų, „DeepCode“ teikia atsiliepimus apie projektus kodų talpinimo platformose ar vietinėse saugyklose. „DeepCode“ kūrėjai teigia, kad jis teikia geresnius ir išsamesnius atsiliepimus nei tradiciniai kodo analizės įrankiai, nes jis analizuoja kodą kontekste - ne tik kaip tekstą, bet ir kaip veikiančią programinę įrangą.

Dauguma programinės įrangos nustatytų pažeidžiamumų atsiranda C arba C ++ kodų bazėse. Kad ir kokios galingos yra dvi kalbos, jos mažai apsaugo nuo kūrėjų klaidų, o naujesnės šių kalbų versijos yra priverstos išlaikyti suderinamumą atgal ir taip išlikti pažeidžiamos.

„DeepCode“ žinių bazėje yra daug bendrų problemų, rastų C ir C ++, taip pat kitomis kalbomis: stiliaus problemos, išteklių nutekėjimas, atminties paskirstymo problemos, datos tvarkymo problemos ir kalbos versijų nesuderinamumai.

Analizuodamas „Linux“ branduolį, „DeepCode“ rado daug bendrų problemų C kodų bazėje, įskaitant nesanalizuotus parametrus, perduotus iš komandinės eilutės argumentų ar aplinkos kintamuosius, problemas, susijusias su naudojimu po naudojimo, ir trūkstamus niekinių rodyklių patikrinimus. Kitos C kodo problemos yra subtilesnės, pavyzdžiui, nesaugus laikinų failų kūrimas arba galimybė, kad tam tikros instrukcijos gali būti optimizuojamos kompiliuojant ir neturės numatyto efekto.

Kai iš pradžių buvo paleistas, „DeepCode“ palaikė „Java“, „JavaScript“, „TypeScript“ ir „Python“, tačiau lentelėje buvo planai C, C ++ ir kitoms kalboms. Anot tinklaraščio įrašo, kuriame skelbiama apie C / C ++ palaikymą, C ir C ++ kodų analizės pridėjimas truko tris mėnesius, nes sudėtingumas susijęs su C / C ++ žemo lygio funkcijomis.

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