Подробный гайд: Автоматическая проверка уязвимостей в 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 и официальные рекомендации вендора по безопасности.
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.