こんにちは、ひろかずです。
CODE BLUE 2017レポート(DAY1前半)の続きです。
お昼も食べてリフレッシュ
去年からお弁当は出なくなったそうです(残念)
例によって、リアルタイムでの書き起こしになりますので、誤字脱字記載漏れ表記ゆれにつきましては、ご容赦ください。
お品書き
基調講演:サイバースペースにおける国家主権
Session1:Step-Oriented Programming による任意コード実行の可能性
=== 今回はここから ===
Session2:SSRFの新時代 - 有名プログラミング言語内のURLパーサーを攻撃!
Session3:アルファベイ・マーケット - サイバー犯罪主導者を振り返る
Session4:マン・イン・ザ・NFC
Session5:事例から考える脆弱性と法
SSRFの新時代 - 有名プログラミング言語内のURLパーサーを攻撃!
オレンジ・サイ - Orange Tsai -
様々なセキュリティカンファレンスで登壇し、CTFプレイヤー、
サーバーサイドの攻撃(リモートコード実行)に関心がある。
SSRFとは10年前に発見されたWebアプリケーションの攻撃手法
FWを回避してイントラネットに攻撃する。
イントラネットが大きければ(あるものが多ければ)、その効果は大きくなる。
HTTPベースプロトコル、テキストベースプロトコル(FTP,smtp,)
今回の研究は、SSRFを高度化し強化するもの。
pythonを使う時のライブラリは何を使う?(多くは、url.libでしょう)
pythonはライブラリごとに処理する場所が違う
gopher使う?
ブロックするのは容易で、攻撃対象がサポートするとは限らないので、使わない。
SSRFは常にHTTPが付きまとう。
HTTPSで暗号化されない部分はSNI部分
SNI拡張にLRLFを仕込めばホストを注入できる。
URLのパーシング問題
URLのバリデーションは大変(RFC3986に仕様がされているが、実装方式は定められていない)
URLパーサーには多くの問題を含むものがある。
今回はスキーム、オーソリティ、パスを使う(クエリーとフラグメントは今回は触れない)
URLパラメータの悪用
https://127.0.0.1:11211:80
の例では、ライブラリによって処理する場所が違う
同じようにcurlやJAVA等にも同じ問題がある。
パッチが出たがhttps://127.0.0.1 :11211:80
でバイパスできる。
curl Teamはプログラム実装の問題と認識している(修正されない)
glibcのNSS機能ではRFC1035に準じて、ドメインシステムとプロトコルの詳細を規定している。
ドメインネームにバックスラッシュを2つつけることで難読化(ブラックリストの回避)ができる
getadressinfo()は、127.0.0.1 aaa
を127.0.0.1と解釈する。
IDNAスタンダード
IDNA2008は厳しすぎるので、依然古いIDNAが使われている
ここでも特殊文字が変換されてしまうので、ブラックリストバイパスに繋がる
WordpressにはSSRFが3ケースある(未修正)
URLパーサーとDNSチェッカーとURLチェッカーの機能差を利用する。
チェックの結果が異なる場合があるのを利用してバイパスする
curlで対応されている脆弱性もあるが、古いライブラリを使っている製品は依然ある。
軽減策
アプリケーションレイヤー
- IPのみ試用し、ユーザーから引き渡されたURLは使用しない
ネットワークレイヤー
- ファイアウォールポリシーでインタネットトラフィックをブロックする。
質疑応答
バイパスの手段は機械的なファジングで見つけるのですか?クリエイティブなアプリケーションで見つける?
- Tiny-URL-Fuzzerを使いました。オープンソースなので見てもらった方が分かりやすいですよ!
ひらめきやアイデアで見つけることはありますか?
- はい
たくさんの例が提示されて書ききれませんでした汗
詳しくは資料を参照してください!
アルファベイ・マーケット - サイバー犯罪主導者を振り返る
クリスティ・クイン - Christy Quinn -
SNS投稿禁止セッションのため、公開は自粛しますmm
マン・イン・ザ・NFC
ハオチー・シャ,クイン・ヤン - Haoqi Shan, Qing Yang -
どのようにNFC proxy tool を作るか?
ハードのデザインの話をしていく
いかに攻撃するかではない
uniproxyってなにか感触を知ってほしい
デモ
用意するのはツール二つ
ツールにクレジットカードを載せる
もう一つのツールに決済機を接触
決済できた
unicorn チーム
2014年設立のハッキングと防御の研究チーム
DEFCONやブラックハットて発表
NFC
電力不要でローコスト
ISO14443
銀行カード、クレジットカード、パスポートをはじめ、たくさんのアプリでサポートされている。
中国ではI.D.カードでホテルに泊まれる。
スタバにもPOSマシンがあり、カードでコーヒーを買える。
対象はquick pass(VISAが載ってるもの)
Proxmark2とchameleon miniを使った
NFCproxyとNFCgateは強力だけど使えなかった。
Androidベース
データ伝送がWi-Fiに依存しているので、100ミリ秒単位の遅延で失敗する。
バックできないからマーク3は使わなかった 。
なので新しいツールを作った
uniproxy
早くて遠くまで届く
アンプなしで50m届く
ISO14443aを対象に開発したが、拡張可能。
PN7462AUベースのNFCrelay proxyデバイス
PN7462AUとは
NXPチップ
POSをエミュレートできる(Read right)
MIFAREファミリーを完全サポート
チップを買うとアンテナが付いてくる
開発やハッキングにも使い勝手が良い
ハードウェアデザインはシンプル
標準パーツの組み合わせで作った
デプロイ時の問題
UIDのFirstbyteを変更できない(クレジットカードでは無視できた。入館カードでは問題になるかも)
待ち時間とウェイクアップ時間の書き換えが必要だった
ISO14443パート4はフェイクじゃない。
マクドナルドて実験
セルフレジで試したらカードを接触させずにNFCproxyを接触させて決済できた。
より遠距離で使おうとすると(すれ違いとかで使おうとすると)アンテナが大きくなる。
防御策
ブロッキングスリーブとNFCジャマーは有効だった。
制作に際して
原理は簡単だった。
オフィシャルサポート買えば一ヶ月で開発できそう。
サポートなしで半年かかった。
将来的には自動化したい。
事例から考える脆弱性と法
橋本 早記 , 武田 真之 - Saki Hashimoto , Masayuki Takeda -
SNS投稿禁止セッションのため、公開は自粛しますmm
今年も濃密なセッション盛りだくさんです!
次回に続きます。