8.5. Ãâ·Â¿¡¼­ ¹®ÀÚ ÀÎÄÚµùÀ» Á¦¾îÇضó

ÀϹÝÀûÀ¸·Î º¸¾ÈÀûÀÎ ÇÁ·Î±×·¥µéÀº ±×µéÀÇ ¸ðµç °¡Á¤µé¿¡ Ŭ¶óÀ̾ðÆ®µéÀ» µ¿±âÈ­½ÃÅ´À» º¸ÁõÇØ¾ß ÇÑ´Ù. ´ë°³ À¥ ¾ÖÇø®ÄÉÀ̼ǿ¡ ¿µÇâÀ» ¹ÌÄ¡´Â ÇÑ°¡Áö ¹®Á¦´Â Ãâ·ÂÀÇ ¹®ÀÚ ÀÎÄÚµù ÁöÁ¤À» Àش´ٴ °ÍÀÌ´Ù. ÀÌ´Â ¸ðµç µ¥ÀÌŸ°¡ ½Å·ÚµÈ Ãâó·ÎºÎÅÍ ¿Â´Ù¸é ¹®Á¦°¡ µÇÁö ¾ÊÁö¸¸ µ¥ÀÌŸ Áß ÀϺΰ¡ ½Å·ÚµÇÁö ¾ÊÀº Ãâó·ÎºÎÅÍ ¿Â´Ù¸é º¸¾ÈÀûÀÎ ÇÁ·Î±×·¥ÀÌ ¿¹»óÇÑ °Í°ú ´Ù¸¥ ÀÎÄÚµùÀ» »ç¿ëÇÏ´Â ½Å·ÚµÇÁö ¾ÊÀº Ãâó·ÎºÎÅÍÀÇ µ¥ÀÌŸ°¡ ½ÇÁ¦ µ¥ÀÌŸ³»¿¡ ¸ô·¡ »ðÀ﵃ ¼öµµ ÀÖ´Ù. ÀÌ´Â cross-site malicious content °ø°Ý¿¡ ´ëÇØ º¸¾È ±¸¸ÛÀ» ¸¸µå´Â °ÍÀ¸·Î ´õ¿í ÀÚ¼¼ÇÑ Á¤º¸´Â 4.9Àý ¸¦ º¸¶ó.

CERT's tech tip on malicious code mitigation Àº ÁöÁ¤µÇÁö ¾ÊÀº ¹®ÀÚ ÀÎÄÚµù ¹®Á¦¸¦ ¸Å¿ì Àß ¼³¸íÇϴµ¥ ÀÌ´Â ´ÙÀ½°ú °°´Ù:

¸¹Àº À¥ÆäÀÌÁöµéÀº ¹®ÀÚ ÀÎÄÚµù (HTTP ¿¡¼­ "charset" ¸Å°³º¯¼ö) À» Á¤ÀÇÇÏÁö ¾ÊÀº ä µÎ°í ÀÖ´Ù. HTML °ú HTTP Ãʱ⠹öÀü¿¡¼­´Â ¹®ÀÚ ÀÎÄÚµùÀÌ Á¤ÀǵǾî ÀÖÁö ¾ÊÀ¸¸é À̸¦ µðÆúÆ®·Î ISO-8859-1 ·Î °£ÁÖÇߴµ¥ »ç½Ç ¸¹Àº ºê¶ó¿ìÀúµéÀº ´Ù¸¥ µðÆúÆ®¸¦ °¡Áö¸ç µû¶ó¼­ ISO-8859-1 µðÆúÆ®¿¡ ÀÇÁ¸ÇÏ´Â °ÍÀº ºÒ°¡´ÉÇß´Ù. HTML ¹öÀü 4 ´Â À̸¦ ÇÕ¹ýÈ­Çϴµ¥ ¹®ÀÚ ÀÎÄÚµùÀÌ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ¾î¶°ÇÑ ¹®ÀÚ ÀÎÄÚµùµµ »ç¿ëµÉ ¼ö ÀÖ´Ù.

À¥ ¼­¹ö°¡ ¾î¶² ¹®ÀÚ ÀÎÄÚµùÀÌ »ç¿ëÁßÀÎÁö¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¾î¶² ¹®ÀÚµéÀÌ Æ¯º°ÇÑ °ÍÀÎÁö ¾Ë¸± ¼ö ¾ø´Ù. ¹®ÀÚ ÀÎÄÚµùÀÌ ÁöÁ¤µÇÁö ¾ÊÀº À¥ ÆäÀÌÁöµéÀº ´ëºÎºÐÀÇ ¹®ÀÚ¼ÂÀÌ µ¿ÀÏÇÑ ¹®Àڵ鿡 128 ¹Ì¸¸ÀÇ ¹ÙÀÌÆ® °ªµéÀ» ÇÒ´çÇϱ⠶§¹®¿¡ ´ëºÎºÐ ÀÛµ¿ÇÑ´Ù. ±×·¯³ª 128 ÀÌ»óÀÇ °ªµéÁß¿¡¼­ ¾î¶² °ªµéÀÌ Æ¯º°ÇÑ°¡? ¾î¶² 16 ºñÆ® ¹®ÀÚ ÀÎÄÚµù ü°èµéÀº "<" ¿Í °°Àº Ưº° ¹®Àڵ鿡 ´ëÇØ Ãß°¡ÀûÀÎ ¸ÖƼ ¹ÙÀÌÆ® Ç¥ÇöÀ» °®°í ÀÖÀ¸¸ç ¾î¶² ºê¶ó¿ìÀúµéÀº ÀÌ·¯ÇÑ ´ëü ÀÎÄÚµùÀ» ÀνÄÇؼ­ ÀÌ¿¡ µû¶ó ÇൿÇÑ´Ù. ÀÌ´Â ``Á¤È®ÇÑ" °Åµ¿ÀÌÁö¸¸ ¾ÇÀÇÀÖ´Â ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÑ °ø°ÝÀ» ¿¹¹æÇϱ⠴õ¿í ¾î·Æ°Ô ¸¸µç´Ù. ¼­¹ö´Â ¾î¶² ¹ÙÀÌÆ® ½ÃÄö½º°¡ Ưº° ¹®ÀÚµéÀ» ³ªÅ¸³»´ÂÁö ´Ü¼øÈ÷ ¸ð¸£°í ÀÖ´Ù.

¿¹¸¦ µé¾î UTF-7 Àº "<" °ú ">" ¿¡ ´ëÇØ ´ëü ÀÎÄÚµùÀ» Á¦°øÇÏ¸ç ¸î¸î ³Î¸®¾²ÀÌ´Â ºê¶ó¿ìÀúµéÀº À̸¦ ½ÃÀÛ ¹× ³¡ ű׷ΠÀνÄÇÑ´Ù. µû¶ó¼­ ÀÌ´Â ±×·¯ÇÑ ºê¶ó¿ìÀú¿¡¼­´Â ¹ö±×°¡ ¾Æ´Ï¸ç ¹®ÀÚ ÀÎÄÚµùÀÌ ½ÇÁ¦·Î UTF-7 À̶ó¸é ÀÌ´Â Á¤È®ÇÑ °Åµ¿ÀÌ´Ù. ¹®Á¦´Â ºê¶ó¿ìÀú¿Í ¼­¹ö°¡ ÀÎÄÚµùÀÌ ÀÏÄ¡ÇÏÁö ¾ÊÀº »óȲ¿¡ ³õÀÏ ¼öµµ ÀÖ´Ù´Â °ÍÀÌ´Ù.

°í¸¿°Ô ÀÌ ¹®Á¦¸¦ ¼³¸íÇÏ´Â °ÍÀÌ ¾î·Á¿ò¿¡µµ ºÒ±¸ÇÏ°í HTML ¿¡¼­ À̸¦ ÇØ°áÇÏ´Â °ÍÀº °£´ÜÇѵ¥ HTML Çì´õ¿¡ CERT ·ÎºÎÅÍÀÇ ´ÙÀ½ ¿¹¿Í °°ÀÌ charset À» ´Ü¼øÈ÷ ÁöÁ¤ÇÏ´Â °ÍÀÌ´Ù:

<HTML>
<HEAD>
<META http-equiv="Content-Type"
content="text/html; charset=ISO-8859-1">
<TITLE>HTML SAMPLE</TITLE>
</HEAD>
<BODY>
<P>This is a sample HTML page
</BODY>
</HTML>

±â¼úÀû °üÁ¡¿¡¼­ º¸¾ÒÀ» ¶§ ´õ¿í ÁÁÀº Á¢±Ù ¹æ¹ýÀº HTTP ÇÁ·ÎÅäÄÝ Ãâ·ÂÀÇ ÀϺκÐÀ¸·Î ¹®ÀÚ ÀÎÄÚµùÀ» ¼³Á¤ÇÏ´Â °ÍÀÌ´Ù. ¹°·Ð ¾î¶² ¶óÀ̺귯¸®µéÀº À̸¦ ´õ¿í ¾î·Æ°Ô ¸¸µé±âµµ ÇÑ´Ù. À̴ Ŭ¶óÀ̾ðÆ®¿¡°Ô Çì´õÀÇ ¸ÞŸÁ¤º¸¸¦ ÀÐÀ» ¼ö ÀÖ°Ô ÇÏ´Â ¹®ÀÚ ÀÎÄÚµùÀ» °áÁ¤Çϱâ À§ÇØ Çì´õ¸¦ Á¶»çÇϵµ·Ï ÇÏÁö ¸øÇϱ⠶§¹®¿¡ ±â¼úÀûÀ¸·Î ´õ¿í ÁÁ´Ù. ¹°·Ð ½ÇÁ¦·Î ¸ÞŸ Á¤º¸¸¦ ÀÐÀ» ¼ö ¾ø°í À̸¦ Á¤È®È÷ »ç¿ëÇÒ ¼ö ¾ø´Â ºê¶ó¿ìÀú°¡ ÆǸŠ½ÃÀå¿¡¼­ ¼º°øÇÒ ¼ö ¾øÁö¸¸ ÀÌ´Â ´Ù¸¥ ¹®Á¦ÀÌ´Ù. ¾î¶² °æ¿ìµç ÀÌ´Â ¼­¹ö°¡ HTTP ÇÁ·ÎÅäÄÝÀÇ ÇÑ ºÎºÐÀ¸·Î ¿øÇÏ´Â °ªÀ» °®´Â "charset" À» º¸³¾ ÇÊ¿ä°¡ ÀÖÀ½À» ÀǹÌÇÑ´Ù. ºÒÇàÈ÷ ¾î¶² ¿¹Àü HTTP/1.0 Ŭ¶óÀ̾ðÆ®µéÀº ¸í½ÃÀûÀÎ charset ¸Å°³º¯¼ö¸¦ ÀûÀýÈ÷ ´Ù·çÁö ¸øÇϱ⠶§¹®¿¡ ÀÌ·¯ÇÑ ±â¼úÀûÀ¸·Î ´õ¿í ÁÁÀº Á¢±Ù ¹æ¹ýÀ» ÁøÁöÇÏ°Ô ÃßõÇÏ´Â °ÍÀº ¾î·Æ´Ù. HTTP/1.1 ½ºÆåÀÌ Å¬¶óÀ̾ðÆ®¿¡°Ô ¸Å°³º¯¼ö¸¦ µû¸£¶ó°í ¿ä±¸ÇÔ¿¡µµ ºÒ±¸ÇÏ°í À̸¦ À¯ÀÏÇÑ ¸ÞÄ«´ÏÁòÀÌ ¾Æ´Ñ Á¤È®ÇÑ ¹®ÀÚ ÀÎÄÚµù »ç¿ëÀ» °­¿äÇÏ´Â ºÎ¼Ó¹°·Î ¾î¶»°Ôµç À̸¦ »ç¿ëÇØ¾ß ÇÒ¸¸Å­ ÃæºÐÇÑÁö´Â Àǽɽº·´´Ù.