🕵️ Как локально развернуть зеркало базы уязвимостей NIST в Docker |

🕵️ Как локально развернуть зеркало базы уязвимостей NIST в Docker

Мануал

Целью nist-data-mirror является возможность копирования данных об уязвимостях NIST внутри брандмауэра компании, чтобы обеспечить локальный (более быстрый) доступ к данным NIST.

nist-data-mirror не зависит от каких-либо сторонних зависимостей, только от основных библиотек Java SE.

Его можно использовать в сочетании с [OWASP Dependency-Check], чтобы предоставить Dependency-Check зеркальную копию данных NIST.

OWASP DependencyCheck – обнаруживает публично раскрытые уязвимости в приложениях

Для достижения наилучших результатов используйте nist-data-mirror с cron или другим планировщиком для поддержания свежести зеркальных данных.

В нашем случае мы будем использовать вариант разворачивания в Docker.

Склонируем репозиторий:

git clone https://github.com/stevespringett/nist-data-mirror.git

Docker 17.06 или более поздний:

$ mvn clean package
$ docker build --rm -t sspringett/nvdmirror .
$ mkdir target/docs
$ docker run -dit \
  --name mirror \
  -p 80:80 \
  --mount type=bind,source="$(pwd)"/target/docs/,target=/usr/local/apache2/htdocs \
  sspringett/nvdmirror

Более ранний Docker:

$ docker run -dit --name mirror -p 80:80 -v "$(pwd)"/target/docs/,target=/usr/local/apache2/htdocs sspringett/nvdmirror

Нужно соответcвенно заменить последнюю команду, если вы получили ошибку:

Error unknown flag: --mount

Для запуска httpd-сервера потребуется минута, так как он зеркалирует начальные файлы NVD.

Чтобы использовать прокси во время сборки, укажите переменные окружения http_proxy, https_proxy и no_proxy в качестве аргументов сборки (например, –build-arg http_proxy=”${http_proxy}”.

В рантайме выполнения вы можете передать значения http.proxyHost и http.proxyPort в _JAVA_OPTIONS.

Например:

_JAVA_OPTIONS="-Dhttps.proxyHost=yourproxyhost.domain -Dhttps.proxyPort=3128 -Dhttp.proxyHost=yourproxyhost.domain
      -Dhttp.proxyPort=3128 -Dhttp.nonProxyHosts="localhost|*.domain"

Образ предназначен для выполнения от имени случайного пользователя, не являющегося пользователем root, и может быть развернут на платформах оркестрации контейнеров, таких как Kubernetes и OpenShift.

Далее откроем браузер и проверим наличие сигнатур:

Далее проверим работу Dependency check с локальным зеркалом базы:

└─# ./dependency-check.sh --scan /opt/project --cveUrlBase=http://ip-адрес/nvdcve-1.1-%d.json.gz --cveUrlModified=http://ip-адрес/nvdcve-1.1-modified.json.gz

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий