Спутниковый шпионаж
Развитие современных компьютерных технологий поражает. Устройства становятся меньше, а вычислительные способности удваиваются, чуть ли не каждый год! Уже ни кого не удивить высокоскоростным доступом ADSL, беспроводным Wi-Fi и тем более GRPS и его продолжением - EDGE. На рядового пользователя трудится даже космическая отрасль. Вывод спутников на орбиту - колоссальные затраты, а все ради того, что бы мы могли наслаждаться спутниковым телевидением и спутниковым Интернетом. Скорость и дешевизна, зачастую являются главным критерием при выборе подключения к Интернет. Спутниковый доступ к сети - самый оптимальный вариант, но и самый ненадежный - в плане безопасности.
Внимание! Цель данной статьи - рассмотреть возможность перехвата информации в спутниковых сетях и варианты защиты. Автор не несет ответственности за возможное применение полученной информации из статьи в противозаконных целях. Данная технология описана для общего развития, но ни как руководство к действию.
Атака
Для начала давайте разберемся, каким образом информация передается по спутниковым каналам связи. Система основана на том, что клиентский компьютер по наземным каналам связи передает запрос в дата центр на получение какой либо информации из Интернета. В датацентре запрос обрабатывается и он загружает все по тем же наземным каналам связи информацию, которую запросил клиент. Далее из датацентра информация идет на транспондер, в задачи которого входит передать информацию на спутник. Вот тут и открывается истина - задача спутника сродни задаче зеркала - просто отражать полученный сигнал - т. е. все, что приходит от транспондера спутник просто отправляет опять на землю, но уже не в виде узкого пучка, как лазер, а более расширено - как свет от фонарного столба, чем он выше - тем больше снизу световое пятно.
Что же у нас получается - спутник рассеял нашу информацию по огромной поверхности нашей планеты, как же мы ее получим?
Здесь в роль вступает DVB карточка и тарелка. Так как сигнал со спутника приходит к нам уже с довольно низким потенциалом - его необходимо усилить. Для этого нам и нужна тарелка, и чем она больше - тем лучший сигнал мы получим. Тарелка всего лишь отражает сигнал на конвертер, который уже и является непосредственно самим приемником сигнала. Но сигнал недостаточно просто принять - его надо отфильтровать. Ведь в один момент времени в сигнале может находиться информация, которую запросили, например, 100 человек. DVB карта фильтрует сигнал, полученный конвертером, и оставляет нам только то, что запросили мы и отсекает то, что запросил сосед. Как видно из всей этой цепочки - самый уязвимый элемент системы состоит в том, что данные разделяются на клиентской стороне. Вот этим мы и воспользуемся.
Что нам надо сделать для получения сторонней информации? Правильно - сделать так чтоб наша DVB карточка, фильтровала чуть-чуть не так, как задумал производитель. Фильтрация происходит по нескольким параметрам - по MAC-адресу DVB карточки или же по IP-адресу. Настройка фильтрации производится в сопутствующей программе для спутникового Интернета, например – DVBData из комплекта TTBudget-1401.
Как было уже сказано выше, непосредственно фильтрацию производит не сама карточка, а ее софт - тот самый, который мы запускаем при подключении к Интернету используя спутник. И именно его, мигающего нам зеленым цветом в трее при хорошем сигнале, мы и будем эксплуатировать (на примере DVBData от TTBudget - 1401).
После непродолжительного изучения работы и алгоритма DVBData.exe, была найдена возможность (простой заменой некоторых строк в исполняемом файле) заставить фильтр работать на нас. По умолчанию DVBData.exe не фильтрует так называемые multicast пакеты, которые рассылает провайдер спутникового Интернета. В multicast пакетах может быть и техническая информация, а может быть и программа передач. Но не столь важно, что может быть в этих multicast – главное, что фильтруются они по MAC-адресам, которые жестко прописаны в DVBData.exe. И если в самой программе изменить эти адреса – то мы заставим DVB карточку пропускать через себя абсолютно любые пакеты с произвольным MAC-адресом, вместо multicast.
Для этого откроем в любимом HEX редакторе DVBData.exe и поменяем все 10 адресов по смещению 72168h вида 01005E000008 на мак адрес карточки, информацию с которой нам надо получить. После изменения адресов сохраняем наш измененный файл под именем DVBData2.exe и копируем его в тот же каталог, что и оригинал.
И вот настал самый интересный момент - нам осталось направить нашу тарелку на тот же самый спутник, что и у нашего коллеги. Запустить наш модифицированный DVBData2.exe. И с удовольствием наблюдать, как в трее начинает мигать значок сетевого подключения - теперь информация, которую запросил наш друг, приходит и к нему и к нам!
Но что с того, что к нам приходят посторонние пакеты - мы то от этого ничего кроме загрузки процессора не получаем. Нам надо весь приходящий трафик куда-то сохранять и анализировать. Для этой цели прекрасно подходит сетевой анализатор Ethereal. В его задачи будет входить сохранение всех полученных пакетов в файл и дальнейший их анализ.
Итак, после установки запускаем наш анализатор. И активируем захват сетевого интерфейса нашей DVB карточки в меню Capture. Далее запускаем наш модифицированный DVBData2.exe. И вот они побежали - наши мегабайты информации. Стоит, пожалуй, еще напомнить, что при запуске DVBData2.exe нам нужно будет еще указать PID – это номера потоков. Их можно узнать на сайте провайдера или просто вписать все активные пиды, которые предоставит нам программа PidScanner. После непродолжительной работы всего нашего спец-софта захват можно прекратить и сохранить к себе на диск весь поток информации, который мы заполучили.
Теперь осталось в том же самом Ethereal открыть наш сохраненный поток данных. И уже не спеша, попивая чай или кофе, брать ту информацию, ради которой мы не пожалели потратить столько времени на настройку тарелки, ремонт ПО спутниковой карточки, установку Ethereal и, конечно же, на прочтение этой статьи.
Защита
Единственный способ защитится от прослушивания во время использования спутникового Интернета - шифрование всего трафика криптостойким алгоритмом. Никогда не используйте спутниковый Интернет для получения личной и особо ценной информации.
Различные вопросы и решения, которые могли возникнуть.
Вопрос: что можно перехватить таким методом?
Ответ: абсолютно весь входящий трафик. Т.е и Интернет странички, и почту, и аську, и все остальное.
Вопрос: как узнать мак адрес посторонней DVB карточки?
Ответ: для этого есть несколько способов. Первый и самый простой - просто спросить его у нашего коллеги. Если просто спросить нельзя - можно воспользоваться СИ. Ну а самый шпионский вариант – это использование спутниковых программ-граберов, например manna.
Спутниковый грабинг: файлы с неба
Во-первых: НЕТ, это не Интернет на халяву. И вообще, грабинг (он же рыбалка) - это аморально и не культурно: вы получаете чужой трафик, без ведома владельца. Злостно копируете его личную информацию: музыку и фильмы (за которые он, возможно, заплатил), корреспонденцию и... да, порно, в основном порно. Во-вторых: готовьтесь к получению кучи мусора и постоянной нервотрепке из-за обрывов файлов. Можно конечно настроить фильтры и получать лишь то, что вам надо, но 50% файлов не докачиваются, а значит вы можете получить новенький фильм, классного качества, но обрывающийся на кульминации (обидно, да?). В третьих: хотите получать трафик на халяву, готовьтесь к приличным затратам - ведь у вас не будет права докачать файл, а значит получать его надо сразу и целиком, без ошибок. Must have: акриловая тарелка, высокоскоростной винчестер и, желательно, Линукс. (ну, под Виндоус тоже работает нормально, но ведь он Мастдай
).
Ну ладно, хватит теории, перейдем к практике.
Что вам надо:
Тарелка (желательно не железная за 20$, а что-нибудь посерьезней, например акриловая ~100$, особенно если вы планируете днем и ночью сидеть и грабить, грабить - в любую погоду - и т.п.), на пути сигнала не должно быть крупных объектов (домов, телевышек и подобного), а лучше чистое небо, иначе будут помехи.
Ротер - вещь не обязательная, но весьма полезная, т.к. тарелку можно будет удаленно вращать, и, тем самым, охватывать больше спутников, искать тот самый, который вам нужен (так же с ним будет проще поймать хороший уровень сигнала).
DVB карта - сгодится почти любая, но, как показывает опыт, меньше всего проблем с настройкой (в том числе в Линуксе) и наименьшее количество разрывов связи даёт SkyStar 2.
Куча проводов.
Альпинист-любитель чтобы повесить тарелку.
На один компьютер можно поставить две, три, сколько угодно DVB карт, но тогда стоит иметь несколько винтов и процессор пошустрее.
Итак, как всё это работает.
Почему можно получать чужой трафик, когда эта халява закончится и что будет, если начнешь грабить. По порядку:
Это возможно потому, что спутник не может пучком передавать информацию именно в ту тарелку, которая её запросила (тарелка не может запрашивать - это образ) - он только может передавать её кучей, на всю поверхность, для всех. И только частный компьютер (или ресивер) её сортирует и пытается найти ту информацию, которая принадлежит ему, анализируя заголовки. Когда ищешь что-то приходится просматривать и чужое: а вдруг ваши деньги в чужом кармане - всяко бывает
)
Итак, понятно почему мы получаем информацию, но отчего её не шифруют, ведь достаточно передавать не зашифрованные заголовки пакетов чтобы компьютер понял для него это или нет? Ответ прост - это дорого и неудобно. Зачем шифровать если никого это не волнует, к тому же скорость обработки информации уменьшится (т.к. придется тратить время на шифровку), оборудование нужно будет мощнее, да и каждому клиенту ключ давать. Короче провайдеры на это забили. Их можно понять.
Когда закончится. Тогда, когда найдут способ быстро и эффективно шифровать данные, а люди думающие не захотят расшифровывать ключи или адсл резко удешевится, ну вы поняли к чему я веду: на наше поколение хватить, да и внучкам достанется.
Что за это будет. Хммм... сложно сказать, прецедентов не было, а все оттого, что, во-первых, вы все время получаете чужую информацию и в этом виноват провайдер; во-вторых, не возможно отследить получили вы чужую информацию или нет, ведь тарелка работает только на прием и данные никакие передавать не может.
Предположим, что вы купили и установили все необходимое, что делать теперь? Рассмотрим пример на самой популярной сегодня ОСи Windows (для Линукс все так же, только программы и драйвера другой компиляции, все они легко доступны, а алгоритм действия тот же). С DVB картой проблем быть не должно, но желательно драйвер устанавливать не с заводского СД, а поискать последнюю версию (Для SkyStar 2 существуют модификации, специально заточенные под грабинг. У Линуксоидов выбора нет, на сегодня существует только один драйвер под Линукс, и он не официальный, зато без глюков. Естественно, грабинг под Линукс - это больше геморроя, но ошибок по приему будет значительно меньше, т.к. программа сможет взять под контроль максимум ресурсов, овчинка выделки стоит только если у вас возникли проблемы с Виндоус грабингом, а со SkyStar 2 это бывает очень редко.) Далее вам будет нужна программа для грабинга (ну если вы не планируете её писать с нуля). Таких программ на сегодня великое множество, но я советую SkyNet:
Она бесплатная (хотя они все такие
).
Её исходный код полностью открыт и готов к модификациям.
Её удобно использовать, т.к. в ней предусмотрены фильтры и возможность подключить в ручную отлов файлов с особым расширением.
Её поддерживают огромное количество людей, будет с кем посоветоваться.
Теперь вам нужно узнать характеристики транспондера, а также PIDы доступа к Интернет трафику. Все не так сложно как звучит. Характеристики транспондера можно узнать на сайте провайдера, предоставляющего услуги Интернета, там же можно узнать как минимум 1 PID. Но PIDы проще искать через специальную утилиту для программы ProgDVB "Pidscanner" - она свободно распространяется и найти её не сложно, кстати, SKYNET иногда тоже идет как plugin к этой популярной программе, но я советую использовать раздельную версию, оттого что плагином она уже давно не поддерживается.
Приведу пример настройки для HeliousNet провайдера (он предлагает интернет только крупным и малым компаниям, оттого трафик у него интересней - на халяву всякое качают) на спутнике Express AM 22 - так как он доступен большему числу Дорогих Россиян, ведь он охватывает территорию почти до Уральских гор.
tuner=11124000,V,7593000,A
pids=700,710,4177,4162,4161,4160
Настройка программы и её фильтров. Перед тем как программа начнет работать, необходимо будет найти файл StreamReader.dll для SkyStar 2- это не сложно, достаточно воспользоваться любым поисковиком. После того как вы его скачаете, скопируйте его в каталог к SkyNet, не важно является она плагином или программой, без него работать не будет - в этой библиотеке описаны API функции DVB карты, естественно от модели к модели они различны. Далее есть смысл заглянуть в файл skynet.ini, там нам надо будут интересны три строчки:
name_format=*/E/_25.01.06/p/s_m_R(c_p).E - что какая буква означает расписано подробно в комментариях к этому файлу - вкратце эта строка означает, что корректно перехваченные файлы будут сохраняться в директории ok/расширение файла/дата/пид/имя файла в виде источника получения, счетчика, мак адреса карты получателя и т.п. Не удивляйтесь что имя файла так изменено. Дело в том, что невозможно узнать изначальное имя, ведь предполагается, что запрос был сделан через браузер, и он знает, что именно будет получать. По этой причине, увы, перехваченные html файлы будут без графики - она будет перехвачена отдельным файлом, уже не взаимосвязанным с html.
Оставшиеся две:
tuner=
pids=
пример как их заполнять дан выше.
Теперь рассмотрим правила перехвата файлов. Они описаны в файле regex.txt - данный файл можно обновлять динамически, во время работы программы; чтобы она его вновь считала достаточно нажать Ctrl+R (это касается и файла rules.txt). В нем подряд расположены строчки описывающие группы расширений перехватываемых файлов, в таком виде:
80C000 b ^\x00\x00\x01\xB3 mpg;VIDEO;ALL
008000 b ^PK zip;ARCHIVE;ALL
Первое слово - цвет отображаемой линии - не важно, что будет написано, это для интерфейса программы, затем, через пробел, пишется бинарный файл или текстовый( b или t), опять, через пробел, после символа "^" пишется содержимое первых n байтов файла (n задается в файле skynet.ini) в двух вариантов либо в шестнадцатеричном, тогда указывается \x число, либо в текстовом, тогда просто символы. Через пробел, пишем в начале расширение файла, затем, через ";", группы к которым он относится (о них ниже), в конце строки ничего ставить не нужно. Для одного расширения можно указывать несколько строчек, все корректно считаются и обработаются. Группы описывать не надо, создаются автоматически после первого упоминания.
Теперь о фильтрах. Они описаны в файле rules.txt. Если два фильтра противоречат друг другу, то будет принят во внимание только первый. Корректно работает система восприятия фильтров как множеств (то есть можно написать: "принимать все от такого то мак адреса", а далее: "не принимать изображение от него же", это не противоречащие фильтры, программа просто станет принимать всё кроме изображений с выбранного мак адреса).
Как формировать:
s 1.2.3.4 +[100k-] -IMAGE[0-40k]
m a0940128b8 +IMAGE[1K-1G]
Есть два варианта первого символа
m - означающий, что далее речь идет о мак адресе принимающей DVB карты.
s - что дальше будет IP адрес ресурса откуда скачивается файл.
Затем через пробел указываем адрес, в том или ином виде, затем строку такого типа:
первый символ: "+" / "-" - означает принимать или нет;
затем слово - наименование группы, если пропустить то все;
квадратные скобочки, внутри которых можно указать необходимый размер:
если интересуют все файлы, то не писать квадратные скобки;
если от какого то размера и выше то пишем [100k-] все слитно, черточка в конце обязательна;
если любой, но не больше, то [-1G], опять же черточка нужна;
если в определенных рамках, то [100k-1G].
Заключение
Этого должно быть достаточно чтобы начать изучать грабинг - естественно только для благих целей: чтобы продумать, каким образом улучшить шифрования и понять, что читать почту через спутник не стоит, ведь её прочтут ещё несколько сотен тысяч людей.
P.S. Советы по уменьшению обрывов (discontinuity)
Дефрагментируйте винчестер.
Смените приоритет для DVB карточки.
Отключите все посторонние программы и устройства, освободите все прерывания.
Переустановите ОС.
Повторите пункт 2-3.
Если не помогло, то поставьте Линукс.
Перекомпилируйте ядро, чтобы выделить максимум ресурсов для DVB карты.
Уберите все лишние приложения, в том числе графический интерфейс.
Если не помогло, то скорректируйте положение тарелки, либо/и смените её, уровень сигнала желателен 80%, можно 60% (но тогда забудьте об архивах и программах - слишком вероятно, что прокрадется ошибка).
Сдайте свою DVB карту - она неисправна, после всего выше перечисленного разрывов быть не должно совсем.
Моя конфигурация компьютера и OS (ноль разрывов всегда):
Sempron 2500+ (64 bit);
512 Ram;
ATA 100 винт;
SkyStar 2;
Windows XP (32bit);
Остальное не важно. На моем компьютере во время грабинга (без разрывов) можно смотреть фильм, находиться в Интернете, играть по АДСЛ - проблем не возникало.