Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Москва, 2016 Алексей Афанасьев
Современные атаки
на веб: ошибки
защитников или успех
нападающих
InfoWatch Attack Killer
ВЗГЛЯД НА ВЕБ-ПРИЛОЖЕНИЯ
Бизнес видит
возможности
$10 млрд объем российского рынка электронной
коммерции
Бизнес не интересуют
уязвимости и атаки
Безопасность видит угрозы
$4 млрд ущерб российских
компаний от хакерских атак
Безопасность несет ответственность за
инциденты
East-West Digital News, 2015 Symantec, 2015
Чем опасны взломы Атаки на ресурсы
По данным компаний Qrator и OnSec
Кража внутренних баз данных: учетные записи пользователей, пароли, номера карт и т.д.
Подмена содержания страниц: размещение ложной или противозаконной информации
Нарушение работоспособности сайта: удаление или искажение файлов, баз данных и т.п.
Заражение страниц
вредоносным кодом:
затем заражение посетителей ресурса через уязвимости браузера
Как монетизируют взломанные сайты После атаки
Кража и эксплуатация пользовательской базы продажа, рассылка спама
Установка зловредного кода и заражение посетителей ресурса вирусом
BlackSEO
Шантаж владельцев ресурса под разными предлогами
Web Services
Internet Internet
Application Server
Database Authentication Server
Ap
plicatio
n In
frastructu
re
Client Banking Trading Weather Email Blog
Ajax
HTML/CSS
Widget
Flash/RIA
JavaScript
DOM
XML
JSON
JSON-RPC
XML-RPC
SOAP
Services
SaaS
Open APIs
Современный веб – приложение приложений Как всё работает
Browser Stack
Structures Protocols
Server-Side
HTTP(S)
REST
5 самых частых причин взлома сайтов Причины успешных взломов
Старое ПО и незащищенные тестовые стенды на периметре проекта, о которых все забыли
1
Заражение сотрудников компании, имеющих нужные доступы (пароли к FTP, SSH, VPN и т.д.)
2
Случайно опубликованные в открытом доступе учетные записи (форумы разработчиков, репозитории кода на GitHub и т.д.)
3
Глупые ошибки администрирования (сделал “как на хабре”)
4
Слабая парольная политика 5
По данным компании OnSec
Посетитель сайта
страницы сайта, графика, документы
Запросы и данные из форм
CMS на хостинге
Шаблоны дизайна База данных с контентом
Админ сайта
Управление контентом через админзону CMS
Как работает типовой сайт Как все работает
Взлома сайта через веб и не только… Как все работает
ВЗЛОМ САЙТА
Через веб
Брутфорс Эксплуатация уязвимостей
В CMS
В плагинах
В доработках
Не через веб Подрядчики
Перехват доступов
Кража доступов
Брутфорс FTP/SSH/панели
Взлом через соседей по хостингу
Компрометация сервера, VPS, облака
«Закладки»
Использование небезопасных плагинов/шаблонов
Утечка доступов
Социальная инженерия
Рассмотрим вариант взлома сайта через эксплуатацию уязвимости в коде
По данным OnSec
37,75% SQL-инъекции
28,73% XSS
21,85% Другие серверные уязвимости
12,07% Атаки перебора (брутфорс) 5,8% Прочие
35% SQL и NoSQL-инъекции
28% XSS
18,4% Другие серверные уязвимости
18,6% RCE (удаленное исполнение кода)
При успешной SQL-инъекции злоумышленник получает возможность доступа к БД
2014 2015
Два года на долю SQL-инъекций приходится больше всего вредоносных запросов
SQL-инъекция является максимальной угрозой класса А1 по OWASP
Статистика 2014 и 2015 гг Атаки на ресурсы
Внедрение произвольного кода в SQL-запрос Атаки на ресурсы
SQL-инъекция - что это? подделка запроса к базе данных сайта
В чем опасность? • атакующий может изменить логику выполнения SQL
запроса, и получить доступ к "закрытым данным"
• часто эксплуатируется не только для взлома сайта, но и для хищения конфиденциальных данных
• такой взлом сайта может долго оставаться незамеченным для владельца и администратора сайта
Эксплуатация SQL-инъекций: логика работы Атаки на ресурсы
Вызывает ошибку синтаксиса SQL запроса 2
Заражение ключевой машины
Внедряет свой запрос, эксплуатируя SQL инъекцию 3
Получает учетные данные доступа к сайту из базы данных 4
Эксплуатация SQL инъекций может позволить атакующему выполнить произвольный запрос к базе данных и в результате • прочитать содержимое любых таблиц БД сайта, • удалить, изменить или добавить данные, • прочитать и/или записать локальные файлы, • выполнить произвольные команды на атакуемом сервере и т.п.
5
Подготовка к атаке Атакующий изменяет запрос, нарушая логику его выполнения 1
SQL-инъекций: как это работает Атаки на веб-ресурсы
Fire
wal
l
Hardened OS
Web Server
App Server
Fire
wal
l
Dat
abas
es
Lega
cy S
yste
ms
Web
Ser
vice
s
Dir
ecto
ries
Hu
man
Res
rcs
Bill
ing
Custom Code
APPLICATION ATTACK
Net
wo
rk L
ayer
A
pp
licat
ion
Lay
er
Acc
ou
nts
Fin
ance
Ad
min
istr
atio
n
Tran
sact
ion
s C
om
mu
nic
atio
n
Kn
ow
led
ge
Mgm
t E-
Co
mm
erce
Bu
s. F
un
ctio
ns
HTTP
request
SQL
query
DB Table
HTTP
response
"SELECT * FROM
accounts WHERE
acct=‘’ OR 1=1--
’"
1. Приложение предоставляет форму ввода атакующему
2. Атакующий вводит данные атаки в форму ввода
3. Приложение передает данные атаки в БД как SQL запрос
Account Summary
Acct:5424-6066-2134-4334
Acct:4128-7574-3921-0192
Acct:5424-9383-2039-4029
Acct:4128-0004-1234-0293
4. БД выполняет запрос с данными атаки и передает результат в приложение
5. Приложение возвращает результат запроса атакующему
Account:
SKU:
Account:
SKU:
SQL-инъекция: пример уязвимой формы Атаки на ресурсы
Вводим ID пользователя, получаем имя и фамилию. Функционально все работает. Что здесь не так?
Форма ввода данных
Результат работы
SQL-инъекция: пример уязвимой формы Атаки на ресурсы
Что не так? Вводим вместо номера строку: 1' or 1 union select password, first_name from users where '1
Форма ввода данных
Результат работы
SQL-инъекция: пример уязвимой формы Атаки на ресурсы
SQL-инъекция возможна из-за
некорректной обработки входных данных, используемых
в SQL-запросах Код функциональный, но не безопасный?
Исходный код
WHERE user_id = ‘ $id’ ”
Защита от SQL-инъекций Атаки на ресурсы
SQL-инъекция возможна из-за некорректной обработки входных данных, используемых в SQL-запросах
Фильтрация параметров, работающих с базой данных
Проверка валидности числовых параметров. В PHP можно использовать функцию is_numeric(n); для проверки параметра
Проверка валидности строковых параметров
Экранизация символов. В PHP можно использовать функции addslashes($str); и mysql_real_escape_string($str)
Для защиты необходима фильтрация параметров, работающих с базой данных
Такая уязвимость может быть результатом ошибок программирования, недостатков, допущенных при проектировании сайта…
Система контроля качества кода Вариант решения
По данным компаний Qrator и OnSec
Анализ Выполняет анализ исходного кода веб-приложения на основе статических технологий (SAST)
1
База шаблонов Анализ происходит с использованием регулярно пополняемой базы шаблонов уязвимостей
2
Добавление шаблонов Добавление в базу закладок шаблоны, специфичные для бизнеса организации
3
Отчетность После сканирования кода клиент получает отчет с рекомендациями по исправлению ошибок
4
Важно: непрерывность контроля постоянно меняющихся объектов защиты
Сканеры Вариант решения
Пассивный сканер Смотрит запросы и ответы приложения. На основании этого может сделать тикет о наличии уязвимости
Активный сканер Собирает сетевой периметр приложения (хосты, домены, порты — и связи между ними). Сканирует этот периметр на предмет уязвимостей и создаем тикеты
Речекер атак Извлекает из атак вредоносные эксплойты и проверяет их активным способом, чтобы дать ответ на вопрос "Действительно ли атака направлена на существующую
уязвимость“
Что если…
приложение уже написано и не вами? приложение написано давно?
ЧТО ЕСЛИ ПРИЛОЖЕНИЕ “НЕЛЬЗЯ ТРОГАТЬ ВООБЩЕ”?
Уязвимости в сторонних продуктах могут
исправляться очень долго, подвергая
риску всю инфраструктуру
Пока исправление (“заплатка”) не
установлена, злоумышленники могут эксплуатировать уязвимость
… и почему не работает Защита есть
Современные FW: эволюция вида Выбор средства защиты
Эволюция FW –
не маркетинг, а реальная
необходимость в защите от современных сетевых
угроз
Впервые термин
Next Generation Firewall (NGFW) введен Gartner
в исследовании Defining the Next-Generation
Firewall*
WAF – необходимость использования
специальных технологий
для защиты веб-приложений (L7)
*https://www.gartner.com/doc/1204914
WAF Вариант решения
Использование результатов сканирования уязвимостей • WAF использует данные, полученные от инструментов SAST, DAST, для получения
эксплойта по обнаруженной уязвимости и включения дополнительного контроля и защиты от обнаруженной угрозы
клиент
хакер
Сервер приложения
HTTP-запрос
Вектор атаки
Must have: виртуальный патчинг Выбор средства защиты
Принцип работы
Тут же генерирует эксплойт, то есть вызов с конкретными значениями для эксплуатации обнаруженной уязвимости (а не просто отчёт о строке уязвимого кода)
2
Найденный эксплойт передается в WAF для автоматического создания виртуального патча, что позволяет «закрыть брешь» до исправления кода
3
Подготовка к атаке WAF использует данные, полученные от инструментов SAST, DAST… 1
• Минимально - ручной импорт результатов сканирования • Автоматическое реагирование на критические уязвимости, возможность повторного
сканирования, оценка “закрытия” уязвимости и применения виртуального патча
Функционал
От чего еще нужно защищаться: OWASP TOP-10 Атаки на веб-ресурсы
Цель проекта OWASP — увеличение осведомленности о безопасности приложений при помощи определения наиболее критичных рисков, угрожающих организациям
Что мы ожидаем от системы защиты?
Непрерывная защита
регулярно изменяющихся веб-
приложений
Исключение человеческого фактора
благодаря автоматизации работы всех
систем защиты
Единый веб-интерфейс
управления и получения отчетности
Синергия различных технологий
передача информации об атакующих и
уязвимостях между применяемыми
различными решениями