PSJ2014_Sergei-Alex_SCADASL - root via sms last_JP.pptx - PacSec

SMS経由ルート奪取 4Gアクセスレベルの セキュリティアセスメント 自己紹介 Sergey Gordeychik(セルゲイ・ゴルデイチク) @phdays アーキテクト @scadasl 所長 Alex Zaitsev (アレクサンダー・ザイツェフ) @arbitrarycode 研究実施者 @phdays スタッフ サポートスタッフ Alexey @Gi=sUngiven Osipov Kirill @k_v_nesterov Nesterov Dmity @_Dmit Sklarov Timur @a66at Yunusov Dmitry Kurbatov Sergey Puzankov Pavel Novikov h"p://scadasl.org 3G/4Gネットワーク 悪 4G アクセスレベル
 
 
 
ブランド化されたモバイル機器のセキュリティチェック
 
3G/4G USB モデム
 
ルーター / ワイヤレスアクセスポイント
 
スマートフォン/フェムトセル/ブランド化されたアプリケーション
(U)SIM カード
無線/IP アクセスネットワーク
 
無線アクセスネットワーク
 
IP アクセス (GGSN, Routers, GRX)
 
関連するインフラ
 
付帯サービス/VAS (TV, ゲーム, その他)
なぜ研究したのか? なぜ研究したのか?
 
 
毎日使うものだから
 
インターネット
 
ソーシャルネットワーク
 
ハッキング対象として
IT で毎日利用される
 
ATM
 
IoT
 
SCADA
高速鉄道の連携システム C omputer B as ed Interlocking
R BC
R BC MMI
G S M‐R
F ixed E urobalis e
to peripherals : s ignals , point machines , etc.
Plain Line
線路
Data
GSM-R
ETCS Onboard
G S M‐R
F ixed E urobalis e
Station
駅
Onboard オンボード
hOp://en.wikipedia.org/wiki/European_Rail_Traffic_Management_System GSM‐R C omputer B as ed Interlocking
R BC
R BC MMI
GSM-R
F ixed E urobalis e
to peripherals : s ignals , point machines , etc.
Plain Line
線路
Data
GSM-R
ETCS Onboard
GSM-R
F ixed E urobalis e
Station
駅
Onboard オンボード
無線アクセスネットワーク •  コミュニティによって研究されている –  hOp://security.osmocom.org/trac/ •  感謝 –  Sylvain Munaut/Alexander Chemeris/Karsten Nohl/et. al. hOp://security.osmocom.org/trac/ bingo! そんなに高速ではない
RBC-RBC Safe Communication Interface
Subset-098
 
 
EN 50159:2010
 
VPN over GSM
 
…
やらなければ! ネットワーク ネットワーク ありがとう、ジョン・マザリー! hOp://www.shodanhq.com/ デバイス ネットワーク GPRS トンネルプロトコル  
GPRS通信のサブセットプロトコル  
SGSN <‐> GGSN シグナル (PDP コンテキスト, QoS, etc)  
IP トンネリング  
ローミング (GRX)  
課金データ交換  
GTP‐C UDP/2123  
GTP‐U UDP/2152  
GTP' TCP/UDP/3386 hOp://en.wikipedia.org/wiki/GPRS_Tunnelling_Protocol インターネットのすべてをスキャンしよう!  
GTP‐エコーレスポンス  
 
207401 応答なしの PDP コンテキストリクエスト  
 
GPRS トンネルプロトコル 199544 U r welcome  
548  
管理ポート  
DNS (.gprs .3gppnetwork.org) Brazil China India
Colombia USA Japan Malaysia Kuwait Germany UAE 228 162 34 14 13 13 10 9 9 7 何をする? 攻撃  
GGSN PWN  
GPRS への攻撃  
DoS  
情報漏えい  
詐欺  
APN の推測 事例: GTP “SYNフラッド” hOp://blog.ptsecurity.com/2013/09/inside‐mobile‐internet‐security.html
hOp://bit.ly/195ZYMR 我々は悪人ではない! 内側にいる 攻撃されないために
 
 
 
古いIP
 
traces 1.1.1.1/10.1.1.1
 
IP ソースルーティング
 
管理ポート
新しい IP
 
IPv6
 
MPTCP
(GTP, SCTP M3UA, DIAMETER etc)
電話事業者独自仕様
hOp://ubm.io/11K3yLT hOps://www.thc.org/thc‐ipv6/ ほら、虎がいるよ!
DNS
 
多くの場合内部の DNS サーバがある
 
時には会社のFQDN とアドレス空間で使用される
 
 
ブルートフォース/ゾーン転送や情報漏えい
 
.gprs
.3gppnetwork.org
APIPA IPアドレスの再利用
 
local.COMPANY.com は10.X.X.Xの Aレコードを持つ
 
攻撃者は同じアドレスでlocal.COMPANY.comのリンクを公開
 
10.Хネットワークの被害者がクッキーを攻撃者に転送
hOp://lab.onsec.ru/2013/07/insecure‐dns‐records‐in‐top‐web‐projects.html 1990年代
 
残高不足
 
好きなUDP VPNに接続
要約
 
 
通信事業者向け
 
インターネットをスキャンしてください!
 
加入者のネットワークはあなたのネットワークではない
調査する人向け
 
ステータスをチェック
 
 
すべての加入者をチェック
 
 
オンライン/ブロック/ローミング
APN’s, 加入者のプラン
他の加入者をハックしない
hOp://www.slideshare.net/phdays/how‐to‐hack‐a‐telecommunicamon‐company‐and‐stay‐alive‐gordeychik/32 デバイス
ミスターUSB-モデムは
 
再生されたハードウェアプラットフォーム
 
オンボードのLinux/Android/BusyBox
 
多機能
 
 
ストレージ
 
CWID USB SCSI CD-ROM USB Device
 
MMC ストレージ USB デバイス (MicroSDカードリーダー)
Local 管理
 
 
COM-Port (UI, AT commands)
ネットワーク
 
リモート NDIS ベースのインターネット共有デバイス
 
WiFi
∼この動物は非常に邪悪である∼
 
 
よく研究されている
 
«アンロック»
 
«ファームウェアのカスタマイズ»
 
«ダッシュボードのカスタマイズ»
研究事例
 
http://threatpost.com/using-usb-modems-to-phish-and-send-malicious-sms-messages
 
http://www.slideshare.net/RahulSasi2/fuzzing-usb-modems-rahusasi
 
http://2014.phdays.com/program/business/37688/
 
https://media.blackhat.com/eu-13/briefings/Tarakanov/bh-eu-13-from-china-with-lovetarakanov-slides.pdf
∼攻撃されたら自分で守る∼
 
開発者の回答
 
デバイス «の強化»
 
ローカルインターフェースの無効化 (COM)
 
ウェブベースのダッシュボード
識別
識別
 
文書(マニュアル)
 
ググる
 
突く
 
再度ググる
 
内部情報
動作モデル
ブロードバンド接続 DHCP サーバー DNS ウェブダッシュボード ルーティング/NAT 新しいイーサネットアダプタ DHCP クライアント スキャンしてみよう
ラッキーなら…
…でもダメかも
必要なのは RCE 愛 !
 
 
telnet/snmp?
 
内部インターフェースのみ
 
ブラウザによってブロック
http/UPNP?
 
 
ブラウザを介して攻撃 (CSRF)
ブロードバンド
 
?
web – 些細なこと
CSRF
不十分な認証 XSS
基本的なインパクト
 
情報漏えい
 
設定変更
 
 
DNS (トラフィックの傍受)
 
SMS センター (SMSの傍受)
操作 (Set/Get)
 
SMS
 
連絡先
 
USSD
 
WiFi ネットワーク
さらなるインパクト
 
 
自身のサービスポータルへのアクセス
 
XSS (SMS) でブラウザを “pwn”
 
CSRF で “パスワードリセット”の USSDを送る
 
XSS でパスワードを攻撃者に送る
“文鎮化”
 
PIN/PUK“ブルートフォース”
 
誤った IP 設定
デモ
力が必要だ! “隠し”ファームウェアアップデート
イケてる, でも…
 
 
ファームウェアの取得が必要
 
時には幸運がある…
 
…ダメなときも
一貫性のコントロール
 
少なくともやらなければ…
深堀り…
 
直接のシェルの呼び出し
 
awk で Content-Lengthの計算
 
その他些細な RCE
シェルの取得
“ツール”の発見
力を手に入れた
しかしどうだろう? イケてる, でも…
 
ファームウェアを取得?
 
 
もっとバグが必要?
 
 
足りない…
SMS受信, USSD送信?
 
 
ナイスだけど…
CSRF/XSS経由で可能…
加入者をPWN ?
PWN ‐ PWN Profit!111 たまにラッキーなら…
詳細
 
 
 
ダッシュボードでローカルホストにウェブサーバをインストール
 
ホストの調査 (ipconfig, traces…)
 
Windows “シェル” スクリプトベース!
 
とても “セキュア”!
USBモデムのウェブサーバとやりとり
オリジンを気にする必要がない (XSS不要)
非常に特殊なケース USBで!
(bad)USBで!
hOps://srlabs.de/blog/wp‐content/uploads/2014/07/SRLabs‐BadUSB‐BlackHat‐v1.pdf USB ガジェット & Linux •  drivers/usb/gadget/* •  コンポジットフレームワーク –  多機能ガジェットを許可する –  composite.c で実装 Android ガジェットドライバー •  android.c で実装 •  コンポジットドライバーはいくつかのUIでラップさ
れいてる •  /sys/class/android_usb/android0 –  enabled –  funcmons –  Class/Protocol/SubClass etc. –  サポートされている関数のリスト •  あなたの電話はマスストレージの代わりに
audio_source にすることができる HID デバイスについて? •  カーネルパッチ、コンパイル、新しいカーネル
に差し替え => 退屈だ!!! HID デバイスとは? •  Android ガジェットドライバーは
supported_funcmons で動作する •  ランタイムでパッチできる! –  新しいhidファンクションをsupported_funcmons に
追加する –  デバイスの再起動 –  … –  PROFIT 悲しいLinux •  デフォルトカーネルではg_hidはサポートされていな
い •  異なるバージョンのユニバーサルHIDドライバーは
作ることが難しい –  vermagic –  prototypes/structures ファンクションは変化してし
まう –  異なる CPU •  ベンダーは趣味でやっている – カーネルの予期しな
い場所を書き換える •  ハックする前に指紋認証デバイス デモ
要約
 
通信事業者向け
 
 
すべての 3/4G モデム/ルータは我々のもの 5/\><
みなさん向け
 
コンピュータに USB をつながないでください
 
たとえそれが ネットワークプリンタ 4Gモデムであっても
チップ
SIMとは: ハッカー向け
― マイクロコントローラー
•  独自OS
•  独自ファイルシステム
•  アプリケーションプラットフォームと API
― 別の電話で使う (しかもアップグレードをしたもの)
― 独立したOSの中で , セキュリティを無効にできる
•  ベースバンドへのアクセス
•  iOS サンドボックスのバイパス
Karsten が何を教えてくれたのか?
 
 
 
 
すべてのTAR が同等にセキュアというわ
けではない
ラッキーならブルートフォースで何かが見
つかる
もっとラッキーなら鍵をクラックすることが
できる
またはいくつかのTARは暗号無しのコマ
ンドが受け付けられるかもしれない
hOps://srlabs.de/roomng‐sim‐cards/ 鍵の取得
 
レインボーテーブルを使うか古いDESク
ラッキングをするか
 
ブルートフォースを選んだ
 
既存のソリューションは遅すぎた
 
なぜ新しいものを構築しないのか?
鍵の取得
 
なぜ新しいものを構築しないのか?
 
ビットコイン採掘ビジネスが
 
 
結果的に市場に手頃なFPGAをもたらし
た
そう…
リグ
 
我々が作ったもの– 試作機 #1
リグ
 
我々が作ったもの– 試作機 #2
リグ
 
我々が作ったもの– 最終版
リグ
 
スペック表:
Hardware
Speed
(Mcrypt/sec)
Intel CPU (Core i7-2600K)
Radeon GPU (R290X)
Single chip (xs6slx150-2)
ZTEX 1.15y
Our rig (8*ZTEX 1.15y)
Time for DES
(days)
Time for 3DES
(part of key is
known, days)
475 1755,8 (~5 years) 5267,4 3`000 278 834 7`680 108,6 325,8 30`720 27,2 81,6 245`760 3,4 10,2 + descrypt bruteforcer ‐ hOps://twiOer.com/Gi=sUngiven/status/492243408120213505 今後の課題?
 
鍵を入手するか入手する必要がないか、
次は?
 
 
TARが受け付けられるランダムなコマンド
を送る
定義済みの知られたコマンドをTARに送
る
今後の課題?
 
TARが受け付けられるランダムなコマン
ドを送る
 
多くの編集から推測する:
CLA INS P1 P2 P3 PROC DATA SW1 SW2
 
 
よいマニュアルかインテリジェントなファジ
ングが必要
または何もできない羽目に: 何を送受信
しているか分からない
今後の課題?
 
定義済みの知られたコマンドを TARに送
る
 
 
 
カードマネージャー (TAR 00 00 00)
ファイルシステム (TARs B0 00 00 - B0
FF FF)
…
今後の課題?
 
カードマネージャー (TAR 00 00 00)
 
 
困難な調査
アプレットをインストール、ロードしてJCVMに
取り掛かる
 
技術詳細が不十分
 
成功したPOCが公開されていない
 
 
しかしSIMカードにはセキュリティのチェックな
しにアプリケーションをインストールできる!!!
しかしだれかがそれをやっているのは確か…
今後の課題?
ファイルシステム (B0 00 00 - B0 FF FF)
 
 
興味深い記録: TMSI, Kc
たぶんCHV1=たぶんCHV1で保護されて
いる
今後の課題?
 
ファイルシステム (TAR B0 00 00 - B0 FF
FF)
 
 
シンプルで充分に文書化された APDU コ
マンド (SELECT, GET RESPONSE,
READ BINARY, etc.)
それぞれアクセス条件を持つ(READ,
UPDATE, ACTIVATE, DEACTIVATE |
CHV1, CHV2, ADM)
攻撃?
 
 
 
 
カードリーダーから APDU を送るのは
つまらない
それを無線でやってみよう!
バイナリ SMSでファイルシステムへの
アクセスAPDUをラップ
osmocom, いくつかのgsm モデム や
SMSC ゲートウェイで可能
攻撃?
 
バイナリの SMS はフィルタされている
 
いくつかの可能性はある:
 
イントラネット-network
 
インターネットInter-network
 
SMSゲート
 
偽の BTS/フェムトセル
攻撃?
 
待て! アクセス条件は何?
 
読みだすにはPINが必要
 
多くの場合 PIN は0000にセットされ、
変更されていない
 
それ以外はブルートフォースが必要
攻撃?
 
PIN ブルートフォース
 
 
 
わずか 3 回の試みでブロックされる
成功率を上げるためには攻撃対象に対して
十分に調査する必要がある
少しの可能性しかない…
攻撃?
 
副産物攻撃 – 加入者への DoS
 
誤った PIN を3回入力
 
PIN はロック, PUK(CHV2)が要求される
 
誤った PUK を10回入力
 
PUK がロックされる
 
加入者は GSMネットワークからロックされる SIM カードの交換が必要
攻撃?
 
盗聴にはARFCNを理解する必要がある
 
異なる方法…
 
 
 
CCCH上のページングの応答をキャッチする
もっともわかりやすい方法である
コード化されなければならない – 行う!
すべてがosmocom-bb上に構築することができ
た…
攻撃?
 
十分に幸運ならば
 
OTAキーを持っている必要はない
 
PIN も必要ない
 
必要なのは2つの基本的なファイルの読み取り
 
MF/DF/EF/Kc と MF/DF/EF/loci
 
SIMTracerで見る!
攻撃?
 
十分に幸運ならば
 
TMSI と Kc でもうKrakenに依存する必要は
なくなった
 
SDRの選択を含めたGSM トラフィックの収集か
osmocom-bb phoneを使う
 
取得したKcを使って復号
 
取得した TMSI & Kc を利用してクローンを作成
 
ボーナス: A5/3 フレンドリー!
 
Profit!
デモ
そう?
 
 
トラフィックの復号はたった2つのバイナリメッセー
ジで可能
DoS は 13の binary メッセージを受け取り、
SMSゲートを通じて行われる
 
価値のあるSMS-パッケージ.. 契約をする
 
USSDもある…
“何ができる?”
 
PINの変更, たぶん…
 
SIMTesterの実行!
 
PSTN FTWを使用する:(
 
伝書鳩で送る?
Resume
 
通信事業者向け
 
 
すべてのSIMのチェック
 
SIM/アプリ/セキュリティの教育(業者を含めて)
みなさん向け
 
祈る
Thanks!