Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выполнена формальная верификация безопасности микроядра seL4 для архитектуры AArch64

24.08.2026 21:36 (MSK)

Завершена работа над математической формальной верификацией надёжности и безопасности работы микроядра seL4 на системах с архитектурой набора команд AArch64. Верификация сводится к математическому доказательству корректности работы seL4, которое свидетельствует о полном соответствии заданным на формальном языке спецификациям. Доказательство надёжности позволяет использовать seL4 в критически важных системах на базе процессоров ARM64, требующих повышенного уровня безопасности и гарантирующих отсутствие сбоев.

Изначально микроядро seL4 было верифицировано для 32-разрядных процессоров ARM, а позднее для 64-разрядных процессоров x86 и RISC-V. Верификация гарантирует, что в случае сбоя в одной части системы, данный сбой не распространится на остальную систему и её критические части. В контексте обеспечения безопасности верификация подтверждает, что ядро обеспечивает должный уровень изоляции приложений, не позволяет им получить доступ к информации без авторизации и гарантирует, что в случае компрометации вторичных приложений, атака не распространится на критические важные приложения.

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

  1. Главная ссылка к новости (https://sel4.systems/news/#08-...)
  2. OpenNews: Первый выпуск QSOE, операционной системы в стиле QNX с двумя заменяемыми микроядрами
  3. OpenNews: Проект Genode опубликовал выпуск ОС общего назначения Sculpt OS 26.04
  4. OpenNews: Google представил проект Open Se Cura для создания защищённых программно-аппаратных систем
  5. OpenNews: Проекту seL4 присуждена премия ACM Software System Award
  6. OpenNews: Проект Neptune OS развивает слой совместимости с Windows на базе микроядра seL4
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66127-sel4
Ключевые слова: sel4
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (47) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 21:44, 24/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Как там с производительностью?
     
     
  • 2.3, Мемоним (?), 22:04, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Плохо. Ни одного CVE.
     
  • 2.7, Tron is Whistling (?), 22:18, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как и в любом микроядре - никак.
    Постоянные переключения контекста, сбросы TLB и просто cache thrashing, со всеми вытекающими.
     
  • 2.10, Tron is Whistling (?), 22:20, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Если нужна простая и доступная аналогия - это fuse против kernel-mode на конских IOPS и небольших блоках.
     
     
  • 3.15, Аноним10084 и 1008465039 (?), 22:30, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот интересно, можно ли монолитное ядро с верификацией делать? В монолитке драйверы устройств смогут положить ОСь конкретно и плакали гарантии (если сами драйверы не верифицировать, но драйверы делать-то лениво, не то что ещё верифицировать...) В микроядре в теории, сколько помню, бажный драйвер не должен понять ОСь, впрочем как будто   смысл идеальной ОСи, если железом она управляет через кривой драйвер... Но хоть что-то
     
     
  • 4.17, Аноним10084 и 1008465039 (?), 22:32, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    * не должен ронять ОСь
     
  • 4.20, Tron is Whistling (?), 22:36, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Можно, но любая неверифицированная часть - снимает гарантию корректности, поэтому смысл?
    А делать целиком - ну разве что очень узкоспециализированное ядро под простое железо.
     
  • 4.26, Tron is Whistling (?), 23:00, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Тут двояко.

    Если бажный драйвер попытается выйти из контекста своего юзерспейса - он получит по рукам.

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

    Если же бажный драйвер сконфигурит железо так, что оно например превратит шину в кашу или сделает замечательный DMA в память по рандомному адресу без IOMMU например - микроядро тут уже ничего сделать не сможет. А кое-где и IOMMU может не спасти.

     
     
  • 5.41, Норм (?), 04:45, 25/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это очень хорошо, если все ляжет. На самом деле.

    Гораздо хуже, если оно вот сделает как вы в конце описали, и не ляжет.
    Я на FreeBSD видел ужас которого быть по идее не может, а он есть. Дров сетевухи выдал ошибку, а ос стала записывать ввод консоли в случайное место на диске. ZFS не востановился после такого понятно никак.
    Хотя большую часть данных смог вытянуть с трупика.

     
     
  • 6.46, Tron is Whistling (?), 08:09, 25/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну тут больше заточено на системы управления, которые могут ситуацию обнаружить и хотя бы перезапуститься через монитор, который с драйверами в целом не взаимодействует, только вотчдоги мониторит.

    Пока микроядро не легло, этот самый монитор будет пытаться переподнять всё, вплоть до железа, и через какой-нибудь дубовый встроенный прямо в SoC нешинный JTAG/RS232/CAN при этом слать индикацию, что ж0па случилась.

    Вполне реальная применимость именно рядом с машинерией - станки, автомобили, корабли, самолёты, etc. Где I/O по-минимуму, и надо просто _не торопясь_ контроллеры устройств мониторить + обрабатывать агрегированные от них сигналы.

     
  • 6.48, Аноним (48), 08:15, 25/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А чё за сетевуха? Друг интересуется.
     
  • 4.30, Аноним (30), 23:17, 24/08/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.40, Норм (?), 04:37, 25/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Можно все что угодно.
    Разделение логическое больше чем реальное в плане железа и путей кода.

    Но линукс не получится.
    Не потому, что оно "монолитное", а потому что помойка, и кроме проблемы качества кода с указателями на войд, у него нету банально стабильного апи нонсенс. Верифицировать нечего, интерфейс не определен.
    Чудо что оно вообще работает.

     

  • 1.2, Аноним (2), 22:00, 24/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Объясните дауну, что такое формальная верификация. Желательно на пальцах.
     
     
  • 2.4, Аноним (2), 22:06, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Для меня "формально" - это типо оно как бы есть но можно закрыть глаза.
    А тут че то все молятся на нее
     
     
  • 3.19, Аноним10084 и 1008465039 (?), 22:35, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так сила в том, что можно по формальным правилам логики проверить корректность программы, сразу для всех допустимых входных данных. Никаких прогонов тестов, в которых можно что-то упустить - в принципе доказывается корректность работы

    Ну это в идеальном случае, конечно

     
  • 2.6, Цыган (?), 22:17, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Красивое слово для толстосумов, чтобы выбить стипендии и гранты.
     
     
  • 3.28, Аноним (28), 23:07, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Красивое слово для толстосумов, чтобы выбить стипендии и гранты.

    конечно, ровно таким макаром схлопнулся глубоководный аппарат Титан!

     
  • 2.11, Аноним10084 и 1008465039 (?), 22:24, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если по простому - это значит, что записали допущения на входе и ожидаемый результат и доказали математически (не прогоном тестов, а именно вот как теоремы доказывают), что код при входных допущениях приводит к ожидаемому результату

    Тут, конечно, остаётся проблема, что сама формальная спецификация (то, как записаны допущения и результат) должны не иметь ошибок + система проверки тоже хорошо чтобы багов не имело. Тем не менее, идея формальной верификации мне лично всегда импонировала

     

  • 1.5, Аноним (5), 22:16, 24/08/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

  • 1.8, Мемоним (?), 22:18, 24/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Дело конечно хорошее и правильное. Правда список принятых допущений делает немного грустить.

    https://sel4.systems/Verification/assumptions.html

    Особенно

    > Hardware: we assume the hardware works correctly. In practice, this means the hardware is assumed not to be tampered with, and working according to specification. It also means, it must be run within its operating conditions.

    Тут Intelы с AMDами машут ручкой.

     
     
  • 2.9, Tron is Whistling (?), 22:18, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не, ну если железо того, то уже ничего не спасёт. Хоть с верификацией, хоть без.
     
     
  • 3.13, Мемоним (?), 22:27, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Не, ну если железо того, то уже ничего не спасёт. Хоть с
    > верификацией, хоть без.

    Чисто теоретически, исходники железа тоже можно верифицировать. Только там объем доказательств не под силу даже самой мощной нейронке.

     
     
  • 4.16, Аноним10084 и 1008465039 (?), 22:31, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А я слышал железнячники вроде какие-то верификации у себя проводят, чтобы сложные железки собирать, разве нет?
     
  • 4.21, Tron is Whistling (?), 22:37, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Можно. Зависит от сложности. Z80 проще, x86 уже трудно.
     
  • 4.31, Аноним (28), 23:19, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Только там объем доказательств не под силу даже самой мощной нейронке.

    Индукцию применяют.


     
  • 4.42, Аноним (42), 06:09, 25/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А практически - гуглите single event upset
     
  • 2.12, Аноним10084 и 1008465039 (?), 22:26, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так сказать, наполовину пуст или полон.

    Мне вот лично кажется большим достижением то, что у них не прописано доверие компилятору - бинарный код тоже формально верифицируется. А ведь это большое дело!

     
     
  • 3.23, Tron is Whistling (?), 22:51, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да, конкретно для этой ниши верификация соответствия бинарника исходнику - почти обязательна.
     
  • 3.24, Tron is Whistling (?), 22:54, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Чуть в сторону отступая - всегда поражало, как люди в тех конторах, где это реально нужно, работают (и нет, госконторы там конечно есть, но они в меньшинстве). Там, где шаг влево или шаг вправо - всё, приплыли. Сплошные нормы, регламенты, все эти перекрёстные проверки, исчерпывающие теоретические верификации и ещё дополнительные валидации к ним.

    Я бы чокнулся, это нужно особый грейд садо-мазо в голове иметь. С уклоном в садо.

     
     
  • 4.25, Tron is Whistling (?), 22:54, 24/08/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.32, Аноним (28), 23:21, 24/08/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 5.33, Tron is Whistling (?), 23:24, 24/08/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 6.35, Аноним (28), 00:53, 25/08/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 7.37, Аноним10084 и 1008465039 (?), 01:10, 25/08/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 8.39, Аноним (28), 02:41, 25/08/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 7.45, Tron is Whistling (?), 08:05, 25/08/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.36, Аноним10084 и 1008465039 (?), 01:08, 25/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Читал про NASA и совсем чуть-чуть про авиа-инженерию - меня скорее даже поражало, как они умудряются при этих всех регламентах что-то делать и даже относительно безопасно делать (да, про провалы NASA и прочих Боингов я в курсе, они не без греха, но если бы там писали ПО так, как пишут в простом сайтостроении - не летали бы ни самолёты, ни корабли вообще)

    Обычно когда в коммерческой разработке пытаются что-то там зарегламентировать и перепроверить, становится медленно, неэффективно и дорого. Впрочем, бюджет NASA и впрямь был огромен, может секрет во многом и в нём

     
     
  • 5.47, Tron is Whistling (?), 08:12, 25/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вот да. Но в общем поэтому SpaceX и выстрелил.
     
  • 4.43, Аноним (-), 06:55, 25/08/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.14, Аноним (30), 22:28, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так тут ничего удивительного нет. Разработчики ядра не могут ничего с железом сделать, они не отвечают за дыры в нём.
     
     
  • 3.18, Мемоним (?), 22:34, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну так тут ничего удивительного нет. Разработчики ядра не могут ничего с
    > железом сделать, они не отвечают за дыры в нём.

    Все так. Просто это надо всегда явно и жирно прописывать. А не вот так:

    > Доказательство надёжности позволяет использовать seL4 в критически важных системах на базе процессоров ARM64, требующих повышенного уровня безопасности и гарантирующих отсутствие сбоев.

     
     
  • 4.22, Tron is Whistling (?), 22:49, 24/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Все так. Просто это надо всегда явно и жирно прописывать. А не вот так:

    Но зачем? Штука настолько нишевая, что те, кому надо - это прекрасно понимают. А остальным оно и незачем.


     
  • 2.38, Аноним (5), 01:17, 25/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Верификация верифицирует в зоне своей ответственности. Иначе придётся доказывать заодно и то, что вселенная существует. И как она существует.
     

  • 1.27, sage (??), 23:06, 24/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А тексты с доказательствами есть? Я только аннонсы на сайте вижу.
     
     
  • 2.34, Аноним (34), 00:09, 25/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    главное верить
     

  • 1.44, Sm0ke85 (ok), 07:21, 25/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно бы было увидеть/пощупать гну-дистрибутив на этом ядре, а то в линуксовое ядро потихоньку слоп заезжает с растом...

    Кстати, кто-нибудь в курсе на чем оно написано? (лицензия, я так понял, гпл2)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру