これまでにC/C++ セキュアコーディングセミナーで使用した講義資料を公開しています。2010年度にセミナを実施した、文字列、整数、動的メモリ管理、書式指定文字列、CERT C セキュアコーディングスタンダード、ROSE については、それぞれ最新版の資料を掲載しています。

Topへ

CERT C セキュアコーディングスタンダード

セキュアコーディングを実践するためには、どのようなコーディングが良くてどのようなコーディングがいけないのか、分かりやすく明確に判断できることが望まれます。そのようなガイドラインをまとめたものが「CERT C セキュアコーディングスタンダード」です。これは、信頼性の高い安全なプログラムをつくるために、全てのC言語プログラマが知っておくべきガイドライン集です。

本セミナでは CERT C セキュアコーディングスタンダードをめぐる状況を説明するとともに、個々のルール等の解説、セキュアコーディングスタンダードの活用方法などをご紹介します。

CERT C セキュアコーディングスタンダード概論

- 目的、開発体制、言語規格との関係 CERT C セキュアコーディングスタンダード各論

- スタンダードの構成、各ガイドラインの読みかた 活用方法の提案

公開日 タイトル PDF PGP署名 2011-03-31 CERT C セキュアコーディングスタンダード 1.78MB

デジタル

署名付 PGP 署名

Topへ

ROSE

オープンソースのソースコード解析プラットフォームであるROSEを使って開発された CERT C セキュアコーディングルールのチェッカーを紹介し、簡単なデモンストレーションを交えながらツールの使い方を解説します。

また、必要なツールをインストールした Linux イメージを使い、実際にチェッカの使用やチェッカルールの開発を体験していただきます。

公開日 タイトル PDF PGP署名 2011-03-31 ROSE 2.29MB

デジタル

署名付 PGP 署名

Topへ

File I/O part1: UNIXの権限とパーミッション

File I/O part1 では Linux や UNIX など POSIX システムにおけるファイルシステムの仕組み、C/C++ におけるファイル入出力、プロセスの権限とその管理の方法について解説します。setuid() などを使用したプロセス権限管理は、適切かつ十分に行われないと様々な脆弱性を作り込むことにつながる危険性があります。また、プロセス権限の管理を行うだけでは十分とは言えず、ファイル許可の管理を適切に行う必要があり、そのなかでプログラマが気をつけねばならないポイントについて解説します。

ファイルシステム

C/C++ の入出力

識別、所有者、権限、パーミッション

プロセス権限

権限の変更、管理

パーミッションの管理 など

公開日 タイトル PDF PGP署名 2010-03-24 File I/O part1: UNIXの権限とパーミッション 1.05MB

デジタル

署名付 PGP 署名

Topへ

File I/O part2: ファイルシステムの脆弱性

File I/O part2 では主にパス名の解決にまつわる以下の問題について取り上げます。

ディレクトリトラバーサル

等値エラー

シンボリックリンク、ハードリンク

正規化

特殊ファイル

サンドボックス など

公開日 タイトル PDF PGP署名 2010-03-24 File I/O part2: ファイルシステムの脆弱性 1.37MB

デジタル

署名付 PGP 署名

Topへ

File I/O part3: ファイル入出力と競合状態

プログラムは、スレッドやプロセス、タスクなどの単位で 2つ以上の独立した処理を同時に実行する並列処理を行うことがあります。この並列処理が不適切に管理された場合、競合状態が発生し、ソフトウェアの脆弱性につながることがあります。

File I/O part3 では競合状態に関する脆弱性のメカニズムとその脅威の緩和方法について解説します。

並列処理

検査・使用のタイミング

ロックファイルとファイルロック

ファイルシステムへの攻撃

脅威の緩和方法 など

公開日 タイトル PDF PGP署名 2010-03-24 File I/O part3: ファイル入出力と競合状態 1.47MB

デジタル

署名付 PGP 署名

Topへ