Описание VULS
Основные функции
- Сканировать любые уязвимости в Linux Server
- Сканирование промежуточного программного обеспечения, библиотек языка программирования и структуры для уязвимости
- Программное обеспечение для поддержки, зарегистрированное в CPE
- Пользователь должен только настроить один компьютер, подключенный к другим целевым серверам через SSH
- Автоматическое создание шаблона конфигурационного файл
- Возможно уведомление по электронной почте и Slack (поддерживает японский язык)
- Результат сканирования можно просмотреть на нужном программном обеспечении, терминале TUI Viewer.
В этой статье я дам инструкцию по установке Vuls-сканера на сервере Ubuntu 16.04. Давайте пройдем через этапы установки.
1) Предварительные требования
Vuls требует установки следующих пакетов для обеспечения нормальной работы:
- sqlite3
- git
- gcc
- go v1.6 or above
Чтобы установить Sqlite3, используйте следующие команды:
# apt-get update # apt-get install sqlite3 libsqlite3-dev
Чтобы установить git и gcc, вы можете использовать следующую команду:
# apt-get install git gcc
Выполните следующие шаги, чтобы установить Go на сервер.
В зависимости от архитектуры нашего сервера мы можем загрузить необходимый пакет и извлечь его для установки.
# wget https://storage.googleapis.com/golang/go1.6.2.linux-amd64.tar.gz
Добавьте эти строки в /etc/profile.d/goenv.sh
# cat /etc/profile.d/goenv.sh</span>
... export GOROOT = / usr / local / go export GOPATH = $ HOME / go export PATH = $ PATH: $ GOROOT / bin: $ GOPATH / bin
# source /etc/profile.d/goenv.sh
# go version go version go1.6.2 linux/amd64
2) Включить аутентификацию по ключам SSH между серверами
Вы можете создать пары ключей SSH и добавить их на сервер vuls, чтобы улучшить работу серверов.
# ssh-keygen -t rsa # cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # chmod 600 ~/.ssh/authorized_keys
3) Развернуть go-cve-dictionary
Теперь мы можем перейти в наш рабочий каталог и развернуть наш go-cve-dictionary. Как упоминалось ранее, vuls отслеживает любые новые уязвимости в NVD.
# cd /root/go # go get github.com/kotakanbe/go-cve-dictionary # ls bin hello-world hello-world.go pkg src
#mkdir /var/log/vuls #chmod 700 /var/log/vuls
Первым делом, go-cve-dictionary извлекает данные об уязвимости из NVD и вставляет в sqlite3.
# for i in {2002..2016}; do go-cve-dictionary fetchnvd -years $i; done 0 / 1 [------------------------------------------------------------------------------------------------------------------------------] 0.00%[Sep 21 07:44:13] INFO Fetching... https://static.nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-2002.xml.gz [Sep 21 07:44:15] INFO Fetched 6721 CVEs [Sep 21 07:44:15] INFO Opening DB. datafile: /root/go/cve.sqlite3 [Sep 21 07:44:15] INFO Migrating DB [Sep 21 07:44:15] INFO Inserting CVEs... 6721 / 6721 [====================================================================================================================] 100.00% 13s [Sep 21 07:44:29] INFO Refreshed 6721 Nvds.
Теперь мы успешно собрали данные об уязвимостях, а затем снова начали работать в режиме сервера.
# go-cve-dictionary server [Sep 22 05:47:48] INFO Opening DB. datafile: /root/go/cve.sqlite3 [Sep 22 05:47:48] INFO Migrating DB [Sep 22 05:47:48] INFO Starting HTTP Server... [Sep 22 05:47:48] INFO Listening on 127.0.0.1:1323
# ls -alh cve.sqlite3 -rw-r--r-- 1 root root 561M Sep 21 07:53 cve.sqlite3
4) Разворачивание vuls
Запустите эту команду для развертывания vuls.
# go get github.com/future-architect/vuls
5) Создание конфигурации vuls
Мы можем создать файл конфигурации vuls в формате TOML для сканирования целевых серверов.
Я только изменил файл конфигурации vuls для сканирования моего локального сервера.
# cat config.toml
…
[servers] [servers.45-33-77-70] host = "45.33.77.70" port = "22" user = "root" keyPath = "/root/.ssh/id_rsa"
Вы можете добавить столько серверов, сколько вам нужно в файле конфигурации и запустить проверку конфигурации.
# vuls configtest [Sep 21 03:01:56] INFO [localhost] Validating Config... [Sep 21 03:01:56] INFO [localhost] Detecting Server/Contianer OS... [Sep 21 03:01:56] INFO [localhost] Detecting OS of servers... [Sep 21 03:01:57] INFO [localhost] (1/1) Detected: 45-33-77-70: ubuntu 16.04 [Sep 21 03:01:57] INFO [localhost] Detecting OS of containers... [Sep 21 03:01:57] INFO [localhost] Checking sudo configuration... [Sep 21 03:01:57] INFO [45-33-77-70] sudo ... OK [Sep 21 03:01:57] INFO [localhost] SSH-able servers are below... 45-33-77-70
6) Настройка целевых серверов для vuls
Вы можете запустить эту команду «vuls prepare», чтобы настроить все целевые серверы, указанные в файле конфигурации vuls.
# vuls prepare INFO[0000] Start Preparing (config: /config.toml) [Sep 21 03:02:46] INFO [localhost] Detecting OS... [Sep 21 03:02:46] INFO [localhost] Detecting OS of servers... [Sep 21 03:02:46] INFO [localhost] (1/1) Detected: 45-33-77-70: ubuntu 16.04 [Sep 21 03:02:46] INFO [localhost] Detecting OS of containers... [Sep 21 03:02:46] INFO [localhost] Checking sudo configuration... [Sep 21 03:02:46] INFO [45-33-77-70] sudo ... OK [Sep 21 03:02:46] INFO [localhost] Installing... [Sep 21 03:02:46] INFO [45-33-77-70] apt-get update...
7) Начать сканирование
Мы можем сканировать наши серверы с помощью команды «vuls scan».
# vuls scan -report-json -cve-dictionary-dbpath=/root/go/cve.sqlite3 INFO[0000] Start scanning INFO[0000] config: /root/go/vuls/config.toml INFO[0000] cve-dictionary: /root/go/cve.sqlite3
Мы можем даже получить пользовательский интерфейс на основе терминала, чтобы просмотреть наш отчет о сканировании. Вы можете запустить эту команду «vuls tui» для доступа к ней.