°¡. ÈÅÀ̶õ

ÈÅÅ·(Hooking)À̶õ ÀÌ¹Ì ÀÛ¼ºµÇ¾î ÀÖ´Â ÄÚµåÀÇ Æ¯Á¤ ÁöÁ¡À» °¡·Îä¼­ µ¿ÀÛ ¹æ½Ä¿¡ º¯È­¸¦ ÁÖ´Â ÀÏüÀÇ ±â¼úÀÌ´Ù. ÈÅÀ̶õ ³¬½Ã¹Ù´Ã°°Àº °¥°í¸® ¸ð¾çÀ» °¡Áö´Âµ¥ ¿©±â¼­´Â ÄÚµåÀÇ Áß°£ ºÎºÐÀ» ³¬¾Æä´Â µµ±¸¶ó´Â ¶æÀ¸·Î »ç¿ëµÈ´Ù. ´ë»ó ÄÚµåÀÇ ¼Ò½º¸¦ ¼öÁ¤ÇÏÁö ¾Ê°í ¿øÇÏ´Â µ¿ÀÛÀ» Çϵµ·Ï ÇØ¾ß ÇϹǷΠ±â¼úÀûÀ¸·Î ¾î·Æ±âµµ ÇÏ°í ¿î¿µÃ¼Á¦ÀÇ Åë»óÀûÀÎ ½ÇÇà È帧À» Á¶ÀÛÇØ¾ß ÇϹǷΠ¶§·Î´Â À§ÇèÇϱ⵵ ÇÏ´Ù. ÈÅÅ·À» ÇÏ´Â ¹æ¹ý¿¡´Â ¿©·¯ °¡Áö°¡ Àִµ¥ °ú°Å µµ½º ½ÃÀý¿¡ ÈçÈ÷ »ç¿ëÇÏ´ø ÀÎÅÍ·´ÅÍ °¡·Îä±â ±â¹ýÀ̳ª ¹Ù·Î ¾Õ¿¡¼­ ¾Ë¾Æº» ¼­ºêŬ·¡½Ìµµ ÈÅÅ· ±â¹ýÀÇ Çϳª¶ó°í ÇÒ ¼ö ÀÖ´Ù.

ÀÌ¿Ü¿¡µµ ¹Ì¸® ¾à¼ÓµÈ ·¹Áö½ºÆ®¸® À§Ä¡¿¡ ÈÅ DLLÀÇ À̸§À» Àû¾î Áְųª BHO(Browser Helper Object)³ª ÀÀ¿ë ÇÁ·Î±×·¥ °íÀ¯ÀÇ Ãß°¡ DLL(Add in)À» µî·ÏÇÏ´Â °£´ÜÇÑ ¹æ¹ýµµ ÀÖ°í PE ÆÄÀÏÀÇ ÀÓÆ÷Æ® ÇÔ¼ö Å×À̺íÀ» ÀÚ½ÅÀÇ ÇÔ¼ö·Î º¯°æÇϱâ, CreateRemoteThread ÇÔ¼ö·Î ´Ù¸¥ ÇÁ·Î¼¼½ºÀÇ ÁÖ¼Ò °ø°£¿¡ DLLÀ» ÁÖÀÔ(Injection)ÇÏ´Â ¹æ¹ý, ¸Þ¸ð¸®ÀÇ Ç¥ÁØ ÇÔ¼ö ÁÖ¼Ò¸¦ µ¤¾î ¾²´Â ²Ï ¾î·Á¿î ¹æ¹ýµéµµ ÀÖ´Ù. ÀÌ·± °í±Þ ÈÅÅ· ±â¼úÀº ÀÌ Ã¥ÀÇ ¹üÀ§¸¦ ¹þ¾î³ª¹Ç·Î ¿©±â¼­´Â ¼Ò°³¸¸ ÇÏ°í ´Ù·çÁö´Â ¾Ê±â·Î ÇÑ´Ù. ÀÌ Àý¿¡¼­ ¾Ë¾Æº¼ ¸Þ½ÃÁö ÈÅÀº À©µµ¿ì·Î Àü´ÞµÇ´Â ¸Þ½ÃÁö¸¦ °¡·Îä´Â ±â¹ýÀ¸·Î ´Ù¾çÇÑ ÈÅÅ· ¹æ¹ýÁßÀÇ ÇϳªÀÌ´Ù.

¸Þ½ÃÁö ±â¹ÝÀÇ À©µµ¿ìÁî¿¡¼­´Â ¿î¿µÃ¼Á¦¿Í ÀÀ¿ë ÇÁ·Î±×·¥, ¶Ç´Â ÀÀ¿ë ÇÁ·Î±×·¥ »çÀ̳ª ÀÀ¿ë ÇÁ·Î±×·¥ ³»ºÎÀÇ ÄÁÆ®·Ñ³¢¸®µµ ¸¹Àº ¸Þ½ÃÁöµéÀ» ÁÖ°í ¹Þ´Â´Ù. ÈÅ(Hook)À̶õ ¸Þ½ÃÁö°¡ ¸ñÇ¥ À©µµ¿ì·Î Àü´ÞµÇ±â Àü¿¡ ¸Þ½ÃÁö¸¦ °¡·Îä´Â Ư¼öÇÑ ÇÁ·Î½ÃÀúÀÌ´Ù. ¿À°í °¡´Â ¸Þ½ÃÁö¸¦ °¨½ÃÇϱâ À§ÇÑ ÀÏÁ¾ÀÇ µ£(Trap)ÀÎ ¼ÀÀε¥ ÀÏ´Ü ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ÈÅ ÇÁ·Î½ÃÀú¸¦ ¼³Ä¡ÇÏ¸é ¸Þ½ÃÁö°¡ À©µµ¿ì·Î º¸³»Áö±â Àü¿¡ ÈÅ ÇÁ·Î½ÃÀú¸¦ ¸ÕÀú °ÅÄ£´Ù. ¼­ºêŬ·¡½º ÇÁ·Î½ÃÀú¿Í ¸¶Âù°¡Áö·Î ÈÅ ÇÁ·Î½ÃÀú¿¡¼­´Â ¸Þ½ÃÁö¸¦ ´Ü¼øÈ÷ »ìÆ캸±â¸¸ ÇÒ ¼öµµ ÀÖ°í ¸Þ½ÃÁö¸¦ º¯°æÇϰųª ¾Æ¿¹ ¾ø¾Ö¹ö¸± ¼öµµ ÀÖ´Ù.

ÈÅ ÇÁ·Î½ÃÀú°¡ ¾î¶² ¸Þ½ÃÁö¸¦ ¹ÞÀ» °ÍÀΰ¡´Â ÈÅÀÇ Å¸ÀÔ°ú ¹üÀ§¿¡ µû¶ó ´Þ¶óÁø´Ù. ÈŠŸÀÔÀº WH_·Î ½ÃÀ۵Ǵ ¸ÅÅ©·Î »ó¼ö·Î ÁöÁ¤Çϴµ¥ WH_MOUSE, WH_KEYBOARD µî ¿©·¯ °¡Áö°¡ ÀÖ´Ù. À̸§À¸·Î À¯ÃßÇÒ ¼ö ÀÖµíÀÌ WH_MOUSE ÈÅÀº ¸¶¿ì½º ¸Þ½ÃÁö¸¦ °¡·Îä°í WH_KEYBOARD ÈÅÀº Å°º¸µå ¸Þ½ÃÁö¸¦ °¡·Îæ´Ù. ÀÌ¿Ü¿¡µµ ¿©·¯ °¡Áö ÈŠŸÀÔÀÌ Á¤ÀǵǾî Àִµ¥ Àá½Ã ÈÄ Á¤¸®ÇØ º¼ °ÍÀÌ´Ù.

¶ÇÇÑ ÈÅÀº ¸Þ½ÃÁö¸¦ °¡·Îç ¹üÀ§¿¡ µû¶ó Áö¿ª ÈÅ(Thread Specific)°ú ½Ã½ºÅÛ Àü¿ª ÈÅ(System Wide)À¸·Î ³ª´©¾îÁø´Ù. Áö¿ª ÈÅÀº ƯÁ¤ ½º·¹µå¿¡¼­ ¹ß»ýÇÏ´Â ¸Þ½ÃÁöµé¸¸ Àü´Þ¹ÞÀ¸¸ç Àü¿ª ÈÅÀº ½Ã½ºÅÛÀÇ ¸ðµç ½º·¹µå¿¡¼­ ¹ß»ýÇÏ´Â ¸Þ½ÃÁö¸¦ °¡·Îç ¼ö ÀÖ´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ÀÚ½ÅÀÇ ¸Þ½ÃÁö¸¸ ¹Þ°í ½ÍÀ» ¶§´Â Áö¿ª ÈÅÀ» »ç¿ëÇÏ¸ç ½Ã½ºÅÛ¿¡¼­ ¹ß»ýÇÏ´Â ¸ðµç ¸Þ½ÃÁö¸¦ ¹Þ°íÀÚ ÇÒ ¶§´Â Àü¿ª ÈÅÀ» ¼³Ä¡ÇØ¾ß ÇÑ´Ù.

ÈÅ ÇÁ·Î½ÃÀú´Â ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ÀÚ½ÅÀÇ ÇÊ¿ä¿¡ µû¶ó ¾ðÁ¦µçÁö ¼³Ä¡ÇÒ ¼ö Àֱ⠶§¹®¿¡ ÇϳªÀÇ ÈŠŸÀÔ¿¡ ´ëÇØ ¿©·¯ °³ÀÇ ÈÅ ÇÁ·Î½ÃÀú°¡ Á¸ÀçÇÒ ¼öµµ ÀÖ´Ù. ±×·¡¼­ ¿î¿µÃ¼Á¦´Â ¼³Ä¡µÈ ÈÅ ÇÁ·Î½ÃÀúµéÀ» ÈŠüÀÎ(Hook Chain)À¸·Î °ü¸®ÇÑ´Ù. ÈŠüÀÎÀ̶õ ÈÅ ÇÁ·Î½ÃÀú ÇÔ¼öµéÀÇ ¹øÁö¸¦ ´ã°í ÀÖ´Â ÀÏÁ¾ÀÇ ÇÔ¼ö Æ÷ÀÎÅÍ ¹è¿­À̶ó°í ÇÒ ¼ö ÀÖ´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ÈÅ ÇÁ·Î½ÃÀú¸¦ ¼³Ä¡ÇÏ¸é ¿î¿µÃ¼Á¦´Â ÈŠüÀÎÀÇ ¼±µÎ¿¡ ÀÌ ÇÁ·Î½ÃÀú¸¦ µî·ÏÇÑ´Ù. ÈÅ ÇÁ·Î½ÃÀú°¡ °¨½ÃÇÏ´Â ¸Þ½ÃÁö°¡ ¹ß»ýÇÏ¸é ¿î¿µÃ¼Á¦´Â ÈŠüÀÎÀÇ ¼±µÎ¿¡ µî·ÏµÈ ÈÅ ÇÁ·Î½ÃÀú¿¡°Ô ÀÌ ¸Þ½ÃÁö¸¦ Àü´ÞÇÏ°í ÈÅ ÇÁ·Î½ÃÀú´Â üÀÎÀ» µû¶ó ´ÙÀ½ ÈÅ ÇÁ·Î½ÃÀú¿¡°Ô ¸Þ½ÃÁö¸¦ ¿¬¼ÓÀûÀ¸·Î Àü´ÞÇϸç Á¾±¹¿¡´Â ±× ¸Þ½ÃÁö¸¦ ¹ÞÀ» À©µµ¿ì¿¡°Ô Àü´ÞµÈ´Ù. ¹°·Ð Áß°£¿¡¼­ ¸Þ½ÃÁö°¡ º¯ÇüµÇ°Å³ª »ç¶óÁú ¼öµµ ÀÖ´Ù.

ÈÅ ÇÁ·Î½ÃÀú°¡ ¼³Ä¡µÇ¾î ÀÖÀ¸¸é ½Ã½ºÅÛÀº ¸Þ½ÃÁö°¡ ¹ß»ýÇÒ ¶§¸¶´Ù ÈÅ ÇÁ·Î½ÃÀú¿¡°Ô ¸Þ½ÃÁö¸¦ Àü´ÞÇØ ÁÖ¾î¾ß ÇÑ´Ù. ÈŠüÀο¡ ¿©·¯ °³ÀÇ ÈÅ ÇÁ·Î½ÃÀú°¡ ¼³Ä¡µÇ¾î ÀÖ´Ù¸é ¸Þ½ÃÁö´Â ÈŠüÀÎ ³»ÀÇ ¸ðµç ÈÅ ÇÁ·Î½ÃÀú¸¦ °ÅÃľ߸¸ ºñ·Î¼Ò ¸ñÇ¥ À©µµ¿ì·Î Àü´ÞµÉ ¼ö ÀÖ´Ù. ±×·¡¼­ ÈÅÀº ½Ã½ºÅÛÀÇ Àü¹ÝÀûÀÎ ¼Óµµ¸¦ ´«¿¡ ¶ç°Ô ´À¸®°Ô ¸¸µç´Ù. ªÀº ¼ø°£¿¡ ¼ö¹é °³ÀÇ ¸Þ½ÃÁö°¡ 󸮵Ǵµ¥ ÀÌ ¸Þ½ÃÁöµéÀÌ ÈÅ ÇÁ·Î½ÃÀú¸¦ ÇÑ ¹ÙÄû µ¹¾Æ¿À·Á¸é ´ç¿¬È÷ ½Ã°£ÀÌ °É¸± ¼ö¹Û¿¡ ¾ø´Ù. ÈÅÀ» »ç¿ëÇÏ´Â µð¹ö°Å³ª ½ºÆÄÀÌ µîÀÇ ÅøÀ» ¶ç¿ö ³õÀ¸¸é ½Ã½ºÅÛÀÌ ´À·ÁÁö´Â °ÍÀ» Á÷Á¢ °æÇèÇØ º» ¹Ù ÀÖÀ» °ÍÀÌ´Ù. ±×·¡¼­ ÈÅÀº ²À ÇÊ¿äÇÒ ¶§¸¸ ¼³Ä¡ÇØ¾ß ÇÏ¸ç »ç¿ëÀÌ ³¡³­ ÈÄ¿¡´Â °ð¹Ù·Î Á¦°ÅÇÏ´Â °ÍÀÌ ÁÁ´Ù.