Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÀûÓþ²Ì¬·ÖÎö¼Ó¹Ì¿ªÔ´ÈëÇÖ¼ì²âϵͳ(IDS)µÄ×î¼Ñʵ¼ù
 
À´Ô´£º51cto ·¢²¼ÓÚ£º 2017-10-24
  4599  次浏览      28
 

NSMÊÇ¡°ÔÚ¶Ô¸÷ÖÖÈëÇÖ½øÐмì²âºÍÏìÓ¦¹ý³ÌÖУ¬ËùÉæ¼°µ½µÄ±êʶºÍ¾¯¸æ»·½ÚµÄÊÕ¼¯¡¢·ÖÎöºÍÎÊÌâÉý¼¶¡±¡£NSMµÄºËÐŦÄܰüÀ¨ÈëÇÖ¼ì²âϵͳ(IDS)£¬»ùÓÚÍøÂçµÄIDS(NIDS)£¬Ö÷»úÈëÇÖ¼ì²âϵͳ(HIDS)ºÍÎïÀíÈëÇÖ¼ì²âϵͳ(ÎïÀíIDS)¡£·ÖÎöÈËÔ±ÔÚ²¿Êð֮ǰӦµ±ÆÀ¹ÀÖîÈçIDSºÍHIDSµÄÈí¼þ°ü¡£

ÎÒÃÇ¿ÉÒÔÓÃÐí¶à²»Í¬µÄ·½·¨À´ÆÀ¹À¸ø¶¨Èí¼þ°üµÄ°²È«Ë®Æ½£¬¶øÆäÖеÄÒ»ÖÖÊÇʹÓÃAberlarde°²È«ÏµÍ³¹¤³Ì·¨¡£ÕâÖÖ·½·¨ÔÚÈí¼þ¿ª·¢ÉúÃüÖÜÆÚ(SDLC)µÄ¸÷¸ö½×¶ÎÏêϸÆÀ¹ÀÁËÉÌÒµºÍ¿ªÔ´Èí¼þ°üµÄ°²È«ÌØÐÔ¡£¼ì²é¿ªÔ´Èí¼þµÄÓÅÊÆÔÚÓÚ¿ÉÒÔÖ±½Ó·ÃÎÊËüÃǵĴúÂ롣ͨ¹ýÕâÖÖÖ±½Ó·ÃÎʵķ½Ê½£¬¿ª·¢ÈËÔ±¿ÉÒÔʹÓÃÖîÈç´úÂë¼ì²éºÍ¾²Ì¬´úÂë·ÖÎöµÄ¸÷ÖÖ¼¼Êõ¡£

¾²Ì¬´úÂë·ÖÎö(SCA)ÊÇÔÚ²»Ö´ÐÐÈí¼þ±¾ÉíµÄÇé¿öÏÂÕÒ³ö´úÂëÎÊÌâµÄÒ»ÖÖ·½Ê½¡£ÎªÊµÏÖÕâһĿµÄ£¬SCAµÄÏà¹Ø¹¤¾ßͨ¹ýʹÓø÷ÖÖ¿ÉÄܵÄÊäÈëÊý¾Ý£¬À´Ä£Äâ´úÂëÖ´ÐеIJ»Í¬·ÖÖ§¿ÉÄÜÐÔ¡£SCA¹¤¾ßÄܼæ¹Ë·¢ÏÖÖÊÁ¿·½Ãæ

(ÈçCOPY_PASTE_ERROR£¬FORWARD_NULL£¬INCOMPATIBLE_CAST)ºÍ°²È«·½Ãæ(ÈçUNINIT£¬BUFFER_SIZEºÍUSE_AFTER_FREE)µÄÎÊÌâ¡£SCA¹¤¾ßͬʱҲÄÜÌá¹©Ò»Ð©ÌØ¶¨µÄÐÞ¸´£¬ÒԱ㿪·¢ÕßÓ¦Óõ½Ô´´úÂëÉÏ£¬À´¼õÉÙÈí¼þµÄȱÏÝÃܶȡ£ËüÊÇͨ¹ý×é¼þµÄ´óС(ͨ³£ÊÇ´úÂëµÄÖ¸¶¨ÐÐÊý)³ýÒÔȱÏݵÄÊýÁ¿£¬À´¼ÆËã³öȱÏݵÄÃܶȡ£ÔÚ2014Ä꣬¿ªÔ´Èí¼þµÄƽ¾ùȱÏÝÃܶÈΪ0.61ÿһǧÐдúÂë»ò³ÆKLOC¡£Ïà±È֮ϣ¬ÉÌÒµÈí¼þµÄȱÏÝÃܶÈÔòΪ0.76ÿKLOC¡£

ÎÒÃÇÓÐÐí¶àÔ´×ÔOWASPµÄ¾²Ì¬·ÖÎö¹¤¾ß¿É¹©Ñ¡Ôñ¡£×Ô´ÓCoverityɨÃè·þÎñÃæÊÀÒÔÀ´£¬¸Ã¹«Ë¾ÔÚ¹ýÈ¥µÄÊ®ÄêÀﱸÊÜÖõÄ¿¡£¿ªÔ´¿ª·¢ÕßÃÇÃâ·Ñ½«ËûÃǵĴúÂëÌá½»µ½Coverity»ùÓÚÔÆ·þÎñµÄɨÃè·þÎñÉÏ£¬ÒÔ½øÐзÖÎöºÍ¼ì²é¡£Coverity»¹¿ÉÔÚ¿Í»§µÄ±¾µØ»·¾³Öв¿ÊðÒ»¸öÉÌÒµ²úÆ·£¬ÒÔÌṩ¸÷ÖÖÏàͬµÄ·ÖÎö¹¤¾ß¡£±¾ÎĽ«½éÉÜCoverityµÄ¾²Ì¬´úÂë·ÖÎöÊÇÈçºÎÔÚ²»Í¬²¿Ê𳡾°ÖУ¬±»ÓÃÀ´É¨ÃèÄÇЩ×é³É°²È«Ñó´Ð(Security Onion)·¢ÐаæµÄÈí¼þ°ü¡£

°²È«Ñó´Ð

°²È«Ñó´ÐÊÇÓÉDoug Burksά»¤µÄÒ»¸öLinux·¢Ðа棬ÆäÖаüÀ¨ÍêÕûµÄÊý¾Ý°ü²¶»ñ¡¢NIDS¡¢HIDSºÍÒ»ÕûÌ×·ÖÎö¹¤¾ß¡£ÕâЩ¹¤¾ß°üÀ¨£º

1.netsniff-ng£ºÓÃÓÚÈ«Á¿Êý¾Ý°üµÄ²¶»ñ

2.Snort¡¢SuricataºÍBro for NIDS

3.OSSEC for HIDS

4.Sguil¡¢Squert¡¢Snorby¡¢and ELSA£ºÓÃÓÚÊý¾Ý·ÖÎö

Óëµ¥¶ÀÅäÖÃÿ¸ö¹¤¾ßÏà±È£¬Ê¹Óð²È«Ñó´Ð·¢Ðаæ¿ÉÒÔ½Úʡʱ¼ä¡£ÔÚ×ÅÊÖʹÓø÷¢ÐÐ°æ½øÐпª·¢Ö®Ç°£¬Çë×ñÑ­Burks 2016À´°²×°¡¢ÅäÖú͸üа²È«Ñó´Ð¡£Ò»µ©Íê³ÉÖ®ºó£¬¿ª·¢ÈËÔ±¾Í¿ÉÒÔ¼ì²é°²È«Ñó´ÐÈí¼þ°üµÄÔ´´úÂ룬ÒÔ·¢ÏÖ¸÷ÖÖ°²È«Â©¶´¡£

CoverityɨÃè

CoverityµÄÊ׸ö²¿ÊðÑ¡ÏîÊÇCoverityɨÃè¡£CoverityɨÃèÊÇÒ»ÖÖÔÆ·þÎñ£¬Ò²ÊÇÒ»¸öÃâ·ÑµÄ¿ªÔ´ÉçÇø£¬ÒÑ×¢²áµÄ¿ªÔ´¿ª·¢Õß¿ÉÒÔÉÏ´«ËûÃǵÄÔ´´úÂëÓÃ×÷·ÖÎö¡£CoverityµÄ¾²Ì¬·ÖÎöÒýÇæËæ¼´Ö´ÐжÔÔ´´úÂëµÄ·ÖÎö¡£Ö®ºó£¬¿ª·¢ÃǾͿɲ鿴½á¹û±¨¸æÖеĸ÷ÖÖÎÊÌ⣬²¢×ñÑ­¸ø³öµÄ½¨ÒéÀ´½â¾öÎÊÌ⣬ȻºóÔÙÖØÐÂÌá½»Ô´´úÂë¡£

CoverityɨÃèµÄʵÀý£ºWireshark

ÔÚʹÓÃCoverityɨÃèʱ£¬¿ª·¢ÈËÔ±Ò»°ã×ñÑ­Ëĸö²½Ö裺¹¹½¨¡¢·ÖÎö¡¢ÌύȱÏݺÍÉó²é½á¹û¡£ÔÚ¹¹½¨½×¶Î£¬Ô­Ê¼µÄ¹¹½¨ÃüÁî±»×÷Ϊ²ÎÊý´«µÝ¸øCoverityµÄÃüÁîÐУºcov-build¹¤¾ß¡£cov-buildµÄÖ¸ÁîÔËÓôøÓСªdirµÄ±ê¼Ç£¬ÔÚÖмäĿ¼Ï½øÐÐԭʼ¹¹½¨ºÍ´æ´¢ÐÅÏ¢¡£ÈÃÎÒÃÇÒÔWiresharkΪÀý£¬À´¿´¿´CoverityµÄÈçϱàÒëÃüÁ

$ cov-build --encoding UTF-8 \
--dir ~/cov-inter-wireshark make

ÔÚ·ÖÎö½×¶Î£¬ÖмäĿ¼±»ÊÖ¶¯¡¢»òÒ»¸öÁ¬Ðø¼¯³Éϵͳ(Èç Travis-CI)ÉÏ´«µ½CoverityµÄɨÃè´¦¡£´úÂë·ÖÎöÊÇÔÚCoverity·þÎñÆ÷ÉϽøÐе쬶ø²¢·Ç¿ª·¢ÈËÔ±µÄ±¾µØÏµÍ³Ö®ÉÏ¡£Coverity½«×Ô¶¯´¦ÀíÌύȱÏݵĽ׶Ρ£Í¨¹ýµÇ¼µ½CoverityÁ¬½ÓµÄÍøÂç½Ó¿Ú£¬¸÷¸öȱÏݽ«ÔÚÔ´´úÂëµÄÐÐÄÚÏÔʾ³öÉó²éµÄ½á¹û¡£

WiresharkÏîĿӵÓÐ×ÅCoverityɨÃèµÄÒ»Åú»îÔ¾Óû§¡£×Ô2006ÄêÒÔÀ´£¬ËûÃÇÐÞ¸´ÁËÊýÒÔǧ¼ÆµÄȱÏÝ¡£Èçͼ1Ëùʾ£¬Èí¼þµÄȱÏÝÃܶȷdz£µÍ£¬Ö»ÓÐ0.26ÿKLOC¡£

ͼ1£ºCoverityɨÃ裺Wireshark (https://scan.coverity.com/projects/wireshark)

CoverityµÄ±¾µØ·ÖÎö

Ïà¶ÔÓÚCoverityɨÃèµÄÔÆ·þÎñ¶øÑÔ£¬¿ª·¢ÕßÒ²¿ÉÒÔÑ¡Ôñ¹ºÂòCoverityµÄÉÌÓòúÆ·¡£ÉÌÒµ²úÆ·¿ÉÒÔ±¾µØÄ£Ê½ÔËÐÐÔÚËûÃǵÄÍøÂçÖ®ÖС£Ò»¸ö±ê×¼µÄCoverity²¿ÊðÒªÓõ½Á½Ì¨»úÆ÷£¬À´¹¹³É¿Í»§»ú/·þÎñÆ÷¼Ü¹¹¡£

°²È«Ñó´ÐÒ»°ã×÷Ϊ±¾µØ¿ª·¢Ö÷»ú£¬ÒÔ¿Í»§¶ËµÄ·½Ê½½«Æä½á¹û·¢Ë͵½CoverityµÄÊý¾Ý¿â·þÎñÆ÷ÉÏ¡£Ä¬ÈÏÇé¿öÏ£¬°²È«Ñó´ÐµÄÈí¼þ°üÒÔ¿ÉÖ´ÐÐÎļþµÄÐÎʽ±»°²×°¡£¿ª·¢ÈËÔ±±ØÐëÊÂÏÈÏÂÔØËü£¬È»ºó±àÒë²¢·ÖÎöÏàÓ¦µÄÔ´´úÂë¡£

¿ª·¢ÈËÔ±ÔÚ¿Í»§¶ËÖ÷»úÉÏÖ´ÐдúÂë·ÖÎö£¬¶ø²¢·ÇʹÓÃCoverityɨÃèµÄ·þÎñÆ÷¡£´æ´¢½á¹ûµÄÊý¾Ý¿âÊÇÔÚ±¾µØÍøÂçÉÏ£¬¶ø²»ÊÇÔÚCoverityɨÃèµÄ·þÎñÆ÷ÉÏ¡£Èçͼ2Ëùʾ£¬Í¨¹ýµÇ¼µ½CoverityµÄWeb·þÎñÆ÷£¬²¢Ñ¡ÔñºÏÊʵÄÏîÄ¿(Èç Wireshark)£¬±ã¿Éä¯ÀÀµ½¸÷ÖÖ²»Í¬µÄ½á¹û¡£

ͼ2£ºCoverityµÄÏîÄ¿²Ëµ¥

Èçͼ3Ëùʾ£¬Ò»µ©Ñ¡ÖÐÁËij¸öÏîÄ¿£¬¾Í¿ÉÒÔ¼ÌÐøÑ¡ÔñCoverityµÄ²Ëµ¥(ÈýµÀÏßµÄͼ±ê)£¬²¢Ñ¡Ôñ¡°¸ßΣ°²È«·çÏÕ¡±¡£

ͼ3£º¸ßΣ°²È«·çÏÕ¹ýÂËÆ÷

ÕâÕÅͼ½«ËùÓеÄCoverityȱÏݹýÂ˵½ÁËÒ»¸ö½ö°üÀ¨°²È«ÎÊÌâµÄ½ÏСÁбíÖ®ÖС£

ÐÞ¸´°²È«Â©¶´

ÔÚÐÞ¸´´úÂë֮ǰ£¬ÈÃÎÒÃÇÀ´¿´¿´ÈçºÎ¶ÔÈí¼þʹÓá°²»É˺¦Ô­Ôò(do no harm rule)¡±,ÒÔ¼°ÈçºÎ½«±àÒëÆ÷µÄ¾¯¸æÄÉÈ뾲̬·ÖÎöµÄÌåϵÖС£

²»É˺¦

¡°Ñ§Ð´Õû½àµÄ´úÂë²¢²»ÈÝÒס±¡£ÔÚ¿ªÊ¼µÄʱºò£¬Ô´´úÂë¿ÉÄÜÊÇÕû½àµÄ£¬µ«Ëæ×Åʱ¼äµÄÍÆÒÆËü»á±äµÃ¡°Ô½À´Ô½ÔÓÂÒ¡±¡£¶ÔÓÚÒ»¸öÓÅÐãµÄ¿ª·¢ÈËÔ±¶øÑÔ£¬¼ÈÒª»áдԴ´úÂ룬ҲҪ»áÔĶÁ¡£Èç¹û²»ÊìϤ´úÂëµÄ¶ÁÓëд£¬ÈëÇÖ·ÖÎöÈËÔ±½«»áÃæÁÙ¼è¾ÞµÄÌôÕ½¡£

¡°ÎÒÃÇ¿ÉÒÔ½«ÃÀ¹úͯ×Ó¾üµÄÒ»¸ö¼òµ¥¹æÔòÔËÓõ½ÎÒÃǵÄרҵÁìÓò£ºÔÚÀ뿪ӪµØÊ±£¬½«Æä´òɨµÃ±ÈÄã·¢ÏÖËüʱ¸ü¸É¾»¡£Èç¹ûÎÒÃǶ¼ÄÜÔÚ´úÂëÇ©Èëʱ£¬Ê¹Æä±È±»Ç©³öʱ¸ü¼ÓÕû½à£¬ÄÇô´úÂë¾Í»á²»ÐàÁË¡£¡±¡£

¡°²»É˺¦Ô­Ôò¡±ÓÐÁ½¸öºÃ´¦£º¿ª·¢ÈËÔ±ÄÜÌá¸ß×Ô¼ºµÄ±à³Ì¼¼ÇÉ£¬Í¬Ê±Ô­´´×÷ÕßÒ²»áÈϿɿª·¢ÕßÊǸºÔðÈεÄÅû¶(responsible disclosure)¡£

±àÒëÆ÷µÄ¾¯¸æ

¾²Ì¬´úÂë·ÖÎöµÄÁíÒ»¸ö·½ÃæÊDZàÒëÆ÷µÄ¾¯¸æ¡£ÈËÃdz£ÖØÊÓ´úÂëÊÇ·ñÄܱàÒëͨ¹ý£¬¶øºöÊÓÁ˱àÒëÆ÷µÄ¸÷ÖÖ¾¯¸æ¡£ÎÒÃÇÒÔdaq-2.0.6³ÌÐò°üΪÀý£¬Îļþdaq_afpacket.cµÄµÚ859ÐÐÉùÃ÷ÁËÒ»¸ö±äÁ¿rc£º

int rc

µÚ866Ðаüº¬ÁË£º

rc = send(instance->peer->fd, NULL, 0, 0)

¶ø±àÒëÆ÷µÄ¾¯¸æÊÇ£º

daq_afpacket.c:859:25: warning: variable ¡®rc¡¯ set but not used
[-Wunused-but-set-variable] int rc

±àÒëÆ÷»á¸æÖª¿ª·¢ÈËÔ±£ºÀ´×Ôµ÷Óú¯Êýsend()µÄ·µ»ØÖµÉèÖÃÁ˱äÁ¿rc£¬µ«ÊÇrc²¢Ã»ÓÐÔÚºóÃæµÄº¯ÊýÖб»Ê¹Óõ½¡£Òò´ËÒ»ÖÖ½â¾ö·½°¸ÊÇ£ºÉ¾³ýµÚ859ÐУ¬²¢½«µÚ866ÐиÄΪ£º

(void) send(instance->peer->fd, NULL, 0, 0)

ÕâÖÖÐÞ¸ÄÆÁ±ÎÁ˱àÒëÆ÷¾¯¸æ£¬²¢¾¡¿ÉÄܵØÌù½üԭʼ´úÂ롣ͨ¹ý½«send()µÄ·µ»ØÖµµ÷Ó÷ÖÅ䏸(void)£¬Ä¿Ç°µÄ´úÂë¾Í»áºöÂÔËüÁË¡£ÁíÒ»ÖÖ¿ÉÄÜÐԵĽâ¾ö°ì·¨ÊÇ£ºÔÚµÚ866Ðкó£¬Ìí¼Ó¶îÍâµÄ´úÂ룬ÒÔ¼ì²ércËùÓеķµ»ØÖµ¡£ÕâÑùÐÞ¸ÄÁ˳ÌÐòµÄÖ´ÐУ¬Òò´ËÐèÒªÓÉά»¤ÈËÔ±½øÐÐÉó²é¡£

±àÒëÆ÷Ò²¾ßÓС°ÊÓ¾¯¸æÎª´íÎó¡±µÄÄÜÁ¦¡£Èç¹û¿ªÆôÁ˴˹¦ÄÜ£¬Ôò»áÓÐÒæÓÚÔڷֽ׶εÄÏîÄ¿ÖÐÒýÈë±àÂëµÄ¹æÔò¡£¿ª·¢ÈËÔ±Äܹ»Ò»´ÎÖ»¿ªÆôÒ»¸ö¾¯¸æ£¬Öð¸öÐÞ¸´£¬Ö®ºóÔÚʱ¼äÔÊÐíµÄÇé¿öÏ£¬ÔÙ´ò¿ª¶îÍâµÄ¾¯¸æ¡£±ÈÈ磺ÔÚAdobe PhotoshopÖУ¬±àÒëÆ÷¾Í¾ßÓпªÆô¡°ÊÓ¾¯¸æÎª´íÎó¡±µÄÑ¡ÏÒÔʹ¿ª·¢ÍŶÓÌá¸ßÕûÌå·¢ÏÖÄÜÁ¦¡£Èç¹ûÔÚ¹¹½¨ÏµÍ³Ê±Á¬Ðø³öÏÖеıàÒëÆ÷¾¯¸æ£¬²¢Óй¹½¨µÄʧ°Ü£¬ÄÇôÍŶӾÍÄÜѸËÙ·¢ÏÖÕâЩ´íÎ󡣿ªÆô¡°ÊÓ¾¯¸æÎª´íÎó¡±µÄÁíÒ»¸öÔ­ÒòÊÇ£º¾¡Á¿¼õÉÙ¸÷ÖÖ¾²Ì¬·ÖÎöµÄȱÏÝ£¬´Ó¶øÔÚÌí¼ÓÆäËû¹¤¾ß֮ǰ£¬Í¨¹ý±àÒëÆ÷µÄ°ïÖú£¬¸üºÃµØÔÚ´úÂë²ãÃæÉÏÏû³ýÄÇЩȱÏÝ¡£

CoverityµÄ¸÷ÖÖ°²È«¼ì²é

CoverityµÄ7.7°æ±¾ÓÐ×ÅÆßÊ®¶àÖÖÊÊÓÃÓÚCºÍC++µÄ¼ì²é£¬ÆäÖÐÓÐÊ®°ËÏîÊÇ×¢ÖØ°²È«ÎÊÌâµÄ¡£±¾½Ú½«Öصã½éÉÜUNINIT£¬BUFFER_SIZEºÍUSE_AFTER_FREE¡£

1. UNINIT

ÔÚANSI CÓïÑÔÖУ¬¡°±äÁ¿µÄ³õʼÄÚÈÝÊDz»È·¶¨µÄ¡±¡£ÓÉÓÚ¸ÃÓïÑÔÔÊÐí¸÷ÖÖ±äÁ¿ÔÚ¶¨Òåʱ²»±»³õʼ»¯£¬Òò´Ë¾­³£ÓдóÁ¿µÄûÓÐÏÔʽ³õʼ»¯µÄ±äÁ¿ÔÚCÓïÑÔ´úÂëÖС£Ò»Ð©´úÂëÔÚ±äÁ¿ÉùÃ÷Ö®ºó±»Á¢¼´¸³Öµ£¬Òò´ËÍê³ÉÁ˳õʼ»¯¡£¶øÓÐʱ£¬±àÒëÆ÷»á×Ô¶¯½«±äÁ¿¸³ÖµÎªÁã¡£Òò´Ë¿ª·¢ÈËÔ±±ØÐë¼ÇסÕâЩ¹æÔò£¬ÕâÒ²¾Í¸øÈí¼þ±à³ÌÁôÏÂÁ˰²È«Òþ»¼¡£ËäÈ»ÒÑÓÐÕë¶ÔCÓïÑÔ¸ÃÎÊÌâµÄ½â¾ö°ì·¨£¬µ«ÏÖÈç½ñ£¬¶ÔÓÚ¿ª·¢ÕßÀ´Ëµ»¹ÊÇÐèÒª¼ÇסÕâЩ¹æÔòµÄ¡£

Ïû³ýÕâЩÎÊÌâµÄÒ»ÖÖ·½·¨ÊÇʹÓÃCoverityµÄ°²È«¼ì²é--UNINIT¡£UNINIT²éÕÒδ³õʼ»¯µÄ¶ÑÕ»±äÁ¿£¬ÒÔ¼°ÔÚ¶ÑÉϱ»¶¯Ì¬·ÖÅäµÄ¡¢¿ÉÄܻᵼÖ±ÀÀ£»ò°²È«ÎÊÌâµÄÄÚ´æ¡£ÔÚÎļþsf_bpf_filter.cµÄµÚ222ÐÐÖУ¬daq-2.0.6³ÌÐò°üÉùÃ÷ÁËÒ»¸öint32ÀàÐ͵ġ¢ÃûΪMEMµÄÊý×é¡£

ͼ4£ºmemµÄÉùÃ÷

µÚ406ÐÐÔÚδ³õʼ»¯µÄÌõ¼þÏÂʹÓÃmem¡£

ͼ5£ºmemµÄ·ÖÅä

ÈçͼÖеÄÂÌÉ«´úÂëËùʾ£¬Coverityͨ¹ýÑ­»·Ö´ÐÐËùÓеĴúÂë·¾¶À´·ÂÕæÔËÐС£·ÂÕæ·¢ÏÖÁË£ºÔÚÖÁÉÙÒ»ÖÖÌõ¼þÏ£¬±äÁ¿MEMÔÚ³õʼ»¯Ö®Ç°±»·ÖÅ䏸Á˱äÁ¿A¡£Òª½â¾ö´ËÎÊÌ⣬ÐèÃ÷È·µØ½«ÈçϵÚ222ÐеÄÊý×é½øÐÐÈ«ÁãʽµÄ³õʼ»¯¡£

int32 mem[BPF_MEMWORDS] = {0}

2. BUFFER_SIZE

Michael HowardºÍDavid LeBlancÔÚ¡¶±àд°²È«´úÂë¡·Ò»ÊéÖÐÌáµ½£º¡°Ò»¸ö»º³åÇøÒç³öȱÏÝËùÐèÒªµÄ¶ÔÓ¦°²È«²¹¶¡µÄ³É±¾£¬ÓÐʱ»á¸ß´ï$100,000¡±¡£CoverityµÄ°²È«¼ì²é--BUFFER_SIZEÄܹ»°ïÖú¿ª·¢ÈËÔ±ÕÒµ½£¬²¢ÐÞ¸´ËûÃÇC/C++´úÂëÀïËù°üº¬µÄ¸÷ÖÖ»º³åÇøÈ±ÏÝ¡£ÎÒÃÇÒÔsnort-2.9.8.0³ÌÐò°üΪÀý£¬Îļþencode.cµÄµÚ962Ðгõʼ»¯ÁËPROTO_IDµÄ¸÷ÖÖ¿ÉÄܱäÁ¿ÀàÐÍ£¬Ö±µ½PROTO_MAX¡£PROTO_MAXÊÇPROTO_IDö¾Ù¶¨ÒåµÄ×îºóÒ»¸öÔªËØ£º

typedef enum {
PROTO_TCP
PROTO_UDP
..............
PROTO_MAX } PROTO_ID;

Èçͼ6Ëùʾ£¬µÚ960Ðж¨ÒåÁ˹¦Äܺ¯ÊýUDP_Encode¡£

ͼ6£ºÔ½½ç¶ÁÈ¡µÄʾÀý

ÂÌÉ«µÄ´úÂëÏÔʾÁËCoverityËùÓõ½µÄÖ´Ðз¾¶¡£´ÓNextEncoderº¯Êý·µ»ØµÄÖµ±»´æ·ÅÔÚPROTO_IDµÄÏÂÒ»¸öÀàÐÍÖС£Òò´Ë´æÔÚ×ÅÈçϵÄÇé¿ö£ºÆä·µ»ØµÄÖµ¿ÉÄÜÊÇPROTO_MAX¡¢»ò22£¬ÕâÊÇö¾ÙµÄ×îºóÒ»¸öÔªËØ¡£ÒòΪÊý×éµÄË÷ÒýʼÓÚ0¶ø²»ÊÇ1£¬µÚ992ÐÐËùÖ¸¶¨µÄÏÂÒ»¸öλÖÃËäÈ»³¬Ô½ÁËÊý×éĩ⣬µ«ÊǻᱻË÷Òýµ½±àÂëÆ÷Êý×éÖ®ÖС£ÎªÁË·ÀÖ¹ÕâÖÖ»º³åÇøÒç³öµÄ¿ÉÄÜ£¬ÔÚËü±»Ë÷Òýµ½±àÂëÆ÷Êý×é֮ǰ£¬ÎÒÃÇ¿ÉÒÔÓÃif/elseÓï¾ä½«µÚ992ÐС°¾í»ØÀ´¡±£¬ÒÔ¼ì²éÆäÏÂÒ»¸öÊÇ·ñÈÔȻСÓÚPROTO_MAX¡£

3.USE_AFTER_FREE

¶¨Òå¸÷ÖÖ±äÁ¿Ê±£¬Ò»°ãΪËüÃÇÔÚÄÚ´æÖб£ÁôÒ»¸öλÖᣵ±³ÌÐòÃ÷È·µØÓ¦¸ÃÊÍ·ÅÄÚ´æÊ±£¬¿ª·¢ÈËÔ±ÐèҪȷ±£±»ÊͷŵÄÄÚ´æ²»»áÔÙÓб»Ê¹ÓõĿÉÄÜ¡£ÒÔ²»¹æ·¶µÄ·½Ê½Ê¹ÓÃÄڴ棬¿ÉÄܻᵼÖ²»¿ÉÔ¤²âµÄ½á¹û£¬ºÍ±»ÀûÓõĿÉÄÜ¡£

Ïû³ýÕâЩÎÊÌâµÄÒ»ÖÖ·½·¨ÊÇʹÓÃCoverityµÄ°²È«¼ì²é--USE_AFTER_FREE¡£ÎÒÃÇÒÔnetsniff-ng-0.6.0³ÌÐò°üΪÀý£¬ÔÚÎļþcurvetun_client.cµÄµÚ304ÐÐÖУ¬ÉùÃ÷Ò»¸öÖ¸ÕëÈ¥Ö¸ÏòÒ»¸ö³ÆÎª¡°Ç°µ¼(ahead)¡±µÄÊý¾Ý½á¹¹¡£Èçͼ7Ëùʾ¡£

ͼ7£ºnetsniff-ng ¨C ǰµ¼ÉùÃ÷

Èçͼ8Ëùʾ£¬µÚ339Ðн«Ç°µ¼Ö¸Õë·ÖÅ䏸ai¡£

ͼ8£ºÇ°µ¼Ö¸Õ븳ֵ

CoverityÔÚµÚ358Ðз¢ÏÖǰµ¼Ö¸ÕëÒѱ»ÊÍ·Å¡£µÚ367ÐеÄgotoÓï¾ä½«³ÌÐòµÄÖ´ÐÐÌø×ªµ½µÚ311ÐС£ÏÂÒ»´Îͨ¹ýÔÚµÚ339ÐеÄÑ­»·£¬Ö¸ÕëÔÚδ±»ÊÂÏȼì²éΪNULLµÄÇé¿öÏ£¬±»·ÖÅ䏸ÁËai¡£Òª½â¾ö´ËÎÊÌ⣬Ӧµ±Ìí¼ÓÒÔÏ´úÂëµ½µÚ358ÐÐÖ®ºó£¬½«Ö¸ÕëÉèÖÃΪNULL¡£

ahead = NULL

¸ºÔðÈεÄÅû¶

ÐÞ¸´Á˸÷ÖÖ©¶´Ö®ºó£¬¿ª·¢ÈËÔ±ÓÐÔðÈÎÏòά»¤ÈËÔ±Åû¶Æä³ÌÐò´úÂë¡£¶ÔÓÚÏñʹÓõ½GitHubµÄWiresharkÖ®ÀàµÄÏîÄ¿£¬¸÷ÖÖÐÞ¸´ÏîÄ¿Îĵµ(ÈçWireshark¿ª·¢ÕßÖ¸ÄÏ,2014)£¬±»ÒÔ¡°git push¡±µÄÃüÁîÓèÒÔÌá½»¡£ÆäËûµÄÏîĿҲ»áÓÐÓʼþÁÐ±í£¬»òȱÏݸú×ÙϵͳÓÃÓÚ¸÷ÖÖÐÞ¸´µÄÌá½»¡£

δÀ´µÄ¹¤×÷

ÔÚ2016Äê1Ô£¬Coverity·¢²¼Á˾²Ì¬·ÖÎö¹¤¾ßµÄ8.0°æ±¾£¬ÆäÖÐÒ»¸öÖ÷ÒªµÄй¦ÄÜÊǾßÓзÖÎöPython´úÂëµÄÄÜÁ¦¡£°²È«Ñó´Ð°üº¬Ò»ÖÖ±»³ÆÎªScapyµÄÊý¾Ý°ü´¦Àí¹¤¾ß¡£ScapyÕýÔÚ±»ÈÕÒæÆÕ¼°£¬ÓÈÆäÊÇÔÚ¹¹½¨ÎïÁªÍøÊ±£¬¿É±»ÓÃÀ´·ÖÎöÈëÇֺ͵÷²é¸÷ÖÖÉ豸¡£Î´À´µÄÏîÄ¿»¹»áÈ¥¼ì²éScapyµÄ¾²Ì¬´úÂë·ÖÎö½á¹û¡£

½áÂÛ

ÀûÓÿªÔ´IDS¼Ó¹Ì¼ÆËã»úÍøÂ磬ÐèÒªÈëÇÖ·ÖÎöÈËÔ±Á˽âϵͳÀï¸÷ÖÖÈí¼þ°üµÄ°²È«ÌØÐÔ¡£Í¨¹ýÕë¶ÔIDSµÄÈí¼þ¾²Ì¬´úÂë·ÖÎö£¬·ÖÎöÈËÔ±»á¶Ô¿ªÔ´Èí¼þËùÌṩµÄ°²È«ÌØÐÔ¸üΪÁ˽⡣

id Software¹«Ë¾µÄÁªºÏ´´Ê¼ÈËJohn CarmackÔøËµ£º¡°×÷Ϊһ¸ö³ÌÐòÔ±£¬½üÄêÀ´ÎÒËù×öµÄ×îÖØÒªµÄÊÂÇé¾ÍÊÇ£º»ý¼«µØÍƽøÁ˾²Ì¬´úÂë·ÖÎö¡£¡±Õâ¾ÍÊÇÕâλ×îÓÐÃûµÄÈí¼þ¿ª·¢Õ߸ø´ó¼ÒµÄÓйØÈëÇÖ·ÖÎöµÄ×î¼Ñʵ¼ù¡£

   
4599 ´Îä¯ÀÀ       28
 
Ïà¹ØÎÄÕÂ

iOSÓ¦Óð²È«¿ª·¢£¬Äã²»ÖªµÀµÄÄÇЩÊÂÊõ
Web°²È«Ö®SQL×¢Èë¹¥»÷
ÒÆ¶¯APP°²È«ÔÚÉøÍ¸²âÊÔÖеÄÓ¦ÓÃ
´ÓGoogle±¸·Ý»¥ÁªÍø¿´¡°Êý¾Ý°²È«¡±
 
Ïà¹ØÎĵµ

web°²È«Éè¼ÆÓë·À»¤
»¥ÁªÍøº£Á¿ÄÚÈݰ²È«´¦Àí¼¼Êõ
ºÚ¿Í¹¥»÷Óë·À·¶¼¼Êõ
WEBºÚºÐ°²È«¼ì²â
 
Ïà¹Ø¿Î³Ì

WEBÍøÕ¾ÓëÓ¦Óð²È«Ô­ÀíÓëʵ¼ù
webÓ¦Óð²È«¼Ü¹¹Éè¼Æ
´´½¨°²È«µÄJ2EE WebÓ¦ÓôúÂë
ÐÅÏ¢°²È«ÎÊÌâÓë·À·¶