エンジニア

AWSを使って脆弱性検査を行う

投稿日:

こんにちは、サーバーエンジニアの土井です。

サーバーエンジニアのみなさん、脆弱性対策どうしてますか?

私がこれまで経験したことのある対策は、こんな感じでした。

  • 外部の会社に調査を依頼
  • CVEとかJVNとかを定期的にチェックして、思い当たる所があったら調査する
  • OSやソフトウェアの管理台帳を作り、CVEと照らし合わせて調査する
  • 脆弱性スキャナを使って定期的にチェックする

AWSには、脆弱性検査をするためのマネージド・サービスがあり、それを使えばかんたんに検査ができちゃいます。

  • 今回対象となる脆弱性

    • OSやミドルウェア自体の脆弱性
    • OS設定、ルーティング設定
  • 対象とならない脆弱性

    • アプリケーション自体の脆弱性(SQLインジェクション、CSRF等)

Amazon Inspector

https://docs.aws.amazon.com/ja_jp/inspector/latest/userguide/inspector_introduction.html

Amazon Inspectorでは、EC2に対するネットワーク設定の妥当性や、インスタンスで実行されるアプリケーションのセキュリティを検査できます。

  • 評価項目
    • Network Reachability
      • ネットワークが到達可能かを検査する
      • ポートやセキュリティグループ設定のミスを見つけることができる
    • 共通脆弱性識別子
      • CVEのリストに乗っている脆弱性が無いか検査する
    • Center for Internet Security (CIS) ベンチマーク
      • CIS セキュリティベンチマークを行う
    • Amazon Inspector のセキュリティのベストプラクティス
      • Amazonのセキュリティベストプラクティスに則っているかの検査を行う

これらを組み合わせて使用できます。

設定

Amazon Inspectorのページから、「評価ターゲット」「評価テンプレート」の順で作成します。

  • Inspectorページ

  • 評価ターゲットの設定

All Instancesにチェックを入れると全てのEC2インスタンスに対して実行します。
チェックを外すとタグ指定したインスタンスにのみ実行。なんかもできます。

  • 評価テンプレート

さきほど作成したターゲットを選択し、実行したいルールパッケージを選んでいきます。

作成が終われば、テンプレートを選択し、実行することができます。

実行

  • 評価の実行

  • 結果

結果は、重要度別に表示してくれます。
詳細を見てみると、どういう対処をすべきかなどのアドバイスも書いてくれています。

コンテナイメージの脆弱性検査

https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/image-scanning.html

ECS等を利用している場合、Amazon Inspectorでは脆弱性検査ができません。
しかし、ECRにイメージのスキャナが提供されているので、そちらで代用できます。

  • 評価項目
    • CVEのリストに乗っている脆弱性が無いか検査する
      ※あくまでコンテナイメージの検査なので、ネットワーク等の評価項目はありません。

設定

ECRのページにより、pushしているイメージを選択し、右上のほうにある「スキャン」ボタンがあるのでそれを押すだけです。

実行

Inspectorと同じように、重要度やアドバイスなども記載があるので、それを見つついい感じに対処していくと良いでしょう。

さいごに

CloudwatchEventやChatbotを使い、これらの検査の定期実行&レポートを行えば、これまで個々人の努力と経験により行っていた脆弱性検査を、ある程度自動化できると思います。

しかし、あたりまえの話ですが毎秒検査を行うわけにはいかない都合上、速報ベースの脆弱性情報は、次の実行タイミングまでひっかかることはありません。
ですので、脆弱性情報にアンテナを張り続けることは、これからも重要だと思います。

また、オープンソースの脆弱性スキャナ(ClairやValus)を使えば、似たようなことはできます。

しかしそれでもAWSのサービスを使う理由としては
-マネージド・サービスになっているので、スキャナ自体のメンテは不要

  • 通知や定期実行などのAWSのサービスと親和性が高い
  • とにかく設定がかんたん
    などの理由があります。

最後まで読んでいただきありがとうございます。

採用情報

ワンダープラネットでは、一緒に働く仲間を幅広い職種で募集しております。

-エンジニア

© WonderPlanet Inc.