|
|
 |
Á¤ÀûºÐ¼®µµ±¸ - C, C++, C# »ê¾÷ Ç¥ÁØ Áö¿ø
C, C++, C# Á¤ÀûºÐ¼®µµ±¸´Â Àüü ÇÁ·Î±×·¥ ³»ÀÇ ÇÏÀ§ ÇÁ·Î±×·¥°ú ÇÔ¼öÀÇ ¿Ã¹Ù¸¥ ½ÇÇà ¼ø¼¿¡ µû¶ó µ¥ÀÌÅÍ È帧 ºÐ¼®(data-flow analysis)À» ÅëÇØ »ý¼ºµÈ °¢ °æ·Î¸¦ ±â¹ÝÀ¸·Î ÄÚµåÀÇ ÇöÀç »óŸ¦ ºÐ¼®ÇÏ¿© ÄÚµåÀÇ °áÇÔÀ̳ª Ãë¾àÁ¡À» Á¡°ËÇÏ´Â µµ±¸ÀÌ´Ù.
ÀÓº£µðµå ÄÚµù °¡À̵åÀÎ MISRA-C(2023) & MISRA-C++(2023)Àº ÄÚµåÀÇ ½Å·Ú¼º°ú ¾ÈÁ¤¼ºÀ» °ËÁõÇϱâ À§Çؼ, ÀÚµ¿Â÷, ÀüÀÚ, ¿ìÁÖ Ç×°ø, Åë½Å, ÀÇ·á, ±¹¹æ µî Á¦Á¶ ºÐ¾ß¿¡¼ ÀÓº£µðµå ½Ã½ºÅÛ °³¹ßÀÇ ÄÚµù Ç¥ÁØÀ¸·Î ³Î¸® »ç¿ëÇϰí ÀÖ½À´Ï´Ù.
ÃÖ±Ù, ³»¿¬±â°üÂ÷¿¡¼ Àü±âÂ÷·Î ´ëÀüȯÇÏ´Â °úÁ¤¿¡¼ ¹Ì·¡ ÀÚµ¿Â÷ Â÷·®¿¡ žÀçµÇ´Â ÀÚÀ² ÁÖÇà, °øÀ¯¼ºñ½º µîÀÇ ¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇÑ ½Å·Ú¼º°ú º¸¾È¼ºÀ» ³ôÀ̱â À§ÇØ Â÷·®¿ë ÀÓº£µðµå ¼ÒÇÁÆ®¿þ¾î¿¡¼ ¿ä±¸µÇ´Â Á¤º¸º¸È£ ¼ºñ½º(±â¹Ð¼º, ¹«°á¼º, °¡¿ë¼º, ÀÎÁõ)ÀÇ È®º¸°¡ ÄÚµù ´Ü°è¿¡¼ ÇʼöÀûÀ¸·Î ¿ä±¸µÇ°í ÀÖ½À´Ï´Ù.
|
 |
±¹³»¿Ü »ê¾÷ ÄÚµù Ç¥ÁØ Áؼö
ÄÚµù °¡À̵å: MISRA-C(2012, 2023), MISRA-C++(2008, 2023), AUTOSAR C++14, JSF++, MS C# Coding Convention µî
Run-time °¡À̵å(CWE 4.17): CWE-658 (C: 92±ÔÄ¢), CWE-659 (C++: 92±ÔÄ¢)
(±¹¿Ü) º¸¾È Ãë¾àÁ¡: CWE(4.17), OWASP(2021), CERT-C/C++
(±¹³») º¸¾È Ãë¾àÁ¡: SW °³¹ß º¸¾È °¡À̵å(49±ÔÄ¢), ±ÝÀ¶ ITºÎ¹®/±¹Á¤¿ø Ãë¾àÁ¡
(Other Code Assurance) SQL, Code Metrics, ¸ÞŸ µ¥ÀÌÅÍ °ËÁõ µî
¾ð¾î ÄÄÆÄÀÏ·¯ ¹öÀü
(C Language Standard) C99, C11, C18 Áö¿ø
(C++ Language Standard) C++03, C++11, C++14, C++17, C++20 Áö¿ø
(C# Language Standard) C#5, C#6, C#7, C#7.3 Áö¿ø
(2nd Code Analysis) SQL µî
ÁÖ¿ä ±â´É
(No Compile Step) ÄÄÆÄÀÏ ºôµå °úÁ¤ÀÌ ¾ø´Â ¼Ò½º ÄÚµå ºÐ¼®(Àüü/ºÎºÐ ÄÚµå ºÐ¼®)
(no False Positive) Inter-procedural Path Analysis ±â¹Ý ¼Ò½º ÄÚµå ºÐ¼®/°ËÁõ
- (defect message) °áÇÔ »ó¼¼ ¼³¸í, °áÇÔ ¿øÀÎÀÇ ¹®Àå°ú À§Ä¡ ¸Þ½ÃÁö
(no Rule Option) °æ·Î È帧 ±â¹Ý ÄÚµå ¹®¸ÆÀÇ ºÐ¼®°ú Ãß·ÐÀ¸·Î ¿É¼Ç ºÒÇÊ¿ä
(Rule Design) "One Guide to One Rule"ÀÇ ±ÔÄ¢ ¼³°è (Áߺ¹ ±ÔÄ¢/Á¡°Ë ¿¹¹æ)
(Exception Code Process) ¿¹¿Ü ÄÚµå ÀÚµ¿ µî·Ï ¹× °ü¸®·Î Á¡°Ë½Ã ÀÚµ¿ Á¦¿Ü
(SDLC Chain) Á¤ÀûºÐ¼®µµ±¸°ú Çü»ó°ü¸®½Ã½ºÅÛÀÇ ¿¬µ¿À¸·Î ÄÚµå Á¡°Ë ÀÚµ¿È
(Plug-in) Eclipse, Visual Studio, Jenkins µî ´Ù¼ö
±¹Á¦ ¾ÈÀü¼º ¿ä±¸»çÇ× Áö¿ø
ISO 26262(Automotive), DO 178(Aerospace), IEC 61508(Industrial), EN 50128(Railway), IEC 62304(Medical) µî
ÁÖ¿ä °í°´
ÀüÀÚ, Á¦Á¶, ÀÚµ¿Â÷ µî ´ë±â¾÷ÀÇ Àü»ç Ç¥ÁØ µµ±¸
Áõ±Ç»çÀÇ Àü»ç Ç¥ÁØ µµ±¸
±¹Ã¥/¹æ»ê/º¸¾È ¿¬±¸¼ÒÀÇ ½Å·Ú¼º/¾ÈÀü¼º/º¸¾È¼º Á¡°ËÀÇ Ç¥ÁØ µµ±¸
¹«±âü°è ¼ÒÇÁÆ®¿þ¾î Á¤Àû ½ÃÇè µµ±¸
±¹Ã¥¿¬±¸°úÁ¦
|
|
|
|
|