воскресенье, 18 мая 2014 г.

"Опасный" Skype


http://www.corporacia.ru/pages/page/show/2427.htm

Skype является одной из самых распространенных программ в мире, основанных на протоколе VoIP. Миллионы компьютеров оснащены этой системой, но большинство пользователей даже не предполагают, какую опасность содержит в себе Skype. В список угроз можно включить следующее: утечка конфиденциальной информации, проникновение "червей", попадание на трафик, отказ от работы с активным дебаггером SoftICE. Так, каким же образом всеми любимая программа Skype может навредить, и как это происходит?

К созданию Skype приложились те же люди, которые разработали первую программу для файлообмена KaZaA. К сожалению, Skype унаследовал худшие черты своего предшественника: VoIP-программа работает как самоорганизующаяся распределенная пиринговая сеть (P2P). Skype представляет собой эдакий "черный ящик", в котором есть многоуровневая система шифрования. Также система использует антиотладочные приемы исполняемого файла, что, в свою очередь, предоставляет возможность скачивания с компьютера конфиденциальной информации и передачи ее в сеть, используя закрытый протокол. Упомянутый протокол имеет возможность обходить межсетевые экраны, а также ловко маскирует свой трафик, что препятствует его блокированию. Все эти "супер-способности" Skype делают его отличным разносчиком вирусов, червей и дронов, которые основывают внутри сети Skype свои персональные распределенные сети. Вдобавок к этому, Skype достаточно нагло использует ресурсы узла пользователя, напрягая центральный процессор и формируя мощный поток трафика, который редко, а в особенности в России, бывает бесплатным. Получается, что звонки являются бесплатными весьма условно.

Программа Skype уже давно стала объектом исследований, и многие специалисты пришли к одному и тому же выводу: Skype – это очень хитрая программа, разработанная талантливыми людьми и соответствующая стилю Black Magic Art. Эта система не боится использования не совсем честных трюков, которые порождают разного рода угрозы.

Исполняемый файл Skype

skypeАнализируя программу, специалисты поставили следующий диагноз: исполняемый файл Skype – это одно из лучших "творений" хакерского искусства. Он оснащен огромным количеством интересных, а также сильных защитных механизмов. Для того чтобы оказать противодействие им, необходимо: а) мощные инструментальные средства типа отладчиков, дизассемблеров, дамперов и т.д.; б) знания и навыки; в) много свободного времени.

Бинарный файл зашифрован от начала и до конца, а расшифровка его происходит динамически в процессе загрузки в память. При этом сбросить дамп практически невозможно из-за того, что стартовый код очищается, вследствие чего получается файл с расширением .exe, который невозможно запустить. В оригинальной таблице импорта нет никаких интересных деталей, а функции интерфейса программирования приложений подключаются уже в течение процесса распаковки. Целостность кода проверяется в разных местах в произвольном порядке (в большинстве случаев - при входящих звонках), поэтому процесс поиска защитных процедур составляет весьма незаурядную задачу. Вдобавок к этому они имеют в основе криптографические RSA-сигнатуры и оснащены полиморфными генераторами, которые переставляют инструкции ADD, SUB, XOR и др., таким образом, перемешивая их с "левыми" машинными командами.

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

Следует отметить, что Skype распознает SoftICE даже когда установлен IceExt, при этом не запускаясь. В этом случае можно воспользоваться другими инструментами подобного рода: The Rasta Ring 0 Debugger (Skype-клиент не может обнаружить этот отладчик, работающий на уровне ядра) или OllyDbg(отладчик прикладного уровня). Не стоит забывать о том, что Skype запросто может обнаружить программные точки останова (однобайтовая машинная инструкция с кодом операции CCh, которая записывается поверх отлаживаемого кода). Для устранения пошаговой трассировки Skype производит замеры времени выполнения определенных участков кода, требующих полноценные эмуляторы компьютера с интегрированным отладчиком (например, BOCHS).

Когда исполняемый файл "расчехлен", все проверки позади, защита вычисляет контрольную сумму, преобразуя ее в указатель, по которому передается управление для запуска Skype.

В связи с тем, что Skype "блюдет" свою целость, исправление jnz на jmp short действует только до первого входящего звонка, после чего Skype падает и вернуться обратно уже не может. Специально для таких хитроумных случаев разработали технику онлайн-патча, при которой программа исправляется именно в оперативной памяти, а после того, как проверка на наличие SoftICE успешно пройдена, происходит откат для того, чтобы не волновать процедуру проверки целости.

Структура Skype-сети

skypeВ структуре Skype-сети можно обнаружить: обычные узлы (SC – Skype Client) и супер-узлы (SN – Super Node). Узел, имеющий публичный IP-адрес и обладающий довольно широким каналом, автоматически переходит в разряд супер-узлов и служит для прогонки трафика узлов SC, содействуя им в преодолении защиты (например, преодоление межсетевых экранов или трансляторов сетевых адресов) и одинаково распределяя нагрузку между хостами. Эта самоорганизующаяся распределенная децентрализованная пиринговая сеть обладает централизованным элементом - Skype-login-сервером, который является ответственным за авторизацию Skype-клиентов и дает гарантию уникальности позывных для этой распределенной сети.

Связь между узлами происходит через цепочку супер-узлов. Серверов в широком смысле этого слова в Skype нет. Каждый узел – это потенциальный сервер, которым он автоматически становится, если имеются необходимые системные ресурсы (объем оперативной памяти, быстродействие процессора и др).

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

Как Skype борется с межсетевыми экранами

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

skypeПри запуске Skype-клиента открываются TCP- и UDP-порты, номера которым присваиваются при установке случайным образом и могут измениться в любой момент через диалог конфигурации, а этот факт затрудняет блокирование Skype-трафика на межсетевом экране. Помимо этого, открываются порты 80 (HTTP) и 443, но они не составляют особую важность, поэтому их блокировка никак не отразится на работе программы.

Сложность ситуации заключается в том, что Skype шифрует трафик с помощью современных технологий запутывания кода, которые препятствуют отбору постоянных сигнатур в полях заголовках. Алгоритмы шифрования модифицируются от версии к версии, этот случай усложняется еще и тем, что в разных странах мира есть специальные версии с определенной длиной ключа или выбранными криптографическим алгоритмами, которые соответствуют законодательству. В целом механизм шифрования выглядит следующим образом:

Skype-клиенты очень осторожно относятся к брандмауэрам и трансляторам сетевых адресов, проникая сквозь них с помощью протоколов STUN и TURN. Это подтверждает, что юридически Skype действует вполне законно.

У протокола STUN, несмотря на его безупречность, есть слабые места. Он не работает в том случае, если есть брандмауэр, преграждающий путь во внешнюю сеть и режущий весь UDP, и если имеется симметричный транслятор сетевых адресов.

Если UDP закрыт, то брандмауэр невозможно открыть. А NAT – это обыкновенный симметричный транслятор, который требует совпадения целевого IP-адреса и порта транслируемого пакета с внешним IP-адресом и портом. Если в процессе отправки пакетов с одинаковыми исходными IP-адресами и портами в разные направления будет использоваться один и тот же узел, то NAT будет вынужден переводить их на другие порты. Следуя из этого, для того, чтобы отправить UDP-пакет внутреннему узлу, внешний узел первоначально должен принять запрос от внутреннего узла. Самостоятельно запустить соединение внешний узел не может, поскольку NAT не имеет понятия, на какой внутренний IP и порт нужно передавать появившийся из ниоткуда UDP-пакет.

Появившуюся проблему можно решить с помощью протокола TURN. Этот протокол повышает латентность и возможность потери большого количества UDP-пакетов, а это пагубно отражается на качестве и устойчивости связи.

skypeВ этом случае администраторы закрывают UDP-трафик. Skype, тем временем, автоматически подключается на новый TCP. Администратор, конечно, может закрыть все неиспользуемые порты, но не тут-то было, ведь таких портов нет. Соединяясь с удаленным узлом, операционная система присваивает клиенту любой свободный TCP/UDP-порт, который будет использоваться для получения пакетов. В случае если закрыть все порты, установить TCP/UDP-соединения окажется невозможным.

Выход из этой ситуации только один – отключить прямой доступ в Интернет и заставить всех пользователей заходить через proxy-сервер. Хотя и эти меры окажутся бесполезными: Skype "ознакомится" с конфигурацией браузера и будет использовать proxy-сервер как свой родной.

Блокирование трафика Skype


Разработчики Skype предупреждают администраторов, что любые попытки выявления и блокирования его трафика окажутся безуспешными, так как распознавание Skype-трафика очень сложный процесс, а его блокировка возможна только по зашифрованному и не содержащему никаких логичных последовательностей содержимому. Но, в связи с тем, что разработчики Skype пропустили некоторые моменты, есть и незашифрованная часть трафика. Анализатор трафика может выявить UDP-соединение, использующее открытый протокол с целью получения публичных IP-адресов супер-узлов, а RC4-поток дважды используется TCP-соединением, что предоставляет возможность расшифровать часть постоянных полей заголовков протокола Skype и вычислить 10 первых байт ключа путем расшифровки части постоянных полей заголовков Skype-протокола. К сожалению, на данный момент не существует полностью готового блокиратора Skype-трафика.

UDP-трафик намного проще распознаваем, и его легче заблокировать. Двухбайтовый идентификационный номер (ID) и тип пакета (payload) идут в начале каждого фрейма. В UDP-пакете есть 39-байтный NACK-пакет, который пропущен через программу, производящую обфускацию, и содержит в себе данные идентификатора пакета, номера функции (func), который пропущен через обфускатор, IP отправителя и IP получателя.

Из этого следует, что для блокировки UDP-трафика необходимо добавить в брандмауэр следующее правило:
skype
Блокировка UDP-трафика ничем не поможет, ведь Skype автоматически переходит на TCP, но и в этом случае можно кое-что сделать. Заголовки входящих IP-пакетов, которые связаны с протоколом обмена SSL-ключами, имеют идентификатор 170301h, который возвращается обратно на запрос с ID 160301h. Поставить в тупик и вывести из строя Skype можно путем блокировки входящих пакетов, в заголовках которых содержится 170301h.

Для распознавания и блокирования Skype-трафика подойдут и другие средства, но все они малоэффективны. Ведь если появляется реальный способ заблокировать трафик, разработчики Skype сразу же на это реагируют, и в новой версии трафик возвращается!

Вирусная опасность

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

skypeМожет быть, Skype и хитрая программа, но все равно при ее разработке были допущены ошибки, которыми могут воспользоваться хакеры для организации вирусных атак, как это было сделано в 2005 году. Хакер мог овладеть любым Skype-узлом благодаря возможности передачи управления на shell-код. Тогда эту проблему решили, но, как известно, беда не приходит одна: если появилась одна ошибка, значит, будет другая, третья и т.д.

Например, открытость API представляет собой некоторую опасность. Skype может интегрироваться с любой другой прикладной программой, при этом появляется предупреждение об использовании Skype API. Большинство пользователей, не обращая внимания на это предупреждения, разрешают использование, а, собственно, что они этим добиваются?

Для использования Skype API, вирусная программа должна быть на компьютере. Ранее для этого использовалась электронная почта. Сейчас сам Skype может рассылать вирусы. Единственным средством защиты в этой борьбе может стать локальный антивирус, но и он не всегда сможет помочь: даже свежая антивирусная программа не сможет распознать неизвестную зловредную атаку.

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

Одна из самых популярных программ Skype ставит перед специалистами одинакового рода вопросы: почему бесплатная программа зажимает исходные тексты и использует закрытый протокол? Почему у нее столь крепкая защита, которая наносит урон производительность и съедает огромное количество памяти? Все эти вопросы, к сожалению, являются риторическими, но ведут к одной и той же мысли: все это непросто так!

среда, 14 мая 2014 г.

Вторая империалистическая

Вторая империалистическая

Александр Скобов, 12.05.2014

http://mirror2.graniru.info/opinion/skobov/m.229048.html

Вправе ли правительственная армия вести боевые действия против вооруженных мятежников? С формально-юридической точки зрения тут все просто. Если мятежник носит опознавательные знаки своего "незаконного формирования", он может претендовать на статус комбатанта. Если не носит, он просто бандит. В обоих случаях для правительственной армии он вооруженный противник, а значит – легитимная цель.

Однако поскольку речь идет о пролитии человеческой крови, нормальный человек не может не задумываться над тем, как его избежать. Он не может не принимать во внимание причины, побудившие мятежников взяться за оружие. И он неизбежно задается вопросом: а может быть, требования мятежников справедливы и им надо просто уступить? Есть высшая справедливость, которая выше формального закона. И если ради торжества формального закона требуется уничтожить изрядную часть населения мятежной территории, то, может быть, к черту такой закон?

И когда кремлевская пропаганда кричит о доведенных до отчаяния жителях юго-востока Украины, нормальный человек задается вопросом: чем и когда "кровавая киевская хунта" успела довести жителей юго-востока до отчаяния? Неужели мятежники вынуждены были взяться за оружие, потому что их лишили возможности добиваться налоговой автономии при помощи митингов и шествий? Каратели "кровавой хунты" разогнали хоть один "антикиевский" митинг хоть в одном городе?

"Кровавые палачи киевской хунты" не разогнали "мирных протестующих" даже тогда, когда те пришли в городские и областные администрации с битами и камнями, когда выбили там стекла, сломали мебель и растащили оргтехнику. Между тем "антимайдановцы" делали ставку на насилие изначально. Еще до свержения Януковича они формировали группы "титушек", нападавших на сторонников Майдана. Они целенаправленно стремились отрезать пути к разрешению политических конфликтов иными средствами.

Именно поэтому захваты и погромы госучреждений начались на востоке Украины с первых же митингов против новой киевской власти. Поначалу дело пытались представить так, что это выплеснулись претензии, накопившиеся у населения к жуликам и ворам в местной власти. Но именно в аппарате местной власти, сформированной еще под Януковича, погромщики нашли самую надежную политическую крышу.

Тем не менее госучреждения захватывали, громили, грабили. Потом, не зная, что с ними делать, уходили. Потом захватывали снова. Казалось бы, зачем вновь и вновь штурмовать административные здания, которые никто не защищал, когда местные власти готовы были уступать всем требованиям "восставших" и даже поддержать их? Зачем было переходить на автоматы и пулеметы, когда для любого захвата оказывалось достаточно обычных палок? На этот вопрос может быть только один рациональный ответ: руководившие "протестным движением" группы сознательно провоцировали Киев на применение оружия. Целенаправленно создавали атмосферу взаимной ненависти, в которой физические расправы над оппонентами становятся нормой жизни.

Именно ненавистью вдохновляется "пророссийское" движение на востоке Украины. В "майданном" движении участвуют отдельные русофобы. Они довольно крикливы в интернете, но в целом это движение никогда не было антирусским. А вот пророссийское движение, идеологией которого стал "рашизм", изначально антиукраинское. Для него не только Украина – незаконное государство, но и украинцы – незаконная нация, незаконно отпочковавшаяся от великорусского народа. Любое "украинство" вызывает у рашиста ненависть. И эта ненависть выплескивается не только в интернет, но и на улицы.

Политическое насилие, от нападений на митинги оппонентов до разгрома неугодных газет, - это для рашиста норма государственной жизни. Так же, как и "референдумы по-баркашовски". Любое голосование – это лишь "форма легитимизации реально сложившихся властных отношений". Но главная задача, которую пытаются решить мятежники, провоцируя кровопролитие и разыгрывая очередной фарс с "референдумом", - создать предлог для полномасштабного российского вторжения. Они хорошо знают, что без него им не удержать захваченную власть ни конституционными средствами, ни вооруженной силой. Потому что они представляют заведомое меньшинство. Активное, очень агрессивное, но все-таки меньшинство. И украинская армия не только имеет право, но и обязана защищать другую часть населения от террора со стороны вооруженного меньшинства.
Фактически это меньшинство выступает предательской пятой колонной, открывающей ворота вражеской армии. Оно выступает авангардом этой армии в развязываемой кремлевским Гитлером мировой войне. Войне за разрушение всей нарабатывавшейся столетиями системы международного права, за силовую перекройку границ и возвращение имперской сферы влияния.

Раньше каждая империя стремилась захватить как можно больше колоний. Ради престижа и статуса. Потом напрямую владеть захваченным было признано нецивилизованным. Колонии частично отпустили, а империи стали выстраивать себе сферы влияния: каждая стремилась объявить определенную территорию вместе с расположенными на ней государствами и живущими на ней народами зоной своих исключительных интересов, которой она может распоряжаться. Куда она может вводить войска, где она может менять правительства и определять их политику. Где она может себя вести как у себя дома. И где она может позволить себе то, чего не может у себя дома.

Формирование таких зон интересов обычно объясняют соперничеством держав за ресурсы. Но не все сводится к этому. СССР содержал свою сферу влияния в явный убыток себе. Мотивы были чисто идеологические, то есть те же престижные. Однако со времен американского президента Вудро Вильсона пробивала себе дорогу иная концепция международных отношений: концепция целостного мира, в котором все страны и народы равны и суверенны, действуют по единым, установленным сообща правилам, а прямое военное вмешательство в дела какой-либо страны допускается лишь в ситуациях, международно признанных экстремальными.

После распада советской империи и ее сферы влияния казалось, что именно эта модель мироустройства скоро восторжествует. Сегодня Путин начал войну за возвращение мира к состоянию, когда сильные державы в остром соперничестве друг с другом делят народы на зоны своего исключительного доминирования. Подобно тому, как мафиозные группировки делят "по понятиям" территории. Именно за такой миропорядок сражаются сегодня мятежники Донецкой и Луганской областей. И украинская армия имеет право оказывать вооруженное сопротивление возвращению такого миропорядка.

В основе разбуженного путинским режимом реваншизма лежит неутолимая жажда иметь зону собственного исключительного доминирования. Неотъемлемая черта русского традиционализма – внутреннее вертухайство, стремление "строить" других. Часто без всякой выгоды для себя. Бескорыстно. Из любви к искусству. При всей своей фальшивой православности, рашизм – это идолопоклоннический культ, предметом поклонения в котором является сапог. Тот самый оруэлловский сапог, наступающий на лицо врага.

Рашисты обижаются на своих оппонентов (рашизм – это вообще идеология вечно на всех обиженных) за то, что те отказывают им в праве стремиться к доминированию. Ведь все в мире к нему стремятся. И в борьбе за него делают другим подлости. Только Россия, в отличие от бездуховного Запада, даже эти подлости делает благородно и честно. Российская пропаганда врет, не пытаясь замаскировать свое вранье видимостью правдоподобия. Россия открыто посылает в свою "зону интересов" зеленых человечков и раздает местным мятежникам новейшее оружие, в то время как лицемерный Запад коварно раздает на Майдане пирожки.

Борьба за доминирование действительно существует. И человечество потеряло многие миллионы жизней, прежде чем были признаны правила, ограничивающие методы этой борьбы раздачей пирожков на Майдане. Путин сталкивает нас назад, в тот мир, где раздают автоматы и гранатометы. Именно за такой мир сражаются донбассовские мятежники. Героически-романтический мир автоматов против убогого, мещанского, буржуазного мира пирожков. Можно и так сказать. А можно и по-другому. Мир варварства против мира цивилизации. И украинская армия вправе защищать мир цивилизации от наступающего на нее варварства.
Когда рашисты причитают о том, что украинская армия вот-вот начнет сносить с лица земли мятежные города, возникает ощущение, что у них текут слюнки. Они так и ждут, что Киев поступит так, как не задумываясь поступил бы Путин. Как он и поступал, когда давил право на самоопределение Чечни. Но Киев почему-то этого не делает, и рашист объясняет все отсутствием надежных войск и страхом перед российским вторжением. У него в голове не укладывается, что у людей просто может быть аллергия на кровь. Что и политиков, и военных Украины останавливает возможность массовой гибели мирных граждан. Даже тех, которые поддерживают мятежников и готовы ради них ложиться под танки и лезть на пулеметы.
На днях группа российских правозащитников призвала к диалогу между Киевом и мятежниками с перспективой создания миротворческих сил ООН. Возможно, это и выход. Но только тогда международных миротворцев надо вводить в первую очередь в Крым. При безусловной отмене незаконных решений российского "парламента" о его аннексии.
Александр Скобов, 12.05.2014