Vuls開発用コンテナ作った。コントリビュートする人はもちろんローカルでテストできるはず。久々にdocker hub開いた。https://t.co/AUrJw7Rkq8
— adachin?SRE (@adachin0817) April 2, 2018
そういえばVulsのローカル環境を一瞬で作りたいなと思い、
今時VagrantではなくDockerで作りましたぜぃいいいいい!!
※追記
リニューアルしましたので以下を参考にしてください!!
[docker][docker-compose]Vulsの開発環境をリニューアルしてv0.5.0にアップデートしました!
■Docker Hub
https://hub.docker.com/r/tvirus17/vuls_centos7/
■Environment
・CentOS7
・go version go1.10.1 linux/amd64
・vuls v0.4.2 ce56261
以前書いたブログで構築されています。
実際に動くか試してみましょう。
■Docker run Vuls
1 2 |
$ docker -v Docker version 18.03.0-ce-rc4, build fbedb97 |
・docker pull
1 2 3 4 5 6 7 8 9 10 11 |
$ docker pull tvirus17/vuls_centos7 Using default tag: latest latest: Pulling from tvirus17/vuls_centos7 5e35d10a3eba: Pull complete a12691c116f9: Pull complete 60937d4e493a: Pull complete Digest: sha256:b15be824cb464197d0fd9a2214695e3c964003b10aee01bcd3383a16e0e157f3 Status: Downloaded newer image for tvirus17/vuls_centos7:latest $ docker images |grep vuls tvirus17/vuls_centos7 latest e119414b6fdb 3 hours ago 3.73GB |
・docker run
1 2 3 4 5 6 7 8 9 |
$ docker run -h "vuls_centos7" -e TZ=Asia/Tokyo --privileged -d --name vuls_centos7 tvirus17/vuls_centos7 /sbin/init 80464ea5ee982468451cd9303b91482760541837b05d25776cd10e4e76697aa3 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 80464ea5ee98 tvirus17/vuls_centos7 "/sbin/init" 1 second ago Up 2 seconds vuls_centos7 $ docker exec -it vuls_centos7 /bin/bash [root@80464ea5ee98 /]# |
■vuls files
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
[root@80464ea5ee98 /]# su vuls [vuls@80464ea5ee98 ~]$ ll ~/ total 8 drwxrwxr-x 5 vuls vuls 4096 Apr 2 08:16 go drwxrwxr-x 1 vuls vuls 4096 Apr 2 10:43 vuls [vuls@80464ea5ee98 ~]$ cd /home/vuls/go/src/github.com [vuls@80464ea5ee98 github.com]$ ll total 12 drwxrwxr-x 3 vuls vuls 4096 Apr 2 08:58 future-architect drwxrwxr-x 4 vuls vuls 4096 Apr 2 08:58 golang drwxrwxr-x 4 vuls vuls 4096 Apr 2 08:18 kotakanbe [vuls@80464ea5ee98 github.com]$ cd future-architect/vuls/ [vuls@80464ea5ee98 vuls]$ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/insecure-skip-verify remotes/origin/master remotes/origin/peco-tui remotes/origin/redhat-changelog-cache remotes/origin/stty-localexec remotes/origin/v0.5.0 [vuls@80464ea5ee98 /]$ cd ~/vuls [vuls@80464ea5ee98 vuls]$ ll total 990580 -rw-rw-r-- 1 vuls vuls 148 Apr 2 10:42 config.toml -rw-r--r-- 1 vuls vuls 918818816 Apr 2 08:57 cve.sqlite3 -rw-r--r-- 1 vuls vuls 32768 Apr 2 10:42 cve.sqlite3-shm -rw-r--r-- 1 vuls vuls 0 Apr 2 09:21 cve.sqlite3-wal -rw-r--r-- 1 vuls vuls 95490048 Apr 2 10:41 oval.sqlite3 drwx------ 1 vuls vuls 4096 Apr 2 10:42 results |
Vuls自体のコードはvulsホームディレクトリのgo配下にあり、
Vuls設定ファイルはvulsホームディレクトリのvuls配下に格納しています。
(timezone設定してなかった。。)→run時に-e TZ=Asia/Tokyo入れて直しましたぜ。
■vuls scan
・vuls configtest/scan
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
[vuls@80464ea5ee98 vuls]$ vuls configtest [Apr 2 14:00:22] INFO [localhost] Validating config... [Apr 2 14:00:22] INFO [localhost] Detecting Server/Container OS... [Apr 2 14:00:22] INFO [localhost] Detecting OS of servers... [Apr 2 14:00:22] INFO [localhost] (1/1) Detected: localhost: centos 7.4.1708 [Apr 2 14:00:22] INFO [localhost] Detecting OS of containers... [Apr 2 14:00:22] INFO [localhost] Checking dependencies... [Apr 2 14:00:22] INFO [localhost] Dependencies ... Pass [Apr 2 14:00:22] INFO [localhost] Checking sudo settings... [Apr 2 14:00:22] INFO [localhost] sudo ... No need [Apr 2 14:00:22] INFO [localhost] Scannable servers are below... [vuls@80464ea5ee98 vuls]$ vuls scan [Apr 2 13:53:59] INFO [localhost] Start scanning [Apr 2 13:53:59] INFO [localhost] config: /home/vuls/vuls/config.toml [Apr 2 13:53:59] INFO [localhost] Validating config... [Apr 2 13:53:59] INFO [localhost] Detecting Server/Container OS... [Apr 2 13:53:59] INFO [localhost] Detecting OS of servers... [Apr 2 13:53:59] INFO [localhost] (1/1) Detected: localhost: centos 7.4.1708 [Apr 2 13:53:59] INFO [localhost] Detecting OS of containers... [Apr 2 13:53:59] INFO [localhost] Detecting Platforms... [Apr 2 13:54:07] INFO [localhost] (1/1) localhost is running on other [Apr 2 13:54:07] INFO [localhost] Scanning vulnerabilities... [Apr 2 13:54:07] INFO [localhost] Scanning vulnerable OS packages... One Line Summary ================ localhost centos7.4.1708 204 installed, 4 updatable |
・vuls report slack
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
[vuls@80464ea5ee98 vuls]$ vuls report -format-short-text -format-json -to-slack -lang=ja -ignore-unfixed -cvss-over=7 [Apr 2 14:04:01] INFO [localhost] Validating config... [Apr 2 14:04:01] INFO [localhost] cve-dictionary: /home/vuls/vuls/cve.sqlite3 [Apr 2 14:04:01] INFO [localhost] oval-dictionary: /home/vuls/vuls/oval.sqlite3 [Apr 2 14:04:01] INFO [localhost] Loaded: /home/vuls/vuls/results/2018-04-02T14:03:44Z [Apr 2 14:04:01] INFO [localhost] Fill CVE detailed information with OVAL [Apr 2 14:04:01] INFO [localhost] OVAL is fresh: redhat 7.4.1708 [Apr 2 14:04:03] INFO [localhost] Fill CVE detailed information with CVE-DB localhost (centos7.4.1708) ========================== Total: 4 (High:3 Medium:1 Low:0 ?:0) 204 installed, 4 updatable CVE-2016-5195 7.8 IMPORTANT (redhat) Linux カーネルのメモリサブシステムに実装されている copy-on-write 機構に競合状態が発生する脆弱性 Linux カーネルのメモリサブシステムに実装されている copy-on-write 機構には、競合状態が発生する脆弱性が存在します。 競合状態 (CWE-362) - CVE-2016-5195 Linux カーネルのメモリサブシステムには、copy-on-write 機構の実装の問題に起因して、 競合状態が発生する脆弱性が存在します。 再現コードなどの詳しい情報は Dirty COW を参照してください。 Dirty COW https://dirtycow.ninja/ なお、本脆弱性を使用した攻撃活動が確認されているとのことです。 --- https://jvndb.jvn.jp/ja/contents/2016/JVNDB-2016-005596.html https://access.redhat.com/security/cve/CVE-2016-5195 (RHEL-CVE) 7.2/AV:L/AC:L/Au:N/C:C/I:C/A:C (nvd) 6.9/AV:L/AC:M/Au:N/C:C/I:C/A:C (redhat) 7.2/AV:L/AC:L/Au:N/C:C/I:C/A:C (jvn) https://nvd.nist.gov/vuln-metrics/cvss/v2-calculator?name=CVE-2016-5195 7.8/CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (redhat) https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2016-5195 Confidence: 100 / OvalMatch CVE-2016-7039 7.8 HIGH (nvd) Linux Kernel の IP スタックにおけるサービス運用妨害 (DoS) の脆弱性 Linux Kernel の IP スタックには、サービス運用妨害 (スタックの消費およびパニック) 状態にされるなど、不特定の影響を受ける脆弱性が存在します。 本脆弱性は、CVE-2016-8666 と関連する問題です。 --- https://jvndb.jvn.jp/ja/contents/2016/JVNDB-2016-005597.html https://access.redhat.com/security/cve/CVE-2016-7039 (RHEL-CVE) 7.8/AV:N/AC:L/Au:N/C:N/I:N/A:C (nvd) 7.1/AV:N/AC:M/Au:N/C:N/I:N/A:C (redhat) 7.8/AV:N/AC:L/Au:N/C:N/I:N/A:C (jvn) https://nvd.nist.gov/vuln-metrics/cvss/v2-calculator?name=CVE-2016-7039 7.5/CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H (redhat) https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2016-7039 Confidence: 100 / OvalMatch CVE-2016-8666 7.8 HIGH (nvd) Linux Kernel の IP スタックにおけるサービス運用妨害 (DoS) の脆弱性 Linux Kernel の IP スタックには、サービス運用妨害 (スタックの消費およびパニック) 状態にされるなど、不特定の影響を受ける脆弱性が存在します。 本脆弱性は、CVE-2016-7039 と関連する問題です。 補足情報 : CWE による脆弱性タイプは、CWE-400: Uncontrolled Resource Consumption (リソースの枯渇) と識別されています。 http://cwe.mitre.org/data/definitions/400.html --- https://jvndb.jvn.jp/ja/contents/2016/JVNDB-2016-005603.html https://access.redhat.com/security/cve/CVE-2016-8666 (RHEL-CVE) 7.8/AV:N/AC:L/Au:N/C:N/I:N/A:C (nvd) 7.1/AV:N/AC:M/Au:N/C:N/I:N/A:C (redhat) 7.8/AV:N/AC:L/Au:N/C:N/I:N/A:C (jvn) https://nvd.nist.gov/vuln-metrics/cvss/v2-calculator?name=CVE-2016-8666 7.5/CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H (redhat) https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2016-8666 Confidence: 100 / OvalMatch CVE-2017-17712 7.8 IMPORTANT (redhat) Linux Kernel における競合状態に関する脆弱性 Linux Kernel には、競合状態に関する脆弱性が存在します。 --- https://jvndb.jvn.jp/ja/contents/2017/JVNDB-2017-011474.html https://access.redhat.com/security/cve/CVE-2017-17712 (RHEL-CVE) 6.9/AV:L/AC:M/Au:N/C:C/I:C/A:C (nvd) 6.9/AV:L/AC:M/Au:N/C:C/I:C/A:C (jvn) https://nvd.nist.gov/vuln-metrics/cvss/v2-calculator?name=CVE-2017-17712 7.8/CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (redhat) https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2017-17712 Confidence: 100 / OvalMatch |
動く!!?
あとはgogogo!!!
■まとめ
これでVulsローカル環境はOK。コントリビュートもしやすくなりまっせ!
ちなみにちょんまげさんもローカルDockerだった。
わいの開発環境のスキャン対象サーバは基本ローカルDockerでRedHatとかテストするときはIDCFとかAWSっす
— バルスのちょんまげおじさん (@kotakanbe) April 2, 2018
ansible Vuls作ろうとつぶやいたら…
この本に書いてあるそうです。構築とスキャンをAnsibleでできるやつが載ってやした。https://t.co/FwKOky3qBx
GitHubはここでやんす。https://t.co/u9smZUPdPz
わい試せてないので、パイセン、試していただけると!!#vulsjp
— バルスのちょんまげおじさん (@kotakanbe) April 2, 2018
試してみる価値あり。
Vuls Dockerfileも作ろうかな。
皆さんも私のVulsローカル環境使ってくださいな!
開発はMac上のnvimっすー
— バルスのちょんまげおじさん (@kotakanbe) April 2, 2018
ネオビーム!
0件のコメント