2008-11-05C/C++セキュアコーディングトワイライトセミナーは全7回終了いたしました。ご参加いただきました皆様、誠にありがとうございました。セッション2※セミナーの終了時間は回によって多少前後することがあります。言語において整数型の取扱いに起因する脆弱性はこれまであまり重要視されていませんでしたが、その数は確実に増加しています。攻撃者は、プログラムが本来想定する入力範囲に関わらず、異常動作を引き起こす入力値を見つけ出すことで脆弱性を利用しようとします。言語における整数型の取扱いに関する仕様と、そこから引き起こされるセキュリティ上の問題について体系的に解説します。<文字列>ユーザとソフトウエア間に発生するデータのやりとりの大部分は文字列によって行われます。おける弱点がソフトウエア脆弱性を生み出しています。セキュリティ上の欠陥と、その結果発生する脆弱性と対処方法について解説します。コンパイラを使って作成しています。プログラムが必要とするメモリを動的に取得・使用することが可能です。大量のデータを扱うアプリケーションやリソースが限られている組み込み機器など、動的メモリ管理機能を使いこなさなければならない場面は多くあります。攻撃や任意のコード実行に使われる危険があります。提供している動的メモリ管理の仕組みを正しく理解し、異常な状態に正しく対処できるようなコードを作ることが求められているのです。おける動的メモリ管理の仕組みとすでに知られている脆弱性の例、また安全なコードを書くための手法について解説します。プラットフォームにフォーカスしたものとなっています。おけるファイル入出力、プロセスの権限とその管理の方法について学ぶ。使用したプロセス権限管理は、適切かつ十分に行われないと様々な脆弱性を作り込むことにつながる危険性がある。プロセス権限の管理を行うだけでは十分とは言えず、ファイル許可の管理を適切に行う必要があり、そのなかでプログラマが気をつけねばならないポイントについて解説する。ファイルシステムを前提に進めます。パス名の解決にまつわる問題について取り上げる。取り上げるトピックは以下の通り。2つ以上の独立した処理を同時に実行する並列処理を行うことがある。この並列処理が不適切に管理された場合、競合状態が発生し、ソフトウェアの脆弱性につながることがある。代表される可変個の引数を受け付ける書式指定出力関数を定義している。コマンド行プログラムなどによく見られるが、任意のコードを実行するために悪用される危険性を持っている。