Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Интернет вещей

Шесть шагов для защиты встроенных систем в IoT

Марк Питчфорд из LDRA

Безопасность продолжает оставаться первостепенной задачей для огромного множества встраиваемых систем в Интернете вещей (IoT). В случае проникновения системы, скрытые в электросетях, производстве электроэнергии, производстве, автомобильных системах, медицинских устройствах, управлении зданиями, бензонасосах, тостерах и многом другом, могут стать серьезным риском, Марк Питчфорд из LDRA отчеты.

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

Примите во внимание следующие передовые методы, которые помогут создать высококачественный код и повысить безопасность встроенных систем:

1. Обеспечьте безопасность в жизненном цикле разработки программного обеспечения

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

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

2. Обеспечьте двунаправленное отслеживание

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

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

3. Выберите безопасный набор языков

При разработке на C или C ++ около 80% программных дефектов можно отнести к неправильному использованию 20% языковых конструкций. Подмножества языков повышают безопасность и защищенность, предотвращая или отмечая использование небезопасных конструкций. Два популярных стандарта кодирования, MISRA C и CERT C Института программной инженерии Карнеги-Меллона (SEI), помогают разработчикам создавать безопасный код.

Применение MISRA C или CERT C приведет к созданию более безопасного кода, чем если бы ни один из них не применялся. Однако соблюдение этих правил вручную требует времени, усилий, денег и, по иронии судьбы, качества, поскольку ручной процесс сложен и подвержен ошибкам. Чтобы сократить расходы и повысить производительность, организациям-разработчикам необходимо автоматизировать поддержку соблюдения нормативных требований.

4. Используйте стандартные процессы, ориентированные на безопасность

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

Например, автомобильная промышленность в настоящее время разрабатывает ISO / SAE 21434 «Разработка кибербезопасности дорожных транспортных средств», чтобы смягчить проблему подключенных транспортных средств как целей для кибератак. Обещание существенного документа с более подробной информацией, чем руководящие принципы высокого уровня SAE J3061 «Руководство по кибербезопасности для киберфизических транспортных систем», делает ISO / SAE 21434 широко ожидаемым.

5. Максимально автоматизируйте

На каждом этапе процесса разработки программного обеспечения автоматизация снижает уязвимость встроенных систем и экономит огромное количество времени и средств. Разработчики могут подключаться к инструментам требований (например, IBM Rational DOORS), импортировать моделирование и конструкции моделирования и тестировать их на соответствие коду, чтобы сразу увидеть, как и выполняются ли требования, что отсутствует, а где мертвый код, который не выполняет? t выполнить требование.

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

6. Выберите безопасный программный фундамент

Защищенное встроенное программное обеспечение должно работать на защищенной платформе, поэтому, если приложение подвергается атаке, оно работает в собственном изолированном хранилище, изолированном от других программных компонентов («разделение домена»). Автоматизированные инструменты тестирования и проверки программного обеспечения интегрируются в общие среды разработки, начиная с спецификации требований и заканчивая проектированием и моделированием, кодированием и документацией. Это гарантирует, что разработчики могут создавать безопасные системы в знакомой среде и с инструментами, уже указанными для их системы.

Следование этим шести процессам обеспечивает целостный подход к разработке безопасного, надежного и надежного встроенного программного обеспечения для Интернета вещей.

Автор - Марк Питчфорд из LDRA.

Для получения дополнительной информации нажмите здесь:


Интернет вещей

  1. Защита промышленного Интернета вещей:недостающий элемент головоломки
  2. Путь к промышленной безопасности Интернета вещей
  3. Устранение уязвимостей безопасности промышленного Интернета вещей
  4. Защита Интернета вещей от кибератак
  5. Защита вектора угроз Интернета вещей
  6. Защита Интернета вещей с помощью обмана
  7. Из рук в руки - зачем Интернету вещей нужен SD-WAN
  8. Защита Интернета вещей от сетевого уровня до уровня приложения
  9. Четыре шага к найму лучшего директора по информационной безопасности в мире Интернета вещей
  10. Три шага для глобальной безопасности Интернета вещей