Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Hyperchem bad barcode final_ja

PacSec2015 slides

  • Login to see the comments

  • Be the first to like this

Hyperchem bad barcode final_ja

  1. 1. バーコード: 一片の紙片で 宇宙船をハックする方法 Hyperchem Ma Tencent’s Xuanwu Lab http://xlab.tencent.com @XuanwuLab
  2. 2. 2015/11/11 Who am I ? セキュリティ研究者@ – 組み込みデバイスセキュリティ – ファームウェアのリバースエンジニアリング – IoTの大ファン
  3. 3. えっ、宇宙船をハックするって?
  4. 4. 4
  5. 5. バーコードについて
  6. 6. よく忘れられているが、バーコードは 最も古くからのIoTの技術である
  7. 7. バーコードとは? • バーコードは、その対象へ関連する光学的に機械読み取り 可能なデータ表現; • オリジナルのバーコード(1D)は平行線の幅と間隔を規則的 に変化させることでデータを表現する 2015/11/11
  8. 8. バーコードのシンボル体系 • 全てのバーコードに含まれるもの: – クワイエットゾーン: 空白のマージン。情報なし。バーコード がの開始位置と終了位置を伝える; – 開始文字: バーコード開始のための特定のパターン; – データ: バーコードの規格に依存した、数字、英数字、全 ASCII文字などが含まれる; – 終了文字: バーコード終了のための特定のパターン. • いくつかのバーコードはチェックサムビットや文字を 含む2015/11/11
  9. 9. バーコードスキャナ
  10. 10. スキャナの内部
  11. 11. バーコードスキャナはどのように動作するか キャプチャ デコード 転送 RS232 PS/2 USB HID Code 39 Code 128 QR Code LED Laser CCD CMOS
  12. 12. 規格
  13. 13. Code 128 • 全ASCII文字をエンコード可能、効率的で高密度 • 製造者向けに4種のファンクションコードが利用可 • 3種の文字セット: CodeA、CodeB、CodeC – 表示できないASCII文字はCodeAでエンコードされる – CodeCは2桁だけの数値をエンコードする – 文字セットは自動的に選択される – エンコーダは3種の文字セットを混在させられる 2015/11/11
  14. 14. 多くの製造業者は、標準的なプロトコルのサポー トに加えてスキャナに業者独自の機能を実装し ている
  15. 15. スキャナ製造業者 • Symbol (Zebra) • HoneyWell • TaoTronics • ESky • ACCESS IS • UNITECH • AIBO • Newland • 模倣製品
  16. 16. バーコードスキャナはどこにでもある
  17. 17. バーコードセキュリティのこれまでの調査
  18. 18. “Toying with Barcodes”, Phenoelit, 24C3 • バーコードによるバッファオーバーフロー • バーコードによるフォーマット文字列バグ • バーコードによるSQL Injection • バーコードによるXSS
  19. 19. それ以外のシナリオ • バーコードの予測と再生成 • バーコードの重複 • QRコードによるフィッシング しかし、これまでの研究では適切にバー コードのデータを処理しないアプリケー ションに焦点が当てられてきた
  20. 20. 我々の調査:BadBarcode
  21. 21. BadBarcodeとは? • 多くのバーコードスキャナはキーボードエミュレーションする デバイスである • Code 128のようないくつかのバーコード規格では、ASCII制御 コードをサポートしている • ほぼ全てのバーコードスキャナがCode 128をサポート • ほぼ全てのバーコードスキャナがそれぞれの追加のキーボ ードエミュレーション機能を持っている つまり、バーコードによってシェルを開いたりコ マンドを「タイプ」可能?
  22. 22. ASCII コード表 2015/11/11 Hex ASCII スキャンコード Hex ASCII スキャンコード Hex ASCII スキャンコード 00 NUL CTRL+2 0B VT CTRL+K 16 SYN CTRL+V 01 SOH CTRL+A 0C FF CTRL+L 17 TB CTRL+W 02 STX CTRL+B 0D CR CTRL+M 18 CAN CTRL+X 03 ETX CTRL+C 0E SO CTRL+N 19 EM CTRL+Y 04 EOT CTRL+D 0F SI CTRL+O 1A SUB CTRL+Z 05 ENQ CTRL+E 10 DLE CTRL+P 1B ESC CTRL+[ 06 ACK CTRL+F 11 DC1 CTRL+Q 1C FS CTRL+¥ 07 BEL CTRL+G 12 DC2 CTRL+R 1D GS CTRL+] 08 BS CTRL+H 13 DC3 CTRL+S 1E RS CTRL+6 09 HT CTRL+I 14 DC4 CTRL+T 1F US CTRL+- 0A LF CTRL+J 15 NAK CTRL+U 7F DEL *
  23. 23. ASCII制御文字 • "Ctrol+"のようなキーの組み合わせは単一のASCIIコー ドにマップされている • Code 128でエンコードされたこれらの文字はスキャナで 読み取られ、最終的にキーの組み合わせがコンピュータ に送られる • Windowsキー、Altキー、その他のファンクションキーは 未サポート • 送信できるのは"Ctrol+*"キーのみにも関わらず、キオス ク端末には脅威になる。なぜか? 2015/11/11
  24. 24. ダイアログ攻撃 • 多くのプログラムで共通のホットキーが登録されて いる。例えば CTRL+O、CTRL+Pなど • ホットキーはファイルを開く、名前を付けて保存、印 刷などのコモンダイアログを開くことができる • これらのダイアログはファイルのブラウズ、ブラウザ の起動、プログラムの実行などの方法を持っている • そしてもっとも重要なことは「多くのキオスク端末で は、バーコードスキャナだけでなくタッチスクリーン も入力デバイスとして利用可能」
  25. 25. デモ 1: ダイアログ攻撃
  26. 26. 2015/11/11 タッチスクリーンがない場合にも、 ブラインド攻撃は可能か? Win+R はどうする?
  27. 27. ADF(Advanced Data Formatting) • Symbol Technologiesによって導入 • ホストデバイスに送信される前に、スキャンデータ を特定の条件に合うように編集することができる • 指定されたキーをコンピュータへ送信できる • バーコードのスキャンのみで設定可能! 2015/11/11
  28. 28. ADF アクション 例 Send data 全てまたは一部のデータを送信 Setup fields カーソルの移動 Modify data スペース他の削除 Data padding スペースまたはゼロでのパディング Beep ベルを1,2,3回鳴らす Send Keystrokes ctrl+,alt+,shift+などのキーストロークを送信 Send GUI Keys GUI+キーを送信 Send Right Control 右Ctrlのキーストロークを送信
  29. 29. デモ2: ADF攻撃
  30. 30. 残念ながら全てのスキャナがLCD/LED 画面からのバーコード読み取りに対応し ていない。 この攻撃はよりかっこいい? この攻撃は自動化可能? Androidアプリの作成は?
  31. 31. LCD/LEDスクリーンからバーコードを読み取れ るスキャナは存在するが、それらの多くは特定 の波長の光を吸収・反射する材料からバー コードを読み取る しかし、LCD/LEDスクリーンは光の吸収と反射 ではなくバックライトの変調によって画像を表 示する。これは、バーコードスキャナには真っ黒 になることを意味する。
  32. 32. ディスプレイの技術 • CRT • LCD • OLED • 電子ペーパー
  33. 33. Kindleがその答え • KindleはE-ink技術を使っている • Kindleは紙と同様に文字と画像を光の吸収と反射 によって表示している • 300PPI以上の高解像度 • プログラマブル。もちろんJailbreak後も。 Kindleは完璧なBadBarcodeツール!
  34. 34. デモ3: 完全自動化されたADF攻撃
  35. 35. 単一のバーコードからコマンド の実行が可能か? はい、いくつかの製品では可能である。
  36. 36. しかし、次のデモで見せるこの製品は空港の ような多くの重要な場所でも広く使われてい るため、我々は今の時点では詳細は開示しな い Let’s just see the demo
  37. 37. デモ 4: ペーパー攻撃の一部
  38. 38. まとめ BadBarcodeは特定の製品の脆弱性ではない。 BadBarcodeがスキャナやホストシステムの問題であると言 うことさえ難しい そのため、我々がBadBarcode問題を発見した場合でも、報 告すべきメーカーがわからない。 我々のデモはWindows上で行っているが、実際には該当す るホットキー機能が存在する限り任意のシステムが攻撃可 能である。
  39. 39. まとめ • BadBarcodeは本当に重大な問題である • キーボードエミュレーションのバーコードスキャナを使っているホ ストシステムは潜在的に脆弱である • タッチスクリーンとバーコードスキャナを備えたキオスク端末は容 易に攻略できる • ADFや特定のキーボードエミュレーション機能を持つバーコードス キャナは高度かつ自動化された攻撃の成功に利用され得る • キーボードエミュレーション接続を持つ他のデバイスでも 同種の問題を持つ可能性がある • キーボード接続型のRFID/NFCリーダーなど?
  40. 40. セキュリティ上の提案 • スキャナ製造業者向け – ADFや他の追加機能をデフォルトで有効にしない – ASCII制御文字をデフォルトではホストデバイスに送信 しない • ホストシステム製造業者向け – キーボードエミュレーションのバーコードスキャナをでき る限り使用しない – アプリケーションにてホットキーを実装せず、システムの ホットキーも無効にする
  41. 41. 謝辞 • 我々のリーダー : tombkeeper • Xuanwu Labの全チームメンバー
  42. 42. Q&A

×