PGµç¾º

ÐÂÎŶ¯Ì¬
µ±Ç°Î»ÖãºÊ×Ò³ > ÐÂÎŶ¯Ì¬

eBPF¼¼Êõʵ¼ù°×ƤÊ龫ѡ£º»ùÓÚeBPFµÄÐÂÒ»´úÖ÷»ú°²È«½â¾ö·½°¸

2024-03-12

ÔÚµ±½ñÊý×Ö»¯Ê±´ú£¬²Ù×÷ϵͳ°²È«µÄÖØÒªÐÔÓú·¢Í»ÏÔ¡£Linux²Ù×÷ϵͳ©¶´ÆØ³öƵÂʳÊÏÖÖðÄêÉÏÕǵÄÇ÷ÊÆ£¬ÐÂÐ͹¥»÷²ã³ö²»Ç¹¥»÷ÕßÀûÓ鶴ʵÏÖȨÏÞÌáÉý¡¢ÒµÎñ¹Ø¼üÐÅÏ¢µÄ»ñÈ¡µÈ£¬ÑÏÖØÆÆ»µÁ˲Ù×÷ϵͳµÄ»úÃÜÐÔ¡¢¿ÉÓÃÐÔºÍÍêÕûÐÔ¡£

Ò». ´«Í³½â¾ö·½°¸ÃæÁÙÌôÕ½

´«Í³°²È«¼ì²âºÍ·ÀÓù·½°¸²ÉÓÃÄÚºËÄ£¿é¼¼Êõ£¬ÄÚºËÄ£¿é¼¼ÊõÊÇͨ¹ý±àдÄÚºËÄ£¿éÀ´À©Õ¹²Ù×÷ϵͳµÄ¹¦ÄÜ£¬ÄÚºËÄ£¿é¿ÉÒÔÖ±½Ó·ÃÎʺÍÐ޸IJÙ×÷ϵͳÄںˣ¬¿ÉÒÔʵÏָ߼¶±ð¿ØÖƺͷḻµÄ¹¦ÄÜ£¬µ«±àд²»µ±µÄÄÚºËÄ£¿é¿ÉÄܵ¼ÖÂÄں˱ÀÀ£»òÒýÈ밲ȫ©¶´¡£

eBPFÌṩÁËÒ»ÖÖ°²È«¡¢¿É±à³ÌµÄ·½Ê½À´À©Õ¹Äں˹¦ÄÜ£¬eBPF³ÌÐòÔÚÄÚºËÖÐÔËÐÐʱ»áÊܵ½ÑϸñµÄ°²È«ÏÞÖÆ£¬Òò´Ë²»»á¶ÔϵͳµÄÎȶ¨ÐԺͰ²È«ÐÔ²úÉúÖ±½ÓÓ°Ï죬¿ÉÒÔʵÏÖÉî¶ÈµÄϵͳ¹Û²âÄÜÁ¦ºÍ×Ô¶¨ÒåÀ©Õ¹ÄÜÁ¦¡£

¶þ. »ùÓÚeBPFµÄÐÂÒ»´úÖ÷»ú°²È«½â¾ö·½°¸

PGµç¾ºÐÅÏ¢ÔÆÂÍ·þÎñPGµç¾º¹ÙÍø²Ù×÷ϵͳKeyarchOSÌṩÇáÁ¿»¯µÄ°²È«·ÀÓù×é¼þKSecure£¬²ÉÓÃeBPF¼¼Êõ·Ïߣ¬ÌṩÖ÷»ú°²È«¼ì²âºÍ·ÀÓùÄÜÁ¦£¬ÔÚÔöÇ¿²Ù×÷ϵͳ°²È«ÐԺͺϹæÐÔµÄͬʱ£¬½â¾ö´«Í³ÄÚºËÄ£¿é·½Ê½´øÀ´µÄϵͳÎȶ¨ÐÔºÍÐÔÄÜÎÊÌâ¡£

1.Ö÷Òª¹¦ÄÜ

KSecure°²È«·ÀÓù×é¼þµÄÖ÷Òª¹¦ÄÜÈçÏ£º

£¨1£©¹Ø¼üÎļþ/½ø³Ì·À»¤£ºÖ§³ÖÎļþºÍĿ¼µÄ·À»¤£¬·ÀÖ¹ºËÐÄÒµÎñÎļþ±»´Û¸Ä¡¢É¾³ýµÈÐÐΪ¡£Ö§³Ö¹Ø¼ü½ø³Ì·À»¤£¬±£»¤ºËÐÄÒµÎñ½ø³Ì²»±»¶ñÒâÖÕÖ¹¡¢É¾³ý¡¢ÐÅÏ¢×¢È룻

£¨2£©Ö÷»úÈëÇÖ¼ì²â£º»ùÓÚ¹æÔòÒýÇæ¿ÉÒԶԺڿ͵ÄÈëÇÖÐÐΪ½øÐмì²âºÍ×Ô¶¯´¦Ö᣻ùÓÚ¡°ÓÕ¶ü¡±ÐÐΪ¼à²âµÄÀÕË÷²¡¶¾·ÀÓù£¬¼°Ê±·¢ÏÖºÍ×èÖ¹ÀÕË÷²¡¶¾¼ÓÃÜÐÐΪ£»

£¨3£©°²È«»ùÏß¼ì²â£º»ùÓڵȱ£ºÍCIS±ê×¼ÐγÉ֪ʶ¿â£¬Ìṩ»ùÓÚÄ£°åµÄ»ùÏß¼ì²â¡¢ÐÞ¸´ºÍ»ØÍ˹¦ÄÜ¡£°ïÖú·¢ÏÖÉí·Ý¼ø±ð¡¢·ÃÎÊ¿ØÖÆ¡¢°²È«É󼯡¢ÈëÇÖ·À·¶¡¢Ê£ÓàÐÅÏ¢±£»¤µÈ·½ÃæÇ±Ôڵݲȫ·çÏÕ£¬Ö§³Ö»ùÏßÖµ×Ô¶¨ÒåºÍÁé»îÀ©Õ¹£»

£¨4£©°²È«¹ÜÀí£ºÖ§³Ö°²È«ÌØÐÔ¶¯Ì¬¼ÓÔØ¡¢¶Ô°²È«×é¼þCPU×ÊÔ´Õ¼ÓÃÏÞÖÆ¡¢°²È«²ßÂÔÈȼÓÔØ¡¢·þÎñÆôÍ£µÈ¹ÜÀíµÈ¹¦ÄÜ¡£

ÆÁÄ»½ØÍ¼ 2024-02-19 105126.png

ͼ KSecure°²È«×é¼þ¹¦Äܼܹ¹Í¼


2.ÕûÌå¼Ü¹¹

»ùÓÚeBPFµÄϵͳÄÚ¶à²ã´Îhook¼¼Êõ£¬½«eBPF³ÌÐòhookµ½²Ù×÷ϵͳÄں˵Ķà¸ö²ã¼¶£¨LSM¡¢syscall¡¢network¡¢kprobeÄں˺¯Êý£©£¬ÆäÖÐLSM¡¢syscall¡¢networkµÄhookµã¾ßÓÐ¼à¿ØºÍÀ¹½ØÄÜÁ¦£¬kprobeÄں˺¯ÊýhookµãÖ»¾ßÓÐ¼à¿ØÄÜÁ¦¡£Í¨¹ýÔÚ¸÷¸öhookµã¼ÓÔØ°²È«²ßÂÔʵÏÖ¶ÔϵͳºÍÓ¦ÓóÌÐòÐÐΪµÄ¼à¿ØºÍÀ¹½Ø¡£

ÆÁÄ»½ØÍ¼ 2024-02-19 105126.png

ͼ KSecure°²È«×é¼þ¼¼Êõ¼Ü¹¹Í¼

3.¹Ø¼ü¼¼Êõ

ÔÚKSecure°²È«×é¼þÖУ¬Éæ¼°ÈçÏÂÁ½¸ö¹Ø¼ü¼¼Êõ¡£

3.1 eBPF-LSM hook¼¼Êõ

LSM£¨Linux Security Modules£©ÊÇLinuxÄÚºËÖÐÓÃÓÚÖ§³Ö¸÷ÖÖPGµç¾º¹ÙÍø»ú°²È«Ä£Ð͵Ŀò¼Ü£¬ÓÃÓÚÔÚLinuxÄÚºËÖÐʵÏÖ°²È«²ßÂÔºÍÇ¿ÖÆ·ÃÎÊ¿ØÖÆ¡£Linux Kernel 5.7ÒýÈëÁËLSMÀ©Õ¹eBPF£¨¼ò³ÆBPF-LSM£©£¬¶øÎÞÐèÅäÖÃLSMÄ£¿é£¨SELinux¡¢AppArmorµÈ£©»ò¼ÓÔØ×Ô¶¨ÒåÄÚºËÄ£¿é£¬Í¨¹ýÔÚLSM²ãÃæµÄÎļþ¡¢½ø³Ì¡¢ÍøÂçµÈhook¼ÓÔØeBPF³ÌÐò£¬»ñȡӦÓõÄÒì³£ÐÐΪ£¬Í¨¹ýÓëÄÚÖúÍ×Ô¶¨ÒåµÄ°²È«²ßÂԶԱȺ󣬽øÐÐϸÁ£¶ÈµÄ£¨º¯Êý¼¶£©ÊµÊ±À¹½Ø£¬ÊµÏÖÈëÇÖ¼ì²âºÍ¹Ø¼üÎļþºÍ½ø³Ì·ÀÓù¹¦ÄÜ¡£

ÆÁÄ»½ØÍ¼ 2024-02-19 105126.png

ͼ ¹Ø¼üÒµÎñ·À»¤¼Ü¹¹Í¼

ÒÔÎļþ·À»¤ÎªÀý£¬½éÉÜKSecure°²È«×é¼þÈçºÎ½øÐÐÎļþ·À»¤£¬ÈçÏÂͼËùʾ£º

ÆÁÄ»½ØÍ¼ 2024-02-19 105126.png

ͼ Îļþ·À»¤Ê¾ÀýÁ÷³Ìͼ

£¨1£©¼ÓÔØeBPF³ÌÐò£ºKSecure°²È«×é¼þÓû§Ì¬Agent³ÌÐò½«eBPF³ÌÐò¼ÓÔØµ½LSMµÄHookµãÉÏ£»

£¨2£©ÅäÖòßÂÔ£ºÍ¨¹ýKSecure°²È«×é¼þµÄ²ßÂÔÅäÖÃÎļþ£¨YAML¸ñʽ£©½øÐвßÂÔÉèÖã»

£¨3£©Ï·¢²ßÂÔ£º°²È«×é¼þµÄAgent½«YAML²ßÂÔ½âÎöÖÁÄÚºË̬´´½¨µÄeBPF-map£»

£¨4£©ºÚ¿ÍÈëÇÖ£º¹¥»÷Õß¶Ô±»±£»¤µÄÎļþ½øÐб༭»òɾ³ýµÈ²Ù×÷£¬½øÈëÄÚºËLSM hookµã£¬´¥·¢¶ÔÓ¦µÄeBPF³ÌÐò£»

£¨5£©²ßÂÔÆ¥Å䣺ÄÚºËÖÐeBPF³ÌÐò»ñÈ¡Ö÷Ìå½ø³ÌºÍ¿ÍÌå·¾¶µÈÐÅÏ¢£¬Óë´æ´¢ÔÚeBPF-map°²È«²ßÂÔºÍÆ¥Åä¡£ÔÚ»ñÈ¡Ö÷Ìå½ø³Ìʱ£¬²ÉÓÃ5.½ø³ÌÁ´¸ú×Ù¼¼Êõ£¬¸ú×Ù½ø³ÌµÄµ÷Óùý³Ì£¬ÐÅÈνø³Ìµ÷ÓõĽø³Ì/½Å±¾µÈ¾ù¼Ì³ÐȨÏÞ£»

£¨6£©²Ù×÷À¹½Ø£ºhookµã¶ÔÓ¦µÄeBPF³ÌÐò×èÖ¹±à¼­ºÍɾ³ý±»±£»¤ÎļþµÄ²Ù×÷£»

£¨7£©Éϱ¨ÐÅÏ¢£ºeBPF³ÌÐòͨ¹ýeBPF-map£¨Ring bufferÀàÐÍ£©Éϱ¨¸øAgent£»

£¨8£©¼Ç¼ÈÕÖ¾£ºAgent·â×°Æ¥Åä²ßÂÔÐÅÏ¢²¢¼Ç¼µ½°²È«ÈÕÖ¾Îļþ¡£

3.2 »ùÓÚeBPFµÄÄÚºË¼à¿Ø¼¼Êõ

½«eBPF³ÌÐòͨ¹ýkprobe¡¢tracepoint¼¼Êõ¹ÒÔØÖÁÄںˣ¬¼à¿ØÏµÍ³ÖеÄÎļþ²Ù×÷¡¢½ø³Ì´´½¨¡¢ÍøÂçÁ¬½ÓµÈÐÐΪ¡£»ùÓÚMITRE ATT&CK£¨Adversarial Tactics, Techniques and Common Knowledge£¬¼´¶Ô¿¹Õ½ÊõºÍ¼¼Êõ֪ʶ¿â£©¿ò¼Ü¹¹½¨ÈëÇÖ¼ì²âÄÚÖùæÔò£¬½áºÏ×Ô¶¨ÒåµÄ¼ì²â¹æÔòΪÈëÇÖ¼ì²âÒýÇæÌṩÅжÏÒÀ¾Ý£¬ÊµÏÖÈëÇÖʼþʶ±ðºÍ¹¥»÷×è¶Ï¡£KSecure°²È«×é¼þÈëÇÖ¼ì²â¹¦ÄÜÖ÷ÒªÓÉÊý¾Ý²É¼¯¡¢Êý¾Ý»º³å¡¢Ô¤´¦Àí¡¢¹æÔòÒýÇæµÈÄ£¿é¹¹³É¡£

ÆÁÄ»½ØÍ¼ 2024-02-19 105126.png

ͼ  ÈëÇÖ¼ì²â¹¦ÄÜÄ£¿é¼Ü¹¹Í¼

£¨1£©Êý¾Ý²É¼¯£º½èÖúeBPF³ÌÐò²É¼¯Îļþ¡¢½ø³Ì¡¢ÍøÂçµÈϵͳµ÷ÓÃÈë²ÎÒÔ¼°·µ»ØÖµ£¬²¢ÉÏ´«ÖÁÊý¾Ý»º³åÇø£»

£¨2£©Êý¾Ý»º³å£ºÉèÖÃRing bufferÀàÐ͵Ļº³åÇøÓÃÓÚÒѲɼ¯Êý¾ÝÁÙʱ´æ´¢£¬eBPF³ÌÐò¿É½«²É¼¯Êý¾ÝдÈ뻺³åÇø£¬Ô¤´¦ÀíÄ£¿éÑ­»·¶ÁÈ¡»º³åÇøÊý¾Ý£»

£¨3£©Ô¤´¦Àí£º½«»º³åÇøÊý¾Ý¸ù¾Ý²»Í¬µÄϵͳµ÷ÓýâÎö³ÉÌØ¶¨µÄÊý¾Ý½á¹¹£¬²¢Í¨¹ýʼþÀàÐ͵ÈÌõ¼þ£¬¶ªÆú²»·ûºÏÌõ¼þµÄÊý¾Ý£¬±ãÓÚ¹æÔòÒýÇæÖ´ÐйæÔòÆ¥Å䣻

£¨4£©¹æÔòÒýÇæ£º½«ÒѼÓÔØµÄ¹æÔò½âÎö³ÉÄÚ´æ¶ÔÏó£¬À­È¡Ô¤´¦ÀíºóµÄÊý¾ÝÓëÄÚ´æÖеĹæÔò¶ÔÏó½øÐбȶÔ£¬Óë¹æÔòÆ¥ÅäµÄÊý¾ÝÕï¶ÏΪÈëÇÖÐÐΪ£¬¸ñʽ»¯ºóÊä³ö¡£

ÒÔ·´µ¯shellÈëÇÖ¼ì²âΪÀý£¬½éÉÜKSecure°²È«×é¼þÈçºÎ¼ì²âÈëÇÖÐÐΪ£¬ÈçÏÂͼËùʾ£º

ÆÁÄ»½ØÍ¼ 2024-02-19 105126.png

ͼ ·´µ¯shellÈëÇÖ¼ì²âʾÀýÁ÷³Ìͼ 

£¨1£©¹æÔò£º¶ÁÈ¡yaml¸ñʽµÄ¼ì²â¹æÔòÖÁÄڴ棬ÖðÌõ½âÎö¹æÔò£¬½«¹æÔò¹Ø¼ü×Ö½âÎöΪÊý¾Ý¶ÔÏ󣬲¢½«¹æÔòÄÚÈݱ£´æÖÁ¶ÔÏóÄÚ£¬±ãÓÚ¹æÔòÆ¥Å䣬ÒÔÏÂΪ·´µ¯shellÈëÇÖÐÐΪƥÅäÌõ¼þ£»

£¨2£©BPF³ÌÐò£º¹æÔòÒýÇæ½«eBPF³ÌÐòͨ¹ýtracepointºÍkprobe¼¼Êõ¹ÒÔØÖÁϵͳµ÷Óú¯Êý¡£¾ßÌå¶øÑÔ£¬¶ÔÓÚ·´µ¯shellµÄ¼ì²â£¬Ôò¹ÒÔØÖÁconnectϵͳµ÷Óã»

£¨3£©·´µ¯shell£º·´µ¯shellÊÇÒ»ÖÖÍøÂç¹¥»÷¼¼Êõ£¬ÓÃÓÚͨ¹ýÔ¶³ÌÖ÷»úÉϵÄShell(ÃüÁîÐÐÖÕ¶Ë)Óë¹¥»÷Õß½¨Á¢Á¬½Ó£¬´Ó¶ø¿ØÖÆÊܹ¥»÷Ö÷»ú£»

£¨4£©ÈÕÖ¾£º½«ÏµÍ³²úÉúµÄÍøÂçÁ¬½ÓÉÏ´«ÖÁÊý¾Ý»º³åÇø¡£¼àÌýRing bufferÖÐÍøÂçÁ¬½ÓÐÅÏ¢£¬Í¨¹ýBPF¸¨Öúº¯ÊýÑ­»·¶ÁÈ¡Êý¾Ý£¬²¢½«Êý¾Ýת½»Ô¤´¦ÀíÄ£¿é£»

£¨5£©Æ¥Å䣺½«½âÎö²¢¾­¹ýÂ˺óµÄÍøÂçÁ¬½ÓÈÕÖ¾¶ÔÏóÓë¹æÔò¶ÔÏó±È¶Ô£¬Æ¥Å乿ÔòµÄÍøÂçÁ¬½ÓÕï¶ÏΪ·´µ¯shellÈëÇÖ£»

£¨6£©¸æ¾¯£º½«ÈÕÖ¾ÐÅÏ¢°´ÕÕ¹æÔòÅäÖõĸñʽÊä³öΪ¸æ¾¯ÐÅÏ¢¡£

ËÄ. Ó¦Óó¡¾°

»ùÓÚeBPF¼¼Êõ°²È«ÔöÇ¿×é¼þ¾ßÒÔϼ¸¸ö·½ÃæµÄÓ¦Óó¡¾°£º

£¨1£©°²È«¼Ó¹Ì£ºÌáÉý²Ù×÷ϵͳµÄºÏ¹æÐԺͰ²È«ÐÔ¡£Ö§³ÖÓû§½áºÏʵ¼ÊµÄ°²È«ÐèÇóÑ¡Ôñʵʩ¼Ó¹ÌºÍÀ©Õ¹£¬ÒÔ±ã¸üºÃµØÂú×ã¶Ô²»Í¬Óû§²»Í¬³¡¾°µÄÅäÖð²È«»ù×¼ÒªÇó¡£

£¨2£©ºÚ¿ÍÈëÇÖ£º½µµÍÒòϵͳ©¶´ÀûÓõ¼ÖµÄÌáȨ¹¥»÷¡¢Rootkit¹¥»÷¡¢½ø³Ì×¢ÈëµÈ·çÏÕ¡£¼°Ê±·¢ÏÖ²¢×èÖ¹ÀÕË÷²¡¶¾¼ÓÃÜÐÐΪ£¬¼õÉÙÀÕË÷²¡¶¾¶ÔÒµÎñÎļþµÄ½øÒ»²½ÆÆ»µ£¬³ÉΪÀÕË÷²¡¶¾·À»¤×îºóÒ»µÀÆÁÕÏ¡£

£¨3£©ÒµÎñ·À»¤£ºÎª¹Ø¼üÒµÎñ·þÎñPGµç¾º¹ÙÍøÌṩ±£»¤£¬½öÔÊÐíºÏ·¨Ó¦ÓóÌÐò¶Ô¿Í»§µÄ¹Ø¼üÒµÎñÎļþ½øÐвÙ×÷£¬ÏÞÖÆÏµÍ³³¬¼¶¹ÜÀíԱȨÏÞ£¬·ÀÖ¹Îó²Ù×÷»òÕ˺Åй¶µ¼ÖµÄÖØÒªÎļþ/ÅäÖÃµÄÆÆ»µ¡£

»ùÓÚeBPF¼¼ÊõµÄ°²È«×é¼þKSecureÒÑÔÚÁúòáÉçÇøÏµÍ³°²È«SIGÖпªÔ´£¬ÎÒÃÇÈȳÀ»¶Ó­¹ã´óÈȰ®¼¼Êõ´´Ð¡¢¹Ø×¢°²È«Ñо¿µÄͬÐлï°éÃÇһͬ¼ÓÈëÕⳡ̽Ë÷Ö®Â㬹²Í¬ÍÚ¾òeBPF¼¼ÊõÔÚ°²È«·À»¤ÁìÓòµÄÎÞÏÞDZÄÜ£¬Ð¯ÊÖÓÅ»¯²¢ÍƹãÇ°ÑØµÄ°²È«½â¾ö·½°¸£¬ÒÔ¹²½¨¸üΪ¿É¿¿¡¢°²È«µÄ²Ù×÷ϵͳÉú̬»·¾³¡£

²úÆ·
²úÆ·½éÉÜ
²úÆ·°¸Àý
²úÆ·ÏÂÔØ
½â¾ö·½°¸
ÐÐÒµ½â¾ö·½°¸
CentOSÍ£·þÓ¦¶Ô
Éú̬ºÏ×÷
Éú̬ºÏ×÷²éѯ
·þÎñÖ§³Ö
·þÎñÌåϵ
¼¼ÊõÎĵµ
·þÎñ¼¤»îÓë²éѯ
°²È«¹«¸æ
½Ì¿¼ÖÐÐÄ
¿Î³Ìѧϰ
¿¼ÊÔÈÏÖ¤
Ö¤Êé²éѯ

¹Ø×¢ÎÒÃÇ

Copyright ? 2024 PGµç¾ºÐÅÏ¢ ³ICP±¸13028953ºÅ-12

ÊÛǰ×Éѯ

ÊÛºó·þÎñ

»Øµ½¶¥²¿

»Øµ½¶¥²¿

ÊÛǰ×Éѯ
ÊÛºó·þÎñ
¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿