LINUX.ORG.RU

CheriBSD — FreeBSD с аппаратной защитой памяти CHERI

 , cheribsd


0

1

CheriBSD – специализированная операционная система, которая развивается при участии исследователей из Кембриджского университета и SRI International. Система поддерживает платформу Arm Morello и экспериментальную архитектуру CHERI-RISC-V. Исходный код и инструментарий доступны открыто.

Главная особенность проекта – использование аппаратно проверяемых привилегий (capabilities) вместо обычных указателей. Такая привилегия содержит адрес, границы доступной памяти и разрешения на выполнение операций. Процессор проверяет эти ограничения при обращении к памяти, что позволяет обнаруживать выходы за границы объектов и ограничивать последствия ошибок работы с указателями.

Механизмы CHERI интегрированы не только в пользовательские приложения, но и в ядро, системные библиотеки, ABI и средства отладки. Это позволяет экспериментировать с защитой существующего кода на C и C++, не требуя полного перехода на языки с проверками безопасности памяти на уровне компилятора, такие как Rust.

>>> Официальный сайт

★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от Aceler

Это исследовательская программа, бенчмарки там пока где-то в отдаленной перспективе болтаются.

hippi90 ★★★★★
()
Ответ на: комментарий от Aceler

Можно представить, что железные проверки быстрее софтовых, например. Но требует 128 битных указателей.

ant1 ★
() автор топика

В микропроцессоре Эльбрус это называется тегами памяти и прозрачно работает на дескрипторах вместо прямых указателей. Существует с незапамятных времен при включении защищенного режима. Весь контроль происходит на аппаратном уровне.

А кембриджский университет только сейчас до этого дошел. :)

Xintrea ★★★★★
()
Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от ant1

железные проверки быстрее софтовых

Ты щас сравнил скорость компиляции со скоростью выполнения, что ли?

thesis ★★★★★
()
Ответ на: комментарий от thesis

Я не знаю как работает руст и мне плевать. Судя по тенденции, сишка бутстрапнулась обратно в undead.

А тут еще антропик выкатил формальную верификацию уже существующих программ. Праздник кокойты.

ant1 ★
() автор топика
Последнее исправление: ant1 (всего исправлений: 1)
Ответ на: комментарий от dynamic_cast

Расшифруй, что ты хотел сказать.

Aceler ★★★★★
()
Ответ на: комментарий от Xintrea

теги памяти в ecc он использует и без защищённого режима.
Защищённый режим в эльбрусах использует не только теги памяти 128битные указатели, что уже сильно ломает совместимость с софтом

mittorn ★★★★★
()
Ответ на: комментарий от ant1

Да вообще достаточно сконвертировать код из rust обратно в си (rust уже отследил ошибки памяти), чтобы вернуть читаемость

mittorn ★★★★★
()
Ответ на: комментарий от ant1

Дык, сбежавшие соотечественники и притащили

На самом деле Бабоян «спионерил» эту разработку.Почитайте про Burroughs B5000, B5500, B5700 _ за 3-5 лет до Эльбрус -1.Единственное что архитектурно удачное решение в 2000х они запатентовали - это использования избыточности бит ECC для использования в тегах .Все, патенты на теги давно истекли а в США ввели требования об использовании аппаратной защиты памяти и безопасных языков - вспомнили и об тегирование.

maximnik0 ★★
()
Последнее исправление: maximnik0 (всего исправлений: 1)
Ответ на: комментарий от Xintrea

Прочтите наконец то про Burroughs B5000, B5500, B5700 .Посмотрите на даты - 61-73 годы ,кто до кого дошел ?
Вот пошел миф Бабаян разработал «аналогов нет». Единственное что в 200х он придумал это использование ЕСС для тегирования, т.е можно было использовать промышленные планки памяти.

maximnik0 ★★
()
Ответ на: комментарий от devl547

современный CHERI тоже уже несколько лет мучают.

В АRM процессорах уже 4 года как внедрили, даже выявили аппаратную ошибку.Значение тегов оказалось возможным прочитать из за использование общей памяти.И в Андроидах с какого то выпуска уже используется

maximnik0 ★★
()
Ответ на: комментарий от maximnik0

Значение тегов оказалось возможным прочитать из за использование общей памяти.

Вот такого рода баги в железе как раз стрёмные. Если знать структуру тэга, просто ищем на предмет размеров буферов 256, 512, и проч, где вся криптографическая вкуснота лежит.

seiken ★★★★★
()
Ответ на: комментарий от Aceler

На самом деле, аппаратная проверка границ буферов не закапыват раст полностью. Во-первых, потому что это даже и не киллер фича Раста. А киллер фича раста - борроу-чекер. А во-вторых, ансейф-Раст тоже выиграет от такой аппаратной проверки, делая раст ещё более безопасным.

seiken ★★★★★
()
Ответ на: комментарий от seiken

Я не большой специалист по процессорным архитектурам, просто спросил )

Aceler ★★★★★
()
Ответ на: комментарий от maximnik0

Если речь об ARM64 MTE, то это не совсем CHERI.

В MTE случайный 4-битный тег на 16 байт памяти, подобрать тег можно, как и скрафтить указатель который пройдет аппаратную проверку.

a1ba ★★★★
()

Эх, все эти ограничения - плата за многозадачность и многопотоковость...

В прежние времена даже Basic'и включали такие операторы как POKE и PEEK, которые позволяли писать и читать по произвольным адресам. С другой стороны, было даже известно такое явление как «killer poke», когда ошибка в применении POKE приводила к повреждению железа.

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от a1ba

А ,я понял , это я спутал с исследовательским проектом ,не задолго до МТЕ ARM выкладывала документы на исследовательскую работу,там как раз CHERI проект назывался.

maximnik0 ★★
()
Ответ на: комментарий от mittorn

(rust уже отследил ошибки памяти), чтобы вернуть читаемость

так, блин, продолжай

etwrq ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.