Аудит безопасности кода

 

code_analysisПо данным Британского офиса по кибер преступлениям за 2010 год мировые корпорации понесли ущерб в размере $1 триллиона в результате наличия уязвимостей в программном обеспечении.

Ущерб от атак на системы мировых гигантов по данным на 2000 год за одну минуту простоя оценивается в $180 000 для amazon.com, в $225 000 для аукциона ebay, в $90 000 для интернет-магазинов.

Для чего нужен аудит безопасности кода?

Большинство компаний использует программное обеспечение сторонних разработчиков, как некий «черный ящик», не имея в своем распоряжении исходный код. Очевидно, что заглянуть внутрь такого «черного ящика», и, что еще сложнее, – модифицировать его – задача крайне нетревиальная. Тем не менее, потребность в решении таких задач в последнее время стремительно взрастает, потому что «черный ящик» - это неопределенность, которая в ряде случаев недопустима. Например, критичные для компании программы, могут содержать потенциальные угрозы, как в виде ошибок системы, так и в виде различного рода закладок. Или алгоритм, заложенный в основу системы поддержки принятия решения, может давать сбой в конкретной ситуации и требовать адаптации и доработки.

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

Мы поможем «заглянуть внутрь» и, при необходимости, доработать «черный ящик», используя нашу технологию декомпиляции и инструментальные средства, разработанные на основе этой технологии. Технология декомпиляции разрабатывается и успешно апробируется нами на протяжении 5 лет. Мы восстанавливаем код из низкоуровневого представления в код на языке высокого уровня (Си или Си++) в виде, максимально приближенном к тому, который привычен для программиста.

customer_purpose

Что включает в себя аудит безопасности кода?

  • Глубокий анализ программных систем на наличие уязвимостей и недокументированных возможностей, в том числе web-сайтов.
  • Восстановление алгоритмов, лежащих в основе аналитических систем, с применением предварительной деобфускации, если она требуется.
  • Модификация приложений без исходных кодов в соответствии с потребностями заказчика.

Услуги в области аудита кода

check Анализ систем на уровень информационной безопасности по исходным кодам.

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

 

checkГлубокий анализ систем на наличие уязвимостей и недокументированных возможностей.

Множество уязвимостей и недокументированных возможностей могут быть скрыты в исполняемом коде, если он предоставляется заказчику без исходных кодов. Уязвимости появляются в коде из-за неаккуратного использования разработчиками некоторых особенностей языков Си и Си++, которые содержат множество возможностей для потенциальных уязвимостей. Недокументированные возможности в коде могут носить как случайный, так и преднамеренный характер. Например, разработчик внес изменения в код модуля, а внести изменения в документацию забыл: типичный пример расхождения поведения системы и документации. Преднамеренные недокументированные возможности системы могут использоваться разработчиками в целях удаленного управления работой приложения. Все перечисленные выше проблемы мы успешно решаем.

checkВосстановление алгоритмов, лежащих в основе аналитических систем.

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

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

checkМодификация программного обеспечения без исходных кодов в соответствие с потребностями заказчика.

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

checkДеобфускация кода.

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

Что Ваш бизнес получает в итоге?

target_with_several_arrowsРезультаты выполнения проекта по аудиту кода:

  • Глубокий анализ системы без исходных кодов на наличие уязвимостей и недокументированных возможностей с подробным описанием найденных уязвимостей и рекомендациями по их устранению.
  • Восстановленный код на языке высокого уровня (Си или Си++), который отвечает за выполнение наиболее значимых алгоритмов, лежащих в основе программной системы, максимально приближенный к тому, который программист бы написал вручную. Возможно с предварительной деобфускацией кода.
  • Подробный протокол интерфейса обмена данными между системой и модулем, который Заказчик желает модифицировать.
  • Модифицированный код, полученный внесением изменений в декомпилированный код модуля (компонента системы) Заказчика согласно техническому заданию.
  • Анализ сайта компании на наличие уязвимостей и возможности внешнего проникновения, а также рекомендации по их устранению.

smileУ нас нет конкурентов! И это правда.

В настоящее время компаний, предлагающих услуги декомпиляции, на рынке нет.