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
Технология eBPF (англ. extended Berkley Packet Filter — расширенный фильтр пакетов Беркли)
9
-
позволяет небольшим программам или скриптам запускаться в пространстве ядра ОС Линукс
9
+
позволяет небольшим программам или скриптам запускаться в пространстве ядра ОС Linux
10
10
без необходимости изменять код ядра или загружать модули ядра.
11
11
12
-
В ОС Линукс есть два пространства: пространство ядра (kernel space) и пространство пользователя (user space).
12
+
В ОС Linux есть два пространства: пространство ядра (kernel space) и пространство пользователя (user space).
13
13
Ядро представляет основу операционной системы и имеет неограниченный доступ к аппаратному обеспечению.
14
14
15
15
Приложения находятся в пространстве пользователя.
16
16
Когда возникает необходимость в привилегированном доступе, приложения отправляют запрос к ядру.
17
17
Для приложений, требующих большей свободы действий, например, прямого доступа к аппаратному обеспечению,
18
-
ядро может быть расширено за счёт модулей ядра Линукс.
19
-
Такой подход расширяет стандартные функции ядра, открывая приложениям доступ к низкоуровневым компонентам.
20
-
Однако расширение ядра за счет модулей влечет за собой риски безопасности, делая eBPF привлекательной альтернативой.
18
+
ядро может быть расширено за счёт модулей ядра Linux.
19
+
Такой подход расширяет функциональность ядра, доступную по умолчанию, открывая приложениям доступ к более низкоуровневым компонентам.
20
+
Однако расширение ядра с помощью модулей влечет за собой риски и потенциально снижает безопасность, что делает eBPF привлекательной альтернативой.
21
21
22
22
## Какую проблему решает
23
23
24
24
Как правило, приложения работают в пространстве пользователя.
25
25
Если возникает необходимость в привилегированном доступе (например, к аппаратному обеспечению),
26
-
приложение отправляет запрос к ядру, также известный как «системный вызов».
26
+
приложение отправляет запрос к ядру. такой запрос называется «системный вызов».
27
27
В большинстве случает такой подход прекрасно работает.
28
28
Однако бывают ситуации, когда разработчики нуждаются в более низкоуровневом доступе к системе.
29
29
Такие ситуации, как правило, связаны с наблюдаемостью (observability), безопасностью и работой с сетью.
30
-
Использование модулей ядра Линукс позволяет решить вышеупомянутую проблему без изменения исходного кода ядра.
31
-
Увы, у этого подхода есть не только плюсы, но и минусы (в первую очередь связанные с безопасностью).
30
+
Использование модулей ядра Linux позволяет решить вышеупомянутую проблему без изменения исходного кода ядра.
31
+
К сожалению, у этого подхода есть не только плюсы, но и минусы (в первую очередь, связанные с безопасностью).
32
32
Модули ядра работают в пространстве ядра. Это означает, что сбой модуля неминуемо приводит к сбою ядра и, как следствие, падению всей системы.
33
-
Кроме того, модули ядра наделены повышенными привилегиями и имеют прямой доступ к системным ресурсам. Без должной защиты этим могут воспользоваться злоумышленники.
33
+
Кроме того, модули ядра наделены повышенными привилегиями и имеют прямой доступ к системным ресурсам. Если не обеспечить должную защиту, этими свойствами модулей могут воспользоваться злоумышленники.
34
34
35
35
## Как именно решает проблему
36
36
37
-
По сравнению с модулями ядра, eBPF позволяет запускать пользовательские программы в более контролируемой и ограниченной среде.
37
+
В отличие от модулей ядра, eBPF позволяет запускать пользовательские программы в более контролируемой и ограниченной среде.
38
38
eBPF-программа работает в «песочнице» внутри ядра. Тем самым обеспечивается необходимая изоляция и снижаются риски.
39
-
Если в eBPF-программе обнаружится уязвимость или недочет, то их воздействие будет ограничено «песочницей».
39
+
Даже если в eBPF-программе обнаружится уязвимость или какой-то изъян, их воздействие ограничится «песочницей».
40
40
Более того, прежде чем программа сможет запуститься внутри ядра, она должна пройти процесс верификации.
41
-
Верификатор проверяет eBPF-программу на наличие потенциально небезопасного кода,
42
-
такого как доступ к памяти за пределами выделенного буфера, бесконечные циклы и неавторизованный доступ к функциям ядра.
41
+
Верификатор проверяет eBPF-программу на наличие потенциально небезопасного кода: например, доступ к памяти за пределами выделенного буфера, бесконечные циклы и неавторизованный доступ к функциям ядра.
43
42
Верификация гарантирует, что eBPF-программа не войдет в бесконечный цикл и не приведет к сбою ядра.
44
-
Такие меры безопасности делают eBPF более надежным вариантом запуска приложений в ядре по сравнению с модулями ядра Линукс.
43
+
Такие меры безопасности делают eBPF более надежным вариантом запуска приложений в ядре по сравнению с модулями ядра Linux.
0 commit comments