Перейти к содержанию

Безопасность при разработке

При разработке eXpress применялись различные подходы и практики SDL и OWASP Web Security Testing Guide.

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

Реализованные практики SDL и OWASP Web Security Testing Guide:

  • моделирование угроз;
  • безопасное кодирование;
  • тестирование безопасности;
  • статический анализ исходного кода;
  • динамический анализ кода;
  • тестирование на проникновение;
  • экспертиза исходного кода.

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

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

При проведении статического анализа проекты всех сервисов проверяются статическим анализатором Sobelow (для языка программирования elixir и Eslint для Front-end).

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

Разработка ПО обеспечивает проведение динамического анализа кода программы с целью выявления уязвимостей программы. Тесты, выполняемые в рамках динамического анализа кода программы, разрабатываются с учетом:

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

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

  • GitLab CI/CD;
  • разработанные модульные тесты;
  • Excoverals.

Инструментальное тестирование

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

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

Предотвращение появления и устранение уязвимостей программы достигается путем реализации разработчиком программного обеспечения и мер по разработке безопасного ПО в процессах жизненного цикла ПО, установленных ГОСТ Р 56939-2016. eXpress соответствует требованиям данного стандарта. 

На уровне руководства организации утверждено "Руководство по разработке безопасного ПО" и реализованы следующие меры: 

  • меры по разработке безопасного программного обеспечения, реализуемые при выполнении анализа требований к программному обеспечению, а именно определение требований по безопасности, предъявляемые к разрабатываемому ПО;
  • меры по разработке безопасного программного обеспечения, реализуемые при выполнении проектирования архитектуры программы, а именно:

    • моделирование угроз безопасности информации;

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

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

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

    • создание программы на основе уточненного проекта архитектуры программы;

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

    • статический анализ исходного кода программы;

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

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

    • функционального тестирования программы;

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

    • динамического анализа кода программы;

    • фаззинг-тестирования программы.

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

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

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

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

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

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

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

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

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

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

    • защита от несанкционированного доступа к элементам конфигурации;

    • резервное копирование элементов конфигурации;

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

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

    • периодическое обучение сотрудников;

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

Артефакты, подтверждающие реализацию мер, представлены в виде документов с описанием реализации мер.