IoTで組み込みシステムを保護するための6つのステップ
LDRAのMarkPitchford
モノのインターネット(IoT)に組み込まれている膨大な数のシステムにとって、セキュリティは引き続き最優先事項です。 LDRA のMarkPitchford氏は、侵入した場合、電力網に埋もれたシステム、発電、製造、自動車システム、医療機器、建物管理、ガスポンプ、トースターなどが重大なリスクになる可能性があります。 レポート。
幸いなことに、セキュリティがあれば、「1オンスの予防は1ポンドの治療に値する」という古い格言は確かに真実であり、はるかに新しい「左シフト」の話題のフレーズの基礎です。エンジニアリングの先見性は、後のリアクティブテストよりも低コストで安全なシステムを構築するのに役立ちます。実際、安全なソフトウェアの構築は機能安全なアプリケーションの構築と多くの共通点があるため、安全なソフトウェアの開発は機能安全プロセスに従うことから始まります。
高品質のコードを作成し、組み込みシステムのセキュリティを向上させるために、次のベストプラクティスを検討してください。
1。 ソフトウェア開発ライフサイクルにセキュリティを組み込む
従来の安全なコード検証は、主に反応的です。コードは比較的緩いガイドラインに従って開発され、脆弱性を特定するためにテストされます。アジャイル開発を使用する場合でも、従来の開発ライフサイクルモデルを使用する場合でも、設計されたセキュリティに対してより積極的なアプローチがあります。

従来の開発では、要件は設計、コーディング(おそらくモデルを介して)、およびテストに流れます。アジャイル開発では、要件は、要件、設計、コード、およびテストの独自のループを備えた、内側から外側へのレイヤーで繰り返し構築されます。どちらの方法でも、セキュリティ要件が開発プロセスの不可欠な部分であることを確認することは、単に最後に脆弱性を探すよりもはるかに満足のいく結果につながります。
2。双方向のトレーサビリティを確保する
ほとんどの機能安全基準は、要件から設計、コード、およびテストまでの開発のすべての段階の間の開発段階間の完全かつ完全なカバレッジの双方向のトレーサビリティ確認の証拠を必要とします。このような透明性により、要件の変更や失敗したテストケースの影響を影響分析で評価し、対処することができます。
アーティファクトは自動的に再生成され、適切な基準への継続的な準拠の証拠を提示できます。セキュリティが最優先される場合、双方向のトレーサビリティにより、冗長なコードや不特定の機能がなく、バックドアメソッドが含まれます。これらの利点は、安全なシステムを構築する能力を高めるための体系的な開発の価値を強調しています。
3。 安全な言語サブセットを選択してください
CまたはC ++で開発する場合、ソフトウェアの欠陥の約80%は、言語構造の20%の誤った使用に起因する可能性があります。言語サブセットは、安全でない構造の使用を防止またはフラグ付けすることにより、安全性とセキュリティの両方を向上させます。 2つの一般的なコーディング標準であるMISRACとCarnegieMellon Software Engineering Institute(SEI)CERT Cは、開発者が安全なコードを作成するのに役立ちます。
MISRACまたはCERTCのいずれかを適用すると、どちらも適用されていない場合よりも安全なコードが得られます。ただし、手動プロセスは複雑でエラーが発生しやすいため、これらのガイドラインを手動で適用するには、時間、労力、費用、皮肉なことに品質が犠牲になります。コストを削減して生産性を向上させるには、開発組織はコンプライアンスのサポートを自動化する必要があります。
4。 セキュリティに重点を置いたプロセス標準を使用する
セキュリティ標準は、安全な開発ソリューションのもう1つの要素を提供しますが、セキュリティ標準は、何十年にもわたって使用されてきた機能安全標準ほど十分に開発されておらず、時間テストされていません。ただし、これは業界固有のセキュリティ標準が開発されるにつれて変更されます。

たとえば、自動車業界は現在、サイバー攻撃の標的としてのコネクテッドカーの問題を軽減するために、ISO / SAE21434「道路車両サイバーセキュリティエンジニアリング」を開発しています。 SAEJ3061「サイバーフィジカルビークルシステムのサイバーセキュリティガイドブック」の高レベルのガイド原則よりも詳細な実質的なドキュメントが約束されているため、ISO / SAE21434は広く期待されています。
5。可能な限り自動化する
ソフトウェア開発プロセスの各段階で、自動化により組み込みシステムの脆弱性が軽減され、時間とコストが大幅に節約されます。開発者は、要件ツール(IBM Rational DOORSなど)にプラグインし、シミュレーションとモデリングの構成をインポートして、コードに対してこれらをテストし、要件がどのように満たされているか、何が欠けているか、どこにデッドコードがないかを一目で確認できます。要件を満たします。
静的分析エンジンは、コーディング標準および機能安全およびセキュリティ標準への準拠を確認できます。自動化と安全な設計により、侵入テストなどの事後対応テストが可能になりますが、その役割は、コードが安全であることを確認し、コードがどこにないかを見つけないようにすることです。
6。 安全なソフトウェア基盤を選択する
安全な組み込みソフトウェアは安全なプラットフォームで実行する必要があるため、アプリケーションが攻撃された場合、他のソフトウェアコンポーネントから分離された独自のサイロで実行されます(「ドメイン分離」)。自動化されたソフトウェアテストおよび検証ツールは、要件の仕様から設計、モデリング、コーディング、文書化に至るまで、一般的な開発環境に統合されます。これにより、開発者は使い慣れた環境で、システムにすでに指定されているツールを使用して安全なシステムを構築できます。
これらの6つのプロセスに従うことで、安全、安心、信頼できるIoT向けの組み込みソフトウェアを開発するためのまとまりのあるアプローチが提供されます。
著者はLDRAのMarkPitchfordです。
詳細については、ここをクリックしてください:
モノのインターネットテクノロジー