Назад | Перейти на главную страницу

Альтернативные методы обнаружения Linux для обнаружения взломанного хоста

Это переписывание моего предыдущего поста, поскольку было не совсем понятно, чего я пытался достичь. Надеюсь, в этом будет больше смысла :)

Вкратце, я ищу альтернативные методы обнаружения компрометации моей системы, помимо использования таких инструментов, как tripwire / OSSEC / samhain / rkhunter и простой проверки целостности файлов и мониторинга журналов. Я сознательно стараюсь не быть слишком конкретным в своем вопросе, так как мне нужны идеи в целом, чтобы я мог реализовать их на своей собственной машине. Это, вероятно, будет, но не ограничиваться сценарием, который запускается с заданными интервалами (cronjob) и уведомляет администратора, если что-то изменилось, и предлагает администратору продолжить расследование через (syslog / email?). Заметьте, я не обязательно обращаю внимание на сам код, просто на общий обзор того, что он делает. Не стесняйтесь быть максимально подробным.

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

1) Сгенерируйте md5sum вывода моих запущенных iptables и сравните его с известным хорошим хешем. Если это изменится, можно с уверенностью предположить, что кто-то добавил / удалил запись iptables.

2) У меня есть определенные точки монтирования, которые доступны только для чтения (/ usr, / boot и т. Д.), Потому что они не должны меняться очень часто. Если раздел изменится с только для чтения на доступный для записи, я хочу получить уведомление.

3) Следите за выводом netstat только для сервисов прослушивания. Выполните сравнение файлов (diff) с файлом, содержащим известные хорошие значения. Если что-то было добавлено, возможно, кто-то добавил в систему новую услугу. Возможный бэкдор?

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

Заранее спасибо.

Я рекомендую взглянуть на инструменты криминалистической экспертизы памяти, например, перечисленные в ForensicsWiki. Например, вы можете выполнить проверку целостности ядра и процесса с помощью Второй взгляд Продукт для криминалистической экспертизы памяти Linux. Средства проверки целостности файлов отлично подходят для проверки энергонезависимого состояния системы; Экспертиза памяти позволяет вам проверять изменчивое состояние, чтобы гарантировать, что весь код, выполняемый в системе в данный момент времени, является законным и неизменным.

Я использую комбинацию Integrit (проверка двоичной целостности), Tiger (системный IDS / аудитор), logcheck и серьезно жесткие правила IPtables (ОТКАЗАТЬ все, что я могу, включая ВЫХОД.), Все настройки по умолчанию в Debian работают довольно хорошо, выполняя задачи на регулярной основе. интервалы и отправка вывода по электронной почте root.

Я также рекомендую Руководство по обеспечению безопасности Debian для хорошего обзора того, что вы можете и должны делать.

Возможно, я неправильно понял ваш вопрос. Похоже, вам просто нужна информация об IDS / IPS хоста unix, например Самайн, фырканье, или OSSEC. Есть вики на нем тоже. Или вы искали что-то другое?

OSSEC может сделать это за вас с помощью своих возможностей системного аудита. Вы пробовали это? Посмотрите также на безагентный мониторинг команд вывода ...

Я запускаю nmap ежедневно и сохраняю результат в формате xml.
Что-то вроде: nmap 192.168.0.0/24 -oX /tmp/nmap.output

Перебирать все варианты для nmap - это долго,
но http://www.nmap.org имеет массу информации.

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

Все это настраивается в cron, и после запуска список отправляется по почте.

руткит проверяет с помощью rkhunter или chkrootkit

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

Я много работаю над проектом OSSEC и знаю, что он может решить ваши проблемы. Не из коробки, но с небольшой настройкой заработает.

Раздел 1. Создание md5-суммы таблиц IP

Одна из новых функций в OSSEC сообщает о различиях в выводе команд, для этого просто добавьте следующее в файл etc / ossec.conf

<ossec_config> 
    <localfile> 
        <log_format>command</log_format>
        <command>iptables -L -n</command>
    </localfile>
</ossec_config>

Затем создайте локальное правило, подобное следующему

<rule id="98989" level="10">
    <if_sid>530</if_sid>
    <match>ossec: output: iptables -L -n</match>
    <check_diff />
    <description>Change made to iptables</description>
</rule>

Более подробную информацию можно найти http://www.ossec.net/doc/manual/monitoring/process-monitoring.html

Раздел 2: есть определенные точки монтирования, доступные только для чтения

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

Сначала создайте файл политики rootcheck в etc/shared/ для этого примера я назову его unix_mount_policy.txt со следующим содержанием.

# This will make sure that the OS this file is used for pilicy is running redhat 
# and it should be changed for your environment 
[Policy - Check OS] [any required] [http://intranet.example.com/location/of/policy]
f:/etc/redhat-release -> r:^Red Hat Enterprise Linux \S+ release 5;
f:/etc/redhat-release -> r:^CentOS && r:release 5.2;

# First real rule
# This will alert if /usr does not have ro on the same line 
[Policy - Mounts read only] [any] [http://intranet.example.com/location/of/policy/readonly]
f:/etc/fstab ->  !r:^# && r:/usr && !r:ro

Раздел 3. Мониторинг вывода netstat только для прослушивающих служб

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