АНАЛИЗ НЕДЕКЛАРИРОВАННЫХ ВОЗМОЖНОСТЕЙ И ВИРУСООПАСНЫХ КОДОВ О.Ф. Немолочнов, Л.Г. Осовецкий, Т.А. Биячуев Санкт-Петербургский государственный университет информационных технологий, механики и оптики Тел.: (812) 233-86-51, e-mail: cit@mail.ifmo.ru Риск вирусной опасности машинного кода состоит в наличии в нем недекларированных возможностей (НДВ), проявляется через его исполнение и может приводить как к разрушению данных и программ, так и резкому замедлению времени исполнения функциональных программ. Задача анализа вирусной опасности состоит в построении математических моделей вычислительных процессов, порождаемых процессорами при интерпретации команд программы, не прибегая к её исполнению [1]. Расшифровка машинного кода программы может быть осуществлена на основе знания системы команд процессора и структуры данных вычислительной платформы. Математическая модель в виде алгебрологических уравнений, описывающих вычислительный процесс, строится в соответствии с концептуальной двухконтурной интеграционно-рекурсивной моделью вычислительных процессов программ. В модели выделяются контуры обратной связи по управлению (КУо.с.) и по данным (КДо.с.). Вычислительный процесс программы описывается в виде графо-аналитической модели (вершины и дуги), которая строится методами структурирования машинного кода [2] путём разбиения его на замкнутые подмножества, имеющих одну точку входа (Tin) и одну точку выхода (Tout), эти замкнутые подмножества образуют линейные, реализующие алгебраические выражения вычисляемых переменных, и условные, реализующие условия – предикаты, вершины. Вершины связываются между собой направленными дугами и описываются булевыми функциями передачи управления от вершины к вершине. Технология выявления НДВ. Программное обеспечение (ПО) современных информационных технологий, вычислительной техники и телекоммуникационных систем является сегодня базовой основой для их развития. Рост применения ИТ в различных областях человеческой деятельности и рост влияния ИТ на качественные показатели жизни человека влечет за собой необходимость увеличения объемов разработок ПО, привлечение больших ресурсов на разработку, рост требований по качеству и надежности ПО. Рост требований и объемов разработки ПО привел к необходимости использования новых технологических решений, в том числе, использования распределенных коллективных усилий с привлечением ранее использованных компонент, жестким технологическим ограничениям для организации коллективной разработки, организацией единой базы разработки, единым управлением разработки, созданием мощных инструментально-технологических средств поддержки разработки. Технология создания ПО превратилась в многоэтапный инструментально поддержанный регламентированный процесс для своевременного удовлетворения требований потребителя по качеству и надежности ПО. Поддержка таких технологий под силу только крупным ведущим фирмам разработчикам ПО, которые становятся по сути дела представителями владения стратегическими государственными ресурсами. В этих условиях, вопросы безопасности и защиты информационных ресурсов пользователя разработанного ПО становятся в перечне показателей качества на первое место. Это характерно не только для государственного уровня потребителя ПО, но и для крупных фирм, банковских структур и малых развивающихся фирм. В перечне многочисленных показателей уровня безопасности ПО для пользователя, (речь идет и о стандартах ОК, BS 7799, американских стандартах, Российских требованиях по безопасности ПО) наряду с традиционными требованиями идентификации, целостности, конфиденциальности, декларируются специальные требования, в том числе требования по контролю отсутствия недекларированных возможностей. Ввиду изменения технологии создания ПО в сторону использования входящих компонент, организации распределенной удаленной разработки, использования покупных (аутсорсинг) технологий, роль требований по отсутствию недекларированных возможностей возрастает. Исследование вирусоопасных кодов. Для выявления вирусоопасности исполняемого кода программ необходимо выделение вирусоопасных элементов программ. Исследование вирусоопасных кодов (ВК) представляет творческую задачу из области обратного проектирования (reverse engineering), требующую высокой квалификации исследователя. Однако эффективность такого анализа можно повысить, если разработать методику вирусного анализа, описывающую некую общую последовательность действий (а также способов и средств) по достижению целей исследования – описания способов заражения, распространения ВК, разработки методов распознавания и обезвреживания (лечения) ВК или инфицированных программ. На самом уровне представления этапы методики включают: – подготовку исследовательского стенда, физически или логически изолированного от компьютеров и сетей общего доступа, так чтобы свести к минимуму риск распространения вредоносных программ; – динамический анализ ВК, позволяющий исследовать поведение анализируемого образца вредоносной программы, классифицировать его и составить первоначальное описание; – статический анализ ВК методами дизассемблирования; – разработка методов обезвреживания. Литература 1. Немолочнов О.Ф., Лаздин А.В. Метод построения графа функциональной программы для решения задач верификации и тестирования // Научно-технический вестник СПбГИТМО (ТУ). Выпуск 6. Информационные, вычислительные и управляющие системы. – СПб.: СПбГИТМО (ТУ), 2002. С.118–121. 2. Немолочнов О.Ф., Сидоров А.В. Верификация вычислительного процесса программы с использованием комплексных кубических покрытий. // Вестник II межвузовской конференции молодых ученых. Сборник научных трудов. Т. 1. – СПб.: СПбГУ ИТМО, 2005. – С.104-109