LoginSignup
2
0

More than 5 years have passed since last update.

CODE BLUE 2017レポート(DAY1後編)

Last updated at Posted at 2017-11-10

こんにちは、ひろかずです。

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

今年も濃密なセッション盛りだくさんです!
次回に続きます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0