Файл: Классификация систем защиты программного обеспечения (Обзор стандартов защиты).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.04.2023

Просмотров: 387

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Устанавливается семь классов защищенности СВТ от НСД к информации. Самый низкий класс — седьмой, самый высокий — первый. В Приложении 2 приведена таблица защищенности СВТ от НСД к информации.

Классификация автоматизированных систем устроена следующим об- разом[23]. Снова обратимся к соответствующему Руководящему документу:

Устанавливается девять классов защищенности АС от НСД к информации. Каждый класс характеризуется определенной минимальной совокупностью требований по защите.

Классы подразделяются на три группы, отличающиеся особенностями обработки информации в АС. В пределах каждой группы соблюдается иерархия требований по защите в зависимости от ценности (конфиденциальности) информации и, следовательно, иерархия классов защищенности АС.

Третья группа классифицирует АС, в которых работает один пользователь, допущенный ко всей информации АС, размещенной на носителях одного уровня конфиденциальности. Группа содержит два класса — ЗБ и ЗА.

Вторая группа классифицирует АС, в которых пользователи имеют одинаковые права доступа (полномочия) ко всей информации АС, обрабатываемой и (или) хранимой на носителях различного уровня конфиденциальности.

Группа содержит два класса — 2Б и 2А.

Первая группа классифицирует многопользовательские АС, в которых одновременно обрабатывается и (или) хранится информация разных уровней конфиденциальности и не все пользователи имеют право доступа ко всей информации АС. Группа содержит пять классов— 1Д, 1Г, 1В, 1Б и 1А.

Сводные данные требований ко всем девяти классам защищенности АС указаны в приложении 1.

1.4. Классификация угроз безопасности

Построенная АС должна обеспечивать защиту от всех видов угроз, иначе образуется «дыра» в защите, поэтому необходимо перечислить все возможные угрозы, чтобы максимально был решен вопрос по защите.

Единой и общепринятой классификации угроз безопасности АС пока не существует [22]. Однако можно классифицировать эти угрозы по различным аспектам их реализации, способу их осуществления и объекту атаки. Классификация угроз по цели:

несанкционированное чтение информации; несанкционированное изменение информации;

несанкционированное уничтожение информации;

полное или частичное разрушение операционной системы (под разрушением операционной системы понимается целый комплекс разрушающих воздействий от кратковременного вывода из строя ("завешивания") отдельных программных модулей системы до физического стирания с диска системных файлов).


Классификация угроз по принципу:

использование известных (легальных) каналов получения информации, например, угроза несанкционированного чтения файла, доступ пользователей к которому определен некорректно - разрешен доступ пользователю, которому согласно адекватной политике безопасности доступ должен быть запрещен;

использование скрытых каналов получения информации; например: угроза использования злоумышленником недокументированных всех возможностей операционной системы;

создание новых каналов получения информации с помощь программных закладок.

Классификация угроз по характеру воздействия:

активное воздействие - несанкционированные действия злоумышленника в системе;

пассивное воздействие - несанкционированное наблюдение злоумышленника за процессами, происходящими в системе.

Классификация угроз по типу используемой злоумышленником слабости защиты:

неадекватная политика безопасности, в том числе и ошибки администратора системы;

ошибки и недокументированные возможности программного обеспечения операционной системы, в том числе и так называемые люки

случайно или преднамеренно встроенные в систему "служебные входы", позволяющие обходить систему защиты; обычно люки создаются разработчиками программного обеспечения для тестирования и отладки, и иногда разработчики забывают их удалить или оставляют специально;

ранее внедренная программная закладка.

Классификация угроз по способу воздействия на объект атаки:

непосредственное воздействие;

превышение пользователем своих полномочий;

работа от имени другого пользователя;

использование результатов работы другого пользователя (например, несанкционированный перехват информационных потоков, инициированных другим пользователем).

Классификация угроз по способу действий злоумышленника (нарушителя):

в интерактивном режиме (вручную);

в пакетном режиме (с помощью специально написанной программы, которая выполняет негативные воздействия на операционную систему без непосредственного участия пользователя-нарушителя).

Классификация угроз по объекту атаки:

операционная система в целом;

объекты операционной системы (файлы, устройства и т.д.);

субъекты операционной системы (пользователи, системные процессы и т.д.);

каналы передачи данных.

Классификация угроз по используемым средствам атаки:

штатные средства операционной системы без использования дополнительного программного обеспечения;


программное обеспечение третьих фирм (к этому классу программного обеспечения относятся как компьютерные вирусы и другие вредоносные программы (exploits), которые можно легко найти в Internet, так и программное обеспечение, изначально разработанное для других целей: отладчики, сетевые мониторы и сканеры и т.д.);

специально разработанное программное обеспечение.

Классификация угроз по состоянию атакуемого объекта операционной системы на момент атаки:

хранение;

передача;

обработка.

Рисунок 1. Классификация угроз безопасности.

Классификация угроз по силе воздействия на область поражения выделяются:

разрушительные;

дестабилизирующие;

парализующие

стимулирующие угрозы;

Классификация физических угроз:

уничтожение или разрушение средств обработки информации и связи;

хищение носителей информации;

хищение программных или аппаратных ключей и средств криптографической защиты данных;

воздействие на персонал;

Классификация радиоэлектронных угроз:

внедрение электронных устройств перехвата информации в технические средства и помещения;

перехват, расшифровка, подмена и уничтожение информации в каналах связи.

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

2. ВИДЫ СИСТЕМ ЗАЩИТЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

2.1. Методические аспекты разработки систем защиты программного обеспечения

Образцом для построения современных цифровых компьютеров стала работа английского математика Чарльза Бэббиджа по созданию аналитической машины, идея которой появилась ещё в XIX веке. В том же веке, английский математик, графиня Ада Лавлейс создала первую в мире программу для другой машины Бэббиджа, которая носит название разностной машины. Графиня Лавлейс считается первым программистом в истории.


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

Разрабатываемые сегодня программы упрощают работу не только учёным и научным сотрудникам, но и организациям, деятельность которых с наукой не связана, а торгово-рыночные отношения наделяют программные продукты стоимостью. Чем выше качество, возможности программы, богаче функционал, тем больше её стоимость.

Написанный программистами код может быть, как открытым (исходный код, написанный на языках низкого или высокого уровнях, находится в свободном доступе, а значит любой желающий может изучить устройство программы), так и закрытым (разработчики таких программ скрывают их устройства, исходных код является конфиденциальной информацией и защищён).

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

На практике ситуация ещё сложнее: исполняемый код может быть модифицирован злоумышленниками не только с целью её бесплатного распространения, но и по просьбе конкурентов в программу может быть внедрено вредоносное программное обеспечение (далее ПО), что заставит ее работать неправильно и тем самым репутацию компании-разработчика. Исполняемый код может быть изучен злоумышленником, возможно, по просьбе конкурентов. Результат изучения: общие сведения о программе, используемые в программе инновационные алгоритмы и т. д. вплоть до восстановления исходного кода программы.

Изучение методов защиты исполняемого кода является перспективным направлением, т. к. количество программных продуктов неуклонно возрастает, а вместе с ними и количество случаев пиратства, в результате которого разработчики несут колоссальные убытки. Поэтому вопрос безопасности собственности разработчиков ПО от его копирования, модификации и изучения становится одним из важнейших [1] - [10].


Анализ современных технологий взлома и защиты ПО. Необходимость внедрения систем защиты исполняемого кода возникает ввиду определённых ограничений, накладываемых разработчиками на распространение своей продукции. Поводом для введения таких мер могут служить уникальность отдельных частей кода или программы в целом, которые приносят разработчикам прибыль от продажи данной продукции, сокрытие программных закладок или люков, которые разработчик не хотел бы оглашать или документировать и в случае изучения кода компания может понести материальные убытки, а также серьёзно подорвать свою репутацию.

Классификация воздействий на исполняемый код включает два направления:

анализ;

модификация.

Оба этих направления - это целый класс методов и утилит, используемых не только злоумышленниками после коммерческого релиза приложения, но и разработчиком на этапах программирования, сборки и отладки.

При разработке систем защиты исполняемого кода необходимо учитывать особенности реализации таких воздействий и поэтому их следует рассмотреть более детально.

Исследование исполняемого кода. Следует отметить, что термины: исследование, изучение и анализ исполняемого кода являются синонимами, и рассматриваются в контексте работы именно так.

Анализ ПО - методики исследования исполняемого кода приложения; полученная информация в ходе их применения используется в различных целях: поиск уязвимых мест в коде (бесконечные циклы, исключения и т.п.), ошибок нарушение доступа к памяти, тестирование на предмет ошибок синхронизации многопоточных приложений, отчёты о производительности и т.д.

Согласно определению, область применения анализа ПО широка. Им могут воспользоваться как разработчики, так и злоумышленники, следовательно, анализ ПО нельзя отнести к однозначно негативным воздействиям на код.

Выделяют два типа анализа ПО: статический и динамический анализ.

Статический анализ. Статический анализ кода - анализ ПО, производимый без выполнения исследуемой программы, т.е. без её запуска.

Этому типу анализа могут быть подвергнуты как исходный код программы, так и объектный код или исполняемый машинный код.

В зависимости от реализации статический анализ может быть проведён в ручном или автоматизированном режиме (в виде утилит или надстроек для систем IDE). Утилиты и надстройки применяются разработчиками для тестирования, выявления и устранение потенциальных ошибок ПО.

Злоумышленниками могут использовать обе реализации для большего сбора сведений о программе, но как правило используют трансляторы, преобразующие исполняемый код в текст программы на языке ассемблера. Произведя дизассемблирование незащищённого приложения, становится довольно легко изучить принцип его работы и функционирования.