Amazon InspectorでCVEを診断して脆弱性へ対応する

診断方法は下記を参考に行ってください。

初心者でも簡単にできるAmazon Inspectorによる脆弱性診断

ここでは、ルールパッケージに「Common Vulnerabilities and Exposures(共通脆弱性識別子)」を選び、CVEで報告されている問題点を改善する方法をお伝えします。

共通脆弱性識別子について

今回チェックする共通脆弱性識別子とは、個別製品の脆弱性を対象として、米国政府の支援を受けた非営利団体、MITRE社が発行している番号です。

個別ミドルウェア、ソフトウェアの脆弱性の報告を受けると、それに対して個別に「CVE-2007-5000」のように番号を発行します。

この番号を見れば、どのような脆弱性で危険度はどれくらいのものなのかを把握する事ができます。

CVE公式サイト

Inspectorでは、共通脆弱性識別子に登録されている脆弱性が無いかを確認し、問題がある場合には番号を確認することができます。

チェック内容に登録されている項目は毎日更新されるため、定期的に実行することで最新の脆弱性まで確認することができます。

また、発見するだけではなく解決策も提示してくれるため、その手順を踏むことでサーバーをセキュアな状態に保つ事ができます。

報告されている脆弱性の診断を行う

ここからは実際にamazon linux2のサーバーを用いてAmazon InspectorによるCVEに登録されている脆弱性の診断を行い、結果から改善を行ってみます。

最新版のamazon linux2を起動し、起動直後のインスタンスに対して、実行しました。

(使用したのは、Amazon Linux 2 AMI (HVM), SSD Volume Type – ami-08847abae18baa040です)

AMIが出てから発見されたのもあるため、検知してくれるかと思いきや0ですね。

amazon linux2では、初回起動時に自動的にアップデートがかかり、重要な項目に関して対策されます。

Amazon Linux Security Center

今度はAMI配布時~現時点の更新をOFFにして起動して、同様の診断を行います。

今度は1件が表示されました。

このように、直後のアップデートを抑止すると、あたっていないパッチがあるため脆弱性が発生します。

次に検知した項目の対策を行います。

検知した脆弱性の対策を行う。

上の診断で検知した脆弱性の対策を行う前に、まず結果から詳細を確認します。

結果の項目にCVE-2018-10897とあります。こちらが報告されている番号になります。

CVEの公式サイトより検索をかけてみると、以下の表記が。

CVE-2018-10897

A directory traversal issue was found in reposync, a part of yum-utils, where reposync fails to sanitize paths in remote repository configuration files.

yum-utilsの脆弱性のようですね。

Inspectorの対処の部分にも

Use your Operating System's update feature to update package yum-plugin-priorities-0:1.1.31-45.amzn2.0.1, yum-utils-0:1.1.31-45.amzn2.0.1

と書かれていることから、該当のパッケージをアップデートすればよいことがわかります。アップデートを行って、検知しなくなるかを確認してみましょう。

# yum update yum-plugin-priorities yum-utils -y
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Updated:
  yum-plugin-priorities.noarch 0:1.1.31-46.amzn2.0.1                            
  yum-utils.noarch 0:1.1.31-46.amzn2.0.1                                        

Complete!

アップデート後に再度診断を行った結果が以下です。

結果の項目が0になり、脆弱性の対策ができたことがわかります。

まとめ

CVEのルールでは、パッケージ管理ソフトで監視しているミドルウェアの脆弱性の診断が可能です。

CVEに報告されている脆弱性は頻繁に更新されるため、定期的に診断を行うようスケジューリングし、確認することでインスタンスをセキュアな状態に保つことができます。

また、スケジューリングせず単発でも診断できるので、話題の脆弱性、たとえばHeartbleed(CVE-2014-0160)など

CVE番号からクリティカルなものの対策ができているのかを確認することもできます。