Home > Àüü±â»ç

[CSRC@KAIST Â÷¼¼´ëº¸¾ÈR&D¸®Æ÷Æ®] CFI »ó¿ëÈ­¿Í ÇÑ°èÀÇ ÀÌÀ¯

ÀÔ·Â : 2020-10-22 10:37
ÆäÀ̽ººÏ º¸³»±â Æ®À§ÅÍ º¸³»±â ³×À̹ö ¹êµå º¸³»±â Ä«Ä«¿À ½ºÅ丮 º¸³»±â ³×À̹ö ºí·Î±× º¸³»±â
Windows 8.1 Update 3¿¡ Á¦¾î È帧 Å»Ãë °ø°ÝÀÇ ´ëÇ¥ÀûÀÎ ¹æ¾î ±â¹ý CFI ¼¼°è ÃÖÃÊ·Î »ó¿ëÈ­
»ó¿ëÈ­ ±â¼úµé, ¹ö±×³ª ¿À·ù µî ¿©ÀüÈ÷ º¸¾È Ãø¸é¿¡¼­ Ãë¾à...»ç¿ëÀÚ¿¡°Ô ºÒÆíÇÑ ±â´ÉÀ¸·Î ÀνÄ


[º¸¾È´º½º= Á¤µ¿Àç 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 ±â¼úµéÀº ¾ÆÁ÷±îÁö º¸¾È Ãø¸é¿¡¼­ º¼ ¶§ ¿Ïº®ÇÑ ÇØÅ· ´ëÀÀ ±â¼úÀ̶ó°í Æò°¡ÇÒ ¼ö ¾ø½À´Ï´Ù. ¿¹¸¦ µé¾î, ASLR(Address Space Layout Randomization)À̳ª DEP(Data Execution Prevention)¿Í °°Àº º¸¾È ±â¼úµµ BOF(buffer overflow)µîÀÇ °ø°ÝÀ» º¸´Ù ´õ ¾î·Æ°Ô ¸¸µé »Ó ¿Ïº®ÇÑ º¸¾ÈÀ» Á¦°øÇØ ÁÖÁö´Â ¾Ê½À´Ï´Ù. ¸Þ¸ð¸® ·¹À̾ƿôÀ» º¯È­ÇÏ°Ô ÇÏ°í, µ¥ÀÌÅÍ ¿µ¿ªÀ» ½ÇÇà ºÒ°¡´ÉÇÏ°Ô ¸¸µé¾î ÇØÅ·À» ´õ¿í ¾î·Æ°Ô ¸¸µå´Â °Íó·³, Á¦¾î È帧À» º¯Á¶ÇÏÁö ¸øÇÏ°Ô ÇÏ¿© ÄÚµå »ðÀÔ °ø°Ý°ú ÄÚµå Àç»ç¿ë °ø°ÝÀ» ¾î·Æ°Ô ÇÔÀ¸·Î½á ÇØÅ·À» ´õ¿í ¾î·Æ°Ô ¸¸µç´Ù´Â Á¡¿¡¼­ CFI ±â¼úÀº º¸¾ÈÀ» °­È­ÇÏ´Â µ¥ Å« µµ¿òÀÌ µÉ °ÍÀÔ´Ï´Ù.

ÇöÀç±îÁö »ó¿ëÈ­µÈ CFI ±â¼ú ¼öÁØ°ú ´Þ¸® Á¦¾î È帧 °ø°ÝÀ» ¿Ïº®ÇÏ°Ô ¹æ¾îÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ Á¸ÀçÇÒ±î¿ä? ´õ¿í ¿Ïº®ÇÑ Á¦¾î È帧À» ºÐ¼®Çϱâ À§Çؼ­´Â ¾î¶»°Ô ÇØ¾ß ÇÒ±î¿ä? ´ÙÀ½ ¿¬Àç¿¡¼­´Â ¡°¾î¶»°Ô ÇÏ¸é ´õ¿í ¿ÏÀü¹«°áÇÑ CFI ±â¼úÀ» ±¸ÇöÇÒ ¼ö ÀÖÀ»±î?¡±¶ó´Â ÁÖÁ¦¸¦ °¡Áö°í, °£Á¢ Á¦¾î È帧 Àü¼Û¿¡¼­ ƯÁ¤ °æ·Î¸¦ °áÁ¤Áþ´Â ¿ä¼Ò¿¡ ´ëÇØ »ìÆ캸°í, À̸¦ ¹ÙÅÁÀ¸·Î Á¤È®ÇÑ Á¦¾î È帧À» ÆÇ´ÜÇÒ ¼ö ÀÖ´Â ¹æ½Ä¿¡ ´ëÇØ »ìÆ캸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
[±Û_ Á¤µ¿Àç KAIST »çÀ̹öº¸¾È¿¬±¸¼¾ÅÍ ¾Ç¼ºÄÚµå ºÐ¼®ÆÀ ÆÀÀå]

<ÀúÀÛ±ÇÀÚ: º¸¾È´º½º(www.boannews.com) ¹«´ÜÀüÀç-Àç¹èÆ÷±ÝÁö>

  •  
  • 0
  • ÆäÀ̽ººÏ º¸³»±â Æ®À§ÅÍ º¸³»±â ³×À̹ö ¹êµå º¸³»±â Ä«Ä«¿À ½ºÅ丮 º¸³»±â ³×À̹ö ºí·Î±× º¸³»±â

  • ¡°
  •  SNS¿¡¼­µµ º¸¾È´º½º¸¦ ¹Þ¾Æº¸¼¼¿ä!! 
  • ¡±
¾Æ½ºÆ®·Ð½ÃÅ¥¸®Æ¼ ÆÄ¿öºñÁî 2023³â2¿ù23ÀÏ ½ÃÀÛ ³Ý¾Øµå ÆÄ¿öºñÁî ÁøÇà 2020³â1¿ù8ÀÏ ½ÃÀÛ~2021³â 1¿ù8ÀϱîÁö À§Áîµð¿£¿¡½º 2018
¼³¹®Á¶»ç
³»³â ȸ»ç¿¡ ²À µµÀÔÇÏ°í ½ÍÀº º¸¾È ¼Ö·ç¼Ç ¶Ç´Â Ç÷§ÆûÀº ¹«¾ùÀΰ¡¿ä?
XDR
EDR
AI º¸¾È
Á¦·ÎÆ®·¯½ºÆ®
°ø±Þ¸Á º¸¾È ü°è(SBOM)
Ŭ¶ó¿ìµå º¸¾È ¼Ö·ç¼Ç
±âŸ(´ñ±Û·Î)