§ Модели угроз безопасности программного обеспечения
Вид материала | Лекции |
- Учебно-методический комплекс дисциплины разработка и стандартизация программных средств, 362.73kb.
- Особенности обеспечения экономической безопасности в монопрофильных городах, 222.37kb.
- И. Ф. Бабалова московский инженерно-физический институт (государственный университет), 39.62kb.
- Администрация города ишима, 487.91kb.
- Метрология и качество программного обеспечения, 39.54kb.
- Классификация программного обеспечения, 77.32kb.
- Положение об организации обучения и проверки знаний рабочих организаций-членов нп «Объединение, 94.34kb.
- Структура программного обеспечения, 39.47kb.
- Рабочая программа учебной дисциплины (модуля) case-средства проектирования программного, 143.56kb.
- Удк 004. 056. 5 Моделирование и прогнозирование информационных угроз как составная, 94.29kb.
Лекции №2 и №3 (16.02.11)
§ 1.5. Модели угроз безопасности программного
обеспечения
1.5.1 Вводные замечания
Использование при создании программного обеспечения КС сложных операционных систем, инструментальных средств проектирования ПО увеличивают потенциальную возможность внедрения в программы преднамеренных дефектов. Кроме того, при создании прикладного программного обеспечения всегда необходимо исходить из возможности наличия в коллективе разработчиков программистов-злоумышленников, которые в силу тех или иных причин могут внести в разрабатываемые программы РПС.
Напомним, что мы рассматриваем в качестве основных угроз — внедрение РПС в разрабатываемое ПО КС, а также деструктивное изменение различных процессов в КС.1
В связи с этим мы оставляем за рамками исследований другие угрозы, такие как, например, ошибки в выборе политики безопасности, в спецификации на программный комплекс, ошибки программистов и др. Сосредоточим свое внимание на РПС, преднамеренно вносимых в ПО на этапах его проектирования, кодирования, отладки, испытаний. Это и закладывается в основу политики обеспечения технологической безопасности ПО КС, которая будет определять порядок и характер действий по предотвращению и устранению негативных последствий в результате действия и последействия РПС.
На базе положений такой политики безопасности разрабатываются различные нормативно-технические и организационно-распорядительные документы (положения, руководства, регламенты и др.), в том числе и модель угроз технологической безопасности ПО, основные элементы которой рассматриваются в следующем пункте.
1.5.2 Подходы к созданию модели угроз технологической безопасности ПО
Модель угроз технологической безопасности ПО должна представлять собой нормативный документ, которым должны руководствоваться заказчики и разработчики программных комплексов при разработке ПО. Модель угроз должна включать:
-полный реестр типов возможных РПС;
-описание технологически наиболее уязвимых мест компьютерных систем (с точки зрения наличия условий для скрытого внедрения РПС);
-реконструкцию замысла злоумышленников, имеющих своей целью внедрение в ПО заданного типа (класса, вида) РПС;
-портрет потенциального злоумышленника, осуществляющего деструктивные действия на этапе разработки ПО.
В качестве приложения к модели может разрабатываться банк данных о выявленных РПС и описание связанных с их обнаружением обстоятельств, который периодически пополняется и уточняется.
В основе модели может лежать схема угроз, типовой вид которой применительно к ПО КС представлен на рис. 1.1.
Рис. 1.1. Схема угроз технологической безопасности ПО
Кроме схемы угроз может составляться типовой реестр угроз технологической безопасности ПО. Пример такого реестра для сложных программных комплексов приведен в перечне 1.1. При этом курсивом выделены угрозы, связанные с внедрением РПС.
ПРОЕКТИРОВАНИЕ
Проектные решения.
Злоумышленный выбор нерациональных алгоритмов работы.
Облегчение внесения РПС и затруднение их обнаружения.
Внедрение злоумышленников в коллективы, разрабатывающие наиболее ответственные части ПО.
Используемые информационные технологии.
Внедрение злоумышленников, в совершенстве знающих «слабые» места и особенности используемых технологий.
Внедрение информационных технологий или их элементов, содержащих РПС.
Внедрение неоптимальных информационных технологий.
Используемые аппаратно-технические средства.
Поставка вычислительных средств, содержащих программные, аппаратные или программно-аппаратные закладки.
Поставка вычислительных средств с низкими эксплуатационными характеристиками.
Задачи коллективов разработчиков и их персональный состав.
Внедрение злоумышленников в коллективы разработчиков программных и аппаратных средств.
Вербовка сотрудников путем подкупа, шантажа и т.п.
КОДИРОВАНИЕ
Архитектура программной системы, взаимодействие ее с внешней средой и взаимодействие подпрограмм программной системы.
Доступ к «чужим» подпрограммам и данным.
Нерациональная организация вычислительного процесса.
Неправильная организация динамически формируемых команд или параллельных вычислительных процессов.
Неправильная организация переадресации команд, запись злоумышленной информации в используемые программной системой или другими программами ячейки памяти.
Функции и назначение кодируемой части программной системы, взаимодействие этой части с другими подпрограммами.
Формирование РПС, воздействующей на другие части программной системы.
Организация замаскированного спускового механизма РПС.
Формирование РПС, изменяющей структуру программной системы.
Технология записи программного обеспечения и исходных данных.
Поставка программного обеспечения и технических средств со встроенными РПС.
ОТЛАДКА И ИСПЫТАНИЯ
Назначение, функционирование, архитектура программной системы.
Встраивание РПС как в отдельные подпрограммы, так и в управляющую программу компьютерной системы.
Формирование РПС с динамически формируемыми командами.
Неправильная организация переадресации отдельных команд программной системы.
Сведения о процессе испытаний (набор тестовых данных, используемые вычислительные средства, подразделения и лица, проводящие испытания, используемые модели).
Формирование набора тестовых данных, не позволяющих выявить РПС.
Поставка вычислительных средств, содержащих программные, аппаратные или программно-аппаратные закладки.
Формирование РПС, не обнаруживаемой с помощью используемой модели объекта в силу ее неадекватности описываемому объекту.
Вербовка сотрудников коллектива, проводящих, испытания.
КОНТРОЛЬ
Используемые процедуры и методы контроля.
Формирование спускового механизма РПС, не включающего ее при контроле на безопасности.
Маскировка РПС путем внесения в программную систему ложных «непреднамеренных» дефектов.
Формирование РПС в ветвях программной системы, не проверяемых при контроле.
Формирование РПС, не позволяющих выявить их внедрение в программную систему путем получения контрольных значений (контрольных сумм, кэш-значений, кодов аутентификации сообщений и т.п.).
Поставка программного обеспечения и вычислительной техники, содержащих программные, аппаратные и программно-аппаратные закладки.
Сведения о персональном составе контролирующего подразделения и испытываемых программных системах.
Внедрение злоумышленников в контролирующее подразделение.
Вербовка сотрудников контролирующего подразделения.
Сбор информации об испытываемой программной системе.
Сведения об обнаруженных при контроле программных закладках.
Разработка новых РПС при доработке программной системы Сведения об обнаруженных непреднамеренных дефектах а РПС.
Сведения о доработках программной системы и подразделениях, их осуществляющих.
Сведения о среде функционирования программной системы и ее изменениях.
Сведения о функционировании программной системы, доступе к ее загрузочному модулю и исходным данным, алгоритмам проверки сохранности программной системы и данных.
1.5.3. Элементы модели угроз эксплуатационной безопасности ПО
Анализ угроз эксплуатационной безопасности ПО КС [7, 41, 45, 48,
63, 69, 118, 142, 147, 165] позволяет разделить их на два типа: случайные и преднамеренные, причем последние подразделяются на активные и пассивные. Активные угрозы связаны с изменением технологически обусловленных алгоритмов, программ функциональных преобразований или информации, над которой эти преобразования осуществляются. Пассивные угрозы ориентированы на нарушение безопасности информационных технологий без реализации таких модификаций.
Вариант структуры потенциальных угроз безопасности информации
и ПО на этапе эксплуатации КС приведен в таблице 1.1.
На основании анализа уязвимых мест и после составления полного перечня угроз для данного конкретного объекта информационной защиты, например в виде указанной таблицы, необходимо осуществить переход к неформализованному или формализованному описанию модели угроз эксплуатационной безопасности ПО КС. Такая модель, в свою очередь, должна соотноситься (или даже являться составной частью) с моделью обеспечения безопасности информации и ПО объекта защиты, в целом.
К неформализованному описанию модели угроз приходится прибегать в том случае, когда структура, состав и функциональная нагрузка КС системы носят многоуровневый, сложный, распределенный характер, а действия потенциального нарушителя информационных и функциональных ресурсов трудно поддаются формализации. Пример неформализованного представления модели угроз при исследовании попыток несанкционированных действий в отношении защищаемой КС приведен на рис. 1.2.
После окончательного синтеза модели угроз разрабатываются практические рекомендации и методики по ее использованию для конкретного объекта защиты, а также механизмы оценки адекватности модели и реальной информационной ситуации, оценки эффективности ее применения при эксплуатации КС.
Таким образом, разработка моделей угроз безопасности программного обеспечения КС, являясь одним из важных этапов комплексного решения проблемы обеспечения безопасности информационных технологий, на этапе создания КС отличается от разработки таких моделей для этапа их эксплуатации.
Принципиальное различие подходов к синтезу моделей угроз технологической и эксплуатационной безопасности ПО заключается в различных мотивационных установках поведения потенциального нарушителя информационных ресурсов, принципах, методах и средствах воздействия на ПО на различных этапах его жизненного цикла.
1.5.4. Модель разрушающего программного средства
Обобщенное описание и типизация РПС. Обобщенное описание и типизация РПС будет делаться в соответствии с идеями, изложенными в п, 1.2.1, и некоторыми положениями работы [124], которые автор счел возможным взять за основу предлагаемого далее материала, в силу их хорошей прикладной проработанности.
Разрушающим программным средством9, в данном случае будем считать некоторую программу, которая способна выполнить любое непустое подмножество перечисленных ниже основных злоумышленных действий:
• сокрытие признаков своего присутствия в программной среде КС;
• реализация самодублировання, ассоциирования себя с другими программами и/или переноса своих фрагментов в иные области оперативной или внешней памяти;
• разрушение или модификация кода программ в оперативной памяти КС;
• несанкционированное перемещение фрагментов информации из оперативной памяти в другие области оперативной или внешней памяти прямого доступа;
• искажение произвольным образом, блокировки и/или подмены выводимых во внешнюю память или в канал связи данных, образовавшихся в результате работы прикладных программ.
Можно выделить следующие основные типы РПС.
Разрушающие программные средства, отключающие или обходящие защитные функции КС. Такие РПС, внедренные в защищенную КС. могут модифицировать машинный код или конфигурационные данные системы, тем самым полностью или частично отключая ее защитные функции. В защищаемой КС создаются «обходные пути», позволяющие злоумышленнику работать в системе, обходя ее защитные функции.
Перехватчики паролей. Перехватчики паролей перехватывают идентификаторы и пароли, вводимые пользователями защищаемой КС в процессе их идентификации и аутентификации. В простейшем случае перехваченные идентификаторы и пароли сохраняются в текстовом файле, более сложные РПС пересылают эту информацию по сети на компьютер злоумышленника.
Существуют три основные архитектуры построения перехватчиков паролей.
1. Перехватчики паролей первого рода осуществляют сценарий имитации ошибки ввода идентификатора и/или пароля. Злоумышленник запускает программу, содержащую РПС — перехватчик паролей. Он имитирует приглашение пользователю для входа в систему и ждет от него ввода соответствующих данных. Когда пользователь вводит идентификатор и пароль, РПС сохраняет их в доступном для злоумышленника месте, после чего завершает работу и осуществляет выход из системы пользователя-злоумышленника. По окончании работы РПС на экране появляется настоящее приглашение для входа пользователя в систему. Пользователь, ставший «жертвой» РПС, видит, что он не вошел в систему и ему снова предлагается ввести идентификатор и пароль. Пользователь предполагает, что при вводе пароля произошла ошибка, и вводит идентификатор и пароль повторно. После этого он входит в систему, и дальнейшая его работа протекает нормально.
2. Перехватчики паролей второго рода перехватывают данные, вводимые пользователем с клавиатуры. Простейшие РПС данного типа просто сбрасывают все эти данные на какой-либо носитель, доступный для злоумышленника. Более совершенные РПС анализируют перехваченные данные и отсеивают информацию, заведомо не имеющую отношения к идентификаторам и паролям. Эти РПС представляют собой резидентные программы, перехватывающие одно или несколько прерывании , используемых при работе с клавиатурой. Информация о введенном символе, возвращаемая этими прерываниями, используется закладками дли своих целей.
3. К перехватчикам паролей третьего рода относятся программные закладки, полностью или частично подменяющие собой подсистему аутентификации защищаемой КС. Поскольку задача создания такого РПС гораздо сложнее, чем задача создания перехватчика паролей первого или второго рода, будем считать возможность злонамеренно воздействовать на подсистемы идентификации и аутентификации пользователей при их входе в систему отчасти гипотетической.
Перехватчики потоков данных. Такие РПС перехватывают те или иные потоки данных, протекающие в атакованной системе. В частности, к ним относятся перехватчики паролей второго рода.
Целевое назначение перехватчиков потоков данных может быть самым разным. Например, они могут:
• собственно перехватывать потоки данных;
• сохранять перехваченную информацию в доступном для злоумышленника месте;
• модифицировать потоки данных;
• полностью или частично блокировать потоки данных;
• использовать мониторинг потоков данных для сбора информации об атакованной КС.
Разрушающие программные средства, осуществляющие превышение полномочий пользователя. Такие РПС применяются для преодоления тех систем защиты, в которых реализовано разграничение доступа пользователей к объектам доступа. РПС данного типа позволяют злоумышленнику осуществлять доступ к тем объектам, доступ к которым должен быть ему запрещен согласно текущей политике безопасности. Если, например, РПС наделяет пользователя-злоумышленника полномочиями администратора, то злоумышленник имеет практически неограниченный доступ к ресурсам КС. Чаще всего РПС данного класса используют ошибки в программном обеспечении.
Логические бомбы. Такие РПС, как правило, нацелены на полное выведение КС из строя. В отличии от вирусов логические бомбы не размножаются или размножаются ограниченно. Логические бомбы всегда предназначены для атаки на конкретную КС. После того как разрушающее воздействие завершено, логическая бомба обычно самоуничтожается.
Иногда выделяют особый класс логических бомб — временные или событийные бомбы, для которых условием срабатывания является до-' стижение определенного момента времени или наступление какого-либо события. Характерным свойством логических бомб является то, что реа-' лизуемые ими негативные воздействия на атакованную КС носят исключительно разрушающий характер.
Сборщики информации о КС. Разрушающие программные средства данного класса предназначены для пассивного наблюдения за программной средой, в которую они внедрены. Основная цель применения подобных РПС заключается в первичном сборе информации об атакуемой КС. В дальнейшем эта информация может использоваться для организации других злоумышленных действий.
Для того чтобы РПС смогли выполнять какие-либо действия по отношению к прикладной программе или данным, они должны получить управление, т.е. процессор должен начать выполнять команды, относящиеся к коду РПС. Это возможно только при одновременном выполнении двух условий:
1) РПС должно находиться в оперативной памяти до начала работы прикладной программы, которая является целью воздействия РПС, э следовательно, оно должно быть загружено раньше или одновременно с этой программой;
2) РПС должно активизироваться по некоторому общему как для РПС, так и для программы событию, т.е. при выполнении ряда условий в программно-аппаратной среде управление должно быть передано РПС.
С учетом замечания о том, что РПС должно быть загружено в оперативную память раньше, чем прикладная программа — цель его воздействия, можно выделить РПС двух типов:
1) РПС резидентного типа — находятся в памяти постоянно с некоторого момента времени до окончания сеанса работы компьютера (выключения питания или перезагрузки); РПС может быть загружено" в память при начальной загрузке компьютера, загрузке операционной среды или запуске некоторой программы (которая по традиции называется вирус оное ител ем или просто носителем), а также запущено отдельно;
2) РПС нерезидентного типа — начинают работу, как и РПС резидентного типа, но заканчивают ее самостоятельно через некоторый промежуток времени или по некоторому событию, при этом выгружая себя из памяти целиком.
Модели взаимодействия прикладной программы и РПС. Обобщенную модель РПС можно представить в виде совокупности моделей, каждая из которых соответствует приведенной выше типизации РПС и характеризует действия злоумышленника исходя из его возможностей [124]. Кроме того, очень важно представлять сценарии взаимодействия РПС и атакуемого им объекта защиты (прикладной программы, операционной системы, системного сервиса, постоянного запоминающего устройства и т.д.). Моделирование такого взаимодействия для разных типов РПС можно представить в виде «работы» совокупности «сопряженных» моделей, описываемых ниже.
1. Модель «перехват». Разрушающее программное средство встраивается (внедряется) в объект защиты и сохраняет все или избранные фрагменты вводимой, выводимой или обрабатываемой информации в скрытой области локальной или удаленной внешней памяти прямого доступа. Объектом сохранения могут быть данные клавиатурного ввода, документы, выводимые на принтер/монитор, или уничтожаемые файлы/документы. Необходимо также, чтобы сохраняемая информация была каким-либо образом замаскирована от просмотра легальными пользователями.
2. Модель «троянский конь». Разрушающее программное средство встраивается в постоянно используемое программное обеспечение и по некоторому активизирующему событию имитирует сбойную ситуацию на средствах хранения информации или в оборудовании КС. Тем самым могут быть достигнуты две цели: во-первых, может быть парализована нормальная работа КС и, во-вторых, злоумышленник (например, под видом обслуживания или ремонта) может ознакомиться с имеющейся в системе или накопленной посредством использования модели «перехват» информацией. Событием, активизирующим РПС, может быть некоторый момент времени, либо сигнал из канала связи (явный или замаскированный), либо состояние некоторых счетчиков (например, число запусков программ).
3. Модель «наблюдатель». Разрушающее программное средство встраивается в сетевое или телекоммуникационное программное обеспечение, которое, как правило, всегда активно. В таком случае РПС осуществляет контроль за процессами обработки информации в данной КС, а также съем накопленной информации. Такая РПС может инициировать события для ранее внедренных РПС, действующих по модели «троянский конь».
4. Модель «компрометация». Разрушающее программное средство либо передает заданную злоумышленником информацию (например, данные клавиатурного ввода) в канал связи, либо сохраняет ее на соответствующих носителях данных. Более редкий, но имеющий место в современной компьютерной практике случай — РПС инициирует постоянное обращение к информации, приводящее к росту отношения сигнал/шум для перехвата злоумышленником побочных излучений".
5. Модель «искажение данных или инициирование ошибок». Разрушающее программное средство искажает входные и/или выходные потоки данных, возникающие при работе прикладных программ, либо инициирует (или подавляет) возникающие при работе прикладных программ ошибки.
6. Модель «сборка мусора». Разрушающее программное средство в данном случае не оказывает прямого влияния на прикладные программы,— изучается лишь остаточная информация. В случае применения такого РПС навязывается такой порядок работы, чтобы максимизировать количество остающихся фрагментов ценной информации. Злоумышленник получает либо данные фрагменты, используя РПС моделей 2 и 3, либо непосредственный доступ к компьютеру под видом ремонта или профилактики.
Методы внедрения РПС. Можно выделить следующие основные методы внедрения РПС [124].
1. Маскировка РПС в «безобидном» программном обеспечении. Данный метод заключается в том, что РПС внедряется в КС в составе новой программы, на первый взгляд вполне безобидной. Такое РПС может быть внедрено в офисные программы, системные сервисы, компьютерные игры и т. п. После внедрения РПС его присутствие в системе не нужно маскировать— даже если администратор заметит факт появления в системе новой программы, он не придаст этому значения, поскольку эта программа внешне совершенно безобидна.
Многие программные среды допускают свое расширение дополнительными программными модулями. Например, для операционных систем семейства М!сгозоГ1 \УЫо\У5 модулями расширения могут выступать динамически подгружаемые библиотеки (ОЬЦ и драйверы устройств. В таких модулях расширения может также содержаться РПС, которое потенциально может быть внедрено в систему.
2. Подмена РПС одного или нескольких программных модулей атакуемой среды. Данный метод внедрения в систему РПС заключается в том, что в атакуемой программной среде выбирается один или несколько программных модулей, подмена которых фрагментами программной закладки позволяет оказывать на среду требуемые для злоумышленника-негативные воздействия. Такие РПС должны полностью реализовывать все функции подменяемых программных модулей.
Основная проблема, возникающая при практической реализации данного метода, заключается в том, что программист, разрабатывающий РПС, никогда не может быть уверен, что созданное им РПС точно реализует все функции подменяемого программного модуля. Если подменяемый модуль достаточно велик по объему или недостаточно подробно документирован, точно запрограммировать все его функции практически невозможно. Поэтому злоумышленник может применять описываемый метод только для тех программных модулей атакуемой среды, для которых доступна полная или почти полная документация. Оптимальной для злоумышленника является ситуация, когда доступен исходный текст подменяемого модуля.
3. Прямое и косвенное ассоциирование. Данный метод внедрения в систему РПС заключается в его ассоциировании с исполняемыми файлами одной или нескольких легальных программ КС. Сложность задачи прямого ассоциирования РПС с программой атакуемой среды существенно зависит от того, является атакуемая среда однозадачной или многозадачной, однопользовательской или многопользовательской. Для однозадачных однопользовательских систем эта задача решается достаточно просто. В тоже время при внедрении РПС в многозадачную или многопользовательскую программную среду прямое ассоциирование закладки с легальным программным обеспечением является достаточно сложной задачей для злоумышленника.
Косвенное ассоциированне РОС с программным модулем атакуемой среды заключается в ассоциировании РПС с кодом программного модуля, загруженным в оперативную память. При косвенном ассоциировании исполняемый файл программного модуля остается неизменным, что затрудняет выявление РПС. Для того чтобы косвенное ассоциирование стало возможным, необходимо, чтобы инсталлирующая часть РПС уже присутствовала в системе. Другими словами, РПС, внедряемое в систему с помощью косвенного ассоциирования, должно быть составным.
Таким образом, подробно разработанная детально описанная модель РПС, использование которого является одним из наиболее опасных сценариев поведения в отношении защищаемой КС, позволяет создавать конкретные модели и методы защиты от подобных деструктивных средств.
Это, в свою очередь, позволит снизить ущерб от действия и последействия РПС, а в ряде случаев и вообще избежать его.
1См. определение технологической безопасности ПО в предыдущем параграфе.