21
МАИ, каф 806, ППС БЕЗОПАСНОСТЬ 71

Проектирование программных систем. Занятие 7

Embed Size (px)

Citation preview

Page 1: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС

БЕЗОПАСНОСТЬ

71

Page 2: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС72

Атрибуты качество ПО. Безопасность.

Page 3: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС73

Атрибуты качество ПО. Безопасность. Тактики.

Отражение атаки

Authenticate users. Определяет что пользователь действительно тот, которым назвался. Например, различные схемы с паролями, цифровые сртификаты, биометрические сканеры.

Authorize users. Определяет что пользователь имеет право обращаться к тем или иным ресурсам.Классы пользователей могут быть определены группами пользователей и их ролями, или явным заданием списка пользователей, имеющих доступ к ресурсу.

Поддержка конфиденциальности данных. Шифрование данных и каналов передачи данных. Может быть реализовано как virtual private network (VPN), Secure Sockets Layer (SSL) for a Web-based link. Шифрование бывает симетрическое и на основе открытого ключа.

Поддержка целостности данных. Введение проверочных данных (чексумы, хэш коды).

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

Ограничение доступа. Использование Firewall ,DMZ.

Page 4: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС74

Атрибуты качество ПО. Безопасность. Тактики.

Обнаружение атаки

Обычно это делается анализом запросов к ресурсу, если запросы не укладываются ни в один системный сценарий или данные о запросах сохраненные в системе не совпадают с историей запросов (в вызывающей системе нет записи о том, что она делала такой запрос), то такие запросы трактуются как атаки.

Восстановление после атаки

Восстановление состояния системы. После обнаружения атаки система восстанавливает свое состояние на момент перед атакой.

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

Page 5: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС

Возможные атаки [1/7]

Interception

Когда одно приложение читает информацию сохранённую или отображаемую другим приложением.

Например:

• Установка перехватчика нажатий клавиатуры.

• Чтение TCP пакетов, передаваемых по сети.

• Чтение содержимого экрана.

Modification in Place or in Transit

Подмена данных в месте хранения. Например, подмена хранилища паролей или данных авторизации.

Возможна подмена данных на уровне сетевых протоколов, когда атакующий является клиентом и подменяет данные, касающиеся авторизации (например скрытые тэги HTTP протокола).

75

Page 6: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС

Возможные атаки [2/7]Man-in-the-Middle, Replay

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

Предположим, объект A планирует передать объекту B некую информацию. Объект C обладает знаниями о структуре и свойствах используемого метода передачи данных, а также о факте планируемой передачи собственно информации, которую С планирует перехватить. Для совершения атаки С «представляется» объекту А как В, а объекту В — как А. Объект А, ошибочно полагая, что он направляет информацию В, посылает её объекту С. Объект С, получив информацию, и совершив с ней некоторые действия (например, скопировав или модифицировав в своих целях) пересылает данные собственно получателю — В; объект В, в свою очередь, считает, что информация была получена им напрямую от А.

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

В случае Replay, атакующий подменяет ответ, модифицируя его содержимое.

76

Page 7: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС

Возможные атаки [3/7]

Interruption

Стабильность системы зависит от того на сколько целостно выполняются процессы. Если процесс был прерван, то это может привести к сбою в работе программы.

Saturation and Delay

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

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

Exploitation of Non-Atomicity

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

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

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

77

Page 8: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС

Возможные атаки [4/7]

Coordination Interference

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

Forced Crash and Retrieval of Crash Artifacts

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

Forced Restart, Forced Re-Install

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

Environmental Interference

Часто работа системы зависит от того насколько доступны ресурсы (сеть, файлы и т.д.) Атака может строится на том, что часть ресурсов делается недоступным (например, меняются атрибуты system log). Это может привести к падению в работе системы.

78

Page 9: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС

Возможные атаки [5/7]Spoofing

Подмена или уничтожение ресурса или артефакта в целях введения в заблуждения кого либо.

Примеры:

Изменение Source IP в пакете

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

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

Подмена программы которой доверяет пользователь, на похожую но с содержанием вредоносных данных.

Hijacking

Подмена одного серверного ресурса другим.

79

Page 10: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС

Возможные атаки [6/7]

Trap Door

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

Exploit of Incomplete Traceability

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

Exploit of Incomplete Validation

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

80

Page 11: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС

Возможные атаки [7/7]

Exploit of Incomplete Authentication or Authorization

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

Pattern Matching and Brute Force Guessing

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

Namespace Attack

Атаки, которые используют механизм определения адреса ресурса по имени для его подмены.

Weak Link as Gateway

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

81

Page 12: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС

Design Pattern: Reference Monitor

Context

Ресурс должен быть защищен, так что доступ к нему может иметь только авторизованный пользователь/приложение.

Задача

В приложениях доступ к ресурсу идет по ссылке. Ссылка может быть скопирована и передана в приложение, которое не является авторизованным.

Решение

Для доступа к ресурсу используется контейнер, удовлетворяющий следующим правилам:

• Он вызывается всегда

• Его нельзя поменять

• «Маленький и простой»

82

Page 13: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС

Design Pattern: Resource Proxy Gateway

Context

Ресурс должен быть защищен, так что доступ к нему может иметь только авторизованный пользователь/приложение.

Задача

В приложениях доступ к ресурсу идет по ссылке. Ссылка может быть скопирована и передана в приложение, которое не является авторизованным.

Решение

Все ссылки на объект заменяются ссылкой на Proxy

При вызове метода Proxy он производит вызов объекта

В полученных результатах вызова производится подмена реальных объектов на Proxy

83

Page 14: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС

Capability Model

Внутри контейнера сохраняется список пользователей

Для каждого пользователя указывается список ресурсов, к которым у него есть доступ

Могут указываться способы, которыми пользователь осуществляет доступ к ресурсу (например, только на чтение)

84

Page 15: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС

Access Control Lists

Для каждого ресурса указывается перечень пользователей, которые могут иметь к нему доступ

По сравнению с Capability Model позволяет более четко ограничить круг пользователей, имеющих доступ к ресурсу.

85

Page 16: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС

Design Pattern: Role-Based Permissions

Context

Ресурс должен быть защищен, так что доступ к нему может иметь только авторизованный пользователь/приложение.

Задача

Список пользователей достаточно большой, для того что бы им эффективно управлять

Решение

Создаются роли для доступа к ресурсу определенными способами

86

Page 17: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС

Design Pattern: Parameterized Permissions

Context

Ресурс должен быть защищен, так что доступ к нему может иметь только авторизованный пользователь/приложение.

Задача

Правила для доступа к ресурсу достаточно сложны

87

Page 18: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС88

Атрибуты качество ПО. Удобство тестирования.

Page 19: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС89

Атрибуты качество ПО. Удобство тестирования. Тактики.

Ввод/вывод Record/playback. Механизм позволяющий записывать данные передаваемые в

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

Separate interface from implementation. Данный механизм позволяет реализовывать "заглушки" - специальные модули, которые наследуют интерфейсы нормальных компонент, но не выполняют действие а только иметируют его выполнение в целях тестирования.

Specialize access routes/interfaces. Создание специализированных интерфейсов для тестирования системы, которые могут использоваться системами тестирования в своей работе. Т.е. появляется возможность проводить тестирование на любом уровне программы. Такие интерфейсы обычно отделяют от обычных интерфейсов. Например, что бы протестировать работу компонента в каком-то сложно-достижимом состоянии, мы можем привести этот компонент в данное состояние путем нормальной работы (не в результате подготовки unit-теста) и вызывать интерфейс тестирования.

Внутренний мониторинг Built-in monitors. Важные состояния объекта сохраняются на диске или передаются в

специализированную систему мониторинга. Для этого в программу встраиваются точки снятия состояния объекта, например, с помощью аспектно-ориентированных языков.

Page 20: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС90

Атрибуты качество ПО. Usability.

Page 21: Проектирование программных систем. Занятие 7

МАИ, каф 806, ППС91

Атрибуты качество ПО. Usability. Тактики.

Runtime

Модель задания. Знание задания позволяет помочь пользователю его выполнить. Например, при наборе текста система может сама менять первую букву на прописную.

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

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

Designtime

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

• Model-View-Controller

• Presentation-Abstraction-Control