http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=895 [º¹»ç]
ÆÛ¿Â ±ÛÀÔ´Ï´Ù^^
¹öÆÛ¿À¹öÇ÷οì(Bufferoverflow)
º¸¾È¿¡ °ü½É ÀÖ´Â »ç¶÷À̶ó¸é ¡°¹öÆÛ ¿À¹öÇ÷ο족¶õ ¿ë¾î°¡ ³¸¼³Áö ¾ÊÀ» °ÍÀ̸ç, ±× Áß Àû±ØÀûÀÎ °ü¸®ÀÚ¶ó¸é ÀÎÅͳݿ¡ ³Î·ÁÀÖ´Â ´Ù¾çÇÑ ¹öÆÛ ¿À¹öÇ÷οì exploit(°ø°Ý
ÄÚµå)À» ´Ù¿î·Îµå ¹Þ¾Æ¼ Å×½ºÆ®µµ ÇØ ºÃÀ» °ÍÀÔ´Ï´Ù. ±× °á°ú´Â ¾î¶®³ª¿ä? Exploit Äڵ尡 Áö½ÃÇÏ´Â ÄÄÆÄÀÏ ¿É¼Ç°ú ´ë»ó ¼¹ö°¡ ÀûÀýÇß´Ù¸é ¼Õ½±°Ô root ±ÇÇÑÀ» ȹµæ
ÇßÀ» °ÍÀÔ´Ï´Ù. ¹°·Ð °ø°Ý¿¡ ¼º°øÇß´Ù°í ¡°¹öÆÛ ¿À¹öÇ÷ο족¿¡ ´ëÇؼ ¸ðµç °ÍÀ» ¾È´Ù°í ÀڽŠÀÖ°Ô ¸»ÇÒ ¼ö ÀÖ´Â »ç¶÷Àº ±×¸® ¸¹Áö ¾ÊÀ» °ÍÀÔ´Ï´Ù. º» ¹®¼¿¡¼
¡°¹öÆÛ ¿À¹öÇ÷ο족ÀÇ A~Z±îÁö¸¦ ¼³¸íÇÒ ÇÊ¿ä´Â ¾øÀ» °ÍÀ̸ç(ÀÌ¹Ì ¶Ù¾î³ ¹®¼µéÀÌ ¹ßÇ¥µÇ¾î Àֱ⠶§¹®¿¡) ¡°¹öÆÛ ¿À¹öÇ÷ο족ÀÇ °³³ä ÀÌÇظ¦ ¸ñÀûÀ¸·Î ¼³¸íÇÏ°Ú½À´Ï
´Ù.
¡°¹öÆÛ ¿À¹öÇ÷ο족¶õ?
¸» ±×´ë·Î ¹öÆÛ¸¦ ³ÑÄ¡°Ô(overflow) ÇÏ´Â °ÍÀ» ÀǹÌÇϸç, Ç®¾î¼ ¼³¸íÇÏ¸é ¸Þ¸ð¸®¿¡ ÇÒ´çµÈ ¹öÆÛÀÇ ¾çÀ» ÃÊ°úÇÏ´Â µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÏ¿© ÇÁ·Î±×·¥ÀÇ º¹±Í ÁÖ¼Ò(return add
ress)¸¦ Á¶ÀÛ, ±Ã±ØÀûÀ¸·Î ÇØÄ¿°¡ ¿øÇÏ´Â Äڵ带 ½ÇÇàÇÏ´Â °ÍÀÔ´Ï´Ù. ¿©±â¿¡¼ ¡°¹öÆÛ(buffer)¡±¶õ ÇÁ·Î±×·¥ ó¸® °úÁ¤¿¡ ÇÊ¿äÇÑ µ¥ÀÌÅÍ°¡ ÀϽÃÀûÀ¸·Î ÀúÀåµÇ´Â °ø°£À¸
·Î ¸Þ¸ð¸®ÀÇ ½ºÅÃ(stack) ¿µ¿ª°ú Èü(heap) ¿µ¿ªÀÌ ¿©±â¿¡ ¼ÓÇϸç, ¡°¹öÆÛ ¿À¹öÇ÷ο족°¡ ÀÌ µÎ °¡Áö ¿µ¿ª Áß ¾î¶² °ÍÀ» ÀÌ¿ëÇÏ´À³Ä¿¡ µû¶ó¼ µÎ °¡Áö·Î ºÐ·ùÇÒ ¼ö ÀÖ
½À´Ï´Ù. º» ¹®¼¿¡¼´Â ±× °³³äÀÌ Àß ¾Ë·ÁÁ® ÀÖ°í ½ºÅà ±â¹ÝÀÇ ¹öÆÛ ¿À¹öÇ÷ο쿡 ÃÊÁ¡À» ¸ÂÃç¼ ¼³¸íÇÏ°Ú½À´Ï´Ù. ÀÌó·³ ¹öÆÛ ¿À¹öÇ÷οìÀÇ °³³äÀ» ÀÌÇØÇϱâ À§Çؼ´Â
ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ ±âÃÊ Áö½ÄÀÌ ÇÊ¿äÇϸç ÀÌ·Î ÀÎÇÏ¿© °í±Þ ÇØÅ· ±â¹ýÀ¸·Î ºÐ·ùµÇ°í ÀÖ½À´Ï´Ù.
¡°¹öÆÛ ¿À¹öÇ÷ο족ÀÇ ¿ª»ç
¹öÆÛ ¿À¹öÇ÷οì´Â ÇØÅ· ±â¹ýÀÌ ¾Æ´Ñ ´Ü¼øÇÑ ÇÁ·Î±×·¥»óÀÇ ¹®Á¦·Î óÀ½ ¼Ò°³µÇ¾ú´Âµ¥ 1973³â°æ C¾ð¾îÀÇ µ¥ÀÌÅÍ ¹«°á¼º ¹®Á¦·Î ±× °³³äÀÌ Ã³À½ ¾Ë·ÁÁ³½À´Ï´Ù. ÀÌÈÄ 1988
³â ¸ð¸®½º¿ú(Morris Worm)ÀÌ fingerd ¹öÆÛ ¿À¹öÇ÷ο츦 ÀÌ¿ëÇß´Ù´Â °ÍÀÌ ¾Ë·ÁÁö¸é¼ ÀÌ ¹®Á¦ÀÇ ½É°¢¼ºÀÌ ÀνĵDZ⠽ÃÀÛÇßÀ¸¸ç, 1997³â¿¡´Â ¿Â¶óÀÎ º¸¾ÈÀâÁö·Î À¯¸íÇÑ
Phrack(7±Ç 49È£)¿¡ Aleph OneÀÌ ¡°Smashing The Stack For Fun And Profit¡±¶õ ¹®¼¸¦ °ÔÀçÇÏ¸é¼ º¸´Ù ³Î¸® ¾Ë·ÁÁö°Ô µÆ½À´Ï´Ù. ÀÌ ¹®¼´Â ´Ù¾çÇÑ ¡°¹öÆÛ ¿À¹öÇ÷Î
¿ì¡± °ø°ÝÀ» À¯Çà½ÃÅ°´Â °è±â°¡ µÆÀ¸¸ç ÇöÀç±îÁö ÇØÄ¿ Áö¸Á»ýµéÀÇ Çʵ¶ ¹®¼·Î ÀÚ¸®Àâ¾Æ ¿À°í ÀÖ½À´Ï´Ù. ÀÌÈÄ ¡°¹öÆÛ ¿À¹öÇ÷ο족´Â SANS(www.sans.org)¿¡¼ ¸Å³â ¹ß
Ç¥ÇÏ´Â TOP20 °ø°Ý±â¹ý °¡¿îµ¥ »ó´ç¼ö¸¦ Â÷ÁöÇÏ¸é¼ ÇØÄ¿µéÀÇ ²ÙÁØÇÑ »ç¶ûÀ» ¹Þ¾Æ¿À°í ÀÖ½À´Ï´Ù.
¡°¹öÆÛ ¿À¹öÇ÷ο족´Â ¾î¶»°Ô ÀÌ·ç¾îÁö´Â°¡?
¹öÆÛ ¿À¹öÇ÷οìÀÇ Á¤È®ÇÑ µ¿ÀÛ¿ø¸®¸¦ ÀÌÇØÇϱâ À§Çؼ´Â ÇÁ·Î±×·¥¿¡ ÀÇÇØ µ¥ÀÌÅÍ°¡ ¾î¶»°Ô ÀúÀåµÇ´Â°¡¸¦ ¿ì¼± ÀÌÇØÇØ¾ß ÇÕ´Ï´Ù. ÇϳªÀÇ ÇÁ·Î±×·¥Àº ¼ö¸¹Àº ¼ºê ·çƾ
µé·Î ±¸¼ºµÇ´Âµ¥ ÀÌ·± ¼ºê ·çƾÀÌ ÇÁ·Î±×·¥¿¡ ÀÇÇØ È£ÃâµÉ ¶§, ÇÔ¼ö º¯¼ö¿Í ¼ºê ·çƾÀÇ º¹±Í ÁÖ¼Ò(return address) Æ÷ÀÎÅ͸¦ ½ºÅÃ(stack)À̶ó´Â ³í¸®Àû µ¥ÀÌÅÍ ±¸Á¶
¿¡ ÀúÀåÇÏ°Ô µË´Ï´Ù. ½ºÅÃÀº ½ÇÇàÁßÀÎ ÇÁ·Î±×·¥ÀÌ ÇÊ¿ä·Î ÇÏ´Â Á¤º¸¸¦ ÀúÀåÇÏ´Â ¸Þ¸ð¸® ¿µ¿ªÀÔ´Ï´Ù. ¼ºê ·çƾÀÌ Á¾·áµÉ ¶§ ¿î¿µÃ¼Á¦´Â ±×°ÍÀ» È£ÃâÇÑ ÇÁ·Î±×·¥¿¡ Á¦¾î
±ÇÀ» ¹ÝȯÇØ¾ß Çϱ⠶§¹®¿¡, º¹±Í Æ÷ÀÎÅ͸¦ ÅëÇؼ ÇÁ·Î±×·¥ÀÌ ¼ºê ·çƾÀÇ ½ÇÇàÀ» ¸¶Ä¡°í ³ª¼ µÇµ¹¾Æ°¥ ÁÖ¼Ò¸¦ °¡¸®Å°°Ô µË´Ï´Ù.
¹öÆÛ´Â ÇÒ´çµÈ ¸Þ¸ð¸® °ø°£ÀÇ ³ôÀº ÁÖ¼Ò¿¡¼ ³·Àº ÁּҷΠä¿öÁö¸ç, ½ºÅà ¿µ¿ª¿¡ ¸¶Áö¸·À¸·Î µé¾î°¡ µ¥ÀÌÅÍ°¡ Á¦ÀÏ ¸ÕÀú ºüÁ® ³ª¿À´Â LIFO(Last in, First out) ƯÁ¤À»
°¡Áö°í ÀÖ½À´Ï´Ù. ÀÌ·± LIFO Ư¼º¿¡ ÀÇÇØ °¡Àå ¸ÕÀú µé¾î°¡ °Í(º¹±Í Æ÷ÀÎÅÍ)ÀÌ ½ºÅÿ¡¼ °¡Àå ³ªÁß¿¡ Á¦°ÅµÈ´Ù´Â °ÍÀ» ±â¾ïÇØ¾ß ÇÕ´Ï´Ù. ¼ºê ·çƾÀÌ ½ÇÇàÀ» ¸¶Ä¡¸é
°¡Àå ³ªÁß¿¡ ÇàÇØÁö´Â °ÍÀº º¹±Í Æ÷ÀÎÅ͸¦ ½ºÅÿ¡¼ Á¦°ÅÇÏ¿© ¼ºê ·çƾÀ» È£ÃâÇÑ ÇÔ¼ö·Î ¹ÝȯÇÏ´Â °ÍÀε¥, ¸¸¾à ÀÌ Æ÷ÀÎÅÍ°¡ »ç¿ëµÇÁö ¾Ê´Â´Ù¸é ¼ºê ·çƾÀÌ ½ÇÇàÀ»
¸¶ÃÆÀ» ¶§ ÇÁ·Î±×·¥Àº ´õ ÀÌ»ó ¾îµð·Î ÁøÇàÇØ¾ß ÇÒÁö¸¦ ¾Ë ¼ö ¾øÀ» °ÍÀÔ´Ï´Ù.
Æ÷ÀÎÅÍ(pointer)´Â ¸Þ¸ð¸®ÀÇ À§Ä¡¸¦ ÀúÀåÇÏ´Â º¯¼öÀÔ´Ï´Ù. ÇÁ·Î±×·¥ ½ÇÇàÀ» À§ÇÑ ¸ñÀûÀ¸·Î ´Ù¸¥ ÄÚµå·Î À̵¿ÇÒ ¶§ ¾îµð¿¡¼ ¶°³µ´ÂÁö¸¦ ±â¾ïÇϱâ À§ÇØ Æ÷ÀÎÅ͸¦ »ç¿ëÇØ
¾ß Çϸç, ¸¸¾à Æ÷ÀÎÅ͸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é ¼ºê ·çƾÀÇ ½ÇÇàÀÌ ³¡³ª°í ¾îµð·Î µ¹¾Æ¿Í¾ß ÇÒÁö¸¦ ¾Ë ¼ö ¾øÀ» °ÍÀÔ´Ï´Ù.
ÀÌÁ¦ ½ºÅÃÀ» Á¶ÀÛÇÏ°Ô µÇ¸é ¾î¶² ÀÏÀÌ ÀϾ´ÂÁö¸¦ »ìÆì º¸°Ú½À´Ï´Ù. ÇÁ·Î±×·¥ÀÌ º¯¼öÀÇ ÇÒ´çµÈ °ø°£¿¡ ÀúÀåµÉ µ¥ÀÌÅÍÀÇ Å©±â¸¦ °Ë»çÇÏÁö ¾Ê°í Å©±â¿¡ Á¦ÇÑÀ» µÎÁö ¾Ê
´Â´Ù¸é, º¯¼ö °ø°£Àº ³ÑÄ¡°Ô µÉ °ÍÀÔ´Ï´Ù. Áï, ¹öÆÛ¿¡ ¿À¹öÇ÷ο찡 ¹ß»ýÇϸé ÀúÀåµÈ µ¥ÀÌÅÍ´Â ÀÎÁ¢ÇÑ º¯¼ö ¿µ¿ªµµ ħ¹üÇÒ °ÍÀÌ¸ç °á±¹¿¡´Â Æ÷ÀÎÅÍ ¿µ¿ª±îÁö ħ¹üÇÏ°Ô
µÉ °ÍÀÔ´Ï´Ù. ÇØÄ¿´Â ÀÌ·¯ÇÑ µ¥ÀÌÅÍÀÇ ±æÀÌ¿Í ³»¿ëÀ» ÀûÀýÈ÷ Á¶Á¤ÇÔÀ¸·Î½á ¹öÆÛ ¿À¹öÇ÷ο츦 ÀÏÀ¸Å°°í ¿î¿µÃ¼Á¦ÀÇ ½ºÅÃÀ» ºØ±«½ÃÄÑ Æ¯Á¤ Äڵ尡 ½ÇÇàµÇµµ·Ï ÇÕ´Ï´Ù.
ÇØÄ¿°¡ º¸³½ µ¥ÀÌÅÍ´Â ´ë°³ÀÇ °æ¿ì ƯÁ¤ ½Ã½ºÅÛ¿¡¼ ½ÇÇàµÉ ¼ö ÀÖ´Â ±â°è¾î ÄÚµå¿Í º¹±Í Æ÷ÀÎÅÍ¿¡ ÀúÀåµÉ »õ·Î¿î ÁÖ¼Ò·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç, º¹±Í Æ÷ÀÎÅÍ¿¡ ÀúÀåµÉ »õ·Î
¿î ÁÖ¼Ò´Â ´Ù½Ã ¸Þ¸ð¸®ÀÇ ½ºÅà ¿µ¿ªÀ» °¡¸®ÄѼ ÇÁ·Î±×·¥ÀÌ ¼ºê ·çƾ¿¡¼ ¹ÝȯµÉ ¶§ ÇØÄ¿°¡ ÀÛ¼ºÇÑ ¸í·É¾î¸¦ ½ÇÇàÇÏ°Ô µÇ´Â °ÍÀÔ´Ï´Ù. À̶§ °í·ÁÇØ¾ß ÇÒ °ÍÀº °ø°Ý
´ë»óÀÌ µÇ´Â ÇÁ·Î±×·¥ÀÌ ¹«¾ùÀÌµç °£¿¡ ÇØÄ¿°¡ °ø°Ý ÄÚµå´Â ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ°í ÀÖ´Â ±ÇÇÑÀ¸·Î ½ÇÇàµÉ °ÍÀ̶ó´Â Á¡ÀÔ´Ï´Ù. µû¶ó¼ ÇØÄ¿´Â °ø°ÝÀ» ¼º°ø½ÃÄ×À» °æ¿ì¿¡
½Ã½ºÅÛ¿¡ ´ëÇÑ ÃÖ»óÀ§ ±ÇÇÑÀ» ¾ò±â À§ÇØ, root ¶Ç´Â administrator ±ÇÇÑÀ¸·Î ½ÇÇà ÁßÀÎ ÇÁ·Î±×·¥À» °ø°Ý ´ë»óÀ¸·Î »ïÀ» °ÍÀÔ´Ï´Ù.
À̷лóÀ¸·Î´Â ¸Å¿ì Á÷°üÀûÀÎ °Í °°Áö¸¸ ½ÇÁ¦·Î ÀÌ °ø°ÝÀ» ½ÇÇàÇÏ´Â °ÍÀº °£´ÜÇÑ ÀÛ¾÷ÀÌ ¾Æ´Õ´Ï´Ù. ÇÏÁö¸¸ ÀÌ·± °úÁ¤ÀÌ ¾î¶»°Ô ÀÌ·ïÁö´ÂÁö Á¦´ë·Î ÀÌÇØÇÏÁö ¸ø ÇÏ´Â
½ºÅ©¸³Æ® Å°µð(script kiddie)µµ ½±°Ô °ø°³µÈ °ø°Ý Äڵ带 ÀÌ¿ëÇÏ¿© ¹öÆÛ ¿À¹öÇÃ·Î¿ì °ø°ÝÀ» ½ÃµµÇÒ ¼ö ÀÖÀ¸´Ï º¸¾È °ü¸®Àڵ鿡°Ô º¸´Ù ¸¹Àº ¾÷¹«¸¦ ÁÖ´Â »óȲÀ̶ó°í
ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¡°¹öÆÛ ¿À¹öÇ÷ο족 Ãë¾à¼ºÀÌ ¸¹Àº ÀÌÀ¯´Â?
¸¹Àº ÇÁ·Î±×·¥ÀÌ Ãë¾à¼ºÀ» °®´Â Áß¿äÇÑ ÀÌÀ¯´Â ¿À·ù °Ë»ç¸¦ Á¦´ë·Î ¼öÇàÇÏÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù. ¿À·ù °Ë»ç¸¦ ¼öÇàÇÏÁö ¾Ê´Â Å« ÀÌÀ¯ ÁßÀÇ Çϳª´Â °³¹ßÀÚ°¡ ±Ù°Å ¾ø´Â
Ư¼öÇÑ °¡Á¤À» Çϱ⠶§¹®À̸ç, Á¤»óÀûÀΠȯ°æ¿¡¼ º¯¼ö¿¡ ÇÒ´çµÈ ¸Þ¸ð¸®ÀÇ Å©±â°¡ ÃæºÐÇÏ´Ù°í °ú½ÅÇÏ´Â °Íµµ ¹®Á¦°¡ µË´Ï´Ù. Ãë¾àÇÑ ÇÁ·Î±×·¥ÀÏÁö¶óµµ »ç¿ëÀÚµéÀÌ ¿Ã¹Ù
¸£°Ô »ç¿ëÇÏ¿© ¹ßÇ¥µÈ Áö ¼ö ³âÀÌ Áö³ªµµ ¾Æ¹«·± ¹®Á¦ ¾øÀÌ µ¿ÀÛÇØ¿Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ±×·¯´ø Áß ´©±º°¡°¡ °©Àڱ⠡°¸¸ÀÏ ÇÁ·Î±×·¥¿¡ ¿ø·¡¿Í ´Ù¸¥ Á¾·ùÀÇ Á¤º¸¸¦ ³ÖÀ¸
¸é ¾î¶² ÀÏÀÌ »ý±æ±î?¡±, ¡°ÇÁ·Î±×·¥¿¡ ±â´ëµÇ´Â Å©±âº¸´Ù ´õ ¸¹Àº µ¥ÀÌÅ͸¦ ³ÖÀ¸¸é ¾î¶² ÀÏÀÌ ÀϾ±î?¡±ÇÏ´Â ½ÄÀÇ ±Ã±ÝÁõÀ» °®°Ô µÇ¾ú°í ¿À·ù °Ë»ç¸¦ ¼öÇàÇÏÁö ¾Ê´Â
ÇÁ·Î±×·¥µéÀº ±×·± ±Ã±ÝÁõÀÇ ½ÇÇè´ë»óÀÌ µÇ¾î ÇØÅ·ÀÇ ¸ñÇ¥°¡ µÇ°í ÀÖ½À´Ï´Ù.
ÀÌ ±ÛÀ» ¸¶¹«¸®Çϸç
¡°¹öÆÛ ¿À¹öÇ÷ο족 °ø°ÝÀº Ãë¾àÇÑ ÇÁ·Î±×·¥À» ´ë»óÀ¸·Î °ø°ÝÀÚ°¡ ¿øÇÏ´Â Äڵ带 ½ÇÇà½Ãų ¼ö ÀÖ´Ù´Â Ãø¸é¿¡¼ ¸Å¿ì À§ÇèÇϸç, ±× °á°ú·Î ¾ò´Â ÇÇÇØ ¹üÀ§´Â ½Ã½ºÅÛÀ»
ÁßÁö½ÃÅ°´Â °Í¿¡¼ºÎÅÍ °ü¸®ÀÚ ±ÇÇÑÀ» ¾ò´Â °Í±îÁö ´Ù¾çÇÕ´Ï´Ù. º¸¾È °ü¸®ÀÚ´Â ¡°¹öÆÛ ¿À¹öÇ÷ο족°¡ ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö ÀÌÇØÇÏ°í, Æò»ó½Ã¿¡ º¥´õ¿¡¼ Á¦°øÇÏ´Â ¼ÒÇÁ
Æ®¿þ¾î °ü·Ã ÆÐÄ¡ Àû¿ë, ÃÖ¼Ò ±ÇÇÑÀ¸·ÎÀÇ ÇÁ·Î±×·¥ ½ÇÇà, ºÒÇÊ¿äÇÑ ¼ºñ½º Á¦°Å, ħÀÔÂ÷´Ü½Ã½ºÅÛÀ» ÅëÇÑ À¯ÇØ Æ®·¡ÇÈ Â÷´ÜÀ» ÅëÇØ °ø°Ý ÇÇÇØ °¡´É¼ºÀ» ÃÖ¼ÒÈÇØ¾ß ÇÕ´Ï
´Ù. ¿À´Ã ¾Æ¹«·± ¹®Á¦°¡ ¾ø¾ú´Ù ÇÏ´õ¶ó°í ³»ÀÏ ¿ª½Ã ¾ÈÀüÇÒ °ÍÀ̶ó´Â ¸Í½ÅÀ» ¹ö·Á¾ß ÇÕ´Ï´Ù. Áö±Ý ÀÌ ½Ã°£¿¡µµ Áö±¸ ÀúÆí¿¡¼´Â ¿½ÉÈ÷ °ø°ÝÄڵ带 Å×½ºÆ®ÇÏ´Â ´©±º°¡°¡
ÀÖÀ» Å״ϱî¿ä¡¦.
|
Hit : 11946 Date : 2007/11/10 12:53
|