100%

AWSにおけるセキュリティツールまとめ

AWSにおけるセキュリティツールまとめ

概要

Powered by AWS Cloud Computing

この記事はAWSにおけるネイティブサービスのうち、AWS セキュリティに関するネイティブサービスをまとめた記事になります

AWSには様々なセキュリティサービス、機能が提供されており、常に更新されております
その中で主に使うサービスについて、簡単に紹介したいと思います

各種サービスの説明の前に、NIST CSFではどこに判別されるのかを確認していきたいと思います

NIST CSF(” Cyber Security Framework”)はNIST(アメリカ国立標準技術研究所)が米大統領例13636号の発令を受けて発表されたフレームワークです

AWSでは以下のホワイトペーパーでNIST  CSFに関するまとめを行っております
参考: https://d1.awsstatic.com/whitepapers/compliance/JP_Whitepapers/NIST_Cybersecurity_Framework_CSF_JP.pdf

以下に示す図はNIST CSFでの分類になります

NIST CSF

基本的なAWSのセキュリティサービスは、識別と防御、検知に相当するものがほとんどになりますので、そこに絞って紹介致します
対応、復旧については使う事ができるソリューションはもちろんAWSには存在しますが、本記事ではスコープ外とさせていただきます

本記事で紹介するAWSのセキュリティ関連サービスは、上記の図の分類に従うと、以下のように分類されます

NIST CSFの分類とAWSのセキュリティサービス

上記を見ていただくとわかりますが、AWSでは復旧を自動で行うサービスは提供されていないということです
復旧を自動化するのであれば、別途LambaやCloudwatch等を用いて、セキュリティオートメーションと呼ばれているような、自動で脅威を排除するように自分たちで設計する必要があります
本ページではスコープ外なので、セキュリティオートメーションについては触れません
基本的にセキュリティで対応を行う場合、人間が柔軟に対応するか、予め決めておいた動作をスクリプト等で機械にやらせるかになるかと思います

また、Inspectorについては、識別と検知の部分に入れましたが、識別を定期的に行い、検知をした際にレポートも作成しますので、両方に入れております

それでは各種サービスについて個別に見ていきましょう

IAM

AWSのアカウントを作成した際に、一番最初に触るといっても過言ではないネイティブサービスです
AWSのセキュリティベストプラクティスでも、AWSアカウントのルートユーザには、MFAの有効化が推奨されています
参考: https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html

また、一つのAWSアカウントを一人のユーザが利用するというのは稀だと思います
この際も、ユーザごとにログインアカウントを発行する必要がありますが、これを行うのもIAMです

IAMで作成したユーザには、個別の権限を付与できますが、この権限は常に最小のものを付与するのが通例です
AWSのセキュリティベストプラクティスでも、ポリシーに完全なすべての権限を付与することは推奨されていません
参照: https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#fsbp-iam-1

WAF

Shield

AWS WAFはCloudfrontやApplication Load Balancerと連携して、Webリクエストをフィルタリングすることで、CloudfrontやApplication Load Balancerの背後にあるアプリケーションの保護を行います
基本的にはAWSから提供されるManaged ruleというルールを用いてフィルタリングを行い、必要に応じてカスタムルールを作成することで例外的な処置等を行います
AWS WAFでは検知されたものに関しては、検知されたルールにより攻撃ペイロードが推測できますが、その攻撃がブロックされなかった際のレスポンスのBodyを確認することはできません

AWS ShieldはAWS WAFのACL(アクセスコントロールリスト)を用いることで、DDoSの緩和を行ってくれるソリューションになります
AWS Shieldには、StandardとAdvancedが用意されており、Standardは無償で利用することができます
ただし、Standardでは通知やDDoSの内容について参照することができず、また個別アプリケーション(EC2やS3など)を保護できないので、これらの機能が必要な場合はAdvancedを使うようにしてください

VPC

Amazon VPCはキュリティネイティブサービスではありませんが、次に紹介するAWS Network Firewallに必要なため、簡単に説明します

Amazon VPC(Virtual Private Cloud)であり、ネットワークを作成する際に、仮想的にプライベートネットワークを構築できるサービスになります
通例的には、1VPCで一つのサービスを作成することになりますが、サービスによって可用性をもたせたり、冗長性を高めたりするために、複数VPCでリージョンにまたがって構築することもあります
VPCにはネットワークACLや、ルーティングの制御が行える機能がありますので、セグメント間の通信を制御することもできます

AWS Network Firewall

名前からFirewallだと思う方もいらっしゃるかと思いますが、こちらはFirewallというよりは、IPSという位置づけの方がわかりやすいかと思います
IPベースの制御だけでなく、トラフィック内部を専用サブネット内で確認して、検閲してくれます
ただし、利用できるリージョンに東京リージョンは含まれておりません(2021年末現在)

KMS

AWS KMS(Key Management Service)はAWS内部で作成した暗号化キーを管理することができるサービスです
このキーを用いて、AWS上のデータを暗号化することもできます
たとえば、データを暗号化する際にこのKMSに保存されたキーを用いることで暗号化を行うことができます
加えて、このキーをローカルに保存して暗号化を行うといったことがないので、キーの流出リスクを減らすこともできます

Cloudwatch

Amazon Cloudwatchも、AWSの初期から存在するサービスで、ログなどの情報を元に、様々なアクションを行うことができるサービスになります
基本的には、AWS上のアプリケーションをCloudwatchが監視し、メトリクスと呼ばれるログを収集して、メトリクスの内容をまとめたり、メトリクスの値等に合わせて通知を送信することができます
そのため、セキュリティ的に利用することも可能です

たとえば、EC2インスタンスの料金監視を行い、しきい値を超えた際にアラートが出るように設定しておけば、不正なインスタンスが作成されたことを検知することができます

上記の例だと、下記に紹介するConfigを用いて検知することも可能です

Cloudwatchは収集したメトリクスに対して、細かく通知ルールや連携を行うことができるので、セキュリティオートメーションでも用いることができます

Config

AWS Configは、設定した内容からAWSのリソースや設定が逸脱していないか、変更されていないかを監視することができるサービスです
予めConfig Ruleで監査したい内容を設定しておき、その設定からずれたり、新しくリソースが建てられたりした際に検知することができます
検知まではできますが、個別に通知を行うことができないので、通知を行う際にはCloudwatch等の別のサービスを利用することになります

上のCloudwatchの部分で例にあげたEC2インスタンスが新規作成された際に通知するのもルールで決めておけば、検知することができます
また、IAMユーザアカウントが作成された際に2段階認証が有効化されていない場合アラートを出したり、SSHやMYSQLなどグローバルに露出してほしくないPortを開放しているセキュリティグループがあればそれを検知するなどのルールも作成することができます

CloudTrail

AWS CloudTrailはユーザのアクティビティと、APIの使用状況の追跡が可能なサービスになります
俗に言うAudit系のサービスになります

ユーザのログインから、コンソール上でだれが、いつ、どこで、なにをしたかを記録してくれます

そのため、基本的には何かしらのインシデントがあった際の証跡調査に用いられることが多いです
有効化してからの情報取得ができないので、アカウントを作成した際に予め有効化しておくことをおすすめします

Inspector

Amazon InspectorはAWS上のEC2,ECRに対して脆弱性スキャンを行うことができるサービスです
ここでいう脆弱性スキャンは、アクティブなペネトレーションテストではなく、内部にインストールされているソフトウェア情報から脆弱性が報告されているバージョンがあるかどうかを確認するものになります

そのため、基本的に自社で制作したアプリケーションの脆弱性診断を行えるわけではありません

脆弱性の診断はリアルタイムで行われるわけではなく、任意の時間にタスクをスケジュールしておき、定期的に実行され、レポートが作成される形で、スキャンが実施されます

OpenSearch Service

Amazon OpenSearch Serviceはログ分析を行うことができるサービスです
セキュリティ製品のログは大量になることが多く、それをクエリ等で柔軟に検索する必要があり、そのため簡単に紹介します

もともとOpenSearch ServiceはElasticSearchとして存在しており、名前が変更されてOpenSearch Serviceになっております
セキュリティ的なログを収集し、グラフで可視化することで、視覚的にログ量がおかしい日や、インシデントが発生した際のログ量のスパイクに注目し、より詳細な分析を行うために用いることができます

Guardduty

Amazon GuardDutyは、AWS上のログを自動的に収集し、危険な兆候があれば、それを検知し、警告を出したり修正をしたりすることができるサービスです

イベントのソースとして収集されるのは、Cloudtrail、VPCフローログ、DNSログになります
VPCフローログはVPC内部の通信を可視化するもので、GuardDutyを有効化すると、バックグラウンドで自動的に有効化されて収集されます
DNSやCloudtrailのログも収集されます

このログを参考に、機械学習やパターンマッチング等のAWSが用意したルールに基づいて、脅威を検知します

EC2インスタンスから、仮想通貨のマイニングプールへの通信の検知や、CloudtrailのS3データに通常通信とは違う場所から、Getリクエストが来た際にも検知が行われます

Detective

Amazon DitectiveはAWS上のセキュリティサービスからログを収集し、自動的に分析し、まとめてくれます

そのため、セキュリティ管理者が複数のAWS上のセキュリティサービスにアクセスせずに、検知結果や監査結果、アラートなどにアクセスしやすくなります

Ditectiveが集めた各種サービスのデータや通知に対して、ドリルダウンを行う事できるので、更に詳細に調べることもできます

OpenSearch Serviceと違うのは、Ditectiveは有効化するだけで自動的に集めてきてくれるのに対して、OpenSearch Serviceは自分で設定を行ったり、クエリを発行したりしなければならない点があげられます

Security Hub

AWS Security Hubは2019年にDitectiveに統合されたサービスで、以前はセキュリティ関連のサービスのログの収集を自動で行い、分析するサービスは、Security Hubが行っておりました

統合されてからは、この収集をしたあとにDitectiveと連携することで、Ditective側でさらに詳細な分析を行うことができるようになりました

Security HubとDitectiveでは収集するソースサービスが違います

たとえばCloudtrailはSecurity Hubでは収集されず、Ditectiveで収集されます
詳細についてはAmazonの公式ページを参照してください
参照1: https://aws.amazon.com/jp/detective/ 
参照2: https://aws.amazon.com/jp/security-hub/

まとめ

以上、AWSのセキュリティに関するサービスについて簡単に解説いたしました
AWSは常に改善されており、ここに記載しているサービス以外のセキュリティ製品や、機能も更新されております
各種サービスを使えば、より安全にAWSを用いたサービス提供ができるでしょう

また、サイバープロテックでは、サイアカという教育プラットフォームを運営しており、セキュリティに関するコースを提供しております
https://cyberprotec.jp/

AWSについても一部取り扱っておりますので、更に詳細に学びたい方は、コースの受講をご検討ください