Skip to content

Commit bed9872

Browse files
lobkovilyakirkonru
andauthored
Apply suggestions from code review
Co-authored-by: Kirill Kononovich <[email protected]> Signed-off-by: Ilya Lobkov <[email protected]>
1 parent f40707f commit bed9872

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

content/ru/ebpf.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,41 +5,41 @@ category: Technology
55
tags: ["architecture", "networking", "security"]
66
---
77

8-
eBPF (англ. extended Berkley Packet Filter — расширенный фильтр пакетов Беркли) это технология,
9-
которая позволяет небольшим программам или скриптам запускаться в пространстве ядра ОС Линукс
8+
Технология eBPF (англ. extended Berkley Packet Filter — расширенный фильтр пакетов Беркли)
9+
позволяет небольшим программам или скриптам запускаться в пространстве ядра ОС Линукс
1010
без необходимости изменять код ядра или загружать модули ядра.
1111

12-
ОС Линукс имеет два пространства: пространство ядра (kernel space) и пользовательское (user space).
12+
В ОС Линукс есть два пространства: пространство ядра (kernel space) и пространство пользователя (user space).
1313
Ядро представляет основу операционной системы и имеет неограниченный доступ к аппаратному обеспечению.
1414

15-
Приложения находятся в пользовательском пространстве.
15+
Приложения находятся в пространстве пользователя.
1616
Когда возникает необходимость в привилегированном доступе, приложения отправляют запрос к ядру.
17-
Для приложений, требующих большей свободы действий, например, для прямого доступа к аппаратному обеспечению,
18-
ядро может быть расширено за счёт моделей ядра Линукс.
19-
Такой подход расширяет стандартные функции ядра, давая приложениям доступ к низкоуровневым компонентам.
17+
Для приложений, требующих большей свободы действий, например, прямого доступа к аппаратному обеспечению,
18+
ядро может быть расширено за счёт модулей ядра Линукс.
19+
Такой подход расширяет стандартные функции ядра, открывая приложениям доступ к низкоуровневым компонентам.
2020
Однако расширение ядра за счет модулей влечет за собой риски безопасности, делая eBPF привлекательной альтернативой.
2121

2222
## Какую проблему решает
2323

24-
Как правило, приложения работают в пользовательском пространстве,
25-
и если возникает необходимость в привилегированном доступе (например, доступ к аппаратному обеспечению),
26-
приложение отправляет запрос к ядру также известный как "системный вызов".
24+
Как правило, приложения работают в пространстве пользователя.
25+
Если возникает необходимость в привилегированном доступе (например, к аппаратному обеспечению),
26+
приложение отправляет запрос к ядру, также известный как «системный вызов».
2727
В большинстве случает такой подход прекрасно работает.
2828
Однако бывают ситуации, когда разработчики нуждаются в более низкоуровневом доступе к системе.
2929
Такие ситуации, как правило, связаны с наблюдаемостью (observability), безопасностью и работой с сетью.
3030
Использование модулей ядра Линукс позволяет решить вышеупомянутую проблему без изменения исходного кода ядра.
31-
Но несмотря на преимущества, такой подход влечет за собой риски безопасности.
32-
Код модулей ядра работает в пространстве ядра, а это значит, что сбой модуля неминуемо приводит к сбою всего ядра и как следствие — сбою всей аппаратной системы.
33-
Вдобавок, модули ядра имеют повышенные привилегии и прямой доступ к системным ресурсам. Без должной безопасности, они могут стать источником уязвимостей для злоумышленников.
31+
Увы, у этого подхода есть не только плюсы, но и минусы (в первую очередь связанные с безопасностью).
32+
Модули ядра работают в пространстве ядра. Это означает, что сбой модуля неминуемо приводит к сбою ядра и, как следствие, падению всей системы.
33+
Кроме того, модули ядра наделены повышенными привилегиями и имеют прямой доступ к системным ресурсам. Без должной защиты этим могут воспользоваться злоумышленники.
3434

3535
## Как именно решает проблему
3636

3737
По сравнению с модулями ядра, eBPF предоставляет более контролируемую и ограниченную среду для исполнения пользовательских программ.
3838
eBPF программа запускается в "песочнице" внутри ядра, обеспечивая тем самым изоляцию и снижая риски.
3939
Если в eBPF программе обнаружится уязвимость или недочет, то их воздействие будет ограничено "песочницей".
4040
Более того, прежде чем программа сможет запуститься внутри ядра, она должна пройти процесс верификации.
41-
Верификатор проверяет eBPF программу на наличие потенциально небезопасного кода,
41+
Верификатор проверяет eBPF-программу на наличие потенциально небезопасного кода,
4242
такого как доступ к памяти за пределами выделенного буфера, бесконечные циклы и неавторизованный доступ к функциям ядра.
43-
Верификация гарантирует что eBPF программа не войдет в бесконечный цикл и не приведет к сбою ядра.
44-
Эти меры безопасности делают eBPF более надежным вариантом запуска приложений в ядре, по сравнению с модулями ядра Линукс.
43+
Верификация гарантирует, что eBPF-программа не войдет в бесконечный цикл и не приведет к сбою ядра.
44+
Такие меры безопасности делают eBPF более надежным вариантом запуска приложений в ядре по сравнению с модулями ядра Линукс.
4545

0 commit comments

Comments
 (0)