[º¸¾È´º½º= Á¤µ¿Àç KAIST »çÀ̹öº¸¾È¿¬±¸¼¾ÅÍ ¾Ç¼ºÄÚµå ºÐ¼®ÆÀ ÆÀÀå] CFI´Â Á¦¾î È帧ÀÇ ¹«°á¼ºÀ» º¸ÀåÇÏ´Â ±â¹ýÀ¸·Î Á¤»óÀûÀÎ Á¦¾î È帧À» ¹þ¾î³ª´Â °ø°Ý¿¡ ´ëÇØ Å½ÁöÇÕ´Ï´Ù. ÇÏÁö¸¸ Áö³ ¡®Á¦¾î È帧 ¹«°á¼º CFIÀÇ Á¾ÂøÁ¡¡¯ Ä®·³¿¡¼ »ìÆ캻 °Íó·³, ¿Ïº®ÇÏ°Ô ¹®¸Æ±îÁö °í·ÁÇÏ¿© ¸¸µé¾îÁø CFI¶ó°í ÇÏ´õ¶óµµ ¸ðµç ¸Þ¸ð¸® ¼Õ»ó °ø°ÝÀ» ¿Ïº®ÇÏ°Ô ¹æ¾îÇÏÁö ¸øÇÕ´Ï´Ù. À̹ø Ä®·³¿¡¼´Â ¸Þ¸ð¸® ¼Õ»ó °ø°ÝÀÌ ¹ß»ýÇßÀ» ¶§, Á¦¾î È帧À» º¯Á¶ÇÏÁö ¾ÊÀ¸¸é¼ °ø°ÝÇÒ ¼ö ÀÖ´Â µ¥ÀÌÅÍ º¯Á¶ °ø°Ý¿¡ ´ëÇØ ¾Ë¾Æº¸°Ú½À´Ï´Ù.
[À̹ÌÁö=utoimage]
¸Þ¸ð¸® ¼Õ»ó °ø°Ý(memory corruption)Àº ½Ã½ºÅÛ º¸¾È¿¡¼ °¡Àå ¿À·¡µÈ ¹®Á¦ Áß ÇϳªÀÔ´Ï´Ù. ¸Þ¸ð¸® ¼Õ»ó °ø°ÝÀº ÈçÈ÷ ÇÁ·Î±×·¥ÀÇ °³¹ß ½Ç¼ö·Î ÀÎÇØ ÃʱâȵÇÁö ¾Ê°Å³ª Çã°¡µÇÁö ¾Ê´Â ¸Þ¸ð¸® ¿µ¿ª¿¡ Á¢±Ù ½Ã ¹ß»ýÇÕ´Ï´Ù. ÇØÅ·ÀÌ ¹ß»ýÇÏ´Â ÀÏ·ÃÀÇ °úÁ¤À» º¸¸é, ÀÀ¿ë ÇÁ·Î±×·¥À̳ª ¿î¿µÃ¼Á¦¿¡ Á¸ÀçÇÏ´Â Ãë¾àÁ¡À¸·Î ÀÎÇØ ÀͽºÇ÷ÎÀÕ(exploit)ÀÌ ¹ß»ýÇϸé, °ø°ÝÀÚ´Â ¸Þ¸ð¸®ÀÇ Æ¯Á¤ ¿µ¿ªÀ» º¯Á¶ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. °ø°ÝÀڴ ƯÁ¤ ¿µ¿ªÀ» Á¶ÀÛÇÔÀ¸·Î½á ÀÚ½ÅÀÌ ¿øÇÏ´Â ¾ÇÀÇÀûÀÎ ÇàÀ§¸¦ ¼öÇàÇÏ°Ô µË´Ï´Ù. ÀÌ·¸°Ô ¸Þ¸ð¸® ¼Õ»óÀ» ÅëÇØ °ø°ÝÀڴ ƯÁ¤ µ¥ÀÌÅ͸¦ Á¶ÀÛÇÒ ¼ö ÀÖ°Ô µÇ°í À̸¦ ÅëÇØ °ø°ÝÀÚ°¡ ¿øÇÏ´Â ¾ÇÀÇÀûÀÎ ÇàÀ§¸¦ ¼öÇàÇÕ´Ï´Ù.
¿©±â¼ µ¥ÀÌÅÍ´Â Á¦¾î µ¥ÀÌÅÍ(control data)¿Í ºñÁ¦¾î µ¥ÀÌÅÍ(non-control data) µÎ °¡Áö·Î ±¸ºÐÇÒ ¼ö ÀÖ½À´Ï´Ù. Á¦¾î µ¥ÀÌÅÍ´Â °ªÀ¸·Î ¸Þ¸ð¸® ÁÖ¼Ò¸¦ °¡Áö°í ÀÖ¾î Á¦¾î È帧¿¡ Á÷Á¢ÀûÀ¸·Î ¿µÇâÀ» ¹ÌÄ¡´Â µ¥ÀÌÅÍÀÔ´Ï´Ù. Á¦¾î µ¥ÀÌÅÍ º¯Á¶´Â ÇÁ·Î±×·¥ÀÇ È帧À» º¯Á¶ÇÏ¿© °ø°ÝÀÚ°¡ ¿øÇÏ´Â Äڵ带 ½ÇÇàÇϸç, Á¦¾î È帧 Å»Ãë °ø°Ý(control flow hijacking attack)À̶ó ÇÕ´Ï´Ù.
¹Ý¸é, ºñÁ¦¾î µ¥ÀÌÅÍ´Â Á¦¾î µ¥ÀÌÅÍ¿Í »ó¹ÝµÈ °³³äÀ¸·Î Á¦¾î È帧¿¡ Á÷Á¢ÀûÀ¸·Î ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â µ¥ÀÌÅÍ º¯¼ö³ª Æ÷ÀÎÅ͸¦ ¶æÇÕ´Ï´Ù. ºñÁ¦¾î µ¥ÀÌÅÍ º¯Á¶´Â ÇÁ·Î±×·¥ÀÇ È帧À» º¯Á¶ÇÏÁö ¾ÊÀ¸¸é¼ °ø°ÝÀÚ°¡ ¿øÇÏ´Â ÇàÀ§¸¦ ½ÇÇàÇÏ´Â ¹æ¹ýÀ¸·Î Data-Oriented AttackÀ̶ó ÇÕ´Ï´Ù.
Data-oriented attackÀº ¾Õ¿¡¼ ¾ð±ÞÇÑ °Í°ú °°ÀÌ ÇÁ·Î±×·¥ÀÇ ºñÁ¦¾î µ¥ÀÌÅ͸¦ Á¶ÀÛÇÏ¿© ¾ÇÀÇÀûÀÎ ÇàÀ§¸¦ ¼öÇàÇÕ´Ï´Ù. ÀÌ °ø°ÝÀº °£´ÜÈ÷ µ¥ÀÌÅÍÀÇ º¯¼ö¸¦ º¯Á¶ÇÏ´Â °ÍÀ¸·Îµµ °¡´ÉÇϸç, ÁÖ·Î Æнº¿öµå³ª ¾ÏÈ£ÈÅ°¸¦ ÃßÃâÇÏ´Â Á¤º¸ ´©Ãâ(information disclosure), »ç¿ëÀÚÀÇ Á¤º¸¸¦ Á¶ÀÛÇÏ¿© ´õ ³ôÀº ±ÇÇÑÀ» ȹµæÇÏ´Â ±ÇÇÑ »ó½Â(privilege escalation), ½Ã½ºÅÛ ÀÚ¿øÀÇ ³¶ºñ·Î ÀÎÇÑ ¼º´É Ç϶ôÀ» ³ë¸®´Â ¼º´É ÀúÇÏ(performance degradation), ½Ã½ºÅÛ¿¡ Àû¿ëµÈ ¿©·¯ °¡Áö º¸¾È ±â¹ýµéÀ» ¿ìȸÇϱâ À§ÇÑ ¸ñÀûÀ¸·Î »ç¿ëµË´Ï´Ù.
Data-oriented attackÀº °ø°Ý ¹æ½Ä¿¡ µû¶ó Á÷Á¢ µ¥ÀÌÅÍ º¯Á¶(Direct Data Manipulation)¿Í DOP(Data-Oriented Programming)·Î ³ª´¹´Ï´Ù. Á÷Á¢ µ¥ÀÌÅÍ º¯Á¶ ¹æ½ÄÀº ¸» ±×´ë·Î µ¥ÀÌÅ͸¦ Á÷Á¢ º¯Á¶ÇÔÀ¸·Î½á °ø°ÝÀÚ°¡ ¿øÇÏ´Â ¾ÇÀÇÀûÀÎ ÇàÀ§¸¦ ÇÏ´Â °ÍÀ» ¶æÇÕ´Ï´Ù. À̸¦ À§ÇØ °ø°ÝÀÚ´Â º¯Á¶ÇÒ µ¥ÀÌÅÍÀÇ ¸Þ¸ð¸® ÁÖ¼Ò¸¦ ¾Ë¾Æ¾ß ÇÏ°í, ÀÌ µ¥ÀÌÅ͸¦ Á¶ÀÛÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù.
¡ãÁ¤µ¿Àç KAIST »çÀ̹öº¸¾È¿¬±¸¼¾ÅÍ ¾Ç¼ºÄÚµå ºÐ¼®ÆÀ ÆÀÀå[»çÁø=KAIST]
DOP °ø°ÝÀº ROP °ø°Ý°ú À¯»çÇÏ°Ô ±âÁ¸¿¡ Á¸ÀçÇÏ´Â Äڵ带 È°¿ëÇÏ¿© °ø°Ý Äڵ带 ±¸¼ºÇÕ´Ï´Ù. À̶§ »ç¿ëÇÏ´Â DOP °¡Á¬Àº »ê¼ú, ³í¸®, ÇÒ´ç, Àбâ, ¾²±â ±â´ÉÀ» ÇÏ´Â ¸í·É¾î·Î ±¸ºÐÇÏ°í, Á¦¾î È帧À» ¹þ¾î³ªÁö ¾Ê´Â Äڵ带 ´ë»óÀ¸·Î Ž»öÇÕ´Ï´Ù. ÀÌ·¸°Ô ±¸ºÐµÈ °¡Á¬À» Á¶ÇÕÇÏ¿© °ø°Ý Äڵ带 ±¸¼ºÇÏ¿© ¿øÇÏ´Â µ¥ÀÌÅÍ¿¡ Á¢±ÙÇÏ¿© °ªÀ» Àаųª º¯Á¶ÇÕ´Ï´Ù.
Data-oriented attackÀº Á¦¾î È帧À» ¹þ¾î³ªÁö ¾Ê´Â Á¤»óÀûÀÎ È帧 ³»¿¡¼ °ø°ÝÇϱ⠶§¹®¿¡ Á¦¾î È帧 ¹æ¾î ±â¹ýÀ¸·Î´Â º¸È£ÇÒ ¼ö ¾ø½À´Ï´Ù. Data-oriented attackÀ» ¹æ¾îÇÏ´Â ¹æ¹ýÀº ASLR°ú À¯»çÇÏ°Ô µ¥ÀÌÅÍ °ø°£ ¹«ÀÛÀ§È(data space randomization) ¹æ½Ä°ú DFI(Data Flow Integrity)°¡ Á¸ÀçÇÕ´Ï´Ù. ÀÌ µÎ ¹æ½ÄÀº ¾ÆÁ÷±îÁö Data-oriented attack¿¡ ´ëÇØ ¿Ïº®ÇÑ º¸¾ÈÀ» Á¦°øÇÏÁö ¸øÇÏ°í ÀÖ½À´Ï´Ù. ´ÙÀ½ Ä®·³¿¡¼´Â Data-oriented attack¿¡ ´ëÇÑ ¹æ¾î ±â¹ý¿¡ ´ëÇØ »ìÆ캸°í, °¢ ±â¹ýÀÇ ¹®Á¦Á¡¿¡ ´ëÇØ ¾Ë¾Æº¸°Ú½À´Ï´Ù.
[±Û_ Á¤µ¿Àç KAIST »çÀ̹öº¸¾È¿¬±¸¼¾ÅÍ ¾Ç¼ºÄÚµå ºÐ¼®ÆÀ ÆÀÀå]
<ÀúÀÛ±ÇÀÚ: º¸¾È´º½º(www.boannews.com) ¹«´ÜÀüÀç-Àç¹èÆ÷±ÝÁö>