Microsoft Windows üçün eBPF tətbiqini hazırlayıb

Microsoft, əməliyyat sisteminin nüvəsi səviyyəsində işləyən ixtiyari işləyiciləri işə salmağa imkan verən Windows üçün eBPF altsisteminin tətbiqini nəşr etdi. eBPF kernelə daxil edilmiş bayt kodu tərcüməçisini təmin edir ki, bu da istifadəçi məkanından yüklənmiş şəbəkə əməliyyat idarəçiləri yaratmağa, girişi idarə etməyə və sistemlərin işinə nəzarət etməyə imkan verir. eBPF 3.18 buraxılışından bəri Linux nüvəsinə daxil edilib və sizə daxil olan/gidən şəbəkə paketlərini, paket yönləndirməsini, bant genişliyinin idarə edilməsini, sistem zənglərinin qarşısının alınmasını, girişə nəzarəti və izlənilməsini idarə etməyə imkan verir. JIT kompilyasiyasının istifadəsi sayəsində bayt kodu tez bir zamanda maşın təlimatlarına çevrilir və tərtib edilmiş kodun icrası ilə yerinə yetirilir. Windows üçün eBPF MIT lisenziyası altında açıq mənbədir.

Windows üçün eBPF mövcud eBPF alətləri ilə istifadə edilə bilər və Linux-da eBPF proqramları üçün istifadə olunan ümumi API təmin edir. Digər şeylər arasında, layihə standart Clang əsaslı eBPF kompilyatorundan istifadə edərək C dilində yazılmış kodu eBPF bayt koduna tərtib etməyə və Windows nüvəsinin üstündə Linux üçün artıq yaradılmış eBPF işləyicilərini işlətməyə, xüsusi uyğunluq qatını təmin etməyə və standart Libbpf-ni dəstəkləməyə imkan verir. eBPF proqramları ilə qarşılıqlı əlaqədə olan proqramlarla uyğunluq üçün API. Buraya XDP (eXpress Data Path) və rozetka bağlaması üçün Linux-a bənzər qarmaqlar təmin edən, şəbəkə yığınına və Windows şəbəkə sürücülərinə girişi mücərrəd edən təbəqələr daxildir. Planlara standart Linux eBPF prosessorları ilə tam mənbə kodu səviyyəsində uyğunluğu təmin etmək daxildir.

Microsoft Windows üçün eBPF tətbiqini hazırlayıb

Windows üçün eBPF tətbiqi arasındakı əsas fərq, əvvəlcə VMware işçiləri və Kanada və İsrail universitetlərinin tədqiqatçıları tərəfindən təklif olunan alternativ bayt kodu yoxlayıcısının istifadəsidir. Doğrulayıcı istifadəçi məkanında ayrıca, təcrid olunmuş prosesdə işləyir və səhvləri müəyyən etmək və mümkün zərərli fəaliyyəti bloklamaq üçün BPF proqramlarını icra etməzdən əvvəl istifadə olunur.

Doğrulama üçün Windows üçün eBPF Mücərrəd Şərhə əsaslanan statik analiz metodundan istifadə edir ki, bu da Linux üçün eBPF doğrulayıcısı ilə müqayisədə daha aşağı yanlış müsbət nisbət nümayiş etdirir, dövrə analizini dəstəkləyir və yaxşı miqyaslılığı təmin edir. Metod mövcud eBPF proqramlarının təhlilindən əldə edilən bir çox tipik icra nümunələrini nəzərə alır.

Yoxlamadan sonra bayt kodu nüvə səviyyəsində işləyən tərcüməçiyə ötürülür və ya JIT kompilyatorundan keçir, ardınca əldə edilən maşın kodunu nüvə hüquqları ilə icra edir. eBPF işləyicilərini nüvə səviyyəsində təcrid etmək üçün nüvədə prosesləri qorumaq üçün virtuallaşdırma vasitələrindən istifadə edən və rəqəmsal imzadan istifadə edərək icraçı kodun bütövlüyünün təsdiqini təmin edən HVCI (HyperVisor-enforced Code Integrity) mexanizmi istifadə olunur. HVCI-nin məhdudiyyəti ondan ibarətdir ki, o, yalnız şərh edilmiş eBPF proqramlarını yoxlaya bilər və JIT ilə birlikdə istifadə edilə bilməz (ya performans, ya da əlavə təhlükəsizlik seçiminiz var).

Mənbə: opennet.ru

Добавить комментарий