Стандарты безопасности программного обеспечения
Каких отраслевых стандартов безопасности программного обеспечения знает кто-то, с кем сталкивался при разработке программного обеспечения, связанного с управлением устройством / системой, которое может нанести вред людям, использующим его?
7 ответов
Начните здесь: http://www.aonix.com/safety_critical_overview.html
Прочитайте это: http://www.ghs.com/products/safety_critical/index.html
Послушайте это: http://www.podnova.com/channel/388090/episode/7/
Это хорошо понятная тема. В течение многих лет военные создавали программное обеспечение для обеспечения безопасности.
Ссылка Aonix выше является хорошей для основных рассуждений. Если вам нужны примеры того, как работают определенные стандарты, вы можете воспользоваться Google:
- МЭК61508: "Функциональная безопасность электрических / электронных / программируемых электронных систем, связанных с безопасностью (E/E/PES)". Базовый стандарт, на который ссылаются в различных отраслевых стандартах. Эта страница МЭК является хорошей отправной точкой. Часть 61508-3 о программном обеспечении.
- DO-178B: стандарт авионики с той же областью применения, что и в стандарте IEC61508, который несколько отличается от программного обеспечения
- IEC60601-1-4: Сделки с "Программируемые электрические медицинские системы" (часть стандартов серии 60601)
- EN5012x: Стандарты железной дороги - 50128 о программном обеспечении.
Различные отрасли имеют разные стандарты. Авиация и робототехника например. Стандарты все еще развиваются в некоторых новых отраслях, таких как хирургические роботы. Тем не менее, есть некоторые общие элементы. Первое - это избыточность. Я работаю с промышленными роботами. Для критических элементов, таких как управление скоростью, мы используем три разных вычисления на двух разных контроллерах. Для систем аварийного останова мы используем двухконтурные цепи, каждая красная кнопка электронного останова имеет два физических переключателя.
Я работал на самолете. На автопилотах самолетов часто есть два или даже три отдельных компьютера, которые выполняют расчеты и сравнивают результаты.
Цель состоит в том, чтобы предотвратить любой сбой, который сделает систему небезопасной.
Вам необходимо ознакомиться с правилами и положениями, регулирующими область, в которой вы работаете, чтобы понять, каковы требования законодательства, но вы должны сделать всю систему безопасной.
MISRA - это стандарт, применяемый в автомобильной промышленности, но это стандарт кодирования, обеспечивающий правильность работы и портативность.
Вы должны прочитать об авариях в Тераке, чтобы понять сложность этой проблемы.
Кроме того, НАСА и военные документы широко доступны и обсуждают стандарты кодирования, которые позволяют определить безопасность системы.
-Адам
Подходы варьируются в зависимости от поля. (извините, я оцениваю только 1 ссылку...)
Авионика: DO-178B: (см. Википедию)
Информационная безопасность Общие критерии (см. Веб-сайт портала общих критериев)
FDA контролирует программное обеспечение для медицинских устройств (например, рентгеновские аппараты) http://www.fda.gov/medicaldevices/deviceregulationandguidance/guidancedocuments/default.htm
Список рассылки с критикой безопасности (Великобритания) в U of York, Великобритания, является отличным ресурсом. В последнее время обсуждается, как применять стандарты SIL (см. Википедию по стандартам SIL) к программным системам.
Это не безопасный стандарт, но некоторое время читая риски comp.isk, вы увидите, какие проблемы вам понадобятся для предотвращения.
(Книга "Компьютерные риски" также очень хороша.)
Программное обеспечение никогда не должно запускать систему, которая может кого-то травмировать. Единственное возможное (и все еще сомнительное) время, когда это может быть ложным, - это использование надежного ПЛК, специально разработанного для обеспечения безопасности.
Вы должны посмотреть на: