¸Þ¸ð¸® ¼Õ»óÀ» ¸·±â À§ÇÑ Memory Safety ±â¹ý, µ¥ÀÌÅÍÀÇ À§Ä¡¸¦ ¾Ë ¼ö ¾ø°Ô ¸¸µå´Â ¹æ¹ý, µ¥ÀÌÅÍ È帧 ¹«°á¼º µî
[º¸¾È´º½º= Á¤µ¿Àç KAIST »çÀ̹öº¸¾È¿¬±¸¼¾ÅÍ ¾Ç¼ºÄÚµåºÐ¼®ÆÀÀå] À̹ø ±â°í¿¡¼´Â Áö³ ±â°í(Data-oriented Attack)¿¡¼ »ìÆ캻 µ¥ÀÌÅÍ °ø°Ý(Data-oriented attack)¿¡ ´ëÇÑ ¹æ¾î±â¹ýµé¿¡ ´ëÇؼ °ø°ÝÀÌ ¹ß»ýµÇ´Â °úÁ¤¿¡ µû¶ó ´Ü°èº°·Î º¸È£ÇÒ ¼ö ÀÖ´Â ¾î¶² ¹æ¹ýµéÀÌ Á¸ÀçÇÏ´ÂÁö ¾Ë¾Æº¸°í, ÀÌµé °¢°¢ÀÇ º¸¾È ¹æ¹ýµéÀÌ Áö´Ñ ÇÑ°èÁ¡¿¡ ´ëÇؼµµ °£·«È÷ »ìÆ캸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
[À̹ÌÁö=utoimage]
µ¥ÀÌÅÍ °ø°ÝÀº ¸Þ¸ð¸® ¼Õ»óÀ¸·ÎºÎÅÍ ½ÃÀÛµÇ¾î ¡®Non-Control Data¡¯ÀÇ º¯Á¶°¡ ÀϾ¸é¼ ½ÃÀ۵˴ϴÙ. ¸Þ¸ð¸® ¼Õ»óºÎÅÍ µ¥ÀÌÅÍ º¯Á¶±îÁöÀÇ °ø°Ý È帧¿¡ µû¶ó °¢ ´Ü°è¿¡ ´ëÇÑ ¹æ¾î ±â¹ýÀ» »ý°¢Çغ¸¸é, °¡Àå óÀ½ ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ¸Þ¸ð¸® ¼Õ»óÀ» ¸·´Â °ÍÀÔ´Ï´Ù. ¸Þ¸ð¸® ¼Õ»óÀº ÈçÈ÷ Ãë¾àÁ¡À» ÅëÇØ ÀͽºÇ÷ÎÀÕ(Exploit)µÇ¸é¼ ¹ß»ýÇϸç, ¹æ¾î±â¹ýÀ¸·Î´Â Memory Safety ±â¹ýÀÌ Á¸ÀçÇÕ´Ï´Ù.
Memory Safety ±â¹ýÀº ºñÁ¦¾î µ¥ÀÌÅͻӸ¸ ¾Æ´Ï¶ó Á¦¾î µ¥ÀÌÅͱîÁöµµ º¸È£ÇÏ´Â ¹æ½ÄÀ¸·Î ¸ðµç ¸Þ¸ð¸® ¼Õ»óÀ» ¸·´Â °ÍÀ» ¸ñÇ¥·Î ÇÕ´Ï´Ù. ¸Þ¸ð¸® ¿À·ù¸¦ ŽÁöÇØ À¯È¿ÇÑ Æ÷ÀÎÅÍ¿Í ¿ÀºêÁ§Æ®ÀÇ ÁÖ¼Ò¸¦ °Ë»çÇÏ´Â ¹æ½ÄÀ¸·Î ¸Þ¸ð¸® °ø°£ÀÇ ¾ÈÁ¤¼ºÀ» º¸ÀåÇÕ´Ï´Ù. ÇÏÁö¸¸ ÀÌ ¹æ½ÄÀº ¹ÙÀ̳ʸ® ³»ÀÇ Æ÷ÀÎÅ͵éÀ» ¸ÞŸµ¥ÀÌÅÍ¿Í ±¸ºÐÇϱâ À§ÇØ º°°³ÀÇ ¸Þ¸ð¸® °ø°£¿¡ º¸°üÇÏ°í, µ¥ÀÌÅÍÀÇ Á¢±ÙÀÌ ¹ß»ýÇÒ ¶§, Æ÷ÀÎÅÍ ¿©ºÎ¿¡ ´ëÇÑ °Ë»ç¿Í Æ÷ÀÎÅ͵éÀÌ ¿ªÂüÁ¶µÉ ¶§¸¶´Ù À¯È¿ÇÑ ¹üÀ§ ³»¿¡ ÀÖ´ÂÁö °Ë»ç¸¦ ÁøÇàÇÏ´Â ¿À¹öÇìµå·Î ÀÎÇØ ¾ÆÁ÷±îÁö´Â ½Ç»ýÈ°¿¡ Àû¿ëÇÒ ¼ö ¾øÀ» Á¤µµÀÇ ¾öû³ ¿À¹öÇìµå°¡ ¹ß»ýÇÑ´Ù´Â ´ÜÁ¡ÀÌ Á¸ÀçÇÕ´Ï´Ù.
¸Þ¸ð¸® ¼Õ»óÀ¸·ÎºÎÅÍ º¸È£Çϱâ À§ÇÑ ¶Ç ´Ù¸¥ ¹æ½ÄÀ¸·Î´Â Áß¿äÇÑ µ¥ÀÌÅ͵éÀ» µû·Î °Ý¸®½ÃÅ°´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¸Þ¸ð¸® °Ý¸® ¹æ½ÄÀº ±ÇÇÑÀÌ ³ôÀº ¸®¼Ò½º¿¡ ´ëÇÑ ¹«´Ü ¾×¼¼½º¸¦ ¹æÁöÇϱâ À§ÇØ ³Î¸® »ç¿ëµË´Ï´Ù. ÇÕ¹ýÀûÀÎ ÄÚµå ¿µ¿ª¿¡¼¸¸ »ç¿ëÀÚ ID¿Í ±ÇÇÑ °°Àº º¸¾È¿¡ Áß¿äÇÑ µ¥ÀÌÅÍ¿¡ Á¢±ÙÇÒ ¼ö ÀÖ°Ô ÇÔÀ¸·Î½á ÀǵµÄ¡ ¾ÊÀº Á¢±ÙÀ¸·Î ÀÎÇÑ Á÷Á¢ÀûÀÎ µ¥ÀÌÅÍ ¼Õ»óÀ» ¹æÁöÇÕ´Ï´Ù. ÀÌ ¹æ½ÄÀº ¸Þ¸ð¸®¸¦ °Ý¸®ÇÒ ¼ö ÀÖ´Â Ãß°¡ÀûÀÎ Çϵå¿þ¾î³ª ¼ÒÇÁÆ®¿þ¾îÀûÀÎ ¹æ¹ýÀÌ ÇÊ¿äÇÏ´Ù´Â °Í°ú ÀûÀº ¾çÀÇ Áß¿äÇÑ µ¥ÀÌÅ͸¦ º¸È£ÇÏ´Â °æ¿ì¿¡¸¸ È¿°úÀûÀ̶ó´Â ´ÜÁ¡ÀÌ Á¸ÀçÇÕ´Ï´Ù.
´ÙÀ½À¸·Î Non-Control Data°¡ º¯Á¶µÇ´Â °ÍÀ» ¸·±â À§ÇÑ ¹æ¹ýÀ¸·Î´Â µ¥ÀÌÅÍÀÇ À§Ä¡¸¦ ¾Ë ¼ö ¾ø°Ô ¸¸µå´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ÀÌ ¹æ½ÄÀº µ¥ÀÌÅÍ ¿ÀºêÁ§Æ® ³»ÀÇ À§Ä¡¸¦ ·£´ýÇÏ°Ô º¯ÈÇÏ´Â ¹æ½Ä°ú µ¥ÀÌÅÍ Ç¥ÇöÀ» ¼öÁ¤ÇÏ´Â ¹æ½ÄÀÌ ÀÖ½À´Ï´Ù. DSR(Data Space Randomization)À̶ó°í ÇÏ´Â ¹æ½ÄÀº ¸Þ¸ð¸®ÀÇ °¢ µ¥ÀÌÅÍ °³Ã¼¸¦ ÀÓÀÇÀÇ Å°°ªÀ¸·Î ¾ÏÈ£ÈÇÏ°í, »ç¿ëÇϱâ Àü¿¡ Çص¶ÇÏ´Â ¹æ½ÄÀ¸·Î µ¥ÀÌÅ͸¦ º¸È£ÇÕ´Ï´Ù. ÇÏÁö¸¸, ASLR°ú À¯»çÇÏ°Ô ¹«ÀÛÀ§ÈÀÇ ÇÑ°è·Î ÀÎÇØ ¿Ïº®ÇÑ º¸¾ÈÀ» Á¦°øÇÏÁö´Â ¸øÇÕ´Ï´Ù. ¶ÇÇÑ, ¸Þ¸ð¸® ·¹À̾ƿôÀ» ÆľÇÇØ °ø°ÝÀÌ °¡´ÉÇϸç, DOP(Data-Oriented Programming) °ø°Ý¿¡ Ãë¾àÇÏ´Ù´Â ÇÑ°èÁ¡ÀÌ ÀÖ½À´Ï´Ù. ¶ÇÇÑ, ¸ðµç µ¥ÀÌÅÍÀÇ À§Ä¡¸¦ ¹«ÀÛÀ§È ÇÏ´Â °ÍÀº ³ôÀº ¿À¹öÇìµå¸¦ ¹ß»ý½Ãų ¼ö ÀÖ´Ù´Â ´ÜÁ¡µµ Á¸ÀçÇÕ´Ï´Ù.
¸¶Áö¸· ¹æ¹ýÀ¸·Î µ¥ÀÌÅÍ È帧 ¹«°á¼º(Data Flow Integrity) ±â¹ýÀÌ ÀÖ½À´Ï´Ù. À̸§¿¡¼µµ ´À²¸ÁöµíÀÌ, µ¥ÀÌÅÍ È帧 ¹«°á¼º ¹æ½ÄÀº Á¦¾î È帧 ¹«°á¼º ¹æ½Ä°ú Á¢±Ù ¹æ½ÄÀÌ ºñ½ÁÇÕ´Ï´Ù. ¸ÕÀú ÇÁ·Î±×·¥ ½ÇÇà Àü¿¡ µ¥ÀÌÅÍ°¡ Á¤ÀÇµÇ°í »ç¿ëµÇ´Â °Í¿¡ ´ëÇÑ Á¤Àû µ¥ÀÌÅÍ È帧 ±×·¡ÇÁ(DFG)¸¦ »ý¼ºÇÕ´Ï´Ù. ±×¸®°í ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ¸é¼ °¢ µ¥ÀÌÅÍÀÇ Àбâ ÀÛ¾÷ÀÌ ¼öÇàµÉ ¶§, ÀÌ µ¥ÀÌÅÍ°¡ ÇÕ¹ýÀûÀÎ ÀÛ¾÷¿¡ ÀÇÇؼ Á¤ÀǵǾú´ÂÁö µ¥ÀÌÅÍ º¯Á¶¿¡ ´ëÇÑ °Ë»ç¸¦ ¼öÇàÇØ µ¥ÀÌÅ͸¦ º¸È£ÇÕ´Ï´Ù. ÀÌ ¹æ½Ä ¶ÇÇÑ, ¸ðµç ¸Þ¸ð¸® ¿µ¿ª¿¡ µ¥ÀÌÅÍ È帧 ¹«°á¼ºÀ» ¿Ïº®ÇÏ°Ô Àû¿ëÇÏ¸é ¸ðµç µ¥ÀÌÅÍ º¯Á¶ °ø°ÝÀ» ¸·À» ¼ö ÀÖÁö¸¸, ¸ðµç µ¥ÀÌÅÍ°¡ Á¤ÀÇµÉ ¶§ °ªÀ» ±â¾ïÇÏ°í, »ç¿ëµÉ ¶§ °ªÀÌ º¯Á¶µÇ¾ú´ÂÁö °Ë»çÇÏ´Â ·çƾÀÌ Ãß°¡µÇ¾î ¸Å¿ì ³ôÀº ¿À¹öÇìµå°¡ Á¸ÀçÇϸç, ¾ÆÁ÷±îÁö ±â¼úÀûÀ¸·Î ¾î·Á¿î ºÎºÐÀÌ ¸¹ÀÌ ÀÖ½À´Ï´Ù.
¡ãÁ¤µ¿Àç KAIST »çÀ̹öº¸¾È¿¬±¸¼¾ÅÍ ¾Ç¼ºÄÚµåºÐ¼®ÆÀ ÆÀÀå[»çÁø=KAIST]
Áö±Ý±îÁö »ìÆ캻 °Íó·³ ¸Þ¸ð¸® ¼Õ»ó¿¡ ´ëÇÑ ´Ù¾çÇÑ °ø°Ýµé°ú ±×¿¡ ´ëÇÑ ¿©·¯ °¡Áö ¹æ¾î ±â¹ýµé¿¡ ´ëÇØ »ìÆ캸¾Ò½À´Ï´Ù. °á±¹ °¡Àå ¿Ïº®ÇØ º¸ÀÌ´Â ÃÖ½ÅÀÇ ¹æ¾î±â¹ýÀÌ¶óµµ ¶Ç ´Ù¸¥ Ãë¾àÁ¡°ú ¿©·¯ ¿ìȸÀûÀÎ °ø°Ý¿¡ ÀÇÇØ °ø°ÝÀÌ °¡´ÉÇÏ´Ù´Â ÇÑ°èÁ¡ÀÌ ÀÖ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ¾ú½À´Ï´Ù. µû¶ó¼ ´õ¿í ¾ÈÀüÇÑ ½Ã½ºÅÛÀ» ¸¸µé±â À§Çؼ´Â ¿©·¯ °ø°Ýµé¿¡ ´ëÇÑ ³ôÀº ÀÌÇØ¿Í ½Éµµ ÀÖ´Â ºÐ¼®À» ¹ÙÅÁÀ¸·Î ÇÑ ¹æ¾î±â¹ý ¿¬±¸, ´õ¿í öÀúÇÑ °ËÁõ°ú Å×½ºÆÃÀÌ Á¶È¸¦ ÀÌ·ê ¶§ °¡´ÉÇϸç, ´õ¿í ¿Ïº®ÇÑ º¸¾ÈÀ» À§Çؼ´Â ÀÚµ¿È°¡ ÇʼöÀûÀÎ °úÁ¦°¡ ¾Æ´Ò±î »ý°¢ÇØ º¾´Ï´Ù.
[±Û_ KAIST »çÀ̹öº¸¾È¿¬±¸¼¾ÅÍ ¾Ç¼ºÄÚµåºÐ¼®ÆÀ Á¤µ¿Àç ÆÀÀå]
<ÀúÀÛ±ÇÀÚ: º¸¾È´º½º(www.boannews.com) ¹«´ÜÀüÀç-Àç¹èÆ÷±ÝÁö>