22
Аудит безопасности кода Докладчик: Денис Гундорин Дата: 10 ноября 2011 г. г. Москва

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

Embed Size (px)

DESCRIPTION

Аудит безопасности кода. Докладчик : Денис Гундорин Дата : 10 ноября 2011 г. г . Москва. СОДЕРЖАНИЕ. Кому необходимы безопасные приложения? Для чего нужна безопасность приложений? Подход разработчиков к безопасности. Как проверяется безопасность приложений? - PowerPoint PPT Presentation

Citation preview

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

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

Докладчик: Денис Гундорин

Дата: 10 ноября 2011 г.

г. Москва

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

СОДЕРЖАНИЕ

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

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

Организации и собственное ПО

Любая организация обладает собственной отличительной спецификой работы

Автоматизация работы

организации

Заказ разработки приложений “с нуля”

Доработка существующих на рынке решений до требований

конечного заказчика

В большинстве организации существует уникальное ПО, не встречающееся нигде больше

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

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

“Система должна быть”

Функциональныетребования

Не функциональныетребования

“Система должна делать”

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

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

Менталитет разработчика – главное алгоритм выполнения, обработка исключений откладывается на последний момент

Сложность и трудоемкость тестов на безопасность – качественный тест безопасности сопоставим с самой разработкой

Повторное использование кода – неправильная адаптация, небезопасность исходного кода

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

Тестирование на проникновение (pentest)

Приложение

Рабочее окружение

Тестирование на проникновение (pentest)

При тестировании приложение вместе с окружением рассматривается как черный ящик

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

Плюсы и минусы Pentest (“черный ящик”)

Находит ошибки настройки стандартных приложений

и окружений (неправильная конфигурация) Производит аудит безопасности на уже известные

существующие ошибки (не обновленное ПО) Мало подходит для нестандартного ПО, каким и

является разработанное/доработанное ПО

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

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

существующих уязвимостей

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

Тестирование “вручную”:

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

Тестирование безопасности кода (“белый ящик”)

Приложение

При анализе кода возможно посмотреть приложение “изнутри”:

Уязвимости возможно обнаружить путем прохождения сценариев

К-во сценариев проверенных методом PenTest

К-во контролируемых сценариев при анализе кода

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

Анализ исходного кода высокого уровня

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

• Большой набор средств: собственных и сторонних

• Высокое качество работы – т.к. сами знаем средства “изнутри”

• Автоматизированные средства требуют тонкой настройки – работы производятся с учетом уникальных особенностей каждого заказчика

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

А если нет исходного кода?

Зачастую, исходного кода просто нет, например:

Старые приложения, которые уже никто не поддерживает

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

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

Анализ исполняемого кода Обфусцированная

программа на ЯНУ

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

Необфусцированная программа на ЯНУ

Декомпиляция•автоматическая•полуавтоматическая•ручная

Интерактивный дизассемблер Ida Pro и декомпилятор Hex Rays

Интерактивный дизасемблер Ida Pro, собственный декомпилятор SmartDec

Низкоуровневые анализаторы и деобфускаторы, собственный декомпилятор SmartDec

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

Используемые инструментыДекомпиляция

Интерактивный дизассемблер Ida Pro и декомпилятор Hex Rays

Интерактивный дизасемблер Ida Pro, собственный декомпилятор SmartDec

Низкоуровневые анализаторы и деобфускаторы, собственный декомпилятор SmartDec

Анализ кода

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

качества и производительности

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

Наше решение

Обфусцированная программа на ЯНУ

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

Необфусцированная программа на ЯНУ

Декомпиляция•автоматическая•полуавтоматическая•ручная

Программа на языке высокого уровня

Аудит ИБ кода•автоматический•полуавтоматический•ручной

Консолидированный отчет

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

Мы предлагаем Аудит безопасности приложений

Веб-приложения

Приложения Windows,

Linux

Приложения для

мобильных устройств

С наличием исходного кода

Только исполняемый код

• Вам не нужно задумываться для какой платформы написано приложение

• Поддерживается ли оно разработчиками• Существует ли исходный код• Обсфурцированно ли приложение

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

Результат аудита безопасности кода

Глубокий качественный анализ безопасности приложения, включая:– Оценку ИБ кода по совокупности критериев– Список всех выявленных уязвимостей с

обоснованием рисков использования– Рекомендации по очередности устранения

выявленных уязвимостей– Описанием критичности и трудоемкости

устранения выявленных уязвимостей– Дополнительная информация по запросу

Заказчика

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

Почему мы? Softline предлагает единый вход для решения задач

по аудиту безопасности: Тесты на проникновение

Инструментальные Ручные Социальная инженерия

Аудит безопасности кода приложений Приложения с наличием исходного кода Приложения без исходного кода

Выполненые проекты в отраслях: банки, гос. компании, телеком операторы, производственный сектор.

Softline – это надежность: Крупная международная компания (65 городов 21 страны

мира, 35 городов в России, филиалы в СНГ) Более 13 лет успешного развития Высокая компетентность подтвержденная независимыми

исследованиями Полный спект дополнительных услуг

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

Вопросы?

Денис Гундорин

Руководитель направления инфраструктурных решений информационной безопасности

Т +7 (495) 232 00 23 доб. 1469М +7 (926) 475 21 [email protected]

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

Дополнительные сервисы

Восстановление алгоритмов из унаследованных приложений

Анализ работы унаследованных систем

Восстановление интерфейсов унаследованных систем

Восстановление компилируемого кода для унаследованных приложений

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

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

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

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

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

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

Виды уязвимостей Ошибки работы с памятью могут стать причиной:– Аварийного завершения программы– Возможности передачи управления

вредоносному коду

Ошибки проверки ввода могут стать причиной:– Вредоносного искажения данных

Race condition могут стать причиной: – Обхода ограничений прав доступа

Захват чужих прав доступа

другие уязвимости…

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

Пример уязвимости переполнения буфера

variable name A B

value [null string] 1979

hex value

00 00 00 00 00 00 00 00 07 BB

variable name A B

value 'e' 'x' 'c' 'e' 's' 's' 'i' 'v' 25856

hex 65 78 63 65 73 73 69 76 65 00

Здесь может находится адрес перехода