- Главная
- →
- Безопасность
Как мы учились чинить самолеты в воздухе Безопасность
Тезисы
Все мы слышали про изменение кода ядра Linux на лету (kernel live patching). Но кто-нибудь проводит подобные фокусы в user space? Оказалось, что да. Мы тоже попробовали.
И получилось.
Длинная дорога технологии Userspace Live Patching в жизнь:
Что такое Live Patching
1) Изменение части логики процесса.
2) Сохранение состояния процесса.
3) Делать 1+2 БЕЗОПАСНО.
Live Patching имеет широкое применение для классических statefull приложений, обеспечения безопасности исполняемого кода и ряда других задач.
Технология позволяет применить Live Patch к процессам с различными типами исполняемого кода:
- Statically-linked.
- Dynamically-linked.
- Load-time relocation.
- Position independent code (PIC).
Технология имеет некоторые ограничения:
- ограничения по созданию патча;
- ограничения по состоянию процесса на момент применения патча;
- ограничение по коду, который можно заменить.
В итоге мы пришли к открытому коду: https://github.com/virtuozzo/nsb