セキュリティ設計の手順
IoT製品やサービスのセキュリティ設計だからといって、手順に関して言えば従来のセキュリティ設計の手順と大きく異なることはありません。IoT製品やサービスのシステムの全体構成を把握した後、「脅威分析」を行い、さらに「対策検討」を実施します。
設計対象の脅威を分析する
脅威分析の段階では、設計しているIoT製品のどのようなところが攻撃され得るか、どういうシナリオで攻撃されるかについて網羅的に把握することが重要です。ガイドラインでは、脅威分析の対象となるIoT製品としてネットワークカメラを題材として議論を進めています。ネットワークカメラの場合は、例として以下のような攻撃が行われてしまう可能性が考えられます。
- ネットワークカメラの画像が盗み見られてしまう
- ネットワークカメラから送信される画像が改ざんされてしまう
- ネットワークカメラの画像が閲覧不可能とされてしまう
- ネットワークカメラを乗っ取られてDDoS攻撃などの踏み台とされてしまう
攻撃が想定できる点についてある程度網羅できたら、各々の攻撃がどのような過程で実現されてしまうかを検討します。いずれの攻撃の場合でも、攻撃シナリオが複数存在することがあるので、さまざまな実現可能性を考えることが重要です。
例えば、ネットワークカメラの画像が盗み見られてしまう場合、以下の表に示す様に複数のシナリオが考えられます。
| 攻撃のシナリオ | シナリオの実現に用いられる手法の例 |
|---|---|
| 認証情報の推測によりネットワークカメラに侵入して画像を不正閲覧されてしまう | パスワードを設定していないネットワークカメラの内部に侵入されてしまう |
| 初期設定のパスワードを用いているネットワークカメラの内部に侵入されてしまう | |
| 総当たり攻撃などにより認証情報を推測されネットワークカメラの内部に侵入されてしまう | |
| ネットワークカメラから送信される画像データを盗聴されてしまう | ネットワーク上の通信パケットをキャプチャされて画像データ部分を抽出されてしまう |
| 脆弱性を悪用されてネットワークカメラに侵入され画像データを窃取されてしまう | 脆弱性を突かれてカメラの内部に侵入され画像データを抽出されてしまう |
セキュリティ対策を検討する
1つの攻撃にしても、実現に複数のシナリオが存在するため、1つの対策で特定の攻撃が起こる可能性を潰すことはできません。よって、複数の対策を併用した多層防御を実施することが望ましいですが、設計の問題や金銭的な事情により、考え得るすべての対策を実装することは困難である場合が多いでしょう。製品の設計や投入可能な予算、攻撃が実現されてしまった場合に生じる影響度や損害などを考慮して、製品に実装するセキュリティ対策を選定する必要があります。
脆弱性への対応の指針
製品自体に脆弱性の存在が発覚した場合、同じ型の製品が攻撃者の標的となってしまい、世間に大きな影響を及ぼしてしまう可能性があります。そうした状況を未然に防ぐために、セキュアプログラミング技術などを意識してソフトウェアを開発することです。開発の段階からIoT製品に脆弱性を作り込まないように、細心の注意を払う必要があるということです。
特に、既存のソフトウェア製品やオープンソースのプログラムを利用する場合は、単に機能だけで選択するのではなく、コードレビューや利用するソフトウェアに既知の脆弱性が存在しないか確認することなどにより、適切なものを選択するべきでしょう。また、開発した製品を出荷する前にも、ソースコードの精査やファジング(想定されていない値を入力した際の動作を確認するソフトウェアテストの手法)および既知の脆弱性を検査することにより、潜在している脆弱性の特定と解消に努めることが必要となります。
製品が出荷された後でも、設計段階に気づくことができなかった脆弱性が発見されることがあります。また、組み込んだ既存ソフトウェアに新たな脆弱性が見つかることもあります。そこで、製品テストや、JVN iPediaなどの公開データベースの活用による新規脆弱性の情報収集を継続的に行い、IoT製品のセキュリティ強化に努めましょう。
