Статья Lynis – Инструмент для проверки безопасности и проведения пентеста с открытым исходным кодом – детальное разъяснение

Lynis - это инструмент аудита безопасности с открытым исходным кодом. Его основная задача - аудирование и упрочнение систем на базе Unix и Linux. Он сканирует систему, выполняя многие проверки контроля безопасности. Примеры включают поиск установленного программного обеспечения и определение возможных недостатков конфигурации.

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

Lynis является одним из самых надежных автоматизированных инструментов аудита для управления исправлениями программного обеспечения, сканирования вредоносных программ и обнаружения уязвимостей в системах на базе Unix/Linux. Этот инструмент полезен для аудиторов, сетевых и системных администраторов, специалистов в сфере безопасности, а также тестировщиков на проникновение.

Целевая аудитория:

Lynis сможет помочь аудиторам в проверке Basel II, GLBA, HIPAA, PCI DSS and SOX (Sarbanes-Oxley).
Данный инструмент отлично подойдет для специалистов в сфере безопасности, тестировщиков на проникновение, системных аудиторов, системных/ сетевых менеджеров, инженеров по безопасности.

Lynis совместим со многими операционными системами, такими как:
  • AIX
  • Arch Linux
  • BackTrack Linux
  • CentOS
  • Debian, DragonFlyBSD
  • Fedora Core, FreeBSD
  • Gentoo
  • HPUX
  • Kali, Knoppix
  • Linux Mint
  • MacOS X, Mageia, Mandriva
  • NetBSD
  • OpenBSD, OpenSolaris, openSUSE, Oracle Linux
  • PcBSD, PCLinuxOS
  • Red Hat Enterprise Linux (RHEL) и все от него производные
  • Sabayon, Scientific Linux, Slackware, Solaris 10, SuSE
  • TrueOS
  • Ubuntu и все от него производные
Lynis также может выполнять аудит программного обеспечения, такого как:

  • Сервера баз данных: MySQL, Oracle, PostgreSQL
  • Time daemons: dntpd, ntpd, timed
  • Вебсерверы: Apache, Nginx
Как только lynis начинает сканировать вашу систему, он выполнит проверку в следующих категориях:
  • Системные инструменты: системные двоичные файлы
  • Загрузка и службы: загрузчики, службы запуска
  • Ядро: уровень запуска, загруженные модули, конфигурация ядра, дампы ядра
  • Память и процессы: процессы-зомби, процессы ожидания ввода-вывода
  • Пользователи, группы и аутентификация: идентификаторы групп, sudoers, конфигурация PAM, старение паролей, маска по умолчанию
  • Shells
  • Файловые системы: точки монтирования, / tmp-файлы, корневая файловая система
  • Хранилища: usb-хранилище, firewire ohci
  • NFS
  • Программное обеспечение: службы имен: домен DNS-поиска, BIND
  • Порты и пакеты: уязвимые/обновляемые пакеты, репозиторий безопасности
  • Сеть: имена серверов, смешанные интерфейсы, соединения
  • Принтеры и спулы: cups конфигурации
  • Программное обеспечение: электронная почта и обмен сообщениями
  • Программное обеспечение: брандмауэры: iptables, pf
  • Программное обеспечение: веб-сервер: Apache, nginx
  • SSH поддержка: SSH конфигурации
  • SNMP поддержка
  • Базы данных: MySQL root пароль
  • LDAP службы
  • Программное обеспечение: php: php опции
  • Squid поддержка
  • Протоколирование ифайлы: Syslog демон, log директории
  • Ненадежные службы: inetd
  • Баннеры и идентификация
  • Назначенные задания: crontab/cronjob, atd
  • Учет: sysstat data, auditd
  • Время и синхронизация: ntp демон
  • Криптография: Срок действия сертификата SSL
  • Виртуализация
  • Фреймворки безопасности: AppArmor, SELinux, статус безопасности
  • Программное обеспечение: целостность файла
  • Программное обеспечение: сканеры вредоносных программ
  • Домашние директории: файлы истории shell
Как работает Lynis:

В этом , чтобы запустить его в первый раз, рекомендуется использовать -cparamater. –c параметр означает выполнение всех тестов для проверки систем. Если вы хотите поместить имя аудитора, просто добавьте параметр -auditor. Вот некоторые

Скачайте и установите Lynis с GitHub

Код:
git clone https://github.com/CISOfy/lynis

Код:
$ cd lynis-1.3.8
# ./lynis

Примеры возможных выводов данных:

Как только вы завершите процесс установке, запустите программу, используя имя аудитора или пентестера.

Код:
# lynis -c –auditor “BALAJI”

Рисунок 1. Инициализация

1.png


Рисунок 2. Системные инструменты

lynis2.png



Рисунок 3. Загрузка и службы и ядро

3.png


Рисунок 4. Пользователи и группы

4.png


Рисунок 5. Shell и хранилище

5.png


Рисунок 6. Программное обеспечение, порты и пакеты

6.png



Рисунок 7. Сетевое оборудование и принтеры

7.png


Рисунок 8. Электронная почта, Брандмауэр и вебсервер

8.png



Рисунок 9. SSH, SNMP и базы данных

9.png



Рисунок 10. PHP, Squid прокси протоколирование

10.png


Рисунок 11. Inetd, Баннер и Cron

11.png



Рисунок 12. Учет, NTP и криптография

12.png



Рисунок 13. Виртуализация, фреймворки безопасности и целостность файла

13.png



Рисунок 14. Сканеры вредоносных программ, системный инструмент и домашний каталог


14.png



Рисунок 15. Укрепление ядра

15.png



Рисунок 16. Упрочнение, пользовательские тесты и результаты

lynis_16_hardening_customtests_result.png


Рисунок 17. Упрочнение индекса

17.png


Запуск настраиваемых тестов в Lynis

Возможно, вашей системе не нужно выполнять все тесты. Если ваш сервер не работает с веб-сервером, вам не нужно его проверять. Для этого мы можем использовать параметр -tests. Синтаксис выглядит следующим образом:

Код:
# lynis –tests “Test-IDs”


Существует более 100 тестов, которые мы можем выполнить. Вот список тестов идентификаторов тестов в Lynis.

  • FILE-7502 (Проверка всех системных двоичных файлов)
  • BOOT-5121 (Проверить наличие загрузчика GRUB).
  • BOOT-5139 (Проверить наличие загрузчика LILO)
  • BOOT-5142 (Проверить SPARC Улучшенный загрузчик (SILO))
  • BOOT-5155 (Проверьте файл конфигурации загрузчика YABOOT)
  • BOOT-5159 (Проверить наличие загрузчика OpenBSD i386)
  • BOOT-5165 (Проверить наличие загрузочных служб FreeBSD)
  • BOOT-5177 (Проверка загрузки и запуска Linux)
  • BOOT-5180 (Проверка загрузочных служб Linux (Debian style))
  • BOOT-5184 (Проверить разрешения для загрузочных файлов/скриптов)
  • BOOT-5202 (Проверка работоспособности системы)
  • KRNL-5677 (Проверьте параметры процессора и поддержку)
  • KRNL-5695 (Определить версию ядра Linux и номер выпуска)
  • KRNL-5723 (Определение того, является ли ядро Linux монолитным)
  • KRNL-5726 (Проверка загруженных модулей ядра Linux)
  • KRNL-5728 (Проверка конфигурации ядра Linux)
  • KRNL-5745 (Проверка загруженных модулей ядра FreeBSD)
  • [04:57:04] Причина пропуска: Тест отсутствует в списке тестов для выполнения (Reason to skip: Test not in list of tests to perform)
  • KRNL-5770 (Проверка активных модулей ядра)
  • KRNL-5788 (Проверка доступности нового ядра)
  • KRNL-5820 (Проверка конфигурации дампов ядра)
Ниже приведен пример команды для запуска проверки работоспособности системы и запуска теста для проверки конфигурации дампов ядра. Если вы хотите добавить больше тестов, просто добавьте больше идентификаторов тестов, разделенных пробелом.

Код:
# ./lynis –tests “BOOT-5202 KRNL-5820”

111111.png



Для того чтобы получить больше идентификаторов тестов, вы сможете найти их в /var/log/lynis.log. Ниже приведен способ, как это сделать.

1. Для начала, нам необходимо запустить lynis с параметром -c (проверить все (check-all)).

Код:
# ./lynis -c -Q

2. Then look at inside /var/log/lynis.log file. Используйте команду cat и соедините её с grep. Скажем, вы хотите найти идентификатор теста, относящийся к ядру. Используйте ключевое слово KRNL для того, чтобы найти его.

Код:
# cat /var/log/lynis.log | grep KRNL

2222.png


Ниже приведены полные ключевые слова идентификаторов тестов, доступных в Lynis.

BOOT
KRNL (ядро (kernel))
PROC (процессор (processor))
AUTH (аутентификация (authentication))
SHLL (shell)
FILE
STRG (хранилище (storage))
NAME (dns)
PKGS (пакетирование (packaging))
NETW (сеть (network))
PRNT (принтер (printer))
MAIL
FIRE (брандмауэр (firewall))
HTTP (вебсервер (webserver))
SSH
SNMP
DBS (база данных (database))
PHP
LDAP
SQD (squid proxy)
LOGG (протоколирование (logging))
INSE (insecure services – inetd)
SCHD (scheduling – cron job)
ACCT (учет (accounting))
TIME (time protocol – NTP)
CRYP (криптография (cryptography))
VIRT (виртуализация (virtualization))
MACF (AppArmor – SELINUX)
MALW (вредоносное ПО (malware))
HOME
HRDN (упрочнение (hardening))
Запуск lynis с категориями

Если вы ощущаете, что много идентификаторов тестов слишком тягостно для вас, вы можете использовать параметр -test-category. С помощью этой опции Lynis запускает идентификаторы тестов, которые входят в определенную категорию. Например, вы хотите запустить тесты брандмауэра и ядра. Тогда вы можете сделать это:

Код:
# ./lynis –tests-category “firewalls kernel”

3333.png



Запуск Lynis как Cronjob

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

Чтобы сделать это, мы можем запустить Lynis как cronjob. Вот пример cronjob для запуска его каждый месяц.

Код:
#!/bin/sh
AUDITOR=”automated”
DATE=$(date +%Y%m%d)
HOST=$(hostname)
LOG_DIR=”/var/log/lynis”
REPORT=”$LOG_DIR/report-${HOST}.${DATE}”
DATA=”$LOG_DIR/report-data-${HOST}.${DATE}.txt”
cd /usr/local/lynis
./lynis -c –auditor “${AUDITOR}” –cronjob > ${REPORT}
mv /var/log/lynis-report.dat ${DATA}
# End

Сохраните скрипт в /etc/cron.monthly/lynis. Не забудьте добавить соответствующие пути (/usr/local/lynis and /var/log/lynis), иначе скрипт будет работать неправильно.

Источник:
 

CyberX88

Green Team
05.02.2017
122
43
BIT
2
Lynis - это инструмент аудита безопасности с открытым исходным кодом. Его основная задача - аудирование и упрочнение систем на базе Unix и Linux. Он сканирует систему, выполняя многие проверки контроля безопасности. Примеры включают поиск установленного программного обеспечения и определение возможных недостатков конфигурации.

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

Lynis является одним из самых надежных автоматизированных инструментов аудита для управления исправлениями программного обеспечения, сканирования вредоносных программ и обнаружения уязвимостей в системах на базе Unix/Linux. Этот инструмент полезен для аудиторов, сетевых и системных администраторов, специалистов в сфере безопасности, а также тестировщиков на проникновение.

Целевая аудитория:

Lynis сможет помочь аудиторам в проверке Basel II, GLBA, HIPAA, PCI DSS and SOX (Sarbanes-Oxley).
Данный инструмент отлично подойдет для специалистов в сфере безопасности, тестировщиков на проникновение, системных аудиторов, системных/ сетевых менеджеров, инженеров по безопасности.

Lynis совместим со многими операционными системами, такими как:
  • AIX
  • Arch Linux
  • BackTrack Linux
  • CentOS
  • Debian, DragonFlyBSD
  • Fedora Core, FreeBSD
  • Gentoo
  • HPUX
  • Kali, Knoppix
  • Linux Mint
  • MacOS X, Mageia, Mandriva
  • NetBSD
  • OpenBSD, OpenSolaris, openSUSE, Oracle Linux
  • PcBSD, PCLinuxOS
  • Red Hat Enterprise Linux (RHEL) и все от него производные
  • Sabayon, Scientific Linux, Slackware, Solaris 10, SuSE
  • TrueOS
  • Ubuntu и все от него производные
Lynis также может выполнять аудит программного обеспечения, такого как:

  • Сервера баз данных: MySQL, Oracle, PostgreSQL
  • Time daemons: dntpd, ntpd, timed
  • Вебсерверы: Apache, Nginx
Как только lynis начинает сканировать вашу систему, он выполнит проверку в следующих категориях:
  • Системные инструменты: системные двоичные файлы
  • Загрузка и службы: загрузчики, службы запуска
  • Ядро: уровень запуска, загруженные модули, конфигурация ядра, дампы ядра
  • Память и процессы: процессы-зомби, процессы ожидания ввода-вывода
  • Пользователи, группы и аутентификация: идентификаторы групп, sudoers, конфигурация PAM, старение паролей, маска по умолчанию

  • Shells

  • Файловые системы: точки монтирования, / tmp-файлы, корневая файловая система

  • Хранилища: usb-хранилище, firewire ohci
  • NFS

  • Программное обеспечение: службы имен: домен DNS-поиска, BIND
  • Порты и пакеты: уязвимые/обновляемые пакеты, репозиторий безопасности

  • Сеть: имена серверов, смешанные интерфейсы, соединения
  • Принтеры и спулы: cups конфигурации

  • Программное обеспечение: электронная почта и обмен сообщениями
  • Программное обеспечение: брандмауэры: iptables, pf
  • Программное обеспечение: веб-сервер: Apache, nginx

  • SSH поддержка: SSH конфигурации
  • SNMP поддержка
  • Базы данных: MySQL root пароль
  • LDAP службы
  • Программное обеспечение: php: php опции
  • Squid поддержка
  • Протоколирование ифайлы: Syslog демон, log директории
  • Ненадежные службы: inetd

  • Баннеры и идентификация

  • Назначенные задания: crontab/cronjob, atd
  • Учет: sysstat data, auditd
  • Время и синхронизация: ntp демон

  • Криптография: Срок действия сертификата SSL

  • Виртуализация
  • Фреймворки безопасности: AppArmor, SELinux, статус безопасности

  • Программное обеспечение: целостность файла
  • Программное обеспечение: сканеры вредоносных программ

  • Домашние директории: файлы истории shell
Как работает Lynis:

В этом , чтобы запустить его в первый раз, рекомендуется использовать -cparamater. –c параметр означает выполнение всех тестов для проверки систем. Если вы хотите поместить имя аудитора, просто добавьте параметр -auditor. Вот некоторые

Скачайте и установите Lynis с GitHub

Код:
git clone https://github.com/CISOfy/lynis

Код:
$ cd lynis-1.3.8
# ./lynis

Примеры возможных выводов данных:

Как только вы завершите процесс установке, запустите программу, используя имя аудитора или пентестера.

Код:
# lynis -c –auditor “BALAJI”

Рисунок 1. Инициализация

1.png


Рисунок 2. Системные инструменты

lynis2.png



Рисунок 3. Загрузка и службы и ядро

3.png


Рисунок 4. Пользователи и группы

4.png


Рисунок 5. Shell и хранилище

5.png


Рисунок 6. Программное обеспечение, порты и пакеты

6.png



Рисунок 7. Сетевое оборудование и принтеры

7.png


Рисунок 8. Электронная почта, Брандмауэр и вебсервер

8.png



Рисунок 9. SSH, SNMP и базы данных

9.png



Рисунок 10. PHP, Squid прокси протоколирование

10.png


Рисунок 11. Inetd, Баннер и Cron

11.png



Рисунок 12. Учет, NTP и криптография

12.png



Рисунок 13. Виртуализация, фреймворки безопасности и целостность файла

13.png



Рисунок 14. Сканеры вредоносных программ, системный инструмент и домашний каталог


14.png



Рисунок 15. Укрепление ядра

15.png



Рисунок 16. Упрочнение, пользовательские тесты и результаты

lynis_16_hardening_customtests_result.png


Рисунок 17. Упрочнение индекса

17.png


Запуск настраиваемых тестов в Lynis

Возможно, вашей системе не нужно выполнять все тесты. Если ваш сервер не работает с веб-сервером, вам не нужно его проверять. Для этого мы можем использовать параметр -tests. Синтаксис выглядит следующим образом:

Код:
# lynis –tests “Test-IDs”


Существует более 100 тестов, которые мы можем выполнить. Вот список тестов идентификаторов тестов в Lynis.

  • FILE-7502 (Проверка всех системных двоичных файлов)
  • BOOT-5121 (Проверить наличие загрузчика GRUB).
  • BOOT-5139 (Проверить наличие загрузчика LILO)
  • BOOT-5142 (Проверить SPARC Улучшенный загрузчик (SILO))
  • BOOT-5155 (Проверьте файл конфигурации загрузчика YABOOT)
  • BOOT-5159 (Проверить наличие загрузчика OpenBSD i386)
  • BOOT-5165 (Проверить наличие загрузочных служб FreeBSD)
  • BOOT-5177 (Проверка загрузки и запуска Linux)
  • BOOT-5180 (Проверка загрузочных служб Linux (Debian style))
  • BOOT-5184 (Проверить разрешения для загрузочных файлов/скриптов)
  • BOOT-5202 (Проверка работоспособности системы)
  • KRNL-5677 (Проверьте параметры процессора и поддержку)
  • KRNL-5695 (Определить версию ядра Linux и номер выпуска)
  • KRNL-5723 (Определение того, является ли ядро Linux монолитным)
  • KRNL-5726 (Проверка загруженных модулей ядра Linux)
  • KRNL-5728 (Проверка конфигурации ядра Linux)
  • KRNL-5745 (Проверка загруженных модулей ядра FreeBSD)
  • [04:57:04] Причина пропуска: Тест отсутствует в списке тестов для выполнения (Reason to skip: Test not in list of tests to perform)
  • KRNL-5770 (Проверка активных модулей ядра)
  • KRNL-5788 (Проверка доступности нового ядра)
  • KRNL-5820 (Проверка конфигурации дампов ядра)
Ниже приведен пример команды для запуска проверки работоспособности системы и запуска теста для проверки конфигурации дампов ядра. Если вы хотите добавить больше тестов, просто добавьте больше идентификаторов тестов, разделенных пробелом.

Код:
# ./lynis –tests “BOOT-5202 KRNL-5820”

111111.png



Для того чтобы получить больше идентификаторов тестов, вы сможете найти их в /var/log/lynis.log. Ниже приведен способ, как это сделать.

1. Для начала, нам необходимо запустить lynis с параметром -c (проверить все (check-all)).

Код:
# ./lynis -c -Q

2. Then look at inside /var/log/lynis.log file. Используйте команду cat и соедините её с grep. Скажем, вы хотите найти идентификатор теста, относящийся к ядру. Используйте ключевое слово KRNL для того, чтобы найти его.

Код:
# cat /var/log/lynis.log | grep KRNL

2222.png


Ниже приведены полные ключевые слова идентификаторов тестов, доступных в Lynis.

BOOT
KRNL
(ядро (kernel))
PROC (процессор (processor))
AUTH (аутентификация (authentication))
SHLL (shell)
FILE
STRG
(хранилище (storage))
NAME (dns)
PKGS (пакетирование (packaging))
NETW (сеть (network))
PRNT (принтер (printer))
MAIL
FIRE
(брандмауэр (firewall))
HTTP (вебсервер (webserver))
SSH
SNMP
DBS
(база данных (database))
PHP
LDAP
SQD
(squid proxy)
LOGG (протоколирование (logging))
INSE (insecure services – inetd)
SCHD (scheduling – cron job)
ACCT (учет (accounting))
TIME (time protocol – NTP)
CRYP (криптография (cryptography))
VIRT (виртуализация (virtualization))
MACF (AppArmor – SELINUX)
MALW (вредоносное ПО (malware))
HOME
HRDN
(упрочнение (hardening))
Запуск lynis с категориями

Если вы ощущаете, что много идентификаторов тестов слишком тягостно для вас, вы можете использовать параметр -test-category. С помощью этой опции Lynis запускает идентификаторы тестов, которые входят в определенную категорию. Например, вы хотите запустить тесты брандмауэра и ядра. Тогда вы можете сделать это:

Код:
# ./lynis –tests-category “firewalls kernel”

3333.png



Запуск Lynis как Cronjob

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

Чтобы сделать это, мы можем запустить Lynis как cronjob. Вот пример cronjob для запуска его каждый месяц.

Код:
#!/bin/sh
AUDITOR=”automated”
DATE=$(date +%Y%m%d)
HOST=$(hostname)
LOG_DIR=”/var/log/lynis”
REPORT=”$LOG_DIR/report-${HOST}.${DATE}”
DATA=”$LOG_DIR/report-data-${HOST}.${DATE}.txt”
cd /usr/local/lynis
./lynis -c –auditor “${AUDITOR}” –cronjob > ${REPORT}
mv /var/log/lynis-report.dat ${DATA}
# End

Сохраните скрипт в /etc/cron.monthly/lynis. Не забудьте добавить соответствующие пути (/usr/local/lynis and /var/log/lynis), иначе скрипт будет работать неправильно.

Источник:
Этот инструмент для внутреннего аудита?
 
Л

Литиум

Кому интересно -== Тык -== .
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!