Защита ПО
Лекция № 3. Нормативные документы
Требования к процессу анализа защищенности ПО
Механизмы аутентификации, Механизмы авторизации, Идентификация
Пример обмена сообщениями
Задание для самостоятельной работы
Механизмы сегментации ПО
Сегмент баз данных (DB, уровень III)
Третий уровень, уровень данных (без сетевых устройств)
Защита программного обеспечения
Задание на практическую работу
Выполнение ПР_1
Благодарю за внимание!
1.51M
Category: softwaresoftware

Защита ПО. Нормативные документы. Лекция № 3

1. Защита ПО

Поволжский государственный университет сервиса (ПВГУС)
Глухова Л.В.
Защита ПО
Лекция от 11.09.23 для групп БОЗИ22
Лекция от 13.09.23 для групп БОЗИ20

2. Лекция № 3. Нормативные документы

1.
2.
3.
Обзор нормативных и организационно-методических документов, которые
применяются в сфере финансово-экономической деятельности
Методы и средства программной защиты
Инструменты, обеспечивающие защиту программного обеспечения
Ссылки:
Соответствия ПО требования регулятора, новые:
Указ Президента Российской Федерации от 01.05.2022 г. № 250 «О
дополнительных мерах по обеспечению информационной безопасности
Российской Федерации»
1. Сканирование ПО на наличие уязвимостей и безопасной разработки
https://habr.com/ru/post/444534/
2. Статья где описываются способы аутентификации
https://habr.com/ru/company/dataart/blog/311376/
3. Механизмы сегментации ПО
В статье описан механизм сегментации https://habr.com/ru/post/588705/
4. Механизмы межсистемных взаимодействий
Хорошая статья про способы взаимодействия между сервисами
https://habr.com/ru/company/oleg-bunin/blog/543946/

3. Требования к процессу анализа защищенности ПО

На что следует обращать внимание при анализе ПО
1. Механизмы аутентификации
2. Механизмы авторизации
3. Механизмы сегментации ПО
4. Механизмы межсистемных взаимодействий
5. Соответствия ПО требованиям регулятора
6. Механизмам логирования, в том числе в соответствии с
требованиями регулятора.
7. Вопросы связанные с криптографией
8. Использование средств защиты при развертывании ПО
Хорошей практикой в компании где ведется разработка ПО является
разработка локального документа в котором описаны безопасные
механизмы которые допускается использовать в компании.

4. Механизмы аутентификации, Механизмы авторизации, Идентификация

Идентификация — это процедура распознавания субъекта по его
идентификатору (проще говоря, это определение имени, логина или
номера). Идентификатором может быть: логин, номер телефона, e-mail,
уникальный токен и т.п.
Аутентификация – это процедура проверки подлинности того что знает
либо имеет либо то что является частью Лица.
Пароль – то, что мы знаем (слово, PIN-код, код для замка, графический
ключ)
Устройство – то, что мы имеем (пластиковая карта, ключ от замка,
USB-ключ)
Биометрия – то, что является частью нас (отпечаток пальца, портрет,
сетчатка глаза)
Авторизация – предоставление определённому лицу или группе лиц
прав на выполнение определённых действий; а также процесс проверки
(подтверждения) данных прав при попытке выполнения этих действий
(например, доступ к переписке в электронной почте, предоставление прав
).

5.

Способы аутентификации:
Статья где описываются способы аутентификации
https://habr.com/ru/company/dataart/blog/311376/
При использовании
HTTP-протокола
простейший способ
аутентификации — Basic
access authentication. В
принципе этот протокол
устарел и уже редко
используется в
интернете, особенно в
Первым, что при обращении к защищенному ресурсу
незащищенных
сервер выдаст пользователю, не имеющему доступа,
соединениях, но еще
будет ошибка 401 Unauthorized. При этом ответ также
сохраняется во
содержит информацию о типе аутентификации (в
внутрикорпоративных
системах, просто потому нашем случае – Basic), который он может принимать,
и контекст, в рамках которого эта аутентификация
что некоторые из них
действует (Realm). Пользователь вводит логин и
созданы достаточно
пароль, они упаковываются в Base64 и отправляются
давно
на сервер для проверки.

6.

Base64 — стандарт кодирования двоичных данных при помощи только 64
символов ASCII. Алфавит кодирования содержит латинские символы A-Z, a-z,
цифры 0-9 (всего 62 знака) и 2 дополнительных символа, зависящих от системы
реализации.

7.

Аутентификация Digest
была разработана как
усовершенствование
базовой аутентификации
HTTP. Одним из основных
улучшений является то, что
данные передаются не в
открытом виде, а в
зашифрованном формате.
Сначала пользователь делает запрос на страницу без каких-либо учетных
данных. Сервер отвечает ему заголовком WWW-Authenticate, указывающим,
что для доступа к ресурсу требуются учетные данные. Сервер также
посылает случайное значение, которое обычно называется "nonce". Затем
браузер использует криптографическую функцию для создания дайджеста
сообщения из имени пользователя, пароля, nonce, методов HTTP и URL
страницы.
По умолчанию аутентификация Digest использует алгоритм
криптографического хэширования MD5

8.

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

9.

Token Based Authentication, обычно применяется при построении систем Single
sign-on (SSO). При его использовании запрашиваемый сервис делегирует
функцию проверки достоверности сведений о пользователе другому сервису. Т.
е. провайдер услуг доверяет выдачу необходимых для доступа токенов
собственно токен-провайдеру (Identity provider).
Токены предназначены для электронного удостоверения личности (например,
клиента, получающего доступ к банковскому счёту), при этом они могут
использоваться как вместо пароля, так и вместе с ним. В некотором смысле
токен — это электронный ключ для доступа к чему-либо.

10. Пример обмена сообщениями

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

11.

В качестве реализации мы
рассматриваем протокол OAuth2.
OpenID — для проверки учетных данных пользователя (identification & authentication).
OAuth — про то, чтобы получать доступ к чему-то.
OpenID Connect — и про и то, и про другое одновременно.

12.

В реализации OAuth2 используется так называемый jwt-токен, который
состоит из трех частей. Допустим, при обращении к Identity provider вы
отправляете логин/пароль и в ответ получаете токен. Он будет включать в
себя: Header (заголовок), Payload (контент) и Signature (подпись).

13.

Стандартные полях в токене и зачем они нужны:
iss — адрес или имя удостоверяющего центра.
sub — идентификатор пользователя. Уникальный в рамках
удостоверяющего центра, как минимум.
aud — имя клиента для которого токен выпущен.
exp — срок действия токена.
nbf — время, начиная с которого может быть использован (не
раньше чем).
iat — время выдачи токена.
jti — уникальный идентификатор токен (нужен, чтобы нельзя был
«выпустить» токен второй раз)
Identity Token — подтверждение аутентификации. Этот токен содержит
минимальный набор информации о пользователе.
Access Token — информация, что конкретному пользователю разрешается
делать. Клиент запрашивает Access Token и затем использует его для доступа к
ресурсам (Web APIs).
Refresh Token — токен, по которому STS вернет новый Access Token.

14. Задание для самостоятельной работы

1.Ознакомиться в ресурсом:
https://habr.com/ru/company/dataart/blog/311376/
2. Описать схему выполнения аутентификации
Пояснить процесс аутентификации, используемые протоколы
3. Описать пошаговый алгоритм выполнения протокола
OpenIDConnect
Протокол OpenID Connect, в общих чертах, следует следующим шагам.
1. RP (клиент) отправляет запрос поставщику OpenID (OP).
2. OP аутентифицирует конечного пользователя и получает авторизацию.
3. OP отвечает токеном идентификатора и обычно токеном доступа.
4. RP может отправить запрос с токеном доступа в конечную точку
UserInfo.
5. Конечная точка UserInfo возвращает утверждения о конечном
пользователе.

15. Механизмы сегментации ПО

Механизм сегментации описан в https://habr.com/ru/post/588705/
базовый подход к сегментации сети компании при разработке новых либо
модернизации текущих автоматизированных систем.
Рассмотрим:
Основные уровни: DMZ, APP, DB;
Правила межсервисного взаимодействия.
DMZ - сегмент сети, предназначенный для размещения сетевых устройств
взаимодействующих с внешними сетями, в частности с сетью интернет.
в демилитаризованной зоне размещается то, что не жалко потерять, что
потенциально может быть легко скомпрометировано
APP- сегмент приложений

16.

17.

На картинке стрелка означает наличие сетевого доступа с IP адресом
источника от того сетевого устройства от которого стрелка отходит, и с IP
адресом назначения того сетевого устройства к которому стрелка
направлена
Где HTTP - это транспортный протокол (S – защищенный)

18. Сегмент баз данных (DB, уровень III)

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

19. Третий уровень, уровень данных (без сетевых устройств)

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

20.

Межсервисное взаимодействие с учетом рисков)

21.

22. Защита программного обеспечения

Защита программного обеспечения — комплекс мер,
направленных на защиту программного
обеспечения от несанкционированного
приобретения, использования, распространения,
модифицирования, изучения и воссоздания аналогов.
Соответствия ПО требования регулятора, новые:
Указ Президента Российской Федерации от 01.05.2022 г. № 250 «О
дополнительных мерах по обеспечению информационной
безопасности Российской Федерации»

23.

Говоря о защите ПО, следует уточнить, что на данный момент все методы
относятся к средствам программной защиты.
Это обусловлено переходом пользователей с физических на цифровые и
облачные хранилища информации и файлов.
Наиболее распространенный способ защиты – серийный номер. Для каждой
единицы программного продукта существует свой уникальный код активации.
Тем не менее, такой метод можно обойти. Как правило, для этого используется
способ дизассемблирования и последующего сохранения программы без
проверяющего подлинность модуля.
Аналогом является цифровой ключ. Его подделать сложнее, так как он
высылается разработчиком непосредственно получателю и имеет вшитые
команды и информацию, без которой запуск и регистрация программы
невозможна.
Сетевой мониторинг действенен в случае, если часть функционала ПО
выполняется на удаленном сервере. Необходимо будет каждый раз высылать
серийный номер. В случае наличия в сети двух одинаковых номеров
функционирование программы прекращается. На рынке не так давно появился
ряд продуктов, направленных на непосредственную защиту кода ПО.
Такие приложения:
шифруют модули;
обеспечивают защиту внутренних функций и переменных;
не позволяют запускать программу под отладчиком или в виртуальных
машинах

24. Задание на практическую работу

Практическая работа № 1. Изучение
методических документов
1. Изучение нормативных документов по
обеспечению аутентификации,
ссылка:https://habr.com/ru/company/dataart/blog
/311376/
2. Изучение нормативных документов по
механизмам сегментации:
https://habr.com/ru/post/588705/
3. Изучение протокола
https://openid.net/specs/openid-connect-core1_0.html

25. Выполнение ПР_1

1. Изучить каждый из трех документов. Составить краткий конспект по
освоенному материалу. Пояснить, как происходит процесс
аутентификации в сети на основе протокола OAuth2
2. Составить модель компетенций персонала, который отвечает
за процесс аутентификации пользователей и базу знаний
3. Описать сущность протоколов:
Протоколы аутентификации:
Basic access authentication
LDAP authentication
OpenID connect
SAML authentication
4. Описать процесс аутентификации на основе гибридного потока
(https://openid.net/specs/openid-connect-core-1_0.html)

26. Благодарю за внимание!

English     Русский Rules