
#+Title: CVE-2016-2118 インベントリと修復 #+SETUPFILE: ~/src/org-html-themes/setup/theme-readtheorg.setup
[[file:./media/badlock.png]]
このポリシーは、既知の脆弱なパッケージバージョンが現在インストールされているかどうかをチェックすることで、[[https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2118][CVE-2016-2118]](一般に[[http://badlock.org][Badlock]]として知られる)の影響を受けるホストを検出します。修復ポリシーは、=samba= を利用可能な =latest= バージョンに保ちます。
注: このポリシーは現在、centos 5 と 6 を対象としています。他のプラットフォームへの対応にご協力ください。
このポリシーは、伝統的な(しかしひどく書かれた)[[file:Makefile][Makefile]]を使用してインストールします。インストールするには、このリポジトリをクローンして、make install MASTERFILES=</path/to/policy_root> を実行するだけです。
例: #+BEGIN_SRC sh :results raw :wrap EXAMPLE make install MASTERFILES=/tmp/example-a10042 #+END_SRC
#+RESULTS: #+BEGIN_EXAMPLE mkdir -p /tmp/example-a10042/services/cfengine-CVE-2016-2118/cfengine-CVE-2016-2118 rsync -avz --exclude /home/nickanderson/vagrant/tmp/eia/CVE/masterfiles/services/cfengine-CVE-2016-2118/* /tmp/example-a10042/services/cfengine-CVE-2016-2118/ sending incremental file list Makefile README.org main.cf data/ data/centos_5.json data/centos_6.json media/ media/badlock.png
sent 19,776 bytes received 165 bytes 39,882.00 bytes/sec total size is 29,079 speedup is 1.46 find /tmp/example-a10042/services/cfengine-CVE-2016-2118/ -type f | xargs chmod 600 find /tmp/example-a10042/services/cfengine-CVE-2016-2118/ -type d | xargs chmod 700 #+END_EXAMPLE
ポリシーをポリシーセットにインストールした後、解析されるように入力を追加する必要があります。
CFEngine =3.7.3=、=3.8.1= 以上を実行している場合は、[[https://docs.cfengine.com/docs/master/reference-language-concepts-augments.html][augmentsファイル]]を使用して入力を追加できます。
例: #+BEGIN_SRC json { "inputs": [ "services/cfengine-CVE-2016-2118/main.cf" ] } #+END_SRC
** =inventory_CVE_2016_2118= このバンドルは、インストールされている samba のバージョンが、=data/$(sys.flavor).json= で定義された既知の脆弱なバージョンと一致するかどうかをチェックします(例:=data/centos_6.json=)。もちろん、パッケージマネージャー自体など、脆弱なバージョンを探すために使用できる他の方法もあります。
これはオートランバンドルです。そのため、[[https://github.com/cfengine/masterfiles/][Masterfiles Policy Framework]](CFEngine に同梱されているデフォルトポリシー)を実行している場合は、=services_autorun= クラスを定義するだけで済みます。
#+BEGIN_SRC json { "inputs": [ "services/cfengine-CVE-2016-2118/main.cf" ], "classes": { "services_autorun": [ "any" ] } } #+END_SRC
注: ポリシーが実行され、脆弱なホストを検出すると、レポートを出力し、=CVE_2016_2118= クラスを定義します。
例:
#+BEGIN_EXAMPLE R: Detected Vulnerability: CVE-2016-2118 #+END_EXAMPLE
CFEngine Enterprise ユーザーは、Mission Portal のインベントリレポートインターフェースに、新しい =Vulnerable CVE(s)= 属性が追加されたことを確認できます。
例:
[[file:./media/vulnerable_cves_inventory_attribute.png]]
[[file:./media/inventory_report_vulnerable_cves.png]]
[[file:./media/inventory_report_vulnerable_cves_chart.png]]
[[file:./media/define_alert.png]]
[[file:./media/alert_status_vulnerable_hosts.png]]
** =remediate_CVE_2016_2118= =remediate_CVE_2016_2118= もオートランバンドルですが、=remediate_CVE_2016_2118= クラスが定義されている場合にのみ実行されます。
自動修復が許可されるホストと時間帯を柔軟に表現する方法は多数あります。
=3.7.3=、=3.8.1= 以上を実行している場合は、[[https://docs.cfengine.com/docs/master/reference-language-concepts-augments.html][augmentsファイル]]に追加することで、インフラストラクチャ全体で有効にできます。
#+BEGIN_SRC json { "inputs": [ "services/cfengine-CVE-2016-2118/main.cf" ], "classes": { "services_autorun": [ "any" ], "remediate_CVE_2016_2118": [ "any" ] } } #+END_SRC
ポリシーは、=$(sys.flavor)= で識別されるシステムのフレーバーにちなんで名付けられた JSON データファイル(例:[[file:data/centos_6.json][=centos_6=]])内の、脆弱であることが知られているパッケージのリストを探します。