Книга: Безопасность веб-приложений. Исчерпывающий гид для начинающих разработчиков
Назад: Глава 8. Обеспечение безопасности современных систем и приложений
Дальше: Бессерверные приложения

Онлайн-хранилище

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

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

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

СОВЕТ. Не всем повезло работать там, где есть операционный центр безопасности. Если у вас его нет, оповещения следует отправлять команде безопасности, службе поддержки и/или владельцам компании. Важно, чтобы сообщения не уходили «в никуда» или на редко проверяемый почтовый ящик.

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

СОВЕТ. Сервисные учетные записи используются только службами операционной системы, сетей или баз данных для осуществления своей деятельности и никогда – IТ-персоналом. Сервисные учетные записи разделяют идентификационные данные и действия человека и машины, что позволяет распознать потенциально вредоносные либо опасные паттерны и поведение и автоматизировать защитные меры против них.

Помимо этого, для защиты онлайн-хранилища можно использовать облачные средства контроля безопасности, включая инструменты категоризации трафика, управления доступом и идентификацией (англ. Access and Identity Management, AIM), а также средства автоматизации с наименьшими привилегиями для обеспечения ограниченного количества разрешений в хранилище.

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

Контейнеры и оркестровка

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

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

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

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

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

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

Стоит обратить особое внимание на запуск контейнеров от имени «root». Пользователь «root» может делать буквально все, и, если кто-то запустит контейнер от этого имени, он не будет иметь ограничений в действиях с находящимися там ресурсами. Хотя разработчику программного обеспечения или любому IТ-специалисту полезно иметь суперспособности для выполнения своих обязанностей, на самом деле это почти никогда не требуется, поэтому запрет на использование root для контейнеров будет реализацией концепции наименьших привилегий, применяемой к контейнерам.

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

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

ВНИМАНИЕ. Безопасность цепочки поставок также относится к образам, а не только к веб-фреймворкам и библиотекам. Хорошим первым шагом будет сравнение загружаемых файлов с контрольной суммой или хешем. Если планируется запуск собственного реестра образов, создайте проект по обеспечению его защиты от манипуляций со стороны субъектов угроз.

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

СОВЕТ. Стандарты по защите практически любой операционной системы можно найти в стандартах CIS. Центр интернет-безопасности (CIS) предоставляет образы с предварительно усиленной защитой и свободно делится своими знаниями с другими.

Назад: Глава 8. Обеспечение безопасности современных систем и приложений
Дальше: Бессерверные приложения