Искатель одного бага на миллион строк еще спит, но модели уже начали смотреть. Инструменты статического анализа, такие как Flawfinder и Cppcheck, уже много лет являются отраслевым стандартом, но они работают по заранее определенным правилам. Им не хватает того, что...
Искатель одного бага на миллион строк еще спит, но модели уже начали смотреть.
Инструменты статического анализа, такие как Flawfinder и Cppcheck, уже много лет являются отраслевым стандартом, но они работают по заранее определенным правилам. Они упускают то, что им никогда не говорили искать.
Это история SecureScan AI — модели глубокого обучения, которая читает исходный код C/C++ так же, как языковая модель читает текст, и помечает уязвимости так, как это сделал бы рецензент кода. Мы создали его для нашей лаборатории глубокого обучения в Университете Эйр в Лахоре, и он работает в виде бесплатной веб-демоверсии на сайте securescan-ai.vercel.app.
Почему CodeBERT вместо правил
CodeBERT — это преобразователь семейства BERT, предварительно обученный Microsoft как на естественном языке, так и на парах кодов. Он не ищет шаблоны ошибок — он усвоил значение кода. Это важно, потому что:
Он обобщается на типы уязвимостей, на которых он никогда не обучался явно.
Он выявляет проблемы на логическом уровне, а не только лексические сигнатуры, такие как strcpy.
Он встраивает контекст: во что попадает переменная, что подает в буфер.
Задача — маркировка последовательностей (или двоичная классификация по функциям): по заданной функции предсказать уязвимость или безопасность.
Архитектура
Исходный код C/C++
|
в
Microsoft/кодебе