本コースの目的
本コースでは、市場で流通しているホームネットワークデバイスのファームウェア入手の検討から開始します。その解析によって、既に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秒)
【警告】
本コースは、教育を目的としたものです。コースで紹介しているツールと手法はシステムの所有者によって明示的に許可と同意が得られている場合のみ、その実施が可能です。本コースは違法な活動を肯定するものではありません。
2810
80
TAKE THIS COURSE