Введение
Защитить наши компьютеры и информацию от злоумышленников с развитием Интернета становиться всё сложнее. Этим материалом мы начинаем серию статей, посвящённых электронному мошенничеству и компьютерной безопасности.
Только в США ущерб от мошенничества составляет более 50 миллиардов долларов в год. При этом мошенничество, направленное на сферу онлайн-покупок, имеет ежегодный оборот около 5 миллиардов долларов.
Куда же уходят эти миллиарды долларов? И что можно сделать, чтобы остановить этот огромный поток средств в руки мошенников?
На самом деле, за последний десяток лет все финансовые онлайн-структуры, банки, процессинговые центры, платёжные системы и прочие структуры так или иначе сталкивались с мошенничеством. Системы интернет-банкинга и пластиковых карт чаще всего подвергаются атакам типа фишинга, фарминга, "троянского" и шпионского ПО, атакам типа "человек в середине" (man in the middle, MITM) и даже атакам, основанным на социальной инженерии. В наших материалах мы рассмотрим многие из этих и других технологий. Хуже всего то, что атаки становятся всё более мощными и изощрёнными, расширяется список атакуемых структур. Теперь это уже не только крупные финансовые учреждения, как раньше. Сегодня организации любого масштаба могут столкнуться с непрошенными гостями.
В серии статей мы рассмотрим различные виды угроз и попытаемся чётко и ясно изложить их суть для наших читателей. Мы попытаемся копнуть поглубже, а не давать простые рекомендации вроде использования различных сложных паролей и установки антивируса. Мы рассмотрим, как работают хакеры и как от них можно защититься.
В нашем сегодняшнем мире знания, как никогда раньше, являются силой.
Защита личной информации
Путешествуя по Интернету, пользователи оставляют огромное количество следов с личной информацией. Начиная с данных о посещённых страницах и адресах, параметрах поиска, покупках, скачанных файлах, отправленной и принятой почте и заканчивая диалогами в чатах. Сотрудники интернет-провайдеров могут получить множество информации о деятельности пользователя в сети.
Онлайновые покупки? Сайт продавца получает имя и адрес покупателя, а также некоторые другие данные из анкет. Это касается всех сайтов, относящихся к онлайн-покупкам и доставке.
Есть ещё и сотрудники терминалов платёжных систем, проверяющие данные о пластиковой карте. Другая проблема - сотрудники банков, имеющие доступ к параметрам транзакции, администраторы, работающие с банковскими базами данных и получающие доступ к информации о счетах.
Совместив все эти данные, можно получить абсолютно всю информацию о пользователе, подключившемся к сети. Примем во внимание количество людей, имеющих доступ к такой информации, и ещё раз убедимся в существовании проблемы защиты личной информации.
Ограбления банков
Мошенничество с личными данными пользователя - одно из распространённых преступлений. Сначала мы остановимся на краже личных данных с последующим использованием их для доступа к финансам, поскольку этот способ наиболее опасен для обычных пользователей, подключённых к сети. Затем мы обратимся к стратегиям защиты и аппаратному/программному обеспечению, помогающему построить защиту от различных атак.
Многие банки, использующие системы интернет-банкинга, работают с парольной защитой (или PIN-кодом). Это базовая стандартная защита, которая известна ещё со времён появления Интернета. При такой системе пользователю предлагается ввести либо весь пароль (PIN-код), либо некоторые его символы; например, первый, третий и пятый символы шестизначного PIN-кода.
Некоторые банки работают с уникальными паролями, заново генерируемыми для каждой новой сессии. Такой способ более надёжен. Американская организация US Federal Financial Institutions Examination Council (FFIEC) создала рекомендации по защите систем для финансовых институтов. В России тоже существуют определённые стандарты защиты передачи банковской информации, которые ничуть не уступают западным аналогам.
Фишинг
Для начала познакомимся с некоторыми терминами, которыми пользуются хакеры. "Захватить shell/рабочий стол". Этот термин касается возможности хакера контролировать активность компьютера другого пользователя. Достигается это путём запуска на целевом компьютере шпионских программ, перехватывающих данные о его работе, например вводимую информацию. Такая возможность позволяет хакеру узнать учётные данные.
Имея эти данные, хакер может позвонить вам и представиться сотрудником банка. Зная учётные данные и имея под рукой скриншоты вашей личной банковской страницы, он может "уточнить" необходимую для телефонного банкинга информацию.
После такого звонка хакер может позвонить в банк и выполнить перечисление денег с вашего счёта. Таким образом, мы видим типичную атаку, состоящую из захвата рабочего стола и социальной инженерии (телефонный звонок), которая оказалась успешной. Хакер получил доступ к вашему счёту в банке практически без каких-либо изысков.
Однако такому риску подвержены не только банки. Вспомните о сайтах магазинов, которые для удобства позволяют сохранять информацию о вашей пластиковой карте. Хакеру достаточно узнать ваше имя и пароль для входа на подобный сайт, после чего он сможет воспользоваться данными о вашей пластиковой карте. И произвести какие-либо покупки.
Мы логично подошли к столь муссируемому сегодня в прессе типу атак: фишингу (phishing, созвучно слову fishing - рыбалка). В атаках фишинга широко используются методы социальной инженерии. Хакеры рассылают письма тысячам пользователей, представляясь работниками банков, систем eBay, PayPal или другими. Адресатам предлагается под разными предлогами зайти на сайты, внешне идентичные оригинальным. Конечно, эти сайты поддельные. После чего пользователь вводит необходимые учётные данные для какой-либо цели, указанной в письме, например, для разблокирования учётной записи или восстановления пароля. Очень многие пользователи "клюют на крючок" фишинга.
В качестве примера фишинга приведём страницу "Fraud Watch". Учтите, каждая запись говорит о рассылке многих тысяч писем.
От фишинга до фарминга
Эпидемия фишинга постепенно переходит в эпидемю фарминга, которая требует более серьёзной технической подготовки хакеров.
Фармеры перенаправляют пользователей с легитимных коммерческих сайтов на "левые". Опять же, они внешне очень похожи. Пользователи вводят учётные данные на "левом" сайте, которые успешно поступают к хакерам.
При фарминге тоже используются различные методы, но наиболее часто хакеры прибегают к помощи "троянского" ПО - скрытых программ, работающих на компьютере жертвы и позволяющих выполнять разные задачи по выбору хакера. Покажем работу на примере.
Злоумышленник рассылает по электронной почте вирусы, например Banker Trojan, который переписывает файл на компьютере hosts. Напомним, что в этом файле находятся записи, сопоставляющие символьные имена (URL), например Google.com, с IP-адресами (например, 64.55.33.22). Изменив такую связку для сайта банка, ничего не подозревающий пользователь будет направлен на другой сайт, внешне идентичный настоящему. То есть при переходе на вашу страницу интернет-банка действия хакера перенаправят ничего не подозревающего пользователя на совершенно другую страницу.
В случае атаки на сервер доменных имён (DNS) таких пользователей может быть гораздо больше. DNS, пожалуй, можно сравнить с телефонным справочником - выбираете имя, смотрите номер, и звоните. Так и тут: пишете адрес в строке браузера, а служба DNS сообщает его IP-адрес, после чего браузер связывается с указанным сайтом. Атака на DNS может породить хаос в Интернете. Представьте себе, что на дорогах поменяли все указатели, и теперь они направляют машины в ошибочных направлениях. Пока поездка будет выглядеть привычно, вряд ли пользователь забеспокоится. В фарминге работает и фактор памяти: вчера всё было точно так же, как и сегодня.
Атака "человек в середине" (Man in the Middle)
Ещё одна серьёзная проблема - другая атака под названием "человек в середине" (man in the middle, MITM). Она очень коварна и невероятно эффективна. Для атаки хакеру нужно попасть в сеть, притворившись физическим устройством, или выполнить так называемый ARP-спуфинг, то есть подмену МАС-адреса. Подробнее остановимся на этой атаке позже, а пока вкратце поясним, что она собой представляет. Протокол ARP используется компьютерами для обращения друг к другу в пределах одной сети (преобразует IP-адрес в MAC-адрес нужного компьютера, после чего происходит связь по протоколу Ethernet). Спуфинг ARP позволяет одному компьютеру притвориться другим. В сети хакер находит два объекта атаки, обычно это ПК пользователей. Существуют бесплатные и свободно скачиваемые программы, перехватывающие с помощью ARP-спуфинга весь трафик между этими машинами. Причём не просто перехватывающие, а пропускающие через себя.
Опасность очевидна - хакер находится между компьютерами и может прослушивать трафик. А пользователь этого никак не заметит. Чтобы представить всю опасность этой угрозы, представьте, что вы пытаетесь выйти из системы интернет-банкинга. Злоумышленник может показать вам страницу с сообщением о выходе, но сохранить при этом подключение к банку.
Мошенничество с платёжными картами
Отвлечёмся от банков и обратимся к огромному количеству видов мошенничества с платёжными картами.
- У каждой карточки есть свой номер, состоящий из 13 или 16 цифр, причём номер строится по математическому алгоритму, называемому формулой Лухна (Luhn Formula). Это сделано для того, чтобы нельзя было взять и использовать любой номер.
- Можно скачать ПО, которое запросит действующий номер карты (в качестве базы) и сгенерирует похожие данные по алгоритму Лухна. Причём можно задать диапазон, например, 500 номеров.
- Логично предположить, что большинство номеров из такого короткого диапазона будут иметь близкие сроки действия карт.
- Хакер заходит на сайт и покупает то, что ему нужно.
- Он указывает вымышленное имя и адрес, "левый" идентификатор безопасности (security number, обычно указывается на тыльной стороне карты), номер карты, срок действия.
- Если банк действительно выдавал карту с таким номером, то всё зависит от тщательности проверки в процессинговом центре. Платёж вполне может пройти. Как такое может случиться? Всё очень просто, многие процессинговые центры принимают идентификаторы безопасности, имена и адреса, сохраняют их, но никогда не проверяют на правильность. То есть если карточка существует, структура представленных данных (в том числе срок действия) в норме, то платёж пройдёт, и заказ будет выполнен.
- Если владелец карточки не обратит внимания на утечку денег, то никто взлом и не заподозрит.
Сегодня Master Card и VISA вводят технологию под названием "3D Secure". В своём текущем виде она использует имена, пароли и PIN-коды. Поэтому акцент атак будет смещён именно на эту информацию. Интересно, что это позволит сместить бремя ответственности на владельца карты и банк-эмитент. Ну, а пока что, если вы столкнулись с онлайн-кражей вашей кредитной карты, опасайтесь получить гигантские счета. Подробнее об этом мы расскажем в следующих статьях серии.
Для системных администраторов и инженеров безопасности Интернет уже давно является полем боя. Приходится постоянно уповать на то, что защита выстоит. А после атаки следует максимально быстро устранить все негативные последствия. Но для этого необходимо вовремя обнаруживать атаки и вторжения. И вовремя закрывать все "дыры", чтобы даже бита информации не утекло. Вряд ли стоит надеяться, что поток атак и сканов NMAP прекратится. (NMAP - популярная программа-сканер безопасности, позволяющая хакеру испробовать множество различных атак и проверить "дыры" при минимальных усилиях.)
Для хакера Интернет - это как шахматная доска. Правила игры определяются разработчиками систем, а сам ход игры подразумевает каждым движением различные проверки защиты (в соответствии с чёткой стратегией).
Самые серьёзные уязвимости: PIN-коды и пароли
Ещё одна стратегия игры хакеров привязана к привычкам потребителей. В большинстве случаев, если у пользователя есть возможность задать пароль, то он старается использовать прежний, который уже где-то задан. Например, одинаковым вполне может оказаться PIN-код от банковской карточки, от телефона, от сигнализации! Это плохо тем, что, узнав один из этих кодов, злоумышленник получит доступ и ко всему остальному.
Здесь есть несколько особенностей. Во-первых, на скольких сайтах пользователь вводит пароли и PIN-коды? Отличаются ли пароли и PIN-коды для разных сайтов? Если пароли для каждого сайта различны, то где они хранятся, ведь держать их в голове пользователь просто не сможет?
Администраторы и рядовые работники многих сайтов могут получить доступ к учётным данным пользователей своих сайтов (PIN-кодам, паролям и т.д.). Банки, платёжные шлюзы и другие структуры, которые хранят данные карточек и учётных записей, должны понимать, что защита этой информации может стать бесполезной, если данные пользователя можно будет получить каким-то другим путём.
Страницы входа
Практически все уязвимости имён/паролей связаны со сценарием взаимодействия пользователя и сайта.
- Перед тем, как пройти на сайт, пользователь должен ввести имя и пароль.
- После проверки учётных данных происходит определённая последовательность навигации по сайту и выполнение транзакций.
Большинство онлайновых финансовых структур используют комбинации имени, пароля и части PIN-кода в стандартном коде страницы HTML, а также в названии страниц. Против такого сценария очень просто осуществить атаку, поскольку в нём не предусмотрено никакой практической защиты от фишинга, шпионского и "троянского" ПО.
После того, как пользователь вошёл в систему, предполагается, что на протяжении всей сессии работает именно он. Но это именно тот случай, когда может сработать атака типа "человек в середине". При этом атакующему вовсе не нужно перехватывать имя и пароль: пользователь уже указал все необходимые данные, а сессия открыта.
Протокол SSL: практически бесполезен
Многие надеются, что технология SSL поможет защититься. Считают, что 128-битного шифрования будет вполне достаточно.
SSL - это протокол безопасных соединений (Secure Sockets Layer). Он был разработан для шифрования данных, передаваемых между двумя точками сети. Например, между двумя компьютерами в Интернете. Пример работы SSL можно увидеть при подключении к вашему банку (или интернет-магазину): в нижней части окна браузера, в строке статуса, появляется символ замка, сообщающий об использовании SSL. Кроме того, в строке адреса можно заметить "https:", вместо привычного "http:".
SSL действительно улучшает защиту данных между двумя точками сети. Но проблема может заключаться в том, что одна из этих точек может оказаться компьютером, контролируемым атакой "человек в середине". Ещё одна уязвимость SSL - фарминг, то есть перенаправление на другую страницу. Так, вас можно запросто перевести на поддельный сайт. При этом значок об использовании SSL тоже может появиться, но опасность от этого не исчезнет.
Возможна также атака захвата рабочего стола компьютера пользователя. В этом случае SSL ничем не поможет, поскольку протокол защиты SSL работает между вашим браузером и сайтом в Интернете. Если на компьютере пользователя работают шпионские или троянские программы, они могут перехватить данные ещё до этапа шифрования.
Но на этом "радости" не заканчиваются. SSL ничем не защитит от нечестных сотрудников, имеющих доступ к персональным данным. Да и от фарминга SSL защитит только в том случае, если пользователь знает, что нужно делать, когда отображается сообщение о неавторизованном сертификате. Многие ли читают эти сообщения и не соглашаются автоматически?
Проблема очевидна, почему же тогда она не решается?
Проблема на самом деле существует и очевидна, но решить её не так-то просто. Тому есть две причины. Во-первых, риски застрахованы. А потенциальные угрозы охватывают столь большое число субъектов, что полностью защититься от атак невозможно. Во-вторых, "пока гром не грянет, мужик не перекрестится". Большинство пользователей слишком ленивы до той поры, пока атака не коснётся их лично. Кроме всего прочего, пользователи отнюдь не горят желанием изучать способы разрешения проблемы (как и разбираться в самих проблемах).
Проще говоря, стоимость и сложность рекламы, выбора и внедрения решения защиты намного превышает величину проблемы. По крайней мере, пока.
Но есть шаги и в правильном направлении. Скажем, Федеральный совет по надзору за финансовыми учреждениями (US FFIEC) разработал руководство по необходимому минимуму защиты под названием "2 Factor Authentication" ("Двухфакторная аутентификация").
Блажен, кто не ведает?
Для начала обрисуем проблему безопасности в общих чертах. Пользователя, чей компьютер ни разу не подвергался атакам, сегодня можно назвать счастливчиком. Менее повезло тем, кто подвергался атакам, но узнал об этом. В этом случае, вероятно, пришлось закрывать обнаруженные уязвимости.
Однако что будет, если вы не обнаружили атаку? Если вы не заметили вторжение, то и исправлять "дыры" вряд ли поторопитесь. А теперь представьте, что кто-то использует ваши учётные данные для доступа к вашей персональной информации, создаёт под вашим именем учётные записи в тех местах, о которых вы даже не подозреваете.
Сегодня множество пользователей подвергаются атакам из Интернета, но не ведают об этом. А организации часто умалчивают о прошедших атаках и втихую устраняют повреждения.
В первой части мы рассмотрели несколько видов угроз, которые актуальны для пользователей Интернета. Во второй части мы подробнее остановимся на том, как же эти атаки осуществляются. Только понимая это, можно построить адекватную систему защиты.
Ввод имени пользователя и пароля: известная проблема
Одной из главных проблем идентификации является страница ввода имени и пароля, именно она породила целое поколение хакеров. И причина понятна. Если в системе полностью или частично вводятся имена и пароли, то уровень безопасности низок. После успешной аутентификации хакер может получить беспрепятственный доступ к нужной системе.
Сайт, в некотором смысле, открывает ворота к запрашиваемым данным, а имя пользователя и пароль являются ключом к ним. После однократной проверки повторного подтверждения обычно не требуется, то есть единственной защитой доступа к электронной почте или системе интернет-банкинга являются имя пользователя и пароль. Другими словами, после входа в систему работа и транзакции будут возможны до тех пор, пока пользователь не завершит сеанс и отключится от системы.
Возникает логичный вопрос: почему же программисты создают системы с окном ввода имени и пароля, которые заведомо уязвимы? Здесь есть несколько вариантов ответа, и все по-своему верны, но простота и самоуверенность возглавляют этот список.
Давайте детально рассмотрим атаку на такую систему.
Атака на страницу входа
Начнём с того, что найти сайт, использующий страницу входа, не так и трудно. Например, если нам нужно найти образовательный сайт со страницей входа, созданный при помощи технологии ASP (Microsoft Active Server Pages), то можно зайти на Google и сделать запрос вида:
inurl:login filetype:asp inurl:edu
Страница входа, по сути, является "воротами" в приложение.
Во время ввода пароля символы чаще всего отображаются в виде звёздочек. На самом деле это лишь отображение, так как в поле ввода содержится введённый пароль. Затем эти данные в каком-либо виде передаются на сервер, где и проверяется их правильность.
Что же не так? Попробуйте сделать в Google запрос 'keypress recorder' ("клавиатурный шпион") в поисковой системе и посмотрите результат.
Среди полученных результатов наверняка будет несколько программ, каждая из которых потенциально может находиться на вашем ПК и записывать все нажатия клавиш. Например, если бы такая программа была на моём компьютере, то она записывала бы текст этой статьи, пока я его набирал. Некоторые программы более интеллектуальны и записывают лишь нажатия клавиш в поле запроса пароля. Некоторые идут ещё дальше и никак не отображаются в системе, что затрудняет их обнаружение. Встречаются и такие, которые переименовывают себя во что-то привычное. Например, согласитесь, что файл winprint.exe в каталоге Windows выглядит вполне прилично.
А теперь попробуйте ввести в поисковой системе 'screen scraper' ("экранный шпион"). Вы увидите список программ, которые могут захватывать снимки экрана ничуть не хуже, чем при нажатии клавиши "Print Screen".
Существуют и такие программы, которые объединяют в себе обе эти возможности. Некоторые из них выполнены в виде троянских или шпионских программ. Обычно они скачиваются на ваш компьютер во время просмотра интернет-страниц, в которые внедрён соответствующий код. Наиболее часто такое происходит на сайтах порнографического содержания. Или же шпионские программы присылаются по электронной почте.
Если ваш компьютер инфицирован одной из таких программ, то во время ввода все секретные данные будут перехватываться. Затем, через некоторое время, полученные данные будут отправлены злоумышленнику по электронной почте. Возможно, они будут переданы на специальный сервер, с которого злоумышленник сам заберёт их позже.
Итак, вы знаете о существовании таких программ и, надеемся, понимаете, что они могут записывать и передавать ваши пароли и другие личные данные. Поэтому вполне очевидно, почему окно ввода пароля несёт в себе такую опасность. А теперь вспомните о сайтах, где предлагается ввести данные платёжной карты, и где вы соглашаетесь сохранить эти данные для дальнейших покупок "в один щелчок мыши".
Но вернёмся к атакам на страницу ввода. После заполнения страница передаётся при помощи одного из запросов POST или GET HTTP. Позвольте расшифровать.
HTTP расшифровывается как протокол передачи гипертекста (Hyper Text Transfer Protocol), он используется для формирования и передачи страниц через Интернет. Форму можно передавать двумя способами: с использованием запроса POST или с использованием запроса GET. Достаточно сказать, что оба метода позволяют передавать данные от браузера на сайт. Каждый HTTP-запрос может получить свой ответ, например, когда вы отправляете запрос на поиск в Google, вам возвращается страница с результатами поиска - ответ HTTP.
Существует два варианта доставки данных на сервер. Они могут быть зашифрованы, например, средствами Secure Sockets Layer (SSL, тогда вы увидите префикс HTTPS://) или переданы в открытом виде (HTTP://).
Оба способа уязвимы, и для выяснения причин обратимся сначала к теории.
Перехват пакетов
Сетевые устройства "общаются" друг с другом логичным и предсказуемым способом, определённым в стандарте, носящем название модели OSI (модель взаимодействия открытых систем). Благодаря этому производители могут создавать оборудование, соответствующее OSI, которое будет совместимо и с другими устройствами.
Данные передаются по сети пакетами, аналогично почтовым конвертам в традиционной почте. Теперь представьте, что вы написали очень большое письмо, и оно не помещается в один конверт. В этом случае можно взять несколько конвертов и разложить части письма по ним. Естественно, чтобы получатель не запутался, конверты нужно пронумеровать, например 1 из 6, 2 из 6 и т.д. На каждом конверте нужно написать точный адрес назначения, а также обратный адрес, на случай ошибки доставки.
Протоколы модели OSI аналогичны работе почтальона. Рассмотрим вопросы, на которые они должен ответить:
Вопрос 1 - существует ли указанный адрес?
Вопрос 2 - как лучше отправить письмо (по какому пути)?
Вопрос 3 - возможно ли его доставить?
Отправка письма.
Теперь, поскольку в нашем примере шесть конвертов, мы не можем быть уверены, что при сортировке писем на почте все они будут обработаны одновременно, и, конечно же, нет гарантии того, что адресат получит все шесть писем сразу. Если же адресат получит не все письма, он сможет попросить повторно послать недостающие письма. А когда он получит все послания одновременно, он сможет открыть их в нужном порядке и прочитать письмо.
Как происходит поиск адреса в сети?
У каждого компьютера, подключённого к сети, обычно есть три параметра, которые его идентифицируют. Это уникальный адрес, привязанный к сетевому адаптеру, он же физический или MAC-адрес. Следующий - IP-адрес (Internet Protocol), он идентифицирует компьютер в сети и обычно определяется администратором, либо назначается автоматически. И имя компьютера.
Как правило, MAC-адрес изменить нельзя, IP-адрес может меняться, например, при каждом новом подключении к сети, имя компьютера может по своему желанию сменить администратор.
Для чего нужна такая адресация?
Представим трейлер, который зачастую можно встретить в американских фильмах, его номер аналогичен MAC-адресу. При этом владелец любит постоянно переезжать с одной стоянки на другую, через некоторое время снова, затем снова. У каждой стоянки есть свой адрес, а также выдаются номера парковочных мест - это аналог IP-адреса. Имя - это то название, которое владелец выбирает для своего трейлера и может написать его на нём как пожелает: в прошлом году ему, например, нравилось "Большой Билл", в этом он решил написать "Кролик Кентукки".
Для поиска владельца такого автофургона нужно знать его адресные данные: адрес парковки и место трейлера. Все эти данные в сети отслеживает протокол разрешения адресов (Address Resolution Protocol - ARP). Устройства, подключённые к сети, отображаются в записях ARP, а следовательно, сохраняется возможность найти адресата.
Теперь представим, что у нас есть два типа почтальонов: первые любят поговорить со всеми и работают не точно, вторые - сдержанные и точные.
Первые стучатся в каждую дверь и показывают всем содержание писем. В сетевой терминологии это называется некоммутируемой сетью. Во втором случае почтальон доставит письмо только адресату. Подобное происходит в коммутируемой сети.
Вряд ли стоит говорить, что некоммутируемые сети подвержены перехвату данных - они практически созданы для него. Некоммутируемая сеть всегда открыта для хакера. Если подключиться к такой сети и запустить тот же TCPDUMP, то можно незаметно для других перехватывать весь сетевой трафик (аналогия с открытыми конвертами). Если пользователь из такой сети заходит на сайт без SSL, указывая свои учётные данные, то такая программа, как TCPDUMP или DSNIFF, сможет их без проблем перехватить.
Приведём пример. Ниже показана команда TCPDUMP для захвата всего трафика, направленного на Google, в файл goog.txt.
Открываем Google и выполняем запрос.
После этого в файле goog.txt мы обнаружим следующее.
(Можно использовать и более интуитивно понятную программу - ETHEREAL.)
Выше показан пример нашего разговорчивого почтальона, который всем показывает письма.
В коммутируемой сети трафик передаётся непосредственно на узел назначения. Поскольку наш компьютер не является таковым, то так просто перехватить данные не удастся, нужно как-то обмануть компьютеры, чтобы они передавили весь трафик к нам. Нужно убедить почтальона, что вся почта из пункта "А" в пункт "B" должна проходить через наш компьютер.
По природе сети компьютерам требуется запрашивать адресную информацию с других компьютеров, чтобы соединение заработало. После установки соединения адресная информация заносится в ARP-кэш, где записаны адреса тех компьютеров, к которым часто происходят обращения. Адресная информация запрашивается только при необходимости, иначе бы на каждой машине пришлось хранить список всех остальных.
Представим, что компьютеру "A" нужно обратиться к компьютеру "B". У каждого из них есть свой IP-адрес и MAC-адрес.
Компьютеры запрашивают адресную информацию друг у друга и обновляют свои ARP-кэши. Чтобы оказаться между ними, нам нужно изменить их ARP-кэши. Для этого мы отправляем эхо-запросы PING на каждую из них. Сетевые параметры нашего компьютера следующие.
Теперь мы сгенерируем ARP-ответ для каждого из компьютеров. И неважно, отсылали ли эти машины запрос, их ARP-кэши обновятся полученной информацией.
Мы подменили записи в ARP-кэшах компьютеров "А" и "B", теперь для "B" наш компьютер - это "А:, а для "А" наш компьютер - "B".
Описанная выше атака называется "ARP Poisoning", она позволяет нам стать "человеком в середине" (Man in the Middle, MITM), перехватывающим весь трафик между компьютерами "А" и "B".
Что для этого требуется? Несколько простых программ: PING, ARP, NMAP (если вы не уверены, какую машину атаковать) и программа для вброса пакетов, например, NEMESIS или ETTERCAP.
Дополнительную техническую информацию можно узнать на этом ресурсе.
Показанная выше книга содержит краткое описание упомянутого процесса. Кстати, диаграммы взяты именно из неё.
Упомянутая техника перехвата пакетов требует определённого уровня знаний. Если же вы решите проверить методы в вашей сети, не зная всех тонкостей, то вполне вероятно, что сегмент сети перестанет работать или вы будете заблокированы системой сетевой защиты.
Администраторы и хакеры: они используют одни и те же методы
Самое страшное, что все упомянутые выше средства свободно доступны для скачивания или даже являются стандартными средствами операционной системы (ping и arp). Кроме того, более удобные автоматизированные решения, такие, как NetScanTools Professional, без труда можно купить. Покажем, что получит в своё распоряжение хакер, если купит такое решение.
Подобный набор в руках хакера превращается в очень хорошее орудие, автоматизируя техническую работу. Можно получить список результатов сетевого сканера, после чего правый щелчок мыши выводит контекстное меню со списком доступных действий. Это позволяет быстро и просто проверить сеть и подключённое оборудование на уязвимости.
NetScanTools создавался как инструментарий для сетевых администраторов, но он же успешно применяется и хакерами. И ничего поделать с этим нельзя.
Уязвимости SSL
Наверное, надо подробно остановиться на недостатках SSL, особенно из-за его позиционирования как панацеи от угроз Интернета. Первое, что нужно отметить, - SSL не защитит от программ перехвата паролей на компьютере, которые упоминались выше. Это связано с тем, что SSL является протоколом, работающим между браузером и сервером сайта, к которому выполнено подключение. Вводимая на страницу браузера информация не защищена SSL.
Например, если вы вводите имя пользователя и пароль в соответствующую форму, как описано выше, SSL не сможет защитить их от перехвата при помощи "клавиатурного шпиона", со всеми последствиями. SSL начинает работать, когда имя и пароль введены и браузер выполняет HTTP-запрос.
SSL имеет несколько разновидностей, наиболее надёжная предполагает наличие сертификата как у клиента, так и у сервера. Однако такой подход на практике встречается редко, поскольку нужно наличие копии сертификата на всех машинах, с которых вам может потребоваться выход в Интернет. Поэтому множество сайтов не используют эту возможность, что ослабляет защиту.
В описанном выше примере серверное ПО сайта может проверить, что туннель SSL устанавливался между сервером сайта и вашим компьютером. Без этого мы не смогли бы защититься от атаки "человек в середине" (Man in the Middle). Хотя мы говорили, что подмена ARP, описанная выше, является разновидностью атаки "человек в середине", но на самом деле этот термин используется для описания ситуаций, в которых применяются защищённые протоколы.
MITM - достаточно общий термин, описывающий все виды атак с использованием перехвата трафика атакующим субъектом. Хакер может блокировать пакеты или генерировать избыточный трафик. Он может изменять содержимое пакетов с целью обмана атакуемого или вызова сбоя из-за особым образом сформированного пакета. Всё это может привести к краже информации, включая проникновение в пользовательские сеансы работы с банковскими счетами.
Как такое может произойти?
Предположим, что вы атаковали кого-либо по описанной выше схеме ARP-атаки. Он отсылает запрос в банк, который вы получаете на своём компьютере. Вы перехватываете запрос и отправляете его в банк. Теперь сервер банка создаёт SSL-соединение, предназначенное для вашей жертвы. Но вы вновь перехватываете трафик от банка и останавливаете туннель SSL на своём компьютере. Затем вы можете создать новый SSL-туннель между вашим компьютером и тем, который атакуете.
После этого жертва атаки получит сообщение о том, что полученные детали SSL не совпадают с сертификатом банка.
Конечно, сертификат банка завершил свою работу на вашем компьютере. Ваша жертва получит страницу банка, но вы же отправили туда совершенно другой сертификат. Поэтому жертве будет выведено сообщение о такой аномалии. Большинство пользователей эту ошибку игнорируют, соглашаясь с предложением использовать новый сертификат. Большая ошибка!
Теперь объект вашей атаки работает с системой интернет-банкинга, а вы, находясь в середине, наблюдаете за ним, получаете имена и пароли, или подменяете информацию, с которой он работает. Но что самое важное, когда он решит выйти из системы, вы сможете показать ему соответствующую страницу. Но вы при этом можете не разрывать соединение с банком и будете продолжать работать в системе и получать доступ к данным того, кого атаковали.
Атака весьма серьёзна.
Существует два свободно доступных продукта, которые позволят продемонстрировать такую атаку: ACHILLES и BURP.
Интерфейс BURP.
Программа симулирует атаку "человек в середине": ваш браузер запрашивает интернет-страницу.
Можно разрешить дальнейшее прохождение запроса (Forward), но результат всё равно вернётся к нам.
В качестве примера можно настроить подобный прокси-сервер на своём компьютере и пропустить через него трафик браузера, выбрав прокси-сервер в опциях браузера. Теперь можно попробовать сделать запрос поисковой системе. Мы задали "achilles proxy".
Как видно, запрос HTTP отображается на экране.
На закладке перехвата ищем слово "achilles".
И заменяем его на "burp".
Теперь пропускаем запрос ("Forward") и получаем ответ от Google. Как только ответ придёт на прокси, нужно разрешить его передачу браузеру.
Как видно, в полученном ответе содержится результат поиска "burp proxy".
На прокси-сервере мы легко подменили запрос. С таким же успехом можно будет подменить и результат поиска.
На странице поиска Google был сделан запрос "achilles". Запрос был перехвачен на прокси-сервере, где слово "achilles" было заменено на "burp". Google исправно обработал запрос и выдал соответствующий результат.
В подобном случае вы никак не сможете повлиять на запрос после его отправки. Кроме того, сайт может быть не таким безобидным, как Google. Например, если это будет страница банка, и вы захотите осуществить платёж на 1000 долларов, а злоумышленник ("человек в середине") перехватил запрос и изменил его на 1 доллар. Несложно придумать и более серьёзные сценарии.
Так что не будьте уверены в полной безопасности, даже если видите символ замка и префикс HTTPS. Кроме того, если вы увидели какое-либо подозрительное сообщение, обратите на него особое внимание!
Кстати, SSL всё же можно успешно использовать для защиты от атак типа "человек в середине".
Заключение
Многие считают, что сильные пароли смогут решить большинство проблем, связанных с учётными данными и аутентификацией пользователей. Но теперь вы знаете, что любая из перечисленных атак позволяет успешно перехватить незашифрованный пароль. Другие считают, что нужно использовать двухфакторную аутентификацию (о ней мы поговорим в следующей статье), но даже и в этом случае остаются возможными атаки типа "человек в середине".
Надеемся, что теперь многие из наших читателей станут более внимательно относиться к страницам регистрации. Кроме того, теперь вы сможете оценить тот уровень безопасности, который предлагает вам администратор сайта. Особенно важно это для тех случаев, когда необходима передача личных данных.
Но что же может сделать конечный пользователь? На самом деле, немного. Нужно тщательнее проверять сертификаты, а также регулярно сканировать компьютер на наличие вредоносных программ. Впрочем, именно разработчики защит должны создавать решения, которые позволят в корне решить описанные проблемы. А уже системные администраторы смогут внедрить новые решения и защитить пользователей от атак. Сегодня существуют способы защиты от упомянутых атак, но далеко не каждый выливается в готовое решение. Так что берегите себя и свою информацию!
При выборе банка пользователи зачастую сравнивают такие параметры, как предлагаемые проценты по вкладам, типы вкладов и, конечно же, услуги, например, возможность оформления кредита или ссуды. Но в мире, где всё больше сервисов переходит в онлайн, системы интернет-банкинга постепенно становятся всё популярнее. В будущем они будут удивлять не больше, чем банкомат в соседнем магазине. Так не пора ли нам задуматься о безопасности, которую обеспечивают эти самые банки?
Начнём мы с уязвимостей страниц входа. Обычно банки используют достаточно строгие дизайны страниц, имеющие поля для ввода PIN-кода или пароля. Но в чём же проблема? Почему эти страницы опасны? И что предлагают разработчики этих систем для более безопасной работы через Интернет?
Сегодня среди экспертов по безопасности активно обсуждается двухфакторная аутентификация (2 Factor Authentication - 2FA). Конечно, она вовсе не станет решением всех проблем аутентификации в Интернете, но позволит существенно укрепить защиту.
Двухфакторная аутентификация ставит ещё один барьер между хакером и вашим счётом в банке. Суть в том, чтобы второй фактор находился вне досягаемости для злоумышленников. Например, одноразовые коды доступа, генерируемые на основе PIN-кодов или без них и выводящиеся на смартфон, КПК или даже мобильный телефон.
Но не будем забегать вперёд. Посмотрим, где хранятся наши учётные данные от системы интернет-банкинга.
Ниже мы приведём решения, которые используются для обеспечения безопасности в современном Интернете, включая двухфакторную аутентификацию.
Что ж, позвольте начать со столь знакомого диалога ввода логина и пароля.
Вряд ли для кого-то является секретом, что такие сайты, как PayPal, сегодня наиболее популярны среди фишеров.
Вот ещё один пример.
Ещё вариант с вводом другого типа данных, но на самом деле пароли и PIN-коды одинаково уязвимы.
Сайты, использующие подобный способ аутентификации, рано или поздно могут столкнуться с серьёзными проблемами, поскольку код такой web-страницы скачать вовсе не сложно. Программы, подобные WGET, можно без проблем скачать и сохранить все объекты сайта на жёсткий диск. В таком случае вы получите почти полную копию сайта, включая картинки и всяческие предупреждения, в том числе и о фишинге! Не сложно понять, почему фишинг стал столь популярной атакой.
Частичная передача паролей или PIN-кодов позволяет несколько повысить уровень защиты. Но, опять же, здесь есть опасность подвергнуться атаке фишинга, либо методом социальной инженерии, или даже стать жертвой перехватчика клавиатуры, который получит всю необходимую информацию через два-три успешных входа. Несмотря на это, такой подход наиболее популярен в сегодняшних системах интернет-банкинга. Пример ниже.
Практически все данные, необходимые для доступа, злоумышленник может получить через серию атак на ПК, либо сразу добыть их через фишинг и социальную инженерию.
Клавиатура-скремблер. На экран выводится краткая таблица шифрования, где нужная цифра соответствует какой-либо букве. И пользователь должен набрать PIN-код с помощью букв. К сожалению, при таком подходе всё, что нужно перехватить, уже есть на экране. Поэтому хакеру достаточно захватить экран пользователя. Пример показан ниже.
Троян-перехватчик экрана и клавиатуры прекрасно преодолевает такую защиту. Да и фишинг здесь тоже сработает, поскольку нужный PIN-код можно получить из вводимой пользователем информации.
Экранные клавиатуры ничем не лучше.
Экранный шпион может легко захватить все "клики". Фишинг по-прежнему работает, так как пользователь всё равно даёт пароль/PIN-код, пусть и с помощью экранной клавиатуры.
Статические таблицы кодов относятся к двухфакторной аутентификации и действительно усиливают защиту. Посмотрим на следующий пример.
Сначала пользователю предлагается ввести имя и пароль, а затем некоторые значения из таблицы кодов.
В таком случае необходимо знать не только имя пользователя и пароль, но и ещё один фактор, который достаточно стоек к фишингу, - код из таблицы. Таблица генерируется для конкретного пользователя (скажем, в банке, после чего распечатывается), так что получить её хакеру будет весьма проблематично. Единственное, чему следует уделить внимание, - каждый раз для входа должен использоваться новый код из таблицы (новые координаты), иначе безопасность ослабевает. Конечно, на стойкость защиты влияет размер карты и количество координат в ней. Кстати, схожий способ использовали немецкие подводные лодки во времена Второй мировой войны для шифровки и расшифровки сообщений - книгу с кодами.
Списки TAN. Разовые коды доступа (Transactional Access Numbers - TAN) являются логическим продолжением идеи таблиц, но их считают менее надёжными. Они относятся к той же категории раздельной двухфакторной аутентификации. Список TAN представляет собой упорядоченный список чисел определённой длины.
Пользователю может предлагаться ввести нужное значение примерно так.
После ввода имени пользователя следует ввести число из списка TAN. Такой подход популярен в странах Евросоюза.
Пароли, передаваемые через SMS . Это ещё один вид двухфакторной аутентификации. Если пользователь желает войти в систему, то на его мобильный телефон отправляется SMS с определённым кодом, который нужно ввести для входа. Понятно, что предварительно пользователь должен зарегистрировать свой телефонный номер в системе.
При использовании такой схемы есть ряд ограничений: необходимо, чтобы пользователь мог получать SMS, то есть находился в зоне доступа сети, и, естественно, имел мобильный телефон.
Комбинированная двухфакторная аутентификация опирается на информацию, которую может обработать пользователь, но не могут программы (или что-либо ещё) на компьютере. Пользователь меняет выдаваемый пароль или PIN с помощью своего алгоритма, после чего вводимый код проверяется на сайте.
Два фактора - это обычно PIN-код (его вы знаете) и брелок-шифратор (он у вас есть с собой).
Шифраторы могут быть совершенно разными, как отдельными устройствами-брелоками, так и программой на КПК или мобильном телефоне.
Ниже мы приведём некоторые примеры.
Электронные брелоки-шифраторы. Такие решения достаточно надёжны. Каждому пользователю выдаётся электронный брелок, который можно подцепить к ключам.
Пользователь вводит PIN-код на брелок, который преобразует его в код доступа. Затем код доступа указывается на сайте и выполняется вход.
Из плюсов такого подхода нужно отметить высокую степень защиты, из минусов - стоимость.
Динамические кодовые таблицы. Они напоминают статические таблицы, но имеют одно важное отличие. Данное решение сочетает пароль или PIN-код пользователя с информацией, которая выдаётся на экране, после чего происходит дополнительная обработка с помощью динамической таблицы или брелока-шифратора.
Пользователь получает примерно такой экран.
У пользователя есть пароль или PIN-код, а также динамическая таблица.
Мы сочетаем информацию экрана, PIN-код и динамическую таблицу (брелок-шифратор), после чего получаем код аутентификации, который передаётся на сайт для проверки.
Мобильные телефоны/КПК. В данном случае предлагается получать ответный код доступа средствами специальной программы для КПК или мобильных телефонов. С точки зрения функциональности, технология не сильно отличается от использования электронных брелоков-шифраторов, но более привлекательна для пользователей из-за меньшей стоимости.