Microsoft татбиқи eBPF-ро барои Windows омода кардааст

Microsoft татбиқи зерсистемаи eBPF-ро барои Windows нашр кард, ки ба шумо имкон медиҳад коркардкунандагони худсаронаеро, ки дар сатҳи ядрои системаи оператсионӣ кор мекунанд, оғоз кунед. eBPF тарҷумони байткодро таъмин мекунад, ки дар ядро ​​сохта шудааст, ки имкон медиҳад коркардкунандагони амалиёти шабакаро, ки аз фазои корбар бор карда шудаанд, назорат кунанд, дастрасиро назорат кунанд ва кори системаҳоро назорат кунанд. eBPF аз замони нашри 3.18 ба ядрои Linux дохил карда шудааст ва ба шумо имкон медиҳад, ки бастаҳои шабакавии воридотӣ/хурдӣ, интиқоли бастаҳо, идоракунии фарохмаҷро, боздоштани зангҳои система, назорати дастрасӣ ва пайгирӣ кунед. Ба шарофати истифодаи компиляцияи JIT, байткод зуд ба дастурҳои мошинӣ тарҷума карда мешавад ва бо иҷрои рамзи тартибдодашуда иҷро карда мешавад. eBPF барои Windows манбаи кушода дар зери иҷозатномаи MIT мебошад.

eBPF барои Windows метавонад бо абзорҳои мавҷудаи eBPF истифода шавад ва API-и умумиро барои барномаҳои eBPF дар Linux таъмин мекунад. Дар байни чизҳои дигар, лоиҳа ба шумо имкон медиҳад, ки коди дар C навишташударо ба байткоди eBPF бо истифода аз компилятори стандартии eBPF дар асоси Clang тартиб диҳед ва коркардкунандагони eBPF-ро, ки аллакай барои Linux дар болои ядрои Windows сохта шудааст, иҷро кунед, ки қабати мутобиқати махсусро таъмин мекунад ва стандарти Libbpf-ро дастгирӣ мекунад. API барои мутобиқат бо барномаҳое, ки бо барномаҳои eBPF ҳамкорӣ мекунанд. Ин қабатҳоеро дар бар мегирад, ки қалмоқҳои ба Linux монандро барои XDP (eXpress Data Path) ва пайвасти розетка таъмин мекунанд, ки дастрасии абстрактӣ ба стеки шабака ва драйверҳои шабакавии Windows мебошанд. Нақшаҳо таъмини мутобиқати пурраи коди сарчашмаро бо протсессори стандартии Linux eBPF дар бар мегиранд.

Microsoft татбиқи eBPF-ро барои Windows омода кардааст

Тафовути калидии татбиқи eBPF барои Windows ин истифодаи як санҷиши алтернативии байткод мебошад, ки аслан аз ҷониби кормандони VMware ва муҳаққиқони донишгоҳҳои Канада ва Исроил пешниҳод шудааст. Тасдиқкунанда дар як раванди алоҳида ва ҷудошуда дар фазои корбар кор мекунад ва пеш аз иҷрои барномаҳои BPF барои муайян кардани хатогиҳо ва бастани фаъолияти эҳтимолии зараровар истифода мешавад.

Барои тафтиш, eBPF барои Windows усули таҳлили статикиро дар асоси тафсири абстрактӣ истифода мебарад, ки дар муқоиса бо санҷиши eBPF барои Linux сатҳи пасти мусбати бардурӯғро нишон медиҳад, таҳлили ҳалқаро дастгирӣ мекунад ва миқёспазирии хубро таъмин мекунад. Ин усул бисёр намунаҳои маъмулии иҷроишро, ки аз таҳлили барномаҳои мавҷудаи eBPF гирифта шудаанд, ба назар мегирад.

Пас аз санҷиш, байткод ба тарҷумоне, ки дар сатҳи ядро ​​кор мекунад, интиқол дода мешавад ё тавассути компилятори JIT гузаронида мешавад ва пас аз он иҷро кардани коди мошини натиҷавӣ бо ҳуқуқи ядро ​​​​аст. Барои ҷудо кардани коркардкунандагони eBPF дар сатҳи ядро, механизми HVCI (HyperVisor-enforced Code Integrity) истифода мешавад, ки воситаҳои виртуализатсияро барои ҳифзи равандҳо дар ядро ​​истифода мебарад ва тасдиқи якпорчагии коди иҷрошавандаро бо истифода аз имзои рақамӣ таъмин мекунад. Маҳдудияти HVCI дар он аст, ки он метавонад танҳо барномаҳои тафсиршудаи eBPF-ро тафтиш кунад ва наметавонад дар якҷоягӣ бо JIT истифода шавад (шумо интихоби иҷрои кор ё амнияти иловагӣ доред).

Манбаъ: opennet.ru

Илова Эзоҳ