【サイバーセキュリティ 実践】ホームネットワークデバイスで学ぶファームウェア解析と組み込みLinuxのセキュリティ
本コースの解析対象は市場で流通しているホームネットワークデバイスのファームウェアです。その解析により脆弱性やハードコードされた認証情報、隠された機能を見つけます。診断ツールや解析方法、組み込みLinuxにおけるセキュリティについて学びます。
Description
本コースの目的
本コースでは、市場で流通しているホームネットワークデバイスのファームウェア入手の検討から開始します。その解析によって、既にCVE番号が採番されている脆弱性の特定方法について追体験を行います。これにより、「IoT:Internet of Things (モノのインターネット)」、通信機能を持つデバイス、特に組み込みLinuxを採用するデバイスにおいて脆弱性が内在してしまう背景について学びます。
バグバウンティとは
「バグバウンティ(Bug Bounty)プログラム」とは、ハードウェア、ファームウェア、およびソフトウェアで、悪意をもった攻撃に転用可能な脆弱性(Bug)を報告し報奨(Bounty)を受け取る制度です。脆弱性の開示により、数百ドルから数十万ドルまでの報酬を受け取ることができます。セキュリティエンジニアの中には、実績づくりや技術的な好奇心を満たすための制度としても注目されています。
本コースでは、バグバウンティプログラムへ飛び込もうとしている人の入門コースとしても最適です。
受講における注意事項
本コースでは、解析対象となる「ホームネットワークデバイス」を実際に用意いただく必要はありません。ベンダーが公式公開しているファームウェアを入手して解析を行います。
従って、ホットエアーを使って表面実装部品を取り外す、EEPROMからファームウェアを抽出(ダンプ)するなど、「Chip-off」と呼ばれるハードウェアに対する解析工程は本コースにおける範囲外となります。
ファームウェアの解析環境として仮想ソフトウェア上に用意したKali Linux(2021.3 以降)が用意されていることを前提としています。
このコースが対象とするホームネットワークデバイス
無線LANルーター TP-Link TL-WR841N
無線LANルーター PLANEX MZK-DP150N
無線LANルーター Sitecom WLR-4004
無線LANルーター Linksys E1550(DVRF:Damn Vulnerable Router Firmware)
モバイルWi-Fiルーター D-Link DWR-932B
ネットワークHDD TRENDnet TS-S402
電子書籍リーダー kobo glo
ファームウェア解析・組み込みLinuxのセキュリティに関する次の技術・手法
バイナリデータ形式のファームウェアの構造を把握しファイルシステムを抽出する(binwalkコマンド)
ホームネットワークデバイスにおけるファイルシステムの見所
ファームウェアを本来のCPUアーキテクチャとは異なるエミュレーション環境で擬似的に動作させる(chrootコマンド, QEMU)
パスワード解析ツールによるブルートフォース攻撃(fcrackzip, Jhon the Ripper)
デコンパイラによるバイナリファイルの静的(コードを実行させることなく)解析(Ghidra)
異なるバージョン間の差分を確認しコンポーネントをバックトレース(KDiff3ツール)
暗号化されたファームウェアイメージの暗号アルゴリズムを特定し復号する(PythonによるXOR復号ツール開発)
スタックベースバッファオーバーフローの脆弱性を突くエクスプロイトコードを開発する(GDB, PythonによるFuzzerとExploit)
バグバウンティの追体験ができる脆弱性
CVE-2013-6360:JVNDB-2013-007273:TRENDnet TS-S402 における認証に関する脆弱性, 不適切な認証(CWE-287)
CVE-2016-10177:JVNDB-2016-007195:D-Link DWR-932B ルータにおける特定のパスワードで管理者および root ログインをされる脆弱性, ハードコードされた認証情報の使用(CWE-798)
CVE-2016-10178:JVNDB-2016-007196:D-Link DWR-932B ルータにおける "/sbin/telnetd -l /bin/sh" コマンドを起動される脆弱性, セキュリティ機能(CWE-254)
CVE-2016-10179:JVNDB-2016-007197:D-Link DWR-932B ルータにおけるハードコードされた WPS PIN を使用する脆弱性, ハードコードされた認証情報の使用(CWE-798)
CVE-N/A:PLANEX MZK-DP150N ルータにおけるスクリプトインジェクションの脆弱性, クロスサイトスクリプティング(CWE-79)
CVE-N/A:Sitecom WLR-4004におけるファームウェアイメージの暗号化を回避される脆弱性, 暗号の問題(CWE-310)
CVE-N/A:DVRFファームウェアイメージにおけるバッファエラーの脆弱性, バッファエラー(CWE-119), 潜在的に危険な関数の使用(CWE-676)
コースリリース後のアップデート情報
本コースでは、2022年3月2日のリリース以降も、コンテンツの追加(追加 39分23秒)を行っています。
2022/09/22 セクション: 無線LANルーター Linksys E1550(DVRF):バッファエラー(CWE-119), 潜在的に危険な関数の使用(CWE-676) - レクチャー: 無線LANルーター Linksys E1550(DVRF) - コマンド&リファレンス(0分09秒)
2022/03/26 セクション: 最後に - 今後取り組むべき課題(3分52秒)
2022/03/26 セクション: 最後に - コースを通して学んだこと(4分19秒)
2022/03/26 セクション: 最後に - デブリーフィング(1分01秒)
2022/03/14 セクション: 経験からの気づきを理論へ - レクチャー: kobo glo:FCC IDからのデバイス情報の調査(4分44秒)
2022/03/14 セクション: 経験からの気づきを理論へ - レクチャー: kobo glo:ハードウェア分析(3分39秒)
2022/03/14 セクション: 経験からの気づきを理論へ - レクチャー: OWASP Firmware Security Testing Methodology(0分58秒)
2022/03/06 セクション: 最後に - レクチャー: 更なるスキルアップを目指して(1分04秒)
2022/03/06 セクション: 経験からの気づきを理論へ - レクチャー: OWASP IoT Top 6 - 10, 2018(6分56秒)
2022/03/05 セクション: 経験からの気づきを理論へ - レクチャー: OWASP IoT Top 1 - 5, 2018(8分19秒)
2022/03/05 セクション: 経験からの気づきを理論へ - レクチャー: OWASP IoT Top 10(1分49秒)
2022/03/04 セクション: はじめに - レクチャー: 事前準備(2分33秒)
【警告】
本コースは、教育を目的としたものです。コースで紹介しているツールと手法はシステムの所有者によって明示的に許可と同意が得られている場合のみ、その実施が可能です。本コースは違法な活動を肯定するものではありません。
What You Will Learn!
- 市場で流通しているホームネットワークデバイスから脆弱性を見つける
- ハードコードされた認証情報、隠されたメンテナンスモード、脆弱性を抱えている可能性を見立てる
- バイナリデータ形式のファームウェアの構造を把握しファイルシステムを抽出する
- ホームネットワークデバイスにおけるファイルシステムの見所を把握する
- デコンパイラによるバイナリファイルの静的解析を行い脆弱性や隠された機能を発見する
- 異なるバージョン間の差分を確認しコンポーネントをバックトレースする
- 暗号化されたファームウェアイメージの暗号アルゴリズムを特定し復号する
- ファームウェアを本来のCPUアーキテクチャとは異なるエミュレーション環境で擬似的に動作させる
- 問題を引き起こしそうなデータ(Fuzz)を送り込み応答を監視することで脆弱性を検出する
- ファームウェア開発プロセスにおいて問題が頻出しやすい場所を理解する
Who Should Attend!
- IoT機器・組み込みLinuxを活用したサービスの企画や開発を検討されている方
- バグバウンティプログラムに飛び込もうとしている初心者の方
- ペネトレーションテストやリバースエンジニアリングの手法に関心のある方
- 倫理的なハッキングとサイバー攻撃、サイバーセキュリティに関心のある方
- 攻撃者の視点、攻撃手口(TTPs)を理解し組み込みLinuxの死角を発見したい方