Linux и безопасность для современных встраиваемых (embedded) медицинских устройств

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

В данной статье мы рассмотрим несколько ключевых вопросов, с которыми приходится сталкиваться разработчикам.

Linux и медицина совместимы

Как можно использовать программное обеспечение с открытым исходным кодом Linux для обеспечения безопасности медицинских устройств?

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

Можно ли предварительно сертифицировать Linux для использования в медицинском устройстве?

На самом деле, нет. Некоторые операционные системы реального времени (RTOS), такие как Nucleus RTOS от Mentor, могут быть приобретены предварительно сертифицированными, как и другие встроенные программные компоненты от ряда поставщиков. Чтобы пройти предварительную сертификацию такого рода, поставщик должен показать, что весь процесс разработки программного обеспечения — требования, проектирование, разработка, тестирование и испытания, а также все этапы разработки — были выполнены в соответствии со стандартами медицинской промышленности, такими как ISO 13485 и / или IEC 62304. Linux и другие компоненты с открытым исходным кодом не разработаны в соответствии с этими стандартами, поэтому они не могут пройти предварительную сертификацию.

Были предприняты попытки продемонстрировать соответствие Linux всеобъемлющим концепциям функциональной безопасности, таким как сопоставление с IEC 61508, на основе которого взяты многие отраслевые стандарты, включая IEC 62304. Хотя этот подход не увенчался успехом, Project ELISA, в настоящее время процесс, является многообещающим за счет улучшения процессов разработки программного обеспечения с открытым исходным кодом и сопоставления результатов более высокого качества с этими стандартами. Однако до полной реализации этой перспективы, скорее всего, потребуются годы.

На что сейчас полагаются разработчики встраиваемых систем (embedded system), чтобы обеспечить безопасность своих медицинских устройств на базе Linux?

Вместо предварительной сертификации Linux обычно обрабатывается с использованием концепции IEC 62304 под названием «Программное обеспечение неизвестного события» (Software of Unknown Providence) или SOUP для современных медицинских устройств. В соответствии с этими руководящими принципами Linux рассматривается как часть оценки риска всего устройства, и необходимо учитывать и устранять потенциальные сбои Linux, используемого в устройстве, если они могут причинить вред пациенту. Эта оценка риска должна соответствовать требованиям руководства FDA до и после подачи заявки.

Таким образом, во внешнем интерфейсе необходимо учитывать использование операционной системы Linux при проектировании, реализации, тестировании и проверке устройства. Затем при использовании Linux и всего программного обеспечения с открытым исходным кодом необходимо учитывать возможность того, что проблемы будут обнаружены после выпуска продукта. При сертификации очень внимательно изучают этот аспект открытого исходного кода, особенно в том, что касается вопросов безопасности.

В медицинских устройствах должна быть и надежность и безопасность. Но нельзя обеспечить оба параметра. Так ли это?

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

Что может произойти если хакер взломает умное медицинское устройство?

Помогает ли использование Linux и другого программного обеспечения с открытым исходным кодом защитить медицинские устройства?

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

Поскольку это наиболее изученная операционная система в мире, подавляющее большинство разработчиков добросовестно работают над улучшением Linux и других пакетов с открытым исходным кодом. Но есть также небольшое количество участников, которые ищут способы проникнуть в ядро Linux в своих корыстных целях. Безопасность приложений с открытым исходным кодом — это постоянное перетягивание каната между этими противоборствующими сторонами. Без безопасности у вас не может быть надежности.

В Linux так много проблем с безопасностью…

Linux и другие основные пакеты с открытым исходным кодом, такие как OpenSSL или SQLite, представляют собой большие пакеты, которые могут непредсказуемо взаимодействовать с другим программным обеспечением, работающим в той же системе. Это сочетается с тем фактом, что многие недостатки трудно найти при проверке кода, обычном тестировании или статическом анализе. И их невозможно обнаружить, если программное обеспечение не сочетается с переключением задач и межпроцессным взаимодействием. Передовой опыт не позволит выявить все возможные недостатки или эксплойты, и большая часть программного обеспечения с открытым исходным кодом, на которое мы полагаемся, изначально не была разработана с учетом современных передовых практик.

Хакеры пользуясь слабыми местами Linux могут взламывать медицинские устройства

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

Что происходит, когда в Linux обнаруживается проблема безопасности?

Проблемы безопасности в Linux, в том числе в другом важном программном обеспечении, таком как OpenSSL, обнаруживаются инженерами либо случайно, как ошибка, которую они обнаруживают во время сборки проекта, либо в результате согласованных усилий по поиску эксплойтов (вредоносного кода), таких как взлом «белой шляпы». Или эксплойт будет обнаружен во время вскрытия атаки, но это довольно редко.

В любом случае средство обнаружения эксплойтов уведомит сообщество о проблемном компоненте с открытым исходным кодом (open source). Затем исследователь или член сообщества Linux уведомит группу Common Vulnerability and Exposures (CVE), управляемую MITER, организацией, тесно связанной с Национальной базой данных уязвимостей США (NVD), управляемой Национальным институтом стандартов и технологий (NIST).

Как только уязвимость обнаружена и исправление доступно, CVE публикуется путем включения в эти списки. Если эксплойт достаточно серьезен, проблема обсуждается сообществом безопасности во всем мире. Это та точка, где устройства потенциально наиболее уязвимы. Поскольку большинство уязвимостей обнаруживают «хорошие парни», злоумышленники узнают о них, как и весь остальной мир. Затем эти злоумышленники могут развернуть эксплойты, которые используют вновь обнаруженную уязвимость.

Тем не менее, эта публичность очень важна, поскольку она предупреждает мировое сообщество, как о проблеме, так и об исправлении. Таким образом, организация может определить, может ли конкретный эксплойт повлиять на их устройства, и если да, то они могут смягчить проблему до того, как она возникнет. Конечно, не все смогут обновить свои устройства, что сделает их уязвимыми для атак. Но поскольку в мире нет «настоящих секретов», эта открытость предотвращает больше проблем, чем вызывает.

Вернуться к безопасности. Насколько безопасен Linux?

Операционная система, такая как Linux, напрямую не делает ничего, чтобы сделать устройство более безопасным. Операционная система не предотвращает сбой и не заставляет систему восстанавливаться после сбоя. Когда вы устанавливаете Linux в систему без других приложений и включаете ее, Linux загружается; однако он просто «зависает» в на стартовом экране. Он ничего не делает до тех пор, пока не будут запущены приложения, использующие Linux, и именно эти приложения вносят вклад в общую безопасность устройства. Хотя операционная система не является механизмом безопасности, она включает их и считается элементом безопасности.

Каким образом многопроцессорная система влияет на безопасность при современных и доступных микропроцессорах?

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

Чтобы в полной мере воспользоваться стоимостью спецификации платы и более высокой степенью интеграции компонентов в усовершенствованный мультипроцессор для создания чувствительной к безопасности конструкции, приложения должны быть разделены — так называемая критичность смешанной безопасности.

Систему на базе Linux очень трудно сертифицировать для медицинских устройств

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

Усовершенствованные многопроцессорные системы содержат аппаратную изоляцию, которая разделяет мир приложений и критически важный для безопасности мир. Однако разработчик программного обеспечения должен использовать промежуточное программное обеспечение, такое как Mentor Hypervisor или Mentor Multicore Framework, чтобы воспользоваться преимуществами этих аппаратных функций. Эти программные пакеты позволяют выполнять важные функции системного уровня, такие как безопасное межпроцессорное взаимодействие (IPC) между кластерами процессоров.

Добавить комментарий