
セキュアコーディング標準導入サポート
安全なソフトウェアを開発するには、「セキュアコーディング標準」が必要です。セキュアコーディング標準の導入はISO 27000(国際情報セキュリティ標準)でもシステム開発の要求事項となっています。
セキュアコーディング標準とは?
セキュアコーディングは、米カーネギーメロン大学のCERTにより提唱されいる「安全なプログラム構築に必要な概念と技術を標準化」した物です。CERTでは、言語レベル(C、C++、Java、Android、PERL)のセキュアコーディング標準が公開されています。
セキュアコーディング標準は、「ソフトウェア開発組織またはプロジェクト」が『独自』に構築するコーディング標準です。CERTが提供する言語別のセキュアコーディング標準を利用するだけでは「セキュアコーディング標準」技術を採用したことになりません。開発組織/プロジェクトによって、利用する開発環境(OS/ライブラリ/言語/フレームワークなど)が異なります。
- POINT : セキュアコーディング標準は組織が利用している技術や指針に対応したものを”自前”で構築する。
特定の開発環境で安全なコード(プログラム)を書くためには、その環境でのノウハウが必要になります。このノウハウを文書化し、標準化したものが「セキュアコーディング標準」です。
セキュアコーディング標準の構築より大切な「原則」ー。
CERTは10のセキュアコーディング原則を公開しています。その原則では「セキュアコーディング標準の構築」は10番目、つまり最後の原則としています。セキュアコーディング標準構築よりも重要な原則は9つあります。
現在のソフトウェア開発では、20世紀のソフトウェア開発パラダイムである「とにかく動く」が未だに大勢を占めています。「不正な動作を行わせない」(ブラックリスト型)がセキュリティ対策としては一般的です。
セキュアコーディングの考え方は「正しく動くこと、動いたことを保証する」です。これを可能とする原則が定義されています。
コンピュータは正しく動作しないもの
コンピュータは入力が正しくなければ、得意とする整数演算さえ正しくできない機械です。
セキュアコーディング、その前身の防御的プログラミングが提唱されたのは1990年代初め。四半世紀が過ぎても危険なブラックリスト型設計で「不正な動作を行わせない」ソフトウェアが一般的です。
セキュアコーディングを正しく導入すれば、コンピュータプログラムを正しく動作させることが容易になります。
対象
- ITシステム開発全般
サービス内容
- セキュアコーディング標準構築セミナー
- セキュアコーディング標準の構築サポート
- セキュアコーディング標準準拠状態の評価
- ソースコード検査によるセキュアコーディング標準導入前後の効果測定
契約形態
- プロジェクト単位の個別契約
- セキュア開発サポート契約