С точки зрения кибербезопасности человек был и остается самым уязвимым элементом защиты, на который нацелены многие хакерские инструменты, от социальной инженерии и фишинга до технологий брутфорса и OSINT-разведки на предмет ранее « засвеченных» паролей. Ряд пользователей особенно привлекательны для хакеров, поскольку, ввиду особенностей их трудовых обязанностей, они обладают повышенными привилегиями в информационных системах компании. Для контроля их деятельности и защиты от взлома используются PAM-системы. В этой статье будут разобраны проблемы контроля сотрудников с повышенными привилегиями, основные характеристики и задачи систем контроля привилегированных пользователей.
Кто такие привилегированные пользователи
- Топ-менеджмент. Руководители подразделений компаний, которые имеют доступ к цифровым ресурсам компании (например, аналитике CRM-систем).
- Технические специалисты. Например, администраторы или разработчики, которые имеют прямой доступ к защитным инструментам, исходному коду, базам данных и другим рабочим элементам инфраструктуры.
Базовая характеристика привилегированного пользователя – это наличие доступа к чувствительной информации, которого нет у рядовых сотрудников. Учетная запись такого работника наиболее привлекательна для хакеров, поскольку позволяет быстро получить контроль над инфраструктурой или доступ к целевым данным.
17 Аутентификация, Авторизация и PAM
Руководитель отдела аналитики «СерчИнформ»
У технических кадров есть неограниченный доступ к конфиденциальной информации, т.к. обслуживание ИТ-инфраструктуры – их прямая должностная обязанность. Поэтому контроль таких специалистов должен быть комплексным. Привилегированный пользователь может оказаться злоумышленником сам и быть использован как «точка старта» кибератаки (по данным нашего опроса около 10% всех инцидентов ИБ – это действия хакеров через сотрудников).
Нужен контроль с точки зрения информационной безопасности – должна быть уверенность, что технические специалисты не злоупотребляют должностными полномочиями. Это можно сделать с помощью PAM-, DLP- и SIEM-систем. Кроме того, требуется дисциплинарный контроль. Это как банальный мониторинг продуктивности с помощью DLP или тайм-трекеров (не нарушают ли сотрудники рабочий распорядок), так и мониторинг правильности выполнения технических задач.
Для хакеров такие «rut-пользователи» привлекательны тем, что доступ к их учетной записи сильно сокращает цепочку атаки. Злоумышленнику не нужно заниматься долгим изучением инфраструктуры и самостоятельно вести работы по повышению прав в системе – достаточно просто узнать логин и пароль конкретного специалиста.
Какие задачи решает PAM
Выше мы уже сказали о противодействию внешним злоумышленникам и хакерской активности. Это важная функция, которая, вкупе с разумной парольной политикой, вниманием к потенциально фишинговым письмам и другими элементами цифровой гигиены, позволяет эффективно защитить учетную запись привилегированного пользователя.
Оценка рынка для стартапа: что такое TAM, PAM, SAM и SOM
Руководитель департамента информационной безопасности ИМБА ИТ
PAM-системы осуществляют контроль привилегированных пользователей, защиту от несанкционированного доступа к ИТ-инфраструктуре и проведение расследований для доказательства ошибочных или неправомерных действий сотрудников.
— Предоставить гранулированный и защищённый доступ к целевой ИТ-инфраструктуре с ограничением по времени.
— Обеспечить протоколирование и запись сеанса работы администраторов с ИТ-инфраструктурой.
— Обеспечить безопасное управление паролями (хранить их в защищённой БД, генерировать и обновлять автоматически без ведома администраторов).
Для решения этих задач обычно используется сервер-брокер (прокси-сервер). Пользователи подключаются к нему с обычными правами, а после прохождения аутентификации и авторизации получают привилегированный доступ к администрируемым компонентам. При этом система обеспечивает безопасное хранение паролей и периодическое изменение. Такой подход обеспечивает:
— безопасное администрирование ИТ-инфраструктуры;
— управление привилегированными записями и их безопасность;
— проведение расследования.
Безопасность в Linux
В новой статье говорим про безопасность в Linux: как настроить и что важно учитывать в процессе. Дополнительно разбираем PAM и модули аутентификации, рассматриваем iptables.
За основу взят один из уроков нашего практического курса «Администрирование Linux Мега».
PAM: модули, флаги, sudoers
PAM — модульная система аутентификации пользователя. Программы могут попросить её произвести аутентификацию пользователя любым доступным методом и абстрагироваться от самого процесса. PAM сделает всё самостоятельно и отдаст результат программе.
PAM используется везде, где требуется аутентификация пользователя или проверка его прав. Например, при подключении через SSH или FTP, а также при повышении привилегий через команду sudo.
Модули PAM находятся в директории lib/security для старых операционных систем типа CentOS и в директории /usr/lib/x86_64-linux-gnu/security для современных ОС вроде последних релизов Ubuntu.
Конфигурационные файлы PAM — в директории /etc/pam.d.
Конфиги модулей — в директории /etc/security.
Типы модулей:
- auth — аутентификация пользователя. Проверяют, точно ли пользователь является тем, за кого себя выдает.
- account — проверка возможности доступа к серверу. Уточняют, может ли пользователь в данный момент получить доступ к сервису или службе.
- password — обновление механизма аутентификации. Отвечают за обновление пароля пользователя.
- session — действия при входе. Открываются и закрываются в рамках идентификации, блокируют действия пользователя и производят очистку после завершения его сессии.
Помимо модулей есть флаги контроля:
- Required — указанный модуль должен успешно отработать. Остальные модули будут запущены при неудаче, исполнение продолжится по конфигу.
- Requisite — указанный модуль должен успешно отработать. Остальные модули не будут запущены при неудаче, исполнение конфига тут же прекратится.
- Sufficient — если указанный модель отработает успешно, весь сервис будет считаться доступным. При неудаче этого модуля будут выполняться следующие, стоящие в конфиге после него.
- Optional — результат модуля не имеет значения, если этот модуль единственный.
- Include — подключить содержимое другого конфига PAM.
Ещё есть sudoers — конфигурационные файлы, в которых описано, каким пользователям разрешено повышать свои привилегии при помощи команды sudo. В Linux-системах обычно действует правило, которое разрешает всем участникам группы voCentOS или sudo в Ubuntu повышать свои привилегии для любых действий.
Основный конфигурационный файл sudoers находится по пути /etc/sudoers, а дополнительные конфиги в /etc/sudoers.d/. Для редактирования правила sudo лучше использовать команду visudo. Она автоматически проверяет синтаксис, и, если там есть ошибки, тут же сообщает о них.
Меры защиты SSH-сервера
SSH-сервер — основная точка входа на сервер. В целях безопасности вы можете закрыть его за VPN. Но для большей защиты рекомендуется предпринимать дополнительные меры:
- Перевести с SSH на нестандартный порт — самая простая, но в то же время самая слабая мера защиты. Злоумышленник может просканировать ваш сервер на предмет открытых портов и выяснить, какой из них слушает SSH. С её помощью вы можете избавиться от бесконечного брутфорса, который преследует на стандартном 22-м порту.
- Запретить вход под пользователем root параметром PermitRootLogin. Мера эффективна в сочетании с хорошо настроенной конфигурацией sudoers и SELinux, где у пользователей и их процессов нет доступа к опасным командам. Даже при входе злоумышленника на сервер он не сможет серьёзно навредить системе, так как это невозможно без root-прав.
- Запретить вход по паролю параметром Password/Authentication в config-е SSH-сервера. Данная мера спасает от брутфорса и утечки паролей пользователей. Если приватный ключ зашифрован паролем, взломать его практически невозможно, даже если код сольют.
- Настроить двухфакторную аутентификациючерез SSH. Пользователь сможет подключиться к серверу только, если правильно введёт пароль, приватный ключ или одноразовый код, меняющийся каждые 30 секунд.
К сожалению, ни один из перечисленных серверов не даёт 100% гарантии защиты — почти везде есть уязвимости. Чтобы максимально обезопасить себя, рекомендуется применять все четыре способа. В сумме эти меры добавляют вашей системе очков прочности при взломе.
От теории к практике
Перейдём в терминал на Ubuntu и попробуем настроить двухфакторную аутентификацию через Google Authenticator. Для начала установим пакет apt install libpam-google-authenticator:
После запуска команды вам зададут несколько вопросов, которые позволят настроить двухфакторную аутентификацию на сервере:
1. Хотите ли вы, чтобы аутентификация была основана на текущем времени? Ответ: да.
На экране отобразится QR-код — отсканируйте его через Google Authenticator на телефоне. В приложении добавится новый аккаунт и сгенерируется одноразовый пароль. В терминале появятся одноразовые emergency-коды на случай, если вы потеряете доступ к мобильному устройству.
2. Хотите ли вы создать файл с конфигом Google Authenticator для текущего пользователя. Ответ: да. Создастся файл /root/.google.authenticator.
3. Хотите ли вы, запретить несколько использований одного и того же токена аутентификации. Ответ: да. В противном случае по одному и тому же одноразовому коду можно будет войти несколько раз, а это небезопасно. Вы запрещаете многократное использование токена — теперь можно зайти в систему под одним пользователем не чаще, чем раз в 30 секунд до следующей генерации кода. И по умолчанию двухфакторная аутентификация может принять только 3 одноразовых кода: предыдущий код, текущий и следующий.
4. Хотите ли вы повысить количество принимаемых кодов до 17? Например, у вас будут храниться 8 предыдущих кодов, один текущий и ещё 8 будущих. Это не самая лучшая ситуация, поскольку у злоумышленника появляется огромный запас времени, чтобы завладеть кодом. Ответ: нет.
5. Хотите ли вы включить rate-limiting? Ответ: да. Это спасёт вас от брутфорса двухфакторной аутентификации.
Вы ответили на все вопросы, теперь займёмся SSH-сервером — сделаем так, чтобы он работал через Google Authenticator. Откройте файл /etc/pam.d/sshd для настройки PAM-модулей:
Здесь уже есть какие-то настройки по умолчанию:
В конце файла допишите две строки. В первой тип модуля — auth required, имя модуля — pam_google_authenticator.so и параметр — nullok. Во второй тип модуля — auth required и модуль — pam_permit.so.
Затем перейдите в конфиг SSH-сервера:
И включите параметр ChallengeResponseAuthenticaton в yes (это нужно, чтобы у нас запросили одноразовый пароль):
Сохраните изменения и перезапустите SSH-сервер:
Теперь попробуем подключиться к серверу. Посмотрим на IP-адрес:
Видим, что нас всё ещё пускают без двухфакторной аутентификации. Это происходит, потому что настроен вход по ключу, а для SSH-аутентификации он перезаписывает все опции аутентификации по умолчанию. И считается, что ключа достаточно. Система предложит ввести одноразовый пароль только в том случае, если вы попытаетесь войти по паролю.
Теперь нужно сделать так, чтобы и при использовании ключа запрашивался разовый пароль. Для этого возвращаемся в конфиг SSH-сервера:
Добавляем метод AuthenticatonMethods и пишем в нём publickey, password publickey и keyboard-interactive:
Сохраняем изменения и выходим. У нас отвалилась аутентификация по ключу — теперь каждый будет запрашиваться пароль, даже если у нас есть SSH-ключ. Чтобы у нас не спрашивали пароль, если есть SSH-ключ, нужно ввести команду:
И закомментировать строчку:
Это позволит отключить стандартную unix-аутентификацию при доступе через SSH. Аутентификация будет происходит только средствами SSH-сервера, то есть при помощи ключа.
Перезапускаем SSH-сервер ещё раз, подключаемся обратно, и у нас запрашивают одноразовый пароль:
Вводим пароль одноразовый, но нас по какой-то причине не пускают. Чтобы разобраться, в чём проблема, идём в /var/log/auth.log — сюда пишутся данные об аутентификации. Видим, что PAM получил пустой пароль:
Идём в конфиг SSH-сервера:
И видим, что PermitRootLogin отключен:
Пишем PermitRootLogin yes, снова перезапускаем наш SSH-сервер и пробуем подключиться заново. Мы попадаем в систему по одноразовому паролю — отлично, всё работает.
Зададим пароль для root и попробуем раскомментировать строчку в PAM d, которую мы закомментировали, чтобы включить стандартную аутентификацию через средства unix:
Снова перезапустим sshd, разлогинимся и попробуем подключиться. Теперь у нас спрашивают пароль:
Посмотрим в лог аутентификации:
Попробуем подключиться — вводим пароль и одноразовый код. Теперь нас впустили в систему.
И если мы посмотрим в log аутентификации, то увидим, что всё в порядке: мы вошли по паролю.
Iptables: что это и как работает
Iptables — это программа, которая компилирует и фильтрует трафик на сервере. С её помощью можно ограничить доступ к входящим портам или ограничить исходящий трафик по каким-то правилам. Она нужна, чтобы обеспечить безопасность на уровне сити и не оставлять открытых портов.
Конфигурация iptables состоит из цепочек правил. Все пакеты пропускаются через определенную для них последовательность цепочек и при прохождении пакетом цепочки к нему последовательно применяются все правила этой цепочки. Поэтому при использовании iptables стоит отключать другие межсетевые экраны, чтобы не случилась путаница с правилами.
Что важно помнить про iptables:
- ограничивает доступ на уровне сети;
- конфигурация состоит из цепочек правил;
- управляется командой iptables.
Перейдём в терминал и узнаем, как iptables работает.
Посмотреть все текущие правила мы можем командой iptables-save:
Практика использования, новые функции и сценарии работы PAM
Какие задачи бизнеса решают системы класса PAM (Privileged Access Management)? Зачем компаниям нужно управлять встроенными учётными записями и как организовать контроль паролей (секретов)? Обсуждаем с экспертами, как эволюционируют современные PAM-системы и как меняются сценарии их использования.
- Введение
- Основные преимущества PAM-решений
- Варианты работы систем управления привилегированным доступом
- Примеры и кейсы использования PAM
- Выводы
Введение
Системы класса Privileged Access Management (PAM) прочно заняли своё место в ландшафте средств информационной безопасности современного предприятия. Управление паролями и мониторинг действий пользователей с расширенным набором привилегий позволяют предотвратить утечки конфиденциальной информации и вовремя выявить компрометацию учётных записей. Ещё одной важной возможностью PAM является контроль работы внешних подрядчиков — как с точки зрения безопасности, так и в плане эффективности их деятельности.