summary-header

Анализ уязвимостей кода для системы мониторинга строительства

Подход Rubius к работе с системами проверки кода и Open Source решений на примере проектов с Газпромнефть-Терминал.

Экспертиза

Технологии

  • JFrog Xray
  • SonarQube
  • Trivy
  • OWASP ZAP
  • Credential Scanning Tool

Проблема

Крупные корпорации предъявляют жёсткие требования к анализу кода на уязвимости к разработчикам программного обеспечения, потому что подвержены высоким рискам в случае атак или утечки информации. Компании-разработчики должны создавать не только качественное ПО, но и обладать компетенциями по информационной безопасности и передаче кода. Если этот процесс не удаётся правильно выстроить, то заказчики получают продукт, подверженный уязвимостям, с риском взлома или кражи данных. 

Газпромнефть-Терминал (ГПН Терминал) – единый топливно-логистический оператор по хранению и доставке топлива компании «Газпром нефть». Один из заказчиков Rubius с высокими требованиями к работе с информационной безопасностью. 

По заказу ГПН Терминал мы разрабатываем ПО для мониторинга строительства на основе анализа облака точек. Система состоит из BIM-модуля для цифрового моделирования зданий, модуля для финансового планирования и подсистемы для подготовки документации на всех этапах строительства. Подсистема для документации – продукт сторонних разработчиков, который Rubius адаптировал под требования компании и внедрил в ПО для мониторинга строительства.

Передача кода в заказной разработке, как и в случае с ГПН Терминал, происходит параллельно с доработкой, тестированием и эксплуатацией ПО. Из-за чего могут возникать ошибки, сбои и ухудшение производительности системы — всё это может привести к временному снижению эффективности бизнеса клиента. Поэтому внедрение обновлений должно быть чётко спланировано и протестировано, с учётом обратной связи от заказчика. 

Процесс приёмки и проверки ПО в Газпромнефть-Терминал

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

Этапы приёмки кода на безопасность
Этапы приёмки кода в ГПН Терминал

Этапы приёмки кода:

  • Претест. На этом этапе исполнители (разработчики Rubius) проверяют и демонстрируют код на выполнение сценариев использования программы. Далее специалисты компании проводят сборку и тестируют код на базовую работоспособность и уязвимости при помощи JFrog Xray. Эта программа выявляет известные уязвимости, нарушения лицензий, аномалии и потенциальные угрозы. Если здесь нет ошибок, код переходит на след этап проверки.
  • Тестирование. Специалисты Газпронефть-Терминал проводят внутреннее тестирование функционала ПО на реальных пользователях, проверяют конвертацию облаков точек, работу BIM-модуля, а также  выявляют возможные ошибки кода при помощи stack trace*. Stack trace –  последовательности вызовов методов в программе, которые привели к возникновению ошибки. По завершении этапа тестирования проверяют, чтобы в логах не хранились пароли, личная информация пользователей, конфиденциальные данные компании и stack trace.
  • Запуск. После всех проверок ПО передают в работу команде по мониторингу строительства, которая состоит из 20 человек.

Наш подход

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

Все системы Команда Rubius внедряет на уровне continuous integration process: когда разработчик запускает отладку кода, системы проверки вычисляют ошибки и пишут о них в комментариях. Это позволяет разработчику тут же поправить код.

Системы проверки кода на безопасность
Системы проверки кода на безопасность 

Для проектов с ГПН Терминал мы использовали следующие системы:

  • Система SonarQube помогает находить уязвимости в коде. В базе этой программы содержится более 400 известных уязвимостей CVE (Common Vulnerabilities and Exposures) и дефектов, способных спровоцировать уязвимости – CWE (Common Vulnerabilities and Exposures).
  • Программа Trivy проверяет Open Source библиотеки и решения на ошибки и уязвимости. При обнаружении проблем Trivy предлагает установить обновления, в которых уже нет этих проблем. Если обновления ещё не вышли, то наши специалисты добавляют в код дополнительные функции, которые делают эту уязвимость безопасной.

Помимо SonarQube и Trivy в проектах мы используем утилиту Credential Scanning Tool для поиска логинов, паролей, и других конфиденциальных данных, которые могли остаться в коде. Для выявления уязвимостей также применяем OWASP ZAP – система моделирует возможные атаки и тестирует безопасность кода.

Максим Копнов

Максим Копнов

DevOps Rubius

Результаты 

Выстроенная система отладки и проверки кода Rubius помогает быстро и эффективно передавать код заказчику и устанавливать обновления в продукте. Такой подход позволяет 20 сотрудникам ГПН Терминал эффективно и бесперебойно управлять проектами по мониторингу строительства параллельно со сторонней доработкой и расширением функционала ПО. 

Rubius – лицензированный поставщик ПО в области информационной безопасности (2 лицензии ФСТЭК)

Давайте обсудим ваш проект

Мы будем рады ответить на ваши вопросы



Нажимая на кнопку "Оставить заявку", вы даёте согласие на обработку персональных данных и соглашаетесь с политикой конфиденциальности

Позвоните нам

Напишите нам