1Àå. ¼Ò°³

 

A wise man attacks the city of the mighty and pulls down the stronghold in which they trust.

 Proverbs 21:22 (NIV)

ÀÌ Ã¥Àº ¸®´ª½º¿Í À¯´Ð½º ½Ã½ºÅÛ¿¡¼­ º¸¾ÈÀûÀÎ ÇÁ·Î±×·¥À» ÀÛ¼ºÇϱâ À§ÇÑ ÀÏ·ÃÀÇ ¼³°è ¹× ±¸Çö ÁöħµéÀ» ±â¼úÇÑ´Ù. ÀÌ Ã¥ÀÇ ¸ñÀûÀ» À§ÇØ º¸¾ÈÀûÀÎ (secure) ÇÁ·Î±×·¥À» º¸¾È °æ°è¿¡ Á¸ÀçÇÏ¿© ÇÁ·Î±×·¥°ú µ¿ÀÏÇÑ ±ÇÇÑÀ» °®Áö ¾Ê´Â Ãâó·ÎºÎÅÍ ÀÔ·ÂÀ» ¹Þ¾ÆµéÀÌ´Â ÇÁ·Î±×·¥À¸·Î Á¤ÀÇÇÒ ¼ö Àִµ¥ À̵é·Î´Â ¿ø°Ý ºä¾î·Î »ç¿ëµÇ´Â ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·Î±×·¥, CGI ½ºÅ©¸³Æ®¸¦ Æ÷ÇÔÇÑ À¥ ¾ÖÇø®ÄÉÀ̼Ç, ³×Æ®¿öÅ© ¼­¹ö¿Í setuid/setgid ÇÁ·Î±×·¥µéÀÌ ÀÖ´Ù. ÀÌ Ã¥¿¡¼­ ³íÀǵǴ ¿ø¸®µéÁß ´Ù¼ö°¡ Àû¿ëµÊ¿¡µµ ºÒ±¸ÇÏ°í ¿î¿µ üÁ¦ÀÇ Ä¿³Î ÀÚü¸¦ ¼öÁ¤ÇÏ´Â °ÍÀ» ´Ù·çÁö´Â ¾Ê´Â´Ù. ÀÌ ÁöħµéÀº ÀúÀÚ°¡ Ãß°¡ÇÑ ÀÇ°ß°ú ÇÔ²² º¸¾ÈÀûÀÎ ÇÁ·Î±×·¥µéÀ» ¸¸µå´Â ¹æ¹ý¿¡ ´ëÇÑ ´Ù¾çÇÑ Ãâóµé·ÎºÎÅÍ ¹è¿î ±³ÈƵéÀ» Á¶»çÇÔÀ¸·Î½á °³¹ßµÇ¾úÀ¸¸ç ÀÏ·ÃÀÇ ´õ¿í Ä¿´Ù¶õ ¿ø¸®µé·Î À籸¼ºµÇ¾ú´Ù. ÀÌ Ã¥Àº C, C++, ÀÚ¹Ù, ÆÞ, PHP, ÆÄÀ̽ã, TCL °ú Ada95 ¸¦ Æ÷ÇÔÇÑ ¸¹Àº ¾ð¾îµé¿¡ ´ëÇÑ ±¸Ã¼ÀûÀÎ ¾È³»¸¦ Æ÷ÇÔÇÑ´Ù.

ÀÌ Ã¥Àº º¸Áõ Á¶Ä¡, ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î¸µ ÇÁ·Î¼¼½º¿Í Ç°Áú º¸Áõ ¹æ¹ýÀ» ´Ù·çÁö´Â ¾Ê´Âµ¥ ÀÌ´Â Áß¿äÇÏÁö¸¸ ´Ù¸¥ °÷¿¡ ±¤¹üÀ§ÇÏ°Ô ³íÀǵǾî Àֱ⠶§¹®ÀÌ´Ù. ±×·¯ÇÑ Á¶Ä¡µé·Î´Â °Ë»ç, ÀÚ¼¼ÇÑ °ËÅä (peer review), ¼³Á¤ °ü¸®¿Í Çй®ÀûÀÎ (formal) ¹æ¹ýµéÀÌ Àִµ¥ º¸¾È ¹®Á¦¿¡ ´ëÇÑ ÀÏ·ÃÀÇ ¹ßÀüÇÏ°í ÀÖ´Â º¸Áõ Á¶Ä¡µéÀ» ¸íÈ®ÇÏ°Ô ºÐ°£ÇÏ´Â ¹®¼­µé·Î´Â Common Criteria [CC 1999] ¿Í System Security Engineering Capability Maturity Model [SSE-CMM 1999] µéÀÌ ÀÖ´Ù. ÀÏ·ÃÀÇ ´õ¿í ÀϹÝÀûÀÎ ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î¸µ ¹æ¹ý ¶Ç´Â ÇÁ·Î¼¼½ºµéÀº Software Engineering Institute's Capability Maturity Model for Software (SE-CMM) [Paulk 1993a, 1993b] °ú ISO 12207 [ISO 12207] °ú °°Àº ¹®¼­µé³»¿¡ Á¤ÀǵǾî ÀÖ´Ù. Ç°Áú ½Ã½ºÅÛ¿¡ ´ëÇÑ ÀϹÝÀûÀÎ ±¹Á¦Àû Ç¥ÁØÀº ISO 9000 °ú ISO 9001 [ISO 9000, 9001] ³»¿¡ Á¤ÀǵǾî ÀÖ´Ù.

ÀÌ Ã¥Àº ÁÖ¾îÁø ȯ°æ¿¡¼­ ½Ã½ºÅÛ ¶Ç´Â ³×Æ®¿öÅ©¸¦ º¸¾ÈÀûÀ¸·Î ¼³Á¤ÇÏ´Â ¹æ¹ýÀ» ³íÀÇÇÏÁö´Â ¾Ê´Â´Ù. ÀÌ°ÍÀÌ ÁÖ¾îÁø ÇÁ·Î±×·¥À» º¸¾ÈÀûÀ¸·Î »ç¿ëÇϱâ À§Çؼ­´Â ºÐ¸íÈ÷ ÇÊ¿äÇÏÁö¸¸ ¸Å¿ì ¸¹Àº ´Ù¸¥ ¹®¼­µéÀÌ º¸¾ÈÀûÀÎ ¼³Á¤À» ³íÀÇÇÏ°í ÀÖ´Ù. À¯´Ð½º °è¿­ ½Ã½ºÅÛÀ» º¸¾ÈÀûÀ¸·Î ¼³Á¤ÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ¿ì¼öÇÑ ÀÏ¹Ý Ã¥À¸·Î´Â Garfinkel [1996] ÀÌ ÀÖÀ¸¸ç À¯´Ð½º °è¿­ ½Ã½ºÅÛÀ» ¾ÈÀüÇÏ°Ô Çϱâ À§ÇÑ ´Ù¸¥ Ã¥À¸·Î´Â Anonymous [1998] °¡ ÀÖ´Ù. ¶ÇÇÑ http://www.unixtools.com/security.html ¿Í °°Àº À¥ »çÀÌÆ®¿¡¼­ À¯´Ð½º °è¿­ ½Ã½ºÅÛ ¼³Á¤¿¡ °üÇÑ Á¤º¸¸¦ ãÀ» ¼ö ÀÖ´Ù. ¸®´ª½º ½Ã½ºÅÛÀÇ º¸¾ÈÀû ¼³Á¤¿¡ ´ëÇÑ Á¤º¸´Â Fenzi [1996], Seifried [1999], Wreski [1998], Swan [2001] °ú Anonymous [1999] ¸¦ Æ÷ÇÔÇÑ ±¤¹üÀ§ÇÑ ¹®¼­µé¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù. Geodsoft [2001] Àº OpenBSD ¸¦ °­È­ÇÏ´Â ¹æ¹ýÀ» ±â¼úÇÏ°í Àִµ¥ ¸¹Àº Á¦¾ÈµéÀº ¸ðµç À¯´Ð½º °è¿­ ½Ã½ºÅÛ¿¡ ´ëÇØ À¯¿ëÇÏ´Ù. ¸®´ª½º ½Ã½ºÅÛ (°á±¹ ´Ù¸¥ À¯´Ð½º °è¿­ ½Ã½ºÅÛ) ÀÇ °æ¿ì ¸®´ª½º ¿î¿µÃ¼Á¦¸¦ °­È­ ¶Ç´Â ´Ü·Ã½ÃÅ°·Á°í ÇÏ´Â Bastille °­È­ ½Ã½ºÅÛÀÇ °ËÅ並 ¿øÇÒ ¼öµµ Àִµ¥ ÀÌ¿¡ °üÇؼ­´Â http://www.bastille-linux.org ¿¡¼­ ´õ¿í ¸¹Àº °ÍÀ» ¹è¿ï ¼ö ÀÖ´Ù. ÀÌ´Â GPL (General Public License) ¶óÀ̼¾½º·Î ¹«·á·Î ¾òÀ» ¼ö ÀÖ´Ù. À©µµ¿ì 2000 ÀÇ °æ¿ì´Â Cox [2000] À» »ìÆ캼 ¼ö ÀÖ´Ù.

ÄÄÇ»Å͸¦ ¼³Á¤ÇÏ´Â °ÍÀº ¹ÙÀÌ·¯½º¿¡ ¾î¶»°Ô ´ëóÇϴ°¡, ¾î¶² Á¾·ùÀÇ Á¶Á÷»óÀÇ º¸¾È Á¤Ã¥ÀÌ ÇÊ¿äÇÑ°¡, »ç¾÷ÀÇ ¿¬¼Ó¼º °èȹ µîÀ» Æ÷ÇÔÇÏ´Â ´õ¿í Å« ¿µ¿ªÀÎ º¸¾È °ü¸®ÀÇ ´ÜÁö ÀϺκÐÀÌ´Ù. º¸¾È °ü¸®¸¦ À§ÇØ ±¹Á¦Àû Ç¥ÁØ ¹× ±æÀâÀÌ µéÀÌ ÀÖ´Ù. ISO 13335 ´Â º¸¾È °ü¸®¿¡ ´ëÇÑ ±æÀâÀÌ ¿ªÇÒÀ» ÇÏ´Â ´Ù¼¸ ºÎºÐÀ¸·Î ±¸¼ºµÈ ±â¼úÀû º¸°í¼­ÀÌ´Ù [ISO 13335]. ¶ÇÇÑ ISO/IEC 17799:2000 Àº ½ÇÁ¦ °ü·Ê¸¦ Á¤ÀÇÇÏ°í ÀÖ´Ù [ISO 17799]; ±× °øÇ¥µÈ ¸ñÀûÀº ``Á¶Á÷³»¿¡¼­ º¸¾È ¹ßÀÇ, ±¸Çö ¶Ç´Â À¯ÁöÇϴ åÀÓÀ» Áö´Â »ç¶÷µéÀÌ »ç¿ëÇϵµ·Ï Á¤º¸ º¸¾È °ü¸®¸¦ À§ÇÑ ±Ç°í¸¦ ÁÖ´Â °ÍÀÌ´Ù" (´ë·«ÀûÀÎ Àǹ̿¡¼­ ÀÌ´Â ±â¼ú ¹®¼­´Â ¾Æ´Ï´Ù). ISO/IEC 17799:2000 ÀÌ ¸Å¿ì ³íÀÇÀÇ ¿©Áö°¡ ÀÖÀ½À» ¾ð±ÞÇÏ´Â °ÍÀº °¡Ä¡°¡ ÀÖ´Ù; º§±â¿¡, ij³ª´Ù, ÇÁ¶û½º, µ¶ÀÏ, ÀÌÅ»¸®¾Æ, ÀϺ»°ú ¹Ì±¹Àº ÀÌÀÇ Ã¤Åÿ¡ ¹Ý´ë ÅõÇ¥¸¦ Çß´Ù. ÀÌ ³íÀï¿¡ ´ëÇÑ ´õ¿í ÀÚ¼¼ÇÑ Á¤º¸´Â NIST ÀÇ ISO/IEC 17799:2000 FAQ ¸¦ º¸¶ó. http://www.caspr.org ÀÇ Commonly Accepted Security Practices & Recommendations (CASPR) ÇÁ·ÎÁ§Æ®´Â Á¤º¸ º¸¾È Áö½Ä¿¡¼­ ¸ðµç »ç¶÷ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Â ÀÏ·ÃÀÇ ³í¹®À» ¸¸µé·Á°í ÇÏ°í ÀÖ´Ù (GNU FDL ¶óÀ̼¾½ºÇÏ¿¡¼­ ÇÔÀ¸·Î½á ÃßÈÄ ÆÄ»ý ¹®¼­µµ ¸ðµç »ç¶÷ÀÌ °è¼Ó »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù).

ÀÌ Ã¥Àº µ¶ÀÚ°¡ ÀϹÝÀûÀÎ ÄÄÇ»ÅÍ º¸¾È ¹®Á¦, À¯´Ð½º °è¿­ ½Ã½ºÅÛÀÇ ÀϹÝÀûÀÎ º¸¾È ¸ðµ¨, ³×Æ®¿öÅ· (ƯÈ÷ TCP/IP ±â¹Ý ³×Æ®¿öÅ©) °ú C ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ ÀÌÇØÇÏ°í ÀÖ´Ù°í °¡Á¤ÇÏ¸ç º¸¾È ¸ñÀûÀÇ ¸®´ª½º¿Í À¯´Ð½º ÇÁ·Î±×·¡¹Ö ¸ðµ¨¿¡ ´ëÇØ »ó´çÇÑ Á¤º¸¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. TCP/IP ±â¹Ý ³×Æ®¿öÅ© ¹× ÇÁ·ÎÅäÄÝÀÌ ¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö¿¡ ´ëÇÑ ´õ¿í ÀÚ¼¼ÇÑ (º¸¾È ÇÁ·ÎÅäÄÝÀ» Æ÷ÇÔÇØ) Á¤º¸°¡ ÇÊ¿äÇÏ´Ù¸é [Murhammer 1998] °ú °°Àº TCP/IP ¿¡ ´ëÇÑ ÀϹÝÀûÀÎ ¿¬±¸¸¦ Âü°íÇضó.

ÀÌ Ã¥Àº ¸®´ª½º ¹× À¯´Ð½ºÀÇ ´Ù¾çÇÑ º¯ÇüµéÀ» Æ÷ÇÔÇÑ ¸ðµç À¯´Ð½º °è¿­ ½Ã½ºÅÛµéÀ» ´Ù·çÁö¸¸ ƯÈ÷ ¸®´ª½º¿¡ ÁßÁ¡À» µÎ¾î ¸íÈ®ÇÏ°Ô ÀÌ¿¡ ´ëÇÑ ¼¼ºÎ »çÇ×µéÀ» Á¦°øÇÑ´Ù. À©µµ¿ì CE ¿¡ ´ëÇØ ¸íÈ®ÇÏ°Ô ¼³¸íÇÏ´Â ¾à°£ÀÇ ÀÚ·áµéµµ ÀÖÁö¸¸ »ç½Ç À̵éÁß ¸¹Àº °ÍµéÀº ƯÁ¤ ¿î¿µ üÁ¦¿¡ ÇÑÁ¤µÇ¾î ÀÖÁö ¾Ê´Ù. ÀÌ Ã¥¿¡ Æ÷ÇԵǾî ÀÖÁö ¾ÊÀº °ü·Ã Á¤º¸¸¦ ¾Ë°í ÀÖ´Ù¸é ÀúÀÚ¿¡°Ô ¾Ë·ÁÁֱ⠹ٶõ´Ù.

ÀÌ Ã¥ÀÇ ¿øº»Àº http://www.dwheeler.com/secure-programs ¿¡¼­ ãÀ» ¼ö ÀÖÀ¸¸ç http://www.linuxdoc.org ÀÇ ¸®´ª½º ¹®¼­È­ ÇÁ·ÎÁ§Æ® (Linux Documentation Project, LDP) ÀÇ ÇÑ ºÎºÐÀ¸·Î ¸î¸îÀÇ ´Ù¸¥ »çÀÌÆ®¿¡¼­µµ ¶ÇÇÑ ¹Ì·¯¸µµÇ°í ÀÖ´Ù. LDP º¹»çº» ¹×/¶Ç´Â °¢ ¹èÆ÷ º¹»çº»À» Æ÷ÇÔÇÑ ÀÌ·¯ÇÑ º¹»çº»µéÀÌ ¿øº»º¸´Ù ¿À·¡µÈ °ÍÀÏ ¼öµµ ÀÖÀ½À» ÁÖ¸ñÇϱ⠹ٶõ´Ù. ÀúÀÚ´Â ÀÌ Ã¥¿¡ ´ëÇÑ ÀÇ°ßÀ» µè°í ½ÍÁö¸¸ ¹Ýµå½Ã ¿©·¯ºÐÀÇ ÀÇ°ßÀÌ ÃֽŠ¹öÀü¿¡ ´ëÇØ Å¸´çÇÑÁö °Ë»çÇÑ ÈÄ ÀÇ°ßÀ» º¸³»Áֱ⠹ٶõ´Ù.

ÀÌ Ã¥ÀÇ ÀúÀÛ±ÇÀº 1999-2001 David A. Wheeler ¿¡ ÀÖÀ¸¸ç ±× ¶óÀ̼¾½º´Â GNU Free Documentation License (GFDL) ÀÌ´Ù; ´õ¿í ÀÚ¼¼ÇÑ Á¤º¸´Â ºÎ·Ï C ¿Í ºÎ·Ï D ¸¦ º¸¶ó.

2Àå Àº À¯´Ð½º, ¸®´ª½º ¹× º¸¾È¿¡ ´ëÇÑ ¹è°æÀ» ³íÀÇÇϸç 3Àå Àº ÇÁ·Î¼¼½º, ÆÄÀϽýºÅÛ °´Ã¼ µîÀÇ º¸¾È ¼Ó¼º°ú ¿¬»êÀ» °³°ýÀûÀ¸·Î ¼³¸íÇϴµ¥ ÀϹÝÀûÀÎ À¯´Ð½º ¹× ¸®´ª½º º¸¾È ¸ðµ¨À» ±â¼úÇÑ´Ù. ´ÙÀ½ Àå¿¡¼­´Â ÀÌ Ã¥ÀÇ °ñÀÚÀÎ ¸®´ª½º¿Í À¯´Ð½º ½Ã½ºÅÛ¿¡¼­ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇϱâ À§ÇÑ ÀÏ·ÃÀÇ ¼³°è ¹× ±¸Çö ÁöħµéÀ» ³íÀÇÇÑ´Ù. ÀÌ Ã¥Àº 11Àå¿¡¼­ °á·ÐÀ¸·Î ¸ÅµìÁöÀ¸¸ç ´ÙÀ½¿¡ ÀÌ Ã¥¿¡¼­ ÀοëÇÑ µµ¼­ ¸ñ·Ï°ú ºÎ·ÏÀÌ ³ª¿Â´Ù.

¼³°è ¹× ±¸Çö ÁöħµéÀº ÀúÀÚ°¡ ¹Ï±â¿¡ ÇÁ·Î±×·¡¸ÓÀÇ °üÁ¡¿¡ ÁßÁ¡À» µÐ ¹üÁÖ·Î ³ª´©¾îÁø´Ù. ±×¸² 1-1 ¿¡ º¸ÀÌ´Â °Í°ú °°ÀÌ ÇÁ·Î±×·¥Àº ÀÔ·ÂÀ» ¹Þ°í, µ¥ÀÌŸ¸¦ ó¸®ÇÏ°í, ´Ù¸¥ ÀÚ¿øµéÀ» È£ÃâÇÏ°í Ãâ·ÂÀ» »êÃâÇÑ´Ù; °³³äÀûÀ¸·Î ¸ðµç º¸¾È ÁöħµéÀº ÀÌ·¯ÇÑ ¹üÁÖµéÁß Çϳª¿Í ÀÏÄ¡Çϴµ¥ ÀúÀÚ´Â ``µ¥ÀÌŸ ó¸®" ¸¦ ÇÁ·Î±×·¥ ³»ºÎ ±¸Á¶È­Çϱâ¿Í Á¢±Ù ¹æ¹ý, ¹öÆÛ ¿À¹öÇ÷οì ÇÇÇϱâ (¾î¶² °æ¿ì ÀÔ·Â ¹®Á¦·Î °í·ÁµÉ ¼ö ÀÖ´Ù), ¾ð¾î¿¡ ƯÁ¤ÀûÀÎ Á¤º¸¿Í Ưº° ÁÖÁ¦·Î ¼¼ºÐÈ­ÇÏ¿´´Ù. °¢ ÀåµéÀº ½±°Ô µû¶ó°¥ ¼ö ÀÖµµ·Ï Á¤¸®µÇ¾ú´Âµ¥ µû¶ó¼­ ÁöħµéÀ» Á¦°øÇÏ´Â °¢ ÀåµéÀº ¸ðµç ÀÔ·Â À¯È¿È­Çϱâ (4Àå), ¹öÆÛ ¿À¹öÇ÷οì ÇÇÇϱâ (5Àå), ÇÁ·Î±×·¥ ³»ºÎ ±¸Á¶È­ÇÏ±â ¹× Á¢±Ù ¹æ¹ý (6Àå), ÁÖÀDZí°Ô ´Ù¸¥ ÀÚ¿øµé È£ÃâÇϱâ (7Àå), ½ÅÁßÈ÷ Á¤º¸¸¦ µÇµ¹·ÁÁÖ±â (8Àå), ¾ð¾î¿¡ ƯÁ¤ÀûÀÎ Á¤º¸ (9Àå) ±×¸®°í ³­¼ö (random number) ¸¦ ¾ò´Â ¹æ¹ý°ú °°Àº Ưº° ÁÖÁ¦¿¡ ´ëÇÑ Á¤º¸ (10Àå) µéÀ» ³íÀÇÇÑ´Ù.

±×¸² 1-1. Abstract View of a Program

A program accepts inputs, processes data,
possibly calls out to other programs, and produces output.