2020年11月18日 (Ver. 1. 0)独立行政法人情報処理推進機構社会基盤センター 産業プラットフォーム部

1.     IoTデバイスのセキュリティ機能演習
(1)演習のねらい
IoTでは、多くのIoTデバイスが、M2Mの通信を行う。人間が介在しないため、パスワードやバイオメトリクスなどによる保護策がとれない。 IoTの「信頼の起点」は、暗号鍵が担う。ただし、暗号鍵の秘匿が不十分であると、攻撃者は、手の届く場所に置かれた機器の中を調査し、暗号鍵を入手できてしてしまう。よって、IoTデバイスは、攻撃者に見えないように暗号鍵を機器内に安全に秘匿する必要がある。暗号鍵の秘匿は、ハードウェアセキュリティ機能を利用することで安全性が高まる。ハードウェアセキュリティ機能は、TPM、TrustZoneなどに実装されているが、より強力なハードウェアセキュリティ層を形成した TSIP(Trusted Secure IP) がルネサスエレクトロニクス株式会社より提案、実装されている。演習では、TSIPを使用する場合と使用しない場合で、安全性や性能にどのような差が生じるかを体験する。具体的には、下記2点を体験する。 ● 通常の方法（TSIP を用いない場合）では、機器から暗号鍵を読み取って機器を偽造することが可能であるが、TSIPのようなMCUのセキュリティ機能を活用すれば、暗号鍵を秘匿して、安全な通信と機器の偽造防止が実現できることを体験する。 ●　ソフトウェアによる暗号化とハードウェア(TSIP)による暗号化の性能差を測定する。
(2)シナリオ
2人の受講生が1チームを構成する。2チームが互いに相手の通信を傍受したり，なりすますことを試みる。各チームのIoTデバイスであるRX65Nが、サーバと通信。その通信を相手チームが盗聴する。MCUのメモリ上で暗号鍵を探索し、相手チームの暗号鍵を窃取する。窃取した暗号鍵を自チームのデバイスにセットし、相手チームのデバイスになりすます。 ● ● ●演習①IoTデバイスの、UDPによる平文通信相手チームの通信を盗み見ることができるか？演習②ソフトウェアによる暗号化UDP通信相手チームの通信を盗み見ることができるか？ MCUのメモリ上で暗号鍵を探索、窃取し、相手チームの暗号鍵を使ってなりすますことができるか？演習③TSIPによる暗号化UDP通信.演習②と同様のことができるか？演習④暗号化の速度性能ソフトウェアによる暗号化とハードウェア(TSIP)による暗号化の性能差を測定すな。
(3)演習機器
①演習には、下記の機器を用いる。機器類は利用者が用意・設定する。 ●　チームごと♦受講生PC → RX65N基板: TSIPを備えたMCUであるRenesas RX65Nを搭載する評価ボード♦ E2-Lite : USB-JTAGインタフェース、 ♦ ♦ ♦ USBケーブル×2 (E2-Lite用、デバッグコンソール用) JTAGケーブル(灰色フラットケーブル) ACアダプター LANケーブル×2 (RX65N基板用、受講生PC用) ♦ 2チームごと● ♦サーバPC（Acerなど） →サーバPC用LANケーブル♦ Dumb-Hub：通信の観測に用いる②演習機器の構成は、下記のとおり。
(4)演習で使用するソフトウェア
以下のソフトウェアはIPAから提供する。 ① RX65Nにダウンロードする通信ファームウェア♦ 3種類の通信をコマンドで切り替えて実行する。平文でのデータ通信ソフトウェアでの暗号通信ハードウェア(TSIP)での暗号通信② IoTデバイス開発環境とソフトウェアCS+（体験版のためコンパイルサイズ128kBまで） ♦  ルネサスエレクトロニクス製の統合開発環境で、RX65N へのファームウェアダウンロードとメモリ読み出しと検索に利用する。 ● Wireshark ✦　ネットワーク通信情報を確認できるフリーソフト。本演習ではネットワーク通信情報及びパケット情報の取得に利用する。 ● Tera Term ♦　ターミナルソフト。本演習ではMCU上のシェルに対してコマンドを発行して各種設定、実行し、結果を得る。RX65NとはUSB上に実現されるシリアル通信を行う。
2.    骨成分析演習
(1) 演習の概要
脅威分析演習では、具体的なシステムを開発することを想定し、脅威分析(攻撃分析)を体験させる。具体的には、脅威分析、セキュリティ・バイ・デザインの座学で学んだ知識を元に、IoTシステムを仮想的に設計するとして、想定される脅威を識別し、リスク評価を行う脅威分析を３人程度のグループに分かれて行う。脅威分析の成果はグループごとに発表させる。対象システムは、スマートホームのIoTシステムとし、別途実施する脆弱性検査演習とのつながりを持たせている。脅威分析手法は、座学で講義した脅威モデリングおよびアタックツリー分析を用いる。それぞれの手法の描画ツールとしてフリーのdraw.ioを用いることを想定している。グループ演習での脅威分析の成果であるアウトプットは以下を想定している。 ● 資産一覧の表(excel)ミスユースケース図(draw.io jなど) ● ● DFD（draw.ioなど） ●アタックツリー（draw.ioなど） ●リスク評価結果（表など）
(2)分析対象のシステム
●　疑似スマートホーム●カメラで家の状況を監視
3.
(1) 演習のねらい
本演習では脅威分析演習で分析した脅威が実際に顕在化するか、図３に示す疑似スマートホーム環境と脆弱性検査装置を利用して実践する。受講性は議事スマートホーム内に価値ある資産があると想定して、その資産へたどり着くまでをスマートホーム環境と脆弱背検査装置を用いて以下の4点を体験する。各ステップはCTF (Capture The Flag)形式で進める。 ●　ホームネットワークを探索して、検査して発見した脆弱性を用いて侵入する（探索－＞検査－＞侵入） ●　ホームネットワークに接続された機器を探索して機器を発見する。（探索）機器に対して脆弱性検査を実施して脆弱性を発見する。（検査） ● ●脆弱性を用いて機器へ侵入して機器の操作を行う。（侵入）本演習では図3に示す演習進行管理システムを使用することで、各チーム/各受講者の進展をリアルタイムに把握して、きめ細かい演習指導ができる。 ●　講師は演習進行管理システム(CTF)を用いて以下の点を実施できる講師によるオンラインでの課題作成(演習内容の作成)ん講師によるオンラインでの課題の提示ん受講生によるオンラインでの回答A本演習におけるセキュリティ検証方法について、許可されていないシステムや他人の所有物に対して行うと法律に抵触して罰せられることがある。そのような行為や、実施の是非の判断ができない場合は絶対に実行しないこと。
図 3  脆弱性演習環境
(2)シナリオ
2〜3人の受講生が1チームを構成する。各受講生性は演習前に事前学習資料を熟読していることが前提となる。各チームの検査装置を利用して課題をクリアする。課題の大まかな流れは1.戦略立案— > 2.探索—> 3.検査—> 4.侵入である。戦略立案では、疑似スマートホームに対してどのポイントを探索するか決めて、 ♦その手段である検査アプリケーションを選択する。 1.1 CTF演習1 1.2 CTF演習5 1.3 CTF演習9、CTF演習10探索では、探索アプリケーションを操作して、探索して、検査できそうなネット♦ワークや機器を発見する。 2.1 CTF演習2 2.2 CTF演習6 2.3   CTF演習11(②～④を一つのツールで実施)検査では、検査アプリケーションを操作してネットワークや機器に対して検査し♦て、脆弱性を発見する。 3.1    CTF演習3 3.2   CTF演習7 3.3   CTF演習11(②～④を一つのツールで実施)侵入では、発見した脆弱性を利用して侵入を試みる。 4.1    CTF演習4 ♦
4.2 CTF演習8
4.3 CTF演習11(②～④を一つのツールで実施) 4.4  CTF演習12 (進みが早い人向け、①～③は特に明示しない)演習では、①～④を異なる対象（WiFiネットワークとWiFiルータ等）に対し4回分用意しているが、最低2回実践する。
(3)  演習機器
●　教室に１セット必要な機材✦ Raspberry PI x4:ルータ/DNS/DHCP用、CTFサーバ用、スマートホーム・シミュレータ用、疑似WiFi子機用・ルータ/DNS/DHCPサーバ：脆弱性演習環境全体のIP経路を制御、管理すタ• CTFサーバ:受講生への課題、受講生からの回答を管理する•スマートホーム・シミュレータ：各チームの電子鍵、エアコン、ライトを管理する• 疑似WiFi子機用：各チームのWiFiに定期的に情報を流す♦ WiFi-AP x1 ・宅内WiFiSSID、受講生SSID、疑似インターネット環境用SSIDを管理すv ♦ Ethernet Switch • Raspberry PI、WiFi-APを接続する講師用PC(講師持参) ♦ ●各チーム別に必要な機材  —疑似スマートホーム♦ Raspberry PI x3:ルータ用、監視カメラ用、スマートリモコン用、疑似WiFi子機用♦　スマートリモコンRemo x1 ●各チーム別に必要な機材—脆弱性検査装置♦ Raspberry PI x1：脆弱性検査装置• Aircrack-ng、OpenVAS、Hydra、nmap、tcpdumが導入済み操作PC(受講生持参PC) ♦
(4)  IPAが提供するドキュメント・ソフトウェア
●講師用手順書（講師向け演習シナリオ） ●講師向け環境動作確認手順書● ● ● ● ● ● ● ●プログラムソースコード一覧プログラムソースコード①動作確認用プログラムソースコード① 1.演習環境のルーティング情報と各ホストへの接続性を確認するプログラム①-2.プロキシで許可されたサイトにのみアクセス可能であることを確認するプログラム①-3. DNS/DDNS/DHCPが動作していることを確認するプログラム①-4. CTFシステムが動作しているか確認するプログラム①-5.スマートホームエミュレータアプリが動いているか確認するプログラム①-6. 自動EAPOL生成アプリ/自動Cameraアクセスアプリが動いているか確認するプログラム①-7.仮想スマートホーム内のルータが動作しているか確認するプログラム演習シナリオ（受講生向け） CTFへの演習シナリオ導入手順演習環境構築・環境確認・演習補助・撤収手順書脆弱性演習キット_ホスト変更手順書チーム別変更点一覧表脆弱性演習受講生用トラブルシューティング資料プログラム設計書①-8. Remoが動作しているか確認するプログラム①-9.仮想スマートホーム内の赤外線受信機が動作しているか確認するプログラム①-10.仮想スマートホーム内の監視カメラが動作しているか確認するプログラム① 11.受講生が利用するRaspberry PIのOpenVASが動いているか確認するプログラム① 12.受講生が利用するRaspberry PIのnmap/aircrack-ng/tcpdump/hydra/その他ツールが動作可能か確認するプログラム①-13. 上記すべてを実行するプログラム②初期化用プログラムソースコード②-1.各検証用RasPiのホームディレクトリを初期化するプログラム②-2.各検証用RasPiのOpenVASのデータを初期化するプログラム②-3. 各検証用RasPiのWi-Fi情報(wlan0)を初期化するプログラム②-4.スマートホームの状態を初期化するプログラム②-5.上記すべてを実行するプログラム② 6.設定用ファイル