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

  • Инструменты статического тестирования безопасности приложений (SAST) анализируют и находят уязвимости в проприетарном исходном коде.
  • Чтобы добиться такой избирательной защиты, человек должен защищать себя или защищать информацию о себе избирательным образом; то есть конфиденциальность.
  • Так, с 1986 по 1989 год было зарегистрировано 450 случаев проникновения через сеть INTERNET компьютерных вирусов в сеть Министерства обороны США DDN, из которых 220 были классифицированы как успешные.
  • Организация переадресации команд, запись злоумышленной информации в используемые программной системой или другими программами ячейки памяти.
  • Привилегии, которые также определяются заранее, характеризуют возможность компонента с более высокими привилегиями наблюдать за выполнением программ на элементе с меньшими полномочиями и управлять ими.

Проблема усугубляется тем, что пользователи, как правило, уделяют меньше внимания обновлению системы безопасности своих периферийных устройств по сравнению с традиционными программными системами — основной ОС и сервисами. Если для большинства ОС и приложений предлагаются автоматические обновления, защищающие системы от известных уязвимостей, то обновления прошивки периферийных устройств (например, жестких дисков или адаптеров Bluetooth/Wi-Fi) выполняются гораздо реже и должны управляться самими пользователями. Главный совет при проведении таких обновлений заключается в том, что инициировать их следует лишь тогда, когда в этом есть очевидная необходимость. Жесткие диски и твердотельные накопители, которые обычно рассматриваются как простые блочные устройства, на самом деле содержат много встроенного ПО. В ходе недавнего анализа безопасности современных самошифрующихся твердотельных накопителей, на устройство Crucial MX100/MX200 была проведена успешная атака с перепрошивкой встроенного программного обеспечения, выполненная с использованием нескольких недокументированных команд конкретного поставщика. Обнаруженная уязвимость позволяет атакующему удаленно и скрытно перехватывать любые данные с диска, не оставляя на компьютере никаких следов.

6.3    Требования к реализации мер по разработке безопасного программного обеспечения

Например, подразделения по обеспечению безопасности устанавливают брандмауэры, программисты разрабатывают код для предотвращения уязвимостей, а тестировщики тестируют все изменения, чтобы предотвратить несанкционированный доступ третьих лиц. Чтобы внедрить DevSecOps, команды разработчиков программного обеспечения должны сначала внедрить DevOps и непрерывную интеграцию. В традиционных методах разработки программного обеспечения тестирование безопасности было отдельным процессом от SDLC. Команда безопасности обнаружила недостатки безопасности только после сборки программного обеспечения. Платформа DevSecOps улучшает SDLC, обнаруживая уязвимости в процессе разработки и доставки программного обеспечения.

безопасность программного обеспечения

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

Статика: механизмы обновления

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

безопасность программного обеспечения

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

Технические    требования    !

При выполнении анализа требований к ПО разработчик ПО должен определить требования по безопасности, предъявляемые к разрабатываемому ПО. Примечание — К программным относятся документы, содержащие сведения, необходимые для разработки, изготовления, сопровождения и эксплуатации программ. Реализация мер способствует достижению цели поддержания и улучшения компетентности сотрудников разработчика ПО в области разработки безопасного ПО. Разработчику ПО следует обеспечить конфиденциальность информации, связанной с выявленными уязвимостями программы. По результатам фаззинг-тестирования программы могут проводить доработку программы. Четыре последних качества стали основой Trustworthy computing (TwC) (англ. Trustworthy computing) («Вычисления, заслуживающие доверия») — инициативы корпорации Microsoft, главная задача которой — обратить внимание разработчиков на важность обеспечения указанных требования на каждом из этапов разработки ПО[9].

безопасность программного обеспечения

Задача безопасного программирования — защита данных пользователя от кражи и порчи, сохранение контроля над системой. Небезопасная программа — потенциальная цель для злоумышленника, который может использовать имеющиеся уязвимости для просмотра, изменения или удаления имеющейся информации, влияния на работу программ и сервисов (запуск или остановка), внедрения вредоносного кода в систему[2]. Анализ состава программного обеспечения (SCA) – это процесс, который автоматизирует обеспечение видимости использования программного обеспечения с открытым исходным кодом (OSS) с целью управления рисками, обеспечения безопасности и соответствия лицензиям.

6.1    Меры по разработке безопасного программного обеспечения, подлежащие реализации

Для организации работ, выполняемых в процессах жизненного цикла ПО, и подтверждения соответствия требованиям настоящего стандарта документация разработчика ПО должна содержать описание методов, используемых для уникальной маркировки каждой версии ПО. Для организации работ, выполняемых в процессах жизненного цикла ПО, и подтверждения соответствия требованиям настоящего стандарта должны быть оформлены эксплуатационные документы. Для организации работ, выполняемых в процессах жизненного цикла ПО, документация разработчика ПО должна содержать список выявленных в ходе проведения фаззинг-тестирования программы уязвимостей программы (при выявлении).

Таким образом, привилегии оборудования являются самыми высокими, привилегии прошивки — средними, а привилегии программного обеспечения — самыми низкими. До сих пор мы обсуждали высокоуровневую абстрактную модель вычислительной системы, где компоненты полностью состояли из аппаратного или программного обеспечения. Однако на самом деле существует еще и третий, гибридный тип реализации вычислительных функций — микропрограммная прошивка, или встроенное ПО. Термин «прошивка» существует так же давно, как и само компьютерное оборудование, — он был предложен Ашером Оплером еще в 1960-х годах [3]. Прошивка имеет с программным обеспечением ряд общих свойств, поскольку реализована в виде программных инструкций, которые выполняются на полном по Тьюрингу аппаратном процессоре общего назначения.

Атака отказа в обслуживании

Любая стратегия безопасности должна, следовательно, учитывать не только все элементы, входящие в состав отдельных систем (например, датчики, управляющие устройства и исполнительные механизмы), но также и все подсистемы безопасности, входящие в состав общей системы обеспечения безопасности. Таким образом, хотя настоящий стандарт рассматривает электрические/электронные/программируемые (Е/Е/РЕ) системы, связанные с безопасностью, предлагаемый в нем подход можно использовать также при рассмотрении систем, связанных с безопасностью, базирующихся на других технологиях. Системы, состоящие из электрических и/или электронных элементов, в течение многих лет используются для выполнения функций безопасности в большинстве областей применения. Компьютерные системы (обычно называемые программируемыми электронными системами), применяемые во всех прикладных отраслях для выполнения функций, не связанных с безопасностью, во все более увеличивающихся объемах используются для выполнения функций обеспечения безопасности. Для эффективной и безопасной эксплуатации технологий, основанных на использовании компьютерных систем, чрезвычайно важно, чтобы лица, ответственные за принятие решений, имели в своем распоряжении руководства по вопросам безопасности, которые они могли бы использовать в своей работе.

В этом случае требования, методы проверки или условия проверки настоящего основополагающего стандарта по безопасности не будут применяться, если на них нет конкретной ссылки, или они не включены в стандарты, подготовленные этими техническими комитетами. Примечание — Примерами стандартов для изделий и областей применения, разработанных на основе стандартов серии IEC 61508, являются [1]—[3]. Достаточности безопасности программ, отражающей необходимость поиска наиболее эффективных и надежных мер безопасности при одновременной минимизации их стоимости.