安全なソフトウェアを開発するための技術者向け講座
http://www.ipa.go.jp/security/awareness/vendor/programmingv2/
2007年9月から【改訂版】公開中
近年、ソフトウェアが抱える脆弱性が大きな問題としてクローズアップされるようになってきました。ソフトウェアの脆弱性は、開発者が意識しない限り低減できない問題です。インターネットの普及に伴って、広く社会全体に与える影響も無視できない問題となってきています。
IPAでは、ソフトウェアが、このような脆弱性を抱えないようにするために、開発者が理解しなければならない事項を啓発コンテンツ「セキュア・プログラミング講座」として2002年に公開しました。ソフトウェア開発の前線において活躍している開発者に向けて、脆弱性の問題を分かりやすく示したこの初版は、好評を博してきました。
その後、IPAでは、文部科学省の研究開発財源を得て「ソースコード検査技術の脆弱性検出能力向上のための研究」を実施し、その成果の一部を「セキュア・プログラミング講座」の新版としてとりまとめました。
これまでは、ソフトウェア開発の下流工程において、脆弱性が発見され、対処する必要性が認識されることが多かったのですが、作り込まれてしまった脆弱性によっては、修正できないものがあり、修正できるものについても、コスト・納期に影響を及ぼす大幅な修正が必要となってしまいます。そこで、新版においては、上流工程(要件定義、設計)から脆弱性対策の論点を意識できるように構成しました。
このコンテンツは、上記URLからどなたでもご覧いただけます。

C言語またはC++によって、アプリケーションソフトウェアやミドルウェアを開発することを想定して、想定されるさまざまな攻撃への対策として留意すべき事項を段階的に解説しています。
設計時において想定する脅威のモデリング法の基本から、ソースコードレビュー、セキュリティテスト等まで、ソフトウェアの開発工程に沿った内容になっています。
また、C言語やC++によるコーディングの際に脆弱性への対策を開発者が意識できるようになるためには、コンピュータにおけるメモリ管理等の専門的な知識を要しますが、このような内容についても、平易に解説しています。
C/C++編では、約40の記事を開発工程の上流から下流に向かう順序で記載しています。開発工程と記事テーマとの関係は次のようなものです。

ウェブアプリケーションの設計・実装時に発生しがちな脆弱性をどのように回避するかを解説した、約25の記事を記載しています。これらの記事は、開発工程の上流から下流に向かう順序で並べられており、開発工程と記事テーマとの関係は次の通りです。
また、ソフトウェアコンポーネントの整備や、フレームワーク・マッシュアップによるウェブアプリケーション構成技法の進化に対応して、記事テーマを追加しています。
