導入
本記事は以下の続編としてクラウド・モバイル・IoTセキュリティに関する脆弱性・攻撃ベクトルを解説します。
この記事で得られること
- クラウド/モバイル/IoTに対応する主要な脅威と攻撃ベクトルを理解できる
- 各領域に固有の典型的な脆弱性と、代表的ツール・防護策の関係性を把握できる
⚠️ 注意(必読)
本記事で扱う内容は、悪用した場合、重大な法的リスクを伴います。
許可された演習環境・検証環境でのみ実施してください。
実在組織・個人への攻撃は禁止されています。
1. はじめに
- 本記事はCEHの7章「クラウド、モバイル、IoTセキュリティ」の内容に該当します
- 本記事では、クラウド・モバイル・IoTで頻出する攻撃ベクトルを体系的に整理し、実際の攻撃例・脆弱性・代表的ツールを俯瞰します
2. クラウドテクノロジーに対する攻撃や脆弱性の解説(7.1)
2.1 クラウド概要
NIST SP800-145「NISTによるクラウドコンピューティングの定義」においてクラウドの特性や展開モデル、サービスモデルは以下の通りまとめられている
- クラウドの特性として、分散配置・オンデマンドセルフサービス・スケーラビリティ・リソースプーリング・急速な弾力性・計測可能・自動管理がある
- 展開モデルはPublic・Private・Community・Hybridの4種類
- サービスモデルはIaaS・PaaS・SaaSの3つが基本モデルとして定義される
※現状、XaaSとして上記以外のサービスモデルが複数存在します
2.2 資格情報収集攻撃
インフラへ侵入し、有効なユーザー名・パスワード・トークン・PINなどの認証情報を盗み出す攻撃です。
攻撃例:
- 偽装ログイン画面(SETによるハーベスティング)
- SSO悪用・クッキー窃取
4章ソーシャルエンジニアリング攻撃におけるSETを利用した攻撃は以下の記事で扱いました。
2.3 権限昇格
ソフトやアプリのバグや設計上の欠陥(ビジネスロジックの欠陥)を悪用して保護されているリソースへのアクセスを取得する攻撃です。
攻撃例:
- Windowsにおけるバッファオーバーフロー
- iOSにおけるジェイルブレイク
権限昇格の種類:
- 垂直権限昇格:権限の低いユーザーが高いユーザー専用の機能などにアクセスできること
- 水平権限昇格:あるユーザーがほかのユーザー向けの機能やコンテンツなどにアクセスできること
2.4 アカウント乗っ取り
2.2 資格情報収集攻撃などによってアカウントを不正利用することです。
攻撃例:
- ラテラルフィッシング:他者の正規メールアカウントを利用するフィッシング
- OAuth/SAML/OpenID Connect 悪用
防護策:
- ログイン異常検知(位置情報や試行回数)
- 大量DL/共有の異常挙動検知
2.5 メタデータサービス攻撃
メタデータサービスとは、ハードコードされてきた認証情報をメタデータに置き換えてAPIなどを通じて提供・管理するサービスです。
AWSやGCP、Azureなどで利用されており、クラウドサービスの認証情報やユーザー名やパスワードが保管されているため攻撃を受けるとそれらが流出する可能性があります。
攻撃例:
http://xxx/latest/meta-data/iam/security-credentials/<IAM_ROLE>
防護策:
- nimbostratusによる脆弱性評価
2.6 誤設定のクラウド資産への攻撃
攻撃例:
- IAM設定不備
- IAMはユーザーとアプリケーションの認証と認可を行うシステムです
- フェデレーション認証の不備
- SAML Replay → SAMLアサーション再利用
- IDの最有効化による権限操作など
- JWT盗難 → トークン再利用攻撃
- JWTはJSON Web Tokenのこと
- SAML Replay → SAMLアサーション再利用
- 不用意に公開されたAWS S3バケットへのアクセス
- 不用意に公開されたコンテナ(Docker/K8s)
2.7 リソース枯渇とDoS
攻撃例:
- 単一パケットDoS脆弱性の悪用によるアプリクラッシュ
- D2O(Direct-to-Origin)攻撃
- クラウドプロバイダーの手前で展開されるコンテンツ配信ネットワーク(CDN)や大規模プロキシ背後のネットワークのIPアドレスを明らかにしDoS攻撃を行う
2.8 クラウドマルウェアインジェクション
悪意あるVMイメージやコンテナ、アプリを混入させてバックドアや盗聴、データ操作などにつなげる攻撃。
攻撃例:
- タイポスクワッティング狙った偽のコンテナ
2.9 サイドチャネル攻撃
コンピュータシステムのタイミング情報、消費電力、電磁波漏洩、音声といった物理放射を解読し別の攻撃につなげる手法。クラウドに限った攻撃ではない。
攻撃例:
- Spectre・Meltdown脆弱性をついた攻撃
- Spectre脆弱性とはマイクロプロセッサの分岐予測・投機的実行の実装に関する脆弱性
- 悪用されると正当な権限のないプロセスが保護されたメモリ領域にアクセス可能となる
- Meltdown脆弱性もプロセッサに含まれる脆弱性
- 悪用されると正当な権限のないプロセスがカーネルメモリなどの特権レベルのメモリにアクセス可能となる
- Spectre脆弱性とはマイクロプロセッサの分岐予測・投機的実行の実装に関する脆弱性
2.10 データストレージシステムの脆弱性
- デフォルト設定やからのユーザ名、パスワード
- インターネットへの不要な露出
- サニタイズ不足
- ソフトウェアおよびインジェクションの脆弱性
- 不必要なエラーメッセージの出力
2.11 仮想マシンの脆弱性
- VMエスケープ脆弱性
- 他の仮想マシンやハイパーバイザーにアクセスできる脆弱性
- ハイパーバイザーの脆弱性
- 攻撃者がハイパーバイザーを制御できる脆弱性
- 多くの場合は悪意のあるハイパーバイザーを利用することで発生する
- VMリポジトリの脆弱性
- 構成ファイルや仮想ディスクなどのストレージに関する脆弱性
- ハイパーバイザーの脆弱性と同様の手段で発生する
2.12 コンテナに関する考慮事項と防護策、及びツール
考慮事項:
- 複数レイヤでセキュリティを検討する必要がある
- コンテナイメージ
- コンテナ内のソフトウェア
- ホストOS
- コンテナとホストOS間
- Kubernetesなどのランタイム環境とオーケストレーションプラットフォーム
防護策:
- 開発時の安全なコーディングとシフトレフトセキュリティ
- シフトレフトとは上流工程からセキュリティ対策を組み込む考え方
- 安全なリポジトリストレージやIaaSの利用、及びユーザーアクセスの管理
- ランタイムスキャンやCISベンチマークの採用
ツール:
- Anchore's Grype:オープンソースのコンテナ脆弱性スキャナー
- Clair:オープンソースのコンテナ脆弱性スキャナー
- Dagda:オープンソースの静的解析ツールセット
- kube-bench:Kubernetesクラスターのセキュリティ評価をするオープンソースツール
- kube-hunter:Kubernetesクラスターのセキュリティ体制を確認するためのオープンソースツール
- Falco:Kubernetes用の脅威検出エンジン
2.13 SDK / CDK について
6.12で学んだSwaggerやOpenAPIに加えてソフトウェア開発キット(SDK)やクラウド開発キット(CDK)が攻撃/防護の両面で有用な情報を提示してくれます。
参考:AWSのCDKの使用方法はこちら
3. モバイルデバイスおよびIoTデバイスへの攻撃と脆弱性(7.2)
3.1 モバイルデバイス
3.1-1 攻撃ベクトル
- リバースエンジニアリング
- サンドボックス分析
- スパム・フィッシング
3.1-2 モバイル特有の脆弱性
- 安全でないストレージ
- iOSにはiOSキーチェーンという暗号化の仕組みが存在するものの、設計不備がある場合にリバースエンジニアリングなどでリスク顕在化の恐れがある
- パスコードと生体認証統合による脆弱性
- モバイルデバイスのパスコードはセキュリティレベルが低く、生体認証との統合によって脆弱性に発展する恐れがある
- 証明書ピンニング
- 証明書ピンニングとは、モバイルアプリにサーバーの証明書または公開鍵を保存し信頼されたサーバーとのみ接続を確立する方法
- CAの侵害や偽の証明書に誘導されるとインシデントへ発展する
- コンポーネント脆弱性
- 特にAndroidで課題
- モバイルOSの脆弱性や依存関係の脆弱性を悪用される
- 権限過剰付与
- ビジネスロジックの脆弱性
- 設計上の不備の脆弱性のこと
3.1-3 セキュリティテストで利用されるツール
- Burp Suite:モバイルアプリやWebサービス、API向けに利用できる
- Drozer:Android向け
- needle:iOS向け
- Mobile Security Framework(MobSF):モバイルアプリとマルウェアを自動分析
- Postman:APIテスト向け
- Ettercap:L2ベースのオンパス攻撃対策向けツール。モバイルアプリでも利用可
- Frida:リバースエンジニアリング向けツール
- Objection:Fridaをバックグラウンドで使用するモバイルアプリ探索ツール
- Android SDK tools:アンドロイドの環境を分析するツール
- ApkX:アンドロイドアプリケーションパッケージ(APK)ファイルを逆コンパイルするツール
3.2 IoTデバイスの攻撃とプロトコル
3.2-1 IoT環境の弱点
- 統一仕様が少ない
- リソースが貧弱
- 更新頻度が低い
3.2-2 利用される主要プロトコル
- Wi-Fi
- Bluetooth and Bluetooth Low Energy (BLE)
- Zigbee
- Z-Wave
- LoraWAN
- Insteon
- Modbus
- Siemens S7comm (S7 Communication)
※ 上記のうち、Zigbee / BLE / Wi-Fi / Z-Wave は短距離無線通信、Modbus / S7comm は産業制御システム(ICS)関連プロトコルです。
3.2-3 BLE攻撃
BLEは暗号化を適切に実装していないデバイスが多いため、BLEデバイスのスキャンや広告傍受によるオンパス攻撃の対象となる。
代表ツール:
3.2-4 IoT全般の脆弱性
- 脆弱な実行環境
- DoS耐性の弱さ
- 入力検証不備・データ破損
- 平文通信による機密データ漏洩
- 古いソフトウェア/ファームウェア/ハードウェアの使用
まとめ
- クラウド/モバイル/IoTは攻撃の種類こそ異なるが、**共通して「認証情報の扱い」「誤設定」「暗号化不足」**が主要リスクとなる
- IoT では更新頻度の低さ・古いファームウェアの利用も主要なリスクとなる
- システム設計・運用設計の段階でセキュリティを組み込むことが重要である
📍 次回予告
次回は8章「エクスプロイト後の技術」の内容を解説します。
次の記事はこちら