113 lines
4.5 KiB
Markdown
113 lines
4.5 KiB
Markdown
|
||
# Vuls: VULnerability Scanner
|
||
|
||
Vulnerability scanner for Linux, agentless, written in golang.
|
||
|
||
Slackチームは[こちらから](http://goo.gl/forms/xm5KFo35tu)参加できます。(日本語でオッケーです)
|
||
|
||
[](https://asciinema.org/a/bazozlxrw1wtxfu9yojyihick)
|
||
|
||

|
||
|
||
|
||
[README in English](https://github.com/future-architect/vuls/blob/master/README.md)
|
||
|
||
|
||
----
|
||
|
||
# Abstract
|
||
|
||
- 毎日のように発見される脆弱性の調査、ソフトウェアアップデート作業はシステム管理者にとって大変なタスクである
|
||
- サービス停止リスクを恐れてパッケージマネージャの自動アップデート機能を使わずに手動で行うケースも多いが、手動での運用には以下の問題がある
|
||
- NVDやJVNなどの脆弱性データベースの新着情報をウォッチするのが大変
|
||
- サーバにインストールされているソフトウェアは膨大であり、全てを人が把握するのは困難
|
||
- 特にサーバ台数が多い場合は、新たに発見された脆弱性が自分の管理するどのサーバに該当するのかの調査コストが大きく、また漏れる可能性がある
|
||
- 最新情報を見逃したら脆弱性が放置されたままになる
|
||
|
||
- Vulsはサーバに存在する脆弱性を自動スキャンし、詳細情報をレポートする
|
||
- システムに関係あるもののみ教えてくれる
|
||
- その脆弱性に該当するサーバを教えてくれる
|
||
- 自動スキャンのため脆弱性対策漏れを防ぐことができる
|
||
- CRONなどで定期実行、レポートすることで脆弱性放置を防ぐことできる
|
||
|
||
- Vulsはシステム管理者の日々の脆弱性対応を助け、システムをセキュアに保つために有用なツールとなることを目指している
|
||
|
||

|
||
|
||
----
|
||
|
||
# Main Features
|
||
|
||
- Linuxサーバに存在する脆弱性をスキャン
|
||
- Ubuntu, Debian, CentOS, Amazon Linux, RHELに対応
|
||
- クラウド、オンプレミス、Docker
|
||
- OSパッケージ管理対象外のミドルウェアをスキャン
|
||
- プログラミング言語のライブラリやフレームワーク、ミドルウェアの脆弱性スキャン
|
||
- CPEに登録されているソフトウェアが対象
|
||
- エージェントレスアーキテクチャ
|
||
- スキャン対象サーバにSSH接続可能なマシン1台にセットアップするだけで動作
|
||
- 複数のSSH認証方式をサポート
|
||
- SSH agent
|
||
- SSH public key authentication (with password, empty password)
|
||
- Password authentication
|
||
- 設定ファイルのテンプレート自動生成
|
||
- CIDRを指定してサーバを自動検出、設定ファイルのテンプレートを生成
|
||
- EmailやSlackで通知可能(日本語でのレポートも可能)
|
||
- 付属するTerminal-Based User Interfaceビューアでは、Vim風キーバインドでスキャン結果を参照可能
|
||
|
||
----
|
||
|
||
# レポートの日本語化
|
||
|
||
- JVNから日本語の脆弱性情報を取得
|
||
```
|
||
$ go-cve-dictionary fetchjvn -help
|
||
fetchjvn:
|
||
fetchjvn [-dump-path=$PWD/cve] [-dpath=$PWD/vuls.sqlite3] [-week] [-month] [-entire]
|
||
|
||
-dbpath string
|
||
/path/to/sqlite3/DBfile (default "$PWD/cve.sqlite3")
|
||
-debug
|
||
debug mode
|
||
-debug-sql
|
||
SQL debug mode
|
||
-dump-path string
|
||
/path/to/dump.json (default "$PWD/cve.json")
|
||
-entire
|
||
Fetch data for entire period.(This operation is time-consuming) (default: false)
|
||
-month
|
||
Fetch data in the last month (default: false)
|
||
-week
|
||
Fetch data in the last week. (default: false)
|
||
|
||
```
|
||
|
||
- すべての期間の脆弱性情報を取得(1時間以上かかる)
|
||
```
|
||
$ go-cve-dictionary fetchjvn -entire
|
||
```
|
||
|
||
- 直近1ヶ月間に更新された脆弱性情報を取得(1分未満)
|
||
```
|
||
$ go-cve-dictionary fetchjvn -month
|
||
```
|
||
|
||
- 直近1週間に更新された脆弱性情報を取得(1分未満)
|
||
```
|
||
$ go-cve-dictionary fetchjvn -week
|
||
```
|
||
|
||
- 脆弱性情報の自動アップデート
|
||
Cronなどのジョブスケジューラを用いて実現可能。
|
||
-week オプションを指定して夜間の日次実行を推奨。
|
||
|
||
|
||
## スキャン実行
|
||
|
||
```
|
||
$ vuls scan -lang=ja
|
||
```
|
||
Scan時にlang=jaを指定すると脆弱性レポートが日本語になる
|
||
slack, emailは日本語対応済み TUIは日本語表示未対応
|
||
|