РАЗРАБОТКА ТЕСТОВЫХ ПРОГРАММ ДЛЯ ПРОГРАММНОГО КОМПЛЕКСА ПО ВЫЯВЛЕНИЮ ВРЕДОНОСНОГО КОДА И НЕДЕКЛАРИРОВАННЫХ ВОЗМОЖНОСТЕЙ В ПРОГРАММНОМ ОБЕСПЕЧЕНИИ
А.Н. Карлыханов Научный руководитель - д.т.н., профессор Л.Г. Осовецкий
В статье рассказывается о разработке тестовых программ как части программного комплекса по выявлению вредоносного кода и недекларированных возможностей в программном обеспечении.
Введение
На сегодняшний день информационные технологии встречаются практически в каждой отрасли жизнедеятельности человека. Развитие современной Ьоссийской экономики и экономики конкретного предприятия все больше зависит от информационных ресурсов и внедряемых технологий. В России ежегодно регистрируется до десяти тысяч преступлений в области компьютерной информации. В то же время большая часть компьютерных преступлений остается скрытой и не регистрируется правоохранительными органами. При этом процентное соотношение раскрытых и нераскрытых правонарушений пока не установлено. Как следствие? все острее встает вопрос обеспечения требуемого уровня информационной безопасности.
Одним из аспектов информационной безопасности является сохранение целостности информации, т.е. предотвращение изменения кода программ посредством вирусных атак и выявление программных закладок. К сожалению, современные антивирусные комплексы не могут справиться с постоянно изменяющимися и совершенствующимися вирусами, а так же гарантированно выявлять недекларированные возможности [1] (далее НДВ) в программном обеспечении.
Основная часть
Группой разработчиков кафедры безопасных информационных технологий СПбГУ ИТМО разрабатывается программный комплекс по верификации программного обеспечения, выявлению НДВ и вредоносного кода. На данном этапе разработки для решения этой задачи используются методы статического анализа, т.е. анализа кода программы без выполнения его на вычислительной машине. Используемый метод основан на анализе комплексных кубических покрытий логических условий программ. Такой метод позволяет наиболее точно описать логику исследуемых программ, что впоследствии позволит гарантированно обнаруживать НДВ и вирусы, а также выявлять некоторый класс ошибок в программном обеспечении.
В данной работе рассказывается об одной из компонент разрабатываемого программного комплекса, а именно о создании тестовых программ для проверки работоспособности комплекса. В эту задачу входило написание небольших программ, содержащих несколько логических веток выполнения. Такие программы называются мишенями (рис. 1).
Обязательное наличие логических ветвлений в программах мишенях обусловлено тем, что разрабатываемый комплекс анализирует логику программы, а не ее код целиком. Поэтому в мишенях использовались условные и безусловные переходы, вызовы функций и циклы.
Рис. 1. Блок-схема мишени, сгенерированная дизассемблером IDA
Рис. 2. Блок-схема смоделированной мишени с НДВ, сгенерированная дизассемблером IDA
На следующем этапе было необходимо смоделировать внедрение НДВ в готовые мишени. Внедрение НДВ моделировалось таким образом, что сначала отрабатывала функциональная часть программы мишени, а затем, незаметно для пользователя, функции, заложенные в НДВ (рис. 2). В качестве дополнительных функций исполняемых в полученных моделях мишеней использовали функции, свойственные обычным троянским программам, такие как регистрация своей копии для автозапуска (рис. 3, 4).
c:\soft\troi\*.*
ISS
Имя рГТип Размер Дата
еке 6 144 18.12.2006 11:
^|03_ndv_e eue 9 216 11.12.2006 17:
Проективная защита : Тревога
Внимание
Потенциально опасное ПО:
Troian.qeneric
Процесс (PID: 980):
С : \dangerous soft\troi\03_ndv_e. exe
Действие Процесс пытается зарегистрировать свою копию для автоматического запуска при старте компьютера. Такие действия характерны для троянских программ.
Карантин
Завершить
Разрешить
c:\Windows\*.*
Имя |ТТип Размер
5) twain dll 94 832
Vjtwain_32 dll 46 592
Vjvmmreg32 dll 18 944
J ! explorer еке 1 001 472
hh еке 26 647
Notepad еке 66 048
3 regedit еке 136 704
iTaskman еке 15 360
jtëst^) еке 9 216
M |twunk_16 еке 49 680
й |twunk_32 еке 25 600
Yû TWinhelp еке 256 800
■y 1 winhlp32 еке 267 264
j control ¡ni 0
A J-"1 desktop ¡ni 2
"è fmsdfmap ini 1 405
Рис. 3. Результат работы модели 03_ndv_e.exe
Г Ч /■уч Проактивная защита : Тревога
Внимание
Потенциально опасное ПО: Trolan.aeneric
Процесс (PID: 980): С : \dangerous sof l:\troi\03_ndv_e. exe
Действие
Процесс принудительно завершен. Рекомендуется откатить совершенные им изменения в Откат
Пропустить
системе.
История активности...
Добавить в доверенную зону...
Рис. 4. Реакция антивируса Касперского
Результатом работы разрабатываемого комплекса будет анализ исходных мишеней и моделей, построенных на их основе, имитирующих вредоносный код. Уже на данном этапе комплекс способен выявить внесенные в разработанные мишени изменения. Такие изменения обозначены пунктиром на рис. 2.
Заключение
На сегодняшний день ни одна из антивирусных программ не может дать стопроцентной гарантии по обнаружению вредоносного кода в программном обеспечении. Даже эвристический анализ далеко не всегда способен обнаружить новые вирусы или видоизмененные старые. Под еще большей угрозой находятся пользователи антивирусных программ, не обладающих проактивной защитой, например, такой, как у антивируса Касперского (рис. 4) или не использующих таких программ вовсе. Таким образом, важность разрабатываемого комплекса невозможно переоценить. Однако для его успешной реализации необходимо не только решать существующие проблемы, но и предугадывать поведение компьютерных злоумышленников. Именно поэтому создание тестовых программ является незаменимой частью в процессе данной разработки.
Литература
1. Руководящий документ. Защита от несанкционированного доступа к информации. Часть 1. Программное обеспечение средств защиты информации. Классификация по уровню контроля отсутствия недекларированных возможностей. М.: Гостехкомиссия России, 1998.
2. Немолочнов О.Ф., Раков С.В. Автоматизация логического проектирования. Учебное пособие. СПб: СПбГУ ИТМО, 1995, 60 с.
3. Peter Sezor The art of computer virus research and defense // Addison Wesley Professional, February 03 2005, 744 p.