2009年度に「C/C++ セキュアコーディングトワイライトセミナー」および「C/C++ ハーフデイキャンプ」と題して開催したC/C++ セキュアコーディングセミナーで使用した講義資料(2009年度版)を公開しています。
ユーザとソフトウエア間に発生するデータのやりとりの大部分は文字列によって行われます。
また、プログラム間でのデータ交換も文字列形式で行われるようになり、その結果、文字列表現や文字列管理、文字列操作における弱点がソフトウエア脆弱性を生み出しています。
文字列では、C/C++ 言語における文字列操作、一般的なセキュリティ上の欠陥と、その結果発生する脆弱性と対処方法について解説します。
| 公開日 | タイトル | PGP署名 | |
|---|---|---|---|
| 2010-03-24 | 文字列 | 1.04MB デジタル 署名付 |
PGP 署名 |
C/C++ 言語において整数型の取扱いに起因する脆弱性はこれまであまり重要視されていませんでしたが、その数は確実に増加しています。
攻撃者は、プログラムが本来想定する入力範囲に関わらず、異常動作を引き起こす入力値を見つけ出すことで脆弱性を利用しようとします。C/C++ 言語における整数型の取扱 いに関する仕様と、そこから引き起こされるセキュリティ上の問題について体系的に解説します。
| 公開日 | タイトル | PGP署名 | |
|---|---|---|---|
| 2010-03-24 | 整数 | 2.34MB デジタル 署名付 |
PGP 署名 |
C/C++ ではプログラムが必要とするメモリを動的に取得・使用することが可能です。大量のデータを扱うアプリケーションやリソースが限られている組み込み機器など、動的メモリ管理機能を使いこなさなければならない場面は多くあります。動的メモリ管理に関する脆弱性が存在する場合、DoS 攻撃や任意のコード実行に使われる危険があります。 C/C++ が提供している動的メモリ管理の仕組みを正しく理解し、異常な状態に正しく 対処できるようなコードを作ることが求められているのです。
動的メモリ管理では、 C/C++ における動的メモリ管理の仕組みとすでに知られている脆弱性の例、また安全なコードを書くための手法について解説します。
| 公開日 | タイトル | PGP署名 | |
|---|---|---|---|
| 2010-03-24 | 動的メモリ管理 | 1.64MB デジタル 署名付 |
PGP 署名 |
File I/O part1 では Linux や UNIX など POSIX システムにおけるファイルシステムの仕組み、C/C++ におけるファイル入出力、プロセスの権限とその管理の方法について解説します。setuid() などを使用したプロセス権限管理は、適切かつ十分に行われないと様々な脆弱性を作り込むことにつながる危険性があります。また、プロセス権限の管理を行うだけでは十分とは言えず、ファイル許可の管理を適切に行う必要があり、そのなかでプログラマが気をつけねばならないポイントについて解説します。
| 公開日 | タイトル | PGP署名 | |
|---|---|---|---|
| 2010-03-24 | File I/O part1: UNIXの権限とパーミッション | 1.05MB デジタル 署名付 |
PGP 署名 |
File I/O part2 では主にパス名の解決にまつわる以下の問題について取り上げます。
| 公開日 | タイトル | PGP署名 | |
|---|---|---|---|
| 2010-03-24 | File I/O part2: ファイルシステムの脆弱性 | 1.37MB デジタル 署名付 |
PGP 署名 |
プログラムは、スレッドやプロセス、タスクなどの単位で 2つ以上の独立した処理を同時に実行する並列処理を行うことがあります。この並列処理が不適切に管理された場合、競合状態が発生し、ソフトウェアの脆弱性につながることがあります。
File I/O part3 では競合状態に関する脆弱性のメカニズムとその脅威の緩和方法について解説します。
| 公開日 | タイトル | PGP署名 | |
|---|---|---|---|
| 2010-03-24 | File I/O part3: ファイル入出力と競合状態 | 1.47MB デジタル 署名付 |
PGP 署名 |
C99 標準では書式指定文字列と printf() や sprintf() に代表される可変個の引数を受け付ける書式指定出力関数を定義しています。これら書式指定の仕組みは UNIX のコマンド行プログラムなどによく見られますが、任意のコードを実行するために悪用される危険性を持っています。書式指定出力関数に対する攻撃の手法を解説し、その脅威を緩和する方法を紹介します。
| 公開日 | タイトル | PGP署名 | |
|---|---|---|---|
| 2010-03-24 | 書式指定文字列 | 2.51MB デジタル 署名付 |
PGP 署名 |