»ó¿ëÈ ±â¼úµé, ¹ö±×³ª ¿À·ù µî ¿©ÀüÈ÷ º¸¾È Ãø¸é¿¡¼ Ãë¾à...»ç¿ëÀÚ¿¡°Ô ºÒÆíÇÑ ±â´ÉÀ¸·Î ÀνÄ
[º¸¾È´º½º= Á¤µ¿Àç KAIST CSRC ¾Ç¼ºÄÚµå ºÐ¼®ÆÀÀå] 2014³â 11¿ù ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®ÀÇ Windows 8.1 Update 3ÀÌ ¹èÆ÷µÇ¸é¼ Á¦¾î È帧 Å»Ãë °ø°ÝÀÇ ´ëÇ¥ÀûÀÎ ¹æ¾î ±â¹ýÀÎ CFI°¡ ¼¼°è ÃÖÃÊ·Î »ó¿ëȵƽÀ´Ï´Ù. ÀÌÈÄ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿¡¼´Â WCFG(Windows Control Flow Guard)¶ó´Â À̸§À¸·Î Visual StudioÀÇ ÄÄÆÄÀÏ·¯¿¡ ±â´ÉÀ» Àû¿ëÇØ Áö¿øÇϸç, Windows 10ÀÇ Ä¿³ÎÀÌ WCFG·Î ÄÄÆÄÀϵǴ µî Àû±ØÀûÀ¸·Î »ó¿ëȵǰí ÀÖ½À´Ï´Ù. ¶ÇÇÑ, 2015³â 9¿ù¿¡´Â LLVM¶ó´Â ÄÄÆÄÀÏ·¯°¡ ¹öÀü 3.7À» ¹èÆ÷ÇÏ¸é¼ CFI°¡ ¸ÞÀζóÀο¡ Æ÷ÇԵǴ µî ´Ù¾çÇÑ ÄÄÆÄÀÏ·¯¿¡¼ CFI ±â¹ýÀÌ È°¿ëµÇ°í ÀÖ½À´Ï´Ù.
[À̹ÌÁö=utoimage]
ÇÏÁö¸¸, ÀÌ »ó¿ëÈ ±â¼úµéÀº CFI ±â¹ýÀÌ °¡Áö´Â ¾Ë°í¸®Áò ÀÚüÀÇ ±Ùº»ÀûÀÎ Ãë¾àÁ¡°ú CFI¸¦ ±¸ÇöÇÏ¸é¼ ³»Æ÷µÉ ¼ö ÀÖ´Â ¹ö±×³ª ¿À·ù µîÀ¸·Î ÀÎÇØ ¿©ÀüÈ÷ º¸¾È Ãø¸é¿¡¼ Ãë¾àÇϸç, WCFG·Î ÀÎÇÑ ½Ã½ºÅÛ Àüü ¼º´É¿¡ ¾È ÁÁÀº ¿µÇâÀ» ¹ÌÄ¡±â ¶§¹®¿¡ »ó¿ëÈ¿¡ ´ëÇÑ ºÎÁ¤ÀûÀÎ Æò°¡¸¦ ¹Þ°í ÀÖ½À´Ï´Ù. ÀÏ·Ê·Î, IT/°³¹ßÀÚ Ä¿¹Â´ÏƼ¿¡¼ WCFG¿¡ ´ëÇÑ ºñÈ°¼ºÈ ¹æ¹ýÀ» ¹®ÀÇÇÏ´Â ±ÛÀ» ½±°Ô ãÀ» ¼ö ÀÖÀ» ¸¸Å »ç¿ëÀÚ¿¡°Ô´Â ºÒÆíÇÑ ±â´ÉÀ¸·Î ÀνĵƽÀ´Ï´Ù.
ÀÌ·¯ÇÑ ¹®Á¦Á¡À» °³¼±ÇÏ°íÀÚ Áö³ 9¿ù Çϵå¿þ¾î ±â¹ÝÀÇ CFI ±â¼úÀÎ Intel CET(control-flow enforcement technology)À̶ó´Â Â÷¼¼´ë ¸ð¹ÙÀÏ ÇÁ·Î¼¼¼ ¡®Tiger Lake¡¯°¡ Ãâ½ÃµÆ½À´Ï´Ù. Çϵå¿þ¾î ±â¹ÝÀÇ CET ±â¼ú·Î ÀÎÇØ ÀÌÀü°ú ºñ±³ÇßÀ» ¶§ ¸Å¿ì Çâ»óµÈ ¼º´ÉÀ» Á¦°øÇÏ°í, CFI ±â¹ýÀ» Àû¿ëÇϴµ¥ ¹ß»ýÇÏ´Â ±¸Çö»óÀÇ º¸¾È¹®Á¦¸¦ ¾î´À Á¤µµ ÇØ°áÇÒ ¼ö ÀÖÁö¸¸, ÀÌ ¶ÇÇÑ ±Ùº»ÀûÀÎ CFI ±â¹ýÀÇ ¾Ë°í¸®Áò ÀÚüÀÇ Ãë¾àÁ¡ ¹®Á¦´Â ¿©ÀüÈ÷ ÇØ°áÇÒ ¼ö ¾ø½À´Ï´Ù.
CFI¸¦ »ó¿ëÈÇÏ¸é¼ ¹ß»ýÇÑ ¹®Á¦Á¡À» Å©°Ô µÑ·Î ³ª´©¸é ù ¹ø°, CFI¸¦ ±¸ÇöÇÏ¸é¼ ¹ß»ýÇÑ ±¸Çö»óÀÇ Ãë¾àÁ¡, µÎ ¹ø°, Àû¿ëÇÑ CFI ±â¹ý ÀÚüÀÇ Ãë¾àÁ¡À¸·Î ±¸ºÐÇÒ ¼ö ÀÖ½À´Ï´Ù. ±¸Çö»óÀÇ Ãë¾àÁ¡Àº Çϵå¿þ¾î ±â¹ÝÀ¸·Î ±¸ÇöÇϰųª Ãë¾àÁ¡ ÆÐÄ¡¸¦ ÅëÇØ ÃæºÐÈ÷ ÇØ°áÀÌ °¡´ÉÇÕ´Ï´Ù. ÇÏÁö¸¸ CFI ±â¹ý ÀÚü°¡ º¸¾ÈÀûÀ¸·Î Ãë¾àÇÑ ¿äÀÎÀÌ ³»Æ÷µÇ¾î ÀÖ´Ù°í ÇÑ´Ù¸é Áï, ±Ùº»ÀûÀÎ CFI ±â¹ýÀÇ º¸¾È¼ºÀ» ³ôÀÌÁö ¸øÇÑ´Ù¸é, »ó¿ëÈµÈ ¾î¶² CFI ±â¼úµµ ÇØÅ·À¸·ÎºÎÅÍ ¾ÈÀüÇÏ´Ù°í ÇÒ ¼ö ¾ø½À´Ï´Ù.
Áö³ CFI °ü·Ã Ä®·³(½Ã½ºÅÛ º¸¾È Çâ»ó À§ÇÑ Á¦¾î È帧 ¹«°á¼º)¿¡¼ »ìÆìºÃµíÀÌ ¿Ïº®ÇÑ º¸¾ÈÀ» º¸ÁõÇÏ´Â CFI¸¦ ¸¸µé±â´Â ½±Áö ¾ÊÀº ¹®Á¦ÀÔ´Ï´Ù. À̷лóÀ¸·Î ¿ÏÀü¹«°áÇÑ CFI ±â¼úÀÌ Àû¿ëµÇ¾ú´Ù¸é, ÇØÅ·ÀÌ ºÒ°¡´ÉÇÒ±î¿ä? ÀÌ¿¡ ´ëÇÑ ´ë´äÀº ÇØÅ·ÀÌ ¡°°¡´ÉÇÏ´Ù¡± ÀÔ´Ï´Ù. ¸ðµç Á¦¾î È帧À» º¸È£Çؼ Á¦¾î È帧 °ø°ÝÀÌ ºÒ°¡´ÉÇÏ´õ¶óµµ Á¦¾î È帧À» º¯°æÇÏÁö ¾Ê´Â °ø°ÝÀÌ ¾ó¸¶µçÁö °¡´ÉÇϱ⠶§¹®ÀÔ´Ï´Ù. ´ëÇ¥ÀûÀÎ ¿¹·Î, ºñÁ¦¾î µ¥ÀÌÅÍ °ø°Ý(Non-control Data Attack)ÀÌ Àִµ¥, ÀÌ´Â Á¤»óÀûÀÎ ÇÁ·Î±×·¥ÀÇ ½ÇÇà È帧°ú ¶È°°Àº Á¦¾î È帧À» °¡Áö¸é¼, ¿ÀÁ÷ µ¥ÀÌÅÍ °ªÀÇ º¯Á¶¸¸À¸·Î ÇØÅ·À» ÇÏ´Â ¹æ½ÄÀ» ¸»ÇÕ´Ï´Ù. Á¦¾î È帧 °ø°Ý¿¡¼´Â ºñÁ¤»óÀûÀÎ Á¦¾î È帧ÀÌ ³ªÅ¸³ª´Â °ÍÀÌ Æ¯Â¡ÀÌÁö¸¸, ºñÁ¦¾î µ¥ÀÌÅÍ °ø°ÝÀº Á¤»óÀûÀÎ Á¦¾î È帧ÀÌ ³ªÅ¸³ª´Â °ÍÀÌ Æ¯Â¡À̱⠶§¹®¿¡, CFI ±â¹ýÀ¸·Î º¸È£ÇÏ´õ¶óµµ ¹æ¾îÇÒ ¼ö ¾ø½À´Ï´Ù.
CFI¿Í ÇØÅ·ÀÇ °ü°è¸¦ Á¶±Ý ´Þ¸® »ý°¢ÇØ º¸°Ú½À´Ï´Ù. À̷лóÀ¸·Î ¿ÏÀü¹«°áÇÑ CFI¸¦ Áö¿øÇÒ ¼ö ÀÖ´Ù¸é, Á¦¾î È帧 °ø°ÝÀÌ ºÒ°¡´ÉÇÒ±î¿ä? ÀÌ Àǹ®ÀÇ ´ä ¶ÇÇÑ ¾ÈŸ±õ°Ôµµ ¡°°¡´ÉÇÏ´Ù¡± ÀÔ´Ï´Ù. Á¦¾î È帧 °ø°ÝÀÌ ¾î¶»°Ô °¡´ÉÇÑÁö ¾Ë¾Æº¸±â À§ÇØ ¸ÕÀú ¿ÏÀü¹«°áÇÑ CFI¿¡ ´ëÇØ ¾Ë¾Æº¸°Ú½À´Ï´Ù. ¿ÏÀü¹«°áÇÑ CFI¸¦ ±¸ÇöÇϱâ À§Çؼ ÇÊ¿äÇÑ Á¤È®ÇÑ CFG(control flow graph)´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. Á¤È®ÇÑ CFG(precise CFG)´Â ¾î¶² °£Á¢ Á¦¾î È帧 Àü¼Û¿¡¼ ¾ÇÀÇÀûÀÎ ½ÇÇà È帧 Áï, ÀǵµµÈ µ¿ÀÛÀ» ¹þ¾î³ªÁö ¾ÊÀº ½ÇÇà È帧ÀÌ Á¸ÀçÇÏÁö ¾Ê°í Á¤»óÀûÀÎ ½ÇÇà È帧¸¸À» µû¸£´Â °æ¿ì¸¦ ¶æÇÕ´Ï´Ù.
ÀÌ Á¤ÀǸ¦ ¹ÙÅÁÀ¸·Î »ý°¢Çغ»´Ù¸é, Á¤È®ÇÑ CFG¶ó°í ÇÏ´õ¶óµµ °£Á¢ Á¦¾î È帧 Àü¼Û¿¡¼ ½ÇÇàÇÒ ¼ö ÀÖ´Â ¿©·¯ °³ÀÇ °æ·Î È帱ºÀÌ ³ªÅ¸³¯ ¼ö ÀÖ½À´Ï´Ù. À̵éÀÇ È帱ºÀº ¸ðµÎ ÇÕ¹ýÀûÀÎ È帷Π¾î´À °÷À¸·Î ½ÇÇàµÇ´õ¶óµµ Á¤»óÀûÀÎ ½ÇÇà È帧ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, ÇÔ¼ö Æ÷ÀÎÅÍ F°¡ °£Á¢ È£ÃâÀ» ÅëÇØ A, B·Î ºÐ±âµÉ ¼ö ÀÖÀ» ¶§, ÀÌ A, B´Â Á¤»óÀûÀ¸·Î ÇÁ·Î±×·¥¿¡¼ ÀǵµµÈ ½ÇÇà È帧ÀÔ´Ï´Ù. ÇÏÁö¸¸ ·±Å¸ÀÓ ½Ã FÀÇ È帧Àº ÇϳªÀÇ Æ¯Á¤ °æ·Î(A ¶Ç´Â B)·Î °áÁ¤µÇ¸ç, ´Ù¸¥ Çϳª´Â ¾ÇÀÇÀûÀÎ ½ÇÇà È帧ÀÌ µË´Ï´Ù. ¹Ù²ã ¸»ÇÏ¸é °£Á¢ Á¦¾î È帧 Àü¼ÛÀÌ ½ÇÇàµÇ´Â ½ÃÁ¡¿¡¼´Â µü ÇϳªÀÇ ½ÇÇà È帧À» Á¦¿ÜÇÏ°í ÀüºÎ ´Ù °ÅÁþÀÌ µÈ´Ù´Â °ÍÀÔ´Ï´Ù. Á¤È®ÇÑ CFG¸¸À¸·Î´Â ¾ÇÀÇÀûÀÎ ½ÇÇà È帧ÀÎÁö ÆÇ´ÜÇÏ´Â °Í ÀÚü°¡ ¸Å¿ì ¾î·Æ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. °á·ÐÀûÀ¸·Î, ÀÌ·¸°Ô ¿ÏÀü¹«°áÇÑ CFI ±â¼úÀ» Àû¿ëÇÏ´õ¶óµµ Á¦¾î È帧 °ø°ÝÀÌ °¡´ÉÇÑ °ÍÀ» ÀǹÌÇÕ´Ï´Ù.
¡ãÁ¤µ¿Àç KAIST »çÀ̹öº¸¾È¿¬±¸¼¾ÅÍ ¾Ç¼ºÄÚµå ºÐ¼®ÆÀ ÆÀÀå[»çÁø=KAIST]
ÇöÀç±îÁö »ó¿ëÈµÈ CFI ±â¼ú ¼öÁØ°ú ´Þ¸® Á¦¾î È帧 °ø°ÝÀ» ¿Ïº®ÇÏ°Ô ¹æ¾îÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ Á¸ÀçÇÒ±î¿ä? ´õ¿í ¿Ïº®ÇÑ Á¦¾î È帧À» ºÐ¼®Çϱâ À§Çؼ´Â ¾î¶»°Ô ÇØ¾ß ÇÒ±î¿ä? ´ÙÀ½ ¿¬Àç¿¡¼´Â ¡°¾î¶»°Ô ÇÏ¸é ´õ¿í ¿ÏÀü¹«°áÇÑ CFI ±â¼úÀ» ±¸ÇöÇÒ ¼ö ÀÖÀ»±î?¡±¶ó´Â ÁÖÁ¦¸¦ °¡Áö°í, °£Á¢ Á¦¾î È帧 Àü¼Û¿¡¼ ƯÁ¤ °æ·Î¸¦ °áÁ¤Áþ´Â ¿ä¼Ò¿¡ ´ëÇØ »ìÆ캸°í, À̸¦ ¹ÙÅÁÀ¸·Î Á¤È®ÇÑ Á¦¾î È帧À» ÆÇ´ÜÇÒ ¼ö ÀÖ´Â ¹æ½Ä¿¡ ´ëÇØ »ìÆ캸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
[±Û_ Á¤µ¿Àç KAIST »çÀ̹öº¸¾È¿¬±¸¼¾ÅÍ ¾Ç¼ºÄÚµå ºÐ¼®ÆÀ ÆÀÀå]
<ÀúÀÛ±ÇÀÚ: º¸¾È´º½º(www.boannews.com) ¹«´ÜÀüÀç-Àç¹èÆ÷±ÝÁö>