
ãç§ã®ããã°ã©ã ã¯å®å šã ãšããã¡ã¢ããã ãããã
-åé¡ãããŸããïŒ ããªãã¯ããã®ããã«äœãããŸãããïŒ
-ãããš...ãŸã...ããã¯...äœããªã...
ããªã圌女ã¯ç¡äºã ãšæãïŒã
-ããŠãããªãã¯ç¢ºèªããŸãïŒ
-åé¡ãããŸããïŒ ãã¹ãŠã®åã³ã¯X0000ãã«ããããŸãã
-?!
èšäºã«ã€ããŠ
ãã®èšäºã§ã¯ãå®å šãªãœãããŠã§ã¢ãäœæããããã®ããã€ãã®ãã©ã¯ãã£ã¹ã«ã€ããŠèª¬æããŸãã
æåã®éšåã¯ãå®å šãªããã°ã©ãã³ã°ã«å°å¿µããŸãã
äžæ¹ã§ã¯ãå®å šãªããã°ã©ãã³ã°æè¡ãç¥ãããŠããŸãã ãããã®äœ¿çšã®çµéšãèç©ãããŠãããå€ãã®æç®ãæžãããŠããŸãã
äžæ¹ããããã¯ããŸã䜿çšãããŸããã å€ãã®ããã°ã©ããŒããããžã§ã¯ããããŒãžã£ãŒã«ãšã£ãŠã圌ãã¯ç°åœæ ç·ãããŸãæ確ã§ã¯ãããŸããã
ãã¡ããããã®èšäºã¯ãã®åé¡ãå®å šã«ã«ããŒãããµããããŠããããã§ã¯ãããŸããã ããããããã¯æ£ããæ¹åãžã®å°ããªäžæ©ã«ããŸãããã ãããŠãããªãããããªããå®å šãªããã°ã©ãã³ã°ã«ç°åžžãªãã®ã¯äœããªãããšãåãããšæããŸãã
2çªç®ã®éšåã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã»ãã¥ãªãã£ã®ããŸãç¥ãããŠããªãåŽé¢ã«ã€ããŠèª¬æããŸãã ããããããæå³ã§ã¯ããããã®åŽé¢ã¯å®å šãªããã°ã©ãã³ã°æè¡ã䜿çšãããããããã«éèŠã§ãã
泚æïŒ èšäºã¯å€§ããã泚ææ·±ãèªãå¿ èŠããããŸãã
ããŒãI.å®å šãªããã°ã©ãã³ã°
æè¡ãç¥ã
åãã¯ãããžãŒã«ã¯2ã€ã®åŽé¢ããããŸãã 1ã€ã¯ãŠãŒã¶ãŒã«ãšã£ãŠäŸ¿å©ãªããããã£ã§ãã補åã§äœ¿çšããŸãã 第äºã®åŽé¢ã¯ãã¯ã©ãã«ãŒã䜿çšã§ããç¹æ§ãæè¡ã®åŒ±ç¹ã§ãã æè¡ã¯éåžžã«åŒ±ããããã©ã®ãããªç¶æ³ã§ããã®äœ¿çšãæ£åœåã§ããªãå ŽåããããŸãã ããšãã°ãCããã°ã©ã ã®getsé¢æ°ã¯ã»ãšãã©ã®å Žåæªã§ãã ä¿è·ã«å¿ èŠãªå¯Ÿçãè¬ããããšã«ãããä»ã®ãã¯ãããžãŒã䜿çšã§ããŸãã ãã®ãããSQLãµãŒããŒã䜿çšãããšãSQLã€ã³ãžã§ã¯ã·ã§ã³ã®æ©äŒãéãããå¯èœæ§ããããŸãã ããããç§ãã¡ã¯ããã«å¯ŸåŠããæ¹æ³ãç¥ã£ãŠãããå¿ èŠãªä¿è·å¯Ÿçãè¬ããå¿ èŠããããŸãã
æè¡ã®äž¡é¢ãç¥ãå¿ èŠããããŸãã æçšãªããã°ã©ã ãäœæããæ¹æ³ã¯ãããã°ã©ããŒã®äž»èŠãªç¥èã§ãããã®ç¥èã®ãããã§ãç§ãã¡ã¯ãéã皌ããŸãã ãããã£ãŠããã®åŽé¢ãç 究ããããšã«äž»ãªæéãè²»ãããŠããããšã¯éåžžã«æ確ã§ãã
ããããåªããå°é家ã¯ç¬¬2ã®åŽé¢ãç解ããŠããŸãã æ»æè ãã©ã®ããã«æ»æããããç¥ãå¿ èŠã¯ãããŸãããç¹å®ã®è匱æ§ã«å¯Ÿãããšã¯ã¹ããã€ããäœæã§ããå¿ èŠã¯ãããŸããã ããããç§ãã¡ã®è¡åãè匱æ§ã«ã€ãªããå¯èœæ§ããããã®ãšããããåé¿ããæ¹æ³ãç解ããå¿ èŠããããŸãã
çŸåšããã®ãããã¯ã«ç¹åããããã€ãã®åªãããªãœãŒã¹ãã€ã³ã¿ãŒãããäžã«ãããŸãã
ãã®ãããªãªãœãŒã¹ã®1ã€ã¯ãOpen Web Application Security Projectã§ãã ååã瀺ãããã«ããã®ãããžã§ã¯ãã¯Webã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£å°çšã§ãããä»ã®åéã§ããã°ã©ãã³ã°ããå Žåã«ãåãæ å ±ãé©çšã§ããŸãã ãã®ãµã€ãã¯çŸåšäººæ°ã®ãããŠã£ãããã£ã¢ã®åœ¢åŒã§äœæãããŠãããåå¥ã®èšäºã§æ§æãããŠããŸãã ããŸããŸãªååã«åŸã£ãŠã°ã«ãŒãåããããããã®èšäºã®ãªã¹ãããããŸãã æè¡å¥ã«ã°ã«ãŒãåãããèšäºãžã®ãã€ã³ã¿ã¯ã次ã®ã¢ãã¬ã¹ã«ãããŸã ã
OWASPãç¹°ãè¿ãåç §ãç¶ããŸãã ãã®ãããžã§ã¯ãã¯ãã¢ããªã±ãŒã·ã§ã³ã»ãã¥ãªãã£ã®å°é家ã«ãšã£ãŠéåžžã«è²ŽéãªãªãœãŒã¹ã§ãã
éåžžã«åªããæ å ±æºã¯ã Common Weakness Enumeration Webãµã€ãã§ãã ãã®ãµã€ãã«ã¯ããœãããŠã§ã¢ã®è匱æ§ã®åå ããªã¹ãããã«ã¿ãã°ã®åœ¢åŒã§ãåœç€Ÿã«ãšã£ãŠé¢å¿ã®ããæ å ±ãå«ãŸããŠããŸãã OWASPãããç¥èŠããããšã¯å°é£ã§ãããããšãã°ããã§ãã¯ãªã¹ããäœæããå Žåã¯ãã䟿å©ã§ãã
ãããã®ãµã€ããå®æçã«ç¢ºèªããŠãã ããã ãã¯ãããžãŒã®å®å šæ§ã«é¢ããæ å ±ã¯åžžã«æŽæ°ãããŠããŸããããã¯èŠãç®ãšåãããã«ãæå®ã®äœçœ®ã«ãšã©ãŸãããã«ãã§ããã ãæ©ãå®è¡ããå¿ èŠããããŸãã
ã©ã€ãã©ãªã䜿çšãã
è»èŒªãåçºæããªãã§ãã ããïŒ ãã¡ãããç§ãã¡ã¯çãèªåã®äœããããããšã«éåžžã«èå³ãæã£ãŠããŸãã ããããå®å šæ§ã«ãããŠãçºæã¯éåžžã«äžå¿«ãªçµæããããããããå®çžŸã®ããæ段ã䜿çšããŠãã ããã
çŸåšãå€çš®å€æ§ãªã©ã€ãã©ãªããããŸãã ã»ãšãã©ãã¹ãŠã®ã¿ã¹ã¯ã«å¯Ÿå¿ããæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãèŠã€ããããšãã§ããææã©ã€ãã©ãªãšãªãŒãã³ãœãŒã¹ã©ã€ãã©ãªã®äž¡æ¹ãèŠã€ããããšãã§ããŸãã
ããšãã°ãæå·åæ¹åŒã®å®è£ ã«ã¯opensslãæšå¥šãããå ŽåããããŸãã ã©ã€ãã©ãªã¯ããç¥ãããŠãããç§ãã¡ã®ã»ãšãã©ã«ãšã£ãŠååãªçšåºŠã«æ€èšŒãããç¡æã©ã€ã»ã³ã¹ã®äžã§é åžãããŠããŸãã
Java EEã䜿çšããWebããã°ã©ããŒã¯ESAPIã奜ããããããŸããã ãã®ã©ã€ãã©ãªã¯ãããã§ãã§ã«èª¬æããOWASPãããžã§ã¯ãã®ãã¬ãŒã ã¯ãŒã¯å ã§äœæããããã®ã§ãå®å šãªWebã¢ããªã±ãŒã·ã§ã³ãäœæããããã«å¿ èŠãªå€ãã®ã¡ãœãããå®è£ ããŠããŸãã ã©ã€ãã©ãªã«ã¯ãå ¥åããŒã¿ã®ãã£ã«ã¿ãªã³ã°ããŠãŒã¶ãŒã®èªèšŒãã¢ã¯ã»ã¹æš©ã®ç¢ºèªãªã©ã®æ©èœãå«ãŸããŠããŸãã ã³ãŒãã¯ãéåžžã«åºç¯å²ã«äœ¿çšã§ããBSDã©ã€ã»ã³ã¹ã®äžã§ã©ã€ã»ã³ã¹ãããŠããŸãã
æ®å¿µãªãããESAPIã¯çŸåšéçºãããŠããŸããã ããã«ãããããããããã¯å®è©ã®ããã©ã€ãã©ãªã§ããããã®ãµããŒããæŽæ°ãããããšãæåŸ ããçç±ããããŸãã
ãããããJAVAã®å¥ã®ã©ã€ãã©ãªã§ããCoverity Security Libraryã«æ³šæãæãããšã¯çã«ããªã£ãŠããŸãã ãã®ã©ã€ãã©ãªã¯æšå¹Žæ«ã«ãªãªãŒã¹ãããŸãããããããŸã§ã«ããŸãå€ãã®ã¬ãã¥ãŒã¯ãããŸããã ããã§ããã¢ããªã±ãŒã·ã§ã³ã»ãã¥ãªãã£ã®åéã§æåãªäŒç€Ÿã«ãã£ãŠäœæããããã®ã§ãããã§ããã°åœŒããäœãããŠããã®ããç解ããŠããããšãé¡ã£ãŠããŸãã
ãããã¯å¯èœæ§ã®ã»ãã®äžéšã§ãã ç§ã¯ããããåã«äŸãšããŠèšåããŸãã;ã©ã€ãã©ãªã®ãªã¹ãã¯ãããã ãã«å¶éãããããšããã»ã©é ãã§ãã ããã«ãå€ãã®ææ°ã®ãã¬ãŒã ã¯ãŒã¯ã«ã¯å¿ èŠãªæ©èœãå«ãŸããŠããŸãã ãã®ã©ã€ãã©ãªã誰ãéçºããããã©ãã ãããŸããã¹ãããã³ãã¹ããããŠãããã«æ³šæããŠãã ããã
ãããžã§ã¯ãã§å€éšã©ã€ãã©ãªã䜿çšã§ããªãå ŽåããããŸãã 極端ãªå ŽåïŒéåžžã«ãéåžžã«æ¥µç«¯ã§ãïŒïŒç¬èªã«äœæããæ éã«ç¢ºèªããŠãã¹ãããå°é家ã«ç¢ºèªããŠãã¹ãããŠããããããäžåºŠæ éã«èªåã§ãã§ãã¯ããŠãã¹ãããŠãã ããã ã³ãŒãã§ãã®ã©ã€ãã©ãªã®é¢æ°ã䜿çšããå¿ èŠãªãã³ã«æ°ããã¡ãœãããäœæããªãã§ãã ããã
äžè¬çã«ãããã¯å®å šã§ãããã€ã¯ãå°ãªãã»ã©è¯ããœãªã¥ãŒã·ã§ã³ã§ãã
èªå·±èšºæãè¡ã
ç§ãã¡ã¯çæ¥ãã§ããŸãã çŸåšäœæäžã®ã³ãŒãã¯æšæ¥æåºããå¿ èŠããã£ããããå¿ èŠãªã®ã¯ã³ã³ãã€ã«ããããšã ãã§ããã ãŸãã圌ã¯ãŸã äœãæçšãªããšãããªããã°ãªãããããã€ãã®ãã¹ãã«åæ Œããªããã°ãªããŸããã
ãã㊠ã³ãŒããæžããã°ããã®ãšãã¯ãã³ã³ãã€ã«ããåã§ãã£ãŠããå°ãäŒæ©ãåãããªã©ãã¯ã¹ããŠãã³ãŒããå¿ããŠãã ããã äŒæ©ã®åŸãããŸããŸãªè§åºŠããæžãããå 容ãèŠãŠãã ãããæ§æãã³ãŒãã®äŒæ¥æšæºãžã®æºæ ã確èªããŠãã ããã ã³ãŒãã®ããžãã¯ã確èªããŠãã ããã å®å šèŠä»¶ãžã®æºæ ã確èªããŠãã ããïŒãæè¡ãç¥ãããèŠããŠããŸããïŒïŒã
å€ãã®æéãç¯çŽã§ããŸãã æéãç¡é§ã«ãªã£ãŠããããã«èŠããŸãããã¢ããªã±ãŒã·ã§ã³ã®ãããã°ãå€§å¹ ã«åæžããããããæéã¯æ»ããŸãã
ã»ã«ããã¹ãã¯ãé«å質ã®ãœãããŠã§ã¢ãäœæããããã®èªèãããæ £è¡ã§ãã ãã®ããã PSP ïŒPersonal Software ProcessïŒã«å«ãŸããŠããŸããããã¯ãå³ããæéãšè²¡æ¿çå¶çŽã«çŽé¢ããŠé«å質ã®è£œåãäœæããããã«ç¹å¥ã«èšèšãããããã»ã¹ã§ãã
泚æïŒèæ å¿ã¯å質ã ãã§ãªããã¹ããŒãã®æµã§ããããŸãã
ã³ãŒãæ€èšŒãŠãŒãã£ãªãã£ã䜿çšãã
æããªééããããã®ã¯äººéã®æ¬æ§ã§ãã åæã«ããã¹ãŠã®ããã°ã©ããŒã¯ããããæ€åºããã®ãæãé£ããã®ã¯éŠ¬é¹¿ãããšã©ãŒã§ããããšãç¥ã£ãŠããŸãã
人ããã¹ãŠãäžåºŠã«èŠããã®ã¯é£ããã§ãã è匱æ§ã«ã¯å€ãã®çç±ããããŸãã åé¡ãåé¿ããã«ã¯ããããããã¹ãŠèŠããŠããå¿ èŠããããŸããããã°ã©ã ã®ååšã確èªããå¿ èŠããããŸãã ããã«ãã¯ã©ãã«ãŒã¯éæ¢ããŠããŸãããæšæ¥å®å šã§ãããšèããããŠãããã®ã¯ãä»æ¥ãã§ã«è匱ã§ããå¯èœæ§ããããŸãã
èªååæãŠãŒãã£ãªãã£ã¯ãæããªãšã©ãŒãæ¥éã«å€åããäžçã®åé¡ãéšåçã«æžããããšãã§ããŸãã ãããã®ããã°ã©ã ã¯ã³ãŒããã¹ãã£ã³ãããã®äžã«æœåšçãªã»ãã¥ãªãã£åé¡ã®å åãæ¢ããŸãã èªååããããŠãŒãã£ãªãã£ã¯ã人éã®ä»å ¥ãã»ãšãã©å¿ èŠãšããã«å€ãã®çš®é¡ã®è匱æ§ãè¿ éã«æ€åºã§ãããããããã°ã©ããä»ã®åé¡ã«ãã£ãšæ³šæãæãããšãã§ãããããåªããŠããŸãã å€ãã®å Žåããããã®ãŠãŒãã£ãªãã£ã¯ããªãè€éãªåæãè¡ãããšãã§ããŸãããããã¯äººã«ãšã£ãŠã¯æéãããããŸãã ãããã®æ©èœã®äžéšã¯ãã§ã«ææ°ã®ã³ã³ãã€ã©ã«çµã¿èŸŒãŸããŠãããããããããæå¹ã«ããæ¹æ³ãç¥ã£ãŠããå¿ èŠããããŸãã
èªååæã«é Œããããªãã§ãã ããã ãã®ãããªããã°ã©ã ã«ãã£ãŠçæãããæ å ±ã¯ãã³ã³ãã€ã©ã®èŠåã«é¢é£ãããã®ãšã»ãŒåãæ¹æ³ã§åŠçããå¿ èŠããããŸãã èŠåããªãããšã¯ããšã©ãŒããªãããšãæå³ããªãããšã¯èª°ããç¥ã£ãŠããŸãã ãã®ãããªã¹ãã£ããŒã¯ãæ¢ç¥ã®ã¿ã€ãã®è匱æ§ã§ãã£ãŠãããã¹ãŠã®è匱æ§ããã¯ã»ã©é ããã®ã§ãã äžæ¹ãèŠåã®ååšã¯ãŸã åé¡ã®èšŒæ ã§ã¯ãªãããã¹ãŠã®èŠåãåãé€ããšããæãããã®ãªã欲æ±ã¯ãããæ·±å»ãªè匱æ§ã«ã€ãªããå ŽåããããŸãã
èªååã«ããããã£ãšé¢çœãããšã®ããã«æéãç¯çŽã§ããŸãã ããªãã®ä»äºã®äžéšãã³ã³ãã¥ãŒã¿ãŒã«å§ããããšãã§ãããªããã©ãããŠãããããªãã®ã§ããïŒ
ãã¹ã
å®å šã®ããã«ãããã°ã©ã ã¯ç¹å®ã®åäœã瀺ããªããã°ãªããŸããã ããšãã°ãé·ãããè¡ãå ¥åããããšãããšãããã°ã©ã ã¯ãããæåŠããããããªã ããå¿ èŠããããŸãã ç¹æ®æåãå ¥åããå ŽåãããŒã¿ãæåŠããããæåãç¹å¥ã«ãšã³ã³ãŒãããå¿ èŠããããŸãã
ãã®åäœã¯ãã¹ãã§ããŸãã ãããŠãããã°ã©ã ã®èªåãã¹ãã®ãã¹ãŠã®å©ç¹ã享åã§ããŸããã»ãšãã©äººéã®ä»å ¥ãªãã§ãé »ç¹ã«å®è¡ã§ããŸãã
ããã§ã¯ãªã³ã¯ãæäŸããŸããã åŸæ¥ã®æ©èœãã¹ããšæ¯èŒããŠãå®å šãªåäœããã¹ãããç¹å¥ãªæ©èœã¯ãããŸããã TDDãç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãªã©ãç§ãããããç¥ã£ãŠãããã¹ãŠã®ãã¹ããã©ã¯ãã£ã¹ã䜿çšã§ããŸãã ãã¡ãããå®å šãªåäœãèšè¿°ã§ããå¿ èŠããããŸãïŒããã§ããããã¯ãããžãç¥ããïŒã
ãã¹ãŠãå¹æçã«ãã¹ãã§ããããã§ã¯ãããŸããã ããšãã°ãgetsïŒïŒé¢æ°ã䜿çšãããšãã»ãšãã©åžžã«ãããã¡ãŒãªãŒããŒãããŒãçºçããŸãã ãã®åé¡ã¯ãã¹ãäžã«æ€åºã§ããŸãã ãã ããèªåã³ãŒãã¹ãã£ã³ã§æ€åºããæ¹ãå¹ççã§ããåçŽãªgrepã§ãããç°¡åã«åŠçã§ããŸãã ãã¡ããããã®äŸã¯éåžžã«èªåŒµãããŠããŸãããã»ãã¥ãªãã£ãã¹ãã®å¯èœæ§ãæ€èšããããã®è¯ãåºçºç¹ã«ãªãå¯èœæ§ããããŸãã
ãã¹ãã§ã¯ãã¹ãŠã®ã»ãã¥ãªãã£åé¡ã解決ã§ããããã§ã¯ãããŸããã ããããèªåçã«ãã¹ãã§ãããã®ãããã°ãããã䜿çšããŠã¿ãŸãããïŒ
ã³ãŒãã¬ãã¥ãŒãè¡ã
ã³ãŒãä¿®æ£ã¯ããšã©ãŒãæ€åºããæãå¹æçãªæ¹æ³ã§ãã ããã«ãæ€åºãããæ¬ é¥ã®æ°ã®èŠ³ç¹ãšãæ€åºã®ã³ã¹ãïŒæéïŒã®èŠ³ç¹ã®äž¡æ¹ã§æãå¹æçã§ãã ãã®ãããã¹ãã£ãŒãããã³ãã«ã®èæžãPerfect Codeãã¯ãã³ãŒãã®ä¿®æ£ã«1æéãè²»ããããšã§ããã¹ããšãã©ãã«ã·ã¥ãŒãã£ã³ã°ã®æéãæ倧100æéç¯çŽã§ãããšããIBMã®ç 究ãžã®ãªã³ã¯ãæäŸããŠããŸãã æ°100ã«éããããšã¯ãã£ãã«ãªããšæããŸãããããã§ãããã¯éåžžã«è¯ãçç±ã§ãã
ã³ãŒãã®æ¹èšã¯ããŸããŸãªæ¹æ³ã§ç·šæã§ããŸãã ãã¢ããã°ã©ãã³ã°ã仲éã®ããã°ã©ãã«ããéå ¬åŒã®ã³ãŒãã¬ãã¥ãŒãããã³å®å šãªããã°ã©ãã³ã°ã®å°é家ãé¢äžããéåžžã«æ£åŒãªæ€æ»ããã®åœ¹å²ãæããããšãã§ããŸãã ç®æšã«å€§ããäŸåããŸããããã°ã©ã ã«ããé«ãèŠä»¶ã課ããããã»ã©ãããå€ãã®äººãç£æ»ã«é¢äžããå¿ èŠããããããæ£åŒã«å®è¡ãããå¿ èŠããããŸãã
ç£æ»ã®æ§æã¯ãããã°ã©ããŒã®è³æ Œã«ãäŸåããŸãã æããã«ã圌ãèªèº«ãå®å šãªããã°ã©ãã³ã°ã®ååã«ååã«ç²ŸéããŠããå Žåã第äžè ã®å°é家ãéãããšã¯æå³ããªããéå ¬åŒã®æé ã§ååãããããŸããã äžæ¹ã§ãé«åºŠã«åœ¢åŒåãããã³ãŒãæ€æ»ã«ç¬¬äžè ã®å°é家ãåŸäºãããããšã¯ãããã°ã©ããŒããã¬ãŒãã³ã°ããããã®ããã°ã©ã ã®éèŠãªéšåã«ãªãå¯èœæ§ããããŸãã
ãããŠåã³ãOWASPã ãã¡ããããã®ãããžã§ã¯ãã¯ãã®ãããªéèŠãªæ¹æ³è«ãè¿åããããšã¯ã§ããŸããã§ããã ãããã£ãŠããããžã§ã¯ãã®ã³ãŒããç£æ»ããå ŽåïŒãŸã ãããè¡ãããšãçŽåŸãããŠããŸãããïŒïŒããã®ãµã€ãã®å¯Ÿå¿ããããŒãžã¯è¯ãåºçºç¹ã§ãã
ããªãã¯ãŸã ã³ãŒãã¬ãã¥ãŒãè¡ã£ãŠããŸãããïŒ ããªãã«èš±ãã¯ãããŸãã!!!
è€åäœã®ãã¹ãŠã®ã¡ãžã£ãŒã䜿çšãã
ãããš...ããã«äœããæžãå¿ èŠããããŸããïŒ
ããŒãII ã»ãã¥ãªãã£ãšã³ãžãã¢ãªã³ã°
åæ©ä»ãã®ã¢ãããžãŒ
ä»ã®ãšããã»ãã¥ãªãã£ããè±åºããŸãããã ããã°ã©ããŒã«ãšã£ãŠæãäžè¬çãªã¿ã¹ã¯ã®1ã€ã¯ãæ¢åã®ããã°ã©ã ãå€æŽããããšã§ãã ããã°ã©ã ãããŒããããäœæããå¿ èŠã¯ããŸããããŸããããæ¢åã®ããã°ã©ã ãå€æŽïŒãç¶æãïŒããå¿ èŠããããŸãã
ãããã£ãŠãæ¢åã®ããã°ã©ã ãå€æŽããå¿ èŠããããŸãã ãããŠãããããéèŠãªãå€åã§ããããšãæå³ããŸããããã¯ããããæå³ããªãããã«ãåããã°ã©ããŒãèªåã§ç°¡åã«ç¶æ³ãèããããšãã§ããããšãæå³ããŸãã
1ã€ã®åé¡ããããŸãã åæéçºäžã®ããã°ã©ã ã¯å€æŽããããšãæå³ããŠããŸããã§ããã çç±ãããããªãïŒåœŒããèããªãã£ãããæ¥ãã§ãããã©ããã¯é¢ä¿ãªããçµæãããã ãã®ããã°ã©ã ã¯ãçžäºã«å€§ããäŸåããå€æ°ã®ã¢ãžã¥ãŒã«ã§æ§æãããŠããŸãã 1ã€ã®ã¢ãžã¥ãŒã«ã«å°ããªå€æŽãå ãããšãä»ã®ã¢ãžã¥ãŒã«ã¯ç Žå£ãããŸãã ããªãã¿ã§ããïŒ
ããã¯æ·±å»ãªåé¡ã§ããïŒ
100è¡ã®ããã°ã©ã ããããšããŸãã å€ããå°ãªããè³æ Œã®ããããã°ã©ããŒã¯ããã®äžã«ãéåžžã«ãéèŠãªãå€æŽããç°¡åã«å ãããšæããŸãã ãããŠã1æ¥ã§ã¯ãªãã«ããŠãã2ã3ãè¶ ããªãå Žåãããã§ãå€åãã«ã€ããŠè°è«ããã®ã¯ã°ãããŠããŸãã
ããã°ã©ã ã¯1äžè¡ã§ãã ã¿ã¹ã¯ã¯ç°¡åã§ã¯ãããŸããããè©ŠããŠã¿ãã°è§£æ±ºã§ããŸãã
ããã°ã©ã ã¯100äžè¡ã§ãã ããã§ã¯ãã¹ãŠãéåžžã«è€éã§ããäžçæžåœããã·ã¥ããŠåé¡ã解決ã§ããŸããããã¹ãŠã®ã³ãŒããç Žæ£ããŠå床èšè¿°ããæ¹ãé«éã§å®äŸ¡ã«ãªãããšããããŸãã
ãã¡ãããããã°ã©ã ã®ãµã€ãºãã倩äºãããåããŸããã ãã¹ãŠãå€åã®ãéèŠæ§ããšåé¡ã®è»œèŠã®çšåºŠã«äŸåããããšã¯æããã§ãã ããããç§ãã¡ã¯çåããããªãã®ã«åºãããã誰ããããã°ã©ã ã®å€æŽã®è€éãããã®ãµã€ãºãšãšãã«æ¥éã«å€§ãããªãããšãæ³åããŠããŸãã
ãããã£ãŠãç§ãã¡ã¯çãSOLIDããããŠããããä»ã®åæ§ã®ååã«ã€ããŠç¥ã£ãŠããŸãã ãããã®ååãèæ ®ããŠããã°ã©ã ãæåããèšèšããã³éçºãããå Žåãããã°ã©ã ã®ä¿å®ãã¯ããã«å®¹æã«ãªããŸãã éåžžã«å€§èŠæš¡ãªããã°ã©ã ã®å ŽåããããªããµããŒããèæ ®ããŠèšèšããããšããäžè¬çã«ãã®å¯èœæ§ã®å¿ èŠæ¡ä»¶ã«ãªããŸãã
ããŠãã»ãã¥ãªãã£ã«æ»ããŸãããã
å®å šãªã¢ãŒããã¯ãã£ãšèšèšã®åå
å®å šæ§ã«ã¯ãå å®ãããããŸãã ç§ã¯ãã®å£°æãããªããé©ããããšã¯æããªãïŒèª°ãïŒãŸãã¯ã»ãšãã©ãã¹ãŠïŒããããã®ååã®ååšãç¥ã£ãŠããããã®ãµã€ãã®è°è«ã§å®æçã«èšåãããŠããã
ãããã®ååãæãåºãããŠãã ããã
- ã¡ã«ããºã ã®ã·ã³ãã«ãïŒã¡ã«ããºã ã®çµæžïŒ;
- ãã§ã€ã«ã»ãŒãã®ããã©ã«ã
- ä¿è·ã®å®å
šãªæµžéïŒå®å
šãªèª¿åïŒ;
- ãªãŒãã³ãã¶ã€ã³
- ç¹æš©ã®åé¢;
- æäœç¹æš©
- ãªãœãŒã¹å
±æã®æå°åïŒæãäžè¬çã§ãªãã¡ã«ããºã ïŒ;
- å¿ççå容æ§ã
ãããã®ååã¯ãçŽ40幎åã®èšäºã ã³ã³ãã¥ãŒã¿ãŒã·ã¹ãã ã«ãããæ å ±ã®ä¿è· ãã§çå®ãããŸããã ä»ã圌ãã¯åœŒãã«ããã«ããã€ãã®ã«ãŒã«ãè¿œå ãããïŒ äŸ ïŒããäºå®ã¯ãããã®ååãé·ãéç¥ãããŠãããä»æ¥ãŸã§çå®ã®ãŸãŸã§ãããšããäºå®ã§ããã ãããã®ååã«åŸã£ãŠæ§ç¯ãããæåãããœãªã¥ãŒã·ã§ã³ã®äŸããããŸãã
å¥åº·ã®ããã«ãå®å šã®ããã«äººã ã®ããã«èªåã§ãã¶ã€ã³ããããã«æããŸãã
ããããååã ãã§ã¯ååã§ã¯ãããŸããã ã»ãã¥ãªãã£ã®äžè¬ååã®ã¿ãç¥ã£ãŠããå®å šãªã·ã¹ãã ãæ§ç¯ããããšãå¯èœã§ãã ããããããã¯å¹ŸäœåŠã®åé¡ã®è§£æ±ºã«äŒŒãŠããããã®å ¬çã®ã¿ã«äŸåããŸãã èšèšãå¹æçã«ããããã«ãå žåçãªã¢ãããŒããæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãç¥ãããšã¯éåžžã«åœ¹ç«ã¡ãŸãã
ãã¿ãŒã³ã䜿çšããå¿ èŠããããŸãã
å®å šãªã¢ãŒããã¯ãã£ãšèšèšãã³ãã¬ãŒã
ç§ãã¡ã®ä»äºã§ã¯ãç¹°ãè¿ãã¿ã¹ã¯ãåžžã«çºçããŸãã åã·ã¹ãã ãåããã°ã©ã ã¯ãä»ã®å€ãã®ãã®ãšå€å°äŒŒãŠããŸãã ãŸããæšæºã¿ã¹ã¯ã«ã¯ãæšæºãœãªã¥ãŒã·ã§ã³-ãã³ãã¬ãŒãããããŸãã
ãã³ãã¬ãŒãã¯ãã®èšŒæã«é©ããŠããŸãã åãã³ãã¬ãŒãã¯çµéšããçãŸãããã®ã§ãããè©Šè¡é¯èª€ãæ¹åãçºèŠãããåé¡ã®æé€ã®çµæã§ãã ãã³ãã¬ãŒãã䜿çšããŠããããã©ã®ãããªçµæããããããããããã©ã®ãããªå©çãããããããã©ã®åé¡ãæŠããªããã°ãªããªãããæ£ç¢ºã«äºæž¬ã§ããŸãã
ããã°ã©ãã³ã°ã§ã¯ãèšèšãã¿ãŒã³ã¯ããç¥ãããŠããŸãã ãããã¯ãããã°ã©ã ã®èšèšã§çºçããåé¡ã®ãã³ãã¬ãŒããœãªã¥ãŒã·ã§ã³ã§ãã ãããã䜿çšããããšã§ç§ãã¡ã®ç掻ã¯å€§å¹ ã«ç°¡çŽ åãããŸããç§ãã¡ã®åã«ã¿ã¹ã¯ãæšæºã®ãã®ã«ããæ¢åã®æããã«åäœãããœãªã¥ãŒã·ã§ã³ãé©çšããå¿ èŠããããŸãã ãããã£ãŠãã4人çµãã®æ¬ã¯ãããã°ã©ããŒã«ãšã£ãŠã»ãŒå¿ é ã®èªã¿ç©ã§ãã
ãã¶ã€ã³ã¯ãã¿ãŒã³ã«éå®ãããŸããããã¿ãŒã³ã¯ãã¹ãŠã®ã¬ãã«ã«ååšããŸãã ã¢ãŒããã¯ãã£ãã³ãã¬ãŒãïŒå°ãªããšãMVCãæãåºããŠãã ããïŒãã³ãŒããèšè¿°ããããã®ãã³ãã¬ãŒãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãã³ãã¬ãŒããããã³ããã°ã©ã ã®åäœçšã®ãã³ãã¬ãŒãããããŸãã ã»ãšãã©ãã¹ãŠã®æ°ããã¿ã¹ã¯ã«ã¯ãç¬èªã®ãã³ãã¬ãŒããœãªã¥ãŒã·ã§ã³ããããŸãã
ã»ãã¥ãªãã£ã«ã¯ç¬èªã®ãã³ãã¬ãŒãããããŸãã ãã³ãã¬ãŒããœãªã¥ãŒã·ã§ã³ã¯ãæ å ±ã·ã¹ãã ãæ§ç¯ãããã¹ãŠã®ã¬ãã«ã«å¯Ÿå¿ããŠããŸãã çµç¹ã®ã»ãã¥ãªãã£å¯Ÿçãå«ããäŒæ¥å šäœã®ã»ãã¥ãªãã£ãã³ãã¬ãŒãããããŸãã çŽç²ã«æè¡çãªãšã³ãã£ãã£ãšããŠæ å ±ã·ã¹ãã ãæ§ç¯ããããã®ãã¿ãŒã³ããããŸãã å®å šãªã¢ããªã±ãŒã·ã§ã³ãã³ãã¬ãŒãããããŸãã
ãã¡ãããã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£ãã¿ãŒã³ã«é¢å¿ããããŸãã ããã§ã¯ãããŸããŸãªã¬ãã«ã«ã€ããŠè©±ãããšãã§ããŸããå®å šãªåäœã®ãã¿ãŒã³ãšãå®å šãªããã°ã©ã ã®æ§é ã®ãã¿ãŒã³ããããŸãã
ããã°ã©ã ã®ã»ãã¥ãªãã£ã¯ãå€ãã®å Žåããã®å®å šãªåäœã«æ£ç¢ºã«é¢é£ä»ããããŠããŸãã ããšãã°ããŠãŒã¶ãŒèªèšŒãã¢ã¯ã»ã¹æš©ã®æ€èšŒãå ¥åããŒã¿ã®ãã£ã«ã¿ãªã³ã°ãå«ãŸããŸãã åäœã¯ãç°¡åã«è¡šç€ºããã¹ãã§ãããã®ã§ãã ãã®ãããããŒã±ãã£ã³ã°æ åœè ã¯éåžžãã»ãã¥ãªãã£æ©èœã®ã¿ãã販売ãããŠããŸãã
ããããå®å šãªããã°ã©ã ã®æ§é ã«èªè ã®æ³šæãåŒããããšæããŸãã ã¯ããããã¯åœ±ã«ãããŸããããã¯å®èšŒããã®ãé£ããã販売ããã®ãé£ããã§ãã
ããããã»ãã¥ãªãã£ã¯ãããã°ã©ã ã®åäœãããããã°ã©ã ã®æ§é ã«äŸåããŠããŸãã ãšã©ãŒãçºçãã確çã¯ãããã°ã©ã ã®æ§é ã«ãã£ãŠç°ãªããŸãã ããã°ã©ã ã®æ§é ã«ãã£ãŠããã®ãšã©ãŒãè匱æ§ã«ãªããã©ããã決ãŸããŸãã ããã°ã©ã ã®æ§é ã«ããããã®è匱æ§ã®æ·±å»åºŠã決ãŸããŸãã ããšãã°ãéèŠãªããŒã¿ã«ã¢ã¯ã»ã¹ããã³ãŒãã§ããŸãã¯ãã®ãããªã¢ã¯ã»ã¹æš©ãæããªãã³ãŒãã§ãã©ã®ãšã©ãŒãããæ·±å»ãªçµæã«ã€ãªããããèããŠãã ããã
ããªããšç§ã®èª¬æãªãã§ãããã°ã©ã ã®ã¢ãŒããã¯ãã£ãšãã¶ã€ã³ã®éèŠæ§ãç解ããŠãããšæããŸãã ãããã£ãŠãå®å šãªããã°ã©ã ã®æ§é ãã¿ãŒã³ã«é¢ãã2ã€ã®åºçç©ããå§ãããŸãã
æåã®åºçç©ã¯Security Design PatternsïŒ pdf ïŒã§ãã ç§ã®æèŠã§ã¯ãããã¯å®å šãªããã°ã©ã ã®æ§é ãã¿ãŒã³ã«é¢ããæé«å質ã®åºçç©ã®äžã€ã§ãã ã»ãŒ10幎åã2004幎ã«Open Groupã³ã³ãœãŒã·ã¢ã ã«ãã£ãŠå ¬éãããŸããã ãã®åºçç©ã«ã¯ããã³ãã¬ãŒãã䜿çšããŠã»ãã¥ãªãã£ãèšèšããããã®æ¹æ³è«ãšããããã®å€ãã®èª¬æã®äž¡æ¹ããããŸãã
ããšãã°ãä¿è·ãããã·ã¹ãã ãã³ãã¬ãŒãã®èª¬æã¯éåžžã«èå³æ·±ããã®ã§ãã ä»ã®æ å ±æºã§ã¯ããåç §ã¢ãã¿ãŒããšåŒã°ããæç®ã§é »ç¹ã«åç §ãããŠããŸãã ããããã»ãšãã©ã®å ŽåãèšåãããŠããŸããä»ã®ã»ãšãã©ã®åºçç©ã§ã¯ãåããŒãžã®åã§åœŒã«æ§ããããŠããŸãã Open Groupã®äœæ¥ã§ã¯ãä¿è·ãããã·ã¹ãã ãã³ãã¬ãŒãã®äœ¿çšãã䜿çšå¯èœãªãªãã·ã§ã³ãå«ããéåžžã«è©³çŽ°ã«åæãããŸãã
2çªç®ã®åºçç©ã¯ããSecure Design PatternsãïŒ pdf ïŒã§ãã ããã¯æè¿ã®æ å ±ã§ããã Software Engineering Instituteã§è¡ãããç±³åœåœé²ç·çãåŸæŽããäœæ¥ã«é¢ããã¬ããŒãã§ãã
SEIã¬ããŒãã¯ãå ¬éæç¹ã§ç¥ãããŠããã»ãã¥ãªãã£ãã¿ãŒã³ã®ã«ã¿ãã°ã§ãã ããã«ãã¢ãŒããã¯ãã£ãã³ãã¬ãŒãããã¶ã€ã³ãã³ãã¬ãŒããå®è£ ãã³ãã¬ãŒãã®3ã€ã®ç°ãªãã¬ãã«ã®ãã³ãã¬ãŒãã衚瀺ãããŸãã ãããã£ãŠããã®ãããã¯ã«é¢ããéåžžã«åªããæ å ±æºãšããŠäœåã䜿çšã§ããŸãã
ä»ã®æç®ããããŸãã ããããç§ã®æèŠã§ã¯ãå°ãªããšãæåã¯ãèšåããã2ã€ã®æ å ±æºã§ååã§ãã ãããã§å©çšå¯èœãªæ å ±ãææ¡ããã®ã§ããã§ã«éåžžã«å®å šãªããã°ã©ã ãäœæã§ããŸãã
èªãã§ãèããŠãé©çšããŠãã ããã
ãããã«
åçŽãªããã°ã©ã ãå®å šã«ããããšã¯éåžžã«ç°¡åã§ãã ãããè¡ãã«ã¯ãå€ãã®ããšãèãããèšç»ãããããå¿ èŠã¯ãããŸãããã»ãã¥ãªãã£ã«æ³šæãæãããã®èšäºã®æåã®éšåã§èª¬æããå®å šãªããã°ã©ãã³ã°ææ³ãé©çšããã ãã§ãã
äžè€éãªããã°ã©ã ã®èšèšãèãããšãæéãšãéãå€§å¹ ã«ç¯çŽã§ããããããããªãã®è©å€ãç¶æã§ããŸãã
é«å質ã®ã¢ãŒããã¯ãã£ãšè€éãªããã°ã©ã ã®èšèšã¯ããããå®å šã«ããå¯äžã®æ¹æ³ã§ãã
次ã«æ°ããããã°ã©ã ãèšç»ãããšãããŸãã¯æ¢åã®ããã°ã©ã ããªãã¡ã¯ã¿ãªã³ã°ãããšãã«èããŠãã ããã
PSèšäºã¯å€§ããããšãå€æããŸããã ç§ã¯ãããéšåã«åå²ãå§ããŸããã§ãããç§ã¯æ¬åœã«ãã®å®å šæ§ãç¶æãããã£ãã§ãã ãããããããšãé¡ã£ãŠããŸãããããŸãè² è·ããããªãã£ããšæããŸãã
ã¡ãã£ãšããããŒãã¹ãšããŠããã®èšäºã®ãããã¯ã«é¢ããæç®ã®ãã€ã¯ãã¬ãã¥ãŒãè¿œå ããŸãã

æç®ïŒãã€ã¯ãã¬ãã¥ãŒïŒ
1. Steve McConnelããæ¥éãªéçºã Wild Software Schedulersã䜿ãããªãããMicrosoft Press 1996
éåžžã«èå³æ·±ãæ¬ã èè ã¯ãé«å質ã®ãœãããŠã§ã¢ã®å¹ççãªéçºãå¯èœã«ããããŸããŸãªæè¡ããã³ç®¡çæè¡ã«ã€ããŠèª¬æããŠããŸãã
ãã®æ¬ããã®éèŠãªãã€ã³ãïŒæ¥éãªçºå±ã¯æ··chaãæå³ããŸããã é床ã¯ãèšç»ã®äžè¶³ã«ãããã®ã§ã¯ãªããéã«ãæ éãªèšç»ãèµ·ããããåé¡ã®äºæž¬ã«ãããã®ã§ãã
2. Steve McConnellããã³ãŒãã®å®æïŒãœãããŠã§ã¢æ§ç¯ã®å®è·µçãã³ãããã¯ããMicrosoft Pressã第2çã2004幎
ãããããããã°ã©ããŒã«ãšã£ãŠæãå¿ èŠãªæ¬ã®1ã€ã§ãã ããã¯ããã°ã©ãã³ã°ã®çŸç§äºå žã§ãïŒããã¯ã³ãŒãã®ã¹ã¿ã€ã«ãšãã®éçºã®å€ãã®å®è·µã®äž¡æ¹ãèšè¿°ããŸãã
ã»ãã¥ãªãã£ã®èŠ³ç¹ããïŒäžååã«æžãããããã°ã©ã ã¯å®å šã§ã¯ãããŸããã
3. Eric J. BraudããœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ïŒãªããžã§ã¯ãæåã®èŠç¹ããWiley Computer Publishingã2001
ç§ãã¡ã®åœã§ã¯ããã®æ¬ã¯ããœãããŠã§ã¢éçºæè¡ããšããã¿ã€ãã«ã§åºçãããŸããã
æ¬ã®å 容ã¯ãã®ã¿ã€ãã«ãšå®å šã«äžèŽããŠããŸãã ãŠãŒã¶ãŒã®ããŒãºã«é¢ããæ å ±ã®åéããå§ãŸããã¡ã³ããã³ã¹ã§çµããéçºæè¡ã«ã€ããŠèª¬æããŸãã
ã»ãã¥ãªãã£ã®èŠ³ç¹ããããã®æ¬ã¯ããœãããŠã§ã¢è£œåã®å®æ§çã§éæ©èœçãªç¹æ§ãã€ãŸããã®å®å šæ§ã«æ³šç®ããŠããç¹ã§èå³æ·±ããã®ã§ãã
4. Len BassãPaul ClementsãRick Kazmanããå®è·µçãªãœãããŠã§ã¢ã¢ãŒããã¯ãã£ããAddison-Wesley Professionalã第2çã2003幎
ãœãããŠã§ã¢ã¢ãŒããã¯ãã£ã®åéã§äžçããªãŒãããå°é家ã®æ¬ã
ãœãããŠã§ã¢ã®æ§é ïŒã¢ãŒããã¯ãã£ïŒãšãã®éæ©èœããããã£ã®é¢ä¿ïŒé床ãå€æŽå¯èœæ§ãã»ãã¥ãªãã£ãªã©ïŒã説æãããŠããŸãã
ã¯ã©ã€ã¢ã³ãã®ããŒãºãæé©ã«æºãã劥åãœãªã¥ãŒã·ã§ã³ãšããŠã®ã¢ãŒããã¯ãã£èšèšã®åé¡ã«ã€ããŠèª¬æããŸãã
5. Paul ClementsãFelix BachmannãLen BassãDavid GarlanãJames IversãReed LittleãRobert NordãJudith SaffordããœãããŠã§ã¢ã¢ãŒããã¯ãã£ã®ææžåã ãã¥ãŒãšãã®å â Addison-Wesley Publishing 2008
ãœãããŠã§ã¢ã¢ãŒããã¯ãã£ã®åéã§äžçããªãŒãããå°é家ã«ããå¥ã®æ¬ã
ãã®æ¬ã®éèŠãªã¢ã€ãã¢ã¯ããœãããŠã§ã¢è£œåã®ãã¢ãŒããã¯ãã£ãã®ãã¹ãŠã®ç¹æ§ã説æããã®ã«é©ãããã®ããªãããšã§ãã ã¢ãŒããã¯ãã£ã®å®å šãªèª¬æã¯ãããŸããŸãªãèŠç¹ãã®çµã¿åããã§ãã
ã»ãã¥ãªãã£ãåæããã«ã¯ãããã°ã©ã ã®ã¢ãŒããã¯ãã£ãã©ã®ããã«èšè¿°ããããç解ããããšãéèŠã§ãã ä»ã®ãã¶ã€ããŒãæäŸãã説æãã»ãã¥ãªãã£å°é家ã«ãã£ãŠåžžã«äœ¿çšã§ããããã§ã¯ãªãããã圌ã¯èªåã§äœæããå¿ èŠããããŸãã
6. Richard N. TailorãNenad MedvidovicãEric M. DashfyãããœãããŠã§ã¢ã¢ãŒããã¯ãã£ã åºç€ãçè«ãå®è·µããWileyã2010
ãœãããŠã§ã¢ã¢ãŒããã¯ãã£ã®åé¡ã«é¢ãããã¥ãŒããªã¢ã«ã ãã®æ¬ã¯ãåé¡ã®æŽå²ã説æããã®ã«èå³æ·±ãã èšèšæ¹æ³ã説æãã¢ãŒããã¯ãã£ã®åæã«é¢ããå€ãã®æ å ±ãå«ãŸããŠããŸãã
以åã®2åã®æ¬ãšã¯ç°ãªããããåŠè¡çã§åºæ¬çãªãã®ã§ãã
7. Matt Bishopãã³ã³ãã¥ãŒã¿ãŒã®ã»ãã¥ãªãã£ã èžè¡ãšç§åŠãããã¢ãœã³æè²ã2003
ã©ã®æ¬ãèªãã¹ããå°ããããããç§ã¯ãããåŒã³åºããŸãã ã»ãã¥ãªãã£ã®å°é家ã«ã¯å¿ èªã§ãããæ°åŠçç¥èãå¿ èŠã§ãã
è¯ãåºæ¬çãªæ¬ã
8. Jonh ViegaãGary McGrawãå®å šãªãœãããŠã§ã¢ã®æ§ç¯ã ã»ãã¥ãªãã£åé¡ãæ£ããæ¹æ³ã§åé¿ããæ¹æ³ããAddison-Wesley Publishing Companyã2005
9. Gary McGrawããœãããŠã§ã¢ã»ãã¥ãªãã£ã ãã«ã®ã»ãã¥ãªãã£ããAddison-Wesley Publishing Companyã2006
10. Greg HoglundãGary McGrawããœãããŠã§ã¢ã®æŽ»çšã ã³ãŒããç Žãæ¹æ³ããAddison-Wesley Publishing Companyã2004
1人ã®èè ïŒã²ã€ãªãŒãã¯ã°ããŒïŒãçµéãã3åã®æ¬ã ããŸããŸãªè§åºŠããããœãããŠã§ã¢ã»ãã¥ãªãã£ã®éçºãšãã¹ããžã®ã¢ãããŒãã«ã€ããŠèª¬æããŸãã
ããã§ã¯ãã»ãã¥ãªãã£èŠä»¶ãã»ãŒãã¹ãŠã®ãœãããŠã§ã¢éçºããã»ã¹ã«çµ±åããæ¹æ³è«ã§ããã¿ãããã€ã³ãã®èª¬æãèŠã€ããããšãã§ããŸãã
å¥ã®éèŠãªææ³ã§ããæ»æãã¿ãŒã³ã¯ããœãããŠã§ã¢ãããžã§ã¯ãã®åæãšãã¹ãããã°ã©ã ã®éçºã®äž¡æ¹ã§äœ¿çšã§ããŸãã
11.ãžã¥ãªã¢H.ã¢ã¬ã³ãã·ã§ãŒã³ããŒãã ããããŒãJ.ãšãªãœã³ãã²ã€ãªãŒãã¯ã°ããŒããã³ã·ãŒR.ããŒããããœãããŠã§ã¢ã»ãã¥ãªãã£ãšã³ãžãã¢ãªã³ã°ã ãããžã§ã¯ããããŒãžã£ãŒåãã¬ã€ãããAddison-Wesley Publishing Companyã2008幎
Garry McGrawãå·çããéåžžã«è¯ãæ¬ã ããã°ã©ã ã®éçºã«äœ¿çšã§ããããŸããŸãªæ¹æ³ãæ¹æ³è«ãžã®ãªã³ã¯ãå«ãŸããŠããŸãã
æ®å¿µãªããã説æãããã©ã®ããã«1ã€ãŸãã¯å¥ã®ææ³ããã®ææ³ãã»ãã¥ãªãã£ã®èšèšãŸãã¯åæã«æ£ç¢ºã«äœ¿çšã§ãããã¯å¿ ãããæããã§ã¯ãããŸããã
æ¬ã¯ãå¯èœãªè§£æ±ºçãžã®ãã€ã³ã¿ãšããŠãåç §ãšããŠäœ¿çšã§ããŸãã ãããããœãªã¥ãŒã·ã§ã³ã®èª¬æã¯ãæ¬ãåç §ããŠããæ å ±æºã§æ¢ãã®ãæé©ã§ãã
12. Mark S. MerkovãLakshmikanth Raghavanããã»ãã¥ã¢ã§åŒŸåæ§ã®ãããœãããŠã§ã¢éçºããAuerbach Publicationsã2010
äºäººã®éæ¥å»ã®æ¬ã äž¡æ¹ãšãPayPal Incã§åäœããŸãïŒå°ãªããšãå·çæç¹ã§ã¯ïŒã ãæ³åã®ãšãããå€ãã®ã»ãã¥ãªãã£äœæ¥ããããŸãã
èè ã¯ã圌ãèªèº«ã䜿çšãã圌ãã®ããã«åãããã¯ããã¯ã説æããŠããããã§ãã ãã®æ¬ã¯ãèšèšãããªãªãŒã¹ãŸã§ããœãããŠã§ã¢ã®ã©ã€ããµã€ã¯ã«å šäœãã«ããŒããŠããŸãã
13. Michael HowardãDavid LeBlancããWriting Secure CodeããMicrosoft Pressã第2çã2003幎
14. Frank SwiderskiãWindow SnyderããThreat ModelingããMicrosoft Pressã2004
15.ãã€ã±ã«ã»ãã¯ãŒããã¹ãã£ãŒãã»ãªãããŒããã»ãã¥ãªãã£éçºã©ã€ããµã€ã¯ã«ããMicrosoft Pressã2006
ãã€ã¯ããœããã®æåãª3åã®æ¬ã ãããã«ã€ããŠå€ãã®ããšã話ããŠãæå³ããªããšæããŸãã
æåã®æ¬ã¯ããã°ã©ããŒåãã2çªç®ã¯ãã¶ã€ããŒåãã3çªç®ã¯ãããžã§ã¯ããããŒãžã£ãŒåãã§ãã
16. Michael HowardãDavid LeBlancãJonh ViegaãããœãããŠã§ã¢ã»ãã¥ãªãã£ã®24ã®å€§çœªã ããã°ã©ãã³ã°ã®æ¬ é¥ãšãã®ä¿®æ£æ¹æ³ããMcGraw-Hill / Osborneã2009
ãã®æ¬ã¯ãåãèè ã®æåããåºçç©ããœãããŠã§ã¢ã»ãã¥ãªãã£ã®19ã®å€§çœªãã®çºå±çã§ãã Programming Flaws and How to Fix Themâ.
, .
: , .
.
17. Mark Down, John McDonald, Justin Schun, âThe Art of Software Security Assessement. Identifying and Preventing Software Vulnerabilitiesâ, Addison-Wesley, 2007
(1048 ) , , . , ; ; .
.
.
18. Karl E. Wiegers, âPeer Reviews in Software. A Practical Guideâ, Addison-Wesley Publishing Company, 2010
, . , . .
, , .
â , .
19. Paul C. Jorgensen âSoftware Testing. A Craftman's Approachâ, Auerbach Publications, Third Edition, 2008
. , , - .
«», .
, , .
20. Cem Kaner, âA Tutorial in Exploratory Testingâ, 2008
, « ». , , .
, . , , , , .
.
21. James A. Whittaker, âHow to Break Software: A Practical Guide to Testingâ, Addison-Wesley, 2002
22. James A. Whittaker, âHow to Break Software Securityâ, Addison-Wesley, 2003
23. Mike Andrews, James A. Whittaker âHow to Break Web Software: Functional and Security Testing of Web Applications and Web Servicesâ, Addison-Wesley Professional, 2006
24. James A. Whittaker, âExploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Designâ, Addison-Wesley Professional, 2009
, . , â .
Whittaker , .
, , - Attack Patterns ( ). , - «», , , .
25. Christoper Steel, Ramesh Nagappan, Ray Lai, âCore Security Patterns. Best Pracices and Strategies fo J2EE, Web Services, and Identity Managementâ, Prentice Hall, 2005
(1088 ). J2EE. , .
J2EE , Java. , .
éåžžã«èå³æ·±ãæ¬ã èè ã¯ãé«å質ã®ãœãããŠã§ã¢ã®å¹ççãªéçºãå¯èœã«ããããŸããŸãªæè¡ããã³ç®¡çæè¡ã«ã€ããŠèª¬æããŠããŸãã
ãã®æ¬ããã®éèŠãªãã€ã³ãïŒæ¥éãªçºå±ã¯æ··chaãæå³ããŸããã é床ã¯ãèšç»ã®äžè¶³ã«ãããã®ã§ã¯ãªããéã«ãæ éãªèšç»ãèµ·ããããåé¡ã®äºæž¬ã«ãããã®ã§ãã
2. Steve McConnellããã³ãŒãã®å®æïŒãœãããŠã§ã¢æ§ç¯ã®å®è·µçãã³ãããã¯ããMicrosoft Pressã第2çã2004幎
ãããããããã°ã©ããŒã«ãšã£ãŠæãå¿ èŠãªæ¬ã®1ã€ã§ãã ããã¯ããã°ã©ãã³ã°ã®çŸç§äºå žã§ãïŒããã¯ã³ãŒãã®ã¹ã¿ã€ã«ãšãã®éçºã®å€ãã®å®è·µã®äž¡æ¹ãèšè¿°ããŸãã
ã»ãã¥ãªãã£ã®èŠ³ç¹ããïŒäžååã«æžãããããã°ã©ã ã¯å®å šã§ã¯ãããŸããã
3. Eric J. BraudããœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ïŒãªããžã§ã¯ãæåã®èŠç¹ããWiley Computer Publishingã2001
ç§ãã¡ã®åœã§ã¯ããã®æ¬ã¯ããœãããŠã§ã¢éçºæè¡ããšããã¿ã€ãã«ã§åºçãããŸããã
æ¬ã®å 容ã¯ãã®ã¿ã€ãã«ãšå®å šã«äžèŽããŠããŸãã ãŠãŒã¶ãŒã®ããŒãºã«é¢ããæ å ±ã®åéããå§ãŸããã¡ã³ããã³ã¹ã§çµããéçºæè¡ã«ã€ããŠèª¬æããŸãã
ã»ãã¥ãªãã£ã®èŠ³ç¹ããããã®æ¬ã¯ããœãããŠã§ã¢è£œåã®å®æ§çã§éæ©èœçãªç¹æ§ãã€ãŸããã®å®å šæ§ã«æ³šç®ããŠããç¹ã§èå³æ·±ããã®ã§ãã
4. Len BassãPaul ClementsãRick Kazmanããå®è·µçãªãœãããŠã§ã¢ã¢ãŒããã¯ãã£ããAddison-Wesley Professionalã第2çã2003幎
ãœãããŠã§ã¢ã¢ãŒããã¯ãã£ã®åéã§äžçããªãŒãããå°é家ã®æ¬ã
ãœãããŠã§ã¢ã®æ§é ïŒã¢ãŒããã¯ãã£ïŒãšãã®éæ©èœããããã£ã®é¢ä¿ïŒé床ãå€æŽå¯èœæ§ãã»ãã¥ãªãã£ãªã©ïŒã説æãããŠããŸãã
ã¯ã©ã€ã¢ã³ãã®ããŒãºãæé©ã«æºãã劥åãœãªã¥ãŒã·ã§ã³ãšããŠã®ã¢ãŒããã¯ãã£èšèšã®åé¡ã«ã€ããŠèª¬æããŸãã
5. Paul ClementsãFelix BachmannãLen BassãDavid GarlanãJames IversãReed LittleãRobert NordãJudith SaffordããœãããŠã§ã¢ã¢ãŒããã¯ãã£ã®ææžåã ãã¥ãŒãšãã®å â Addison-Wesley Publishing 2008
ãœãããŠã§ã¢ã¢ãŒããã¯ãã£ã®åéã§äžçããªãŒãããå°é家ã«ããå¥ã®æ¬ã
ãã®æ¬ã®éèŠãªã¢ã€ãã¢ã¯ããœãããŠã§ã¢è£œåã®ãã¢ãŒããã¯ãã£ãã®ãã¹ãŠã®ç¹æ§ã説æããã®ã«é©ãããã®ããªãããšã§ãã ã¢ãŒããã¯ãã£ã®å®å šãªèª¬æã¯ãããŸããŸãªãèŠç¹ãã®çµã¿åããã§ãã
ã»ãã¥ãªãã£ãåæããã«ã¯ãããã°ã©ã ã®ã¢ãŒããã¯ãã£ãã©ã®ããã«èšè¿°ããããç解ããããšãéèŠã§ãã ä»ã®ãã¶ã€ããŒãæäŸãã説æãã»ãã¥ãªãã£å°é家ã«ãã£ãŠåžžã«äœ¿çšã§ããããã§ã¯ãªãããã圌ã¯èªåã§äœæããå¿ èŠããããŸãã
6. Richard N. TailorãNenad MedvidovicãEric M. DashfyãããœãããŠã§ã¢ã¢ãŒããã¯ãã£ã åºç€ãçè«ãå®è·µããWileyã2010
ãœãããŠã§ã¢ã¢ãŒããã¯ãã£ã®åé¡ã«é¢ãããã¥ãŒããªã¢ã«ã ãã®æ¬ã¯ãåé¡ã®æŽå²ã説æããã®ã«èå³æ·±ãã èšèšæ¹æ³ã説æãã¢ãŒããã¯ãã£ã®åæã«é¢ããå€ãã®æ å ±ãå«ãŸããŠããŸãã
以åã®2åã®æ¬ãšã¯ç°ãªããããåŠè¡çã§åºæ¬çãªãã®ã§ãã
7. Matt Bishopãã³ã³ãã¥ãŒã¿ãŒã®ã»ãã¥ãªãã£ã èžè¡ãšç§åŠãããã¢ãœã³æè²ã2003
ã©ã®æ¬ãèªãã¹ããå°ããããããç§ã¯ãããåŒã³åºããŸãã ã»ãã¥ãªãã£ã®å°é家ã«ã¯å¿ èªã§ãããæ°åŠçç¥èãå¿ èŠã§ãã
è¯ãåºæ¬çãªæ¬ã
8. Jonh ViegaãGary McGrawãå®å šãªãœãããŠã§ã¢ã®æ§ç¯ã ã»ãã¥ãªãã£åé¡ãæ£ããæ¹æ³ã§åé¿ããæ¹æ³ããAddison-Wesley Publishing Companyã2005
9. Gary McGrawããœãããŠã§ã¢ã»ãã¥ãªãã£ã ãã«ã®ã»ãã¥ãªãã£ããAddison-Wesley Publishing Companyã2006
10. Greg HoglundãGary McGrawããœãããŠã§ã¢ã®æŽ»çšã ã³ãŒããç Žãæ¹æ³ããAddison-Wesley Publishing Companyã2004
1人ã®èè ïŒã²ã€ãªãŒãã¯ã°ããŒïŒãçµéãã3åã®æ¬ã ããŸããŸãªè§åºŠããããœãããŠã§ã¢ã»ãã¥ãªãã£ã®éçºãšãã¹ããžã®ã¢ãããŒãã«ã€ããŠèª¬æããŸãã
ããã§ã¯ãã»ãã¥ãªãã£èŠä»¶ãã»ãŒãã¹ãŠã®ãœãããŠã§ã¢éçºããã»ã¹ã«çµ±åããæ¹æ³è«ã§ããã¿ãããã€ã³ãã®èª¬æãèŠã€ããããšãã§ããŸãã
å¥ã®éèŠãªææ³ã§ããæ»æãã¿ãŒã³ã¯ããœãããŠã§ã¢ãããžã§ã¯ãã®åæãšãã¹ãããã°ã©ã ã®éçºã®äž¡æ¹ã§äœ¿çšã§ããŸãã
11.ãžã¥ãªã¢H.ã¢ã¬ã³ãã·ã§ãŒã³ããŒãã ããããŒãJ.ãšãªãœã³ãã²ã€ãªãŒãã¯ã°ããŒããã³ã·ãŒR.ããŒããããœãããŠã§ã¢ã»ãã¥ãªãã£ãšã³ãžãã¢ãªã³ã°ã ãããžã§ã¯ããããŒãžã£ãŒåãã¬ã€ãããAddison-Wesley Publishing Companyã2008幎
Garry McGrawãå·çããéåžžã«è¯ãæ¬ã ããã°ã©ã ã®éçºã«äœ¿çšã§ããããŸããŸãªæ¹æ³ãæ¹æ³è«ãžã®ãªã³ã¯ãå«ãŸããŠããŸãã
æ®å¿µãªããã説æãããã©ã®ããã«1ã€ãŸãã¯å¥ã®ææ³ããã®ææ³ãã»ãã¥ãªãã£ã®èšèšãŸãã¯åæã«æ£ç¢ºã«äœ¿çšã§ãããã¯å¿ ãããæããã§ã¯ãããŸããã
æ¬ã¯ãå¯èœãªè§£æ±ºçãžã®ãã€ã³ã¿ãšããŠãåç §ãšããŠäœ¿çšã§ããŸãã ãããããœãªã¥ãŒã·ã§ã³ã®èª¬æã¯ãæ¬ãåç §ããŠããæ å ±æºã§æ¢ãã®ãæé©ã§ãã
12. Mark S. MerkovãLakshmikanth Raghavanããã»ãã¥ã¢ã§åŒŸåæ§ã®ãããœãããŠã§ã¢éçºããAuerbach Publicationsã2010
äºäººã®éæ¥å»ã®æ¬ã äž¡æ¹ãšãPayPal Incã§åäœããŸãïŒå°ãªããšãå·çæç¹ã§ã¯ïŒã ãæ³åã®ãšãããå€ãã®ã»ãã¥ãªãã£äœæ¥ããããŸãã
èè ã¯ã圌ãèªèº«ã䜿çšãã圌ãã®ããã«åãããã¯ããã¯ã説æããŠããããã§ãã ãã®æ¬ã¯ãèšèšãããªãªãŒã¹ãŸã§ããœãããŠã§ã¢ã®ã©ã€ããµã€ã¯ã«å šäœãã«ããŒããŠããŸãã
13. Michael HowardãDavid LeBlancããWriting Secure CodeããMicrosoft Pressã第2çã2003幎
14. Frank SwiderskiãWindow SnyderããThreat ModelingããMicrosoft Pressã2004
15.ãã€ã±ã«ã»ãã¯ãŒããã¹ãã£ãŒãã»ãªãããŒããã»ãã¥ãªãã£éçºã©ã€ããµã€ã¯ã«ããMicrosoft Pressã2006
ãã€ã¯ããœããã®æåãª3åã®æ¬ã ãããã«ã€ããŠå€ãã®ããšã話ããŠãæå³ããªããšæããŸãã
æåã®æ¬ã¯ããã°ã©ããŒåãã2çªç®ã¯ãã¶ã€ããŒåãã3çªç®ã¯ãããžã§ã¯ããããŒãžã£ãŒåãã§ãã
16. Michael HowardãDavid LeBlancãJonh ViegaãããœãããŠã§ã¢ã»ãã¥ãªãã£ã®24ã®å€§çœªã ããã°ã©ãã³ã°ã®æ¬ é¥ãšãã®ä¿®æ£æ¹æ³ããMcGraw-Hill / Osborneã2009
ãã®æ¬ã¯ãåãèè ã®æåããåºçç©ããœãããŠã§ã¢ã»ãã¥ãªãã£ã®19ã®å€§çœªãã®çºå±çã§ãã Programming Flaws and How to Fix Themâ.
, .
: , .
.
17. Mark Down, John McDonald, Justin Schun, âThe Art of Software Security Assessement. Identifying and Preventing Software Vulnerabilitiesâ, Addison-Wesley, 2007
(1048 ) , , . , ; ; .
.
.
18. Karl E. Wiegers, âPeer Reviews in Software. A Practical Guideâ, Addison-Wesley Publishing Company, 2010
, . , . .
, , .
â , .
19. Paul C. Jorgensen âSoftware Testing. A Craftman's Approachâ, Auerbach Publications, Third Edition, 2008
. , , - .
«», .
, , .
20. Cem Kaner, âA Tutorial in Exploratory Testingâ, 2008
, « ». , , .
, . , , , , .
.
21. James A. Whittaker, âHow to Break Software: A Practical Guide to Testingâ, Addison-Wesley, 2002
22. James A. Whittaker, âHow to Break Software Securityâ, Addison-Wesley, 2003
23. Mike Andrews, James A. Whittaker âHow to Break Web Software: Functional and Security Testing of Web Applications and Web Servicesâ, Addison-Wesley Professional, 2006
24. James A. Whittaker, âExploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Designâ, Addison-Wesley Professional, 2009
, . , â .
Whittaker , .
, , - Attack Patterns ( ). , - «», , , .
25. Christoper Steel, Ramesh Nagappan, Ray Lai, âCore Security Patterns. Best Pracices and Strategies fo J2EE, Web Services, and Identity Managementâ, Prentice Hall, 2005
(1088 ). J2EE. , .
J2EE , Java. , .