2.8. ¼³°è¿Í ±¸Çö ÁöħÀÇ Ãâó

¸î¸î ¹®¼­µéÀº º¸¾ÈÀûÀÎ ÇÁ·Î±×·¥ ÀÛ¼º ¹æ¹ý (¶Ç´Â ´ë¾ÈÀ¸·Î ±âÁ¸ ÇÁ·Î±×·¥¿¡¼­ º¸¾È ¹®Á¦µéÀ» ã´Â ¹æ¹ý) À» ±â¼úÇϴµ¥ µµ¿òÀÌ µÇ´Âµ¥ À̵éÀÌ ÀÌ Ã¥ÀÇ ³ª¸ÓÁöºÎºÐ¿¡¼­ °­Á¶µÈ Áöħµé¿¡ ±âÃÊ°¡ µÇ¾ú´Ù.

¹ü¿ë ¼­¹ö¿Í setuid/setgid ÇÁ·Î±×·¥ÀÇ °æ¿ì´Â ¸¹Àº °¡Ä¡ÀÖ´Â ¹®¼­µéÀÌ ÀÖ´Ù. ¹°·Ð À̵鿡 ´ëÇÑ ÂüÁ¶¾øÀ̴ ã±â ¾î·Á¿î ¹®¼­µéÀÌ´Ù.

Matt Bishop [1996, 1997] Àº ÀÌ ÁÖÁ¦¿¡ ´ëÇØ ¸î¸îÀÇ Áö±ØÈ÷ °¡Ä¡ÀÖ´Â ³í¹®µé°ú ¹ßÇ¥µéÀ» ¹ßÇ¥ÇØ¿ÔÀ¸¸ç »ç½Ç ÀÌ ÁÖÁ¦¸¦ À§ÇÑ À¥ ÆäÀÌÁö http://olympus.cs.ucdavis.edu/~bishop/secprog.html ¸¦ °®°í ÀÖ´Ù. AUSCERT ´Â º¸¾ÈÀûÀÎ SUID ¹× ³×Æ®¿öÅ© ÇÁ·Î±×·¥ ÀÛ¼º ¹æ¹ýÀ» ³íÀÇÇÑ Garfinkel °ú Spafford ÀÇ Ã¥ [Garfinkel 1996] ÀÇ 23 ÀåÀÇ ºÎºÐÀûÀ¸·Î ±âÃÊÇÑ ÇÁ·Î±×·¡¹Ö üũ¸®½ºÆ® [AUSCERT 1996] ¸¦ °ø°³ÇÏ¿´´Ù. Galvin [1998a] Àº º¸¾ÈÀûÀÎ ÇÁ·Î±×·¥ °³¹ßÀ» À§ÇÑ °£´ÜÇÑ ÇÁ·Î¼¼½º¿Í üũ¸®½ºÆ®¸¦ ±â¼úÇߴµ¥ ³ªÁß¿¡ Galvin [1998b] ¿¡¼­ üũ¸®½ºÆ®¸¦ °»½ÅÇß´Ù. Sitaker [1999] ´Â ``¸®´ª½º º¸¾È °¨»çÆÀ"ÀÌ Ã£¾Æ¾ß ÇÒ ¹®Á¦Á¡µéÀÇ ¸ñ·ÏÀ» Á¦ÃâÇÏ°í ÀÖ´Ù. Shostack [1999] ´Â º¸¾È¿¡ ¹Î°¨ÇÑ ÄÚµå °ËÅ並 À§ÇÑ ´Ù¸¥ üũ¸®½ºÆ®¸¦ Á¤ÀÇÇÏ°í ÀÖ´Ù. NCSA [NCSA] ´Â ÀÏ·ÃÀÇ °£°áÇÏÁö¸¸ À¯¿ëÇÑ º¸¾ÈÀûÀÎ ÇÁ·Î±×·¡¹Ö ÁöħµéÀ» Á¦°øÇÏ°í ÀÖ´Ù. ´Ù¸¥ À¯¿ëÇÑ Á¤º¸ÀÇ ÃâóµéÀº Secure Unix Programming FAQ [Al-Herbish 1999], Security-Audit's Frequently Asked Questions [Graham 1999]¿Í Ranum [1998] µéÀÌ ÀÖ´Ù. ¾à°£ÀÇ ±Ç°í¾ÈµéÀº ÁÖÀǸ¦ °®°í ¹Þ¾Æµé¿©¾ß Çϴµ¥ ¿¹¸¦ µé¾î BSD ÀÇ setuid(7) ¸ÇÆäÀÌÁö [Unknown] ´Â º¸Åë ¼ö¹ÝµÇ´Â °æÀï »óÅ (race conditions) ¸¦ ¾ð±ÞÇÏÁö ¾Ê°í¼­ access(3) ÀÇ »ç¿ëÀ» ÃßõÇÏ°í ÀÖ´Ù. Wood [1985] ´Â ``Security for Programmers" Àå¿¡¼­ ¾à°£ À¯¿ëÇÏÁö¸¸ ¿À·¡µÈ Ãæ°í¸¦ ÇÏ°í ÀÖ´Ù. [Bellovin 1994] ´Â ftpd ±¸ÇöÀ» ¾î¶»°Ô ´õ¿í °£´ÜÇÏ°í º¸¾ÈÀûÀ¸·Î À籸ÃàÇÏ´Â °¡¿Í °°Àº À¯¿ëÇÑ Áöħµé°ú ¾à°£ÀÇ Æ¯Á¤ ¿¹¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. FreeBSD ´Â ¾à°£ÀÇ ÁöħµéÀ» Á¦°øÇÏ°í ÀÖ´Ù FreeBSD [1999]. [Quintero 1999] ´Â ±âº»ÀûÀ¸·Î GNOME ÇÁ·Î±×·¡¹Ö Áöħ¿¡ °ü½ÉÀÌ ÀÖÁö¸¸ º¸¾È °í·Á¿¡ ´ëÇÑ ÀýÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù. [Venema 1996] ´Â º¸¾ÈÀûÀÎ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§ ¾à°£ÀÇ °øÅëÀûÀÎ ¿¡·¯µé¿¡ ´ëÇÑ ¼¼ºÎÀûÀÎ ³íÀǸ¦ ¿¹¿Í ÇÔ²² Á¦°øÇÏ°í ÀÖ´Ù (³Î¸® ¾Ë·ÁÁø ¶Ç´Â ¿¹Ãø°¡´ÉÇÑ Æнº¿öµå, ¾ÇÀÇÀÖ´Â µ¥ÀÌŸ¿¡ ¼Ó¾Æ³Ñ¾î°¡±â, »ç¿ëÀÚ°¡ Á¢±Ù°¡´ÉÇÑ µ¥ÀÌŸ¿¡¼­ÀÇ ºñ¹Ð°ú ´Ù¸¥ ÇÁ·Î±×·¥¿¡ ÀÇÁ¸Çϱâ). [Sibert 1996] ´Â ¾ÇÀÇÀÖ´Â µ¥ÀÌŸ·ÎºÎÅÍ »ý±â´Â À§ÇùµéÀ» ±â¼úÇÏ°í ÀÖ´Ù.

À¥À» ¹æÇØÇÏ´Â CGI (Common Gateway Interface) ¸¦ »ç¿ëÇÑ ÇÁ·Î±×·¥µé¿¡ ´ëÇÑ º¸¾È ÁöħµéÀ» Á¦°øÇÏ´Â ¸¹Àº ¹®¼­µéÀÌ ÀÖ´Ù. À̵éÀº Van Biesbrouck [1996], Gundavaram [unknown], [Garfinkel 1997], Kim [1996], Phillips [1995] Stein [1999], [Peteanu 2000] ¿Í [Advosys 2000] µéÀ» Æ÷ÇÔÇÑ´Ù.

¾ð¾î¿¡ °íÀ¯ÇÑ ¸¹Àº ¹®¼­µéµµ Àִµ¥ ÀÌ´Â ÀÌ Ã¥ÀÇ ¾ð¾î¿¡ ƯÁ¤ÀûÀÎ Àý¿¡¼­ ´õ¿í ³íÀǵȴÙ. ¿¹¸¦ µé¾î ÆÞ ¹èÆ÷ÆÇÀº perlsec(1) À» Æ÷ÇÔÇϴµ¥ ÀÌ´Â ÆÞÀ» ´õ¿í º¸¾ÈÀûÀ¸·Î »ç¿ëÇÏ´Â ¹æ¹ýÀ» ±â¼úÇÏ°í ÀÖ´Ù. Secure Internet Programming »çÀÌÆ®ÀÎ http://www.cs.princeton.edu/sip ´Â ÀϹÝÀûÀÎ º¸¾È ÄÄÇ»ÅÍ º¸¾È ¹®Á¦¿¡ °ü°èµÇ¾î ÀÖÁö¸¸ ÀÚ¹Ù, ¾×ƼºêX (ActiveX) ¿Í ÀÚ¹Ù½ºÅ©¸³Æ®¿Í °°Àº ¸ð¹ÙÀÏ ÄÚµå ½Ã½ºÅÛ¿¡µµ ÁßÁ¡À» µÎ°í ÀÖ´Ù; Ed Felten Àº 9.6Àý ¿¡¼­ ³íÀǵǴ ÀÚ¹Ù¸¦ ¾ÈÀüÇÏ°Ô Çϱâ ([McGraw 1999]) ¿¡ ´ëÇÑ Ã¥À» °øµ¿ ÀÛ¼ºÇß´Ù. ½ã»çÀÇ º¸¾È ÄÚµå ÁöħµéÀº º»ÁúÀûÀ¸·Î ÀÚ¹Ù¿Í C ¿¡ ´ëÇÑ ¾à°£ÀÇ ÁöħµéÀ» Á¦°øÇÏ°í Àִµ¥ ÀÌ´Â http://java.sun.com/security/seccodeguide.html ¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù.

Yoder [1998] Àº ¾ÖÇø®ÄÉÀÌ¼Ç º¸¾ÈÀ» ´Ù·ê ¶§ »ç¿ëµÇ´Â ÆÐÅϵéÀÇ ÁýÇÕÀ» Æ÷ÇÔÇÏ°í Àִµ¥ ÀÌ´Â ½ÇÁ¦ ÀÏ·ÃÀÇ Æ¯º°ÇÑ ÁöħÀ̶ó±â º¸´Ù´Â ÇÁ·Î±×·¡¹ÖÀ» À§ÇØ À¯¿ëÇÏ´Ù°í »ý°¢µÉ ¼ö ÀÖ´Â °øÅëÀûÀ¸·Î »ç¿ëµÇ´Â ÀÏ·ÃÀÇ ÆÐÅϵéÀÌ´Ù. Schmoo ±×·ìÀº http://www.shmoo.com/securecode ¿¡ º¸¾ÈÀûÀÎ ÄÚµå ÀÛ¼º ¹æ¹ý¿¡ ´ëÇÑ Á¤º¸¸¦ ¸µÅ©ÇÏ°í ÀÖ´Â À¥ ÆäÀÌÁö¸¦ °ü¸®ÇÏ°í ÀÖ´Ù.

´Ù¸¥ °üÁ¡ (¿¹ ½Ã½ºÅÛÀ» Å©·¢ÇÏ´Â ¹æ¹ý) ¿¡¼­ ¹®Á¦Á¡µéÀ» ±â¼úÇÏ°í ÀÖ´Â ¸¹Àº ¹®¼­µéÀÌ ÀÖ´Ù. ÇÑ ¿¹´Â McClure [1999] ·Î ÀÎÅͳݿ¡´Â ÀÌ ÀÔÀåÀ¸·Î ¹Ù¶ó º» ¼¿ ¼ö ¾øÀ» ¸¸Å­ ¸¹Àº ÀÚ·áµéÀÌ ÀÖ´Ù. ÄÄÇ»ÅÍ ¾ÆÅ°ÅØÃĸ¦ ¾Ç¿ëÇϱâ À§ÇØ ¾î¶² °ø°ÝÀ» ÇؾßÇÏ´Â °¡¿¡ ´ëÇØ ÄÄÇ»ÅÍ ¾ÆÅ°ÅØó¿¡ °üÇÑ ´õ¿í ÀϹÝÀûÀÎ ¹®¼­µµ ÀÖ´Ù (¿¹, [LSD 2001]). Honeynet ÇÁ·ÎÁ§Æ®´Â °ø°ÝÀÚ°¡ ½ÇÁ¦ ¾î¶² °ø°ÝÀ» ¼öÇàÇÏ´Â °¡¿¡ ´ëÇÑ Á¤º¸¸¦ ¼öÁýÇØ ¿Ô´Ù; ´õ¿í ÀÚ¼¼ÇÑ Á¤º¸´Â À¥ »çÀÌÆ® http://project.honeynet.org ¸¦ º¸¶ó.

¶ÇÇÑ ±âÁ¸ ÇÁ·Î±×·¥¿¡¼­ ÀÌ¹Ì È®ÀÎµÈ Ãë¾à¼º¿¡ ´ëÇÑ ¸¹Àº Á¤º¸µéµµ ÀÖ´Ù. ÀÌ´Â ¸¹Àº ƯÁ¤ ¿¹µé·ÎºÎÅÍ ´õ¿í ÀϹÝÀûÀÎ ÁöħµéÀ» ÃßÃâÇϴµ¥ ¸¹Àº ³ë·ÂÀÌ µé¾î°¨¿¡µµ ºÒ±¸ÇÏ°í ``ÇÏÁö ¸»¾Æ¾ß ÇÒ °Í"¿¡ ´ëÇÑ ÀÏ·ÃÀÇ À¯¿ëÇÑ ¿¹µéÀÏ ¼ö ÀÖ´Ù. º¸¾È ÀïÁ¡µéÀ» ³íÀÇÇÏ´Â ¸ÞÀϸµ ¸®½ºÆ®µéµµ ÀÖ´Ù; °¡Àå ³Î¸® ¾Ë·ÁÁø °Í ÁßÀÇ Çϳª´Â Bugtraq À¸·Î ¹«¾ùº¸´Ùµµ Ãë¾à¼º ¸ñ·ÏÀ» ¹ßÀü½ÃÅ°°í ÀÖ´Ù. CERT Coordination Center (CERT/CC) ´Â ÀÎÅÍ³Ý º¸¾È ¹®Á¦µé¿¡ ´ëÇØ Ãë¾à¼ºÀ» º¸°íÇÏ´Â ÁÖ¿ä º¸°í ¼¾ÅÍ·Î °¡²û ÆÐÄ¡ ¶Ç´Â Âø¼öÇÑ ÀÛ¾÷ÀÇ ¼¼ºÎ»çÇ×µéÀ» ¾ò´Â ¹æ¹ý¿¡ ´ëÇÑ Áö½Ã¿Í ÇÔ²² ½É°¢ÇÑ º¸¾È ¹®Á¦¿Í ÀÌÀÇ ¿µÇâÀ» ¼³¸íÇÏ´Â ±Ç°í¾ÈÀ» ³»³õ°í ÀÖ´Ù; ´õ¿í ÀÚ¼¼ÇÑ Á¤º¸´Â http://www.cert.org/ ¸¦ º¸¶ó. ¿ø·¡ CERT ´Â ¼Ò±Ô¸ð ÄÄÇ»ÅÍ ÀÀ±Þ ´ëÃ¥ÆÀÀ̾úÁö¸¸ °ø½ÄÀûÀ¸·Î CERT ´Â ÇöÀç À̸¦ ÀǹÌÇÏÁö ¾ÊÀ½À» ÁÖ¸ñÇضó. ³ëµ¿ºÎ (Department of Energy, ¿¡³ÊÁöºÎ) ÀÇ Computer Incident Advisory Capability (CIAC) µµ ¶ÇÇÑ Ãë¾à¼ºÀ» º¸°íÇÏ°í ÀÖ´Ù. ÀÌ·¯ÇÑ ¿©·¯ ±×·ìµéÀº µ¿ÀÏÇÑ Ãë¾à¼ºÀ» ½Äº°ÇÒ ¼öµµ ÀÖÁö¸¸ ´Ù¸¥ À̸§À» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ÀÌ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ MITRE ´Â ¸ðµç °ø°³ÀûÀ¸·Î ¾Ë·ÁÁø Ãë¾à¼º°ú ´Ù¸¥ »ç¶÷¿¡ ÀÇÇØ È®ÀÎµÈ º¸¾È Àû¹ß (exposure) ¿¡ ´ëÇØ À¯ÀÏÇÑ °íÀ¯ ½Äº°ÀÚ (``À̸§") ¸¦ ¸¸µå´Â CVE (Common Vulnerabilities and Exposures) ¸ñ·ÏÀ» ÁöÁöÇÏ°í ÀÖ´Ù; http://www.cve.mitre.org/ ¸¦ º¸¶ó. NIST ÀÇ ICAT ´Â °Ë»ö°¡´ÉÇÑ ÄÄÇ»ÅÍ Ãë¾à¼ºµéÀÇ ¸ñ·ÏÀ¸·Î °¢ CVE Ãë¾à¼ºÀ» °®°í À̵鿡 ´ëÇÑ ¸ñ·ÏÀ» ÀÛ¼ºÇÔÀ¸·Î½á ³ªÁß¿¡ °Ë»ö ¹× ºñ±³µÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù; http://csrc.nist.gov/icat ¸¦ º¸¶ó.

ÀÌ Ã¥Àº ÀúÀÚ°¡ ¹Ï±â¿¡ °¡Àå À¯¿ëÇÏ°í Áß¿äÇÑ ÁöħµéÀÇ ¿ä¾ÇÀÌ´Ù; ÀúÀÚÀÇ ¸ñÀûÀº ÈǸ¢ÇÑ ÇÁ·Î±×·¡¸Ó°¡ ±×Àú ÀÌ Ã¥À» ÀÐÀº ÈÄ º¸¾ÈÀûÀÎ ÇÁ·Î±×·¥À» ±¸ÇöÇϴµ¥ Àß Áغñ°¡ µÇ¾î ÀÖµµ·Ï Çϴµ¥ ÀÖ´Ù. ¾î¶°ÇÑ ÇϳªÀÇ ¹®¼­µµ ½ÇÁ¦ ÀÌ ¸ñÀûÀ» ÃæÁ·½Ãų ¼ö´Â ¾øÁö¸¸ ÀúÀÚ´Â ½ÃµµÇÒ ¸¸ÇÑ´Ù°í ¹Ï´Â´Ù. ÀúÀÚÀÇ ¸ñÀûÀº ``ÀÚÁÖ µÇÇ®À̵ǰí ÀÌÇØÇϱ⠾î·Á¿î ¸ðµç °¡´ÉÇÑ ÁöħµéÀÇ ¿Ïº®ÇÑ ¸ñ·Ï"°ú ``ÈǸ¢ÇÏ°í ªÁö¸¸ ¸¹Àº Áß´ëÇÑ ¹®Á¦µéÀ» »ý·«ÇÑ ¿Â¶óÀλ󿡼­ ¾òÀ» ¼ö ÀÖ´Â ¸¹Àº ªÀº ¸ñ·Ï"»çÀÌÀÇ ±ÕÇü¿¡ µµ´ÞÇÏ´Â °ÍÀÌ´Ù. ºÒÈ®½ÇÇÒ ¶§´Â º»º¸±â¸¦ Æ÷ÇÔÇÑ´Ù; ÀúÀÚ´Â ±×·± °æ¿ì ÀÌ ``one stop shop" ¹®¼­³»¿¡¼­ ¸ðµç »ç¶÷¿¡°Ô µµ¿òÀÌ µÇ´Â Á¤º¸¸¦ ¸¸µå´Â °ÍÀÌ °¡Àå ÁÁ´Ù°í ¹Ï°í ÀÖ´Ù. ÀÌ Ã¥Àº ÀúÀÚ ½º½º·Î ±¸¼ºÇÑ °ÍÀ¸·Î (¸ðµç ¸®½ºÆ®´Â ÀڽŸ¸ÀÇ ´Ù¸¥ ±¸Á¶¸¦ °®´Â´Ù) ÁöħµéÀÇ ÀϺΠ(´É·Âµé°ú fsuid °ª¿¡ ´ëÇÑ °Íµé°ú °°Àº ƯÈ÷ ¸®´ª½º °íÀ¯ÀÇ °Íµé) µµ ½º½º·Î ¸¸µç °ÍÀÌ´Ù. À§¿¡ ¿­°ÅµÈ ¸ðµç ÂüÁ¶µÈ ¹®¼­µéÀ» Àд °Í ¶ÇÇÑ °­·ÂÈ÷ ÃßõÇÑ´Ù.