目次


IoT サイバー攻撃の脅威に立ち向かう

IoT アプリケーションのセキュリティー・ベスト・プラクティス

Comments

モノのインターネット (IoT) の急速な普及を後押ししているのは、イノベーション、効率性、コスト節約というメリットです。メディアはスマート・ホーム・アプライアンスやウェアラブル・ガジェットにスポットライトを当てていますが、それとは別に IoT はあらゆる業種のビジネス・オペレーションに大変革をもたらしています。特に、ロジスティクス、倉庫保管、生産ライン、パイプライン輸送、交通管理の分野では、IoT が大変革をもたらすテクノロジーであることがすでに実証されています。これらの分野では、接続されたデバイスのネットワーキングとリモート制御により、新たなレベルの生産性と情報管理および機能を実現しています。

例えば Continental Tires 社では、タイヤ製造工場でゴムのカートを見つけるのに、以前は手書きのメモに頼っていました。この方法では従業員が広大な工場内でカートを見つけるのに手間取り、それが原因で生産の遅れが生じてコストがかかっていました。この問題を解決するために、この会社は IoT テクノロジーを採用しました。ゴムのカートと会社のインベントリー管理システムがワイヤレス・ネットワークを介して直接統合、接続されました。IoT テクノロジーを利用したこの解決策により、従業員はモバイル・デバイス・アプリケーションを使って、広大な工場内のどのカートでもリアルタイムで見つけられるようになりました。それと同時に、工場の管理チームは各カートの中身と、カートを現在の場所から生産ラインへ移動するまでの所要時間を把握できるようになったため、工場の生産効率が飛躍的に向上する結果となりました。

別の例として、Kenya Pipeline 社では自社のパイプライン・インフラストラクチャーをアップグレードし、接続された IoT デバイスを使用して油圧レベル、温度、流速を検知できるようにしました。ネットワーク化された、これらのシンプルなデバイスは、リアルタイムのメトリクスとアラートを運用管理チームに提供するだけでなく、油漏れを検出するとそれに反応し、自動的にパイプラインをシャットダウンします。さらに、その原因が事故であるか盗難であるかに関わらず、油漏れを早急に検出して反応できるようになったことから、この会社は何百万ドルものコスト節約を達成したとともに、油漏れによる環境への影響を抑えることにも成功しました。欠陥のあるパイプへの油送を瞬時に停止できるからです。

現実世界のモノに接続してデータを収集し、管理するという新しい IoT 時代の幕開けとともに、新たなセキュリティー・リスクが生じています。そのリスクは、自動化された高度なサイバー攻撃から、がむしゃらにデータを盗んで大混乱を巻き起そうするハッカーに至るまで、多岐に渡ります。IoT デバイスのセキュリティーは、それらのデバイスを管理するために使用するソフトウェアとアプリケーションに大きく依存しています。つまり、ソフトウェア開発者はサイバー攻撃の最前線に置かれているため、セキュアな IoT アプリケーションを開発する方法を把握していなければなりません。

この記事では、回復性に優れ、IoT のセキュリティー・リスクを軽減する IoT アプリケーションを、開発チームが生み出すのに役立つ、セキュア・コーディング手法とセキュリティー機能についてのベスト・プラクティスを概説します。

IoT サイバー脅威の例

ネットワーク接続されているすべてのコンピューターと同じく、IoT デバイスも攻撃を受ける可能性があります。IoTデバイスが接続されているネットワークから直接攻撃されることもあれば、IoTデバイスを制御するアプリケーションが攻撃の手段として使われる場合もあります。ハッカーが IoT デバイスをターゲットにする理由はいくつかあります。サイバー犯罪者は利益を得る目的で、IoT デバイスの制御を乗っ取ろうとします。その目的はデータを盗んだり、企業を脅迫したりすることであったり、料金を払っている顧客に成り代わって IoT デバイスを使用して大量の分散型サービス妨害 (DDoS) 攻撃を仕掛けることであったりします。国民国家は、極めて重要な国家インフラストラクチャーに関連する IoT デバイスや、スパイ活動用の IoT デバイスをターゲットにすることで知られています。また、大混乱を引き起こすことでハッカー・コミュニティーの称賛を集め、自尊心を満足させて楽しんでいるハッカーもいます。さらに、IoT サイバー攻撃によって傷害致死などの実際の被害が発生していることから、サイバー・テロリストでさえも IoT デバイスに対する攻撃に興味を持っていることは明白です。そのような IoT サイバー脅威の例を 3 つ紹介します。

  • 2014 年に「My Friend Cayla」という子供用の小さな人形が発売されました。この人形は、音声認識機能、モバイル・アプリケーション、そしてインターネットを使って、子供と会話したり、質問に答えたりすることができます。定義からすると、この人形は IoT デバイスです。発売直後、この人形はセキュリティー研究者によってハッキングされました。当初は汚い言葉を使わせることが目的でしたが、その後、不気味でむしろ悪質なスパイ・ツールとして使うようになりました。この人形を使えば、攻撃者が人形のデフォルト Bluetooth 設定を使用して、子供の家の外から子供と会話することも可能になります。このセキュリティー研究者は、人形 (IoT デバイス) 上の脆弱なファームウェア・セキュリティーと、その人形を制御するアプリケーションの脆弱なアプリケーション層セキュリティーの両方を突いたというわけです。2017 年 2 月に、ドイツ政府はこの人形を壊すよう、親に勧告しました。
  • 2016 年 10 月、Dyn というインターネット DNS サービス・プロバイダーが、分散型サービス妨害 (DDoS) 攻撃によってサービス停止の状態に追い込まれました。史上最大の DDoS 攻撃の 1 つとして挙げられるほどの、このサーバー攻撃により、GitHub、Twitter、Reddit、Netflix、Airbub、Starbucks、PayPal や、その他多数の企業 Web サイトがオフラインになりました。この大掛かりなサーバー攻撃の背後にあったのは、マルウェアに感染した 152,000 台以上もの IoT デバイスを含む、セキュリティーが侵害されたデバイスからなる大規模なボットネットです。このような DDoS 攻撃で、これだけの数の IoT デバイスが使われたのは、これが初めてのことでした。IoT デバイスが感染していたのは Mirari というマルウェアです。攻撃者はこれらの感染したデバイスをリモートで制御し、それぞれのデバイスから Dyn に大量のネットワーク・トラフィックをストリーム配信させたのです。その後、IoT デバイスのセキュリティーが脆弱であり、セキュアなコーディング慣例に従って設計、開発されていなかったことがわかりました。そのために、簡単かつ迅速に大規模なスケールでマルウェアに感染させることができたというわけです。
  • 2015年 2月に放映された TV 番組「60 Minutes」で、ハッカーが自動車にアプリケーション・バッファー・オーバーフロー攻撃を仕掛けてハッキングした後、自動車を遠隔制御してブレーキを効かなくすることが可能であることを実際に示すエピソードが紹介されました。2015年 5月には、コンピューター・セキュリティーのエキスパートが、エンターテイメント・アプリケーションを使って飛行中の飛行機をハッキングするという事件が起こっています。その後の FBI の調査では、彼が短時間、飛行機を制御していたことが報告されています。既知の IoT 事件で悪用されたセキュリティー上の弱点は、ほとんどの場合、アプリケーション層にありました。つまり、どのように IoT アプリケーションを開発するかが、生死を分ける問題になり得るということです。
  • 2010年 6月に、非常に高度で独特な Stuxnet というコンピューター・ワームが世界のメディアの注目を集めました。Stuxnet は、イランの核施設で使用されている特定のソフトウェア制御システムだけをターゲットとするように設計されたマルウェアであり、Microsoft Windows のゼロデイ脆弱性を突いて核施設のネットワーク全体に伝播し、シーメンス STEP7 ソフトウェアの有無をスキャンしました。そしてシーメンスのアプリケーションのセキュリティー侵害に成功し、回転式遠心分離機の速度を急速に上げ下げする命令を出したのです。速度の急速な変化によって引き起こされた振動により、遠心分離機はバラバラになりました。2009年 11月から 2010年 1月までの間に、推定 1000 台を超える遠心分離機が Stuxnet マルウェアによって破壊され、イランの核プログラムを大きく後退させることになりました。この現実世界でネットワーク接続されたマシンは、ネットワーク経由でそれらのマシンを制御するアプリケーションへのセキュリティー侵害によってダメージを受ける可能性があることを、この Stuxnet マルウェアが実証したのです。

以上の IoT サイバー脅威の例から、私たちは何を学ぶことができるでしょうか? IoT デバイスのアプリケーション層は、ハッカーにとって最大の攻撃面です。アプリケーション層には、IoT デバイスと接続するあらゆるアプリケーションが含まれています。それらのアプリケーションには、ローカル Web アプリケーションもあれば、クラウド・ベースのアプリケーションや、スマートフォンあるいはタブレットのアプリもあります。このことから、アプリケーション・セキュリティーは、あらゆる IoT アプリケーションのソフトウェア開発ライフサイクル (SDLC) の切り離せない部分としてとらえなければなりません。特に設計ステージ、開発 (コードの作成) ステージ、テスト・ステージでは、極めて重要な部分となってきます。

セキュアな IoT アプリケーションを設計する

IoT アプリケーションの計画ステージや設計ステージでは、その計画されたアプリケーションのセキュリティー要件と個人情報保護要件について正式かつ「徹底的な」評価を行う必要があります。IoT アプリケーション開発には、「Security by Design (設計段階からセキュリティーを確保する)」という手法が必要になります。この手法では、セキュリティー機能を開発プロセスの後半に想定して適用するのではなく、設計ステージで、あらゆる IoT アプリケーション機能のセキュリティー要件を設計の一環として検討しなければなりません。他のあらゆるバグや問題と同様に、開発の後半の段階でセキュリティー関連の問題を修正するとなると、コストが増え、時間もかかります。したがって、アプリケーションの設計フェーズで、IoT アプリケーションに考えられるあらゆるセキュリティー要件を検討し、計画することが不可欠となるのです。

セキュリティー要件のレビュー

設計ステージで、セキュリティー要件のレビューを行って、開発する IoT アプリケーションに適用されるセキュリティー要件を確認します。

  • ユーザー・アカウントの管理機能を計画すること。IoT アプリケーションによって適切なレベルでアカウントをカスタマイズできるようにすること。
  • セキュアなパスワード・リセット・メカニズムを設計すること。パスワードのリセット・プロセスは、ユーザーの便宜を優先してセキュリティーの厳格さを緩めがちですが、脆弱なパスワード・リセット・プロセスだと、システムに容易に侵入できるバックドアになってしまう恐れがあります。
  • 管理アカウント特権は必要に応じて持つことを基本とするよう制限するユーザー・アカウント構造を設計すること。管理上の操作と権限は、標準ユーザー・アカウントとは切り離すのが賢明です。このように構成すると、ユーザーによる誤った構成が原因で深刻なセキュリティー・ホールが生じるリスクを抑えられます。
  • アカウントのパスワードをアプリケーションでどのように保管するかを決定すること。平文のパスワードをデータベースやフラット・ファイルに保管することは禁物です。ベスト・プラクティスは、ソルト付きハッシュ・アルゴリズム (SHA-256 とソルトなど) を使用してパスワードを計算して一意のハッシュ値に変換することです。こうしておけば、パスワードを平文に戻すことができません。
  • 2 要素認証機能の追加を検討すること。信頼できないネットワークからアクセスされる機密データを処理するアプリケーションの場合は、なおのことです。
  • IoT アプリケーションにアカウント管理システム (Microsoft Active Directory サービスなど) を統合するためのサポートの追加を検討すること。この機能は、IoT アプリケーションをビジネス・エンタープライズ環境に統合する際に役立ちます。
  • 個人データまたは機密データをサード・パーティーの環境や信頼できない環境に保管することを計画している場合は、保管されているデータを保護するために暗号化を使用することを検討すること。
  • デジタル署名付きの (正真正銘の) 更新しか適用できないようなソフトウェア更新機能を設計すること。さらに、可能であれば、自動更新プロセスを検討すること。
  • アプリケーションがエンタープライズ・セキュリティー監視システムや syslog サーバーを使用してセキュリティー・アラート (ログイン試行の失敗など) を送信できるようにする、セキュリティー通知機能を提供すること。
  • セキュリティーの専門家を招いて、アプリケーションのセキュリティー機能とその設計を監査し、承認してもらうこと。

個人情報保護法に関する影響アセスメント

個人データを収集、保管、処理する IoT アプリケーションは、そのアプリケーションに適用されるデータ保護法や個人情報保護法に準拠するように個人データの収集、保管、処理を行わなければなりません。個人データがどの国に属するものであるかによって程度の差はありますが、個人情報保護法では厳しい要件を規定しています。アプリケーションと IoT デバイスが、適用される法律に確実に準拠しているようにするには、個人情報保護法に関する影響アセスメントを実施する必要があります。アセスメント対象には、クラウドやサード・パーティーによる個人データの保管と処理も含まれます。

  • アプリケーションによる個人データの使用法として計画されたすべてを文書化し、正当化すること。
  • 個人データの収集を、絶対的に必要なデータだけに制限すること。
  • 個人データを匿名化するルーチンの使用を検討すること。このプロセスが適切に行われれば、法的なデータ・プライバシー要件を満たす負担が取り除かれます。
  • 保管されているすべての個人データを暗号化するとともにそのデータをネットワーク (プライベート・ネットワークを含む) 上に送信するルーチンの作成、あるいはそのためのソリューション (SSL など) の使用を計画すること。
  • 個人情報の扱いについてコンシューマーへの透明性を確実にすること。個人情報の扱いに関する声明には、個人データの収集、処理、保管 (クラウド・ストレージを含む) について明記してコンシューマーに明らかにしなければなりません。個人データを使用する前に、ユーザーから明示的な同意を得て、アプリケーションによる個人データの使用法のすべてを説明した、個人情報の扱いに関する同意書に、署名または合意してもらう必要があります。
  • 業界の規制が適用されるその他のデータ・タイプについて検討すること。法規制による要件が完全に理解されていて、アプリケーション設計の一環として、それらの要件がコンプライアンスの対象となることを確実にしてください。
  • モバイル・アプリケーションに含まれる個人情報について検討すること。モバイル・アプリケーションは、GPS や SIM カード、あるいは機器の識別番号、機器のデータ、サード・パーティーのモバイル・アプリケーションからのデータとインターフェースを取ることがあります。このすべてのやりとりには、アプリケーション上の個人情報が含まれる可能性があるため、考慮する必要があります。

セキュアな IoT アプリケーションをコーディングする

IoT デバイスを制御および管理できるアプリケーションには、クラウド・ベースのアプリケーション、ローカル Web アプリケーション、モバイル・アプリケーション、そして IoT デバイス自体で実行されるソフトウェアなど、さまざまなタイプがあります。Open Web Application Security Project (OWASP) は、ソフトウェアのセキュリティーをどのように強化するかにフォーカスを置いた組織です。この組織が取り組んでいるモノのインターネット・プロジェクトには、IoT セキュリティーに固有の側面が統合されています。これらの側面は、現在ドラフトの作成が進められている、製造業者、開発者、消費者向けの IoT Security Guidance にまとめられています。

IoT Web アプリケーション: セキュア・コーディングに関するポイント

IoT デバイスを管理するのに一般的に用いられているアプリケーションは、Web アプリケーションです。Web アプリケーションが IoT デバイスで直接ホストされるように設計されているか、それとも社内ネットワーク・サーバーでホストされるように設計されているか、あるいはクラウド内でホストされるように設計されているかに関わらず、Web アプリケーションを開発 (コーディング) する際は、「OWASP Top 10」などの Web アプリケーション・セキュリティー開発のベスト・プラクティスに従わなければなりません。2013 年に認定されたベスト・プラクティスのトップ 10 を挙げている「OWASP Top 10 」は、2017 年後半に予定されている更新に向けて、現在レビューが進められています。

IoT Web アプリケーション開発でよくある過ちは、プライベート・ネットワーク Web アプリケーションのセキュリティーを、一般公開される Web アプリケーションのときほど念入りには講じないことです。社内ネットワークもセキュリティー侵害を受ける可能性はあるので、信頼できない環境になり得ます。従って、社内で公開される Web アプリケーションの脆弱性が、ハッカーやマルウェアに悪用される恐れがあるのです。

IoT Web アプリケーションについては、以下のセキュア・コーディングに関するポイントを検討してください。

  • すべてのユーザー入力をサニタイズすること。このコーディング手法により、Web アプリケーションに対する最も一般的な攻撃を防ぐことができます。最も一般的な攻撃とは、ユーザーによるデータ入力を検証するコードの不備を悪用して、悪意のあるスクリプトを注入したり、SQL データベース・コマンドを実行したり、バッファー・オーバーフローを発生させたりするといった攻撃です。従って、すべてのユーザー入力フィールドをクレンジングして、期待される文字の「ホワイト・リスト」だけを受け入れるようにすることが、基本的なアプリケーション・コーディングのプラクティスとなります。もちろん、クライアント・サイドの検証は Web ブラウザー内でコーディングしますが (JavaScript など)、入力のサニタイゼーションは、常に (サーバー) アプリケーション内で行う必要があります。ほとんどのハッキングは、URL を使用してコードを注入しようと試みられるためです。
  • クッキーをセキュアに使用すること。アプリケーションで SSL を使用してクッキーをセキュアなものとしてマークする場合、クッキーは SSL によって自動的に暗号化されます。Web アプリケーションが SSL で保護されるように設計されていない場合は、業界で認められている暗号化アルゴリズム (AES 256 など) を使用してクッキーの値を暗号化するルーチンをコーディングしてください。
  • アプリケーションのエラー・レポートをロックダウンすること。アプリケーションのエラー・メッセージは、ハッカーにアプリケーションやユーザー・アカウントに侵入する手段のヒントを与える可能性があります。「ユーザー・パスワードが誤っています」といった最も単純なエラー・メッセージでさえも、ユーザー・アカウント名が正しく推測されたことをばらしてしまいます。
  • データ暗号化ルーチンを使用すること。個人データや機密データを暗号化するアプリケーションが必要な場合、独自の暗号化ルーチンを作成しようとはせずに、業界で認められた暗号化方法および暗号化アルゴリズムを使用したライブラリーを利用してください。
  • アプリケーションが使用するサード・パーティー・ライブラリーのセキュリティーを前もって評価して文書化し、セキュリティーの脆弱性とパッチを継続的にモニターすること。例えば、データ通信を暗号化するために使用されているオープンソースの OpenSSL ライブラリーで、最近、Web アプリケーションを攻撃に対して脆弱にする重大な欠陥が見つかりました。この問題はすぐに、このライブラリーの更新バージョンのリリースによって解決されました。
  • 請負業者やサード・パーティーを含め、すべての開発者が、Web アプリケーションのセキュア・コーディング手法を使用する能力があり、その手法を使用するトレーニングを受けていることを確実にすること。

モバイル機器向け IoT アプリケーション: セキュア・コーディングに関するポイント

IoT モバイル・アプリケーション (具体的には、スマートフォンやタブレットのアプリ) は、ハッカーが進んで攻撃しようとするターゲットです。IoT モバイル・アプリケーションを開発する場合も、Web アプリケーションで使用するのと同じセキュア・コーディング手法が必要となりますが、IoT モバイル・アプリケーションを開発する場合には、他にもモバイル機器の認証、テレコムおよび SMS データ通信、さらなるプライバシー・リスクといったアプリケーションのセキュリティーに関する検討事項が追加されます。

モバイル機器向け IoT アプリケーションについては、以下のセキュア・コーディングに関するポイントを検討してください。

  • アプリケーションへのモバイル・プラットフォームとオペレーティング・システムのフィーチャーおよび機能の統合を評価すること。フィーチャーと機能は、モバイル・プラットフォームのタイプやオペレーティング・システムごとに異なります。モバイル機能を統合すると、セキュリティーを強化することができますが、それと同時にアプリケーションのセキュリティーが脆弱になる可能性もあります。例えば、Apple の機器に搭載されている生体認証用の指紋スキャナーは、モバイル・アプリケーションの認証プロセスを強化するものの、モバイル機器の認証システムだけに依存していると、それが無効になった場合、アプリケーションに深刻な脆弱性が生じる可能性があります。
  • IoT モバイル・アプリケーションが、すべての個人データおよび機密データを転送中にも保護すること、そしてデータがモバイル機器に暗号化された状態で保管されることを確実にすること。インターネット接続と Wi-Fi 接続 (つまり、パブリック・ネットワークとの接続) に関しては、暗号化されたネットワーク・サービスを強制的にアプリケーションが使用するようにする必要があります。これには、セルラー・ネットワーク上で送信されるデータも含まれます。また、アプリケーションでは、リムーバブル・メディアに保管されるすべての個人データを暗号化するようにしてください。

IoT デバイスのソフトウェア: セキュア・コーディングに関するポイント

これまでに取り上げたセキュアなアプリケーションの手法に加え、IoT デバイスで実行されるソフトウェアを開発する際には、さらに考慮しなければならないことがいくつかあります。例えば、ファームウェアの使用法や、物理インターフェースのアクセス制御などです。

IoT デバイスのソフトウェアについては、以下のセキュア・コーディングに関するポイントを検討してください。

  • 最新バージョンの IoT デバイス・ファームウェアを使用すること。
  • ファームウェア・メーカーからのファームウェア更新通知やファームウェアのセキュリティー上の脆弱性が見つかったことに関する報告をモニターすること。
  • ファームウェアの新しいリリースをアプリケーションでテストすること。ファームウェアの新しいリリースにより、アプリケーション・コードの更新が必要になることがあります。
  • IoT デバイスの物理インターフェースに関する要件をレビューすること。その要件の中で、アプリケーションがアクセス制御機能を提供することを要求している場合があります。
  • セキュリティー・パッチを適用して IoT アプリケーションを更新できるようにすること。適用するパッチは、デジタル署名付きでなければなりません。また、パッチをインストールする前にアプリケーションの更新プロセスでパッチの検証を行って、悪意のあるパッチがインストールされないようにする必要があります。
  • IoT アプリケーションが、すべての個人データを暗号化するだけでなく、IoT デバイスのリムーバブル・メディア (つまり、メモリー・カード) に保管される、IoT デバイスとアプリケーションの機密データも暗号化すること。

IoT アプリケーションでセキュリティーをテストする

IoT アプリケーションのタイプを問わず、開発フェーズでセキュリティー面の欠陥や脆弱性を見つけるのに最も効果的な手法の 1 つは、コード・レビューを行うことです。コード・レビューを行うのは、適切な能力を持った、理想的には開発プロジェクトに関係していないコード作成者でなければなりません。コード・レビューが正式かつ徹底したプロセスになるよう、別のプロジェクトに取り組んでいる開発者を起用することと、IBM Security AppScan Source などのツールの使用することを検討してください。AppScan Source は、Web アプリケーションやモバイル・アプリケーションのソース・コードの脆弱性をスキャンして、(テスト・ステージに先立つ) SDLC の早期に脆弱性を見つけることができます。このツールは、JavaScript、HTML5、Cordova、Java、Objective-C、またはエンタープライズ・モバイル・プラットフォーム IBM Mobile Foundation で作成されたコードをサポートしています。

コード・レビューを行うと、SDLC にさらなるコストと時間が追加されるように思えるかもしれませんが、コード・レビューには大きな見返りがあります。コード・レビューによって、コストのかかる再テストやリリース後のセキュリティー・パッチを回避できるだけでなく、セキュアでない IoT アプリケーションのセキュリティーが侵害されて開発者としての評判に傷が付くといった事態も避けられるからです。開発ステージでのコード・レビューに加え、SDLC のテスト・ステージでは、徹底的なセキュリティー・テストを行う必要があります。そのテストは、IoT アプリケーションのタイプに応じた内容でなければなりません。

IoT Web アプリケーションのセキュリティー・テストに関するポイント

ソフトウェアのセキュリティー上の欠陥を見つけるために脆弱性スキャンと侵入テストを実行することは、IoT アプリケーションのリリース前に不可欠の最終ステップです。アプリケーション・コードをテストすると、SQL インジェクション、クロスサイト・スクリプティング、クロスサイト・リクエスト・フォージェリー、バッファー・オーバーフロー攻撃などといった一般的なアプリケーションの脆弱性を防ぐことができます。

IoT Web アプリケーションのセキュリティー・テストについては、以下のポイントを検討してください。

  • アプリケーションのセキュリティー・テストを実行して Web アプリケーションの脆弱性を見つけるために、IBM Security AppScan のようなアプリケーション脆弱性スキャン・ツールを使用すること。この手法の詳細については、developerWorks のチュートリアル「Scan your app to find and fix OWASP Top 10 2013 vulnerabilities」を参照してください。
  • セキュアでないアプリケーション・コードが発見されるとどのような問題が発生するのかを、開発者が確実に理解するようにすること。
  • 忘れずに、すべてのテスト API をセキュアにすること。
  • 熟練したハッカーが採る手法を再現した侵入テストを実行すること。侵入テストは、経験を積んだ CEH (Certified Ethical Hacker: 認定倫理的ハッカー) が実行する必要があります。この手法は、インターネットに公開されるアプリケーションのセキュリティーを確実にするためのベスト・プラクティスと見なされています。侵入テストは、アプリケーションのリリース前や、大幅なコード変更が行われた後、そしてそれ以降は年に 1 回定期的に実行してください。
  • 侵入テストのテスターに、検出された脆弱性とその脆弱性を悪用する手段を開発者に十分に説明してもらうこと。

IoT モバイル・アプリケーションのセキュリティー・テストに関するポイント

モバイル・アプリケーションに特化された脆弱性スキャン・ツールを使用してください。その一例は、モバイル・アプリケーションのセキュリティー・テスト専用に設計された、IBM Application Security on Cloud です。IBM Application Security は、モバイル機器向けアプリケーションの脆弱性を検出するだけでなく、検出された脆弱性の詳細、リスクのレベル、そしてその脆弱性に対処するためのソリューションを開発者に明らかにします。

IoT デバイス用ソフトウェアのセキュリティー・テストに関するポイント

IoT デバイス用ソフトウェアは、セキュリティーの専門家と IoT デバイス用ソフトウェアの脆弱性検出を専門とする企業によるテストを受ける必要があります。

まとめ

セキュアな IoT アプリケーションを開発するには、開発チームは従来の慣れ親しんだ枠組みから足を踏み出さなければなりません。長期的に見れば、計画ステージや設計ステージでセキュリティー機能とプライバシーに関する要件を分析するための時間を取ると、セキュアな IoT アプリケーションを開発する上で大きな見返りとなって返ってきます。開発ステージでは、IBM Security AppScan Source を使用してコード・レビューを行うことで、開発者は開発の初期段階でコードの脆弱性を検出して修正することができます。これは、テスト・ステージで脆弱性を検出して修正するより遥かに効率的です。テスト・ステージでは、開発チームは IBM Security AppScan や IBM Application Security on Cloud などのツールを使用することで、ハッカーが仕掛けるようなアプリケーション層の攻撃を再現する必要があります。AppScan に付属している、動画チュートリアル、脆弱性の説明、セキュア・コーディング・サンプルは、いずれも開発者がセキュア・コーディング・テクニックをさらに向上させ、セキュアな IoT アプリケーションを作成する自信を高められるよう、開発者を教育する上で有用な資料となります。

この記事で説明した開発手法は、開発時間全体を短縮してコストを削減し、IoT アプリケーションに脆弱性が潜在する可能性を大幅に減らして、開発チームにメリットをもたらします。IoT アプリケーションがリリースされた後に脆弱性が見つかった場合、解決するのにコストがかかるだけでなく、その脆弱性をハッカーが見つけたとしたら、企業の評判にも開発チームの評判にも最終的に傷が付くといった事態になりかねません。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=セキュリティ
ArticleID=1022843
ArticleTitle=IoT サイバー攻撃の脅威に立ち向かう
publish-date=03012018