Подробный гайд: Автоматическая проверка уязвимостей в ALT Linux

Подробный гайд по автоматической проверке уязвимостей в ALT Linux: настройка cron, systemd, сканирование CVE через Trivy, Grype и полный аудит системы.

2026.09.02                  


Подробный гайд: Автоматическая проверка уязвимостей в ALT LinuxПодробный гайд: Автоматическая проверка уязвимостей в ALT Linux

1. Убедитесь, что подключены репозитории безопасности

Проверьте источники пакетов:

cat /etc/apt/sources.list
ls /etc/apt/sources.list.d/

Для большинства редакций (Ковчег, Рабочая станция, Сервер) должен быть подключён репозиторий обновлений безопасности.

Если его нет, добавьте строку вида (пример для ALT Linux 11 «Ковчег»):

rpm [p11] http://ftp.altlinux.org/pub/distributions/ALTLinux/p11/branch/ x86_64/
rpm [p11] http://ftp.altlinux.org/pub/distributions/ALTLinux/p11/branch/ x86_64-i586/


Конкретные адреса зависят от вашей версии и архитектуры. Для корпоративных версий (ALT SP, ALT Виртуализация) репозитории указываются в документации вендора.

После изменения источников:

sudo apt-get update

2. Проверка доступных обновлений безопасности

Симуляция обновления (без установки)

sudo apt-get update
sudo apt-get -s upgrade

Флаг -s (simulate) покажет список пакетов, которые будут обновлены, без фактической установки. Это позволяет оценить масштаб необходимых обновлений.

Фильтрация по безопасности

sudo apt-get -s upgrade 2>/dev/null | grep -iE 'security|безопас|vuln|cve'

Просмотр changelog конкретного пакета

apt-get changelog <имя_пакета>

3. Автоматическая установка обновлений безопасности

Ручной запуск

sudo apt-get update
sudo apt-get upgrade --auto-remove

Или полное обновление системы:

sudo apt-get update
sudo apt-get dist-upgrade

Автоматизация через cron

Создайте скрипт /usr/local/bin/auto-security-update.sh:

#!/bin/bash
LOG="/var/log/auto-security-update.log"
echo "=== $(date) ===" >> "$LOG"
/usr/bin/apt-get update >> "$LOG" 2>&1
/usr/bin/apt-get upgrade -y --auto-remove >> "$LOG" 2>&1
echo "=== Завершено $(date) ===" >> "$LOG"

Сделайте исполняемым:

sudo chmod +x /usr/local/bin/auto-security-update.sh

Добавьте в cron (ежедневно в 3:00):

sudo crontab -e
# Добавьте строку:
0 3 * * * /usr/local/bin/auto-security-update.sh

Альтернатива: systemd-таймер

Создайте /etc/systemd/system/security-update.service:

[Unit]
Description=Автоматическое обновление безопасности

[Service]
Type=oneshot
ExecStart=/usr/bin/apt-get update
ExecStart=/usr/bin/apt-get upgrade -y --auto-remove

И /etc/systemd/system/security-update.timer:

[Unit]
Description=Таймер обновления безопасности

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

Активируйте:

sudo systemctl daemon-reload
sudo systemctl enable --now security-update.timer

4. Проверка ядра системы

Ядро обновляется отдельно утилитой update-kernel:

# Просмотр доступных ядер
sudo update-kernel -t

# Обновление ядра
sudo update-kernel

Для автоматизации добавьте вызов update-kernel в тот же cron-скрипт.


5. Верификация целостности установленных пакетов

Проверка контрольных сумм и файлов пакетов через RPM:

sudo rpm -Va

Вывод покажет расхождения (изменённые конфигурационные файлы, подменённые бинарники и т. п.). Обращайте внимание на строки с флагами 5 (контрольная сумма) и M (права доступа).

Просмотр последних установленных/обновлённых пакетов:

rpm -qa --last | head -30

6. Сканирование уязвимостей на уровне ОС

6.1. Lynis — аудит безопасности

Установите (если доступен в репозиториях) или соберите из исходников:

# Проверка наличия в репозитории
apt-get search lynis

# Если доступен:
sudo apt-get install lynis
sudo lynis audit system

Lynis проверяет конфигурации, права доступа, сетевые параметры, состояние фаервола и выдаёт отчёт с рекомендациями.

6.2. Проверка открытых портов и служб

# Открытые порты
sudo ss -tlnp
sudo ss -ulnp

# Работающие службы
sudo systemctl list-units --type=service --state=running

6.3. Проверка на руткиты

# Если доступны в репозиториях:
sudo apt-get install chkrootkit rkhunter
sudo chkrootkit
sudo rkhunter --check

7. Сканирование уязвимостей на уровне пакетов (аналог debsecan / vuln-check)

В ALT Linux нет прямого аналога debsecan, но можно автоматизировать проверку через сравнение установленных версий с актуальными из репозитория:



# Список установленных пакетов
rpm -qa --queryformat '%{NAME}-%{VERSION}-%{RELEASE}\n' > /tmp/installed.txt

# Список доступных версий в репозитории
apt-get update
apt-cache showpkg <имя_пакета>

Для комплексного сканирования (по базам CVE) можно использовать внешние инструменты:

Инструмент Назначение Установка
OpenVAS / Greenbone CE Сетевое сканирование уязвимостей Отдельная установка, требует настройки
Nmap + NSE-скрипты Сканирование портов и служб apt-get install nmap
Trivy Сканирование пакетов и контейнеров на CVE Бинарник с GitHub
Grype Сканирование файловой системы на CVE Бинарник с GitHub

Пример с Trivy (сканирование файловой системы):

# Скачивание бинарника
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin

# Сканирование всей системы по установленным пакетам
sudo trivy fs --scanners vuln /

Пример с Grype:

curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin

grype dir:/

Оба инструмента сверяют установленные пакеты с базами CVE и выводят список уязвимостей с идентификаторами CVE и уровнем критичности.


8. Комплексный скрипт «всё в одном»

Создайте /usr/local/bin/full-vuln-check.sh:

#!/bin/bash
LOG="/var/log/vuln-check-$(date +%Y%m%d).log"
exec > >(tee -a "$LOG") 2>&1

echo "=============================="
echo "Проверка уязвимостей: $(date)"
echo "Хост: $(hostname)"
echo "=============================="

echo ""
echo "[1/6] Обновление списков пакетов..."
apt-get update

echo ""
echo "[2/6] Доступные обновления безопасности..."
apt-get -s upgrade | grep -E '^Inst|^ВЫБОР|Обновлено|обновления' || echo "Обновлений нет"

echo ""
echo "[3/6] Версия ядра..."
uname -r
echo "Доступные ядра:"
update-kernel -t 2>/dev/null || echo "update-kernel не найден"

echo ""
echo "[4/6] Открытые порты..."
ss -tlnp

echo ""
echo "[5/6] Верификация пакетов (кратко)..."
rpm -Va 2>/dev/null | head -20 || echo "Ошибок нет"

echo ""
echo "[6/6] Сканирование CVE (Trivy/Grype, если установлены)..."
if command -v trivy &>/dev/null; then
    trivy fs --scanners vuln --severity HIGH,CRITICAL /
elif command -v grype &>/dev/null; then
    grype dir:/ --only-fixed
else
    echo "Trivy/Grype не установлены. Установите для глубокого сканирования."
fi

echo ""
echo "=============================="
echo "Отчёт сохранён: $LOG"
echo "=============================="
sudo chmod +x /usr/local/bin/full-vuln-check.sh
sudo /usr/local/bin/full-vuln-check.sh

9. Краткая шпаргалка команд

Задача Команда
Обновить списки пакетов sudo apt-get update
Просмотреть обновления (без установки) sudo apt-get -s upgrade
Установить все обновления sudo apt-get dist-upgrade
Обновить ядро sudo update-kernel
Проверить целостность пакетов sudo rpm -Va
Открытые порты sudo ss -tlnp
Запустить аудит (если установлен) sudo lynis audit system
Сканировать CVE через Trivy sudo trivy fs --scanners vuln /

Важные замечания

  • Корпоративные редакции (ALT SP, ALT Виртуализация, ALT Образование) могут получать обновления безопасности только через коммерческие репозитории вендора. Убедитесь, что подписка активна.
  • Перед массовой установкой обновлений на продакшн-серверах протестируйте на копии или используйте apt-get -s для симуляции.
  • Если в системе используется зашифрованный раздел или специфические модули ядра, после update-kernel и apt-get dist-upgrade может потребоваться перезагрузка.
  • Для соответствия требованиям регуляторов (ФСТЭК, ФСБ) используйте специализированные сертифицированные версии ALT и официальные рекомендации вендора по безопасности.



Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

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