Место преступления: Интернет (Часть 1. Опасные ссылки)

Место преступления: Интернет (Часть 1. Опасные ссылки)

Сегодня хакеры незаметно взламывают сайты зарубежных банков. Завтра они неизбежно доберутся и до наших электронных кошельков. Мы начинаем серию статей CSI рассказом о том, как наши немецкие коллеги вычисляют следы таких атак.

Сегодня хакеры незаметно взламывают сайты зарубежных банков. Завтра они неизбежно доберутся и до наших электронных кошельков. Мы начинаем серию статей CSI рассказом о том, как наши немецкие коллеги вычисляют следы таких атак.

(1) Жертва - веб-сайт (1) Жертва — веб-сайт (2) Другие «жертвы» (2) Другие «жертвы» (3) Первый след (3) Первый след (4) Второй след (4) Второй след

Новый сериал CHIP

В американском криминальном сериале CSI (телеканал «НТН») следователи раскрывают преступления с помощью научных методов. CHIP использовал CSI в качестве прообраза для собственного «сериала», который рассказывает, как профессионалы борются с растущей компьютерной преступностью.

Жертва

Господин М. стал жертвой хакерской атаки. Однако он не может это доказать. Нет никаких следов преступления: протокол банковского сервера содержит только IP-адрес господина М., а его компьютер свободен от вирусов, программ-шпионов и «троянов». Но причиненный вред очевиден: счет на сумму более $2000 за электронные устройства, купленные в одном интернет-магазине, указывает на то, что преступление было совершено.

«PIN моего онлайнового счета знаю только я, а коды TAN (TransActions Number — в онлайн-банкинге секретный код, вместе с PIN служит для идентификации клиента; для каждой трансакции используется новый TAN) хранятся надежно, — говорит господин М. и заверяет, — на фишинговые письма я тоже никогда не отвечаю. Я не настолько наивен, чтобы поверить, что мой банк станет просить меня прислать ему по электронной почте мой PIN и двадцать TAN-кодов».

Между тем ловушки вроде этой хорошо знакомы следователям, которые занимаются делами, связанными с электронным мошенничеством. Многие веб-сайты имеют опасные дыры, позволяющие изобретательным хакерам использовать кросс-сайт-скриптинг. Риску подобных атак подвержены даже известные компании. Каждый их посетитель теоретически может стать жертвой хакеров.

В надежде вернуть деньги господин М. обращается к нам и просит разобраться в его деле. Что ж, мы можем попробовать это сделать, но лишь при условии, если с момента происшествия он не прикасался к своему ПК.

Специальная команда CHIP тщательно осматривает место преступления, то есть компьютер.

Первым делом приходится согласиться с заявлением М.: в его компьютере нет вредоносных программ. Поэтому мы можем исключить версию о манипуляции с помощью «гроянов» и кейлоггеров. Дело становится все более загадочным.

Кто же смог получить доступ к счету господина М.? И, прежде всего, как?

Поиск следов на месте преступления

Первый след мы находим в электронной почте господина М. Это сообщение, которое обещает крупный выигрыш: «Для участия в нашей лотерее щелкните здесь». В отличие от фишинговых писем, ссылка действительно указывает на банковский сервер. Однако след еще горяч: открывшаяся веб-страница вроде бы принадлежит домену кредитного института, но в действительности содержание этой страницы не видел никто, кроме господина М. Может быть, какой-то хакер внедрил это содержание в канал связи с помощью атаки man-in-the-middle (вид хакерской атаки, при которой злоумышленник перехватывает канал связи между двумя системами и получает доступ ко всей передаваемой информации)? Но это невозможно: сайт использует SSL-зашифрованный протокол HTTPS, который надежно защищает от атак такого рода.

В том же самом сообщении наталкиваемся еще на один след: URL указывает на поисковую страницу банка. Там, где должно быть искомое понятие, находится неестественно длинная последовательность символов. Анализ показывает, что это hex-код, оказавшийся после расшифровки Java-скриптом. И он не имеет отношения к банковскому серверу. Наше подозрение таково: господин М. стал жертвой кросс-сайт-скриптинга (Cross-Site Scripting, или XSS).

Тайна Java -скриптов

Чтобы понять, как была произведена атака, мы анализируем ссылку в нашей лаборатории. Открываем ее так же, как это сделал господин М. На первый взгляд ничего странного нет. Страница приглашает принять участие в лотерее. Однако взгляд на исходный код открывает нечто большее. Здесь мы вновь находим Java-скрипт, уже знакомый нам по расшифрованной ссылке. Он стоит на том месте, где обычно находится содержание строки поиска: классический прием кросс-сайт-скриптинга. Нам сразу становится ясно, что разработчики сайта упустили из вида необходимость фильтровать данные, вводимые пользователем. Поэтому хакер смог вставить в формуляр свой тег, и ему достаточно было щелкнуть по кнопке «Найти», чтобы внедрить скрипт в сайт. На странице с результатами поиска вместо «Вы искали: [понятие] Результаты:» появилась надпись «Вы искали Результаты». Java-скрипт был автоматически вставлен вместо искомого понятия, и браузер немедленно выполнил его. После этого хакеру оставалось скопировать ссылку страницы с результатами поиска из адресной строки в сообщение, адресованное М. Чтобы проверить это, мы вводим в строку поиска безобидный текст «’;-«<XSS>=&{()}>> (трюк, который мы подсмотрели у хакеров). И символы «<XSS», появившиеся в исходном коде банковского сайта, подтверждают его уязвимость для кросс-сайт-скриптинга.

На что же повлиял хакерский Java-скрипт? Чтобы выяснить это, открываем файл и внимательно анализируем его. Результат: Java-скрипт написан так, чтобы контролировать операции господина М. на банковском сайте. При первой же попытке перевести деньги хакер заблокировал посылку кода TAN и запросил у господина М. новый код. После этого, имея номер счета, PIN и TAN, хакер мог спокойно совершать покупки. Благодаря тому, что господин М. в подходящий для злоумышленника момент воспользовался своим счетом, тот смог узнать необходимые банковские данные.

Как защитить веб-сайт

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

Здесь можно дать только один совет: не щелкайте по странным ссылкам — даже в тех случаях, когда речь идет о HTTPS-сайтах. В конечном счете безопасность навигации в Интернете зависит только от вебмастера.

Именно он должен защитить поля ввода, которые есть на сайте, от возможных манипуляций. В идеальном случае для этого необходимо запретить ввод любых символов, кроме букв и цифр. Специальные символы, например угловые скобки < >, браузер может принять за фрагмент программного кода — и выполнить опасный Java-скрипт.

Темная сторона браузеров

Однако знакомство с хакерским арсеналом показывает, что просто отфильтровать Java-коды недостаточно. Дело в том, что для выполнения Java-скриптов не обязательно требуется HTML-команда «<script>». Скрипт может быть выполнен другим путем, например с помощью тега «<img>», который обычно используется для вставки в веб-сайт графических объектов.

Команда «<IMG SRC=jAVascriPt: alert(String.fromCharCode(88,83,83))» выполняется и в Opera 9.02, и в Internet Explorer 6. Она позволяет обойти сразу несколько фильтров, потому что в ней нет специальных символов, а есть лишь последовательность прописных и строчных букв. Кроме того, эта команда не имеет закрывающей угловой скобки. Причина того, что она выполняется браузерами, заключается в их толерантности к ошибкам.

Многие сайты содержат неправильные HTML-теги, требующие коррекции ошибок, поэтому разработчики браузеров были вынуждены немного смягчить свои правила. Но преимущество для пользователя превратилось в фактор риска.

Игры с безопасностью

Действительно, многие сайты подвержены риску атак XSS. Одни веб-мастера не имеют ни малейшего представления о возможных «дырах», другие намеренно игнорируют слабые места. Тот, кто вовремя не ликвидирует такие «лазейки», ставит под угрозу безопасность не только своего сайта, но и его посетителей. Когда на головном международном сайте нашего журнала www.chip.de была обнаружена возможность XSS-атаки, программисты немедленно залатали «дыру». Благодаря их последующей проверке и рекомендациям закрыли «лазейки» в своей защите даже такие именитые компании, как Apple и Spiegel Online.

Этим опасности в Интернете не исчерпываются: хакеры постоянно придумывают новые способы нападения. Подробнее об этом — в следующей серии «CSI: Интернет».

Рекомендуем