セキュアなIoT製品開発の実現にOWASPドキュメントをビルトイン
OWASPには各ステップにおいて、実施の助けとなるドキュメントがあります。
脅威モデリングの実施
「セキュアなIoT製品開発13ステップ」では、「IoTデバイスにおける脅威と(それがもたらす)問題の組についてのリファレンスを確保することが、それらに適切に対処するために重要となる」と紹介しています。
OWASP IoT Top10では、IoTにおけるアタックサーフィスが定義されていて、攻撃シナリオや対策の例などが掲載されており、脅威モデリングを行う際に活用できること間違いなしです。OWASP IoT Top10の詳細な説明については、『IoT時代において重要性が増すデバイスのセキュリティ』を参照してください。
なお、OWASP IoT Projectでは、2014年のOWASP IoT Top10公開以降も検討が進んでいます。
現在、OWASP IoT Top10は、IoT Attack Surface Areas ProjectとIoT Vulnerabilities Projectに分けてより詳細な検討が進められ、OWASP IoT Projectは随時パワーアップしています。
![表2 IoTにおけるAttack Surface AreaとVulnerabilityの関係](http://cz-cdn.shoeisha.jp/static/images/article/10261/10261_01_ss.png)
セキュリティプロセスの適用
「セキュアなIoT製品開発13ステップ」では、ただ単に開発のみに着目するのではなく、自らの製品にセキュアなプロセスを組み入れる責任も負うべきであるとしています。実際、自社の開発工程において、製品にセキュリティを作り込むには、どこにどれほど力を入れたらいいか、どうやって判断するのでしょうか。それには、脆弱性検査だけでなく、実行環境の構築と運営、コードレビュー、設計レビュー、脅威分析、開発にかかわるさまざまなプロフェッショナルへの情報提供や教育も含まれます。
OWASP OpenSAMM(ソフトウェアセキュリティ成熟度モデル)は、OWASPコミュニティで開発したものです。どんな組織でも、それぞれが直面する固有のリスクを踏まえ、それに応じたソフトウェアセキュリティ対策のための戦略を策定し、その改善プロセスを実施できるフレームワークです。
![図1 現状の把握と改善計画と実施による成熟度のイメージ](http://cz-cdn.shoeisha.jp/static/images/article/10261/10261_02_ss.png)
4つのカテゴリ、12のアクティビティごとに、業界のプラクティスを盛り込んでいます。これにより、ソフトウェア開発において考慮したい4つの観点ごとに、実施すべきセキュリティ対策の成熟度をスコアリングすることができます。スコアリングした結果に基づいて現状を把握し、セキュリティ対策の段階的に改善すべきポイントと方向性の立案が可能になります。こうした成熟度モデルによるスコアカード化は、他の分野でもよく用いられます。
ソフトウェア構築・運用プロセスにおける成熟度モデルには、他にもBSIMMが知られています。OWASP OpenSAMMは、オープンに開発されていますが、このBSIMMとも高い互換性があります。
ソフトウェア開発において考慮したい観点 | 成熟度のスコアリング対象 |
---|---|
ガバナンス |
戦略&指標 ポリシー&コンプライアンス 教育&指導 |
構築 |
脅威の査定 セキュリティ要件 セキュアなアーキテクチャ |
検証 |
設計レビュー コードレビュー セキュリティテスト |
デプロイ |
脆弱性管理 環境の堅牢化 運用体制のセキュリティ対応 |
継続的インテグレーションの実施
「セキュアなIoT製品開発13ステップ」では、JenkinsなどのCIサーバを活用し、脆弱性テストツールを用いてテストを実施して、脆弱性が確実に解消されていることを確認するよう推奨しています。「セキュアなIoT製品開発13ステップ」にも記載されている通り、Jenkinsにプラグインを提供しているOWASP ZAPにより、ソフトウェア開発ライフサイクル(SDLC)に柔軟性が提供されることと、セキュアなIoTデバイスの実現が期待されます。
OWASP ZAPの詳細な説明については、『OWASP ZAPで開発中にセキュリティ診断!』を参照してください。
RESTセキュリティの考慮
「セキュアなIoT製品開発13ステップ」では、RESTセキュリティの検討をOWASP Cheat Sheet SeriesのREST Security Cheat Sheetを用いて行うことを推奨しています。当該ドキュメントにより、RESTベースのサービスにおけるベストプラクティスを学ぶことができます。
Certificate Pinningサポートの実装
「セキュアなIoT製品開発13ステップ」では、IoTのファームウェアとモバイルアプリケーションにおけるCertificate Pinning実装により、IoTデバイスが悪意のあるサーバー、あるいはプロキシと通信するように設定されている、中間者攻撃に対する防御を実現可能だとしています。また「セキュアなIoT製品開発13ステップ」では、Certificate Pinningの実装方法をOWASP Cheat Sheet SeriesのCertificate Pinning Cheat Sheetを用いて行うことを推奨しています。当該ドキュメントにより、ピン留めの実装方法などを学ぶことができます。
取得するログの検討
「セキュアなIoT製品開発13ステップ」では、企業をセキュアに保つための最も重要な事項の一つは、「どのような(セキュリティ)イベントが企業に起きているかを知ることである」と紹介しています。
OWASP Logging Cheat Sheetでは、ロギングの設計方法から運用、廃棄方法まで学ぶことができます。
なお、これまで紹介してきたOWASP Cheat Sheet Seriesは約60のチートシートで構成されていますが、各チートシートの概要を一覧でまとめたOWASP Cheat Sheet Seriesインデックスも合わせてご活用いただけます。
セキュリティレビューの実施
「セキュアなIoT製品開発13ステップ」では、製品のライフサイクルにわたる継続的なフィードバックと最適化が必要であることを示しているOWASP AppSec Pipelineを活用し、IoT製品をセキュアに保つことを推奨しています。
![図2 AppSec Pipelineの一例](http://cz-cdn.shoeisha.jp/static/images/article/10261/10261_03_ss.png)
また、事前のセキュリティ対策についてまとめた最新のOWASP Proactive Controlsにおいても、「早期に、繰り返しセキュリティを検証する 」ことが第1項目として定義されています。具体的には、開発工程のより早い段階から、それぞれ高速かつ可能な限り自動化されたフィードバックループを通じて、品質を作り込むことの必要性を示しています。これは、さまざまなソフトウェアが関わるIoT製品開発におけるセキュリティを保つことにおいても、不可欠であると考えられます。
おわりに
本記事では、クラウドセキュリティアライアンスジャパンが公開している「セキュアなIoT製品開発」の紹介に加え、解説されている事項を実現するために有用なOWASPのドキュメントを紹介しました。本記事により、安全・安心なIoT社会の実現への関心が高まることを期待しています。