GitHub разкриха преди няколко дни добавянето на експерименти със система за машинно обучениеl към услугата за сканиране на кодове за идентифициране на често срещани типове уязвимости В кода. С това базираната на CodeQL технология за анализ на код на GitHub е преработена и вече използва машинно обучение (ML), за да открие потенциални уязвимости в сигурността в кода.
И това е този GitHub придоби технологията за CodeQL като част от придобиването на Semmie. CodeQL се използва от екипи за изследване на сигурността за извършване на семантичен анализ на кода, а GitHub го направи с отворен код.
С тези модели CodeQL може да идентифицира повече ненадеждни потоци от потребителски данни и следователно повече потенциални уязвимости в сигурността.
Забелязва се, че използването на система за машинно обучение е позволило значително да се разшири кръгът от идентифицирани проблеми, при чийто анализ системата вече не се ограничава до проверка на типични модели и не е обвързана с известни рамки.
От проблемите, идентифицирани от новата система, се споменават грешки, водещи до междусайтови скриптове (XSS), изкривяване на файловите пътища (например чрез индикацията "/.."), заместване на SQL и NoSQL заявки. .
Сканирането на код вече може да намери повече потенциални уязвимости в сигурността чрез използване на нов модел за дълбоко обучение. Тази експериментална функция е достъпна в публична бета версия за хранилища на JavaScript и TypeScript на GitHub.com.
Новият инструмент на GitHub fue пуснат като безплатна публична бета версия За всички потребители функцията използва машинно обучение и дълбоко обучение за сканиране на кодови бази и идентифициране на често срещани уязвимости в сигурността, преди продуктът да бъде изпратен.
Експерименталната функция в момента е достъпна за всички потребители на платформа, включително потребителите на GitHub Enterprise като функция за разширена защита на GitHub и може да се използва за проекти, написани на JavaScript или TypeScript.
С бързото развитие на екосистемата с отворен код има непрекъснато нарастваща дълга опашка от библиотеки, които се използват по-рядко. Използваме примери от ръчно създадени CodeQL заявки, за да обучаваме модели за дълбоко обучение да разпознават библиотеки с отворен код, както и вътрешно разработени библиотеки с затворен код.
Инструментът е проектиран да търси четирите най-често срещани уязвимости които засягат проекти, написани на тези два езика: междусайтови скриптове (XSS), инжектиране на маршрут, инжектиране на NoSQL и инжектиране на SQL.
Услугата за сканиране на код ви позволява да откривате уязвимости в ранен етап на разработка, като сканирате всяка git push операция за потенциални проблеми.
Резултатът е прикрепен директно към заявката за изтегляне. Преди това проверката се извършваше с помощта на двигателя CodeQL, който анализира модели с типични примери за уязвим код (CodeQL ви позволява да генерирате шаблон на уязвим код, за да откриете наличието на подобна уязвимост в кода на други проекти).
С новите възможности за анализ, сканирането на кода може да генерира още повече сигнали за четири често срещани модела на уязвимост: Cross-Site Scripting (XSS), Path Injection, NoSQL Injection и SQL Injection. Заедно тези четири типа уязвимости представляват много от скорошните уязвимости (CVE) в екосистемата JavaScript/TypeScript и подобряването на способността на сканирането на код за откриване на такива уязвимости в началото на процеса на разработка е от ключово значение за подпомагане на разработчиците да пишат по-сигурен код.
Новият двигател за машинно обучение може да идентифицира неизвестни досега уязвимости тъй като не е обвързано с итерацията на кодови модели, които описват специфични уязвимости. Цената на такава възможност е увеличаване на броя на фалшивите положителни резултати в сравнение с проверките, базирани на CodeQL.
Накрая за тези, които се интересуват да знаят повече за това, можете да проверите детайлите В следващия линк.
Също така е важно да се спомене, че на етапа на тестване новата функционалност в момента е достъпна само за хранилища с JavaScript и TypeScript код.