SQL Injection°ø°ÝÀ¸·Î ÀÎÇÑ È¨ÆäÀÌÁö ³» ¾Ç¼ºÄÚµå »ðÀÔÇÇÇØ ÁÖÀÇ¿ä¸Á
¡à °³¿ä
o ÃÖ±Ù Windows ±â¹Ý À¥»çÀÌÆ®¸¦ ´ë»óÀ¸·Î SQL Injection Ãë¾àÁ¡À» °ø°ÝÇÏ´Â ÇØÅ·µµ±¸¸¦ ÅëÇØ µ¥ÀÌÅͺ£À̽º³»¿¡ ¾Ç¼ºÄڵ带 ´ë·®À¸·Î »ðÀÔÇÏ´Â »ç·Ê°¡ ºó¹øÈ÷ ¹ß»ýÇÏ°í ÀÖ¾î ȨÆäÀÌÁö °ü¸®ÀÚµéÀÇ °¢º°ÇÑ ÁÖÀÇ°¡ ¿ä±¸µÊ ¡Ø ÇØ´ç ÇØÅ·µµ±¸´Â ÀϺΠÀ¥ º¸¾È ÀåºñÀÇ º¸¾È±â´ÉÀ» ¿ìȸÇÒ ¼öµµ ÀÖÀ¸¹Ç·Î ÁÖÀÇ°¡ ÇÊ¿ä
¡à ÇÇÇØ Çö»ó
o ȨÆäÀÌÁö Ãʱâȸ鿡 Á¤Àû(Static)À¸·Î ¾Ç¼ºÄڵ尡 Àº´ÐµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó, µ¥ÀÌÅͺ£À̽º ³» ¾Ç¼ºÄÚµå ¸µÅ©¸¦ »ðÀÔÇÔÀ¸·Î½á ÇØ´ç µ¥ÀÌÅͺ£À̽º¿Í ¿¬µ¿µÈ °Ô½ÃÆÇ, »óÇ°Á¤º¸ µî À¥ ÆäÀÌÁö¿¡ ¾Ç¼ºÄڵ尡 µ¿Àû(Dynamic)À¸·Î »ðÀÔµÊ
¡à ¿øÀÎ
o °Ô½ÃÆÇÀ̳ª ȸ¿ø ÀÎÁõ µî À¥¼ºñ½º¿Í µ¥ÀÌÅͺ£À̽º°¡ ¿¬µ¿µÇ´Â ºÎºÐ¿¡¼ Àü´ÞµÇ´Â ÀÎÀÚ°ª¿¡ ´ëÇÑ °ËÁõÀýÂ÷ ºÎÀç·Î ÀÎÇØ ¾ÇÀÇÀûÀÎ SQL ¸í·É¾î ÁÖÀÔÀÌ °¡´ÉÇÏ°Ô µÊ (SQL Injection Ãë¾àÁ¡)
o ƯÈ÷, ÃÖ±Ù¿¡´Â À¥ »çÀÌÆ®¸¦ ÅëÇØ À¯Æ÷µÇ´Â ¾Ç¼ºÄÚµå´Â ÄíÅ° µî HTTP Çì´õÁ¤º¸¸¦ ÅëÇؼµµ »ðÀԵǰí ÀÖ°í, ÀϺΠÀ¥ º¸¾ÈÀåºñÀÇ º¸¾È±â´ÉÀ» ¿ìȸÇÒ ¼öµµ ÀÖÀ¸¹Ç·Î °¢º°ÇÑ ÁÖÀÇ°¡ ÇÊ¿ä
¡à (ÇÇÇØ ¹ß»ý½Ã) º¹±¸¹æ¹ý
o µ¥ÀÌÅͺ£À̽º ¹é¾÷º» »ç¿ë - µ¥ÀÌÅͺ£À̽º ¹é¾÷º»ÀÌ ÀÖÀ» °æ¿ì º¹±¸¿¡ È°¿ë
o ¾Ç¼ºÄڵ尡 »ðÀÔµÈ Å×À̺íÀ» ¸ðµÎ ã¾Æ SQL¸í·É¹®À¸·Î º¹±¸ - ¹Ýµå½Ã µ¥ÀÌÅͺ£À̽º °ü¸®ÀÚ/°³¹ßÀÚ¿Í ÃæºÐÈ÷ °ËÅäÇÑ ÈÄ¿¡ Àû¿ë ¿ä¸Á - ÀÚ·áÇü º¯È¯ÀÌ ÇÊ¿ä ¾ø´Â °æ¿ì replaceÇÔ¼ö¸¸À¸·Î º¹±¸ °¡´É
Update [Å×À̺í¸í] set [Ä÷³¸í]=replace([Ä÷³¸í],
¡®[»èÁ¦ÇÏ°íÀÚÇÏ´Â ¾Ç¼ºÄÚµå ¹®ÀÚ¿]¡¯, ¡®¡¯)
¿¹> Update freebbs set title=replace(title,¡® , ¡®¡¯) |
- ÀÚ·áÇü º¯È¯ÀÌ ÇÊ¿äÇÑ °æ¿ì´Â castÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© º¹±¸
Update [Å×À̺í¸í] Set [Ä÷³¸í] = replace(cast([ÄÃ
·³¸í] as varchar(8000)), ¡®[»èÁ¦ÇÏ°íÀÚÇÏ´Â ¾Ç¼ºÄÚµå ¹®ÀÚ¿]¡¯, ¡®¡¯)
¿¹> Update freebbs Set contents =
replace(cast(contents as varchar(8000)),¡® , ¡®¡¯) | ¡Ø Ä÷³ÀÇ ÀÚ·áÇü(data type)ÀÌ ntext, image µîÀÎ °æ¿ì castÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÀÚ·áÇü º¯È¯ ÈÄ replace°¡´ÉÇÏÁö¸¸, replace¸¦ À§ÇÑ º¯¼ö °ø°£(varchar(8000)) º¸´Ù Å« ÀÚ·áÀÇ °æ¿ì ÀÚ·á ¼Õ½ÇÀÌ ¹ß»ý ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÁÖÀÇ ¿ä¸Á. MS SQL 2005 À̻󿡼´Â varchar(max)»ç¿ë °¡´É
- MS SQL ¼¹ö¿¡¼ »ç¿ëÇÏ´Â Å«°ª ÀÚ·áÇü ÂüÁ¶ ÀÚ·á [1] Å« °ª ÀÚ·áÇü ¼³¸í: http://msdn.microsoft.com/ko-kr/library/ms178158.aspx [2] UPDATETEXT ¼³¸í: http://msdn.microsoft.com/ko-kr/library/ms189466.aspx
¡à ¿¹¹æ´ëÃ¥
o ±Ùº»ÀûÀÎ ÇØ°áÀ» À§ÇØ ¸ðµç º¯¼ö°ª¿¡ À¯È¿°ª °ËÁõ ÀýÂ÷ Àû¿ë
o À¥»çÀÌÆ®¿¡¼ »ç¿ëÇÏ´Â DB±ÇÇÑÀÇ ÃÖ¼ÒÈ ¹× SA°èÁ¤ »ç¿ë Á¦ÇÑ µîÀÇ SQL¼¹ö ÃÖÀûÈ
o À¥ º¸¾È ¼Ö·ç¼Ç µµÀÔ ¹× Á¤Ã¥ ÃÖÀûÈ - MS URLscan °ü·Ã ÀÚ·á [1] URLscan »ç¿ë¹æ¹ý: http://support.microsoft.com/kb/326444/ko [2]URLscan´Ù¿î·Îµå :http://www.microsoft.com/downloads/details.aspx?amilyId=EE41818F-3363-4E24-9940-21603531989&displaylang=en ¡Ø URLscanÀº À¥¹æȺ®°ú À¯»çÇÏ¸ç ¼¹ö·Î Àü´ÞµÇ´Â °ªµéÀÇ ÇÊÅ͸µ ±â´ÉÀÌ Áö¿øµÊ
- °ø°³À¥¹æȺ® °ü·Ã ÀÚ·á
[1] »ç¿ëÀÚ Ä¿¹Â´ÏƼ: www.securenet.or.kr > ¿¸°Áö½Ä > °ø°³À¥¹æȺ®Ä¿¹Â´ÏƼ ¡Ø WebKnight¿¡¼´Â Çì´õ¼³Á¤ÀÇ Injection°ø°Ý Â÷´ÜÀÌ ¼³Á¤µÇ¾î ÀÖ¾î¾ß Â÷´Ü °¡´ÉÇϸç, ¿ÀŽ¹ß»ýÀÌ ¿¹»óµÇ¹Ç·Î, Àû¿ë ÈÄ ÀÏÁ¤±â°£ ¸ð´ÏÅ͸µ ÇÊ¿ä
o À¥»çÀÌÆ® º¸¾È °È °¡À̵å - À¥º¸¾È 4Á¾ °¡À̵å: www.KrCERT.or.krÁ¢¼Ó > À¥º¸¾È 4Á¾ °¡À̵å
o À¥»çÀÌÆ® Ãë¾àÁ¡ Á¡°Ë - KISA ¹«·á À¥Ãë¾àÁ¡Á¡°Ë ¼ºñ½º http://webcheck.krcert.or.kr
¡Ø ºñ¿µ¸®´Üü ¶Ç´Â Áß¼Ò±â¾÷µîÀÇ Á¤º¸º¸È£Ãë¾à°èÃþ¸¸ ¼ºñ½º ´ë»óÀÓ
- MS ¼Ò½ºÄÚµå °Ë»ç µµ±¸:¡¡http://support.microsoft.com/default.aspx/kb/954476 - HP Á¡°Ë µµ±¸: http://www.communities.hp.com/securitysoftware/blogs/spilabs/archive/2008/06/23/finding-sql-injection-with-scrawlr.aspx
o MS SQL¼¹ö¿¡¼ sysobjects ¶Ç´Â syscolumns ±ÇÇÑÀ» Á¦°ÅÇÏ¿© ¾Ç¼ºÄÚµå »ðÀÔ ½ºÅ©¸³Æ® ½ÇÇàÀ» Â÷´ÜÇÒ ¼ö ÀÖÀ¸³ª, ¿î¿µ ȯ°æ¿¡ µû¶ó Àû¿ë È¿°ú¿¡ Â÷ÀÌ°¡ ÀÖÀ¸¹Ç·Î ÃßÈÄ¿¡ ¹èÆ÷µÉ ±â¼ú¹®¼¿¡¼ ¾È³»¿¹Á¤
¡à Âü°í»çÀÌÆ®
[1] http://isc.sans.org/diary.html?storyid=3823 [2] http://isc.sans.org/diary.html?storyid=5092 [3] http://www.modsecurity.org/blog/archives/2008/01/sql_injection_a.html [4] http://www.computerworld.com/action/article.do?command=viewArticleBasic&taxonomyId=16&articleId=9055858&intsrc=hm_topic [5] http://www.trustedsource.org/blog/142/New-SQL-Injection-Attack-Infecting-Machines [6] http://www.f-secure.com/weblog/archives/00001432.html
|