TOP>コラム一覧>Security Hubの運用を考える①

Security Hubの運用を考える①

はじめに

こんにちは、園田です。
AWS利用において、「セキュリティについてきちんと管理したい。」とか「クラウド特有のリスクってどんなのがあるのかな。」などのお悩みがあるかと思います。
で、AWSでセキュリティ対策といえば1番最初にあがるのが「Security Hub」ではないでしょうか。お客様の中でも有効にしているものの、実際にきちんと運用が出来ているというお客様は案外少ないのではないでしょうか。

実際、セキュリティ運用というのは結構難しいと思いますし、とりあえず入れてみたけれどその後は、というケースも見られます。
セキュリティ製品は導入することよりも「運用」をきちんと回すことの方が重要であるため、導入する際にどのレベルであれば運用可能か、またどのような運用するのか(だれが管理する、いつまでに対応する、など)をきちんと検討しておく必要があります。

Security Hubってどんな内容が検知できるの?

Security Hubの検知内容ですが、実際にどのような内容を検知するか実際に見てみましょう。
Security Hubでは、以下の4つのセキュリティ基準が用意されています。(2023年8月現在)

  • AWS 基礎セキュリティのベストプラクティス(v1.0.0)
  • CIS AWS Foundations Benchmark(v1.2.0 or v1.4.0)
  • NIST Special Publication 800-53(Revision 5)
  • PCI DSS(v3.2.1)

これらの基準から1つ、または複数選択することが可能です。
(すべてをチェック対象にすることも出来ます。)

Security Hubの検知できるセキュリティ基準

とはいえ、何か明確にこの基準を満たす必要があるという条件が無ければ、とりあえず「AWS 基礎セキュリティのベストプラクティス」を実施しておけば問題ないでしょう。
(そもそも明確にこの基準というのがあれば、運用に悩むことなどないでしょう。)

「AWS 基礎セキュリティのベストプラクティス」についてはAWSを使う上でリスクをある設定等を実施していた場合、アラートを出してくれるものです。現状お客様のセキュリティルールについてはオンプレミスを対象としており、クラウド特有のセキュリティリスクに対しては対応できていない。というようなお客様にはかなりマッチする内容ではないでしょうか。

というわけで具体的にどのような項目をチェックするのかを見ていきましょう。

「AWS 基礎セキュリティのベストプラクティス」にて「有効化」をクリックし、セキュリティ基準を有効化したのち、「結果を表示する」をクリックすることで、「AWS 基礎セキュリティのベストプラクティス」がチェックしている内容をダウンロード可能です。

ダウンロード画面(ダウンロードをクリックするとチェック項目がダウンロードできます)

csv形式でダウンロードできますので、どのような項目があるか見ていきましょう。

実際にダウンロードしたファイルをExcelで開いた場合の例

上記の画像を見てもらえれば分かるかと思いますが、Security Hubには「重要度」というものが存在します。重要度は「重要」、「高」、「中」、「低」となって、基本的には「重要」が最も危険度が高いと認識して貰って間違いありません。

重要度の定義はこちら

  • 重大
    → この問題は、さらに悪化しないように直ちに修復する必要があります。

  • → この問題は短期的な優先事項として対処する必要があります。

  • → この問題は、中期的な優先事項として対処する必要があります。

  • → この問題には、独自のアクションは必要ありません。

〇参考
https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/controls-findings-create-update.html

Security Hubで重要度が高いもののみを通知する

運用においてはまずはできる所から確実にやっていきたいものです。
Security Hubの検知項目には重要度があると記載しましたが、いきなり全ての項目に対応するというのはかける労力に対し、あまりにもメリットが少ないです。なので、とりあえず重要なアラートから対応するというのが一般的かと思います。

重要という意味では「重要度の定義」にて記載した「重要」、および「高」がそれにあたると考えます。運用では検知しただけではなく、きちんと通知する必要があります。
(通知設定を実施しないと、都度マネジメントコンソールを見ないと検知したかどうか分からないです。)

という訳で、まずは重要度が「重要」、および「高」のアラートのみ通知するという事をやってみたいと思います。実施手順は以下になります。

1.EventBridgeにて「ルール」のタブから「ルールを作成」をクリック

2.名前に任意の名前を入力。「イベントパターンを持つルール」を選択し、「次へ」をクリック

3.「イベントパターンを構築」にて以下の通りのjsonを記載

            {
                "source": [
                  "aws.securityhub"
                ],
                "detail-type": [
                  "Security Hub Findings - Imported"
                ],
                "detail": {
                  "findings":
                    {
                      "Compliance": {
                        "Status": [
                          {
                            "anything-but": "PASSED"
                          }
                        ]
                      },
                      "Severity": {
                         "Label": [
                           "CRITICAL",
                           "HIGH"
                         ]
                      },
                      "RecordState": [
                        "ACTIVE"
                      ]
                    }
                }
            }              
        

4.ターゲットにてSNSトピックを選択し、「次へ」をクリック

5.確認画面にて「ルールの作成」をクリック

上記の設定にて重要度が「重要」、および「高」のアラートのみ指定したSNSトピックに飛ばすことが可能です。Securityのlabel項目について「CRITICAL」、「HIGH」としていますが、「HIGH」を削除すると「重要」の項目のみ通知可能、「MEDIUM」を追加することで「中」の項目について通知が可能です。

Security Hubで検知する内容を分類する

重要度が「重要」、および「高」のものだけ通知する設定を実施しましたが、実際にどのようなアラートが出た際に、どのような対応をするのかを定義しておかないと迅速に対応が出来ません。

とはいえ、通知と同じくすべての項目について定義を行うのは効率が悪いですし、アラートの内容は適時追加されるため、内容をすべて把握することはあまり意味がありません。とはいえ、チェックされる内容の傾向を見ることは必要です。

というわけで、ダウンロードしたcsvファイルから重要度が「重要」、「高」のものを見ていきましょう。

重要度が「重要」、および「高」(かつ、EC2、RDS、IAMのみ)

2023年8月時点で「重要」、「高」の項目は56個ありました。56個全部を見ていくのは大変なので、皆さんのなじみの深いEC2、RDS、IAMに絞ってみました。さらに分類のため、EC2のみを挙げてみます。

EC2の項目

  • 1.EBS スナップショットはパブリックに復元可能ではありません
  • 2.セキュリティグループは、許可されたポートのための無制限の着信トラフィックのみを許可する必要があります
  • 3.セキュリティグループは、リスクが高いポートへの無制限アクセスを許可してはなりません
  • 4.VPC のデフォルトのセキュリティグループはインバウンドトラフィックとアウトバウンドトラフィックを許可しない必要があります
  • 5.EC2 Transit Gateway は、VPC アタッチメントリクエストを自動的に受け入れることはできません
  • 6.EC2 launch templates should not assign public IPs to network interfaces
  • 7.EC2 インスタンスでは、Instance Metadata Service Version 2 (IMDSv2) を使用する必要があります
  • 8.EC2 インスタンスにはパブリック IPv4 アドレスを使用できません

上記8項目ですが、以下のように分類できるかと思います。
(6と8は一緒のことを言っているので本ブログでは8に統合するものとします。)

分類パターンはあまり多くなっても大変なので以下の4つぐらいにしておきましょう。
ちなみに今回は例のためEC2のみで記載していますが、全サービス同様に分類可能です。

分類パターン(案)

パターン 対応内容 No 詳細説明
A 基本早急に復旧対応を実施する必要があるもの
ただし、状況に応じて例外的に許可する必要のあるもの
2
3
基本セキュリティグループについてはHTTP、およびHTTPSのみ0.0.0.0/0(ALL)から解放可能であり、それ以外のものについてはソースIPを制限する必要がある。
ただし、サービス仕様上、どうしてもそれ以外のポートの解放が必要な場合安全性を確認したうえで、例外的に許可するかどうかの判断を実施する必要があり。
B リスクが高いため、実施してはいけないもの。早急に対応が必要 1
5
情報漏洩の危険性があるため、早急に対応が必要なもの。
C 可能であれば対応したいが、アーキテクチャ上対応が難しい場合があるもの 8 踏み台などでグローバルIPを設定する必要があるなど、設計上回避が難しいもの。こちらも例外対応が必要なる。 改善することが望ましいが、パターンAにてセキュリティグループが設定されているため、早急に対応は不要という判断。
D スケジュールをたて改善計画を実施するもの 4
7
現状の設定に変更が発生する。サービス断発生の可能性があるため、スケジュールを立て対応を実施するもの。

それでは、それぞれを詳しく見ていきましょう。

パターンA

基本的にはアラートが出た際に早急な対応を実施する必要があるものとなります。
EC2の場合、セキュリティグループについて特定のポート(HTTP、HTTPS)以外をグローバル(ソース「0.0.0.0/0」)に公開した場合が該当します。
基本セキュリティグループを全開放するとOSやミドルウェアの脆弱性を突かれ、外部からの侵入を許してしまいます。特にAWSのようなクラウドサービスについては、グローバルIPのレンジが公開されているため、常に悪意のあるBotがネットワークをスキャンしており、解放後すぐに攻撃を受けてしまいます。(個人的な体感ですが、少なくとも30分以内には攻撃を受けます)

そのため、非常にセキュリティリスクが高く早急に対処すべき内容となります。
ただし、どうしてもサービス提供上の理由からこのセキュリティグループについては、XXXポートをグローバルに公開したいという要件も発生する可能性があります。(本音を言えばそんな要件は作らないで欲しいです。)
なので、どうしても要望があった場合は、管理者が事前に審査し、許可するといった例外運用が必要にあります。

この許可の例外運用については後のページで記載します。


パターンB

そもそもそんな設定をする状況が設定ミス以外にないと考えられるものとなります。
そのため、パターンBについては検知次第、早急に対応(設定を削除する)という運用を実施する必要があります。

このパターンについては、SCPにて操作を禁止するという事が出来ればそもそも検知後の運用も発生しないので運用としては非常に助かります。
SCPについては、以下を参照ください。

AWSでマルチアカウント管理を考える(SCPでガードレールを作ろう①)

AWSでマルチアカウント管理を考える(SCPでガードレールを作ろう②)

ちなみに「5」については「特定の管理者のみをTransit Gatewayを操作可能。」のSCPを設定すれば良いかと思います。


パターンC

可能であれば対応したいが、アーキテクチャ上対応が難しい場合があるものになります。
EC2の場合であれば、「EC2にグローバルIPを付与しない」という事になりますが、こちらは踏み台運用が必要な場合は、グローバルIPが必要になります。

これを回避するためには「AWS Systems Manager Session Manager」を利用するとか、踏み台の代わりにWorkSpacesを利用するとか回避方法はありますが、そもそも踏み台用意したほうが便利だよね。ということで、サーバにグローバルIPを付与したいという要件が発生すると認識しています。

なので、こちらはXXXの用途に限り、グローバルIPの利用を許可するという形で例外対応が発生します。
本例外対応についても後のページで記載します。


パターンD

設定変更した方が良いので設定変更しましょう。という項目になります。
とはいえ、早急に対応が必要ではないためスケジュールを調整して対応しましょう。という項目となります。

IMDSv2であれば、セキュリティガイドに手順を定めておき、実施させるという方法が良い気がします(※)。また、VPC のデフォルトのセキュリティグループについても必ず削除するようガイドに定めておけば運用が発生せず、良いかと思います。(なるべくアラートが出てからの運用は少なくするよう工夫することが重要)

※EC2のIMDSv2への変更については、これまでCLIのみでしたが、2023年8月現在、GUIからも操作可能となっています。EC2を選択→アクション→インスタンスの設定→インスタンスメタデータオプションの変更から操作が可能となっています。
ただ、この変更については新規のインスタンスであれば問題ありませんが、既存のインスタンスの場合、AWS CLIとAWS SDKのバージョンアップが必要な場合もあります。

詳細はこちらを参照ください。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/use-a-supported-sdk-version-for-imdsv2.html

ちょっと長くなってしまったのでいったんここで切らせていただきます。
次回、「Security Hubの運用を考える②」できちんとした運用について記載させていただきます。
(前提が多いため、運用までたどり着けませんでした…。)

Security Hubの運用を考える②

CTCは、AWSのビジネス利活用に向けて、お客様のステージに合わせた幅広い構築・運用支援サービスを提供しています。
経験豊富なエンジニアが、ワンストップかつ柔軟にご支援します。
ぜひ、お気軽にお問い合わせください。

お問い合わせ

【著者プロフィール】

園田 一史(そのだ かずし)

伊藤忠テクノソリューションズ株式会社 クラウドアーキテクト

AWSの導入・運用支援サービス「CUVIC on AWS(キュービック オン エーダブリューエス)」の運営を担当。大規模DCのNW設計・構築、また国産IaaS型クラウドサービスの企画・導入・設計を歴任。物理・仮想基盤の設計、構築経験を活かし、AWSの導入・構築の支援をサポート。2019年~2022年APN Ambassadorに選任。

園田 一史(そのだ かずし)

TOP>コラム一覧>Security Hubの運用を考える①

pagetop