Ȩ > ´º½º > ±âȹƯÁý > ¿£ÅÍÇÁ¶óÀÌÁî ÄÄÇ»ÆÃ
  • Æ®À§ÅÍ
  • ÆäÀ̽ººÏ
  • ±¸Ç÷¯½º
  • ³×À̹ö¹êµå
  • Ä«Ä«¿À½ºÅ丮
     
ÀÚµ¿ ¼Ò½º ÄÚµå ºÐ¼®±â
°£ÆíÇÑ º¸¾È S/W °³¹ß, ¡°¸¸º´ ÅëÄ¡¾à ¾Æ´Ï´Ù¡± ¡®Æ÷ƼÆÄÀÌ SCA¡¯ ÃÖ°í Á¡¼ö ¡¦ º¸¾È Á᫐ SDLC ÀϺηΠÀÌ¿ëµÅ¾ß
2007³â 07¿ù 31ÀÏ 00:00:00
¾÷üµéÀº ¼Ò½º ÄÚµå º¸¾È ºÐ¼®±â¸¦ ÀÌ¿ëÇÔÀ¸·Î½á ºñÁî´Ï½ºÀÇ ¼ºº®À» Æ°Æ°È÷ ÇÏ°í ¼ÒÁßÇÑ µ¥ÀÌÅ͸¦ º¸È£ÇÒ ¼ö ÀÖ´Ù°í ÁÖÀåÇÏ°í ÀÖ´Ù. ÇÏÁö¸¸ À̵鸸À¸·Î ¹æ¾îº®ÀÌ ÃæºÐÇÒ±î, ¾Æ´Ï¸é ¹üÁËÀÚµéÀÌ ¿©ÀüÈ÷ ¹èȸÇÏ°í ÀÖ´Â ¿ÍÁß¿¡ ´Ü¼øÈ÷ IT ½ºÅÂÇÁ¸¦ ´Þ·¡´Â °Í¿¡ ºÒ°úÇÒ±î? ±× Áø½ÇÀÇ ¼¼°è·Î Á÷Á¢ µé¾î°¡ º¸ÀÚ.


°ø°ÝÀÚ°¡ ´Ü¼øÈ÷ ¸í¼ºÀ̳ª ¿µ¿¹¸¦ ã¾Æ´Ù´Ï°í, ¾ÖÇø®ÄÉÀÌ¼Ç º¸¾ÈÀÌ ´Ù¸¥ ´©±º°¡ÀÇ ¹®Á¦¿´´ø ½ÃÀýÀ» ±â¾ïÇϴ°¡? ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®³ª ¿À¶óŬ °°Àº ´ëÇü Ÿ±êµéÀÌ À̵éÀÇ ¸¶À½¿¡ ºÒÀ» ´ó±ä´Ù. ¿£ÅÍÇÁ¶óÀÌÁî IT¿¡¼­ ÇØ¾ß ÇÒ ÀÏÀ̶ó°í´Â Á¤±âÀûÀ¸·Î ÆÐÄ¡¸¦ Àû¿ë½ÃÅ°°í ÀûÀýÈ÷ ¹æÈ­º® ±¸¼ºÀÌ À¯ÁöµÇµµ·Ï ÇÏ´Â °Í»ÓÀ̾ú´Ù.
ÇÏÁö¸¸ ÀÌ ¸ðµç °ÍµéÀº ¿¾³¯ ¾ê±â´Ù. ȸ»ç ³×Æ®¿öÅ© Å©·¡Å·Àº ´õ ÀÌ»ó ¾ÆÀ̵éÀÇ °ÔÀÓÀÌ ¾Æ´Ï¸ç, ¼öÀͼº ÁÁÀº ¹üÁË ¼ºÀå »ê¾÷ÀÌ´Ù. TJXÄÄÆÛ´ÏÁî·ÎºÎÅÍ 4õ560¸¸ °³ÀÇ ½Å¿ëÄ«µå¿Í Á÷ºÒÄ«µå ¹øÈ£¸¦ ÈÉÄ£ °ø°ÝÀÚµéÀº Àû¾îµµ 10°³¿ù µ¿¾È °Ë°ÅµÇÁö ¾ÊÀ» Á¤µµ·Î ÃæºÐÈ÷ Àü¹®ÀûÀ̾ú´Ù. ÇÑÆí ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® °°Àº ÁÖ¿ä ¼ÒÇÁÆ®¿þ¾î ¾÷üµéÀº º¸¾È ÇÁ·¢Æ¼½º¸¦ °³¼±Çߴµ¥, ÀÌ·Î ÀÎÇØ ´ÏÄ¡¿Í ³»ºÎ °³¹ßµÈ ¼ÒÇÁÆ®¿þ¾î¿Í À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ÇØÄ¿µéÀÇ ´«¿¡ ±×´ë·Î µå·¯³µ´Ù.

¾ÖÇø®ÄÉÀÌ¼Ç º¸¾È ÇÁ·Î¼¼½º ÅëÇÕ ÇÊ¿ä
ÀÌÁ¦ ¿£ÅÍÇÁ¶óÀÌÁî IT¿¡¼­´Â ¸¶Ä§³» ºñº¸¾È ÄÚµù ÇÁ·¢Æ¼½º·Î ÀÎÇÑ Ã¥ÀÓÀ» ¸¶Ä§³» ÀÌÇØÇÏ°í ÀÖ´Ù. 2006 CSI/FBI ÄÄÇ»ÅÍ ¹üÁË ¹× º¸¾È ¼³¹®Á¶»ç¿¡ µû¸£¸é, 2008³â±îÁö °¡Àå Áß¿äÇÑ ¹®Á¦·Î µ¥ÀÌÅÍ º¸È£¿Í ¾ÖÇø®ÄÉÀÌ¼Ç ¼ÒÇÁÆ®¿þ¾î º¸¾ÈÀÌ ¼±Á¤µÆÀ¸¸ç, Á¤Ã¥ ¹× ±ÔÁ¤ Áؼö¿Í ½Å¿øÁ¤º¸ Àýµµ/µ¥ÀÌÅÍ ´©Ãâ ¹æÁö µîÀÌ ±× µÚ¸¦ À̾ú´Ù.
¸¸ÀÏ, ȸ»ç ³×Æ®¿öÅ©°¡ À§Çè¿¡ óÇØ ÀÖÁö ¾Ê´Ù°í »ý°¢ÇÑ´Ù¸é, ´ëºÎºÐÀÇ ¼ÒÇÁÆ®¿þ¾î°¡ »ó¿ë ¹èÆ÷ÆÇ¿ëÀ¸·Î ¸¸µé¾îÁöÁö ¾Ê¾Ò´Ù´Â »ç½ÇÀ» °í·ÁÇ϶ó. À̵éÀº ³»ºÎÀûÀ¸·Î³ª, ȤÀº ƯÁ¤ ÇÊ¿ä¿¡ ¸ÂÃá °è¾à¿¡ µû¶ó °³¹ßµÆ´Ù. ƯÁ¤ ¿ëµµ¿¡ µû¶ó °³¹ßµÈ ¾ÖÇø®ÄÉÀ̼ÇÀº ¿ªµ¿Àû »çÀÌÆ®, SOA(Service Oriented Architecture) ¹× ÀüÀÚ»ó°Å·¡¿¡¼­ºÎÅÍ ºñÁî´Ï½º ÇÁ·Î¼¼½º ÀÚµ¿È­ ¹× °ü¸®¿¡ À̸£±â±îÁö ¸Å¿ì ´Ù¾çÇÑ ºñÁî´Ï½º ÇÁ·Î¼¼½º¿¡ ´ëÇÑ ±âº» ƲÀ» Á¦°øÇÑ´Ù. ÇÏÁö¸¸ À̵éÀº ¶ÇÇÑ °ø°ÝÀÚ°¡ µÉ ¼ö ÀÖ´Â »ç¶÷µé¿¡°Ô´Â Ÿ±êÀÌ Ç³ºÎÇÑ È¯°æÀ» Á¦°øÇÏ°í Àֱ⵵ ÇÏ´Ù.
´Ã¾î³ª´Â À§Çù¿¡ ´ëÀÀÇØ, HIPAA³ª PCI DSS(Payment Card Industry Data Security Standard) °°Àº ÁÖ¿ä ±ÔÁ¤Áؼö °ü·Ã Ç¥ÁصéÀº ¾ÖÇø®ÄÉÀÌ¼Ç º¸¾È ÇÁ·Î¼¼½º¸¦ ÅëÇÕ½ÃÅ°°Å³ª, ÃÖ¼ÒÇÑ ±× Çʿ伺À» ¾ð±ÞÇÏ°í ÀÖ´Ù.
¹°·Ð ±ÔÁ¤ÀÌ ÀÖÀ¸¸é ½ÃÀå¿¡¼­µµ ¿òÁ÷ÀÓÀÌ Àֱ⠸¶·ÃÀÌ´Ù. ÀÌ °æ¿ì¿¡´Â ÀÚµ¿ ¼Ò½º ÄÚµå ºÐ¼® Åø ¾÷üµéÀÌ »ó¿ë ¼ÒÇÁÆ®¿þ¾î ¾÷ü·ÎºÎÅÍ ¿£ÅÍÇÁ¶óÀÌÁî·Î Áß½ÉÀ» À̵¿ÇÏ°í ÀÖ´Ù. À̵éÀº ÀڽŵéÀÇ ÅøÀ» ÀÌ¿ëÇϸé ȸ»çÀÇ °³¹ßÀÚ°¡ º¸´Ù ¾ÈÀüÇÑ ¼ÒÇÁÆ®¿þ¾î¸¦ ¸¸µé ¼ö ÀÖÀ¸¸ç, ±ÔÁ¤ÁؼöÀÇ ºÎ´ãÀ» ´ú ¼ö ÀÖ´Ù°í ¼±ÀüÇÏ°í ÀÖ´Ù.


±×·¸´Ù¸é °ú¿¬ À̵éÀÌ ¾à¼ÓÀ» Àß ÁöÅ°°í ÀÖÀ»±î?
ÀÌ°ÍÀ» ¾Ë¾Æº¸±â À§ÇØ, ¿ì¸®´Â ¼¼ °¡Áö À¯¸íÇÑ Á¤Àû ¼Ò½º ÄÚµå ºÐ¼®±â, Áï Æ÷ƼÆÄÀÌ SCA(Fortify Source Code Analysis) 4.0, Ŭ·Ï¿öÅ©(Klockwork) K7,5, ±×¸®°í ¿Â½º ·¦½º(Once Labs)ÀÇ ¿Â½º 4.1 µîÀ» ½ÃÄ«°í ³×¿ÀÇݽýº ÆÄÆ®³Ê·¦À¸·Î °¡Á®¿Ô´Ù. Ä¿¹ö¸®Æ¼(Coverity)¿¡°Ôµµ ÇÁ¸®º¥Æ®(Prevent) ºÐ¼®±â¸¦ º¸³»ÁÙ °ÍÀ» ¿äûÇßÁö¸¸ ÀÚ¿ø ºÎÁ·À» ÀÌÀ¯·Î °ÅÀý´çÇß´Ù.
°¢ Á¦Ç°¿¡´Â Àú¸¶´ÙÀÇ °­Á¡°ú ¾àÁ¡ÀÌ ÀÖÁö¸¸, ¾î¶² °ÍÀÌµç ¼º¼÷ÇÑ º¸¾È ÇÁ·Î¼¼½º¿¡ À¯¿ëÇÑ º¸ÅÆÀÌ µÉ °ÍÀÌ´Ù. ±×¸®°í »ç½Ç ÀÌ ¸» ¼Ó¿¡ ¿ì¸®°¡ ÇÏ°í ½ÍÀº °¡Àå Áß¿äÇÑ ¿äÁö°¡ ´ã°Ü ÀÖ´Ù. Áï ÄÚµå ½ºÄ³³Ê´Â ¾ó¸¶³ª È¿°úÀûÀÌ³Ä¿Í °ü°è¾øÀÌ Àüü ÇØ´äÀÇ ÀϺο¡ ºÒ°úÇÏ´Ù´Â °ÍÀÌ´Ù. º¸¾ÈÀ» ¿ì¼±¼øÀ§¿¡ ³õÀÌ°Ô ÇØÁÖ´Â ÀûÀýÇÑ °³¹ßÀÚ ±³À°À̳ª SDLC(Software Development LifeCycle)°¡ ¾øÀÌ´Â ¾î¶² Åøµµ ³×Æ®¿öÅ©¸¦ º¸È£ÇØÁÖÁö ¸øÇÑ´Ù. Àͼ÷ÇÑ ¸»Àΰ¡?
¿ì¸®´Â ¿À·§µ¿¾È ¾î¶² °æ°è¼±µµ ¾ø´Ù°í ÀÎÁöÇÏ´Â ½ÉÃþ¹æ¾îÀü·«À» ÁöÁöÇØ ¿Ô´Ù. º¸¾È ±×·ì¿¡¼­´Â È£½ºÆ® ħÀÔ ¹æÁö, NAC ¹× µ¥ÀÌÅͺ£À̽º À¯Ãâ ¹æÁö µî°ú °°ÀÌ, °ø°ÝÀÚµéÀÌ ¹Î°¨ÇÑ Á¤º¸¿¡ ¾×¼¼½º¸¦ ¾ò±â ÀÌÀü¿¡ ¹æ¾î¼± ¹Ù±ùÂÊÀ¸·Î ½º¸çµéÁö ¸øÇÏ°Ô ¸·°íÀÚ ÇÏ´Â ±â¼úµéÀ» ÀÌÇàÇØ ¿Ô´Ù.
ÇÏÁö¸¸ ÀÌ°ÍÀ¸·Î´Â ´õ ÀÌ»ó ÃæºÐÄ¡°¡ ¸øÇÏ´Ù. ¿£ÅÍÇÁ¶óÀÌÁî IT´Â ÀÌÁ¦ ³»ºÎ °³¹ßÀÚ³ª °è¾àÁ÷ °³¹ßÀÚ¿Í Çù·ÂÇØ º¸¾ÈÀ» Á¦ 1¼øÀ§·Î »ý°¢ÇØ¾ß ÇÑ´Ù. º¸¾È Àü¹®°¡µéÀÌ ÁÖ·Î ºñÁî´Ï½º¿¡¼­ ¿ä±¸ÇÏ´Â ±â´É¼ºÀ» Á¦°øÇÏ´Â µ¥ °ü½ÉÀÌ ÀÖ´Â °³¹ßÀÚµé°ú´Â ´Ù¸¥ ½Ã°¢À» °®°í ÀÖ´Ù ÇÏ´õ¶óµµ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß ±×·ì°ú º¸¾È ±×·ìÀº ¸ðµÎ CIO ¾Æ·¡ Àֱ⠶§¹®¿¡ ÀÌ·¯ÇÑ Á¤Ä¡ÀûÀÎ ¹®Á¦´Â ±Øº¹µÉ ¼ö ÀÖ´Ù.


´©±¸³ª »ç¿ëÇÒ ¼ö ÀÖ´Ù(?)
°ÅÀÇ ¸ðµç ´Ù¸¥ IT ¾÷üµé°ú ¸¶Âù°¡Áö·Î, ¾ÖÇø®ÄÉÀÌ¼Ç º¸¾È ½ºÄ³³Ê Á¦Á¶¾÷üµéµµ ±ÔÁ¤Áؼö¸¦ ÀÌ¿ëÇÑ µ·¹úÀÌ¿¡ °¡¼¼ÇÏ°í ÀÖÀ¸¸ç, QA ¸Å´ÏÀú¿¡¼­ºÎÅÍ ÇÁ·ÎÁ§Æ® Ã¥ÀÓ¿¡ À̸£´Â ¸ðµç »ç¶÷µéÀÌ ÀڽŵéÀÇ ¿þ¾î¿¡¼­ °¡Ä¡ ÀÖ´Â Á¤º¸¸¦ Á¦°øÇÒ ¼ö ÀÖ°Ô ÇØÁشٰí ÁÖÀåÇÏ°í ÀÖ´Ù.
ÇÏÁö¸¸ ÀÌ°ÍÀº ¼±Àü¿ë ¹®±¸Áö Çö½ÇÀº ¾Æ´Ï´Ù. ÀÌ·± ÅøµéÀº °³¹ßÀÚ¿Í ¼ÒÇÁÆ®¿þ¾î º¸¾È Àü¹®°¡¿ëÀ¸·Î ¸¸µé¾îÁø °ÍµéÀÌ´Ù. IT ÀϹÝÀεéÀÌ ¼Ò½º ÄÚµå ½ºÄ³³Ê¸¦ ¿î¿ëÇÒ ¼ö ÀÖ´Ù´Â ÁÖÀåÀº ¸¶Ä¡ ¿Ü±¹¾îµµ ÀüÇô ¸ð¸£°í ÁÖÁ¦¿¡ °üÇؼ­µµ ¾ËÁö ¸øÇÏ´Â »ç¶÷ÀÌ ¿Ü±¹¾î·Î µÈ ¹®¼­¿¡¼­ öÀÚ °Ë»ö±â¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â ¸»°ú ¸¶Âù°¡Áö´Ù. ÀÌ·± ÅøÀº ¸¹Àº ·¹º§¿¡¼­ À¯¿ëÇÑ °áÇÔ ÃßÀû ±â´ÉÀ» Á¦°øÇÏÁö¸¸, ÀÌ ¸ðµç °ÍÀº º¸¾È¿¡ Á¤ÅëÇÑ °³¹ßÀÚ¿¡ ÀÇÇØ ¸ÕÀú ºÐ¼®ÀÌ µÇ´Â °á°ú¿¡ µû¶ó Á¿ìµÈ´Ù.
±Ã±ØÀûÀ¸·Î ¸»ÇÏÀÚ¸é, ¼ÒÇÁÆ®¿þ¾î¸¦ º¸¾ÈÇÒ ¼ö ÀÖ´Â ¹æ½ÄÀ» ÀÚµ¿È­ÇÒ ¼ö´Â ¾ø´Ù. ºÐ¼® ÅøÀ» ¾î¶² ½ÄÀ¸·Î Á¶ÇÕÇÏµç »ç¿ëÀÚ°¡ °®°í ÀÖ´Â º¸¾È Áö½Ä¸¸Å­¸¸ È¿°ú¸¦ ¹ßÈÖÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.
º¸¾ÈÄÚµå ¸¸µé±â(Writing Secure Code, Microsoft Press, 2002)ÀÇ °øÀúÀÚÀÌÀÚ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® ÇöÀç º¸¾È »óÅÂÀÇ ¼ö¼® ¾ÆÅ°ÅØÆ®µé Áß ÇÑ »ç¶÷ÀÎ ¸¶ÀÌŬ ÇÏ¿öµå´Â ÀÚ½ÅÀÇ ºí·Î±×¿¡ ´ÙÀ½°ú °°Àº ±Û±Í¸¦ ³²°å´Ù. ¡®Àß ¾ËÁö ¸øÇÏ´Â °³¹ßÀÚ+¶Ù¾î³­ Åø=¾ÆÁÖ ¾à°£ ´õ ³ªÀº º¸¾È ÄÚµå.¡¯
°ø°Ý¿¡ ÀúÇ×ÇÒ ¼ö ÀÖ´Â ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé±â À§Çؼ­´Â °³¹ßÀÚ°¡ SDLC¿¡ ¸Â°Ô ±Ùº»ÀûÀÎ Á¶Á¤ÀÛ¾÷À» ÇØ¾ß ÇÑ´Ù. À̸¦ À§ÇØ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®ÀÇ SDL(Security Development Lifecycle) µî ¹®¼­È­µÈ ÇÁ·Î¼¼½º¸¦ È°¿ëÇϱ⸦ ±ÇÇÑ´Ù. ¿ÀÇ À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ½ÃÅ¥¸®Æ¼ ÇÁ·ÎÁ§Æ®(Open Web Application Security Project)ÀÇ CLASP(Comprehensive Lightweight Application SEcurity Process)¿Í ³»¼Å³Î »çÀ̹ö ½ÃÅ¥¸®Æ¼ µðºñÀü(National Cyber Security Division)ÀÇ ¡®ºôµå ½ÃÅ¥¸®Æ¼ ÀÎ(Build Security In)¡¯ Æ÷Åп¡ ÀÖ´Â ±â¼ú Àü¹ÝÀÇ ÀÚ·áµéÀ» Âü°íÇ϶ó.
¸ðµç ¾÷üµéÀÌ °æÀï ¾÷ü¸¦ À̱â±â À§ÇØ °è¼Ó ³ë·ÂÇÔ¿¡ µû¶ó ºÐ¼® ±â¼úµµ ¶ÇÇÑ ºü¸¥ ¼Óµµ·Î ¹ßÀüÇÏ°í ÀÖ´Ù. ÀÌ°ÍÀº °í°´¿¡°Ô´Â ÁÁÀº ¼Ò½ÄÀÌÁö¸¸ ½ÃÀåÀ» ¿ªµ¿ÀûÀ¸·Î º¯È­ÇÏ°Ô ¸¸µç´Ù. Áï ÀÌ ±â¼úÀº ºÐ¸í ÆÄÀÏ·µ Å×½ºÆ®¸¦ ÅëÇØ Æ¯Á¤ ÀÚµ¿ ¼Ò½º ÄÚµå ºÐ¼®±â°¡ ÀÚ½ÅÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç ¹× °³¹ß ȯ°æ¿¡ ¸Â´ÂÁö¸¦ È®ÀÎÇØ¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ´Â, ±×·± ±â¼úÀÌ´Ù.
ºÐ¼® ÅøÀ» ¸ÖƼÇ÷¹À̾î¶ó°í »ý°¢Ç϶ó. º¸¾È ÀǽÄÀÌ ÀÖ´Â °³¹ßÀÚÀÇ ¼Õ¿¡¼­, ±×¸®°í ÀûÀýÇÑ Áö¿ø ÇÁ·Î¼¼½º¸¦ °®ÃèÀ» ¶§, ÁÁÀº ÄÚµå ºÐ¼®±â´Â ȸ»ç¿¡¼­ ÈξÀ ´õ ¸¹Àº º¸¾È ¼ÒÇÁÆ®¿þ¾î¸¦ ¸¸µé¾î³¾ ¼ö ÀÖ°Ô µµ¿ÍÁØ´Ù. ÇÏÁö¸¸ °³¹ßÀÚ°¡ º¸¾È Áö½ÄÀÌ ÀüÇô ¾ø°í, À̵éÀ» Áö¿øÇÏ´Â ÇÁ·Î¼¼½º°¡ ÀüÇô ¾øÀ» °æ¿ì¿¡´Â µ¹¾Æ¿À´Â ÇýÅõµ ÀüÇô ¾ø´Ù.


¼öµ¿ ºÐ¼®ÀÇ ÇÑ°è
¾î¶°ÇÑ ½Ç¼¼°è ÇÁ·Î±×·¥¿¡ ¹ö±×°¡ ÀüÇô ¾ø´Â °ÍÀ» º¸±â´Â ºÒ°¡´ÉÇÒ °ÍÀÌ´Ù. ±×¸®°í º¸¾È Ãë¾à¼ºÀÌ Æ¯Á¤ Á¾·ùÀÇ ¼ÒÇÁÆ®¿þ¾î ¹ö±×¶ó°í »ý°¢ÇÒ ¶§´Â ¾ÆÁÖ ºÒ¸®ÇÑ »óȲÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù.
ÇÏÁö¸¸ °úÇÐÀÚ¿Í ¼öÇÐÀÚµéÀÌ µé¾î°¡±â °Ì³ª ÇÏ´Â °÷¿¡ ¿£Áö´Ï¾î¿Í °³¹ßÀÚµéÀÌ ´Þ·ÁµéÁö ¾ÊÀº ÀûÀÌ ¾ðÁ¦ ÀÖ¾ú´Â°¡. °á±¹ ¼ÒÇÁÆ®¿þ¾î°¡ ½ÇÁ¦·Î È¿°úÀûÀ¸·Î º¸¾ÈÀÌ µÇ°í ÀÖ´Â ÇÑÀº, ÀÌ°ÍÀÌ º¸¾ÈÀÌ µÈ´Ù°í ÀÔÁõÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ±×¸®°í ÀÌ°ÍÀÌ ¹Ù·Î º¸¾È Àü¹®°¡µéÀÌ ÀÚµ¿ Á¤Àû ¼Ò½º ÄÚµå ºÐ¼®±â(automated static source-code analyzer)¿Í °°Àº ¼ÒÇÁÆ®¿þ¾î º¸¾È ±â¼úÀ» °í¾ÈÇس»´À¶ó ¼ö½Ê ³âÀ» º¸³½ ÀÌÀ¯±âµµ ÇÏ´Ù.
Á¤Àû ¼Ò½º ÄÚµå ºÐ¼®Àº ¸» ±×´ë·Î ¾ÖÇø®ÄÉÀÌ¼Ç ¼Ò½º Äڵ带 ºÐ¼®ÇÔÀ¸·Î½á ¼ÒÇÁÆ®¿þ¾î¿¡ ÀÖ´Â °áÇÔÀ» ½Äº°Çس»´Â ±â¼úÀ» ¸»ÇÑ´Ù. ¼÷·ÃµÈ °¨»çÀÚ¶ó¸é ¼Ò½º Äڵ带 Àо ¼öµ¿À¸·Î ºÐ¼®ÇÏ°í, ¾ÖÇø®ÄÉÀ̼ÇÀÌ ÀÛµ¿ÇÏ´Â ¹æ½Ä¿¡ ´ëÇÑ Á¤½ÅÀûÀÎ ¸ðµ¨À» ¸¸µé°í, Ãë¾à¼ºÀÌ ¹ß»ýÇÒ ¼ö ÀÖ´Â ¿øÀÎÀ» ã¾Æ³¾ °ÍÀÌ´Ù. ÀÌ°ÍÀº ÇöÀç±îÁö ¼ÒÇÁÆ®¿þ¾î¸¦ Æò°¡ÇÏ´Â °¡Àå öÀúÇÑ ¹æ½ÄÀ¸·Î ÀÎÁ¤À» ¹Þ°í Àִµ¥, ±× ÀÌÀ¯´Â ÀÌ°ÍÀÌ ¼ÒÇÁÆ®¿þ¾î ÀÚüÀÇ ³»¸é¿¡ ´ëÇؼ­ °¡Àå ½Éµµ ±íÀº ÀÌÇØ °úÁ¤À» Æ÷ÇÔÇÏ°í Àֱ⠶§¹®ÀÌ´Ù.
¼öµ¿ Á¤Àû ºÐ¼®ÀÇ ¾àÁ¡Àº ÀÌ°ÍÀÌ °¡Àå ´À¸° ºÐ¼® ÇüŸç, È¿°úÀûÀ¸·Î ¼öÇàÇϱâ À§Çؼ­´Â ³ôÀº ¼÷·Ãµµ°¡ ÇÊ¿äÇÏ´Ù´Â Á¡ÀÌ´Ù. Á»´õ Á¤È®È÷ ¾ê±âÇÏÀÚ¸é, ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®´Â º¹ÀâÇÑ º¸¾È ¹ö±×¸¦ Àâ¾Æ³»±â À§ÇØ º¸ÅëÀÇ °³¹ßÀÚ°¡ ÇÏ·ç¿¡ ¾à 1õ100¶óÀÎÀÇ C++ Äڵ带 ºÐ¼®ÇÒ ¼ö ÀÖ´Ù°í Ãß»êÇÏ°í ÀÖ´Ù. ÀÌ°ÍÀÌ ºñ±³Àû ÀÛÀº, Áï 5¸¸ ¶óÀÎ Á¤µµÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î È®ÀåÀÌ µÆÀ» ¶§¸¦ »ý°¢ÇØ º¸¶ó. ¹°·Ð ³ë·ÃÇÑ °¨»çÀÚÀ̰ųª, ÆÀÀÌ Ã³¸®ÇÑ´Ù¸é ÀÌ Ã¢ÀÌ Å©°Ô ÁÙ¾îµé ¼öµµ ÀÖ°ÚÁö¸¸, ÀÌ´Â °ð °ªºñ½Ñ º¸¾È Àü¹®°¡¸¦ ¾²°Å³ª, ȤÀº ÀÚü »ç¶÷µéÀ» ±³À°½ÃÅ°±â À§ÇØ ¸¹Àº ½Ã°£°ú µ·À» ÅõÀÚÇØ¾ß ÇÑ´Ù´Â ¶æÀ̱⵵ ÇÏ´Ù.
ÀÌ·¸µí ¼öµ¿ ºÐ¼®°ú ¿¬°üµÈ °æºñ·Î ÀÎÇØ ÀÚµ¿ ºÐ¼® ÅøÀÌ µîÀåÇÏ°Ô µÆ´Ù. °¡Àå ¸ÕÀú µîÀåÇÑ °ÍÀÌ ¹Ù·Î À¯¼­ ±íÀº ¸°Æ®(lint)·Î, ÀÌ°ÍÀº1979³â ÇϳªÀÇ ¹ü¿ë Ç°Áú Á¡°Ë Åø·Î¼­ À¯´Ð½º 7 ¹èÆ÷ÆÇÀÇ ÀϺηΠµîÀåÇß´Ù. ±× ÀÌ·¡·Î Çö´ëÀÇ ¼Ò½º ºÐ¼®±â´Â ÁÖ·Î ÄÄÆÄÀÏ·¯ ¿¬±¸ ¿µ¿ª¿¡¼­ÀÇ ¸¹Àº ¹ßÀü¿¡ ÈûÀÔ¾î ÈξÀ ´õ Áøº¸µÈ ¸ð½ÀÀ¸·Î ¼ºÀåÇß´Ù. ÀÌ·± ÅøµéÀº º¸¾È¿¡ Á¤ÅëÇÑ °³¹ßÀÚ³ª Àü¹® ¼ÒÇÁÆ®¿þ¾î º¸¾È °¨»çÀÚ¿¡ ÀÇÇØ »ç¿ëÀÌ µÉ ¶§ ¼ÒÇÁÆ®¿þ¾î º¸¾È ºÐ¼®¿¡ °É¸®´Â ½Ã°£À» ´ëÆø ÁÙ¿©ÁÙ ¼ö ÀÖ´Ù.


ÀÚµ¿ ºÐ¼®ÀÇ ÇÑ°è
ÀÚµ¿ ¼Ò½º ÄÚµå ºÐ¼® ±â¼úÀ» È¿°úÀûÀ¸·Î »ç¿ëÇϱâ À§Çؼ­´Â ¸ÕÀú À̵éÀÌ ÇÒ ¼ö ÀÖ´Â °Í°ú ¾ø´Â °ÍÀ» ¾Ë¾Æ¾ß ÇÑ´Ù.
ù ¹ø° ÇÑ°è·Î´Â ÀáÀçÀûÀÎ Ãë¾à¼ºÀÇ ¹üÁÖ¸¦ ±¸ºÐÇؼ­ ÀûÀýÇÑ Ã³¸® ¹æ¹ýÀ» °áÁ¤ÇÏ´Â °Ô Æ÷ÇԵȴÙ. °ø°ÝÀÚ°¡ À¥ »çÀÌÆ®¿¡¼­ ÀÎÁõÀ» ¿ìȸÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â SQL »ðÀÔ(injecton) Ãë¾à¼ºÀ» »ý°¢ÇØ º¸¶ó. ÀÌ°ÍÀ» SQL »ðÀÔ Ãë¾à¼ºÀ¸·Î ºÐ·ùÇϰڴ°¡, ¾Æ´Ï¸é ÀÎÁõ ¿ìȸ·Î ºÐ·ùÇϰڴ°¡? °á°úÀûÀ¸·Î ½ºÅà ¹öÆÛ ¹ü¶÷À» ¾ß±âÇÏ´Â ¼öÀÇ ¹ü¶÷(integer overflow)Àº ¾î¶°ÇÑ°¡? ÀÌ·± Ãë¾à¼ºÀº Äڵ忡¼­ ¾î¶² ƯÁ¤ ¶óÀÎÀÌ ¿øÀÎÀÌ µÇ´Â°¡?
Àΰ£ °¨»çÀÚ´Â ÀÌ·± Á¾·ùÀÇ Àǹ®¿¡ ÆÇ´ÜÀ» ³»¸®°í, Ãë¾à¼º¿¡ °ü¿©ÇÏ´Â ³í¸®ÀûÀÎ ¸Æ¶ôÀ» ¹ß°ßÇÏ°í, ¾î¶°ÇÑ ¿¹¿Ü »óȲÀ̳ª ÀáÀçÀûÀΠȥ¶õÀ» ¼³¸íÇØ¾ß ÇÑ´Ù. ÀÚµ¿ ºÐ¼® ÅøÀº ÀÌ·¯ÇÑ ¼öÁØÀ¸·Î ÆÇ´ÜÀ» ³»¸± ¼ö°¡ ¾ø±â ¶§¹®¿¡, À̵éÀº Á¾Á¾ ºñÁ÷°üÀûÀÎ ¹æ½ÄÀ¸·Î ÀáÀçÀûÀÎ Ãë¾à¼ºÀ» ½Äº°Çس»°ï ÇÑ´Ù.
¿¹¸¦ µé¾î À̵éÀº È¥¶õ½º·¯¿î µî±ÞºÐ·ù ±âÁØÀ̳ª ºÎÁ·ÇÑ »óȲ Á¤º¸¸¦ Á¦°øÇϱ⵵ ÇÒ °ÍÀÌ´Ù. °°Àº ¹®Á¦¸¦ ¿©·¯ ¹ø, ±×°Íµµ Á¾Á¾ ¼­·Î ´Ù¸¥ Ãë¾à¼ºÀ¸·Î Ç¥½ÃÇÒ ¼öµµ ÀÖÀ¸¸ç, ȤÀº ³í¸®Àû ÀνºÅϽº°¡ ¾Õ¼­ ÇÔ¼ö È£Ãâ(function call)¿¡ ÀÖÀ» ¶§ Ãë¾à¼º ÁöÁ¡À» ÄÚµå ¼Ó ±íÀ̷Πǥ½ÃÇÒ ¼öµµ ÀÖ´Ù. ¹üÁÖÈ­¿¡ µû¸¥ ÀÌ·¯ÇÑ ¹®Á¦µé·Î ÀÎÇØ Åø¿¡¼­ ³ª°¡´Â ¾Æ¿ôDzÀÌ ÁøÁ¤À¸·Î Àǹ̸¦ °¡Áú ¼ö ÀÖÀ¸·Á¸é ¸·´ëÇÑ ¼öµ¿ ºÐ¼® ÀÛ¾÷ÀÌ ÇÊ¿äÇÑ °æ¿ì°¡ ¸¹´Ù.
³ª¾Æ°¡, ³í¸®Àû Ãë¾à¼º¿¡´Â ÀÚµ¿ ºÐ¼®ÀÌ Çã¿ëµÇÁö ¾Ê´Â´Ù. ÄÚµå ½ºÄ³³Ê´Â ±âº»ÀûÀÎ ÀÌÇà»óÀÇ °áÇÔ ¿Ü¿¡´Â ´Ù¸¥ ¾î¶² °Íµµ ŽÁöÇÒ ¼ö°¡ ¾øÀ¸¸ç, ±×·² ¶§Á¶Â÷µµ ¼­ºê¼¼Æ®¸¸ °¡´ÉÇÏ´Ù. À̵éÀº ¾ÖÇø®ÄÉÀÌ¼Ç ·ÎÁ÷°ú ¼³°è¿¡ ´ëÇØ ÀǹÌÀÖ´Â ºÐ¼®À» ¼öÇàÇÒ ¼ö ÀÖ´Â ´É·ÂÀÌ ¾ø´Âµ¥, ±× ÀÌÀ¯´Â À̵éÀÌ °³¹ßÀÚÀÇ Àǵµ¸¦ ³ªÅ¸³»´Â Ãß»óÀûÀÎ °³³äÀ̱⠶§¹®ÀÌ´Ù. À̵éÀº ÇÁ·Î±×·¥ ½ºÆ®·°Ã³¿¡¼­ Á÷Á¢ÀûÀ¸·Î ÆÐÅÏ¿¡ ¸ÅÇÎÀ» ÇÏÁö ¾Ê´Â´Ù. ½ºÄ³³Ê°¡ ÇÒ ¼ö ÀÖ´Â °ÍÀ̶ó°í´Â »ç¿ëÀÚ¸¦ ÁÖ¹«¸¦ ¼ö ÀÖ´Â µ¥ÀÌÅÍ¿¡ ³ëÃâµÈ, ¾Ë·ÁÁø Ãë¾à¼º ÆÐÅÏÀ» ½Äº°ÇÏ´Â °Ô ÀüºÎ¸ç, ±×·² ¶§Á¶Â÷µµ Àû´çÇÑ ½Ã°£¿¡ ºÐ¼®À» ¸¶Ä¥ ¼ö ÀÖÀ¸·Á¸é »ó´çÇÑ Å¸ÇùÀ» ÇØ¾ß ÇÑ´Ù.
°á°úÀûÀ¸·Î, Çã°¡ Á¤Ã¥, ¹éµµ¾î ÀÚ°ÝÁõ¸í, ¾Ë·ÁÁø ÆÐÅÏÀÌ ¾ø´Â Ãë¾à¼º, ȤÀº ³í¸®Àû ÀÌÇà ¹× ¼³°è °áÇÔ¿¡¼­ÀÇ ¿¡·¯¸¦ È¿°úÀûÀ¸·Î ¸·À» ¼ö ÀÖ´Â ÅøÀº °áÄÚ ±â´ëÇؼ­´Â ¾È µÈ´Ù´Â ¾ê±â´Ù. ºÒÇàÈ÷µµ ½Ç¼¼°è Ãë¾à¼º¿¡¼­´Â À̵éÀÌ Àý¹Ý ÀÌ»óÀ» Â÷ÁöÇÏ°í ÀÖ´Ù. ±×¸®°í ½ºÄ³³Ê°¡ ¾î¶² Ãë¾à¼ºÀ» ³õÄ¥´ÂÁö Á¤È®È÷ ÆÇ´ÜÇϱ⵵ °áÄÚ ½¬¿î ÀÏÀÌ ¾Æ´Ï´Ù.
¿Ïº®ÇÑ ¼¼»ó¿¡¼­´Â, ¼ÒÇÁÆ®¿þ¾î Ãë¾à¼ºÀÌ ¸ðµÎ ³ªÀ̳ª ÀÌÇà ¹®Á¦¿¡ µû¶ó ¾ö°ÝÇÑ µî±ÞÀ¸·Î ±¸ºÐÀÌ µÉ °ÍÀÌ´Ù. ÀÌ·± ¼¼»ó¿¡¼­´Â ¶ÇÇÑ ½ºÄ³³Ê¸¦ ÀÌ¿ëÇØ ÀÌÇàÀ» ÇØ°áÇÏ°í ¼öµ¿ ÀÛ¾÷Àº ÇÏÀÌ·¹º§ÀÇ ·ÎÁ÷°ú ¼³°è¿¡ ÁýÁß½Ãų ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸ ºÒÇàÈ÷µµ Çö½Ç¼¼°è¿¡¼­´Â °¡Àå Ãß»óÀûÀÎ ¼³°è ¹× ¾ÆÅ°ÅØó ¹ö±×¿¡¼­ºÎÅÍ °¡Àå °£´ÜÇÏ°í ±¸Ã¼ÀûÀÎ ÀÌÇà»óÀÇ °áÇÔ¿¡ À̸£±â±îÁö ²÷ÀÓ¾øÀÌ Ãë¾à¼ºÀÌ Á¸ÀçÇÑ´Ù.
¿©±â¿¡´Â ¾î¶² ¸íÈ®ÇÑ ±¸ºÐÀÌ ¾øÀ¸¸ç ºÐ¼®±âµéÀº ŽÁöÇÒ ¼ö ÀÖ´Â °Í¿¡ ÀÖ¾î ¾öû³ª°Ô ´Ù¾çÇϱ⠶§¹®¿¡, ·ÎÁ÷À̳ª ¼³°è»óÀÇ Ãë¾à¼º¿¡ ´ëÇØ ÄÚµåÀÇ »ó´ç ºÎºÐÀ» ¼öµ¿À¸·Î °ËÅäÇÒ ÇÊ¿ä°¡ ÀÖÀ» °ÍÀÌ´Ù. Àß Á¤¸®µÈ µµÅ¥¸ÕÆ®¶ó¸é ÀÌ°ÍÀÌ º¸´Ù ¼ö¿ùÇÒ ¼öµµ ÀÖÁö¸¸, ¾Æ¹«¸® ÁÁÀº ·ÎÁ÷À̶ó ÇÏ´õ¶óµµ ¸ðµç ÀÌÇà ·ÎÁ÷À» ¼³¸íÇÏÁö´Â ¸øÇÒ °ÍÀÌ´Ù.


²÷ÀÓ¾ø´Â Ãë¾à¼º Á¸Àç
½ÇÁ¦·Î´Â ¾î¶°ÇÑ ºÐ¼® ÅøÀÌµç º»ÁúÀûÀ¸·Î Ç®¸± ¼ö ¾ø´Â ¹®Á¦¸¦ °ø°ÝÇÏ°í ÀÖ´Ù. º¸´Ù »ó¼¼È÷ º¸ÀÚ¸é, 3°¡Áö 16ºñÆ® Á¤¼ö¸¦ ÀÔ·Â(input)À¸·Î ¹Þ¾ÆµéÀÌ°í, ´Ù¸¥ ¾î¶² ¿ÜºÎ ÀÎÀÚÀÇ ¿µÇâµµ ¹ÞÁö ¾Ê´Â °£´ÜÇÑ ÇÔ¼ö°¡ ÀÖ´Ù°í ÇÏÀÚ. ºÐ¼®±â°¡ °¡´ÉÇÑ ¸ðµç ÀÔ·ÂÀ» ó¸®ÇÏ·Á°í ½ÃµµÇÒ °æ¿ì ÀÌ°ÍÀº (216)3°³ÀÇ ¼­·Î ´Ù¸¥ ÄÉÀ̽º¸¦ ó¸®ÇØ¾ß ÇÒ °ÍÀÌ´Ù. Áï 280Á¶ °³°¡ ³Ñ´Â Å×½ºÆ® ÄÉÀ̽º°¡ Á¸ÀçÇÏ°Ô µÈ´Ù! ¹°·Ð Å×½ºÆ® ÄÉÀ̽º°¡ ¾öû³ª°Ô ´Ã¾î³ª¸é ¾Æ¹«¸® °£´ÜÇÑ ÇÁ·Î±×·¥¿¡¼­µµ °ü¸®´Â ºÒ°¡´ÉÇØÁø´Ù.
¸ðµç Å×½ºÆ® ÄÉÀ̽º¸¦ ÄÄÇ»ÆÃÇϱâ´Â Çö½ÇÀûÀ¸·Î ºÒ°¡´ÉÇϱ⠶§¹®¿¡, ºÐ¼®±â¿¡¼­´Â ÀÔ·Â °æ°è¼±À» Á¤ÇÏ·Á ½ÃµµÇÔÀ¸·Î½á Å×½ºÆ®ÇØ¾ß ÇÏ´Â °ÍÀ» ÁÙÀδÙ. ¾Æ±îÀÇ 16ºñÆ® Á¤¼ö ¿¹¿¡¼­ ÀÌ°ÍÀº °¢ Æз¯¹ÌÅÍ¿ëÀ¸·Î Çã¿ëµÈ ÃÖ´ë°ª°ú ÃÖ¼Ò°ªÀÌ µÉ ¼ö ÀÖ´Ù. ºÐ¼®±â´Â ÁÖ·Î ÀÚ½ÅÀÌ ½Äº°ÇÏ´Â °æ°è ÄÉÀ̽º¿¡ ´ëÇؼ­ Å×½ºÆ®¸¦ ¼öÇàÇÑ´Ù.
ÀÌ·¸°Ô µÇ¸é ºÐ¸í ºÐ¼® Ç°ÁúÀº ºÐ¼®±â°¡ °æ°è¶ó°í ÀνÄÇÏ´Â °Í¿¡ µû¶ó, ±×¸®°í ÀÚ½ÅÀÌ ´Ü¼øÈ­µÈ ¾ÖÇø®ÄÉÀÌ¼Ç ¸ðµ¨À» ¸¸µé¾î³»´Â ¹æ½Ä¿¡ µû¶ó Á÷Á¢ÀûÀÎ ¿µÇâÀ» ¹Þ°Ô µÈ´Ù. ÀÌ·¯ÇÑ ´Ü¼øÈ­ °úÁ¤¿¡¼­ÀÇ ½Ç¼ö´Â °á°úÀûÀ¸·Î ºÐ¼®±â°¡ ÁøÂ¥ Ãë¾à¼ºÀ» ŽÁöÇس»Áö ¸øÇÏ°Ô Çϸç(false negatives), Ãë¾à¼ºÀÌ Á¸ÀçÇÏÁö ¾Ê´Â °÷¿¡¼­ Ãë¾à¼ºÀ̶ó°í ÆÇ´ÜÇÏ°Ô ÇÑ´Ù(false positives). ÀÌ·± ¹®Á¦´Â ¹®ÀÚ¿­ ÇÁ·Î¼¼½Ì Äڵ带 ºÐ¼®ÇÒ ¶§ µå·¯³ª¸ç, ³Ê¹« ´Ù¾çÇÑ ÀáÀçÀûÀÎ ÀÔ·ÂÀ» ¸¸µé¾î ³»±â ¶§¹®¿¡ ÅøÀÌ ÁøÁ¤ÇÑ Ãë¾à¼ºÀ» °¡·Á³»´Â µ¥ Å« ¾î·Á¿òÀ» °®°Ô µÈ´Ù.
¿ì¸®°¡ Å×½ºÆ®ÇÑ ¼¼ Á¦Ç°Àº ¸ðµÎ Ãë¾à¼ºÀÇ µî±ÞÀ» ¸Å±â´Â µ¥ ÀÖ¾î ¾î´À Á¤µµÀÇ ½Å·Úµµ¸¦ Á¦°øÇß´Ù. À̵éÀº ¶ÇÇÑ »ç¿ëÀÚ Á¤ÀÇ ±ÔÁ¤, Æú½º Æ÷ÁöƼºê ¾ï¾Ð, ±×¸®°í ±âŸ ±× Á¦Ç°¸¸ÀÇ ¼ö´ÜÀ» ÅëÇØ ºÐ¼®±âÀÇ ¼º´ÉÀ» ¹Ì¼¼ Á¶Á¤ÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Æ÷ÇÔÇÏ°í ÀÖ¾ú´Ù. ÇÏÁö¸¸ Æ÷°ýÀûÀÎ Æ©´×À» Çß´Ù ÇÏ´õ¶óµµ ½ºÄ³³Ê Ãâ·ÂÀ» Æò°¡ÇÏ°í, Äڵ带 ¼öµ¿À¸·Î °ËÅäÇØ º¼ ÇÊ¿ä°¡ ÀÖ´Ù.
¸¶Áö¸·À¸·Î Æú½º Æ÷ÁöƼºê ºñÀ²ÀÌ ³ô´Ù´Â °ÍÀº ´Ü¼øÈ÷ ´µ¾Ó½ºÀÇ Â÷ÀÌ°¡ ¾Æ´Ï´Ù. °á±¹ À̵éÀº Åø¿¡ ´ëÇÑ »ç¿ëÀÚÀÇ ½Å·Ú¸¦ ¶³¾î¶ß¸± °ÍÀÌ´Ù. Æú½º Æ÷ÁöƼºê ºñÀ²ÀÌ ³Ê¹« ³ôÀ¸¸é, ´ëºÎºÐÀÇ °³¹ßÀÚµéÀº ºÒÈ®½ÇÇÑ °á°ú¹°µé±îÁöµµ ¾î¶² °ÍÀ̵ç Æú½º Æ÷½ÃƼºê·Î Ç¥½ÃÇϱ⠽ÃÀÛÇϰųª, ȤÀº ÅøÀÇ Ãâ·ÂÀ» ÀüÀûÀ¸·Î ¹«½ÃÇعö¸± °ÍÀÌ´Ù. ÃÖ¾ÇÀÇ °æ¿ì¿¡´Â °³¹ßÀÚ°¡ ³Í´ú¸Ó¸®¸¦ ³»¸ç, ¸ðµç °á°ú°¡ À߸øµÆ´Ù°í °¡Á¤ÇÏ°í, Ãë¾à¼ºÀ» ó¸®ÇÏÁö ¸øÇÏ´Â °ÍµéÀ» Á¦¿ÜÇÑ ¾ÕÀ¸·ÎÀÇ °æº¸µé(Æ®·ç°Å³ª Æú½º°Å³ª)À» ¾ø¾Öµµ·Ï Äڵ带 ¹Ù²Ü ¼öµµ ÀÖ´Ù.

ºÐ¼®±â Å×½ºÆ® °á°ú
¿ì¸®ÀÇ ¼¼ °¡Áö ¼Ò½º ÄÚµå ºÐ¼®±â¸¦ ÀÌ¿ëÇØ À©µµ»óÀÇ ÀÌŬ¸³½º¿Í ºñÁÖ¾ó ½ºÅõµð¿À¿¡ ÀÖ´Â C/C++°ú ÀÚ¹Ù ¼Ò½º¸¦ ºÐ¼®ÇÑ °á°ú, ¸î °¡Áö ÀÏ°üÀûÀÎ µ¿ÇâÀ» ¹ß°ßÇÒ ¼ö ÀÖ¾ú´Ù. ¿ì¼± C ÄÚµåÀÇ ´õºí ÇÁ¸®(double-free) ¹ö±×³ª Æ÷¸Ë ¹®ÀÚ¿­(format-string) Ãë¾à¼º °°Àº °áÇÔÀº ¸Å¿ì ¹ÏÀ» ¸¸ÇÏ°Ô ½Äº°µÆ´Ù. ÇÏÁö¸¸ ´Ù¸¥ ¹ö±× µî±ÞÀÇ Ã³¸®´Â ¿ì¸® ±â´ëÄ¡ ±Ùó¿¡µµ °¡Áö ¸øÇß´Ù.
ƯÈ÷ ¼öÀÇ ¹ü¶÷À̳ª À¯Çü Àüȯ °°Àº »ê¼öÀû Ãë¾à¼ºÀº ¾ðÁ¦³ª ³õÄ¡°Å³ª Æú½º Æ÷ÁöƼºêÀ²ÀÌ ±Ø´ÜÀûÀ¸·Î ³ôÀº ½Å·Úµµ¿¡¼­¸¸ ŽÁöÇß´Ù. ÀÌ·± Ãë¾à¼ºµé¿¡ ´ëÇÑ º¸°í°¡ ´Ã¾î³ª°í ÀÖÀ½À» °¨¾ÈÇÒ ¶§ ÀÌ°ÍÀº ¾à°£ ´çȲ½º·¯¿î °á°ú´Ù. º¹ÇÕ ¹®ÀÚ¿­ ó¸® Ãë¾à¼ºµµ C/C++ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ÀÏ»óÀûÀÎ ´Ù¸¥ ¸¹Àº ¹®Á¦µé°ú ÇÔ²², ³·Àº ½Å·Úµµ¿¡¼­ °°Àº Çö»óÀ» º¸¿©ÁÖ´Â °æ¿ì°¡ ¸¹¾Ò´Ù.
ÇÏÁö¸¸ ¼¼ °¡Áö ¼Ò½º ÄÚµå ºÐ¼®±â ¸ðµÎ, ¹ü¿ë ÆÛÀú(fuzzer)³ª À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ½ºÄ³³Ê µî, °ú°Å¿¡ »ç¿ëÇÏ´ø ÀÚµ¿ ºÐ¼® Åøº¸´Ù´Â ÀÏ°ü¼º ÀÖ°Ô ³ªÀº ¼º´ÉÀ» º¸¿´´Ù. ¿ì¸®´Â ¶ÇÇÑ ¾à°£¸¸ ¼ÕÀ» ´ë¸é(ÄÚµå ±¸Á¶Á¶Á¤, Àüü û¼Ò ¹× ºÐ¼®±â Æ©´× µî) ¾ó¸¶°£ÀÇ Ãë¾à¼ºÀÌ Å½Áö°¡ µÈ´Ù´Â »ç½Çµµ ¾Ë ¼ö ÀÖ¾ú´Ù. ÇÏÁö¸¸ ¸ðµç ºÐ¼®±â°¡ ÀϺΠ½É°¢ÇÑ Ãë¾à¼ºµéÀ» ³õÃÆÀ¸¸ç, ÈξÀ ´õ ¸¹Àº °ÍµéÀ» ¸Å¿ì ³·Àº ½Å·Ú µî±ÞÀ¸·Î Ç¥½ÃÇß´Ù.
ÇÑ °¡Áö ±â¾ïÇØ¾ß ÇÒ Áß¿äÇÑ »ç½ÇÀº ÀÌ·¯ÇÑ °á°ú°¡ ȯ°æ¿¡ µû¶ó ¸Å¿ì ´Þ¶óÁú ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ¿ì¸®´Â ¹°·Ð °¡´ÉÇÑ ÇÑ ÀϹÝÀûÀ̵µ·Ï Å×½ºÆ®¸¦ ¼³°èÇÏ°í, ½Ç¼¼°è ¼ÒÇÁÆ®¿þ¾î¸¦ Àß ´ëº¯ÇÏ´Â ÁÁÀº »ùÇÃÀ» Á¦°øÇß´Ù. ÇÏÁö¸¸ ¾Æ¹«¸® ÀÛÀº Â÷À̶ó ÇÏ´õ¶óµµ ºÐ¼®±â¿¡´Â ½É°¢ÇÑ ¿µÇâÀÌ ¹ÌÄ¥ ¼ö Àֱ⠶§¹®¿¡, ÅøÀÇ ¼º´ÉÀ» ÁøÁ¤À¸·Î ÃøÁ¤ÇÒ ¼ö ÀÖ´Â À¯ÀÏÇÑ ¹æ¹ýÀº ÀÌ°ÍÀ» ÀÚ½ÅÀÇ Äڵ忡¼­ Á÷Á¢Å×½ºÆ®Çغ¸´Â °ÍÀÌ´Ù.


±ÔÁ¤Áؼö¿¡ À־ÀÇ ¿ªÇÒ
2000³â ÀÌÈĺÎÅÍ ±ÔÁ¤Áؼö ¼Ò¼ÛÀº ȸ»çµéÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç Ãë¾à¼º°ú ¿¬°üµÈ µ¥ÀÌÅÍ À¯ÃâÀÌ Å¸±êÀ̾ú´Ù. ÇöÀç ¹Ì ¿¬¹æ Åë»óÀ§¿øȸ À¥ »çÀÌÆ®¿¡´Â °¡ÀÌ´ø½º ¼ÒÇÁÆ®¿þ¾î(Guidance Software), DSW, ±×¸®°í ºÎµ¿»ê ȸ»çÀÎ ³×À̼ÇÁî Ȧµù(Nations Holding) µî¿¡¼­ ÇØ°áµÈ »ç°Ç ¸®½ºÆ®°¡ ¿Ã¶ó¿Í ÀÖ´Ù. ÀÚµ¿ ½ºÄ³´× ÅøÀÌ ÀÌ·± Á¶Á÷µéÀÌ ±ÔÁ¤ÁؼöÀÇ Àǹ«¿¡¼­ Å»ÃâÇÏ´Â µ¥ µµ¿òÀ» ÁÙ ¼ö ÀÖÀ»±î?
±× ÀÚü¸¸À¸·Î´Â ºÒ°¡´ÉÇÏ´Ù. ÀÚµ¿ ÄÚµå ½ºÄ³³Ê·ÎºÎÅÍ È®ÀÎµÈ °Í¸¸ Ä¡·áÇؼ­´Â ¡®ÇÕ¸®Àû¡¯À̰ųª ¡®ÀûÇÕÇÑ¡¯ ¾ÖÇø®ÄÉÀÌ¼Ç º¸¾È ¼ö´ÜÀÌ µÉ ¼ö°¡ ¾ø´Ù. ÀÌ°ÍÀº ¸¶Ä¡ °è»ê±â¸¦ °®°í ÀÖÁö ¾ÊÀº »ç¶÷ÀÌ °è»ê±â¸¦ Çϳª »ç¸é ¼¼±Ý °è»ê¿¡ µµ¿òÀÌ µÇ±ä ÇÏ°ÚÁö¸¸ °¨»ç¿¡ »ç¿ëÇϱâ´Â ¹«¸®°¡ ÀÖ´Â °Í°ú °°´Ù. ¸¶Âù°¡Áö·Î, ½ºÄ³´×¸¸À¸·Î Å©°í È®½ÇÇÑ Ãë¾à¼º µî±ÞÀ» ãÁö ¸øÇß´Ù¸é(°¡Àå °áÁ¤ÀûÀÎ °ÍÀ» Æ÷ÇÔÇØ) ½ºÄ³´× °á°ú¸¸À» ±â¹ÝÀ¸·Î Çؼ­ Ä¡·á¸¦ ÇÑ´Ù°í Çؼ­ °áÄÚ ±ÔÁ¤Áؼö¸¦ ÇÒ ¼ö°¡ ¾ø´Ù.
- Dave Stampley, ³×¿ÀÇݽýº ÃÑȸ


Microsoft Builds In Security Analysis
ºñÁÖ¾ó ½ºÅõµð¿À 2005 ÆÀ ¿¡µð¼ÇÀ» »ç¿ëÇÏ°í ÀÖ´Ù¸é ¸î ¹øÀÇ Å¬¸¯À¸·Î °£ÆíÇÏ°Ô º¸¾È ºÐ¼®À» ÇÒ ¼ö°¡ ÀÖ´Ù. ÇöÀç ¹öÀü¿¡´Â ÇÁ¸®ÆнºÆ®(PreFast) Á¤Àû ¼Ò½º ÄÚµå ºÐ¼®±â°¡ Æ÷ÇԵŠÀִµ¥, ÀÌ°ÍÀº ÇÁ·ÎÁ§Æ® ¿É¼Ç ¾Æ·¡¼­³ª, ȤÀº ¸í·É¾î ¶óÀο¡¼­ ¡®/analyze¡¯ ½ºÀ§Ä¡¸¦ ÀÌ¿ëÇØ °¡µ¿½Ãų ¼ö ÀÖ´Ù.
ÇÁ¸®ÆнºÆ®´Â ÄÄÆÄÀϸµ µ¿¾È ½ÇÇàÀÌ µÇ¸ç, ÀáÀçÀûÀÎ C/C++ Ãë¾à¼ºÀ» ¾Ë·ÁÁÖ´Â ÄÄÆÄÀÏ·¯ °æ°í¹®À» ¸¸µç´Ù. ¿ì¸®´Â ¸î °¡Áö ±âº»ÀûÀÎ Å×½ºÆ®¸¦ ¼öÇàÇßÀ¸¸ç, ÇÁ¸®ÆнºÆ®´Â ¼ö¸¹Àº °£´ÜÇÑ Ãë¾à¼ºµéÀ» ¾î¶°ÇÑ Æú½º Æ÷ÁöƼºêµµ ½Äº°ÇÏÁö ¾Ê°í ¼º°øÀûÀ¸·Î ŽÁöÇØ ³Â´Ù. IT´Â Æú½º Æ÷ÁöƼºê¸¦ Á¦°ÅÇϰųª, ȤÀº ´Ù¾çÇÑ ¹öÆÛ ±æÀÌ¿ÍÀÇ ¿¬°ü¼º µî°ú °°Àº º¯¼öµé°£ÀÇ °ü°è¸¦ È®ÀÎÇÏ´Â µ¥ ÀÖ¾î SAL(Standard Annotation Language)À» ÀÌ¿ëÇØ ÈξÀ ´õ È¿°úÀûÀ¸·Î ºÐ¼®À» ÇÒ ¼ö ÀÖ´Ù.
ºñÁÖ¾ó ½ºÅõµð¿À¿¡´Â ¶ÇÇÑ FxCop¶ó´Â À¯Æ¿¸®Æ¼°¡ Æ÷ÇԵŠÀִµ¥, ÀÌ°ÍÀº ¸Å´ÏÁöµå ÄÚµå ¾î¼Àºí¸®¿¡¼­ ºÐ¼®À» ¼öÇàÇÔÀ¸·Î½á ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® ´å³Ý ÇÁ·¹ÀÓ¿öÅ© °¡À̵å¶óÀÎ(Microsoft .Net Framework Guidelines)¿¡ µû¸£´ÂÁö¸¦ °Ë»çÇÑ´Ù. ±×¸®°í ÀÌ °Ë»ç¿¡´Â ¾ÈÀüÇÑ ´å³Ý ¾î¼Àºí¸®¸¦ À§ÇÑ 26°³ÀÇ º¸¾È Àü¹® Å×½ºÆ®°¡ Æ÷ÇԵŠÀÖ´Ù. FxCop¿¡ ÀÇÇØ ½Äº°µÈ ¹®Á¦µé °¡¿îµ¥ »ó´ç¼ö´Â µ¶¸³ÀûÀÎ Ãë¾à¼ºµéÀº ¾Æ´ÏÁö¸¸, »ç¾ç Áؼö¸¦ ¹æÇØÇÏ´Â À§ÇèÇÑ ÄÚµù ÇÁ·¢Æ¼½ºµéÀÌ´Ù.
ºñÁÖ¾ó ½ºÅõµð¿À 2005 ÆÀ À̵ð¼Ç¿¡´Â FxCop Å×½ºÆ®¿Ü¿¡µµ ÀÚµ¿È­µÈ ¾ÖÇø®ÄÉÀ̼ǰú À¯´ÏÆ® Å×½ºÆÃÀ» À§ÇÑ ±â´É¼ºÀÌ Æ÷ÇԵŠÀÖ´Ù. ÀÌ·± Å×½ºÆ® »ç¾çµéÀÌ ºñ·Ï º¸¾È¸¸À» À§ÇÑ °ÍÀº ¾Æ´ÏÁö¸¸ À̵éÀº ´Ù¾çÇÑ ´Ü°è¿¡¼­ º¸¾È Å×½ºÆÿ¡ Àû¿ë °¡´ÉÇÏ´Ù.
¨Ï µ¥ÀÌÅͳÝ(http://t564.ndsoftnews.com) ¹«´ÜÀüÀç ¹× Àç¹èÆ÷±ÝÁö | ÀúÀ۱ǹ®ÀÇ  

     

Àαâ±â»ç

 
°¡Àå ¸¹ÀÌ º» ±â»ç
Àλ硤µ¿Á¤¡¤ºÎÀ½
Àüü±â»çÀÇ°ß(0)  
 
   * 200ÀÚ±îÁö ¾²½Ç ¼ö ÀÖ½À´Ï´Ù. (ÇöÀç 0 byte/ÃÖ´ë 400byte)
   * ¿å¼³µî ÀνŰø°Ý¼º ±ÛÀº »èÁ¦ ÇÕ´Ï´Ù. [¿î¿µ¿øÄ¢]
Àüü±â»çÀÇ°ß(0)
»ç¸í: (ÁÖ)È­»ê¹Ìµð¾î | ÁÖ¼Ò: ¼­¿ï½Ã °­³²±¸ °­³²´ë·Î 124±æ 26 À¯¼ººôµù 2Ãþ | ÀüÈ­: 070-8282-6180 | Æѽº: 02-3446-6170
µî·Ï¹øÈ£: ¼­¿ï¾Æ03408 | µî·Ï³â¿ùÀÏ: 2014³â 11¿ù 4ÀÏ | ¹ßÇà³â¿ùÀÏ: 2003³â 12¿ù 17ÀÏ | »ç¾÷ÀÚµî·Ï¹øÈ£: 211-88-24920
¹ßÇàÀÎ/ÆíÁýÀÎ: Á¤¿ë´Þ | Åë½ÅÆǸž÷½Å°í: ¼­¿ï°­³²-01549È£ | °³ÀÎÁ¤º¸°ü¸® ¹× û¼Ò³âº¸È£ Ã¥ÀÓÀÚ: ¹ÚÇϼ® | È£½ºÆà »ç¾÷ÀÚ: (ÁÖ)¾ÆÀ̳×ÀÓÁî
Copyright ¨Ï 2010 µ¥ÀÌÅͳÝ. All rights reserved. mail to webmaster@datanet.co.kr