InfoWatch Attack Killer - Современные атаки на веб: ошибки защитников или успех нападающих
←
→
Транскрипция содержимого страницы
Если ваш браузер не отображает страницу правильно, пожалуйста, читайте содержимое страницы ниже
InfoWatch Attack Killer Современные атаки на веб: ошибки защитников или успех нападающих Москва, 2016 Алексей Афанасьев
ВЗГЛЯД НА ВЕБ-ПРИЛОЖЕНИЯ Бизнес Безопасность видит видит возможности угрозы $10 млрд $4 млрд объем российского ущерб российских рынка электронной компаний коммерции от хакерских атак Бизнес не Безопасность несет интересуют ответственность за уязвимости и атаки инциденты East-West Digital News, 2015 Symantec, 2015
Атаки на ресурсы Чем опасны взломы Кража внутренних баз данных: Подмена содержания страниц: учетные записи пользователей, пароли, размещение ложной или номера карт и т.д. противозаконной информации Нарушение Заражение страниц работоспособности сайта: вредоносным кодом: удаление или искажение файлов, затем заражение посетителей ресурса баз данных и т.п. через уязвимости браузера По данным компаний Qrator и OnSec
После атаки Как монетизируют взломанные сайты Кража и эксплуатация пользовательской базы продажа, рассылка спама Установка зловредного кода и заражение посетителей ресурса вирусом BlackSEO Шантаж владельцев ресурса под разными предлогами
Как всё работает Современный веб – приложение приложений Browser Client Banking Trading Weather Email Blog Stack Ajax Flash/RIA HTML/CSS JavaScript HTTP(S) Widget DOM Structures Protocols Internet XML JSON-RPC Internet JSON REST XML-RPC Application Infrastructure SOAP Web Services Server-Side Services Application Server SaaS Open APIs Database Authentication Server
Причины успешных взломов 5 самых частых причин взлома сайтов 1 Старое ПО и незащищенные тестовые стенды на периметре проекта, о которых все забыли Заражение сотрудников компании, имеющих нужные доступы (пароли к 2 FTP, SSH, VPN и т.д.) Случайно опубликованные в открытом доступе учетные записи (форумы 3 разработчиков, репозитории кода на GitHub и т.д.) Глупые ошибки администрирования 4 (сделал “как на хабре”) Слабая парольная политика 5 По данным компании OnSec
Как все работает Как работает типовой сайт Админ сайта Управление контентом через админзону CMS CMS на хостинге страницы сайта, графика, документы Шаблоны дизайна База данных Запросы и данные с контентом из форм Посетитель сайта
Как все работает Взлома сайта через веб и не только… ВЗЛОМ САЙТА Через веб Не через веб Подрядчики «Закладки» Эксплуатация Перехват доступов Брутфорс уязвимостей Использование Кража доступов небезопасных В CMS Брутфорс плагинов/шаблонов FTP/SSH/панели В плагинах Взлом через Утечка доступов В доработках соседей по хостингу Социальная Компрометация инженерия сервера, VPS, облака Рассмотрим вариант взлома сайта через эксплуатацию уязвимости в коде
Атаки на ресурсы Статистика 2014 и 2015 гг Два года на долю SQL-инъекций приходится больше всего вредоносных запросов 2014 2015 35% 37,75% SQL и NoSQL-инъекции SQL-инъекции 28% 28,73% XSS XSS 18,4% 21,85% Другие серверные уязвимости Другие серверные уязвимости 18,6% RCE (удаленное исполнение кода) 12,07% Атаки перебора (брутфорс) SQL-инъекция является максимальной 5,8% Прочие угрозой класса А1 по OWASP При успешной SQL-инъекции злоумышленник получает возможность доступа к БД По данным OnSec
Атаки на ресурсы Внедрение произвольного кода в SQL-запрос SQL-инъекция - что это? подделка запроса к базе данных сайта В чем опасность? • атакующий может изменить логику выполнения SQL запроса, и получить доступ к "закрытым данным" • часто эксплуатируется не только для взлома сайта, но и для хищения конфиденциальных данных • такой взлом сайта может долго оставаться незамеченным для владельца и администратора сайта
Атаки на ресурсы Эксплуатация SQL-инъекций: логика работы 1 Атакующий Подготовкаизменяет к атаке запрос, нарушая логику его выполнения 2 Вызывает ошибку синтаксиса SQL запроса 3 Заражение Внедряет ключевой свой запрос, эксплуатируя SQL инъекцию машины 4 Получает учетные данные доступа к сайту из базы данных Эксплуатация SQL инъекций может позволить атакующему выполнить произвольный запрос к базе данных и в результате 5 • прочитать содержимое любых таблиц БД сайта, • удалить, изменить или добавить данные, • прочитать и/или записать локальные файлы, • выполнить произвольные команды на атакуемом сервере и т.п.
Атаки на веб-ресурсы SQL-инъекций: как это работает "SELECT * FROM Account Summary accounts WHERE Account: Acct:5424-6066-2134-4334 acct=‘’ SKU: OR 1=1-- Administration Legacy Systems Communicatio Bus. Functions Application Layer Human Resrcs E-Commerce Transactions Web Services Acct:4128-7574-3921-0192 Knowledge Directories Databases HTTP Accounts ’" Finance DB Table Mgmt SQL Billing HTTP Acct:5424-9383-2039-4029 n response request query Acct:4128-0004-1234-0293 APPLICATION 1. Приложение предоставляет ATTACK Code Custom форму ввода атакующему 2. Атакующий вводит данные атаки в форму ввода App Server Web Server 3. Приложение передает данные атаки в БД как SQL запрос Network Layer Hardened OS 4. БД выполняет запрос с Firewall данными атаки и передает Firewall результат в приложение 5. Приложение возвращает результат запроса атакующему
Атаки на ресурсы SQL-инъекция: пример уязвимой формы Вводим ID пользователя, получаем имя и фамилию. Форма ввода данных Результат работы Функционально все работает. Что здесь не так?
Атаки на ресурсы SQL-инъекция: пример уязвимой формы Что не так? Вводим вместо номера строку: 1' or 1 union select password, first_name from users where '1 Форма ввода данных Результат работы
Атаки на ресурсы SQL-инъекция: пример уязвимой формы Исходный код SQL-инъекция WHERE user_id = ‘ $id’ ” возможна из-за некорректной обработки входных данных, используемых в SQL-запросах Код функциональный, но не безопасный?
Атаки на ресурсы Защита от SQL-инъекций SQL-инъекция возможна из-за некорректной обработки входных данных, используемых в SQL-запросах Фильтрация параметров, работающих с базой данных Проверка валидности числовых параметров. В PHP можно использовать функцию is_numeric(n); для проверки параметра Проверка валидности строковых параметров Экранизация символов. В PHP можно использовать функции addslashes($str); и mysql_real_escape_string($str) Для защиты необходима фильтрация параметров, работающих с базой данных Такая уязвимость может быть результатом ошибок программирования, недостатков, допущенных при проектировании сайта…
Вариант решения Система контроля качества кода 1 Выполняет анализ исходного кода веб-приложения Анализ на основе статических технологий (SAST) 2 Анализ происходит с использованием регулярно База шаблонов пополняемой базы шаблонов уязвимостей 3 Добавление в базу закладок шаблоны, Добавление шаблонов специфичные для бизнеса организации 4 После сканирования кода клиент получает отчет с Отчетность рекомендациями по исправлению ошибок Важно: непрерывность контроля постоянно меняющихся объектов защиты
Вариант решения Сканеры Пассивный сканер Смотрит запросы и ответы приложения. На основании этого может сделать тикет о наличии уязвимости Активный сканер Собирает сетевой периметр приложения (хосты, домены, порты — и связи между ними). Сканирует этот периметр на предмет уязвимостей и создаем тикеты Речекер атак Извлекает из атак вредоносные эксплойты и проверяет их активным способом, чтобы дать ответ на вопрос "Действительно ли атака направлена на существующую уязвимость“
Защита есть … и почему не работает Что если… приложение уже написано и не вами? приложение написано давно? Уязвимости в сторонних продуктах могут Пока исправление (“заплатка”) не исправляться очень долго, подвергая установлена, злоумышленники могут риску всю инфраструктуру эксплуатировать уязвимость ЧТО ЕСЛИ ПРИЛОЖЕНИЕ “НЕЛЬЗЯ ТРОГАТЬ ВООБЩЕ”?
Выбор средства защиты Современные FW: эволюция вида Эволюция FW – Впервые термин WAF – необходимость не маркетинг, Next Generation Firewall использования а реальная (NGFW) введен Gartner специальных необходимость в защите в исследовании технологий от современных сетевых Defining the Next-Generation для защиты веб- угроз Firewall* приложений (L7) *https://www.gartner.com/doc/1204914
Вариант решения WAF HTTP-запрос клиент хакер Вектор атаки Сервер приложения Использование результатов сканирования уязвимостей • WAF использует данные, полученные от инструментов SAST, DAST, для получения эксплойта по обнаруженной уязвимости и включения дополнительного контроля и защиты от обнаруженной угрозы
Выбор средства защиты Must have: виртуальный патчинг Принцип работы 1 WAF использует данные, полученные от инструментов SAST, DAST… Подготовка к атаке Тут же генерирует эксплойт, то есть вызов с конкретными значениями для 2 эксплуатации обнаруженной уязвимости (а не просто отчёт о строке уязвимого кода) 3 Найденный эксплойт передается в WAF для автоматического создания виртуального патча, что позволяет «закрыть брешь» до исправления кода Функционал • Минимально - ручной импорт результатов сканирования • Автоматическое реагирование на критические уязвимости, возможность повторного сканирования, оценка “закрытия” уязвимости и применения виртуального патча
Атаки на веб-ресурсы От чего еще нужно защищаться: OWASP TOP-10 Цель проекта OWASP — увеличение осведомленност и о безопасности приложений при помощи определения наиболее критичных рисков, угрожающих организациям
Что мы ожидаем от системы защиты? Синергия различных технологий передача информации об атакующих и уязвимостях между применяемыми различными решениями Непрерывная защита регулярно изменяющихся веб- приложений Исключение человеческого фактора благодаря автоматизации работы всех систем защиты Единый веб-интерфейс управления и получения отчетности
Спасибо за внимание! Ваши вопросы? Алексей Aleksey.Afanasev@infowatch.com Афанасьев Москва, 2016
Вы также можете почитать