SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
脆弱性スキャナVuls
(応用編)
インフラ勉強会
2018.4.15
Takayuki Ushida
誰 ?
• 牛田隆之(Ushida Takayuki)
• フューチャー株式会社
• テクノロジーイノベーショングループ
• Vulsクラウド版(FutureVuls)の開発
• Vuls Webビューアー(VulsRepo)作者
• Twitter・Qiita・GitHub
• usiusi360
アジェンダ
• Vulsの検知のしくみ
• 検知モード(モードによる検知方法と必要パッケージ・設定)
• fast scan
• deep scan
• OSパッケージ以外の検知
• CPE(Common Platform Enumeration)
• OWASP Dependency Check
• NotFixYetについて
• v0.5.0での対応予定(CVSS Version3対応、CPEバージョンマッチング)
• コマンドオプション
• vuls discover
• vuls report -diff
• vuls report -cvss-over=7
• vuls report -ignore-unfixed
• Vuls構成例
• 複数のVulsサーバによる運用
• インターネットから隔離された環境での運用
Vulsの検知のしくみ
v.0.3.Xまでの検知方法
CentOS # yum update —changelog openssl
Debian系 # aptitude changelog
• 現在インストールされているバージョンと最新のバージョン間のchangelogを取得
• changelog内のCVEIDを取得
# - fix CVE-2014-3513 - memory leak in srtp support
- add support for fallback SCSV to partially mitigate CVE-2014-3566
- fix CVE-2014-0224 fix that broke EAP-FAST session resumption support
- fix CVE-2014-3505 - doublefree in DTLS packet processing
- fix CVE-2014-3506 - avoid memory exhaustion in DTLS
• Changelog による検知の問題
• CveIDがコミットログに書いてない
• 文脈無視(CVE-XXに関係して修正した 等)
• ログに記載されているCveIDが間違っている。
• RedHat、AmazonLinux、OracleLinux
# yum --color=never --security updateinfo list updates
ALAS-2014-281 medium/Sec. ca-certificates-2012.1.95-3.12.amzn1.noarch
ALAS-2013-261 low/Sec. coreutils-8.4-31.17.amzn1.x86_64
ALAS-2013-261 low/Sec. coreutils-libs-8.4-31.17.amzn1.x86_64
• 上記以外(CentOS、Debian系)
• パースできない

(ex. Fix CVE-2014-7185/4650/1912)
• リポジトリに全てのchangelogが含まれている
わけではなかった
v.0.4.X以降の検知方法
• OVALとのパッケージバーションのマッチングをメインに
• セキュリティ検査言語

(Open Vulnerability and Assessment Language)
• 各ディストリビューション毎に公開されている。
• FreeBSD、Rasbianは無い。CentOSも無いが、VulsはRedhatのを代わりに使う。
• 各ディストリビューションのセキュリティアップデート情報サイトの元データ
• Redhat:RHSA(Red Hat Security Advisory) 

https://access.redhat.com/errata/
• Debian:DLA(Debian Security Tracker) 

https://security-tracker.debian.org/tracker/
• Ubuntu:USN(Ubuntu security notices)

https://usn.ubuntu.com/
• AmazonLinux:ALSA(Amazon Linux Security Advisories)

https://alas.aws.amazon.com/
etc
RHSA(Red Hat Security Advisory)
<definition class="patch" id="oval:com.redhat.rhsa:def:20140679" version="601">
<metadata>
<title>RHSA-2014:0679: openssl security update (Important)</title>
<affected family="unix">
<platform>Red Hat Enterprise Linux 7</platform>
</affected>
<reference ref_id="RHSA-2014:0679-00" ref_url="https://rhn.redhat.com/errata/RHSA-2014-0679.html" source="RHSA"/>
<reference ref_id="CVE-2010-5298" ref_url="https://www.redhat.com/security/data/cve/CVE-2010-5298.html" source="CVE"/>
~~~
<description>OpenSSL is a toolkit that implements the Secure Sockets Layer (SSL v2/v3)
and Transport Layer Security (TLS v1) protocols, as well as a
full-strength, general purpose cryptography library.
It was found that OpenSSL clients and servers could be forced, via a
specially crafted handshake packet, to use weak keying material for
communication. A man-in-the-middle attacker could use this flaw to decrypt
and modify traffic between a client and a server. (CVE-2014-0224)
~~~
All OpenSSL users are advised to upgrade to these updated packages, which
contain backported patches to correct these issues. For the update to take
effect, all services linked to the OpenSSL library (such as httpd and other
SSL-enabled services) must be restarted or the system rebooted.</description>
<advisory from="secalert@redhat.com">
<severity>Important</severity>
<rights>Copyright 2014 Red Hat, Inc.</rights>
<issued date="2014-06-10"/>
<updated date="2014-06-10"/>
<cve cvss2="4.3/AV:N/AC:M/Au:N/C:N/I:N/A:P" cwe="CWE-416" href="https://www.redhat.com/security/data/cve/CVE-2010-5298.html" impact="moderate" public="20140408">CVE-2010-5298</cve>
<cve cvss2="5.8/AV:N/AC:M/Au:N/C:P/I:P/A:N" cwe="CWE-119" href="https://www.redhat.com/security/data/cve/CVE-2014-0195.html" public="20140605">CVE-2014-0195</cve>
<cve cvss2="4.3/AV:N/AC:M/Au:N/C:N/I:N/A:P" cwe="CWE-476" href="https://www.redhat.com/security/data/cve/CVE-2014-0198.html" impact="moderate" public="20140421">CVE-2014-0198</cve>
<cve cvss2="4.3/AV:N/AC:M/Au:N/C:N/I:N/A:P" cwe="CWE-400" href="https://www.redhat.com/security/data/cve/CVE-2014-0221.html" impact="moderate" public="20140605">CVE-2014-0221</cve>
<cve cvss2="5.8/AV:N/AC:M/Au:N/C:P/I:P/A:N" cwe="CWE-841" href="https://www.redhat.com/security/data/cve/CVE-2014-0224.html" public="20140605">CVE-2014-0224</cve>
<cve cvss2="4.3/AV:N/AC:M/Au:N/C:N/I:N/A:P" cwe="CWE-476" href="https://www.redhat.com/security/data/cve/CVE-2014-3470.html" impact="moderate" public="20140605">CVE-2014-3470</cve>
<bugzilla href="https://bugzilla.redhat.com/1087195" id="1087195">CVE-2010-5298 openssl: freelist misuse causing a possible use-after-free</bugzilla>
<bugzilla href="https://bugzilla.redhat.com/1093837" id="1093837">CVE-2014-0198 openssl: SSL_MODE_RELEASE_BUFFERS NULL pointer dereference in do_ssl3_write()</bugzilla>
~~~
<affected_cpe_list>
<cpe>cpe:/o:redhat:enterprise_linux:7</cpe>
</affected_cpe_list>
</advisory>
</metadata>
<criteria operator="AND">
<criteria operator="OR">
<criterion comment="Red Hat Enterprise Linux 7 Client is installed" test_ref="oval:com.redhat.rhsa:tst:20140675001"/>
<criterion comment="Red Hat Enterprise Linux 7 Server is installed" test_ref="oval:com.redhat.rhsa:tst:20140675002"/>
<criterion comment="Red Hat Enterprise Linux 7 Workstation is installed" test_ref="oval:com.redhat.rhsa:tst:20140675003"/>
<criterion comment="Red Hat Enterprise Linux 7 ComputeNode is installed" test_ref="oval:com.redhat.rhsa:tst:20140675004"/>
</criteria>
<criteria operator="OR">
<criteria operator="AND">
<criterion comment="openssl-static is earlier than 1:1.0.1e-34.el7_0.3" test_ref="oval:com.redhat.rhsa:tst:20140679011"/>
<criterion comment="openssl-static is signed with Red Hat redhatrelease2 key" test_ref="oval:com.redhat.rhsa:tst:20140679012"/>
</criteria>
<criteria operator="AND">
<criterion comment="openssl-devel is earlier than 1:1.0.1e-34.el7_0.3" test_ref="oval:com.redhat.rhsa:tst:20140679007"/>
<criterion comment="openssl-devel is signed with Red Hat redhatrelease2 key" test_ref="oval:com.redhat.rhsa:tst:20140679008"/>
</criteria>
<criteria operator="AND">
<criterion comment="openssl-perl is earlier than 1:1.0.1e-34.el7_0.3" test_ref="oval:com.redhat.rhsa:tst:20140679009"/>
<criterion comment="openssl-perl is signed with Red Hat redhatrelease2 key" test_ref="oval:com.redhat.rhsa:tst:20140679010"/>
</criteria>
<criteria operator=“AND">
~~~
=== <criterion comment="openssl is earlier than 1:1.0.1e-34.el7_0.3" test_ref="oval:com.redhat.rhsa:tst:20140679005"/>
<criterion comment="openssl is signed with Red Hat redhatrelease2 key" test_ref="oval:com.redhat.rhsa:tst:20140679006"/>
</criteria>
<criteria operator="AND">
<criterion comment="openssl-libs is earlier than 1:1.0.1e-34.el7_0.3" test_ref="oval:com.redhat.rhsa:tst:20140679013"/>
<criterion comment="openssl-libs is signed with Red Hat redhatrelease2 key" test_ref="oval:com.redhat.rhsa:tst:20140679014"/>
</criteria>
OVAL一部抜粋
該当するCveID
Cveに該当する条件
<criteria operator="AND">
<criteria operator="OR">
<criterion comment="Red Hat Enterprise Linux 7 Client is installed" test_ref="oval:com.redhat.rhsa:tst:
20140675001"/>
<criterion comment="Red Hat Enterprise Linux 7 Server is installed" test_ref="oval:com.redhat.rhsa:tst:
20140675002"/>
<criterion comment="Red Hat Enterprise Linux 7 Workstation is installed"
test_ref="oval:com.redhat.rhsa:tst:20140675003"/>
<criterion comment="Red Hat Enterprise Linux 7 ComputeNode is installed"
test_ref="oval:com.redhat.rhsa:tst:20140675004"/>
</criteria>
<criteria operator="OR">
<criteria operator="AND">
<criterion comment="openssl-static is earlier than 1:1.0.1e-34.el7_0.3" test_ref="oval:com.redhat.rhsa:tst:
20140679011"/>
<criterion comment="openssl-static is signed with Red Hat redhatrelease2 key"
test_ref="oval:com.redhat.rhsa:tst:20140679012"/>
</criteria>
<criteria operator="AND">
<criterion comment="openssl-devel is earlier than 1:1.0.1e-34.el7_0.3" test_ref="oval:com.redhat.rhsa:tst:
20140679007"/>
<criterion comment="openssl-devel is signed with Red Hat redhatrelease2 key"
test_ref="oval:com.redhat.rhsa:tst:20140679008"/>
</criteria>
<criteria operator="AND">
<criterion comment="openssl-perl is earlier than 1:1.0.1e-34.el7_0.3" test_ref="oval:com.redhat.rhsa:tst:
20140679009"/>
<criterion comment="openssl-perl is signed with Red Hat redhatrelease2 key"
test_ref="oval:com.redhat.rhsa:tst:20140679010"/>
</criteria>
<criteria operator=“AND">
~~~
criteria拡大
Vulsがスキャン対象サーバ上で取得
# rpm -qa | grep openssl
openssl-static-1.0.0k-1.el7.x86_64
Vulsはサーバ上のバージョンが修正バー
ジョンより古い場合、脆弱性があると判断
fast scan
(https://vuls.io/docs/en/architecture-fast-scan.html)
• OVALとのパッケージバーションのマッチングのみ
• Changelogの取得
を行わないので早
い・負荷が軽い
fast scan
• Root権限が不要
• 現状は最新のパッケージバージョンを取得するために、各スキャ
ン対象サーバがリポジトリへアクセスしている。
• v0.5.0で-offlineを追加して、選択可能に(予定)
deep scan
(https://vuls.io/docs/en/architecture-deep-scan.html)
• OVALとのパッケージバーションのマッチングとchangelogのダブルチェック
• Changelogの取得のため
にスキャン対象サーバへの
IO負荷がそれなりにある。
(自前の仮想環境注意)
• スキャンサーバのメモリに
全てのchangelogを取り
込むので注意
deep scan
• ディストリビューションによってRoot権限が必要
• Root権限を必要とするコマンドを/etc/sudoerに設定
モード別必要パッケージ
• モードによりスキャン対象サーバに必要なパッケージが変わるので注意
• fast scan • deep scan
OSパッケージ以外の検知
• OS管理下のパッケージは自動で収集
• Yum、Apt、Pkg
• 上記以外は?
• ソースからビルド
• tar.gz、zip解凍して配置したもの
• 独自RPM
• 専用インストーラー
• ネットワーク機器
Scan vulnerabilites of non-OS packages
• https://vuls.io/docs/en/usage-scan-non-os-packages.html
CPEとは
• CPE(Common Platform Enumerations)
• 共通プラットフォーム一覧
• 製品を識別するための共通のプラットフォーム名の一覧
•
CPEによるスキャン
• 設定方法
• マニュアル:Scan vulnerabilites of non-OS packages
• https://vuls.io/docs/en/usage-scan-non-os-packages.html
• CPEを調べる(https://nvd.nist.gov/products/cpe/search)
• 現在のVulsはCPE2.2でチェック
• Ex) cpe:/a:apache:struts:2.1.5

cpe:/h:cisco:892_integrated_services_router:-
• Config.tomlに設定
[servers]
[servers.localhost]
host = "localhost"
port = "local"
cpeNames = [
"cpe:/a:apache:struts:2.1.5",
"cpe:/h:cisco:892_integrated_services_router:-",
]
OWASP Dependency Check によるスキャン
• プログラムのライブラリを自動的に見つけ出して脆弱性スキャン
• Java、.NET
• Ruby、Node.js、Python、C/C++(CMakeもしくはautoconfを利用している
場合のみ)は実験的にサポート
• 単体で動作するがVulsと組み合わせると以下のメリット
• VulsのUIから一括で脆弱性をチェックできる
• Vulsのメール、チャット通知機能が使える
• JVNの情報と付け合わせて日本語でレポートできる
• Config.tomlに設定
[servers]
[servers.localhost]
host = "localhost"
port = "local"
dependencyCheckXMLPath = "/tmp/dependency-check-report.xml"
NotFixYetについて
• 最新バージョンにしても脆弱性が修正されたパッケージが無い状態
• 「vuls report」「vuls tui」では表示されない。JSONには入っている
• VulsRepoの「NotFixYet」カラムで表示
• EX)
• CentOS
• CVE-2017-3738
• パッケージ:openssl
• Redhat リリース日:4/10
• CentOSの最新:openssl-1.0.2k-8.el7.x86_64
v0.5.0での対応予定
• CVSS Version3対応
• NVD、JVNはサイト上では、CVSSv3のデータを表示していたがXMLデータ内に
v3に関する内容が含まれていなかった。
• RedHatのOVALは、2017年1月以降のCveについては全てv3のデータだけに
変わった。
• CVSSv2とv3では、スコアの算出ロジックが全く異なる。v2とv3で比較しても意
味がない。
• NVD
• 2017年7月〜 JSON形式にてβ版データ配信開始
• JVN
• 2018年2月〜 今までのデータにv3のデータも含まれるようになった
v0.5.0での対応予定
• CPEバージョンマッチング
• これまで⇨ CPEの文字列完全マッチング
• バージョン違いは検知できなかった
• CPEの登録はベンダーによって登録運用が違う

(CPEの登録がベンダー主体で実施)
• ベンダー1:該当するバージョン別にCPEを全て登録
• ベンダー2:v1.00以上v2.00以下、v1.00より大きいv2.00より小さい
• Added four new properties to the "cpe" object to assist in defining
ranges

versionStartIncluding

versionStartExcluding

versionEndIncluding

versionEndExcluding
• 以上、以下、より大きい、より小さい を区別して検知可能に
v0.5.0での対応予定
• CWEでOWASP Top10ランキングに該当しているか表示
コマンドオプション
vuls discover
• CIDRを指定することで、ICMPに反応のあったアドレスをconfig.tomlに作成して
くれる。
• https://vuls.io/docs/en/usage-automatic-discovery.html
•
vuls discover 10.11.0.0/22
vuls report —diff
• 「前回」との差分だけレポートしてくれる。
•
実演
vuls report -cvss-over=7
• 特定のスコア以上だけを表示
•
実演
vuls report -ignore-unfixed
• NotFixYetを除外する。
Vuls構成例
複数のVulsサーバによる運用
• 別々のネットワークに分離されているような環境
• 個々のVulsサーバでスキャン時に出力されたJSONファイルを一箇所に集めるこ
とで、横断的に分析
• 実事例:NTTPCコミュニケーションズ
• https://www.nttpc.co.jp/technology/csirt_3.html
インターネットから隔離された環境での運用
• 各サーバは直接インターネットに出れない環境
• ローカルリポジトリを用意
• 必要なときだけリポジトリアクセスを許可
• 実事例:ラクスル
• https://tech.raksul.com/2017/09/04/setup-vuls/

Contenu connexe

Tendances

Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティスAmazon Web Services Japan
 
AWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティスAWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティスAmazon Web Services Japan
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5Takahiro YAMADA
 
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGoogle Cloud Platform - Japan
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンKentaro Yoshida
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門VirtualTech Japan Inc.
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターンSoudai Sone
 
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallZabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallAtsushi Tanaka
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル貴志 上坂
 
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)NTT DATA Technology & Innovation
 
全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!Kouhei Sutou
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話JustSystems Corporation
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Taku Miyakawa
 
診断ツールの使い方(Owasp zapの場合)
診断ツールの使い方(Owasp zapの場合)診断ツールの使い方(Owasp zapの場合)
診断ツールの使い方(Owasp zapの場合)shingo inafuku
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門泰 増田
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーToru Makabe
 

Tendances (20)

Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
AWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティスAWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティス
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
 
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
 
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallZabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
 
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
 
全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
自宅k8s/vSphere入門
自宅k8s/vSphere入門自宅k8s/vSphere入門
自宅k8s/vSphere入門
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
診断ツールの使い方(Owasp zapの場合)
診断ツールの使い方(Owasp zapの場合)診断ツールの使い方(Owasp zapの場合)
診断ツールの使い方(Owasp zapの場合)
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 

Similaire à 脆弱性スキャナVuls(応用編)

OpenFlowをXenServerで試してみよう
OpenFlowをXenServerで試してみようOpenFlowをXenServerで試してみよう
OpenFlowをXenServerで試してみようKimihiko Kitase
 
Mellanox Vxlan offload Performance on linux
Mellanox Vxlan offload Performance on linux Mellanox Vxlan offload Performance on linux
Mellanox Vxlan offload Performance on linux Yuki Kitajima
 
20161022 Linux on Azureの世界
20161022 Linux on Azureの世界20161022 Linux on Azureの世界
20161022 Linux on Azureの世界Takayoshi Tanaka
 
Osc2018 tokyo spring_scap
Osc2018 tokyo spring_scapOsc2018 tokyo spring_scap
Osc2018 tokyo spring_scapKazuki Omo
 
Aeolus Conductorによる複数環境へのデプロイ自動化
Aeolus Conductorによる複数環境へのデプロイ自動化Aeolus Conductorによる複数環境へのデプロイ自動化
Aeolus Conductorによる複数環境へのデプロイ自動化Etsuji Nakai
 
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
AWS Black Belt Tech シリーズ 2015 - AWS Elastic BeanstalkAWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
AWS Black Belt Tech シリーズ 2015 - AWS Elastic BeanstalkAmazon Web Services Japan
 
OpenDaylightを用いた次世代ネットワーク構成管理の考察
OpenDaylightを用いた次世代ネットワーク構成管理の考察OpenDaylightを用いた次世代ネットワーク構成管理の考察
OpenDaylightを用いた次世代ネットワーク構成管理の考察Naoto MATSUMOTO
 
What's new in open shift container platform 4.7 japan_20210318
What's new in open shift container platform 4.7 japan_20210318What's new in open shift container platform 4.7 japan_20210318
What's new in open shift container platform 4.7 japan_20210318Yuhki Hanada
 
Gluster fs and_swiftapi_20120429
Gluster fs and_swiftapi_20120429Gluster fs and_swiftapi_20120429
Gluster fs and_swiftapi_20120429Etsuji Nakai
 
【Brocade OpenStack ソリューション】LBaaS プラグイン
【Brocade OpenStack ソリューション】LBaaS プラグイン【Brocade OpenStack ソリューション】LBaaS プラグイン
【Brocade OpenStack ソリューション】LBaaS プラグインBrocade
 
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessionsOpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessionsAkihiro Motoki
 
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Sho Shimizu
 
Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Etsuji Nakai
 
named_scope more detail - WebCareer
named_scope more detail - WebCareernamed_scope more detail - WebCareer
named_scope more detail - WebCareerKyosuke MOROHASHI
 
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...VirtualTech Japan Inc.
 
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API Dragon
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API DragonJOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API Dragon
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API DragonNaoto Gohko
 

Similaire à 脆弱性スキャナVuls(応用編) (20)

OpenFlowをXenServerで試してみよう
OpenFlowをXenServerで試してみようOpenFlowをXenServerで試してみよう
OpenFlowをXenServerで試してみよう
 
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイドOpenstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
 
sveltekit-ja.pdf
sveltekit-ja.pdfsveltekit-ja.pdf
sveltekit-ja.pdf
 
Mellanox Vxlan offload Performance on linux
Mellanox Vxlan offload Performance on linux Mellanox Vxlan offload Performance on linux
Mellanox Vxlan offload Performance on linux
 
20161022 Linux on Azureの世界
20161022 Linux on Azureの世界20161022 Linux on Azureの世界
20161022 Linux on Azureの世界
 
Osc2018 tokyo spring_scap
Osc2018 tokyo spring_scapOsc2018 tokyo spring_scap
Osc2018 tokyo spring_scap
 
Ansible npstudy-shtsuchi
Ansible npstudy-shtsuchiAnsible npstudy-shtsuchi
Ansible npstudy-shtsuchi
 
Aeolus Conductorによる複数環境へのデプロイ自動化
Aeolus Conductorによる複数環境へのデプロイ自動化Aeolus Conductorによる複数環境へのデプロイ自動化
Aeolus Conductorによる複数環境へのデプロイ自動化
 
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
AWS Black Belt Tech シリーズ 2015 - AWS Elastic BeanstalkAWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
 
OpenDaylightを用いた次世代ネットワーク構成管理の考察
OpenDaylightを用いた次世代ネットワーク構成管理の考察OpenDaylightを用いた次世代ネットワーク構成管理の考察
OpenDaylightを用いた次世代ネットワーク構成管理の考察
 
What's new in open shift container platform 4.7 japan_20210318
What's new in open shift container platform 4.7 japan_20210318What's new in open shift container platform 4.7 japan_20210318
What's new in open shift container platform 4.7 japan_20210318
 
Gluster fs and_swiftapi_20120429
Gluster fs and_swiftapi_20120429Gluster fs and_swiftapi_20120429
Gluster fs and_swiftapi_20120429
 
【Brocade OpenStack ソリューション】LBaaS プラグイン
【Brocade OpenStack ソリューション】LBaaS プラグイン【Brocade OpenStack ソリューション】LBaaS プラグイン
【Brocade OpenStack ソリューション】LBaaS プラグイン
 
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessionsOpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
 
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像
 
Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介
 
named_scope more detail - WebCareer
named_scope more detail - WebCareernamed_scope more detail - WebCareer
named_scope more detail - WebCareer
 
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
 
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API Dragon
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API DragonJOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API Dragon
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API Dragon
 
20120423 hbase勉強会
20120423 hbase勉強会20120423 hbase勉強会
20120423 hbase勉強会
 

Plus de Takayuki Ushida

脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理Takayuki Ushida
 
Vulsで始めよう!DevSecOps!
Vulsで始めよう!DevSecOps!Vulsで始めよう!DevSecOps!
Vulsで始めよう!DevSecOps!Takayuki Ushida
 
脆弱性スキャナVulsで始めるセキュリティ対策
脆弱性スキャナVulsで始めるセキュリティ対策脆弱性スキャナVulsで始めるセキュリティ対策
脆弱性スキャナVulsで始めるセキュリティ対策Takayuki Ushida
 
脆弱性スキャナVulsのAWS環境への融合
脆弱性スキャナVulsのAWS環境への融合脆弱性スキャナVulsのAWS環境への融合
脆弱性スキャナVulsのAWS環境への融合Takayuki Ushida
 
脆弱性スキャナVulsを使ってDevSecOpsを実践!
脆弱性スキャナVulsを使ってDevSecOpsを実践!脆弱性スキャナVulsを使ってDevSecOpsを実践!
脆弱性スキャナVulsを使ってDevSecOpsを実践!Takayuki Ushida
 
Vulsで危険な脆弱性を最速検知!(The fastest detection of dangerous vulnerability by Vuls! )
Vulsで危険な脆弱性を最速検知!(The fastest detection of dangerous vulnerability by Vuls! )Vulsで危険な脆弱性を最速検知!(The fastest detection of dangerous vulnerability by Vuls! )
Vulsで危険な脆弱性を最速検知!(The fastest detection of dangerous vulnerability by Vuls! )Takayuki Ushida
 

Plus de Takayuki Ushida (6)

脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
 
Vulsで始めよう!DevSecOps!
Vulsで始めよう!DevSecOps!Vulsで始めよう!DevSecOps!
Vulsで始めよう!DevSecOps!
 
脆弱性スキャナVulsで始めるセキュリティ対策
脆弱性スキャナVulsで始めるセキュリティ対策脆弱性スキャナVulsで始めるセキュリティ対策
脆弱性スキャナVulsで始めるセキュリティ対策
 
脆弱性スキャナVulsのAWS環境への融合
脆弱性スキャナVulsのAWS環境への融合脆弱性スキャナVulsのAWS環境への融合
脆弱性スキャナVulsのAWS環境への融合
 
脆弱性スキャナVulsを使ってDevSecOpsを実践!
脆弱性スキャナVulsを使ってDevSecOpsを実践!脆弱性スキャナVulsを使ってDevSecOpsを実践!
脆弱性スキャナVulsを使ってDevSecOpsを実践!
 
Vulsで危険な脆弱性を最速検知!(The fastest detection of dangerous vulnerability by Vuls! )
Vulsで危険な脆弱性を最速検知!(The fastest detection of dangerous vulnerability by Vuls! )Vulsで危険な脆弱性を最速検知!(The fastest detection of dangerous vulnerability by Vuls! )
Vulsで危険な脆弱性を最速検知!(The fastest detection of dangerous vulnerability by Vuls! )
 

脆弱性スキャナVuls(応用編)

  • 2. 誰 ? • 牛田隆之(Ushida Takayuki) • フューチャー株式会社 • テクノロジーイノベーショングループ • Vulsクラウド版(FutureVuls)の開発 • Vuls Webビューアー(VulsRepo)作者 • Twitter・Qiita・GitHub • usiusi360
  • 3. アジェンダ • Vulsの検知のしくみ • 検知モード(モードによる検知方法と必要パッケージ・設定) • fast scan • deep scan • OSパッケージ以外の検知 • CPE(Common Platform Enumeration) • OWASP Dependency Check • NotFixYetについて • v0.5.0での対応予定(CVSS Version3対応、CPEバージョンマッチング) • コマンドオプション • vuls discover • vuls report -diff • vuls report -cvss-over=7 • vuls report -ignore-unfixed • Vuls構成例 • 複数のVulsサーバによる運用 • インターネットから隔離された環境での運用
  • 5. v.0.3.Xまでの検知方法 CentOS # yum update —changelog openssl Debian系 # aptitude changelog • 現在インストールされているバージョンと最新のバージョン間のchangelogを取得 • changelog内のCVEIDを取得 # - fix CVE-2014-3513 - memory leak in srtp support - add support for fallback SCSV to partially mitigate CVE-2014-3566 - fix CVE-2014-0224 fix that broke EAP-FAST session resumption support - fix CVE-2014-3505 - doublefree in DTLS packet processing - fix CVE-2014-3506 - avoid memory exhaustion in DTLS • Changelog による検知の問題 • CveIDがコミットログに書いてない • 文脈無視(CVE-XXに関係して修正した 等) • ログに記載されているCveIDが間違っている。 • RedHat、AmazonLinux、OracleLinux # yum --color=never --security updateinfo list updates ALAS-2014-281 medium/Sec. ca-certificates-2012.1.95-3.12.amzn1.noarch ALAS-2013-261 low/Sec. coreutils-8.4-31.17.amzn1.x86_64 ALAS-2013-261 low/Sec. coreutils-libs-8.4-31.17.amzn1.x86_64 • 上記以外(CentOS、Debian系) • パースできない
 (ex. Fix CVE-2014-7185/4650/1912) • リポジトリに全てのchangelogが含まれている わけではなかった
  • 6. v.0.4.X以降の検知方法 • OVALとのパッケージバーションのマッチングをメインに • セキュリティ検査言語
 (Open Vulnerability and Assessment Language) • 各ディストリビューション毎に公開されている。 • FreeBSD、Rasbianは無い。CentOSも無いが、VulsはRedhatのを代わりに使う。 • 各ディストリビューションのセキュリティアップデート情報サイトの元データ • Redhat:RHSA(Red Hat Security Advisory) 
 https://access.redhat.com/errata/ • Debian:DLA(Debian Security Tracker) 
 https://security-tracker.debian.org/tracker/ • Ubuntu:USN(Ubuntu security notices)
 https://usn.ubuntu.com/ • AmazonLinux:ALSA(Amazon Linux Security Advisories)
 https://alas.aws.amazon.com/ etc
  • 8. <definition class="patch" id="oval:com.redhat.rhsa:def:20140679" version="601"> <metadata> <title>RHSA-2014:0679: openssl security update (Important)</title> <affected family="unix"> <platform>Red Hat Enterprise Linux 7</platform> </affected> <reference ref_id="RHSA-2014:0679-00" ref_url="https://rhn.redhat.com/errata/RHSA-2014-0679.html" source="RHSA"/> <reference ref_id="CVE-2010-5298" ref_url="https://www.redhat.com/security/data/cve/CVE-2010-5298.html" source="CVE"/> ~~~ <description>OpenSSL is a toolkit that implements the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols, as well as a full-strength, general purpose cryptography library. It was found that OpenSSL clients and servers could be forced, via a specially crafted handshake packet, to use weak keying material for communication. A man-in-the-middle attacker could use this flaw to decrypt and modify traffic between a client and a server. (CVE-2014-0224) ~~~ All OpenSSL users are advised to upgrade to these updated packages, which contain backported patches to correct these issues. For the update to take effect, all services linked to the OpenSSL library (such as httpd and other SSL-enabled services) must be restarted or the system rebooted.</description> <advisory from="secalert@redhat.com"> <severity>Important</severity> <rights>Copyright 2014 Red Hat, Inc.</rights> <issued date="2014-06-10"/> <updated date="2014-06-10"/> <cve cvss2="4.3/AV:N/AC:M/Au:N/C:N/I:N/A:P" cwe="CWE-416" href="https://www.redhat.com/security/data/cve/CVE-2010-5298.html" impact="moderate" public="20140408">CVE-2010-5298</cve> <cve cvss2="5.8/AV:N/AC:M/Au:N/C:P/I:P/A:N" cwe="CWE-119" href="https://www.redhat.com/security/data/cve/CVE-2014-0195.html" public="20140605">CVE-2014-0195</cve> <cve cvss2="4.3/AV:N/AC:M/Au:N/C:N/I:N/A:P" cwe="CWE-476" href="https://www.redhat.com/security/data/cve/CVE-2014-0198.html" impact="moderate" public="20140421">CVE-2014-0198</cve> <cve cvss2="4.3/AV:N/AC:M/Au:N/C:N/I:N/A:P" cwe="CWE-400" href="https://www.redhat.com/security/data/cve/CVE-2014-0221.html" impact="moderate" public="20140605">CVE-2014-0221</cve> <cve cvss2="5.8/AV:N/AC:M/Au:N/C:P/I:P/A:N" cwe="CWE-841" href="https://www.redhat.com/security/data/cve/CVE-2014-0224.html" public="20140605">CVE-2014-0224</cve> <cve cvss2="4.3/AV:N/AC:M/Au:N/C:N/I:N/A:P" cwe="CWE-476" href="https://www.redhat.com/security/data/cve/CVE-2014-3470.html" impact="moderate" public="20140605">CVE-2014-3470</cve> <bugzilla href="https://bugzilla.redhat.com/1087195" id="1087195">CVE-2010-5298 openssl: freelist misuse causing a possible use-after-free</bugzilla> <bugzilla href="https://bugzilla.redhat.com/1093837" id="1093837">CVE-2014-0198 openssl: SSL_MODE_RELEASE_BUFFERS NULL pointer dereference in do_ssl3_write()</bugzilla> ~~~ <affected_cpe_list> <cpe>cpe:/o:redhat:enterprise_linux:7</cpe> </affected_cpe_list> </advisory> </metadata> <criteria operator="AND"> <criteria operator="OR"> <criterion comment="Red Hat Enterprise Linux 7 Client is installed" test_ref="oval:com.redhat.rhsa:tst:20140675001"/> <criterion comment="Red Hat Enterprise Linux 7 Server is installed" test_ref="oval:com.redhat.rhsa:tst:20140675002"/> <criterion comment="Red Hat Enterprise Linux 7 Workstation is installed" test_ref="oval:com.redhat.rhsa:tst:20140675003"/> <criterion comment="Red Hat Enterprise Linux 7 ComputeNode is installed" test_ref="oval:com.redhat.rhsa:tst:20140675004"/> </criteria> <criteria operator="OR"> <criteria operator="AND"> <criterion comment="openssl-static is earlier than 1:1.0.1e-34.el7_0.3" test_ref="oval:com.redhat.rhsa:tst:20140679011"/> <criterion comment="openssl-static is signed with Red Hat redhatrelease2 key" test_ref="oval:com.redhat.rhsa:tst:20140679012"/> </criteria> <criteria operator="AND"> <criterion comment="openssl-devel is earlier than 1:1.0.1e-34.el7_0.3" test_ref="oval:com.redhat.rhsa:tst:20140679007"/> <criterion comment="openssl-devel is signed with Red Hat redhatrelease2 key" test_ref="oval:com.redhat.rhsa:tst:20140679008"/> </criteria> <criteria operator="AND"> <criterion comment="openssl-perl is earlier than 1:1.0.1e-34.el7_0.3" test_ref="oval:com.redhat.rhsa:tst:20140679009"/> <criterion comment="openssl-perl is signed with Red Hat redhatrelease2 key" test_ref="oval:com.redhat.rhsa:tst:20140679010"/> </criteria> <criteria operator=“AND"> ~~~ === <criterion comment="openssl is earlier than 1:1.0.1e-34.el7_0.3" test_ref="oval:com.redhat.rhsa:tst:20140679005"/> <criterion comment="openssl is signed with Red Hat redhatrelease2 key" test_ref="oval:com.redhat.rhsa:tst:20140679006"/> </criteria> <criteria operator="AND"> <criterion comment="openssl-libs is earlier than 1:1.0.1e-34.el7_0.3" test_ref="oval:com.redhat.rhsa:tst:20140679013"/> <criterion comment="openssl-libs is signed with Red Hat redhatrelease2 key" test_ref="oval:com.redhat.rhsa:tst:20140679014"/> </criteria> OVAL一部抜粋 該当するCveID Cveに該当する条件
  • 9. <criteria operator="AND"> <criteria operator="OR"> <criterion comment="Red Hat Enterprise Linux 7 Client is installed" test_ref="oval:com.redhat.rhsa:tst: 20140675001"/> <criterion comment="Red Hat Enterprise Linux 7 Server is installed" test_ref="oval:com.redhat.rhsa:tst: 20140675002"/> <criterion comment="Red Hat Enterprise Linux 7 Workstation is installed" test_ref="oval:com.redhat.rhsa:tst:20140675003"/> <criterion comment="Red Hat Enterprise Linux 7 ComputeNode is installed" test_ref="oval:com.redhat.rhsa:tst:20140675004"/> </criteria> <criteria operator="OR"> <criteria operator="AND"> <criterion comment="openssl-static is earlier than 1:1.0.1e-34.el7_0.3" test_ref="oval:com.redhat.rhsa:tst: 20140679011"/> <criterion comment="openssl-static is signed with Red Hat redhatrelease2 key" test_ref="oval:com.redhat.rhsa:tst:20140679012"/> </criteria> <criteria operator="AND"> <criterion comment="openssl-devel is earlier than 1:1.0.1e-34.el7_0.3" test_ref="oval:com.redhat.rhsa:tst: 20140679007"/> <criterion comment="openssl-devel is signed with Red Hat redhatrelease2 key" test_ref="oval:com.redhat.rhsa:tst:20140679008"/> </criteria> <criteria operator="AND"> <criterion comment="openssl-perl is earlier than 1:1.0.1e-34.el7_0.3" test_ref="oval:com.redhat.rhsa:tst: 20140679009"/> <criterion comment="openssl-perl is signed with Red Hat redhatrelease2 key" test_ref="oval:com.redhat.rhsa:tst:20140679010"/> </criteria> <criteria operator=“AND"> ~~~ criteria拡大 Vulsがスキャン対象サーバ上で取得 # rpm -qa | grep openssl openssl-static-1.0.0k-1.el7.x86_64 Vulsはサーバ上のバージョンが修正バー ジョンより古い場合、脆弱性があると判断
  • 11. fast scan • Root権限が不要 • 現状は最新のパッケージバージョンを取得するために、各スキャ ン対象サーバがリポジトリへアクセスしている。 • v0.5.0で-offlineを追加して、選択可能に(予定)
  • 12. deep scan (https://vuls.io/docs/en/architecture-deep-scan.html) • OVALとのパッケージバーションのマッチングとchangelogのダブルチェック • Changelogの取得のため にスキャン対象サーバへの IO負荷がそれなりにある。 (自前の仮想環境注意) • スキャンサーバのメモリに 全てのchangelogを取り 込むので注意
  • 13. deep scan • ディストリビューションによってRoot権限が必要 • Root権限を必要とするコマンドを/etc/sudoerに設定
  • 15. OSパッケージ以外の検知 • OS管理下のパッケージは自動で収集 • Yum、Apt、Pkg • 上記以外は? • ソースからビルド • tar.gz、zip解凍して配置したもの • 独自RPM • 専用インストーラー • ネットワーク機器 Scan vulnerabilites of non-OS packages • https://vuls.io/docs/en/usage-scan-non-os-packages.html
  • 16. CPEとは • CPE(Common Platform Enumerations) • 共通プラットフォーム一覧 • 製品を識別するための共通のプラットフォーム名の一覧 •
  • 17. CPEによるスキャン • 設定方法 • マニュアル:Scan vulnerabilites of non-OS packages • https://vuls.io/docs/en/usage-scan-non-os-packages.html • CPEを調べる(https://nvd.nist.gov/products/cpe/search) • 現在のVulsはCPE2.2でチェック • Ex) cpe:/a:apache:struts:2.1.5
 cpe:/h:cisco:892_integrated_services_router:- • Config.tomlに設定 [servers] [servers.localhost] host = "localhost" port = "local" cpeNames = [ "cpe:/a:apache:struts:2.1.5", "cpe:/h:cisco:892_integrated_services_router:-", ]
  • 18. OWASP Dependency Check によるスキャン • プログラムのライブラリを自動的に見つけ出して脆弱性スキャン • Java、.NET • Ruby、Node.js、Python、C/C++(CMakeもしくはautoconfを利用している 場合のみ)は実験的にサポート • 単体で動作するがVulsと組み合わせると以下のメリット • VulsのUIから一括で脆弱性をチェックできる • Vulsのメール、チャット通知機能が使える • JVNの情報と付け合わせて日本語でレポートできる • Config.tomlに設定 [servers] [servers.localhost] host = "localhost" port = "local" dependencyCheckXMLPath = "/tmp/dependency-check-report.xml"
  • 19. NotFixYetについて • 最新バージョンにしても脆弱性が修正されたパッケージが無い状態 • 「vuls report」「vuls tui」では表示されない。JSONには入っている • VulsRepoの「NotFixYet」カラムで表示 • EX) • CentOS • CVE-2017-3738 • パッケージ:openssl • Redhat リリース日:4/10 • CentOSの最新:openssl-1.0.2k-8.el7.x86_64
  • 20. v0.5.0での対応予定 • CVSS Version3対応 • NVD、JVNはサイト上では、CVSSv3のデータを表示していたがXMLデータ内に v3に関する内容が含まれていなかった。 • RedHatのOVALは、2017年1月以降のCveについては全てv3のデータだけに 変わった。 • CVSSv2とv3では、スコアの算出ロジックが全く異なる。v2とv3で比較しても意 味がない。 • NVD • 2017年7月〜 JSON形式にてβ版データ配信開始 • JVN • 2018年2月〜 今までのデータにv3のデータも含まれるようになった
  • 21. v0.5.0での対応予定 • CPEバージョンマッチング • これまで⇨ CPEの文字列完全マッチング • バージョン違いは検知できなかった • CPEの登録はベンダーによって登録運用が違う
 (CPEの登録がベンダー主体で実施) • ベンダー1:該当するバージョン別にCPEを全て登録 • ベンダー2:v1.00以上v2.00以下、v1.00より大きいv2.00より小さい • Added four new properties to the "cpe" object to assist in defining ranges
 versionStartIncluding
 versionStartExcluding
 versionEndIncluding
 versionEndExcluding • 以上、以下、より大きい、より小さい を区別して検知可能に
  • 24. vuls discover • CIDRを指定することで、ICMPに反応のあったアドレスをconfig.tomlに作成して くれる。 • https://vuls.io/docs/en/usage-automatic-discovery.html • vuls discover 10.11.0.0/22
  • 25. vuls report —diff • 「前回」との差分だけレポートしてくれる。 • 実演
  • 26. vuls report -cvss-over=7 • 特定のスコア以上だけを表示 • 実演
  • 27. vuls report -ignore-unfixed • NotFixYetを除外する。
  • 30. インターネットから隔離された環境での運用 • 各サーバは直接インターネットに出れない環境 • ローカルリポジトリを用意 • 必要なときだけリポジトリアクセスを許可 • 実事例:ラクスル • https://tech.raksul.com/2017/09/04/setup-vuls/