図 1 ジェネリック プロセスへの SDL のマップ方法


図 2 推奨するセキュリティに関する本
本の題名 開発者 テスタ デザイナ Windows *nix
Writing Secure Code 第 2 版 David LeBlanc および Michael Howard 共著  
19 Deadly Sins of Software Security Michael Howard、David LeBlanc、John Viega 共著    
Building Secure Software John Viega および Gary McGraw 共著    
Gray Hat Hacking Shon Harris 他著    
How to Break Software Security James Whittaker および Herbert Thompson 共著      

図 3 攻撃対象領域を減少
広範囲の攻撃対象領域 狭範囲の攻撃対象領域
デフォルトで実行されるコード デフォルトで実行されないコード
オープン ソケット クローズ ソケット
UDP TCP
匿名アクセス ユーザー アクセス
インターネット アクセス ローカル サブネット アクセス
SYSTEM または管理者として実行する SYSTEM または管理者として実行しない
弱い ACL 強い ACL

図 4 Sample Banned Functions
禁止された API Strsafe 置換 安全な C および C++ ライブラリ
strcpy、wcscpy、_tcscpy、_mbscpy、lstrcpy、lstrcpyA、lstrcpyW、strcpyA、strcpyW String*Copy または String*CopyEx strcpy_s
strcat、wcscat String*Cat または String*CatEx strcat_s
wnsprintf、wnsprintfA、wnsprintfW String*Printf または String*PrintfEx sprintf_s
_snwprintf、_snprintf String*Printf または String*PrintfEx _snprintf_s または _snwprintf_s
wvsprintf、wvsprintfA、wvsprintfW、vsprintf String*VPrintf または String*VPrintfEx _vstprintf_s
_vsnprintf、_vsnwprintf String*VPrintf または String*VPrintfEx vsntprintf_s
strncpy、wcsncpy String*CopyN または String*CopyNEx strncpy_s
strncat、wcsncat String*CatN または String*CatNEx strncat_s
scanf、wscanf なし sscanf_s
strlen、wcslen、_mbslen、_mbstrlen String*Length strlen_s