Разработка безопасного программного обеспечения руководство

Разработка безопасного программного обеспечения по ГОСТ Р 56939-2016

Пришлось столкнуться с новым стандартом по разработке безопасного — ГОСТ Р 56939-2016.

Документ получился интересный, поэтому полезно провести его небольшой анализ.

Стандарт был принят прошедшим летом, но вступит в силу только через год – с 1 июля 2017 года. Разработчиком стандарта является ЗАО «НПО «ЭШЕЛОН». Целевой аудиторией стандарта являются разработчики ПО, а также организации, выполняющие оценку соответствия.

В стандарте можно выделить следующие ключевые моменты:

  • Стандарт устанавливает общие требования к содержанию и порядку выполнения работ, связанных с созданием безопасного ПО. Детали соответствующих процессов в стандартом не регламентируются. 
  • Меры по разработке безопасного ПО применяются в течение всего жизненного цикла ПО. Есть связь с процессами, описанными в ИСО/МЭК 12207-2010.
  • Стандартом вводится базовый набор мер по разработке безопасного ПО. При невозможности реализации в среде разработки ПО отдельных мер из базового набора, разработчик имеет право реализовать компенсирующие меры.
  • В стандарте предусмотрено целых 6 видов испытаний ПО: статический анализ и экспертиза кода, функциональное тестирование программы, тестирование на проникновение, динамический анализ кода и фаззинг-тестирование.
  • Учитывается необходимость защиты инфраструктуры среды разработки ПО.
  • Учитывается необходимость обеспечения конфиденциальности информации, получаемой в ходе анализа кода и тестирования ПО

Всего в стандарте описано 23 меры. По каждой мере четко описаны цели, результат реализации, а также требования к реализации меры (т.е. что именно нужно сделать). Радует, что все меры описаны достаточно однозначно.
«Базовый набор мер» по ГОСТ Р 56939-2016 выглядит следующим образом:

1. Меры по разработке безопасного программного обеспечения, реализуемые при выполнении анализа требований к программному обеспечению:

1.1. При выполнении анализа требований к ПО разработчик ПО должен определить требования по безопасности, предъявляемые к разрабатываемому ПО.

2. Меры по разработке безопасного программного обеспечения, реализуемые при выполнении проектирования архитектуры программы:

2.1. Моделирование угроз безопасности информации.

2.2. Уточнение проекта архитектуры программы с учетом результатов моделирования угроз безопасности информации.

3. Меры по разработке безопасного программного обеспечения, реализуемые при выполнении конструирования и комплексирования программного обеспечения:

3.1. Использование при разработке ПО идентифицированных инструментальных средств.

3.2. Создание программы на основе уточненного проекта архитектуры программы.

3.3. Создание (выбор) и использование при создании программы порядка оформления исходного кода программы.

3.4. Статический анализисходного кода программы.

3.5. Экспертизаисходного кода программы.

4.       Меры по разработке безопасного программного обеспечения, реализуемые при выполнении квалификационного тестирования программного обеспечения:

4.1. Функциональное тестирование программы.

4.2. Тестирование на проникновение.

4.3. Динамический анализ кода программы.

4.4. Фаззинг-тестирование программы.

5. Меры по разработке безопасного программного обеспечения, реализуемые при выполнении инсталляции программы и поддержки приемки программного обеспечения:

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

5.2. Поставка пользователю эксплуатационных документов.

6. Меры по разработке безопасного программного обеспечения, реализуемые при решении проблем в программном обеспечении в процессе эксплуатации:

6.1. Реализация и использование процедуры отслеживания и исправления обнаруженных ошибок ПО и уязвимостей программы.

6.2.  Систематический поиск уязвимости программы.

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

7.1. Реализация и использование процедуры уникальной маркировки каждой версии ПО.

7.2. Использование системы управления конфигурацией ПО.

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

8.1. Защита от несанкционированного доступа к элементам конфигурации.

8.2. Резервное копирование элементов конфигурации.

8.3. Регистрация событий, связанных с фактами изменения элементов конфигурации.

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

9.1. Периодическое обучение сотрудников.

9.2. Периодический анализ программы обучения сотрудников.



Далее рассмотрим примерный набор документов, которые должны быть в наличии в соответствии со стандартом.

  • Политика информационной безопасности в соответствии с ИСО/МЭК 27001.
  • Руководство по разработке безопасного ПО.
  • Перечень требований по безопасности (могут быть включены в ТЗ).
  • Модель угроз безопасности.
  • Проект архитектуры программы (логическая структура программы).
  • Перечень инструментальных средств разработки ПО.
  • Описание проектных решений, обеспечивающих выполнение требований по безопасности;
  • Порядок оформления исходного кода программы.
  • Регламент и протоколы статического тестирования программы.
  • Регламент и протоколы экспертизы исходного кода программы.
  • Регламент и протоколы функционального тестирования программы.
  • Регламент и протоколы тестирования на проникновение.
  • Регламент и протоколы динамического анализа кода программы.
  • Регламент и протоколы фаззинг-тестирования программы.
  • Эксплуатационная документация.
  • Регламент передачи ПО пользователю.
  • Регламент отслеживания и исправления обнаруженных ошибок ПО и уязвимостей программы.
  • Регламент приема и обработки сообщений от пользователей об ошибках ПО и уязвимостях программы.
  • Регламент доведения до пользователей информации об уязвимости программы и рекомендаций по их устранению.
  • Журнал ошибок и уязвимостей программы.
  • Регламент экстренного выпуска обновлений ПО.
  • Регламент, протоколы и журналы поиска уязвимостей программы.
  • Регламент доведения до пользователей сведений об уязвимостях программы.
  • Регламент маркировки версий ПО.
  • Регламент управления конфигурацией ПО.
  • Регламент защиты инфраструктуры среды разработки ПО.
  • Регламент резервного копирования конфигурации ПО.
  • Регламент регистрации событий изменений конфигурации ПО.
  • Журнал регистрации изменений конфигурации ПО.
  • Программа обучения сотрудников в области разработки безопасного ПО.
  • Журнал обучения сотрудников в области разработки безопасного ПО.

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

Подводя итог, хочется отметить достоинства документа: 

  • продуманный набор мер, хорошее объяснение по сути каждой меры;
  • разрешается использовать компенсирующие меры;
  • предусмотрен широкий перечень проверок кода и тестирования ПО;
  • связь с ГОСТ Р ИСО/МЭК 15408, ИСО/МЭК 12207-2010.

P.S. Для тех, кто хочет глубже понять стандарт, советую отличную научную статью, практически из первоисточника: ссылка.  
В статье очень подробно объясняется методика разработки стандарта и состав защитных мер.


Alt text


Ваш провайдер знает о вас больше, чем ваша девушка? Присоединяйтесь и узнайте, как это остановить!


Безопасная разработка и уязвимости программного кода

Время на прочтение
5 мин

Количество просмотров 7.6K

Часть 1. Как писать свой код без ошибок

На сегодняшний день трудно представить себе какую-либо отрасль бизнеса, в которой не использовались бы информационные технологии. Не только в банковской сфере, но и в промышленности, транспорте, сельском хозяйстве – везде ИТ играют огромную роль. У каждой отрасли своя специфика и найти готовое приложение, которое бы полностью удовлетворяло потребности конкретной организации не всегда возможно.

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

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

Концепция SDLC

Начнем мы наше повествование с классической концепции Software Development Life Cycle (SDLC), состоящей из набора шагов по разработке программного продукта. Эта концепция состоит из следующих шести шагов:

  1. Анализ требований.

  2. Планирование.

  3. Проектирование и дизайн.

  4. Разработка ПО.

  5. Тестирование.

  6. Развёртывание.

Действия, выполняемые на каждом из этих шагов достаточно очевидны:

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

Планирование — это составление плана разработки ПО, описывающего этапность разработки.

Проектирование и дизайн это, по сути, превращение сухих требований ТЗ в архитектуру программного продукта.

С разработкой ПО все понятно. Тестирование предполагает полноценную проверку корректной работы приложения.

Ну и развертывание — это завершающий этап разработки ПО.

Waterfall – когда можно последовательно и не торопясь

Последовательное выполнение всех этих шагов предполагается в методологии Waterfall. Эта более простая и управляемая методология. При этом она успешно применяется только в тех проектах, где во время разработки какие-либо требования к проекту существенно не меняются.

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

Поэтому в современной разработке большей популярностью пользуется методология Agile.

Agile – когда все меняется

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

Данная методология хорошо подходит для продуктов, у которых часто меняются бизнес-требования и отсутствуют специфические требования к надёжности.

Если до этого мы говорили об SDLC, то есть о разработке программных продуктов, то теперь перейдем непосредственно к теме безопасной разработки.

Концепция SSDLC

SSDLC — Secure Software Development Lifecycle — концепция разработки, заключающаяся в обеспечении безопасности разрабатываемого приложения, идентификации рисков и управления ими.

При этом, данная концепция предполагает выполнение ряда шагов еще до начала разработки программного продукта. Так перед началом разработки вся команда должна пройти Pre-SDL: Security Training — обучение информационной безопасности.

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

Во время обучения освещаются следующие темы:

  1. Безопасное проектирование.

  2. Моделирование угроз.

  3. Безопасная разработка.

  4. Тестирование ПО в части безопасности.

  5. Обеспечение приватности.

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

Этапы непосредственной разработки здесь имеют определенный акцент на вопросы информационной безопасности.

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

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

Implementation (разработка ПО) — фокусирование на качестве и факте реализации ранее спроектированных требований в коде приложения. В этот этап также входит проверка зависимостей.

Verification — верификация, тестирование. При этом важно проводить тестирования в части аспектов информационной безопасности, в частности использовать проверки на наличие уязвимостей в коде.

Release — развёртывание и сопровождение, в которое входит мониторинг событий безопасности и реагирование на инциденты.

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

  1. Повышать одновременно в нескольких командах.

  2. Повышать комплексно.

При этом каждый следующий уровень зрелости сложнее, чем предыдущий.

Оценить уровень зрелости ИБ в компании можно с помощью фреймворка Owasp SAMM.

Owasp SAMM

Software Assurance Maturity Model — модель (фреймворк) обеспечения безопасности программного обеспечения. Этот фреймворк позволяет оценить уровень зрелости на каждой итерации развития ИБ в компании, а также предлагает набор методов по её улучшению.

Фреймворк состоит из 5 бизнес функций:

  • Governance;

  • Design;

  • Implementation;

  • Verificatio;

  • Operations.

Для оценки необходимо ответить на вопросы по каждому из доменов. Например, в разделе Policy & Compliance домена Governance, необходимо ответить, в том числе, на вопросы: “Есть ли у вас и применяете ли вы общий набор политик и стандартов во всей вашей организации?” и “Публикуете ли вы политики организации в виде тестовых сценариев или руководств для упрощения интерпретации командами разработчиков”. А в Design ответить на вопросы “Используете ли вы централизованные и количественные профили рисков приложений для оценки бизнес-рисков”.

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

Для автоматизации оценки существуют онлайн калькуляторы, например https://concordusa.com/SAMM/.

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

Заключение

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

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

Также хочу пригласить всех желающих на бесплатный вебинар, который 13 апреля проведут мои коллеги из Otus. На вебинаре поговорим о том, что такое ИБ (от уровня «не открывайте письма от неизвестных отправителей» до уровня «товарищ майор, мы не специально») и на что опираться (стандарты, законы), как COVID-19 пришёл и почему вечер у специалистов по ИБ перестал быть томным, коротко обсудим почему в технологии DevOps нужен Sec. Регистрация на вебинар доступна по ссылке.

Практические аспекты построения процесса безопасной разработки программного обеспечения

Игорь Беляков, 14/06/20

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


Игорь Беляков
CISO kupibilet.ru, к.т.н.

Реализация рисков на этапе эксплуатации может привести к серьезному финансовому и репутационному ущербу. Финансовый ущерб, как правило, включает в себя затраты на устранение уязвимости и выпуск новой версии программы, а также упущенную выгоду, которая может стать следствием снижения интереса клиентов к небезопасному приложению. Безопасная разработка программного обеспечения (Secure Software Development Lifecycle – SSDL) представляет собой подход, нацеленный на своевременное выявление и устранение уязвимостей в исходном коде. Построение SSDL силами разработчика программного обеспечения является наиболее верным решением, ведь именно разработчик заинтересован в снижении накладных расходов на поддержание продукта.

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

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

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

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

В сложившейся практике внедрение SSDL сводится к включению средства статического анализа исходного кода (Static Application Security Testing – SAST) в процесс тестирования приложения. Как правило, тестирование безопасности приложения осуществляется одновременно с функциональным тестированием (Quality Assurance – QA). То есть если приложение успешно проходит все проверки, его можно отправлять в промышленную эксплуатацию.

При построении процесса непрерывной безопасной разработки обязательно используются три основных компонента:

  1. GIT – распределенная система управления версиями, хранения и версионирования исходного кода.
  2. CI (Continuous Integration – непрерывная интеграция) – основная логика распространения новых версий программного обеспечения. Непрерывная интеграция – это практика разработки программного обеспечения, которая заключается в постоянном слиянии рабочих копий в общую основную ветвь разработки (до нескольких раз в день) и выполнении частых автоматизированных сборок проекта для скорейшего выявления потенциальных дефектов и решения интеграционных проблем.
  3. SAST – средство статического анализа исходного кода. Основной инструмент для поиска уязвимостей.

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

  1. Нарушение синтаксиса языка. Чаще всего такие уязвимости вызывают нарушение работы приложения.
  2. Использование уязвимых функций или библиотек. В последнее время достаточно часто появлялась информация о внедрении вредоносного кода в Open Source, библиотеки или иные расширения. Так как многие коммерческие продукты используют сторонние библиотеки без дополнительной проверки, уязвимость библиотеки становится уязвимостью приложения.
  3. Хранение отладочных данных в исходном коде. Часто случаются ситуации, когда в исходном коде приложения записаны логины и пароли, используемые для отладки или тестирования. Получив доступ к исходному коду, злоумышленник может получить доступ и к приложению.
  4. Ошибки конфигурации приложения. Чаще всего сводятся к некорректной настройке используемых протоколов, а также внешних модулей и иных систем, включая базы данных. Такие ошибки позволяют получить несанкционированный доступ к информации.
  5. Обработка данных, полученных без предварительной проверки. Чаще всего источником таких данных является пользователь, который может ввести различные сомнительные сведения в приложение. Отсутствие проверки позволяет загрузить даже вредоносное программное обеспечение.
  6. Неиспользуемые участки кода, которые могут содержать логические бомбы или бэкдоры. В рамках сложных атак неиспользуемые участки кода могут быть незаметно изменены злоумышленником и использованы для манипуляции приложением.

Как создать безопасное ПО?

Чтобы не допустить присутствие уязвимостей в исходном коде, во время разработки приложения нужно соблюдать несколько условий и придерживаться следующих этапов:

  1. Разработка. На данном этапе создается новый функционал, проверяется корректность его работы и сохраняется в основной проект (Сommit) в GIT. Хорошим тоном считается регулярное создание резервных копий репозитория, что позволяет снизить риск утраты важного актива.
  2. Сборка. После накопления необходимого количества изменений по решению руководителя проекта в CI осуществляется сборка нового релиза проекта.
  3. Контроль. На данном этапе собранный релиз отправляется на функциональное тестирование и проверку безопасности. Все испытания должны обязательно выполняться в тестовой среде и с использованием тестовых данных. По результатам испытаний формируется заключение о возможности промышленной эксплуатации новой версии программы.
  4. Промышленная эксплуатация. Если проект успешно прошел все проверки, тогда он передается в промышленную эксплуатацию, т.е. выпускается новая версия программы. В свою очередь, сборка и внедрение новой версии программы обеспечивается системами CI/CD (Сontinuous Integration/Either Continuous Delivery or Continuous Deployment). Наиболее распространенные системы данного класса обладают всем необходимым функционалом для обеспечения хранения исходного кода, сборки новых версий, запуска задач тестирования и внедрения новых версий программы.

Роль SAST в создании безопасного приложения

Существует два основных варианта интеграции статического анализа кода (SAST) в процесс разработки:

  1. Наиболее правильным является выполнение статического анализа сразу после сборки релиза приложения. В данном случае CI передает собранный релиз на функциональное тестирование и на проверку безопасности. Если в приложении не выявлены функциональные нарушения или уязвимости, CI осуществляет выпуск приложения в промышленную эксплуатацию.
  2. Если процесс непрерывной разработки уже выстроен и функционирует исправно, то есть смысл в реализации параллельной проверки исходного кода. При таком подходе сканер исходного кода осуществляет регулярную проверку репозитория приложения (как правило, ветки Мaster) на наличие уязвимостей. Чаще всего сканирование осуществляется по рабочим дням в часы наименьшей нагрузки, как правило ночью. Отчет о результатах такого исследования направляется ответственным сотрудникам, которые могут принять решение о необходимости оперативного устранения уязвимости.

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

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

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

  • невозможно провести сопоставление выполненной проверки с конкретными релизами программы в GIT;
  • при большом количестве разработчиков нет возможности осуществить оперативный контроль, чтобы отследить, проверялся ли исходный код и каков был результат.

Тестирование при разработке безопасного ПО

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

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

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

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

СОИБ. Анализ. Разработка безопасного ПО

В сегодняшней заметке хотелось бы
поговорить про свежий ГОСТ Р 56939-2016 ЗАЩИТА ИНФОРМАЦИИ. РАЗРАБОТКА
БЕЗОПАСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ. ОБЩИЕ ТРЕБОВАНИЯ. Разработан ЗАО НПО
Эшелон, недавно отличившимся в пропущенных уязвимостях SN и DL. Введен в действие с 1
июня 2016 г.

Стандарт современный, учитывающий
актуальные практики, но высокоуровневый. Всё-таки это общие требования, которые
потом хорошо бы детализировать. Предназначен для разработчиков ПО и организаций,
проводящих оценку соответствия процесса разработки ПО (аудиторов).  В соответствии с лучшими практиками (как в
австралийском ISM)
требуемые меры вводятся тремя формами: должен (must), следует(should) и может(may). Предусмотрены компенсирующие меры
для неприменимых.

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

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

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

·        

Руководство по разработке безопасного
программного обеспечения (РБПО)

o  

Описание средств разработки ПО

o  

Описание средств управления конфигурацией

o  

Порядок оформления исходного кода

o  

Порядок маркировки версий ПО

o  

Порядок отслеживания уязвимостей

o  

Порядок систематического поиска уязвимостей

·        

Отчеты (о разовых мероприятиях)

o  

Статистического анализа кода

o  

Экспертиза исходного кода

o  

Функционального тестирования

o  

Тестирования на проникновение

o  

Динамического анализа кода

·        

Свидетельства об обучении сотрудников

Популярные сообщения из этого блога

Модель угроз безопасности клиента финансовой организации

Изображение

  Уже более 2 месяцев как вступил в силу методический документ ФСТЭК по моделированию угроз, а ни одного публичного примера модели угроз информационной безопасности сообществом не было опубликовано. Как мы обсуждали на межблогерском вебинаре по моделированию угроз ИБ , такой пример мог бы сильно помочь ответственным лицам, обязанным руководствоваться данной методикой. Пример модели угроз обещал сделать Алексей Лукацкий, но пока у него получилась серия публикаций про проблемы моделирования и примера ещё нет. В УЦСБ в рамках услуг по моделированию угроз, коллеги уже провели необходимую аналитику и подготовили внутренние средства автоматизации для разработки МУ, что уже говорит о возможности моделирования угроз по новой Методике.  К последнему межблогерскому вебинару по безопасности клиентов финансовых организаций я решил проверить насколько адекватной получится модель угроз для типового сегмента клиента ФО (а для данной статьи ещё и обновил графическое оформление). Давайте посмот

КИИ. ОКВЭД vs 187-ФЗ

Все ещё одним из наиболее часто задаваемых вопросов про КИИ является: попадаем ли мы в сферы 187-ФЗ?   Например, если мы школа или учреждение соц. защиты. Чтобы ответить на этот вопрос в первую очередь рекомендуется посмотреть на коды ОКВЭД вашей организации и сравнить с кодами ОКВЭД в которые попадают сферы и отрасли из 187-ФЗ. Если по каким -то причинам вам это было сложно сделать, то специально в честь наступающего праздника я сделал это за Вас. Пользуйтесь :     Также табличка может быть полезна регуляторам чтобы оценить объем организаций подпадающих под законодательство 187-ФЗ.

КИИ. Категорирование объектов, часть 3

Изображение

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

Понравилась статья? Поделить с друзьями:
  • Смарт сенсор держатель для телефона инструкция по применению
  • Инструкция использования автоклава в домашних условиях
  • Глюконат кальция инструкция по применению в таблетках собаке
  • Abbyy finereader 12 руководство пользователя на русском
  • Карьер вектор 1350 инструкция по эксплуатации