Skip to content

Commit 3de7716

Browse files
committed
[ru] Localize ebpf.md
Signed-off-by: Ilya Lobkov <[email protected]>
1 parent 4b90601 commit 3de7716

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

content/ru/ebpf.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
title: eBPF
3+
status: Completed
4+
category: Technology
5+
tags: ["architecture", "networking", "security"]
6+
---
7+
8+
eBPF (англ. extended Berkley Packet Filter — расширенный фильтр пакетов Беркли) это технология,
9+
которая позволяет небольшим программам или скриптам запускаться в пространстве ядра ОС Линукс
10+
без необходимости изменять код ядра или загружать модули ядра.
11+
12+
ОС Линукс имеет два пространства: пространство ядра (kernel space) и пользовательское (user space).
13+
Ядро представляет основу операционной системы и имеет неограниченный доступ к аппаратному обеспечению.
14+
15+
Приложения находятся в пользовательском пространстве.
16+
Когда возникает необходимость в привилегированном доступе, приложения отправляют запрос к ядру.
17+
Для приложений, требующих большей свободы действий, например, для прямого доступа к аппаратному обеспечению,
18+
ядро может быть расширено за счёт моделей ядра Линукс.
19+
Такой подход расширяет стандартные функции ядра, давая приложениям доступ к низкоуровневым компонентам.
20+
Однако расширение ядра за счет модулей влечет за собой риски безопасности, делая eBPF привлекательной альтернативой.
21+
22+
## Какую проблему решает
23+
24+
Как правило, приложения работают в пользовательском пространстве,
25+
и если возникает необходимость в привилегированном доступе (например, доступ к аппаратному обеспечению),
26+
приложение отправляет запрос к ядру также известный как "системный вызов".
27+
В большинстве случает такой подход прекрасно работает.
28+
Однако бывают ситуации, когда разработчики нуждаются в более низкоуровневом доступе к системе.
29+
Такие ситуации, как правило, связаны с наблюдаемостью (observability), безопасностью и работой с сетью.
30+
Использование модулей ядра Линукс позволяет решить вышеупомянутую проблему без изменения исходного кода ядра.
31+
Но несмотря на преимущества, такой подход влечет за собой риски безопасности.
32+
Код модулей ядра работает в пространстве ядра, а это значит, что сбой модуля неминуемо приводит к сбою всего ядра и как следствие — сбою всей аппаратной системы.
33+
Вдобавок, модули ядра имеют повышенные привилегии и прямой доступ к системным ресурсам. Без должной безопасности, они могут стать источником уязвимостей для хакеров.
34+
35+
## Как именно решает проблему
36+
37+
По сравнению с модулями ядра, eBPF предоставляет более контролируемую и ограниченную среду для исполнения пользовательских программ.
38+
eBPF программа запускается в "песочнице" внутри ядра, обеспечивая тем самым изоляцию и снижая риски.
39+
Если в eBPF программе обнаружится уязвимость или недочет, то их воздействие будет ограничено "песочницей".
40+
Более того, прежде чем программа сможет запуститься внутри ядра, она должна пройти процесс верификации.
41+
Верификатор проверяет eBPF программу на наличие потенциально небезопасного кода,
42+
такого как доступ к памяти за пределами выделенного буфера, бесконечные циклы и неавторизованный доступ к функциям ядра.
43+
Верификация гарантирует что eBPF программа не войдет в бесконечный цикл и не приведет к сбою ядра.
44+
Эти меры безопасности делают eBPF более надежным вариантом запуска приложений в ядре, по сравнению с модулями ядра Линукс.
45+

0 commit comments

Comments
 (0)