Майкрософт Windows-д зориулсан eBPF хэрэгжилтийг бэлтгэсэн

Майкрософт Windows-д зориулсан eBPF дэд системийн хэрэгжилтийг нийтэлсэн бөгөөд энэ нь үйлдлийн системийн цөмийн түвшинд ажилладаг дурын зохицуулагчийг ажиллуулах боломжийг олгодог. eBPF нь цөмд суурилуулсан байт код тайлбарлагчаар хангадаг бөгөөд энэ нь хэрэглэгчийн орон зайнаас ачаалагдсан сүлжээний үйл ажиллагааны зохицуулагчийг үүсгэх, хандалтыг хянах, системийн ажиллагааг хянах боломжийг олгодог. eBPF нь 3.18 хувилбараас хойш Линуксийн цөмд багтсан бөгөөд ирж буй/гарч буй сүлжээний пакетуудыг зохицуулах, пакет дамжуулах, зурвасын өргөнийг удирдах, системийн дуудлагыг таслан зогсоох, хандалтын хяналт, мөрдөх боломжийг олгодог. JIT эмхэтгэлийг ашигласны ачаар байт кодыг шууд машины зааварт хөрвүүлж, хөрвүүлсэн кодын гүйцэтгэлээр гүйцэтгэдэг. Windows-д зориулсан eBPF нь MIT лицензийн дагуу нээлттэй эх сурвалж юм.

Windows-д зориулсан eBPF-ийг одоо байгаа eBPF хэрэгслүүдэд ашиглах боломжтой бөгөөд Линукс дээрх eBPF програмуудад ашигладаг ерөнхий API-г өгдөг. Бусад зүйлсээс гадна уг төсөл нь стандарт Clang-д суурилсан eBPF хөрвүүлэгчийг ашиглан C хэл дээр бичигдсэн кодыг eBPF байт код болгон эмхэтгэх, Windows цөм дээр Linux-д аль хэдийн бий болгосон eBPF зохицуулагчийг ажиллуулах боломжийг олгодог бөгөөд тусгай нийцтэй давхаргыг хангаж, стандарт Libbpf-г дэмждэг. eBPF програмуудтай харьцдаг програмуудтай нийцтэй ажиллах API. Үүнд XDP (eXpress Data Path) болон залгуурын холболтод зориулсан Линукс шиг дэгээгээр хангадаг, сүлжээний стек болон Windows сүлжээний драйверуудад хандалт хийх давхаргууд багтана. Төлөвлөгөөнүүд нь стандарт Linux eBPF процессоруудтай бүрэн эх кодын түвшний нийцтэй байдлыг хангах явдал юм.

Майкрософт Windows-д зориулсан eBPF хэрэгжилтийг бэлтгэсэн

Windows-д зориулсан eBPF-ийн хэрэгжилтийн гол ялгаа нь VMware-ийн ажилтнууд болон Канад, Израилийн их сургуулийн судлаачдын санал болгосон өөр байт код баталгаажуулагчийг ашиглах явдал юм. Баталгаажуулагч нь хэрэглэгчийн орон зайд тусдаа, тусгаарлагдсан процессоор ажилладаг бөгөөд BPF програмыг ажиллуулахын өмнө алдааг олж илрүүлэх, болзошгүй хортой үйл ажиллагааг блоклоход ашиглагддаг.

Баталгаажуулахын тулд Windows-д зориулсан eBPF нь Abstract Interpretation дээр суурилсан статик шинжилгээний аргыг ашигладаг бөгөөд энэ нь Linux-д зориулсан eBPF шалгагчтай харьцуулахад бага худал эерэг хувьтай, давталтын шинжилгээг дэмждэг, сайн өргөтгөх боломжийг олгодог. Энэ арга нь одоо байгаа eBPF програмуудын шинжилгээнээс олж авсан гүйцэтгэлийн олон хэв маягийг харгалзан үздэг.

Баталгаажуулсны дараа байт кодыг цөмийн түвшинд ажилладаг орчуулагч руу шилжүүлж, эсвэл JIT хөрвүүлэгчээр дамжуулж, дараа нь үүссэн машины кодыг цөмийн эрхтэйгээр гүйцэтгэнэ. Цөмийн түвшинд eBPF зохицуулагчийг тусгаарлахын тулд цөм дэх процессуудыг хамгаалахын тулд виртуалчлалын хэрэгслийг ашигладаг HVCI (HyperVisor-enforced Code Integrity) механизмыг ашигладаг бөгөөд дижитал гарын үсэг ашиглан гүйцэтгэх кодын бүрэн бүтэн байдлыг баталгаажуулдаг. HVCI-ийн хязгаарлалт нь зөвхөн тайлбарласан eBPF програмуудыг шалгах боломжтой бөгөөд JIT-тэй хамт ашиглах боломжгүй (та гүйцэтгэл эсвэл нэмэлт хамгаалалтын аль нэгийг сонгох боломжтой).

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх