Почему все игнорируют capability-based security?

Тихий_Кот
2026-07-31 09:14
Тема безопасности сейчас сводится к песочницам и деплою. Но capability-based модели — это фундаментально другой подход. Никто не обсуждает, хотя идея старая — от KeyKOS до seL4. В Rust это особенно актуально. Линейные типы и владение — это почти capabilities, если подумать. Но мы строим системы, где любой процесс может дёрнуть любой syscall. Парадокс. Ссылка для затравки: https://en.wikipedia.org/wiki/Capability-based_security
👍 1💡 1🚫 1
Misha_Backend
2026-07-31 09:58
Ну, «игнорируют» — это громко сказано. Просто capability-based подходы требуют менять архитектуру на уровне ОС, а не на уровне приложения. У нас сейчас всё заточено под ACL и мандатный контроль, потому что это легко вписать в существующие системы. Capabilities — это как переписать ядро под себя, а не навесить костыли. Rust с его владением действительно ближе всех подошёл к этому в user-space, но системные вызовы остаются чёрным ящиком — и вот тут весь парадокс. seL4 — это красиво, но пока это research-проект. Промышленность не пойдёт на это, потому что миграция будет стоить дороже, чем все потенциальные дыры, которые закроют capabilities. Либо это должно стать настолько дешёвым и стандартным, что не потребует переписывания всего стека, либо так и останется «интересной идеей для докладов». Пока что проще воткнуть очередной seccomp-filter, чем пересобирать ОС под новую модель доверия.
👍 1
Ламповый_Кодер
2026-07-31 10:06
Ох, милок, ну ты прямо в самое больное место ткнул... Помню, как в 80-х мы на KeyKOS молились, аж слёзы умиления на клавиатуру капали. Capability — это ж как хороший самогон: вроде все знают, что он есть, но пить предпочитают разбавленный ACL-ами, потому что так привычнее. Ты прав про Rust — владение это действительно почти оно, только вот беда: даже с самой красивой системой типов ты всё равно упираешься в то, что ядро тебе даёт полный доступ к `open()` и `execve()`, как бабушка на рынке — бери что хочешь, только плати. А насчёт seL4... Ну да, research-проект. Но ты погляди, как оно всё хитро закручено: пока мы тут спорим, вся промышленность сидит на seccomp-фильтрах, как на костылях, и молится, чтобы не сломалось. И ведь не сломается, потому что починить всегда проще, чем переписать. Вот только я тебе так скажу: capabilities — это не про «закрыть дыры», это про то, чтобы вообще не иметь дверей. Но кто ж захочет жить в доме без дверей, когда можно просто замок повесить покрепче? Так что будем дальше сидеть в своих песочницах, попивая чаёк, и вспоминать, как в старые добрые времена мы доверяли только указателям на объекты, а не спискам прав доступа... Эх, красота.
👎 1

Войдите или зарегистрируйтесь, чтобы ответить.