- Видеозаписи докладов CyberCamp. Разбираем вопросы безопасности Linux
- Безопасность ядра Linux: в теории и на практике
- Повышение привилегий на Linux
- Анализ взлома общедоступных экземпляров баз данных
- Особенности вредоносного ПО под Linux-системы
- Анализ логов в Unix-системах
- Автоматизация харденинга Linux
- ФСТЭК представила рекомендации по обеспечению безопасной настройки Linux
Видеозаписи докладов CyberCamp. Разбираем вопросы безопасности Linux
Привет, Хабр! В конце декабря мы командой CyberCamp провели митап, посвященный безопасности Linux. Прошлись по всей ОС — от ядра до логов. Плюсы в виде открытого кода, надежности, быстродействия и, казалось бы, повышенный уровень защищенности от киберугроз увеличивает пул активных пользователей. Но среди этих качеств нет неуязвимости. На митапе были разобраны вопросы, какие угрозы актуальны для Linux и как от них защититься.
Мы собрали полный плейлист выступлений:
- Безопасность ядра Linux: в теории и на практике / Александр Попов, Positive Technologies.
- Повышение привилегий на Linux / Владимир Ротанов, «Инфосистемы Джет».
- Анализ взлома общедоступных экземпляров баз данных / Александр Матвиенко, «Инфосистемы Джет».
- Особенности вредоносного ПО под Linux-системы / Ярослав Шмелёв, «Лаборатория Касперского».
- Анализ логов в Unix-системах / Артём Крикунов, «Инфосистемы Джет».
- Харденинг Linux / Антон Велижанинов, «Инфосистемы Джет».
Чтобы посмотреть их, крути вниз.
Безопасность ядра Linux: в теории и на практике
Открывает встречу Александр Попов, главный исследователь безопасности открытых операционных систем из Positive Technologies. Александр рассказывает о безопасности ядра Linux. Эта сложная предметная область включает большое количество взаимосвязанных понятий: классы уязвимостей, техники эксплуатации уязвимостей для проведения атак, механизмы выявления ошибок, технологии защиты ядра. Александр разработал карту средств защиты ядра Linux, которая отражает взаимосвязи между этими понятиями. В докладе он дает обзор текущего состояния безопасности Linux и рассказывает о своем инструменте kconfig-hardened-check, который помогает управлять ядерными опциями безопасности.
Доклад Александра:
Повышение привилегий на Linux
Продолжает встречу Владимир Ротанов, руководитель группы практического анализа защищенности «Инфосистемы Джет». Владимир рассказывает об угрозе повышения привилегий в среде Linux. Эта одна из наиболее актуальных угроз, которая связана как с появлением новых уязвимостей, так и с некорректной конфигурацией различных компонентов. Владимир рассматривает следующие ключевые пункты:
- В каких случаях необходимо повышение привилегий.
- Основные способы повышения привилегий.
- Способы повышения привилегий в случае некорректной конфигурации SUDO и SUID/SGID-файлов.
Доклад Владимира:
Анализ взлома общедоступных экземпляров баз данных
Третий доклад — Александра Матвиенко, руководителя группы защиты от утечек информации «Инфосистемы Джет». Он делится разбором инцидента информационной безопасности, связанного с общедоступными экземплярами БД, показывает путь выполнения одного из заданий #CampGO. Александр рассматривает инструменты для работы с noSQL, статистику, показывающую колоссальный объем утечек данных из Elasticsearch. Особое внимание он уделяет подходам к защите популярных noSQL-баз, находящихся в контейнерных средах.
Спойлер: не обошлось без харденинга.
Доклад Александра:
Особенности вредоносного ПО под Linux-системы
Еще один спикер митапа — Ярослав Шмелёв, вирусный аналитик из «Лаборатории Касперского». Ярослав рассказывает об особенностях вредоносного ПО под Unix-системы.Существует распространенное мнение, что Linux настолько безопасен, что под него практически нет вредоносного ПО, а злоумышленники не заинтересованы в этой системе из-за ее малой популярности у обычных пользователей. Это не так. Linux-системы на серверах и на миллионах подключенных к Интернету IoT-устройствах постоянно подвергаются как массовым, так и целевым атакам, а количество новых семейств вредоносного ПО растет с каждым годом. В докладе представлен анализ актуальных угроз для Linux-систем:
- Методы заражения и закрепления доступа в Linux-системах.
- Обзор основных типов вредоносного ПО, которое используют злоумышленники.
Доклад Ярослава:
Анализ логов в Unix-системах
В журналах Linux содержится большой объем данных, которые могут быть использованы при анализе событий информационной безопасности и расследовании инцидентов. До 80% техник и тактик MIRTE ATT&CK могут быть зафиксированы в логах Linux-систем. Из доклада Артёма Крикунова, аналитика центра мониторинга и реагирования Jet CSIRT «Инфосистемы Джет», можно узнать базовую информацию о журналах событий, используемых для расследования инцидентов в Linux: где они хранятся, какую информацию содержат и как ими пользоваться. Артём рассказал о работе syslog и auditd, подробно рассмотрел примеры типовых событий. По итогам доклада вы научитесь читать логи Linux и извлекать полезную информацию о событиях информационной безопасности.
Доклад Артема:
Автоматизация харденинга Linux
Антон Велижанинов, старший инженер по направлениям CloudSec/DevSecOps «Инфосистемы Джет», делится подходом к харденингу ОС Linux. Из его выступления вы узнаете:
- Об этапах процесса харденинга Linux.
- Преимуществах и недостатках методов харденинга.
- Подходах к автоматизации процесса.
- Инструментах для автоматизированного подхода к харденингу Linux-систем на базе Open Source решений.
В первой части доклада Антон рассказывает о процессе безопасного конфигурирования (харденинга) и рассматривает методы обеспечения процесса, выделяя достоинства и недостатки. Из второй части доклада можно узнать о том, как автоматизация позволяет оптимизировать трудозатраты на харденинг операционных систем, повысить защищенность инфраструктуры и обеспечить автоматический контроль за соблюдением безопасной конфигурации c этапа проектирования до промышленной эксплуатации.
Доклад Антона:
ФСТЭК представила рекомендации по обеспечению безопасной настройки Linux
Федеральная служба по техническому и экспортному контролю (ФСТЭК) России разработала, утвердила и опубликовала рекомендации по обеспечению безопасной настройки Linux.
Рекомендации ФСТЭК определяют содержание работ по настройке операционных систем на базе ядра Linux и направлены на повышение защищённости информационных систем, построенных на Linux.
Регулятор пояснил, что рекомендации по обеспечению безопасной настройки Linux подлежат реализации в государственных информационных системах и на объектах критической информационной инфраструктуры РФ на ОС Linux, несертифицированных по требованиям безопасности информации, до их замены на сертифицированные отечественные операционные системы.
При осуществлении безопасной настройки операционных систем Linux ФСТЭК рекомендует выполнить следующие процедуры:
- настройку авторизации в операционной системе;
- ограничение механизмов получения привилегий;
- настройку прав доступа к объектам файловой системы;
- настройку механизмов защиты ядра Linux;
- уменьшение периметра атаки ядра Linux;
- настройку средств защиты пользовательского пространства со стороны ядра
Linux.
- Запрет учётных записей пользователей с пустыми паролями.
- Отключение входа суперпользователя по SSH (PermitRootLogin=no в /etc/ssh/sshd_config).
- Ограничение доступа к команде su пользователями из группы wheel («auth required pam_wheel.so use_uid» в /etc/pam.d/su).
- Ограничение списка пользователей, которым разрешено использовать команду sudo.
- Установка корректных прав доступа к файлам с параметрами пользователей (chmod 644 /etc/passwd /etc/group) и хешами паролей (chmod go-rwx /etc/shadow).
- Установка корректных прав доступа к файлам запущенных процессов через выполнение «chmod go-w /путь/к/файлу» для всех исполняемых файлов и библиотек, связанных с запущенными в настоящий момент процессами, с последующей проверкой, что каталог, содержащий данные файлы, а также все родительские каталоги недоступны для записи непривилегированным пользователям.
- Установка корректных прав доступа к исполняемым файлам, вызываемым из cron («chmod go-w путь_к_файлу»), а также к файлам конфигурации cron /etc/crontab и /etc/cron.* («chmod go-wx путь»).
- Установить корректные права доступа к файлам, выполняемым с помощью sudo («chown root путь_к_файлу» и «chmod go-w путь_к_файлу»).
- Установить корректные права доступа к стартовым скриптам системы («chmod o-w filename» к каждому файлу в /etc/rc#.d, а также к файлам .service).
- Установить корректные права доступа к исполняемым файлам и библиотекам, расположенным по стандартным путям (/bin, /usr/bin, /lib, /lib64 и т.п.), а также к модулям ядра (/lib/modules/версия-текущего-ядра).
- Установить корректные права доступа к SUID/SGID-приложениям путём проведения аудита всех SUID/SGID-приложений и удаления SUID/SGID-флагов с лишних.
- Установить корректные права доступа к содержимому домашних каталогов пользователей (.bash_history, .history, .sh_history, .bash_profile, .bashrc, .profile, .bash_logout и т.п.).
- Установить корректные права доступа к домашним каталогам пользователей (chmod 700 каталог).
- Ограничить доступ к журналу ядра (sysctl -w kernel.dmesg_restrict=1).
- Блокирование утечки информации об адресном пространстве через /proc/kallsyms (sysctl -w kernel.kptr_restrict=2).
- Инициализировать нулями динамическую память ядра (параметр init_on_alloc=1 при загрузке).
- Запрет слияния кэшей slab-аллокатора ядра (параметр slab_nomerge при загрузке).
- Инициализировать механизм IOMMU (параметры iommu=force, iommu.strict=1 и iommu.passthrough=0 при загрузке).
- Рандомизировать расположение ядерного стека (параметр randomize_kstack_offset=1 при загрузке).
- Включить защиту от аппаратных уязвимостей CPU (параметр mitigations=auto,nosmt при загрузке).
- Включить защиту подсистемы eBPF (sysctl -w net.core.bpf_jit_harden=2).
- Отключить устаревший интерфейс vsyscall (параметр vsyscall=none при загрузке).
- Ограничить доступ к событиям производительности (sysctl -w kernel.perf_event_paranoid=3).
- Отключить монтирование виртуальной файловой системы debugfs (параметр debugfs=no-mount или off при загрузке).
- Отключить системный вызов kexec_load (sysctl -w kernel.kexec_load_disabled=1).
- Ограничить использование user namespaces (sysctl -w user.max_user_namespaces=0).
- Запретить системный вызов bpf для непривилегированных пользователей (sysctl -w kernel.unprivileged_bpf_disabled=1).
- Запретить системный вызов userfaultfd для непривилегированных пользователей (sysctl -w vm.unprivileged_userfaultfd=0).
- Запретить автоматическую загрузку модулей ядра, связанных с TTY Line Discipline (sysctl -w dev.tty.ldisc_autoload=0).
- Отключить технологию TSX (Transactional Synchronization Extensions) (параметр tsx=off при загрузке).
- Настроить минимальный виртуальный адрес, который разрешено использовать для mmap (sysctl -w vm.mmap_min_addr = 4096).
- Включить рандомизацию адресного пространства (sysctl -w kernel.randomize_va_space = 2).
- Запретить подключение к другим процессам с помощью ptrace (sysctl -w kernel.yama.ptrace_scope=3).
- Ограничить небезопасные варианты прохода по символическим ссылкам (sysctl -w fs.protected_symlinks=1).
- Ограничить небезопасные варианты работы с жёсткими ссылками (sysctl -w fs.protected_hardlinks=1).
- Включить защиту от непреднамеренной записи в FIFO-объект (sysctl -w fs.protected_fifos=2).
- Включить защиту от непреднамеренной записи в файл (sysctl -w fs.protected_regular=2).
- Запретить создание core dump для исполняемых файлов с флагом suid (sysctl -w fs.suid_dumpable=0).