![]()
|
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7">
エラーã®ãƒ¬ãƒãƒ¼ãƒˆPHPã®ã‚»ã‚ュリティã«é–¢ã—ã¦ã€2種類ã®ã‚¨ãƒ©ãƒ¼å‡ºåŠ›ãŒã‚りã¾ã™ã€‚一ã¤ã¯ã€ã‚» ã‚ュリティå‘上ã«å½¹ç«‹ã¤ã‚‚ã®ã§ã‚りã€ã‚‚ã†ä¸€ã¤ã¯ã€ã‚»ã‚ュリティ上有害㪠もã®ã§ã™ã€‚ æ¨™æº–çš„ãªæ”»æ’ƒæ‰‹æ³•ã®ä¸ã«ä¸å®Œå…¨ãªãƒ‡ãƒ¼ã‚¿ã‚’システムã«é€ä¿¡ã—ã€è¿”ã•れるエ ラーã®ç¨®é¡žã¨å†…容を調ã¹ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€ã‚·ã‚¹ãƒ†ãƒ を調ã¹ã‚‹ã¨ã„ã†ã‚‚ã®ãŒã‚ りã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€ã‚·ã‚¹ãƒ†ãƒ ã®ã‚¯ãƒ©ãƒƒã‚«ãƒ¼ãŒã‚りã†ã‚‹å¼±ç‚¹ã‚’調査ã™ã‚‹ãŸ ã‚ã«ãã®ã‚µãƒ¼ãƒã«é–¢ã™ã‚‹æƒ…å ±ã‚’èª¿ã¹ã‚‹ã“ã¨ãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã€‚ 例ãˆã°ã€ã‚る攻撃者ãŒäº‹å‰ã®ãƒ•ォーム投稿ã®éš›ã«ã‚るページã«é–¢ã—ã¦åŽé›† ã—ãŸæƒ…å ±ã‚’æŒã£ã¦ã„ã‚‹å ´åˆã€å¤‰æ•°ã‚’上書ãã—ãŸã‚Šã€ä¿®æ£ã—ãŸã‚Šã—よã†ã¨ã™ ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。 通常返ã•れるPHPã®ã‚¨ãƒ©ãƒ¼ã¯ã€ã‚¨ãƒ©ãƒ¼ã‚’生ã˜ãŸé–¢æ•°ã‚„ファイルã€ã‚¨ãƒ©ãƒ¼ã‚’ 発生ã—ãŸPHPファイルã€ã‚¨ãƒ©ãƒ¼ã‚’発生ã—ãŸè¡Œç•ªå·ã®ã‚ˆã†ãªæƒ…å ±ãŒå«ã¾ã‚Œã¦ ãŠã‚Šã€ã‚¹ã‚¯ãƒªãƒ—トをデãƒãƒƒã‚°ã™ã‚‹é–‹ç™ºè€…ã«éžå¸¸ã«æœ‰ç”¨ã§ã™ã€‚ã“れらãŒèª¿ã¹ ã‚‹ã“ã¨ãŒã§ãã‚‹æƒ…å ±ã®å…¨ã¦ã§ã™ã€‚デãƒãƒƒã‚°ç›®çš„ã§PHPã®é–‹ç™ºè€…㌠show_source(), highlight_string(), highlight_file() を使用ã™ã‚‹ã“ã¨ã¯ã¾ã‚Œã§ã¯ã‚り㾠ã›ã‚“。ã—ã‹ã—ã€å®Ÿç”¨ã‚µã‚¤ãƒˆã§ã¯ã€ã“れã¯ç§˜å¯†ã®å¤‰æ•°ã€æœªç¢ºèªã®æ§‹æ–‡ã€ãã® ä»–ã®å±é™ºãªæƒ…å ±ã‚’å…¬é–‹ã™ã‚‹ã“ã¨ã«ãªã£ã¦ã—ã¾ã„ã¾ã™ã€‚特ã«å±é™ºãªã®ã¯ã€ 組ã¿è¾¼ã¿ã®ãƒ‡ãƒãƒƒã‚°ãƒãƒ³ãƒ‰ãƒ©ã‚’有ã™ã‚‹æ—¢çŸ¥ã®ã‚½ãƒ¼ã‚¹ã‹ã‚‰ã®ã‚³ãƒ¼ãƒ‰ã‚’実行ã—㦠ã„ã‚‹ã‹ã€ä¸€èˆ¬çš„ãªãƒ‡ãƒãƒƒã‚°æŠ€æ³•を使用ã—ã¦ã„ã‚‹å ´åˆã§ã™ã€‚攻撃者ãŒã€ä½¿ç”¨ã— ã¦ã„ã‚‹ä¸€èˆ¬çš„ãªæŠ€æ³•ã‚’ç‰¹å®šã§ããŸå ´åˆã€æ¬¡ã®ã‚ˆã†ã«ã‚ã‚‹ãƒšãƒ¼ã‚¸ã«æ§˜ã€…ãªä¸€èˆ¬ çš„ãªãƒ‡ãƒãƒƒã‚°ç”¨æ–‡å—列をé€ä¿¡ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã—らã¿ã¤ã¶ã—ã«æ”»æ’ƒã—よã†ã¨ã™ ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。 エラー処ç†ã®æ–¹æ³•ã®æ–¹æ³•ã®ã„ã‹ã‚“ã«ã‚ˆã‚‰ãšã€ã‚¨ãƒ©ãƒ¼ã‚’調ã¹ã‚‹æ©Ÿèƒ½ã¯ã€æ”»æ’ƒ 者ã«ã‚ˆã‚Šå¤šãã®æƒ…å ±ã‚’ä¸Žãˆã‚‹ã“ã¨ã«ã¤ãªãŒã‚Šã¾ã™ã€‚ 例ãˆã°ã€å¤šãã®ä¸€èˆ¬çš„ãªã‚¨ãƒ©ãƒ¼å½¢å¼ã§ã¯ã€ã‚·ã‚¹ãƒ†ãƒ ã¯PHPを実行ã—ã¦ã„ã‚‹ ã“ã¨ã‚’示ã—ã¾ã™ã€‚攻撃者㌠.html ページを調ã¹ã€(ã‚·ã‚¹ãƒ†ãƒ ã®æ—¢çŸ¥ã®å¼±ç‚¹ を探ã™ãŸã‚ã«)誤ã£ãŸãƒ‡ãƒ¼ã‚¿ã‚’é€ä¿¡ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ã‚’調ã¹ãŸ ã„ã¨æ€ã£ãŸå ´åˆã€ã‚·ã‚¹ãƒ†ãƒ ã‚’PHPã¨å…±ã«æ§‹ç¯‰ã•れã¦ã„ã‚‹ã“ã¨ã‚’知るã“ã¨ãŒ å¯èƒ½ã¨ãªã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ 関数エラーã¯ã€ã‚·ã‚¹ãƒ†ãƒ ãŒç‰¹å®šã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚¨ãƒ³ã‚¸ãƒ³ãŒå®Ÿè¡Œã—ã¦ã„ã‚‹ã“ ã¨ã€ã¾ãŸã¯ã€Webページã®ãƒ—ãƒã‚°ãƒ©ãƒ 内容やè¨è¨ˆã«é–¢ã™ã‚‹éµã‚’示ã™ã“ã¨ãŒ ã‚りã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãƒãƒ¼ãƒˆã‚’オープンã—ãŸã‚Šã€Webペー ジã«å›ºæœ‰ã®ãƒã‚°ã‚„弱点を調ã¹ã‚‹ã¨ã„ã£ãŸã‚ˆã‚Šè©³ç´°ãªèª¿æŸ»ã‚’行ã†ã“ã¨ãŒå¯èƒ½ ã¨ãªã‚Šã¾ã™ã€‚例ãˆã°ã€ç•°ãªã£ãŸä¸æ£ãªãƒ‡ãƒ¼ã‚¿ã‚’é€ä¿¡ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€æ”»æ’ƒ 者ã¯ã€(エラー行番å·ã‹ã‚‰)ãã®ã‚¹ã‚¯ãƒªãƒ—トã®ç•°ãªã‚‹å ´æ‰€ã‚’調ã¹ã‚‹ã“ã¨ã¨åŒ 時ã«ãã®ã‚¹ã‚¯ãƒªãƒ—トã®èªè¨¼ã®é †ç•ªã‚’定義ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚ ファイルシステムã¾ãŸã¯ä¸€èˆ¬çš„ãªPHPエラーã¯ã€WebサーãƒãŒæœ‰ã™ã‚‹è¨±å¯å±ž 性やWebサーãƒã®ãƒ•ã‚¡ã‚¤ãƒ«æ§‹é€ ã‚’ç¤ºã™ã“ã¨ãŒã‚りã¾ã™ã€‚エラーコードを書 ã開発者ã¯ã€å…ƒã¯ç§˜å¯†ã®æƒ…å ±ã‚’å®¹æ˜“ã«å…¬é–‹ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€ã“ã®å•題を悪 化ã•ã›ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ ã“ã®å•題ã«å¯¾ã—ã¦ã¯3種類ã®å¯¾ç–ãŒã‚りã¾ã™ã€‚最åˆã®å¯¾ç–ã¯ã€å…¨ã¦ã®é–¢æ•° をよã調ã¹ã€å¤§éƒ¨åˆ†ã®ã‚¨ãƒ©ãƒ¼ã®ä¿®æ£ã‚’試ã¿ã‚‹ã“ã¨ã§ã™ã€‚2番目ã¯ã€å®Ÿè¡Œã™ るコードã®ã‚¨ãƒ©ãƒ¼ãƒªãƒãƒ¼ãƒˆã‚’完全ã«ç„¡åйã«ã™ã‚‹ã“ã¨ã§ã™ã€‚3番目ã¯ã€ PHPã®ã‚«ã‚¹ã‚¿ãƒ エラー処ç†é–¢æ•°ã‚’使用ã—ã¦ç‹¬è‡ªã®ã‚¨ãƒ©ãƒ¼ãƒãƒ³ãƒ‰ãƒ©ã‚’作æˆã™ ã‚‹ã“ã¨ã§ã™ã€‚システムã®ã‚»ã‚ュリティãƒãƒªã‚·ãƒ¼ã«åŸºã¥ãã€ã“れらã®3種類 ã®å¯¾ç–ãŒé©ç”¨å¯èƒ½ã‹ã©ã†ã‹ã‚’判定ã—ã¾ã™ã€‚ ã“ã®å•題を事å‰ã«é˜²æ¢ã™ã‚‹æ‰‹æ®µã®ä¸€ã¤ã¯ã€PHPã® error_reporting()を使用ã™ã‚‹ã“ã¨ã§ã™ã€‚ã“れã«ã‚ˆã‚Šã€ コードを安全ã«ã™ã‚‹ãŸã‚ã®æ‰‹ãŒã‹ã‚ŠãŒå¾—られã€å±é™ºã¨æ€ã‚れる変数ãŒä½¿ç”¨ ã•れã¦ã„る部分をã¿ã¤ã‘ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚実使用ã®å‰ã«E_ALLを指定ã—㦠コードをテストã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€å¤‰æ•°ãŒä»–ã®æ‰‹æ®µã§æ±šæŸ“ã•れãŸã‚Šã€ä¿®æ£ã• れãŸã‚Šã™ã‚‹å¯èƒ½æ€§ãŒã‚る部分を簡å˜ã«è¦‹ã¤ã‘ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚ å®Ÿä½¿ç”¨ã®æº–å‚™ãŒã§ããŸéš›ã«ã¯ã€E_NONEを使用ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€ã‚³ãƒ¼ãƒ‰ã‚’外 部ã‹ã‚‰èª¿ã¹ã‚‰ã‚Œã‚‹ã“ã¨ã‚’防æ¢ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚
|