良い電子レンジが悪くなるとき組込みシステムのセキュリティが開発者の次のボス争いになる理由

2021年8月30日発行
マティアス・マドゥ博士著
ケーススタディ

良い電子レンジが悪くなるとき組込みシステムのセキュリティが開発者の次のボス争いになる理由

2021年8月30日発行
マティアス・マドゥ博士著
リソースを見る
リソースを見る

不正なAIやロボット、人間の主人に牙をむく家電など、ポップカルチャーにはたくさん登場します。しかし、IoTやコネクテッドデバイスが家庭に普及するにつれ、サイバーセキュリティや安全性に関する話題も重要になってきています。ソフトウェアは私たちの身の回りにあふれていますが、私たちに多くの革新と利便性をもたらしてくれる巧妙な機能を実現するために、どれだけ多くのコードに依存しているかを忘れがちです。ウェブベースのソフトウェア、API、モバイル機器などと同様に、組み込みシステムの脆弱なコードは、攻撃者に発見されると悪用される可能性があります。 

サイバー攻撃の結果、電子レンジの軍隊が人類を奴隷にしにやってくるということは考えにくいですが(ただし、Tesla社のボットは少し気になります)、悪意のあるサイバーイベントが起こる可能性はあります。私たちが普段使っている自動車、飛行機、医療機器の中にも、重要なタスクを実行するために複雑な組み込みシステムのコードに依存しているものがあります。これらの対象物が侵害される可能性があるということは、憂慮すべきことであるだけでなく、生命を脅かす可能性もあります。

他のソフトウェアと同様に、開発者は、製品を作る段階で、最初にコードに触れることになります。そして、他のソフトウェアと同様に、このことが、製品が稼動する前に発見されない、陰湿で一般的な脆弱性の温床となる可能性があります。 

開発者はセキュリティの専門家ではありませんし、どの企業も開発者にその役割を期待するべきではありません。しかし、開発者に関連する種類の脅威に対処するためには、はるかに強力な武器を装備することができます。一般的にCやC++で書かれた組み込みシステムは、技術的なニーズが進化し続ける中で、より頻繁に使用されるようになるでしょう。このような環境で使用されるツールに関する開発者向けの専門的なセキュリティトレーニングは不可欠です。 

爆発するフライヤー、暴走する車......私たちはカモにされている?

私たちの安全を守るために、すべてのセキュアな開発にはいくつかの標準や規制がありますが、すべての種類のソフトウェアのセキュリティに対して、はるかに正確で意味のある前進をする必要があります。フライヤーにハッキングされて問題が発生するというのは突飛なことのように思えるかもしれませんが、リモートコード実行攻撃という形で実際に発生しています(脅威の行為者は危険なレベルまで温度を上げることができる)し、自動車の乗っ取りにつながる脆弱性もあります。

特に自動車は複雑で、複数の組み込みシステムが搭載されており、それぞれが自動ワイパーやエンジン、ブレーキ機能などの細かい機能を担っています。さらに、WI-Fi、Bluetooth、GPSなど、増え続ける通信技術が絡み合い、コネクテッド・ビークルは、複数の攻撃手段にさらされる複雑なデジタルインフラとなっています。2023年には7,630万台のコネクテッド・ビークルが世界各地で走行すると予想されており、真の安全性を確保するためには、膨大な数の防御基盤を構築しなければなりません。

MISRAは、組み込みシステムの脅威に対して善戦している重要な組織であり、組み込みシステムの文脈において、コードの安全性、セキュリティ、ポータビリティ、信頼性を促進するためのガイドラインを策定しています。

しかし、このゴールドスタンダードを遵守したコードを作成し、実行するには、ツールに自信を持ち、セキュリティを意識していることは言うまでもない組み込みシステムエンジニアが必要です。 

なぜ、組み込みシステムのセキュリティアップスキルは特殊なのか?

C および C++ プログラミング言語は,今日の基準では老朽化していますが,広く使用されています.

これらの言語のルーツはかなり古く、インジェクションの欠陥やバッファオーバーフローなどの一般的な問題に関して、似たような脆弱性の挙動を示していますが、開発者が本当に組み込みシステムのセキュリティバグを軽減することに成功するためには、彼らが働く環境を模倣したコードを実際に使用する必要があります。一般的なセキュリティ対策のための一般的な C 言語のトレーニングでは、組み込み C 言語での作業に特別な時間と注意を払った場合ほど効果的で記憶に残るものにはなりません。

最新の自動車には十数台から百数十台の組み込みシステムが搭載されています。開発者は、何を確認し、どのように修正するかについて、IDEの中で正確なトレーニングを受けることが必要です。

組み込みC/C++におけるビジネスロジックの欠陥とはどのようなものでしょうか?プロのように欠陥を特定して修正できるかどうかを見てみましょう。

組込みシステムを一から守るのは全員の責任

多くの組織では、少なくとも開発者の責任という点では、開発スピードがセキュリティに勝るという現状があります。安全なコードを作成する能力が評価されることはほとんどありませんが、素晴らしい機能を迅速に開発することは金科玉条です。ソフトウェアへの需要はますます高まっていますが、このような文化は、脆弱性と、それが引き起こすサイバー攻撃との戦いで、私たちを敗北に導いています。 

開発者がトレーニングを受けていなくても、それは彼らのせいではありません。AppSecチームの誰かが、開発コミュニティ全体に適切でアクセス可能な(言うまでもなく評価可能な)スキルアッププログラムを推奨することで、その穴を埋める手助けをする必要があります。ソフトウェア開発プロジェクトの最初の段階で、セキュリティを最重要視し、全員(特に開発者)が自分の役割を果たすために必要なものを提供する必要があります。 

組込みシステムのセキュリティ問題を実践する

バッファオーバーフロー、インジェクションの欠陥、ビジネスロジックのバグなどは、いずれも組み込みシステムの開発でよく見られる落とし穴です。

バッファオーバーフローは特に多く発生しており、これがどのようにして前に話したエアフライヤーを危険にさらしたか(リモートでコードを実行できるようになったか)について深く知りたい場合は、CVE-2020-28592に関するこのレポートをご覧ください。

さて、いよいよ実際の組み込みC/C++コードで、バッファオーバーフローの脆弱性を体験してみましょう。このチャレンジでは、この陰湿なバグにつながるお粗末なコーディングパターンを見つけ出し、特定し、修正できるかどうかを確認します。

バッファオーバーフローの歴史を作る。



どうでしたか?組込みシステムのセキュリティに関する精密で効果的なトレーニングについては、www.securecodewarrior.com

リソースを見る
リソースを見る

著者

マティアス・マドゥ博士

マティアスは、15年以上のソフトウェアセキュリティの実務経験を持つ研究者・開発者です。フォーティファイ・ソフトウェア社や自身の会社(Sensei Security)などでソリューションを開発してきました。キャリアの中で、Matiasは、商用製品につながる複数のアプリケーションセキュリティ研究プロジェクトを主導し、10件以上の特許を取得しています。また、RSAカンファレンス、Black Hat、DefCon、BSIMM、OWASP AppSec、BruConなどの世界的なカンファレンスで定期的に講演を行っているほか、高度なアプリケーションセキュリティトレーニング(courses )の講師も務めています。

Matiasはゲント大学でコンピュータ工学の博士号を取得し、アプリケーションの内部構造を隠すためのプログラム難読化によるアプリケーションセキュリティを研究しました。

もっと知りたい?

セキュアコーディングに関する最新の知見をブログでご紹介しています。

当社の豊富なリソースライブラリは、安全なコーディングアップスキルに対する人間的なアプローチを強化することを目的としています。

ブログを見る
もっと知りたい?

開発者主導のセキュリティに関する最新の研究成果を入手する

ホワイトペーパーからウェビナーまで、開発者主導のセキュアコーディングを始めるために役立つリソースが満載のリソースライブラリです。今すぐご覧ください。

リソース・ハブ

良い電子レンジが悪くなるとき組込みシステムのセキュリティが開発者の次のボス争いになる理由

2021年8月30日発行
マティアス・マドゥ博士著

不正なAIやロボット、人間の主人に牙をむく家電など、ポップカルチャーにはたくさん登場します。しかし、IoTやコネクテッドデバイスが家庭に普及するにつれ、サイバーセキュリティや安全性に関する話題も重要になってきています。ソフトウェアは私たちの身の回りにあふれていますが、私たちに多くの革新と利便性をもたらしてくれる巧妙な機能を実現するために、どれだけ多くのコードに依存しているかを忘れがちです。ウェブベースのソフトウェア、API、モバイル機器などと同様に、組み込みシステムの脆弱なコードは、攻撃者に発見されると悪用される可能性があります。 

サイバー攻撃の結果、電子レンジの軍隊が人類を奴隷にしにやってくるということは考えにくいですが(ただし、Tesla社のボットは少し気になります)、悪意のあるサイバーイベントが起こる可能性はあります。私たちが普段使っている自動車、飛行機、医療機器の中にも、重要なタスクを実行するために複雑な組み込みシステムのコードに依存しているものがあります。これらの対象物が侵害される可能性があるということは、憂慮すべきことであるだけでなく、生命を脅かす可能性もあります。

他のソフトウェアと同様に、開発者は、製品を作る段階で、最初にコードに触れることになります。そして、他のソフトウェアと同様に、このことが、製品が稼動する前に発見されない、陰湿で一般的な脆弱性の温床となる可能性があります。 

開発者はセキュリティの専門家ではありませんし、どの企業も開発者にその役割を期待するべきではありません。しかし、開発者に関連する種類の脅威に対処するためには、はるかに強力な武器を装備することができます。一般的にCやC++で書かれた組み込みシステムは、技術的なニーズが進化し続ける中で、より頻繁に使用されるようになるでしょう。このような環境で使用されるツールに関する開発者向けの専門的なセキュリティトレーニングは不可欠です。 

爆発するフライヤー、暴走する車......私たちはカモにされている?

私たちの安全を守るために、すべてのセキュアな開発にはいくつかの標準や規制がありますが、すべての種類のソフトウェアのセキュリティに対して、はるかに正確で意味のある前進をする必要があります。フライヤーにハッキングされて問題が発生するというのは突飛なことのように思えるかもしれませんが、リモートコード実行攻撃という形で実際に発生しています(脅威の行為者は危険なレベルまで温度を上げることができる)し、自動車の乗っ取りにつながる脆弱性もあります。

特に自動車は複雑で、複数の組み込みシステムが搭載されており、それぞれが自動ワイパーやエンジン、ブレーキ機能などの細かい機能を担っています。さらに、WI-Fi、Bluetooth、GPSなど、増え続ける通信技術が絡み合い、コネクテッド・ビークルは、複数の攻撃手段にさらされる複雑なデジタルインフラとなっています。2023年には7,630万台のコネクテッド・ビークルが世界各地で走行すると予想されており、真の安全性を確保するためには、膨大な数の防御基盤を構築しなければなりません。

MISRAは、組み込みシステムの脅威に対して善戦している重要な組織であり、組み込みシステムの文脈において、コードの安全性、セキュリティ、ポータビリティ、信頼性を促進するためのガイドラインを策定しています。

しかし、このゴールドスタンダードを遵守したコードを作成し、実行するには、ツールに自信を持ち、セキュリティを意識していることは言うまでもない組み込みシステムエンジニアが必要です。 

なぜ、組み込みシステムのセキュリティアップスキルは特殊なのか?

C および C++ プログラミング言語は,今日の基準では老朽化していますが,広く使用されています.

これらの言語のルーツはかなり古く、インジェクションの欠陥やバッファオーバーフローなどの一般的な問題に関して、似たような脆弱性の挙動を示していますが、開発者が本当に組み込みシステムのセキュリティバグを軽減することに成功するためには、彼らが働く環境を模倣したコードを実際に使用する必要があります。一般的なセキュリティ対策のための一般的な C 言語のトレーニングでは、組み込み C 言語での作業に特別な時間と注意を払った場合ほど効果的で記憶に残るものにはなりません。

最新の自動車には十数台から百数十台の組み込みシステムが搭載されています。開発者は、何を確認し、どのように修正するかについて、IDEの中で正確なトレーニングを受けることが必要です。

組み込みC/C++におけるビジネスロジックの欠陥とはどのようなものでしょうか?プロのように欠陥を特定して修正できるかどうかを見てみましょう。

組込みシステムを一から守るのは全員の責任

多くの組織では、少なくとも開発者の責任という点では、開発スピードがセキュリティに勝るという現状があります。安全なコードを作成する能力が評価されることはほとんどありませんが、素晴らしい機能を迅速に開発することは金科玉条です。ソフトウェアへの需要はますます高まっていますが、このような文化は、脆弱性と、それが引き起こすサイバー攻撃との戦いで、私たちを敗北に導いています。 

開発者がトレーニングを受けていなくても、それは彼らのせいではありません。AppSecチームの誰かが、開発コミュニティ全体に適切でアクセス可能な(言うまでもなく評価可能な)スキルアッププログラムを推奨することで、その穴を埋める手助けをする必要があります。ソフトウェア開発プロジェクトの最初の段階で、セキュリティを最重要視し、全員(特に開発者)が自分の役割を果たすために必要なものを提供する必要があります。 

組込みシステムのセキュリティ問題を実践する

バッファオーバーフロー、インジェクションの欠陥、ビジネスロジックのバグなどは、いずれも組み込みシステムの開発でよく見られる落とし穴です。

バッファオーバーフローは特に多く発生しており、これがどのようにして前に話したエアフライヤーを危険にさらしたか(リモートでコードを実行できるようになったか)について深く知りたい場合は、CVE-2020-28592に関するこのレポートをご覧ください。

さて、いよいよ実際の組み込みC/C++コードで、バッファオーバーフローの脆弱性を体験してみましょう。このチャレンジでは、この陰湿なバグにつながるお粗末なコーディングパターンを見つけ出し、特定し、修正できるかどうかを確認します。

バッファオーバーフローの歴史を作る。



どうでしたか?組込みシステムのセキュリティに関する精密で効果的なトレーニングについては、www.securecodewarrior.com

弊社製品や関連するセキュアコーディングのトピックに関する情報をお送りする許可をお願いします。当社は、お客様の個人情報を細心の注意を払って取り扱い、マーケティング目的で他社に販売することは決してありません。

フォームを送信するには、「Analytics」のCookieを有効にしてください。完了したら、再度無効にしてください。