
Угроза использования вычислительных ресурсов суперкомпьютера «паразитными» процессами
Угроза заключается в возможности существенного снижения производительности вычислительного поля суперкомпьютера и эффективности выполнения на нём текущих параллельных вычислений из-за потребления вычислительных ресурсов суперкомпьютера «паразитными» процессами («процессами-потомками» предыдущих заданий или процессами, запущенными вредоносным программным обеспечением). Данная угроза обусловлена слабостями мер очистки памяти от «процессов-потомков» завершённых заданий, а также процессов, запущенных вредоносным программным обеспечением. Реализация данной угрозы возможна при условии некорректного завершения выполненных задач или наличия вредоносных процессов в памяти суперкомпьютера в активном состоянии.
ID угрозы: УБИ.029
Источник угрозы:
- Внешний нарушитель с низким потенциалом
- Внутренний нарушитель с низким потенциалом
- Нарушение доступности
Угроза использования вычислительных ресурсов суперкомпьютера “паразитными” процессами является серьезной проблемой, поскольку несанкционированное или неэффективное использование ресурсов может привести к снижению производительности, увеличению времени выполнения задач, блокировке ресурсов для легитимных пользователей, и даже к финансовым потерям. “Паразитные” процессы могут включать в себя как злонамеренные действия (например, майнинг криптовалюты, DoS-атаки), так и непреднамеренные ошибки (например, неоптимизированный код, утечки памяти).
Для минимизации данной угрозы необходимо принять комплексные меры, охватывающие организационные, технические и административные аспекты управления суперкомпьютером.
1. Организационные меры:
- Политика использования ресурсов: Разработать и строго соблюдать политику использования ресурсов суперкомпьютера, в которой четко определены:
- Разрешенные виды деятельности.
- Правила выделения и использования вычислительных ресурсов.
- Ограничения на время работы процессов.
- Требования к оптимизации кода.
- Процедуры мониторинга и реагирования на инциденты.
- Соглашения об уровне обслуживания (SLA): Заключать SLA с пользователями, определяющие их права и обязанности, а также ответственность за несоблюдение правил использования ресурсов.
- Обучение пользователей: Проводить обязательное обучение пользователей правилам эффективного и безопасного использования ресурсов суперкомпьютера, включая оптимизацию кода, использование профилировщиков и отладчиков, а также соблюдение требований безопасности.
- Code Review: Внедрить практику code review для выявления потенциальных проблем в коде пользователей до его запуска на суперкомпьютере.
2. Аутентификация и авторизация:
- Строгая аутентификация: Использовать многофакторную аутентификацию (MFA) для защиты учетных записей пользователей.
- Ролевая модель доступа: Назначать пользователям роли с определенными правами доступа к ресурсам суперкомпьютера.
- Ограничение прав: Предоставлять пользователям только те права, которые необходимы для выполнения их задач.
- Мониторинг активности учетных записей: Отслеживать активность учетных записей пользователей и выявлять подозрительное поведение.
- Регулярная проверка учетных записей: Регулярно проверять список активных учетных записей и удалять неиспользуемые учетные записи.
3. Мониторинг и аудит:
- Мониторинг загрузки ресурсов: В режиме реального времени отслеживать загрузку CPU, памяти, сети и дискового пространства каждым процессом.
- Мониторинг производительности: Отслеживать производительность процессов, включая время выполнения, количество операций ввода-вывода и использование памяти.
- Системы обнаружения аномалий: Использовать системы обнаружения аномалий для выявления процессов, потребляющих ресурсы нетипичным образом.
- Журналирование событий: Вести подробные журналы событий, включающие информацию о запуске и завершении процессов, использовании ресурсов, ошибках и предупреждениях.
- Анализ журналов: Регулярно анализировать журналы для выявления подозрительной активности и устранения проблем.
4. Квоты и ограничения:
- Квоты на использование ресурсов: Устанавливать квоты на использование CPU, памяти, дискового пространства и сетевого трафика для каждого пользователя или группы пользователей.
- Ограничение времени выполнения: Ограничивать максимальное время выполнения процессов.
- Ограничение количества одновременно запущенных процессов: Ограничивать количество одновременно запущенных процессов для каждого пользователя.
- Приоритизация задач: Применять системы приоритизации задач для предоставления приоритета легитимным пользователям.
- Автоматическое завершение процессов: Настроить автоматическое завершение процессов, превышающих установленные квоты или ограничения.
5. Технические меры:
- Использование контейнеризации (Docker, Singularity): Использовать контейнеры для изоляции процессов и ограничения их доступа к ресурсам суперкомпьютера.
- Системы управления ресурсами (Slurm, PBS, LSF): Использовать системы управления ресурсами для эффективного планирования и распределения вычислительных ресурсов.
- Профилирование и оптимизация кода: Предоставлять пользователям инструменты для профилирования и оптимизации кода, чтобы снизить потребление ресурсов.
- Обнаружение утечек памяти: Использовать инструменты для обнаружения утечек памяти в коде пользователей.
- Песочницы (sandboxing): Запускать потенциально ненадежный код в песочнице для ограничения его доступа к системным ресурсам.
- Использование брандмауэров и IDS/IPS: Использовать брандмауэры и системы обнаружения вторжений для защиты от внешних атак.
- Регулярное обновление ПО: Регулярно обновлять операционную систему, компиляторы, библиотеки и другое программное обеспечение для устранения уязвимостей.
6. Административные меры:
- Процедуры реагирования на инциденты: Разработать и внедрить процедуры реагирования на инциденты безопасности, связанные с использованием “паразитных” процессов.
- Эскалация инцидентов: Определить четкую процедуру эскалации инцидентов.
- Контактные лица: Назначить ответственных лиц за мониторинг безопасности и реагирование на инциденты.
- Резервное копирование и восстановление: Регулярно создавать резервные копии данных и конфигурации системы.
- Тестирование безопасности: Регулярно проводить тестирование безопасности суперкомпьютера для выявления уязвимостей.
7. Специфические меры против майнинга криптовалюты:
- Блокировка известных майнинговых пулов: Блокировать доступ к известным майнинговым пулам на уровне сетевого экрана.
- Обнаружение майнинговых алгоритмов: Использовать системы обнаружения аномалий для выявления процессов, использующих вычислительные ресурсы для майнинга криптовалюты.
- Ограничение доступа к ресурсам GPU: Ограничить доступ к ресурсам GPU для пользователей, которым они не требуются для выполнения легитимных задач.
Ключевые моменты:
- Комплексный подход: Необходим комплексный подход, сочетающий организационные, технические и административные меры.
- Активный мониторинг: Важен активный мониторинг использования ресурсов и выявление аномалий.
- Обучение пользователей: Обучение пользователей правилам эффективного и безопасного использования ресурсов является критически важным.
- Постоянное совершенствование: Необходимо постоянно совершенствовать меры безопасности и адаптировать их к изменяющимся угрозам.
Нет комментариев
Оставить комментарий