Безопасность программной системы - Software system safety

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

Обзор

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

Функциональные анализы опасностей (FHA) часто проводятся на ранней стадии - параллельно с функциональными анализами системного проектирования или как их часть - для определения критических для безопасности функций (SCF) систем для дальнейшего анализа и проверки. Безопасность программной системы напрямую связана с более критическими аспектами проектирования и атрибутами безопасности в программном обеспечении и функциональных возможностях системы, тогда как атрибуты качества программного обеспечения по своей сути различны и требуют стандартной проверки и тщательности разработки. Уровни обеспечения разработки (DAL) и связанный с ними уровень строгости (LOR) - это дифференцированный подход к обеспечению качества программного обеспечения и обеспечению проектирования программного обеспечения как предварительное условие того, что для уверенности соблюдается соответствующий процесс программного обеспечения. Концепции и стандарты LOR, такие как DO-178C НЕ заменяют безопасность программного обеспечения. Безопасность программного обеспечения согласно IEEE STD-1228 и MIL-STD-882E фокусируется на обеспечении выполнения и проверки явных требований безопасности с использованием функциональных подходов с точки зрения анализа требований безопасности и тестирования. Анализ угроз безопасности программного обеспечения, необходимый для более сложных систем, в которых программное обеспечение управляет критическими функциями, обычно относится к следующим последовательным категориям и проводится поэтапно как часть процесса обеспечения безопасности системы или проектирования безопасности: анализ требований безопасности программного обеспечения; анализ проекта безопасности программного обеспечения (верхний уровень, рабочий проект и уровень кода); анализ тестирования безопасности программного обеспечения и анализ изменений безопасности программного обеспечения. После того, как эти «функциональные» анализы безопасности программного обеспечения будут завершены, группа разработчиков программного обеспечения будет знать, где сделать акцент на безопасности и на каких функциональных потоках, функциональных путях, областях и границах следует сосредоточиться при проектировании атрибутов безопасности программного обеспечения, чтобы гарантировать правильную функциональность и обнаруживать неисправности отказов, отказов и реализации множества стратегий смягчения последствий для контроля опасностей. Безопасность программного обеспечения и различные технологии защиты программного обеспечения аналогичны атрибутам безопасности программного обеспечения в дизайне для снижения различных типов уязвимостей и рисков угроз. Детерминированное программное обеспечение ищется в проекте путем проверки правильного и предсказуемого поведения на системном уровне.

Цели

  • Функциональная безопасность достигается за счет инженерных разработок, чтобы гарантировать правильное выполнение и поведение программных функций, как задумано.
  • Безопасность, соответствующая требованиям миссии, заложена в программное обеспечение своевременно и с минимальными затратами.
  • В сложных системах, включающих множество взаимодействий, критические для безопасности функциональные возможности должны быть идентифицированы и тщательно проанализированы, прежде чем выявлять опасности и проектировать меры безопасности для их снижения.
  • Списки критически важных для безопасности функций и предварительные списки опасностей должны определяться заранее и влиять на требования, которые будут реализованы в программном обеспечении.
  • Факторы, способствующие и основные причины сбоев и возникающих в результате опасностей, связанных с системой и ее программным обеспечением, выявляются, оцениваются и устраняются, а риск снижается до приемлемого уровня на протяжении всего жизненного цикла.
  • Сведение к минимуму зависимости от административных процедур по управлению опасностями.
  • Количество и сложность критичных для безопасности интерфейсов сведены к минимуму.
  • Количество и сложность критических для безопасности компонентов компьютерного программного обеспечения сведены к минимуму.
  • При проектировании пользовательского интерфейса программного обеспечения применяются разумные принципы человеческой инженерии, чтобы свести к минимуму вероятность человеческой ошибки.
  • Режимы отказа, включая аппаратные, программные, человеческие и системные, рассматриваются при разработке программного обеспечения.
  • При разработке программного обеспечения используются надежные методы разработки программного обеспечения и документация.
  • Вопросы безопасности и атрибуты безопасности рассматриваются как часть усилий по тестированию программного обеспечения на всех уровнях.
  • Программное обеспечение предназначено для человеко-машинного интерфейса, простоты обслуживания и модификации или улучшения.
  • Программное обеспечение с критически важными для безопасности функциями должно быть тщательно проверено с помощью объективного анализа и, желательно, подтверждения того, что все требования безопасности выполнены в соответствии с установленными критериями.

Эта статья включает материалы, являющиеся общественным достоянием, из документа правительства США. Объединенный комитет по безопасности программных системРУКОВОДСТВО ПО БЕЗОПАСНОСТИ СИСТЕМЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Технический и управленческий командный подход Этот документ изначально был получен из Интернета "http://www.monmouth.army.mil/cecom/safety/sys_service/[постоянная мертвая ссылка ]"., который теперь является мертвой ссылкой, так как эта база закрылась в 2011 году. PDF-документ доступен по адресу http://www.system-safety.org/Documents/Software_System_Safety_Handbook.pdf 2,15 МБ. Кроме того, обновленную версию можно получить: http://www.acqnotes.com/Attachments/Joint-SW-Systems-Safety-Engineering-Handbook.pdf 4,6 МБ.

Смотрите также