Az MI-ügynök, amely nem csak hibajavító
Fontos, hogy a CodeMender nevű MI-alapú ügynök ezt a problémát sokoldalú stratégiával közelíti meg. Egyszerre képes gyorsan reagálni új sérülékenységekre és azonnali javításokat bevezetni, de proaktívan is átírja és biztonságosabbá teszi a meglévő kódot, akár egész hibakategóriákat kiirtva. Az elmúlt fél év során már 72 biztonsági javítást készítettünk vele, és ezek többségét nyílt forráskódú projektekbe juttattuk el – köztük volt olyan is, amely 4,5 millió soros volt!
Az automatikus, magas színvonalú biztonsági javítások révén a fejlesztők értékes ideje felszabadul, és végre a valódi szoftverfejlesztésre és innovációra fókuszálhatnak.
Így dolgozik a CodeMender
Az ügynök működésének lényege, hogy korszerű gondolkodási képességekkel felszerelt MI-modellre épül, és autonóm módon képes javítani a komplex sérülékenységeket. A CodeMender előbb alaposan elemzi a kódot saját eszközeivel, majd a javításokat automatikusan validálja: így csak olyan hibajavítás kerül emberi szem elé, amely magabiztosan oldja meg a tényleges problémát, nem vezet újabb hibákhoz, minden szabályt betart, sőt a stílushoz is igazodik.
Ennek érdekében új programanalízis- és érvényesítési technikákat is fejlesztettünk ki:
– Magas szintű, fejlett programanalízis (statikus és dinamikus elemzés, differenciális tesztelés, fuzzing és SMT-megoldók): ezekkel a CodeMender fel tudja térképezni a vezérlési és adatfolyamokat, sőt, a biztonsági hibák gyökerét is felfedi.
– Többügynökös rendszer: speciális MI-ügynökök különböző problématerületekre, például egy önálló „kritikus” eszköz, amely összehasonlítja az eredeti és javított kódot, és szükség esetén magától visszavonja a helytelen javítást.
Gyakorlati példák: nem csak apró finomítás
A CodeMender nem csupán felszínes módosításokra képes. Konkrét példa: olyan hibát javított, ahol a hibás veremkezelés miatt XML-elemek feldolgozása során memóriatúlcsordulás keletkezett, miközben a crash riportban kupactúlcsordulás jelent meg. Egy másik esetben egy teljesen egyedi C kódgenerálást végző rendszert is módosított, amikor egy objektum-élettartammal kapcsolatos összetett hiba merült fel.
Proaktív fejlesztések – megelőzi a bajt
A CodeMender nem csak már ismert hibákat tud foltozni, hanem aktívan biztonságosabbá is teszi a kódot, például új, erősebb adatszerkezetek vagy API-k bevezetésével. Az egyik legismertebb képtömörítő könyvtárban például -fbounds-safety annotációkat alkalmaztunk, amelyeknek köszönhetően a fordító automatikusan olyan ellenőrzéseket ad hozzá, amelyekkel a puffertúlcsordulásos támadások lehetetlenné válnak. Ennek eredményeként a WebP (libwebp) – amelynek biztonsági hibáját évekkel ezelőtt támadók már kihasználták – ma már jóval védettebbé vált.
A CodeMender önállóan javítja azokat a hibákat, amelyeket a saját átírásai miatt dob a fordító vagy a tesztrendszer, sőt, validálja is a funkcionális megfelelőséget. Ha hiba csúszik be, saját MI-bíró eszközével visszajelzést kap, és korrigálja a módosítást.
Mindenkinek jár a biztonság
Miközben a CodeMender korai eredményei már biztatóak, jelenleg minden javítást emberi kutatók néznek át, mielőtt az bekerül a hivatalos verzióba. Már most számos kritikus, nyílt forráskódú könyvtár részesült a javításokból, ezek többségét júniusig elfogadták és a forrásba is bekerültek.
A cél, hogy fokozatosan bevonjuk a kulcsfontosságú karbantartókat és fejlesztőket, és a közösség visszajelzései alapján a CodeMendert minden fejlesztő számára elérhetővé tegyük. Várhatóan a következő hónapokban tudományos cikkekben, jelentésekben is beszámolunk majd az újdonságokról.
Az MI-alapú szoftverbiztonság most kezdi igazán megmutatni, hová vezethet a fejlődés: az automatizált kodelemző és hibajavító eszközök minden fejlesztő számára új védelmi szintet teremtenek.