Программная система автоматически устраняет уязвимости в коде

20:13 04.07.2015

|   1051 прочтение



По словам исследователей из МТИ, их долгосрочная цель — полностью избавить программистов от необходимости писать заново код, который кто-то уже реализовал до них.

 

Исследовательская группа из Лаборатории компьютерной науки и искусственного интеллекта МТИ, разработавшая высокоэффективный метод поиска ошибок переполнения DIODE, объявила о создании новой системы — CodePhage, которая повышает надежность приложений, автоматически добавляя недостающие проверки границ значений переменных. Эти проверки заимствуются из других программ, выполняющих функции, аналогичные реализуемым. При этом доступ к исходному коду программ-доноров не требуется.

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

Исследователи протестировали CodePhage на нескольких программах с открытым кодом, в которых система DIODE обнаружила ошибки; для их автоматического исправления использовались по две-четыре донорских программы. Во всех случаях уязвимости были устранены, на что уходило от двух до 10 минут. По словам исследователей, их долгосрочная цель — полностью избавить программистов от необходимости писать заново код, который кто-то уже реализовал до них.


Теги: Программное обеспечение МТИ
На ту же тему: