В МТИ автоматизировали поиск ошибок переполнения целочисленного типа в двоичном коде

22:28 24.03.2015

|   818 прочтений



Как сообщают авторы, в результате обработки системой пяти популярных программ с открытым кодом, в которых раньше были найдены три ошибки переполнения, помимо тех же удалось обнаружить еще 11.

 

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

Система получила название DIODE. Она осуществляет символьное выполнение программы, обходя ее граф и останавливаясь на потенциально опасных с точки зрения переполнения целого операциях, в частности, на резервированиях памяти. На этих точках путем анализа символьного выражения определяется, какое значение переменной вызовет переполнение. Если в программе предусмотрена проверка границ, и это значение не проходит ее, система вводит дополнительные ограничения в символьное выражение и определяет новое значение переменной, вызывающее переполнение. Этот процесс продолжается до тех пор, пока либо не найдется значение, удовлетворяющее условиям проверки, но все же вызывающее переполнение, либо пока не выяснится, что переполнение невозможно.

DIODE не нужен исходный код отлаживаемой программы — система работает с двоичными исполняемыми файлами, выдавая в качестве результатов входные значения, которые вызывают переполнения, и точки, на которых это происходит.


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