Компании российского корпоративного сектора и государственные организации разрабатывают с нуля или дорабатывают с учётом специфических требований прикладное и системное программное обеспечение — биллинг, информационные банковские системы, CRM, ERP, ЭДО, СУБД, САПР, АСУ и другие. С этим процессом связаны 4 главные опасности для защищаемой информации предприятия:

  • Ошибки программирования, которые не только препятствуют нормальной работе приложений (зависания, BSOD, потеря данных), но и «приглашают» злоумышленника ими воспользоваться.
  • Расширение функциональных возможностей приложений в ущерб безопасности. Разработчики используют наиболее простые (но не безопасные!) приёмы в погоне за сроками и удобством.
  • Встраивание функций, которые делают возможным обход механизмов защиты. Разработчики ПО оставляют такие функции для облегчения тестирования и отладки приложений, но забывают их отключить в финальной версии.
  • Программные закладки, которые умышленно встраиваются в исходный код приложений или в обновления ПО и используются для получения несанкционированного доступа к информации или других вредоносных действий. В исходный код закладки встраивает либо сам разработчик, либо атаковавший его злоумышленник.

Для чего нужен аудит программного обеспечения

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

  1. Снизить риски прямых финансовых потерь от атак на бизнес-приложения, которые содержат ошибки или закладки.
  2. Повысить защищённость корпоративных информационных систем благодаря контролю разработки и внедрения ПО в промышленную эксплуатацию.
  3. Сберечь репутацию компании. Чем меньше ошибок в исходном коде и при эксплуатации приложений — тем меньше риск сбоев, простоев и негативного опыта пользователей.

Топ 10 уязвимостей

Топ-10 уязвимостей корпоративной ЛВС промышленных организаций согласно исследованию Positive Technologies за 2020 год.

Задачи аудита ПО

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

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

Мониторинг уязвимостей сторонних компонентов ПО

Злоумышленники эксплуатируют для проведения атак общеизвестные уязвимости сторонних сервисов, служб и библиотек, которые используются при разработке ПО. Яркие примеры таких уязвимостей — Heartbleed и Shellshock. Чтобы предотвратить это, необходимо непрерывно собирать и обрабатывать актуальную информацию о выявленных уязвимостях. Мы информируем клиента в режиме онлайн и помогаем предотвращать компьютерные атаки данного типа.

Анализ защищённости системы обновлений

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

Анализ системы журналирования

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

Внедрение практик безопасной разработки ПО (SDL)

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

Что в результате?

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

Реализованные проекты
Аудит программного обеспечения для «Эльдорадо»
Заказчик — ООО «Эльдорадо», один из крупнейших розничных продавцов электроники и бытовой техники в России.Задачей исследователей было проверить текущий уровень защищённости ПО.
Анализ защищённости периметра «Московской биржи»
Московская биржа — крупнейший российский биржевой холдинг. Московская биржа является организатором торгов акциями, облигациями, производными инструментами, валютой, инструментами денежного рынка, драгоценными металлами и зерном.
Анализ исходного кода для Московской биржи
Московская биржа — крупнейший российский биржевой холдинг. Московская биржа является организатором торгов акциями, облигациями, производными инструментами, валютой, инструментами денежного рынка, драгоценными металлами и зерном.
Пентест веб-ресурсов Автоторгбанка
Цель данного исследования — симулировать атаки потенциального нарушителя на веб-ресурсы банка, оценить уровень их защищённости, обнаружить уязвимости, разработать рекомендации по их устранению.
Проверка защищённости клиент-серверной системы продаж
Заказчик обратился к нам с просьбой проверить защищённость клиент-серверной системы продаж. Поскольку сервисы предоставлялись дистанционно, требовалось подтверждение безопасности архитектуры и клиент-серверного взаимодействия. Нам удалось разработать методику фаззинга, которая гарантированно вызывала сбои в работе сервера. А при помощи ряда уязвимостей в клиентском ПО мы смогли менять информацию на терминале, отправлять на сервер изменённые данные и клонировать терминалы.
Расследование утечек трекинговой информации грузоперевозчика
Грузоперевозчик официально предлагает трекинговую информацию за плату. В ситуации, когда эта информация появляется на «левых» сторонних сайтах, не заключивших соглашение на предоставление треков, грузоперевозчик и его официальные представители теряют деньги. Нам была поставлена задача отыскать источник утечек и выявить причастных лиц.