Анализ работы программы с ресурсами: выявление ненадёжных и небезопасных операций | Прикладная дискретная математика. Приложение. 2010. № 3.

Анализ работы программы с ресурсами: выявление ненадёжных и небезопасных операций

A portablemethod to detect and pinpoint bugs in runtime programs is presented. Traced operationsin it are functions manipulating resources. A language for describing a number of resourcesand related functions is presented too. The hierarchy of definitions are stored in XML.Analyzer core works with many classes of resources without recompilation. Instrumentedcode is placed in the source files of target application during preprocessing. Traced errorsoften impact the safety and the security of software.

Resource usage analysis in software.pdf Современное программное обеспечение обладает большим числом разнообразныхсвойств. Их можно условно разделить на положительные - это те, которые позволяютрешить задачу оптимальным методом, и отрицательные, которые мешают задуманномурешению. Среди отрицательных свойств программы основными являютсяненадёжность и небезопасность. Под надёжностью программы (или программно-аппаратногокомплекса) подразумевается её способность, путём действия или бездействия,работать без причинения вреда вовне. Под безопасностью - устойчивость к внешнемувоздействию, которое может нарушить работу программы. Данные понятия связаныдруг с другом, но существуют разные методы для разработки надёжных и безопасныхпрограмм. Здесь предложен метод обнаружения (в процессе работы отлаживаемойпрограммы) нежелательных с точки зрения надёжности и безопасности моментовеё работы. Обнаружение подразумевает не только выявление факта нарушения правильнойпоследовательности работы с ресурсами, но и предоставление разработчикудетальной информации о конкретном месте ошибки в исходном коде программы. Крометого, предоставляется информация о ходе её появления в случае не одномоментного(не в одном месте программы) её проистечения.Уникальность предложенного метода в том, что число ресурсов, с которым он можетработать, заранее не ограничено. Такой подход разработан потому, что для большогочисла разных ресурсов был замечен общий класс однотипных ошибочных конструкцийв программах. В частности, к этому классу отнесены следующие шаблонныеошибки: утечки ресурсов; использование ресурсов после их освобождения; повторныеосвобождения ресурсов; использование (неинициализированных) ресурсов без их предварительногозахвата; использование ресурсов за их границами (относится к динамическойпамяти и адресному пространству); нарушение вызываемого механизма захватаи освобождения ресурсов (функция захвата возвращает идентификатор ранее захваченногои ещё не освобождённого ресурса) и другие.Для решения задачи представления неограниченного количества ресурсов разработанязык описания ресурсов(для языка программирования Си). Для описания ресур-сов необходимо специальным образом составить файл-шаблон в формате XML. Послеэтого подать его на вход программе-генератору инструментируемых библиотек. Этибиблиотеки создаются в результате обхода дерева описания ресурсов с созданием кода,который будет встроен в анализируемую программу. Далее с помощью штатногокомпилятора происходит «вживление» инструментируемого кода. Затем следует запускпрограммы, в результате которой все функции, которые работают с описаннымиресурсами, будут перехвачены, все входные и выходные параметры проанализированы.Результат работы протоколируется в файл или отсылается программе-анализатору.Данная программа на основании полученных протокольных сообщений генерируетотчёт для разработчика об обнаруженных дефектах в программе, что позволяет емуих устранить.Метод анализа реализован для прикладных программ на языке Си под системыPOSIX и Windows, однако при необходимости может быть расширен на Си+-+ , а такжеадаптирован для ядер операционных систем.

Ключевые слова

Авторы

ФИООрганизацияДополнительноE-mail
Горелов Владимир ВладимировичНациональный исследовательский Томский государственный университетаспирант кафедры защиты информации и криптографииskylark@mail.tsu.ru
Всего: 1

Ссылки

 Анализ работы программы с ресурсами: выявление ненадёжных и небезопасных операций | Прикладная дискретная математика. Приложение. 2010. № 3.

Анализ работы программы с ресурсами: выявление ненадёжных и небезопасных операций | Прикладная дискретная математика. Приложение. 2010. № 3.