Разработка Enterprise проекта ведется с учетом долгого срока эксплуатации. В связи с этим важно на старте учесть все составляющие такого решения: как система будет масштабироваться, как будут обрабатываться данные, что сделать, чтобы данные были надежно защищены, и еще много других моментов.
Подробнее об особенностях разработки проекта уровня Enterprise можно узнать в статьях блога:
- Основа Enterprise web-продукта: микросервисная архитектура, масштабирование системы и конвейерная обработка. Часть №1
- Разработка Enterprise web-продукта: особенности использования баз данных, языков программирования, логирования и аналитики. Часть №2
А в данной статье подробно разберем тему информационной безопасности, технологий и требований к Enterprise web-продукту.
Информационная безопасность (ИБ) предприятия – это комплекс мер, направленный на защиту ИТ-инфраструктуры компании от несанкционированных доступов, незаконного копирования или завладения конфиденциальной информацией, а также от неправомерного внесения изменений в базы данных. Учитывая важность ИБ в современном мире, когда деятельность всех крупных предприятий связана с Enterprise ИТ-продуктами, ей необходимо уделять повышенное внимание.
Информационная безопасность
Два основных направления ИБ: первое — это то, где размещены отдельные части ИТ-продуктов, во внутреннем или внешнем контуре сети, и второе — это сбор различных метрик системы.
Три главных аспекта современной ИБ, которые необходимо брать во внимание в комплексе:
- Конфиденциальность – исключение возможности тиражирования конфиденциальной информации, которая несет коммерческий или некоммерческий характер о деятельности конкретной компании.
- Целостность – защита данных от повреждений, копирования на различные внешние источники, или срабатывание защиты во внутреннем контуре сети.
- Доступность – выделение различных прав доступа, резервные копии и бесперебойная работа системы.
Вся деятельность по информационной безопасности базируется на различных метриках, а значит, на действиях пользователей в системе. Все эти процессы отображаются в административной панели или записываются в журнал логов. Системные логи скачиваются в определенную программу для ИБ, в которой настроены специальные триггеры, уведомляющие ответственных лиц отдела Информационной Безопасности о возможных нарушениях. С информационной безопасностью связанно огромное количество элементов всей экосистемы Enterprise проекта. Приведем несколько примеров нарушений: пользователь пытается 4 раза ввести неверный пароль в учетную запись, кто-то скачивает большой объем данных на внешний источник.
Вторая часть ИБ — это особенности размещения элементов Enterprise системы в различных частях сети: закрытой корпоративной части сети и за пределами внутреннего контура. Основная часть системы, в которую не должно быть доступа у внешних пользователей, находится во внутреннем контуре. Во внешней среде будут находиться отдельные веб-сервисы, у которых есть доступ в интернет, эта часть среды называется DMZ (англ. Demilitarized Zone). DMZ добавляет дополнительный уровень защиты между внешней средой (интернетом) и внутренним закрытым контуром, тем самым позволяя минимизировать риски и ущерб в случае кибератак. Другими словами, у злоумышленника получится попасть только в часть сети DMZ, так и не получив доступ к сети компании.
Всеми этими процессами занимается отдел Информационной безопасности, и чтобы продукт соответствовал всем требованиям ИБ, необходимо проводить анализ на уязвимость системы. Под анализом уязвимостей понимают поиск угроз, уязвимых участков либо выявление потенциальных точек проникновения в корпоративную систему компании. Существуют программы и компании, задача которых искать недостатки систем. Одной из таких компаний является OWASP (Open Web Application Security Project), разработавшая список из 10 наиболее опасных векторов атак на web-сервис. Список получил название «OWASP TOP-10», и в нем перечислены десять наиболее сильных угроз, которые могут навредить бизнесу, даже с возможностью полной ликвидации. Суть самой проверки OWASP заключается в том, что через браузер программа меняет формат поступающих пакетов в систему и анализирует, как система реагирует на поступающие данные. Другими словами, при проведении анализа на уязвимости система должна выдерживать и своевременно сигнализировать о появлении угроз.
Также существуют различные DDoS фильтры, которые фильтруют трафик и защищают систему от наиболее опасных взломов. DDoS атака – это атака, которая увеличивает нагрузку и приводит к отказу системы. Кроме DDoS фильтров есть еще Web application firewall. WAF – это целый набор инструментов, состоящий из мониторингов и фильтров, которые предназначены для поиска и блокировки сетевых атак. Web application firewall позволяет контролировать не только трафик, но и содержимое трафика.
Кибератаки в сфере B2B ИТ-продуктов бывают двух типов: на проникновение в систему и на нагрузку. DDoS атака – это влияние именно на нагрузку системы. Для лучшего понимания приведем пример. Есть web-приложение, которое выдерживает запросы до 1 тысячи пользователей. У злоумышленников есть специальные боты, которые начинают атаковать общий поток запросов на площадку, а именно с разных сторонних url-адресов поступают запросы в большом количестве. На сервере web-приложения есть очередь обработки запросов, и с учетом поступающих запросов злоумышленников очередь растет. И как итог: реальные клиенты площадки страдают, не получая или слишком долго ожидая доступа к web-приложению. При возникновении такой ситуации подключается WAF, который видит подозрительную активность с разных адресов и блокирует такие запросы, ставит их в стоп-лист, тем самым сервер разгружается.
Еще одним важным пунктом в информационной безопасности является хранение журналов логов. Аудитные логи или журналы аудита – это журналы с записями обо всех событиях и операциях, которые происходили в web-приложении. Сбор, проверка и хранение журналов логов позволяет контролировать соблюдение уставленных процедур безопасности, а также выявлять изъяны в механизмах безопасности web-системы. Сложность в том, что необходимо уметь доставлять журналы логов в целостности до хранилища, чтобы в них не переписывали какие-то данные. Например, злоумышленники проникают в систему, переписывают часть кода, и как итог, система проверки не увидит, что что-то произошло. Так как журналы логов является источником информации о том, что где-то выявились конфликты в файлах или действиях пользователей, поэтому сохранность целостности этих данных является одной из важных задач для информационной безопасности.С журналами логов еще взаимодействует специальное программное обеспечение SIEM, которое анализирует поведенческие логи. Security information and Event Management – целый набор инструментов программных продуктов, задача которых — это сбор и анализ данных о событиях безопасности. SIEM позволяет более подробно увидеть, что происходит в контуре сети компании-заказчика. Существует целый перечень инструментов (Log Management System, Security Log/Event Management, Security information Management, Security Event Correlation), каждый из которых отвечает за отдельные типы событий:
- распознавание пакетов, протоколов, ip-адресов;
- типы файлов, имена хостов и имена пользователей;
- активность серверов, изменения конфигураций.
Однако ничто так не проанализирует систему, как комплекс всех этих программ. SIEM – это как раз комплекс всех ранее перечисленных сервисов, который анализирует, управляет событиями и информацией.
К части информационной безопасности относятся также процессы «развертывания программного обеспечения». Существует три среды, в которых компоненты программной системы разворачиваются и выполняются: test, preprod и prod. Test – часть среды web-приложения, на которой разработчики и тестировщики выгружают код, деплоят рабочую версию приложения. Preprod – среда, на которую переносят уже протестированную версию приложения с максимально приближенными к реальности, но с тестовыми данными. Максимальное приближение данных к действительности делается для того, чтобы сделать финальную проверку ПО в условиях приближенным к «боевым». Prod – среда, на которую деплоится конечная на текущий момент версия web-приложения. В этой среде последние доработки соединяются с рабочей текущей системой всей компании. Если на Prod появись ошибки или баги, то можно сделать rollback, то есть вернуться к предыдущей версии приложения.
Информационная безопасность на проектах уровня Enterprise тесно связана с автоматизированным сканированием данных. Существует специализированное ПО, позволяющее проверять консистентность файлов. Так как Enterprise проекты состоят из целого перечня подсистем, следовательно, данные между ними постоянно передаются. Консистентность данных – это согласованность и целостность данных друг с другом. Неконсистентность данных – это различие данных в конкретном объекте в разных подсистемах Enterprise проекта. Давайте приведем пример: в одной системе есть номер договора с клиентом, при передаче данных в другую систему появляется ошибка в номере, и при взаиморасчетах с клиентом система может «встать» до момента исправления ошибки. Автоматизированное сканирование данных позволяет делать слепок данных и информировать в случае их изменений.
Безопасность разработки
Над разработкой Enterprise проекта работает большое количество команд разработки, DevOps-инженеров, тестировщиков - все эти команды необходимо контролировать. В дополнение к этому разработчики используют сторонние библиотеки, которые скачивают из интернета и внедряют в проект. Это проблема, так как данные библиотеки могут нести в себе вредоносный код. Существуют хакеры, которые искусственно популяризируют некоторые библиотеки, выстраивают вокруг них «активность», а после в них появляется уязвимость или вредоносный код.
Исключить данную угрозу позволяет использование технологии Artifactory – системы, предназначенной для хранения собранных бинарных версий компонентов и продуктов. Инструмент предназначен для хранения результатов сборки ПО, а также использования их в процессах развертывания или переиспользования на других проектах. Если говорить более простым языком, то в Artifactory загружается код, который уже содержит библиотеки. Система скачивает данные и ведет версионность обновлений самостоятельно. В ситуации, когда нужно обновить продукт, но Artifactory не установлен, то скрипт повторно скачивает библиотеки, в которых могли быть неблагоприятные изменения. Artifactory «встает» между скриптом обновления и библиотеками. Так как ранее системой была зафиксирована определенная версия, то Artifactory осталось только сравнить их между собой и проверить на уязвимости.
Gitlab – еще одна система управления репозиториями кода. Gitlab позволяет команде разработки сохранять написанный код и работать с ним на других проектах. Система позволяет взаимодействовать с репозиториями, правами доступа для различных пользователей, автоматизировать процессы и отслеживать ошибки. Что происходит в связке Artifactory c Gitlab? Gitlab собирает код в финальный вид (релиз) и после через специальный скрипт отправляет на сервер и далее контролирует его сохранность. Для того, чтобы код попал в Gitlab, его нужно скачать из Artifactory.
Сode analyzer – анализатор исходного кода, предназначенный для разработчиков с целью выявления недекларированных возможностей и ошибок, которые могут быть использованы хакерами и злоумышленниками. Как работают разработчики? Каждый разработчик пишет код, когда он дописывает определённый блок, отправляет его в Gitlab. В момент, когда разработчик нажимает кнопку «отправить», на компьютере установлен специализированный софт, позволяющий анализировать код и видеть, что в коде присутствуют несопоставимые с логикой кода элементы. Этот софт информирует о возможных ошибках.
В заключение отметим, что вне зависимости от роли ИТ-структуры в компании необходимо подходить к вопросу информационной безопасности комплексно, а также постоянно предпринимать меры по развитию ИБ. Ущерб от несанкционированных проникновений и утечки информации невозможно спрогнозировать заранее. Поэтому лучше на старте обеспечить мощную защиту собственному Enterprise web-продукту, чем бороться с последствиями утечки информации.