InfoWatch Attack Killer - Современные атаки на веб: ошибки защитников или успех нападающих

Страница создана Святослав Князев
 
ПРОДОЛЖИТЬ ЧТЕНИЕ
InfoWatch Attack Killer - Современные атаки на веб: ошибки защитников или успех нападающих
InfoWatch
               Attack Killer

                Современные атаки
                  на веб: ошибки
               защитников или успех
                   нападающих

Москва, 2016          Алексей Афанасьев
InfoWatch Attack Killer - Современные атаки на веб: ошибки защитников или успех нападающих
ВЗГЛЯД НА ВЕБ-ПРИЛОЖЕНИЯ

     Бизнес                       Безопасность
     видит                             видит
  возможности                          угрозы

   $10 млрд                           $4 млрд
объем российского                 ущерб российских
рынка электронной                     компаний
   коммерции                      от хакерских атак

     Бизнес не                    Безопасность несет
    интересуют                    ответственность за
уязвимости и атаки                    инциденты
   East-West Digital News, 2015             Symantec, 2015
InfoWatch Attack Killer - Современные атаки на веб: ошибки защитников или успех нападающих
Атаки на ресурсы
Чем опасны взломы

Кража внутренних баз данных:            Подмена содержания страниц:
учетные записи пользователей, пароли,   размещение ложной или
номера карт и т.д.                      противозаконной информации

Нарушение                               Заражение страниц
работоспособности сайта:                вредоносным кодом:
удаление или искажение файлов,          затем заражение посетителей ресурса
баз данных и т.п.                       через уязвимости браузера

                                                       По данным компаний Qrator и OnSec
InfoWatch Attack Killer - Современные атаки на веб: ошибки защитников или успех нападающих
После атаки
Как монетизируют взломанные сайты

                                    Кража и эксплуатация
                                    пользовательской базы
                                    продажа, рассылка спама

                                    Установка зловредного кода и
                                    заражение посетителей ресурса
                                    вирусом
                                    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
Вы также можете почитать