Как установить и настроить Vuls Vulnerability Scanner в Linux — Information Security Squad
Как установить и настроить Vuls Vulnerability Scanner в Linux

Описание VULS

VULS — это сканер уязвимостей безопасности для Linux.

Он загружает NVD (National Vulnerability Database) и вставляет в базу данных sqlite. Vuls построил словарь CVE для этого файла sqlite. Серверы подключаются с использованием авторизации на основе ключа, поэтому нам нужно сгенерировать ключи ssh и подтвердить авторизацию между серверами и целью сканирования.

Поскольку, vuls является сканером для инсайдеров. Логика системы 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 
Я загрузил пакет для 64-битной архитектуры.
# mkdir /root/go

Добавьте эти строки в /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 для своего локального сервера и добавляю открытый ключ к authorized_keys для включения локального сканирования.
 # 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» для доступа к ней.

 

 

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40