SlideShare a Scribd company logo
AWS Security
Little Deep Dive(SSRF)
2019年11月15日
自己紹介
 田中 隆博(たなか たかひろ)
 ユーザ系IT子会社にてインフラの運用、構築を担当
最近、管理職になって現場が恋しい
 一応、AWS Solutions Architect Associate取得
 ラーメン好き
はじめに
 本セッションでは、2019年7月29日に発表された米国、金融持株会社「Capital
One」で発生した個人情報漏えい事象を題材に、Server Side Request Forgery
(以下、SSRF)を利用したクラウド上のメタ情報の窃取手法とその影響につい
ての説明をします。
 本事例の時系列やSSRFの攻撃手法については、piyologさんや徳丸センセのブロ
グの情報を参考にさせていただいています。
参照先は、本資料の最後に記載しています。
本日のメニュー
 Capital Oneの漏えい事例
 SSRFとは
 クラウドのメタ情報とは
 OWASP Top10から見た今回の事例
Capital Oneの漏えい事例
 Capital Oneの2019年7月29日の発表では、2005年から2019年にかけてクレジッ
トカードの申請をした人など、計1億600万人分の個人情報が不正アクセスを受
けた。
 個人情報には、名前、住所、電話番号、電子メール、生年月日が含まれていた。
 クレジットカード番号自体は含まれていないが、クレジットスコア、上限、残
高、支払履歴は含まれていた。
 また、米国では14万人分の社会保障番号、クレジットカードに関連付けされた
8万人分の銀行口座情報、カナダでは100万人分の社会保障番号が漏えいした。
 Capital Oneは、AWSクラウド上にシステムを構築しており、今回の犯人は2015
年から2016年の間、SEとしてAWSに勤務をしていた。
Capital Oneの漏えい事例
日時 出来事
2019年3月22日、23日 Capital OneのAWS環境へ不正アクセスが発生。
2019年6月27日
女が自分のSlackチャンネルへ違法取得したDBとみ
られるリストを投稿。
2019年7月17日 Capital Oneへデータリークに関する情報提供。
2019年7月19日 Capital Oneが流出の事実を確認。
2019年7月29日 FBIが不正アクセス事件関与の女を逮捕。
同日 米司法省が女の逮捕を発表。
2019年7月30日 Capital Oneがインシデントを公表。
 以下にインシデントの発生から公表までの時系列を示します。
 インシデントの発生から公表までおよそ4ヶ月。
 インシデントの知得は、外部からの情報提供によるもので、Capital Oneが自発
的に発見したインデントではありませんでした。
AWS Cloud
SSRFとは
 Capital Oneの事例では、Server Side Request Forgeryという攻撃手法が利用さ
れ、S3バケットに接続するための認証情報が窃取されました。
 今回の攻撃フローは、下図の通りとなります。
EC2インスタンス
ISRM-WAF-Role
S3 bucket
(個人情報などを保存)
SSRF攻撃
独自運用のWAF
(Apache_mod_security)
①WAFを介してEC2メタデータ
(169.254.169.254)へアクセス
②IAM Roleの認証情報を取得
③認証情報を使用し、List Buckets & Syncコマンドを実行
700超のBucketへ
接続可能だった
mod_securityに設定ミス
EC2インスタンスからメタデータへの
アクセスは認証が不要
SSRFとは
 SSRF攻撃は、攻撃者からは到達できないサーバに対する攻撃手法の一種です。
 下図に示す環境では、公開サーバ(203.0.113.2)にアクセスすることは可能
ですが、内部サーバ(192.168.0.5)はファイアウォールにより隔離されてい
るため、外部から直接アクセスすることはできません。
 攻撃者が「何らかの方法で」公開サーバから内部サーバにリクエストを送信す
ることにより、内部サーバを攻撃できる場合があります。これをSSRF攻撃と呼
びます。
公開サーバ
(203.0.113.2)
内部サーバ
(192.168.0.5)
直接アクセス不可
http://hoge.jp/hoge.php?
url=http://192.168.0.5/news
SSRFとは
 例示したコードでは、urlパラメータで指定されたWebページをcurl関数を使っ
てHTTPリクエストし、画面に表示しています。
 アプリの仕様としては、ソーシャルブックマーク等でURLを指定することで画
面内にプレビュー表示をさせるといったものを想定しています。
ここにメタ情報へアクセスするための
URLを指定する
クラウドのメタ情報とは
 AWSには、EC2インスタンスからのみ接続できるインスタンスメタ情報が存在
します。インスタンスメタ情報には、利用しているAMI-ID情報、パブリック/
ローカルホスト名などが格納されています。
 前頁のようなWebアプリのパラメータとして下記のようなURLを設定すること
で、メタ情報に格納されているIAMロールの認証情報を取得することが可能に
なります。
/test.php?url=http://169.254.169.254/latest/meta-data/iam/security-
credentials/demo_ssrf_credential
クラウドのメタ情報とは
 ちょっとわき道に逸れて、AWS以外のクラウド事業者はどうなの?
基本的には、ローカルリンクIPアドレスでメタ情報を取得できるのは同じです。
…ただし、メタデータを取得する際、ヘッダー情報を付与する必要があり、こ
れがない場合にはメタ情報は取得できません。
 Microsoft Azureは?
Metadata: true ← この情報をリクエストヘッダーに含める必要あり
 curl “http://169.254.169.254/medatada” –H “Metadata: true”
 Google Cloud Platformは?
Metadata-Flavor: Google ← この情報をリクエストヘッダーに含める必要あり
 curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/" -H
"Metadata-Flavor: Google"
OWASP Top10から見た今回の事例
 今回の事例は、OWASP Top10を見た場合、どの項目に当てはまる事例だったのでしょうか。
 今回のポイントは「SSRF脆弱性を含んだWebアプリであったこと」、「mod_securityの設
定ミス」、「S3バケットに対するアクセス制御が不適切」、「外部からのS3バケットへの
アクセスがモニタリングできていない」の4点だと思われます。
OWASP Top10から見た今回の事例
 A5:2017 アクセス制御の不備
 今回の事例では、攻撃者に窃取されたIAMロールに過度なアクセス権が設定されてい
たと考えられます。
 「OWASP Top10 サーバレスの解釈」でも説明をしましたが、最小権限の原則に従え
ば、左のようなIAMロールの設定は不適切ですし、おそらく今回の事例でも同様の設
定がされていたと想定されます。
{
“version”: “2012-10-17”
“Statement”:[{
“Effect”: “Allow”,
“Action”: [“s3:*”],
“Resource”: [“arn:aws:s3:::*”]
}]
}
{
“version”: “2012-10-17”
“Statement”:[{
“Effect”: “Allow”,
“Action”: [“s3:PutObject”],
“Resource”: [“arn:aws:s3:::bucket-name/*”]
}]
}
このIAMロールでは、すべてのS3リソースに対す
る全操作を許可しています。
このIAMロールでは、特定のバケットに格納され
たオブジェクト取得の権限だけを許可しています。
OWASP Top10から見た今回の事例
 A6:2017 不適切なセキュリティ設定
 今回の事例では、インターネットから直接S3バケットにアクセスし、データを取得
することが可能でした。
 EC2上で稼働するシステムのデータ保存場所としてS3を利用している場合、外部から
S3バケットに接続可能な経路を設定しないでおけば、SSRFにより認証情報を窃取さ
れたとしても、S3バケットのデータが盗まれることはなかったと考えられます。
AWS Cloud
VPC
Amazon EC2
EndpointsS3 Bucket
Role
VPCエンドポイントを作成することで、VPC内のj
プライベートサブネットから接続できる。
バケットポリシで接続できるVPCを指
定する。
AWS Cloud
OWASP Top10から見た今回の事例
 A10:2017 不十分なロギングとモニタリング
 3月の不正アクセス発生から発覚まで4か月が経過しています。
 また、発覚についても外部からの情報提供であり、外部からの不正なアクセス記録
のモニタリングで気づいたものではありませんでした。
 初期値では、S3バケットのサーバアクセスのログは収集されないので、初期設定す
る際には注意をしてください。
 サーバアクセスのログには、S3バケットに対するリクエストの詳細が記録されます。
このログを採取することで、「いつ」「誰が」「何に」アクセスしたのかを追跡す
ることが可能です。
Users Internet
VPC Amazon EC2
EndpointsS3 Bucket
Role
ログ保存先
Bucket
バケットのプロパティ「サーバアクセスの
ログ記録」を有効化し、ログの保存先とな
るバケットを指定する。
基本的にログの退避や削除をする機能以外
は、このバケットに対して読み取りの権限
だけを設定する。
AWS Cloud
OWASP Top10から見た今回の事例
 A10:2017 不十分なロギングとモニタリング
 前頁の対策でS3バケットに対するログは記録されるようになりましたが、モニタリ
ングがされておらず、攻撃者のアクセスを検知するには、人力でログを定期的に参
照する必要があります。でも、現実的ではないですよね。
 S3バケットに対するAPIアクセスをCloudTrailに連携することが可能です。
 CloudWatch Logsに蓄積したS3アクセスに関するログをInsightを使って可視化して、
特定のIPアドレスから大量のGETリクエストが継続的に実行されているといったモニ
タリングを実施することも必要です。
Users
VPC Amazon EC2
EndpointsS3 Bucket
Role
証跡格納用
S3 Bucket
Amazon
CloudWatch
Logs
AWS
CloudTrail
メトリクスフィルタとアラームを連携
し、SNS経由でメールを送信
Amazon
SNS
まとめ
 手間がかかりますが、「最小権限の原則」に従ったアクセス権限を設定しま
しょう。AWSの場合、IAMポリシやグループポリシ、バケットポリシなど、
様々なレイヤでアクセス制限をかけることが可能です。
 複数のAWSアカウントを運用する場合、Organizationsを導入して、Service
Controle Policy(SCP)を利用することで、組織内のアカウントに一律のセ
キュリティポリシを適用することが可能です。
 適切なロギングとモニタリングにより、インシデントを早期に発見し、被害を
最小限に止めることが可能になります。AWSには、各種リソースへのアクセス
やAPIコールを記録する仕組みが用意されており、かつ一定の基準で通知をす
る仕組みがあり、イチから仕組みを作るよりも容易にかつ低コストでスタート
できるので、ぜひ活用してみてください。
参考資料
 Piyologさんのブログ
 SSRF攻撃によるCapital Oneの個人情報流出についてまとめてみた
 https://piyolog.hatenadiary.jp/
 徳丸センセのブログ
 SSRF(Server Side Request Forgery)徹底入門
 https://blog.tokumaru.org/2018/12/introduction-to-ssrf-server-side-request-forgery.html
 はせがわようすけさんのスライド
 SSRF基礎
 https://speakerdeck.com/hasegawayosuke/ssrfji-chu
 APPSECCOのブログ
 An SSRF, privileged AWS keys and the Capital One breach
 https://blog.appsecco.com/an-ssrf-privileged-aws-keys-and-the-capital-one-breach-
4c3c2cded3af

More Related Content

PDF
카카오에서의 Trove 운영사례
PDF
Bayesian model choice (and some alternatives)
PPTX
SLA Agreement, types and Life Cycle
PDF
게임 서비스에 딱 맞는 AWS 신규 서비스들로 게임 아키텍처 개선하기 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seo...
PDF
Image segmentation based on color
PDF
Senlin deep dive 2016
PDF
Bayes Theorem.pdf
PDF
PR-207: YOLOv3: An Incremental Improvement
카카오에서의 Trove 운영사례
Bayesian model choice (and some alternatives)
SLA Agreement, types and Life Cycle
게임 서비스에 딱 맞는 AWS 신규 서비스들로 게임 아키텍처 개선하기 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seo...
Image segmentation based on color
Senlin deep dive 2016
Bayes Theorem.pdf
PR-207: YOLOv3: An Incremental Improvement

What's hot (20)

PPTX
Rfid in health care
PPT
Bayesian networks
PPTX
Presentation aix performance updates & issues
PPTX
Cloud Computing Principles and Paradigms: 9 aneka-integration of private and ...
PPTX
Cloud Delivery Model Considerations
PPTX
Cloud computing virtualization
PPTX
Data compression
PPTX
Large-scale Video Classification with Convolutional Neural Network
PPT
Data compression
PPTX
Cloud computing presentation
PDF
All about that pooling
PPT
Memcache
PPT
Zabbix introduction ( RadixCloud Radix Technologies SA)
PPT
Naive bayes
PDF
대용량 트래픽을 처리하는 최적의 서버리스 애플리케이션 - 안효빈, 구성완 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
PPT
Spatial filtering using image processing
PDF
Mu zero review by nomoreid
PDF
Introduction to OpenStack
Rfid in health care
Bayesian networks
Presentation aix performance updates & issues
Cloud Computing Principles and Paradigms: 9 aneka-integration of private and ...
Cloud Delivery Model Considerations
Cloud computing virtualization
Data compression
Large-scale Video Classification with Convolutional Neural Network
Data compression
Cloud computing presentation
All about that pooling
Memcache
Zabbix introduction ( RadixCloud Radix Technologies SA)
Naive bayes
대용량 트래픽을 처리하는 최적의 서버리스 애플리케이션 - 안효빈, 구성완 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
Spatial filtering using image processing
Mu zero review by nomoreid
Introduction to OpenStack
Ad

More from 隆博 田中 (8)

PPTX
WhatsTheCedar.pptx
PPTX
SecurityGroup_AboutTrackedUntracked.pptx
PPTX
Create ECS Cluster (Fargate)
PPTX
Aws security ssrf_update
PPTX
Aws first step_ec2_vpc
PPTX
Aws security part1
PPTX
Well architected framework_first_step
PDF
Owasp top 10 serverless
WhatsTheCedar.pptx
SecurityGroup_AboutTrackedUntracked.pptx
Create ECS Cluster (Fargate)
Aws security ssrf_update
Aws first step_ec2_vpc
Aws security part1
Well architected framework_first_step
Owasp top 10 serverless
Ad

Aws security ssrf

Editor's Notes

  • #8: 海外のセキュリティサイトの情報では、WAFをバイパスされたか、ブロックしない設定(ログモード)で運用されていたと見られている。