前置き
NTT-WEST CIRTでレッドチームとして活動している@ichikawa_hです。
本記事はレッドチームとして、攻撃者が用いる可能性のある手法を検証することで「防御」に活かすことを目的としているものです。収集している情報や検証内容は、上記の一環であり、攻撃を助長する意図はありません。
背景
端末からデータを持ち出す方法って何があるかなと考えたのが本記事の発端です。
一般的に端末からのデータの移動といえばクラウドにアップロードやUSBメモリなどですが、当然監視や制限されているケースが多いです。一方で音声出力はほぼ必ずインタフェースとして存在しており、通常データの持ち出しに使うわけではないため監視もされていません。そのため活用を検討する価値があるのではと思い調査を行いました。
想定としては、社員など内部犯が業務用の端末からイヤホンジャックにケーブルを挿してデータを音声に変換して、持ち出し先の端末のマイク端子から取り込むことを想定しています。
関連技術調査
音声としてデータ通信を行うものやアナログ通信について、主に速度面での参考に情報を集めました。
音響カプラ
電話のマイクとスピーカーを使ってデータ転送を行うやつ。
「2005年時点では28.8Kbpsの製品が市販」されていたらしい。
FAX
SuperG3の規格だと33.6Kbpsまで出るとのこと。
今回の想定も有線で行うこと前提なので、このくらいは出せるのかも。
ADSL
可聴域以外を使えるのであれば速度面など参考になりそう。
「下り帯域は100Mbpsを測定可能な場合がある」らしいので、銅線のポテンシャルすごい。
関連しそうなブログなど
離れたところから超音波を使ってデータを抜き出す例が書かれています。
今回は内部犯が有線を使うケースを想定しているので、そこまで高度なことはやらないですが。。
既存ソフトウェア調査
githubにTopicとしてあげられていました。感謝。
Quiet.jsを試す
やっと本題です。
ブラウザで簡単に使えるものとして、Quiet.jsというものが公開されていたので使ってみました。
PC2台を用意して、ステレオミニのケーブルで端末Aのイヤホンジャックと端末Bのマイク入力を繋いだうえで実験。
受信側および送信側で上記サイトにアクセスし、それぞれReveive TextとSend TextのStartをクリックします。
UltraSonicとAudibleのどちらを利用するか選べますが、私の環境ではAudibleしかうまくいきませんでした。
可聴域での文字転送を試したところ、10KBのテキスト転送に2分ほどかかりました。
bps変換すると約682bpsということで、このままでは通常使うようなデータの持ち出しには難しいことがわかりました。
またエラーが1-5%ほど発生するので、なんらかの追加処理が必要です。
さくっとやるならrarでリカバリレコードつけたうえで送る、高みを目指すなら双方のイヤホンとマイクを使って双方向通信にするなどでしょうか。
まとめ
データの持ち出しが規制された端末からデータを持ち出す1つの手法として、Quiet.jsを使ってデータを音声にして送信するということを試しました。
速度面などから現段階ではそこまで現実的な方法とはいえないものの、簡易で幅広く利用可能いうメリットはあるので、方法の1つとして知っておくと面白そうです。
今後も様々なデータ持ち出し手法を調査・検討していきます。