これは何?
Amazon Inspectorにおける EC2の脆弱性検出において、エージェントベーススキャンだと検出されなかったアプリケーションのパッケージ脆弱性が、エージェントレススキャンで検出されたため、原因を調べた時のメモです。
結果が異なる原因
以下公式ページの注意点に書いてありました。
Linuxインスタンスでアプリケーションプログラミング言語パッケージの脆弱性をスキャンする際、エージェントレス方式ではすべての利用可能なパスをスキャンしますが、エージェントベースのスキャンではデフォルトのパスと、Amazon Inspectorのディープインスペクションの一環として指定した追加パスのみをスキャンします。このため、同じインスタンスでもエージェントベース方式とエージェントレス方式でスキャンされた場合、異なる結果が得られる可能性があります。
エージェントベーススキャンでは、デフォルトでは以下のパスがスキャンされます。
- /usr/lib
- /usr/lib64
- /usr/local/lib
- /usr/local/lib64
これらのパスのいずれにもアプリのパッケージが配置されていなかったため、エージェントスキャンでは脆弱性が検出されず、結果が異なったようです。
対処方法
カスタムパスを設定することで、エージェントスキャンでスキャンするパスを追加することができます。
設定手順
- Inspectorコンソールの左のタブメニューから
全般設定→EC2 scanning settings をクリック - Custom paths for your own account の編集をクリック
- 追加するフォルダを設定する。ここに設定したフォルダ以下のファイルが、スキャン対象に追加される。
- アプリ配置先をパスに追加する。例えば
/home/ubuntu
とすると、 /home/ubuntu 以下の全てのファイルがスキャン対象に追加される
Deep Inspection では、インスタンスあたりのパッケージ数の上限が 5,000 個、パッケージインベントリ収集の最大時間は 15 分に設定されています。カスタムパスを適切に設定することで、これらの制限を回避することが推奨されます。
まとめ
公式ドキュメントはしっかり読むべきですね。