You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/ru/ebpf.md
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,41 +5,41 @@ category: Technology
5
5
tags: ["architecture", "networking", "security"]
6
6
---
7
7
8
-
eBPF (англ. extended Berkley Packet Filter — расширенный фильтр пакетов Беркли) это технология,
9
-
которая позволяет небольшим программам или скриптам запускаться в пространстве ядра ОС Линукс
8
+
Технология eBPF (англ. extended Berkley Packet Filter — расширенный фильтр пакетов Беркли)
9
+
позволяет небольшим программам или скриптам запускаться в пространстве ядра ОС Линукс
10
10
без необходимости изменять код ядра или загружать модули ядра.
11
11
12
-
ОС Линукс имеет два пространства: пространство ядра (kernel space) и пользовательское (user space).
12
+
В ОС Линукс есть два пространства: пространство ядра (kernel space) и пространство пользователя (user space).
13
13
Ядро представляет основу операционной системы и имеет неограниченный доступ к аппаратному обеспечению.
14
14
15
-
Приложения находятся в пользовательском пространстве.
15
+
Приложения находятся в пространстве пользователя.
16
16
Когда возникает необходимость в привилегированном доступе, приложения отправляют запрос к ядру.
17
-
Для приложений, требующих большей свободы действий, например, для прямого доступа к аппаратному обеспечению,
18
-
ядро может быть расширено за счёт моделей ядра Линукс.
19
-
Такой подход расширяет стандартные функции ядра, давая приложениям доступ к низкоуровневым компонентам.
17
+
Для приложений, требующих большей свободы действий, например, прямого доступа к аппаратному обеспечению,
18
+
ядро может быть расширено за счёт модулей ядра Линукс.
19
+
Такой подход расширяет стандартные функции ядра, открывая приложениям доступ к низкоуровневым компонентам.
20
20
Однако расширение ядра за счет модулей влечет за собой риски безопасности, делая eBPF привлекательной альтернативой.
21
21
22
22
## Какую проблему решает
23
23
24
-
Как правило, приложения работают в пользовательском пространстве,
25
-
и если возникает необходимость в привилегированном доступе (например, доступ к аппаратному обеспечению),
26
-
приложение отправляет запрос к ядру также известный как "системный вызов".
24
+
Как правило, приложения работают в пространстве пользователя.
25
+
Если возникает необходимость в привилегированном доступе (например, к аппаратному обеспечению),
26
+
приложение отправляет запрос к ядру, также известный как «системный вызов».
27
27
В большинстве случает такой подход прекрасно работает.
28
28
Однако бывают ситуации, когда разработчики нуждаются в более низкоуровневом доступе к системе.
29
29
Такие ситуации, как правило, связаны с наблюдаемостью (observability), безопасностью и работой с сетью.
30
30
Использование модулей ядра Линукс позволяет решить вышеупомянутую проблему без изменения исходного кода ядра.
31
-
Но несмотря на преимущества, такой подход влечет за собой риски безопасности.
32
-
Код модулей ядра работает в пространстве ядра, а это значит, что сбой модуля неминуемо приводит к сбою всего ядра и как следствие — сбою всей аппаратной системы.
33
-
Вдобавок, модули ядра имеют повышенные привилегии и прямой доступ к системным ресурсам. Без должной безопасности, они могут стать источником уязвимостей для злоумышленников.
31
+
Увы, у этого подхода есть не только плюсы, но и минусы (в первую очередь связанные с безопасностью).
32
+
Модули ядра работают в пространстве ядра. Это означает, что сбой модуля неминуемо приводит к сбою ядра и, как следствие, падению всей системы.
33
+
Кроме того, модули ядра наделены повышенными привилегиями и имеют прямой доступ к системным ресурсам. Без должной защиты этим могут воспользоваться злоумышленники.
34
34
35
35
## Как именно решает проблему
36
36
37
37
По сравнению с модулями ядра, eBPF предоставляет более контролируемую и ограниченную среду для исполнения пользовательских программ.
38
38
eBPF программа запускается в "песочнице" внутри ядра, обеспечивая тем самым изоляцию и снижая риски.
39
39
Если в eBPF программе обнаружится уязвимость или недочет, то их воздействие будет ограничено "песочницей".
40
40
Более того, прежде чем программа сможет запуститься внутри ядра, она должна пройти процесс верификации.
41
-
Верификатор проверяет eBPFпрограмму на наличие потенциально небезопасного кода,
41
+
Верификатор проверяет eBPF-программу на наличие потенциально небезопасного кода,
42
42
такого как доступ к памяти за пределами выделенного буфера, бесконечные циклы и неавторизованный доступ к функциям ядра.
43
-
Верификация гарантирует что eBPFпрограмма не войдет в бесконечный цикл и не приведет к сбою ядра.
44
-
Эти меры безопасности делают eBPF более надежным вариантом запуска приложений в ядре, по сравнению с модулями ядра Линукс.
43
+
Верификация гарантирует, что eBPF-программа не войдет в бесконечный цикл и не приведет к сбою ядра.
44
+
Такие меры безопасности делают eBPF более надежным вариантом запуска приложений в ядре по сравнению с модулями ядра Линукс.
0 commit comments