5

История SELinux: Как спецслужбы США научили Пингвина ходить строем

Серия вирусология/безопасность

Если вы хоть раз ставили серьезный дистрибутив или настраивали сервер, то наверняка видели в интернете вредный совет Тормозит? Что-то не запускается? Просто вырубай SELinux командой setenforce 0, и всё будет летать. Это, пожалуй, самый популярный способ прострелить себе колено в ИТ. Давайте разберемся, откуда вообще взялась эта штука и почему ее создатели ребята из АНБ (NSA) знали, что делают.
1) Как было раньше?
В старых системах всё работало по классике: если ты зашел под админом (root), ты царь и бог. Ты можешь удалить ядро, слить пароли и вообще делать что угодно. Это называлось DAC (избирательный контроль доступа). Проблема была в том, что если хакер взламывал какой-нибудь один сервис (например, почту) и получал права админа, он получал контроль над всей системой. Для военных и спецслужб это был кошмар. Им нужно было решение, где даже админ ограничен жесткими правилами.

История SELinux: Как спецслужбы США научили Пингвина ходить строем

2) Спецслужбы выходят из тени
В конце 90-х в АНБ решили, что пора наводить порядок. Они взяли свои секретные наработки по защите ОС и начали внедрять их в Linux. В 2000 году они официально выложили этот код в открытый доступ. Зачем спецслужбам это было нужно? Всё просто им нужна была максимально защищенная система для своих нужд, а Linux был идеальной базой, которую могло протестировать всё мировое сообщество.

История SELinux: Как спецслужбы США научили Пингвина ходить строем

3) Контексты и уровни секретности
В 2003 году Линус Торвальдс принял SELinux в основное ядро. С этого момента появилась модель MAC (принудительный контроль доступа). Теперь системе плевать, кто ты. Она смотрит на метку (контекст) процесса. Но самое крутое это MLS (Multi-Level Security). Это те самые уровни доступа из фильмов Секретно, Совершенно секретно. SELinux умеет разделять данные так, что даже если у тебя есть права на чтение файлов, ты не увидишь документ уровнем выше, чем разрешено твоему текущему процессу. Это делает систему стерильной данные разных уровней важности никогда не пересекутся.

История SELinux: Как спецслужбы США научили Пингвина ходить строем

4) Kernel Lockdown
С недавних пор в Linux (с ядра 5.4) появилась еще одна мощная штука Lockdown. Если SELinux следит за программами, то Lockdown следит за тем, чтобы никто не залез в само сердце в ядро системы. Даже если ты суперпользователь, Lockdown может запретить тебе менять параметры ядра на ходу или выуживать из него ключи шифрования. Это полная блокировка любой самоволки ядро становится неприступным монолитом, который нельзя подправить изнутри без цифровой подписи.

5) А что у других?
Идея оказалась настолько крутой, что её растащили везде В Ubuntu, Zorin OS, Debian есть AppArmor это Младший брат SELinux. Он проще, работает не по сложным меткам, а по путям к файлам. А в Windows есть MIC (Integrity Control) Microsoft в Windows 10/11 тоже ввела уровни целостности. Твой браузер работает на уровне Low, а системные папки на уровне System. Вирус из браузера просто не может записать себя в систему, потому что у него допуска нет. А у Apple есть Apple SIP и Sandbox В macOS и iOS админ тоже ограничен. Механизм SIP не дает даже руту менять системные файлы, а Sandbox запирает каждое приложение в свою песочницу, не давая ему воровать данные соседа. Но вы думаете что у Android нету защиты ошибаетесь у него тоже есть SeLinux начиная с 10-й версии Google ввел песочницу Scoped Storage. Приложение А не видит файлы приложения Б, а для доступа к твоим фото оно должно каждый раз запрашивать мандат.

6) Почему все советуют его отключать?
Потому что людям лень разбираться. SELinux штука суровая. Если он видит, что программа делает что-то подозрительное, он её блокирует. Вместо того чтобы выписать программе разрешение люди просто сносят всю защиту одной командой. Итог SELinux, Lockdown и их аналоги это ваша страховка. Не слушайте тех, кто предлагает снести забор, потому что в калитку трудно входить.

Ссылки
1) https://www.nsa.gov/portals/75/documents/resources/everyone/...
2) https://www.phoronix.com/linux/Linux+Security/2
3) https://docs.redhat.com/en/documentation/red_hat_enterprise_...
4) http://www.sl2.hu/sexample.pdf
5) https://docs.redhat.com/en/documentation/red_hat_enterprise_...
6) https://man7.org/linux/man-pages/man7/kernel_lockdown.7.html
7) https://man.archlinux.org/man/kernel_lockdown.7.en
8) https://help.ubuntu.ru/wiki/руководство_по_ubuntu_server/безопасность/apparmor 9) https://learn.microsoft.com/ru-ru/windows/win32/secauthz/man... 10) https://help.apple.com/pdf/security/ru_RU/apple-platform-sec...
11) https://developer.android.com/training/data-storage/use-case... 12) https://source.android.com/docs/security/features/selinux

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества