[º¸¾È´º½º ¹®°¡¿ë ±âÀÚ] HTTP/2À» ±¸ÇöÇÏ´Â °úÁ¤¿¡¼ ²Ï³ª ¸¹Àº Ãë¾àÁ¡ÀÌ ¹ß»ýÇϰí, ÀÌ ¶§¹®¿¡ ¼ö¸¹Àº À¥»çÀÌÆ®µéÀÌ À§Çè¿¡ ³ëÃâµÇ¾î ÀÖ´Â »óŶó´Â ¿¬±¸ °á°ú°¡ À̹ø ÁÖ °³ÃÖµÈ º¸¾È Çà»ç ºí·¢ÇÞ(Black Hat)¿¡¼ ¹ßÇ¥µÆ´Ù. º¸¾È ¾÷ü Æ÷Æ®½ºÀ§°Å(PortSwigger)ÀÇ ¿¬±¸ Ã¥ÀÓÀÚÀÎ Á¦ÀÓ½º ÄÉÆ²(James Kettle)ÀÌ ¹ßÇ¥¸¦ ¸Ã¾Ò´Ù.

[À̹ÌÁö = utoimage]
ÄÉÆ²Àº °¿¬À» ÅëÇØ ÀÚ½ÅÀÌ ³ÝÇø¯½º¿Í °°Àº À¯¸í »çÀÌÆ®µéÀ» HTTP/2 ±¸Çö Ãë¾àÁ¡À» ÅëÇØ °ø·«ÇÒ ¼ö ÀÖ¾ú´Ù°í ¼Ò°³ÇÏ¸ç ¡°¾Æ¸¶Á¸ÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç ·Îµå ¹ë·±¼¿Í ÀÓÆÛ¹Ù(Imperva)ÀÇ Å¬¶ó¿ìµå À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ¹æÈº®À» »ç¿ëÇÏ´Â À¥»çÀÌÆ®µéÀÌ Æ¯È÷ Ãë¾àÇÏ´Ù¡±°í ÁÖÀåÇß´Ù. ¡°ÀÌ·± »çÀÌÆ®µéÀÇ ¼¹öµé·Î µé¾î°¡´Â ¿äûµéÀ» Á¦ ¼¹ö·Î ¿ìȸ½Ãų ¼ö ÀÖ¾ú½À´Ï´Ù.¡±
HTTP/2´Â H2¶ó°íµµ ÇÏ´Â ÇÁ·ÎÅäÄÝ·Î, 2015³â óÀ½ ¹ßÇ¥µÆ´Ù. Áö±ÝÀº Àü ¼¼°è ¸ðµç À¥»çÀÌÆ®µéÀÇ 50%°¡ HTTP/2¸¦ »ç¿ëÇϰí ÀÖ´Â »óÅ´Ù. HTTP/2´Â ÀÌÀü ¹öÀüÀÎ HTTP/1.1º¸´Ù ºü¸£°í °£ÆíÇÑ °ÍÀ¸·Î ¾Ë·ÁÁ® ÀÖ´Ù. ÄÉÆ²Àº HTTP/2¿¡ ´ëÇØ ¡°µ¥ÀÌÅͰ¡ ¾î¶² ÇüÅ·Π±¸¼ºµÇ°í, ¾î¶² ¹æ½ÄÀ¸·Î Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö »çÀ̸¦ ¿À°¡´ÂÁö Á¤ÀÇÇÑ´Ù¡±°í ¼³¸íÇÑ´Ù. ¶ÇÇÑ ¡°ÀÌ·¯ÇÑ °úÁ¤ Àüü¸¦ Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö ¸ðµÎ¿¡¼ °ü¸®ÇÒ ¼ö ÀÖÀ¸¸ç µÞ´ÜÀÇ º¹ÀâÇÑ ³»¿ëµéÀº ¾ÖÇø®ÄÉÀ̼ǵ鿡 ³ëÃâ½ÃŰÁö ¾Ê´Â´Ù¡±°í µ¡ºÙ¿´´Ù.
ÇÏÁö¸¸ HTTP/2¸¦ ¡®Á¾´Ü°£¡¯ÀÇ ¹æ½ÄÀ¸·Î Ȱ¿ëÇÏÁö ¾ÊÀ» °æ¿ì ´Ù¾çÇÑ º¸¾È ¹®Á¦°¡ ¾ß±âµÉ ¼ö ÀÖ´Ù. ¡°ÁÖ·Î Á¶Á÷µé¿¡¼´Â ÇÁ·ÐÆ®¿£µå ¼¹ö°¡ HTTP/2 ÇÁ·ÎÅäÄݷΠŬ¶óÀÌ¾ðÆ®µé¿¡ µ¥ÀÌÅ͸¦ Àü¼ÛÇϵµ·Ï Çϰí, Ŭ¶óÀÌ¾ðÆ®°¡ ¼¹ö¿¡ ¿äûÀ» º¸³¾ ¶§´Â HTTP/1.1À» ¾²µµ·Ï ±¸ÇöÇϰí ÀÖ½À´Ï´Ù. Á¤È®È÷´Â Ŭ¶óÀ̾ðÆ®ÀÇ ¿äûÀ» HTTP/1.1 ÇÁ·ÎÅäÄÝ·Î ÀçÀÛ¼º ÇØ¼ ¹é¿£µå ¼¹ö¿¡ º¸³»°í ÀÖÁÒ. HTTP/2·Î ±¸ÇöµÈ °Í °°Áö¸¸ »ç½Ç»ó ¹é¿£µå¿Í HTTP/1·Î Åë½ÅÇÏ´Â °Ì´Ï´Ù.¡±
ÄÉÆ²Àº ¡°¸»µµ ¾È µÈ´Ù°í ÄÚ¿ôÀ½ Ä¡´Â ºÐµéÀÌ ¸¹À¸½Ç °Å °°Àºµ¥, ½ÇÁ¦·Î ÀÌ·± ¼³Á¤À» À¯ÁöÇÏ´Â Á¶Á÷ÀÌ ºñÇö½ÇÀûÀ¸·Î ¸¹´Ù¡±°í °Á¶ÇÑ´Ù. ¡°¿¹¸¦ µé¾î ¾Æ¸¶Á¸ÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç ·Îµå ¹ë·±¼(Application Load Balancer)ÀÇ °æ¿ì ÀÌ·± ½ÄÀÇ Åë½Å ¹æ¹ýÀ» ÇØÁ¦ÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ·¸°Ô HTTP/2¸¦ ±¸ÇöÇÒ °æ¿ì °ø°ÝÀÚ´Â À̸¥ ¹Ù µð½ÌÅ©(Desync) °ø°ÝÀ» ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.¡±
HTTP µð½ÌÅ© °ø°ÝÀ̶õ, ¡°°£´ÜÈ÷ ¼³¸íÇØ ¹é¿£µå ¼¹öµéÀÌ ÇÁ·ÐÆ®¿£µå ¼¹ö, ·Îµå ¹ë·±¼, ÇÁ·Ï½Ã ¼¹ö¿¡¼ µé¾î¿À´Â ¿¬¼ÓÀûÀÎ ¿äûµéÀ» Á¢¼öÇØ ó¸®ÇÏ´Â ¹æ½Ä¿¡ ±âÀÎÇÑ Ãë¾àÁ¡À» ¾Ç¿ëÇÏ´Â °ÍÀ» ¸»ÇÑ´Ù¡±°í ÄÉÆ²Àº ¼³¸íÇÑ´Ù. ¡°¿¹¸¦ ÇÁ·ÐÆ®¼¹ö´Â HTTP/2·Î µ¥ÀÌÅ͸¦ ±³È¯ÇÕ´Ï´Ù. ±×·¯´Ï HTTP/2°¡ ÁöÁ¤ÇÏ´Â Æ÷¸Ë°ú ±æÀÌ·Î µ¥ÀÌÅ͸¦ ¸¸µé¾î ¹é¿£µå ¼¹ö·Î º¸³»ÁÒ. ±×·±µ¥ ¹é¿£µå´Â HTTP/1.1·Î ±¸¼ºµÇ¾î ÀÖ´Ù¸é, ÀÌ µ¥ÀÌÅ͸¦ ÀÌÇØÇÏÁö ¸øÇÕ´Ï´Ù. ÀÌ ºÎºÐ¿¡¼ Ãæµ¹ÀÌ »ý±â´Âµ¥, À̸¦ °ø°ÝÀûÀ¸·Î ¾Ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.¡±
±×´Â ÀÌ·¯ÇÑ °ø°ÝÀÌ °¡´ÉÇÏ´Ù´Â °É Áõ¸íÇϱâ À§ÇØ ³ÝÇø¯½ºÀÇ À¥»çÀÌÆ®¸¦ Ä§ÇØÇÏ´Â ½ÇÇèÀ» ÁøÇàÇß´Ù°í ÇÑ´Ù. ³ÝÇø¯½ºÀÇ ÇÁ·ÐÆ®¿£µå ¼¹ö´Â HTTP ÇÁ·ÎÅäÄÝÀ» ´Ù¿î±×·¹ÀÌµå ½ÃŰ´Â ¹æ½ÄÀ¸·Î ¹é¿£µå ¼¹ö¿Í Åë½ÅÇϰí ÀÖ¾ú´Ù°í ÇÑ´Ù. ±×·¸±â ¶§¹®¿¡ µ¥ÀÌÅÍÀÇ ±æÀ̰¡ Àß ¸ÂÁö ¾Ê´Â ÀÏÀÌ ¹ß»ýÇß°í, ÄÉÆ²Àº ÀͽºÇ÷ÎÀÕÀ» °³¹ßÇØ ÀÌ ÁöÁ¡À» °ø·«Çß´Ù. ³ÝÇø¯½ºÀÇ ¹é¿£µå°¡ ÇÁ·ÐÆ®¿£µå·ÎºÎÅÍ µé¾î¿Â ¿äûÀ» ÄÉÆ²ÀÇ ¼¹ö·Î ÀÚµ¿À¸·Î Àü¼ÛÇϵµ·Ï ÇÑ °ÍÀÌ´Ù.
¹°·Ð ½ÇÇèÀ̾úÀ¸´Ï±î ¿©±â±îÁö¸¸ °ø°ÝÀ» ¼º°ø½ÃÄ×Áö¸¸, ÄÉÆ²ÀÌ °ø°ÝÀ» ´õ ÁøÇàÇß´Ù¸é ³ÝÇø¯½º ¹é¿£µå ¼¹ö¿¡¼ ¾Ç¼º Äڵ带 ½ÇÇàÇϰí, »ç¿ëÀÚ ºñ¹Ð¹øÈ£¿Í ½Å¿ëÄ«µå Á¤º¸¸¦ ÈÉÄ¥ ¼ö ÀÖ¾úÀ» °ÍÀ̶ó°í ÇÑ´Ù. ÄÉÆ²Àº ÀÌ·¯ÇÑ ÀͽºÇ÷ÎÀÕ °¡´É »ç½ÇÀ» ³ÝÇø¯½º Ãø¿¡ ¾Ë·È°í, ³ÝÇø¯½º´Â ÄÉÆ²¿¡ 2¸¸ ´Þ·¯ÀÇ »ó±ÝÀ» Á¦°øÇß´Ù. ÇöÀç ÀÌ Ãë¾àÁ¡Àº ÇØ°áµÈ »óÅ´Ù.
¶Ç ÄÉÆ²Àº ¾Æ¸¶Á¸ÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç ·Îµå ¹ë·±¼¿¡¼µµ HTTP/2°¡ À߸ø ±¸ÇöµÇ¾î ÀÖ´Â °ÍÀ» ¹ß°ßÇÒ ¼ö ÀÖ¾ú´Ù°í ÇÑ´Ù. ƯÁ¤ ¸Þ½ÃÁö Çì´õ Á¤º¸°¡ HTTP/1.1 ¹æ½ÄÀ¸·Î ¿äûÀÇ ±æÀ̸¦ ÃßÁ¤Çϰí ÀÖ¾ú°í, À̸¦ ÅëÇØ ÇÁ·ÐÆ®¿£µå ¼¹ö·ÎºÎÅÍ µé¾î¿À´Â ¿äûÀ» ÀÚ½ÅÀÇ ¼¹ö·Î ¿ìȸ½ÃŰ´Â µ¥ ´Ù½Ã ÇÑ ¹ø ¼º°øÇÒ ¼ö ÀÖ¾ú´Ù°í ÇÑ´Ù. À̸¦ ¿¬±¸ÇÏ´Ù°¡ ÇÑ »ç¹ý ±â°üÀÇ Æ÷ÅÐÀÌ ÀÌ·¯ÇÑ Ãë¾àÁ¡¿¡ ³ëÃâµÇ¾î ÀÖ´Â °É ¹ß°ßÇß´Ù°í Àá±ñ ¾ð±ÞÇϱ⵵ Çß´Ù.
ÄÉÆ²Àº ¡°¾Æ¸¶Á¸ ·Îµå ¹ë·±¼¸¦ »ç¿ëÇÏ´Â °ÅÀÇ ¸ðµç À¥»çÀÌÆ®µéÀÌ ÀÌ Ãë¾àÁ¡¿¡ ³ëÃâµÇ¾î ÀÖÀ» °Í¡±À̶ó°í µ¡ºÙ¿´´Ù. ÀÓÆÛ¹ÙÀÇ WAF¿¡¼µµ ºñ½ÁÇÑ Æ¯Â¡µé°ú À§ÇèµéÀÌ ¹ß°ßµÆ´Ù°í ÇÑ´Ù. ÄÉÆ²Àº Á¶Á÷µéÀÌ HTTP/2¿Í °ü·ÃµÈ Ãë¾àÁ¡À» ³×Æ®¿öÅ©¿¡¼ ŽÁöÇÒ ¼ö ÀÖ°Ô µµ¿ÍÁÖ´Â µµ±¸ÀÎ HTTP ¸®Äù½ºÆ® ½º¸Ó±Û·¯(HTTP Request Smuggler)¸¦ ¹ßÇ¥Çϱ⵵ Çß´Ù. ÀÌ ÅøÀº ±êÇãºê(https://github.com/portswigger/http-request-smuggler) ÆäÀÌÁö¿¡¼ ¿¶÷ ¹× ´Ù¿î·Îµå°¡ °¡´ÉÇÏ´Ù.
ÄÉÆ²Àº ¡°HTTP/2ÀÇ °¡Àå Å« ¹®Á¦´Â »ç¿ëÀÚ Á¶Á÷µéÀÌ HTTP/2¸¦ ÀϺΠ±¸°£¿¡¼ ´Ù¿î±×·¹À̵åÇϰí ÀÖ´Ù´Â °Í¡±À̶ó¸ç ¡°Á¦¹ß ´Ù¿î±×·¹À̵å ÇÏÁö ¸»¶ó¡±°í °Á¶Çß´Ù. ¡°Ã³À½ºÎÅÍ ³¡±îÁö HTTP/2¸¦ À¯ÁöÇÏ¸é ¹®Á¦°¡ »ý±âÁö ¾Ê½À´Ï´Ù. ¹°·Ð 100% ¹æ¾î°¡ µÇÁö´Â ¾ÊÀ» °Ì´Ï´Ù¸¸ HTTP/1.1À» È¥ÇÕÇØ »ç¿ëÇÏ´Â °Íº¸´Ù´Â ÈξÀ ¾ÈÀüÇÒ °Ì´Ï´Ù.¡±
3ÁÙ ¿ä¾à
1. HTTPÀÇ ÃֽйöÀüÀÎ HTTP/2, ±¸Çö ´Ü°è¿¡¼ Ãë¾àÇÑ ºÎºÐ ¹ß»ýµÊ.
2. ƯÈ÷ HTTP/2¿Í HTTP/1.1À» È¥ÇÕÇØ »ç¿ëÇϰí ÀÖ´Ù´Â °Ô °¡Àå Å« ¹®Á¦.
3. ³×Æ®¿öÅ©°¡ ÀÌ·± ºÎºÐÀ» ŽÁöÇÒ ¼ö ÀÖ°Ô ÇØ ÁÖ´Â ¹«·á µµ±¸°¡ ÇöÀç ±êÇãºê¿¡ ¹ßÇ¥µÊ.
[±¹Á¦ºÎ ¹®°¡¿ë ±âÀÚ(globoan@boannews.com)]
<ÀúÀÛ±ÇÀÚ: º¸¾È´º½º(www.boannews.com) ¹«´ÜÀüÀç-Àç¹èÆ÷±ÝÁö>