1 / 22

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

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

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. СОДЕРЖАНИЕ • Кому необходимы безопасные приложения? • Для чего нужна безопасность приложений? • Подход разработчиков к безопасности. • Как проверяется безопасность приложений? • Как безопасность необходимо проверять? • Наш подход • Почему стоит выбрать нас?

  3. Организации и собственное ПО Заказ разработки приложений “с нуля” Автоматизация работы организации Доработка существующих на рынке решений до требований конечного заказчика В большинстве организации существует уникальное ПО, не встречающееся нигде больше Любая организация обладает собственной отличительной спецификой работы

  4. Безопасность при разработке приложений • Безопасность не всегда входит в функциональные требования Функциональные требования Не функциональные требования “Система должна делать” “Система должна быть” • Менталитет разработчика – главное алгоритм выполнения, обработка исключений откладывается на последний момент • Сложность и трудоемкость тестов на безопасность – качественный тест безопасности сопоставим с самой разработкой • Повторное использование кода – неправильная адаптация, небезопасность исходного кода Безопасности не всегда уделяется должное внимание при разработке ПО

  5. Тестирование на проникновение (pentest) Тестирование на проникновение (pentest) Рабочее окружение Приложение При тестировании приложение вместе с окружением рассматривается как черный ящик

  6. Плюсы и минусы Pentest (“черный ящик”) • Инструментальное тестирование pentest: • Находит ошибки настройки стандартных приложений и окружений (неправильная конфигурация) • Производит аудит безопасности на уже известные существующие ошибки (не обновленное ПО) • Мало подходит для нестандартного ПО, каким и является разработанное/доработанное ПО • Тестирование “вручную”: • Может анализировать нестандартное ПО • Трудозатратно по времени • Производится без анализа исходного кода • Не может обеспечить глубокий и полный анализ работы приложения на наличие уязвимостей • Находит только небольшое количество существующих уязвимостей

  7. Тестирование безопасности кода (“белый ящик”) При анализе кода возможно посмотреть приложение “изнутри”: Приложение Уязвимости возможно обнаружить путем прохождения сценариев К-во сценариев проверенных методом PenTest К-во контролируемых сценариев при анализе кода

  8. Анализ исходного кода высокого уровня • Большой набор средств: собственных и сторонних • Высокое качество работы – т.к. сами знаем средства “изнутри” • Автоматизированные средства требуют тонкой настройки – работы производятся с учетом уникальных особенностей каждого заказчика Если есть исходный код языка высокого уровня

  9. А если нет исходного кода? • Старые приложения, которые уже никто не поддерживает • Приложение разработанное для вас сторонними разработчиками Зачастую, исходного кода просто нет, например:

  10. Анализ исполняемого кода Обфусцированная программа на ЯНУ • Интерактивный дизассемблер Ida Pro и декомпилятор Hex Rays • Интерактивный дизасемблер Ida Pro, собственный декомпилятор SmartDec • Низкоуровневые анализаторы и деобфускаторы, собственный декомпилятор SmartDec Деобфускация Необфусцированная программа на ЯНУ • Декомпиляция • автоматическая • полуавтоматическая • ручная

  11. Используемые инструменты Декомпиляция Анализ кода .NET FxCop Gendarme StyleCop C Antic BLAST Clang Lint Splint C++ Clang Static Analyzer cppcheck cpplint Java FindBugs Hammurapi PMD Squale Python Pychecker Pyflakes Pylint Собственные разработки Собственные консолидаторы • Интерактивный дизассемблер Ida Pro и декомпиляторHex Rays • Интерактивный дизасемблерIda Pro, собственный декомпиляторSmartDec • Низкоуровневые анализаторы и деобфускаторы, собственный декомпиляторSmartDec Все инструменты собраны в единый комплекс, позволяющий решать поставленную задачу с высокими показателями качества и производительности

  12. Наше решение Обфусцированная программа на ЯНУ Программа на языке высокого уровня Деобфускация • Аудит ИБ кода • автоматический • полуавтоматический • ручной Необфусцированная программа на ЯНУ • Декомпиляция • автоматическая • полуавтоматическая • ручная Консолидированный отчет

  13. Мы предлагаем • Вам не нужно задумываться для какой платформы написано приложение • Поддерживается ли оно разработчиками • Существует ли исходный код • Обсфурцированно ли приложение Приложения Windows, Linux Приложения для мобильных устройств Веб-приложения С наличием исходного кода Только исполняемый код Аудит безопасности приложений

  14. Результат аудита безопасности кода • Глубокий качественный анализ безопасности приложения, включая: • Оценку ИБ кода по совокупности критериев • Список всех выявленных уязвимостей с обоснованием рисков использования • Рекомендации по очередности устранения выявленных уязвимостей • Описанием критичности и трудоемкости устранения выявленных уязвимостей • Дополнительная информация по запросу Заказчика

  15. Почему мы? • Тесты на проникновение • Инструментальные • Ручные • Социальная инженерия • Аудит безопасности кода приложений • Приложения с наличием исходного кода • Приложения без исходного кода • Выполненые проекты в отраслях: банки, гос. компании, телеком операторы, производственный сектор. • Softline – это надежность: • Крупная международная компания (65 городов 21 страны мира, 35 городов в России, филиалы в СНГ) • Более 13 лет успешного развития • Высокая компетентность подтвержденная независимыми исследованиями • Полный спект дополнительных услуг Softline предлагает единый вход для решения задач по аудиту безопасности:

  16. Вопросы? Денис Гундорин Руководитель направления инфраструктурных решений информационной безопасности Т +7 (495) 232 00 23 доб. 1469 М +7 (926) 475 21 15 denis.gundorin@softline.ru

  17. Дополнительные сервисы Восстановление алгоритмов из унаследованных приложений Анализ работы унаследованных систем Восстановление интерфейсов унаследованных систем Восстановление компилируемого кода для унаследованных приложений

  18. Информационная безопасность и современный бизнес По данным Британского офиса по кибер преступлениям за 2010 год мировые корпорации понесли ущерб в размере $1 триллиона в результате наличия уязвимостей в программном обеспечении. Ущерб от атак на системы мировых гигантов по данным на 2000 год за одну минуту простоя оценивается в $180 000 для amazon.com, в $225 000 для аукциона ebay, в $90 000 для интернет-магазинов. Аудит информационной безопасности системы должен быть систематический и целостный: от бизнес-процессов, которые лежат в ее основе, до непосредственного анализа самого кода.

  19. Виды уязвимостей • Ошибки работы с памятью могут стать причиной: • Аварийного завершения программы • Возможности передачи управления вредоносному коду • Ошибки проверки ввода могут стать причиной: • Вредоносного искажения данных • Race condition могут стать причиной: • Обхода ограничений прав доступа • Захват чужих прав доступа • другие уязвимости…

  20. Пример уязвимости переполнения буфера Здесь может находится адрес перехода

More Related