2024-09-17 Linux Security Summit Europe 2024 - Day 2-3 - Hall L3 - Live from Vienna Austria
Вторник, 17 сентября 2024 г., 14:00 - 14:30 CEST Yuan Tan, Siqi Fan, Xiao Liu Ограничение системных вызовов может значительно снизить вероятность атаки. Однако такие решения, как seccomp, можно обойти (CVE-2009-0835, CVE-2019-2054, CVE-2023-2431 и т.д.). Если неиспользуемые системные вызовы могут быть устранены на уровне конфигурации и во время компиляции, то поверхность атаки может быть в корне контролируема. Однако широкое распространение .pushsection в коде ядра не позволяет компоновщику выполнять сборку мусора в коде. Связанная с этим директива KEEP() также вызывает проблемы со сменой владельца, в результате чего связанные разделы должны быть удалены, чтобы остаться, оставляя больше неиспользуемого кода для потенциальной эксплуатации хакерами. Систематически перерабатывая директиву .pushsection, мы предлагаем исключить неработающие системные вызовы. После указания системных вызовов, которые необходимо сохранить, можно удалить код других системных вызовов, не влияя на нормальную работу ядра. Злоумышленники не могут использовать то, чего не существует. Это не только уменьшает размер ядра и устраняет накладные расходы на seccomp, но и полностью устраняет возможность использования. Кроме того, подход, заключающийся в устранении директивы KEEP(), может быть обобщен, что еще больше сократит количество нерабочего кода ядра и уменьшит вероятность атаки. Презентация https://static.sched.com/hosted_files/lsseu2024/ac/Safer%20Seccomp%20V2.pdf?_gl=1*5cr53y*_gcl_au*MTkwMTIyMDAzMC4xNzI2NTUzMDc3*FPAU*MTkwMTIyMDAzMC4xNzI2NTUzMDc3
Вторник, 17 сентября 2024 г., 14:00 - 14:30 CEST Yuan Tan, Siqi Fan, Xiao Liu Ограничение системных вызовов может значительно снизить вероятность атаки. Однако такие решения, как seccomp, можно обойти (CVE-2009-0835, CVE-2019-2054, CVE-2023-2431 и т.д.). Если неиспользуемые системные вызовы могут быть устранены на уровне конфигурации и во время компиляции, то поверхность атаки может быть в корне контролируема. Однако широкое распространение .pushsection в коде ядра не позволяет компоновщику выполнять сборку мусора в коде. Связанная с этим директива KEEP() также вызывает проблемы со сменой владельца, в результате чего связанные разделы должны быть удалены, чтобы остаться, оставляя больше неиспользуемого кода для потенциальной эксплуатации хакерами. Систематически перерабатывая директиву .pushsection, мы предлагаем исключить неработающие системные вызовы. После указания системных вызовов, которые необходимо сохранить, можно удалить код других системных вызовов, не влияя на нормальную работу ядра. Злоумышленники не могут использовать то, чего не существует. Это не только уменьшает размер ядра и устраняет накладные расходы на seccomp, но и полностью устраняет возможность использования. Кроме того, подход, заключающийся в устранении директивы KEEP(), может быть обобщен, что еще больше сократит количество нерабочего кода ядра и уменьшит вероятность атаки. Презентация https://static.sched.com/hosted_files/lsseu2024/ac/Safer%20Seccomp%20V2.pdf?_gl=1*5cr53y*_gcl_au*MTkwMTIyMDAzMC4xNzI2NTUzMDc3*FPAU*MTkwMTIyMDAzMC4xNzI2NTUzMDc3
