Российские ученые создали программу поиска бреши в софте до его взлома хакерами

ВЕЛИКИЙ НОВГОРОД, 4 января. /ТАСС/. Ученые Новгородского государственного университета имени Ярослава Мудрого (НовГУ) совместно со специалистами Института системного программирования РАН разработали уникальный инструмент для автоматического поиска уязвимостей в программном обеспечении на этапе его создания. Программа под названием Natch выявляет потенциально опасные участки кода до того, как ими смогут воспользоваться злоумышленники, сообщил ТАСС один из авторов разработки, кандидат технических наук, доцент НовГУ Павел Довгалюк.

"Представьте, что одна программа читает текстовый файл, в первой строке которого находится адрес сайта. Этот файл помечается как непроверенный источник. Затем строка с адресом передается как параметр командной строки второй программе, которая, в свою очередь, запускает утилиту для обращения к этому сайту. Natch визуализирует весь этот путь: как помеченные данные перешли из файла в память первой программы, затем через командную строку - во вторую, и наконец утекли в сеть. Такой анализ помогает сразу увидеть потенциально опасную цепочку обработки информации", - Павел Довгалюк.

По его словам, проблема защиты программного обеспечения связана со сложностью отслеживания путей обработки непроверенных данных. Любое приложение, работающее с интернетом, имеет так называемую поверхность атаки - точки входа для внешних данных, через которые чаще всего осуществляется взлом. Существующие методы анализа безопасности имеют существенные ограничения. Статический анализ изучает исходный код без запуска программы и не может учесть ее реальное поведение, включая взаимодействие с внешними компонентами. Динамический анализ, при котором программа запускается, позволяет видеть срабатывание функций, но не определяет, обрабатывают ли они именно опасные данные от ненадежных источников.

Инструмент Natch решает эту задачу, автоматически отслеживая путь непроверенных данных через всю систему. В основе разработки лежит полносистемный эмулятор, позволяющий воссоздать работу всего компьютера. Natch помечает данные, поступающие извне, и в реальном времени отслеживает их передачу между процессами и обработку различными функциями. Результаты анализа отображаются в графическом интерфейсе через браузер, где разработчики могут видеть вызовы функций, обмен данными между процессами и временные метки. Это позволяет сосредоточиться на защите именно тех участков кода, которые контактируют с внешним миром.

По словам автора проекта, Natch является первой системой, автоматически строящей такую детальную карту потенциальных уязвимостей без модификации исходного кода, что могло бы повлиять на поведение системы. "Компании-гиганты будут внедрять Natch в свой конвейер разработки безопасного ПО наравне с другими инструментами, которые не менее важны. Те же компании, что не выстраивают такой конвейер, могут использовать наш инструмент для углубленного тестирования и анализа кода в ручном режиме. При этом важно помнить, что Natch - лишь малая часть того, что нужно применять для разработки безопасного ПО. В первую очередь необходимо донести до всех разработчиков, что думать о безопасности нужно всегда, а не только когда выходят сообщения о каких-то взломах уже работающих систем", - заключил Довгалюк.