ついこの間までは、Amazon Web Services でセキュリティのサービスを利用できるのを知りませんでした。
たまたま私が参考にしている攻略本では、脆弱性検査するためには申請が必要で、事前に計画していないと問題になるとあったので、脆弱性検査を行う仕組みなどないんだと勝手に思っていましたが、調べるとかなり充実しているので感服いたしました。

AWSセキュリティ機能

AWSマネジメントコンソールにあるメニューからひろうと、

「セキュリティ、アイデンティティ、コンプライアンス」のカテゴリに、以下の機能があります。

まるっと調べてみると、下の表で緑色でマークした機能がセキュリティの中心となる機能だと思います。
まず緑色機能を有効化することがまず始めにやることと思います。

 

AWS IAM IAMユーザがリソースを扱うために、認証、認可を行います AWSを運用始める時にまずユーザを登録します
Amazon Cognito Webアプリ、モバイルアプリに認証・認可・ユーザー管理の仕組みを構築。 Google、Facebook、Amazon、Appleなどの
IDプロバイダーを利用できる
Amazon Detective ログを自動収集し、AIを利用して潜在的なセキュリティ問題を調査 VPCFlowLogs、CloudTrail、GuardDuty などの複数のデータソースから経時的に統一する
Amazon GuardDuty 悪意のあるアクティビティや不正な動作を継続的にモニタリングする脅威検出サービス 機械学習、異常検出、統合脅威インテリジェンスを使用し、脅威を識別し、優先順位を付けます
Amazon Inspector 自動的にアプリケーションを評価し、脆弱性、標準仕様からの逸脱がないかどうかをチェックします。 ざっくり、EC2 インスタンスの脆弱性診断を自動で行ってくれるサービス
Amazon Macie 大規模な機密データを検出して保護する S3から機密ファイルを検出するサービス
AWS Artifact コンプライアンスレポートへのオンデマンドアクセス NDAなくても、各種コンプライアンスレポートがダウンロードできるサービス
AWS Audit Manager AWS利用状況の継続的な監査 コンプライアンス要件チェック&監査対応のためのエビデンスを管理
AWS Certificate Manager SSL/TLS 証明書のプロビジョニング、管理、およびデプロイメント
AWS CloudHSM コンプライアンスのためのハードウェアベースキーストレージ
AWS Directory Service Active Directory をホスティングおよび管理
AWS Firewall Manager ファイアウォールルールの一元管理
AWS KeyManagementService マネージド型の暗号化キーの作成と管理
AWS Network Firewall VPC保護のためのネットワークセキュリティ
AWS ResourceAccessManager AWSのリソースを共有するためのシンプルでセキュアなサービス クロスアカウントのリソース共有
AWS Secrets Manager 機密情報のローテーション、管理、取得
AWS Security Hub 統合された AWS セキュリティ & コンプライアンスセンター
AWS Shield DDoS 保護 L3、L4レベルのアクセス制御
AWS Single Sign-On クラウドシングルサインオン (SSO) サービス
AWS WAF 悪意のあるWebトラフィックのフィルタリング L3、L4、L7レベルのアクセス制御
  • 私は「Detective」と「GuardDuty 」の違いが良くわからなかったのですが、「GuardDuty 」は悪意ある通信による脅威を検出する機能で、「Detective」はその通信が、実際にリスクとなりうるものなのかを判断するための情報を提供するサービスです。

AWSセキュリティ機能のミソ!!

AWSセキュリティを攻略するポイントは、「AWS WAF」 と 「AWS Shield 」だと思います。

両方の機能とも、よりセキュリティの品質を高めなければならない場面では、有料のサービスメニューを用意しています。
そのサービス費用から推測しても、サイトの重要性や規模、ユーザのサクセス負荷が高くないのであれば、無料の機能でOKだと思います。

無料の機能から始めても、支障が出てきたのが明らかだったり、周囲からもっとグレードが高くなければ安心できないとの文句が出てくれば、有料メニューにあげることもユーザサイドの判断で容易です。

「AWS Shield 」であれば無料の「AWS Shield Standard」から、有料サービスの「AWS Shield Advanced」にグレードアップできます。

無料の守備範囲では、L3、L4レイヤレベルの通信しか扱えなかったのが、その上のL7レイヤまで扱うような動きになり、そのレベルでの攻撃検出、攻撃軽減や、対象レポートにも出力できるようになります。

そして、さらにポイントが高いのが、DRTサポート(DDoS Response Team Support)という、24時間365日の専門サポートが受けられるとのことです。

DRTサポートというのは、システムのリスクが表象した時点で、能動的にAWSからユーザに連絡が来て、サポートしてくれるようです。

「AWS WAF」であれば、「AWS WAF Marketplace」という仕組みがあります。

AWS WAF では、Webアプリケーションレベルでのセキュリティ攻撃に対応すべく、その攻撃パターンを設定する作業があります。

私はAWSが用意したテンプレートファイルを使って、Webアプリが良く受ける攻撃パターンをAWS WAF に設定してみましたが、やはり設定作業は敷居の高い作業だと感じました。

その場合に、「AWS WAF Marketplace」というAWS WAFのための、サードパーティが用意したサービスが用意されています。
最初から整備されたルールなので、提供元サードパーティのサポートを受けながら運用ができるということです。
WAFが影響したトラブル時の判断など、対応しやすくなると思われ、運用面での不安を軽減できると思われます。

AWSセキュリティ機能を使い始めるときに知っておきたいこと

もし、自分が運営するWebサイトが、AWSサービスで構築されていて、「セキュリティ強度をあげなくちゃ!!」と必要性を感じた時に、上記サービスをまるっと調査して、「では始めよう!!」となったとして、セキュリティ環境を俯瞰的に見て、その準備段階として、作業しなければならないことに次のような作業があると思われます。

  1. セキュリティ機能のためのIAMユーザを登録する
  2. AWS Organizations に参加する(複数のAWSアカウントを持っている場合)
  3. AWS Firewall Manager 管理者アカウントを設定する
  4. AWS CloudTrail を有効にする
  5. AWS Config を有効にする

AWSドキュメントを確認して、上記作業は設定始める前に「把握しておかなくちゃ!!」と思いました。

また、上記で挙げたミソとなる機能を有効にしていって、緑色の機能を一通り設定終わると、3~5日ぐらいすると、自サイトのセキュリティ評価が表示できるようになります。

※ 評価するためのデータが溜まるのに時間がかかるようです

最初にセキュリティスコアを見たときには、34%という低い評価にびっくりしたんですが、私が行った対策があります。

セキュリティ対策の進め方

私は次の順番でセキュリティ対策を実施しました。

  1. AWS WAF、Amazon GuardDutyなど、前述の機能を有効化する
  2. 攻撃受けているのがわかり、必要性が高い時は、Amazon GuardDuty で信頼されている IPリスト、脅威リストをメンテする
  3. Amazon Inspector の結果タブを展開した一覧の「結果」欄に、「CVE-20xx-xxxxx」のようなCVE番号が出力されるので、必要なプログラムのアップデートをEC2インスタンスに実施する
  4. Security Hub  セキュリティ基準タブから、評価したセキュリティ基準での問題点が一覧されるので、修復していく

以上のメインの作業となる3項、4項は、作業するための指標となる情報をAWSが用意してくれているので、そちらを参照する必要があります。

 

そして、SecurityHubでセキュリティ診断の結果を確認してみると、なんと最初は34%!! 衝撃の数値でした!!

しかしながら、AWSの情報などを頼りに、設定の変更や使っていなかったサービスの適用などを行って、1週間ぐらいかかりましたが、ついにセキュリティ診断100%を達成!!