О наболевшем
Сейчас российский сегмент телеги в очередной раз пытаются атаковать стиллером oblivion. Атака началась вчера, и я потихоньку пытаюсь ее отбить (ибо мне скучно). Если кратко, то жертва устанавливает apk, он отключает сеть антивирусам, загружает второй apk, и уже через него получает доступ к устройству и шлет данные на сервер злоумышленника. Всего в цепочке участвуют 3 независимых провайдера: 1 - хранит ссылку на троян, который качается, 2 - хостит VPS, куда стекаются украденные данные по бинарному протоколу, 3 - хостит домены, на которые идут запросы и переправляются на VPS.
Так вот, за прошедшие сутки удалось связаться с поддержками 1 и 2 - они заблокировали аккаунты и сервера, старые пользователи потенциально в безопасности. Но есть загвоздка: третий провайдер - это reg.ru, который до сих пор игнорирует обращения по инциденту. Отсюда вытекает забавная ситуация: компаниям из США и Великобритании есть дело до утекающих данных россиян, а российским компаниям - нет. За это время атакующий успел сделать переадресацию и поднять сервер с малварью у новых провайдеров (которые уже получили от меня письма), а reg.ru до сих пор не шевелится.
Адреса, куда идут украденные данные:
rocketsmm.ru
cloudmetric.ru
медиатека-ру.рф
облакоплюс.рф
Может потом напишу длиннопост на хабре про эту историю с более техническим разбором механизмов этого вируса, и, надеюсь, со счастливым финалом
Сейчас российский сегмент телеги в очередной раз пытаются атаковать стиллером oblivion. Атака началась вчера, и я потихоньку пытаюсь ее отбить (ибо мне скучно). Если кратко, то жертва устанавливает apk, он отключает сеть антивирусам, загружает второй apk, и уже через него получает доступ к устройству и шлет данные на сервер злоумышленника. Всего в цепочке участвуют 3 независимых провайдера: 1 - хранит ссылку на троян, который качается, 2 - хостит VPS, куда стекаются украденные данные по бинарному протоколу, 3 - хостит домены, на которые идут запросы и переправляются на VPS.
Так вот, за прошедшие сутки удалось связаться с поддержками 1 и 2 - они заблокировали аккаунты и сервера, старые пользователи потенциально в безопасности. Но есть загвоздка: третий провайдер - это reg.ru, который до сих пор игнорирует обращения по инциденту. Отсюда вытекает забавная ситуация: компаниям из США и Великобритании есть дело до утекающих данных россиян, а российским компаниям - нет. За это время атакующий успел сделать переадресацию и поднять сервер с малварью у новых провайдеров (которые уже получили от меня письма), а reg.ru до сих пор не шевелится.
Адреса, куда идут украденные данные:
rocketsmm.ru
cloudmetric.ru
медиатека-ру.рф
облакоплюс.рф
Может потом напишу длиннопост на хабре про эту историю с более техническим разбором механизмов этого вируса, и, надеюсь, со счастливым финалом
1🔥94😢19🙏12😁6💅3🎉2👻1🦄1
Ну, кстати, неиронично хорошая индексация, учитывая лоботомию нынешнего гугла
Forwarded from Love. Death. Transformers.
Буквально лучший поиск, один из самых быстрых дешвле соседей и с тем же качеством
keenable.ai - юзать отсюда и всем по 100к бесплатных поисков на месяц релиза
поддерижите в твиттере запуск
techcrunch
keenable.ai - юзать отсюда и всем по 100к бесплатных поисков на месяц релиза
поддерижите в твиттере запуск
techcrunch
😁10🔥5 4🤡2
Марков цепи пропил
Может потом напишу длиннопост на хабре про эту историю с более техническим разбором механизмов этого вируса, и, надеюсь, со счастливым финалом
Счастливого финала, видимо, не будет. Ни reg.ru, ни касперскому, ни другим компаниям, видимо, нет дела до подобных атак. Но хотя бы докинул немного деталей про то, как этот вирус работает
https://habr.com/ru/articles/1076024/
https://habr.com/ru/articles/1076024/
🔥36😢18 5😁2🙏2
Эй, просыпайся, ну и долго же ты спал. Какие LLM? Какие агенты? Сейчас 2017-й, нас ждет хакатон, где мы представим pose estimation для йоги через openCV, и срубим миллионы венчурных денег
😁79 17🦄8🔥2💅1💊1
Некоторое время аутирую над фингерпринтами, через которые ТСПУ может блокировать кастомные клиенты
Эта мысль пошла от новостей о блокировках snowflake по dtls [тык], и я задался вопросом "как еще go либы могут накладывать явный отпечаток на соединение".
Смысл в том, что dpi смотрит на вещи, которые идут открытым текстом на этапе рукопожатия - tls и dtls ClientHello, quic initial (формально он зашифрован, но ключ там выводится из версии и connection id). То есть де-факто для блокировки достаточно взять ClientHello, посчитать ja3/ja4 и сравнить со списком.
В истории с баном snowflake ровно так и вышло. Он тащит трафик через webrtc, и задумка была спрятаться в общей массе сервисов видеоконференций, но webrtc у него построен на pion, а pion собирает dtls clienthello не как браузер. Браузерный (да и в целом плюсовый) webrtc живет на boringssl, который тасует порядок расширений на каждом соединении. Pion же всегда шлет один и тот же набор в одном и том же порядке, и за счет этого цензор матчил ровно pion-овский dtls.
В общем, я решил поднять тестовый стенд, на котором гонял go-клиент рядом с полноценным хромом, и обнаружил другие потенциальные места, через которые можно отлететь в дальнейшем. Там в целом было много находок вроде того, что у crypto/tls - есть свой clienthello, у quic-go свой initial с go-шным tls, net.Dialer вообще врубает tcp keepalive, и клиент сыпет пустыми ack по таймеру, чего хром не делает. На фоне этого накидал [headless-client] для того чтобы мимикрировать go под хром. Пока либа сыровата, но основные моменты должна покрыть.
На самом деле немного тревожно от других находок, но, думаю, их можно закрыть со временем при должном уровне внимания/ресерча. Однако, боюсь, что на ближайшее время я выпаду из этой сферы по личным причинам (нужно сконцентрировать силы на другие вещи)
Пока что обновил wbp и добавил еще несколько новых фич. Релиз, как водится, [здесь], а обсуждение [тут]
Эта мысль пошла от новостей о блокировках snowflake по dtls [тык], и я задался вопросом "как еще go либы могут накладывать явный отпечаток на соединение".
Смысл в том, что dpi смотрит на вещи, которые идут открытым текстом на этапе рукопожатия - tls и dtls ClientHello, quic initial (формально он зашифрован, но ключ там выводится из версии и connection id). То есть де-факто для блокировки достаточно взять ClientHello, посчитать ja3/ja4 и сравнить со списком.
В истории с баном snowflake ровно так и вышло. Он тащит трафик через webrtc, и задумка была спрятаться в общей массе сервисов видеоконференций, но webrtc у него построен на pion, а pion собирает dtls clienthello не как браузер. Браузерный (да и в целом плюсовый) webrtc живет на boringssl, который тасует порядок расширений на каждом соединении. Pion же всегда шлет один и тот же набор в одном и том же порядке, и за счет этого цензор матчил ровно pion-овский dtls.
В общем, я решил поднять тестовый стенд, на котором гонял go-клиент рядом с полноценным хромом, и обнаружил другие потенциальные места, через которые можно отлететь в дальнейшем. Там в целом было много находок вроде того, что у crypto/tls - есть свой clienthello, у quic-go свой initial с go-шным tls, net.Dialer вообще врубает tcp keepalive, и клиент сыпет пустыми ack по таймеру, чего хром не делает. На фоне этого накидал [headless-client] для того чтобы мимикрировать go под хром. Пока либа сыровата, но основные моменты должна покрыть.
На самом деле немного тревожно от других находок, но, думаю, их можно закрыть со временем при должном уровне внимания/ресерча. Однако, боюсь, что на ближайшее время я выпаду из этой сферы по личным причинам (нужно сконцентрировать силы на другие вещи)
Пока что обновил wbp и добавил еще несколько новых фич. Релиз, как водится, [здесь], а обсуждение [тут]
🔥83🙏7🦄4🎉3💅1💊1 1
"Я устал от корпорейт мемфиса и минималистичного дизайна, скорее бы этот тренд закончился"
😁35 7😢2🙏2🔥1💩1💅1💊1
В общем, забавный факт. Как мы знаем, у кварцевых часов есть погрешность, которой обычно можно пренебречь, но у каждого кристалла она своя.
В операционной системе есть TCP-часы, по которым считают задержку до собеседника, и, в отличие от системных, они должны расти монотонно, иначе получатель начнёт выкидывать свежие пакеты как старые. В 2005-м вышла статья [Remote Physical Device Fingerprinting]. Её авторы показали, что по таймстемпам из TCP можно удалённо посчитать погрешность часов и использовать её как отпечаток машины.
Первым делом они проверили, зависит ли погрешность от того, откуда машина подключена. Для этого взяли ноутбук и подключали его к одному и тому же серверу из разных мест: из дома на обоих побережьях США, из университета, из публичной библиотеки, через wifi, провод и модем. Часы ноутбука отставали примерно на 58 микросекунд за каждую секунду, и во всех местах оценки разошлись меньше чем на микросекунду в секунду. Следующий вопрос был, зависит ли результат от того, кто измеряет. Тот же ноутбук измеряли одновременно с машин по всему миру, от Калифорнии до Кембриджа и Сингапура, и цифры снова сошлись. Выбилась только машина в Индии, до которой пакет шёл туда-обратно больше 300 мс. Оставалось понять, отличаются ли между собой одинаковые компьютеры. В университетском компьютерном классе 38 дней мерили 69 машин с одинаковым железом и одинаковой Windows. У каждой погрешность держалась на своём уровне, и у разных машин она лежала в диапазоне от −6 до +49 микросекунд в секунду. Само по себе это не даёт уникального идентификатора, но вместе с другими признаками, в теории, помогает отслеживать устройство.
В статье есть мысль, которую авторы не довели до конца. Если на погрешность влияет температура, то по ней можно узнать что-то об окружении машины. Проверили это только мимоходом: летом перенесли ноутбук из серверной с кондиционером в комнату без него и разницы почти не увидели.
Стивен Мёрдок из Кембриджа [обнаружил влияние температуры случайно]. Он пытался улучшить результаты той самой статьи 2005-го и вытаскивал время из начальных номеров TCP-соединений, куда Linux подмешивает системные часы с точностью до микросекунды. Точность выросла настолько, что в измерениях проявился странный пик. По времени он примерно совпал с моментом, когда cron раскручивал жёсткий диск на тестовой машине, и, как следствие, появилась новая статья.
В 2006-м Мёрдок опубликовал работу [Hot or Not: Revealing Hidden Services by their Clock Skew], в ней шла речь о скрытых сервисах Tor. Годом раньше уже была атака, где ноду Tor вычисляли по тому, как у неё растёт задержка под нагрузкой, и против неё предложили изоляцию: каждому соединению фиксированная доля ресурсов. Мёрдок заметил, что изоляция не спасает - когда соединение простаивает, процессор меньше работает и остывает, а от температуры меняется частота кварца.
Он проверил это на приватной сети Tor - скрытый сервер два часа нагружали, скачивая с него файл на 10 МБ по анонимному каналу, потом два часа не трогали, а отдельная машина всё это время напрямую собирала с сервера TCP-таймстемпы. Температура менялась всего на 1–1.5 °C, но погрешность часов менялась синхронно с нагрузкой. Изменение было в доли микросекунды в секунду, как раз в тех пределах, которые в 2005-м сочли незначительными. Разглядеть его удалось, потому что Мёрдок вычитал постоянную погрешность и знал, когда именно сервер грелся.
Чтобы убедиться, что дело именно в температуре, машину отдельно грели снаружи, и перепады в 3 °C тоже читались по таймстемпам. Так же читался и суточный ход температуры в комнате. Короче говоря, догадка из статьи 2005-го подтвердилась, и по погрешности стало видно, что происходит вокруг машины.
В 2016-м в Linux [к TCP-таймстемпам стали прибавлять случайное число] в рамках одного соединения, чтобы по ним нельзя было следить за машиной и считать компьютеры за NAT. Разные соединения одной машины так уже не связать, но внутри одного длинного соединения часы идут с той же скоростью, и погрешность [в принципе еще можно посчитать]
В операционной системе есть TCP-часы, по которым считают задержку до собеседника, и, в отличие от системных, они должны расти монотонно, иначе получатель начнёт выкидывать свежие пакеты как старые. В 2005-м вышла статья [Remote Physical Device Fingerprinting]. Её авторы показали, что по таймстемпам из TCP можно удалённо посчитать погрешность часов и использовать её как отпечаток машины.
Первым делом они проверили, зависит ли погрешность от того, откуда машина подключена. Для этого взяли ноутбук и подключали его к одному и тому же серверу из разных мест: из дома на обоих побережьях США, из университета, из публичной библиотеки, через wifi, провод и модем. Часы ноутбука отставали примерно на 58 микросекунд за каждую секунду, и во всех местах оценки разошлись меньше чем на микросекунду в секунду. Следующий вопрос был, зависит ли результат от того, кто измеряет. Тот же ноутбук измеряли одновременно с машин по всему миру, от Калифорнии до Кембриджа и Сингапура, и цифры снова сошлись. Выбилась только машина в Индии, до которой пакет шёл туда-обратно больше 300 мс. Оставалось понять, отличаются ли между собой одинаковые компьютеры. В университетском компьютерном классе 38 дней мерили 69 машин с одинаковым железом и одинаковой Windows. У каждой погрешность держалась на своём уровне, и у разных машин она лежала в диапазоне от −6 до +49 микросекунд в секунду. Само по себе это не даёт уникального идентификатора, но вместе с другими признаками, в теории, помогает отслеживать устройство.
В статье есть мысль, которую авторы не довели до конца. Если на погрешность влияет температура, то по ней можно узнать что-то об окружении машины. Проверили это только мимоходом: летом перенесли ноутбук из серверной с кондиционером в комнату без него и разницы почти не увидели.
Стивен Мёрдок из Кембриджа [обнаружил влияние температуры случайно]. Он пытался улучшить результаты той самой статьи 2005-го и вытаскивал время из начальных номеров TCP-соединений, куда Linux подмешивает системные часы с точностью до микросекунды. Точность выросла настолько, что в измерениях проявился странный пик. По времени он примерно совпал с моментом, когда cron раскручивал жёсткий диск на тестовой машине, и, как следствие, появилась новая статья.
В 2006-м Мёрдок опубликовал работу [Hot or Not: Revealing Hidden Services by their Clock Skew], в ней шла речь о скрытых сервисах Tor. Годом раньше уже была атака, где ноду Tor вычисляли по тому, как у неё растёт задержка под нагрузкой, и против неё предложили изоляцию: каждому соединению фиксированная доля ресурсов. Мёрдок заметил, что изоляция не спасает - когда соединение простаивает, процессор меньше работает и остывает, а от температуры меняется частота кварца.
Он проверил это на приватной сети Tor - скрытый сервер два часа нагружали, скачивая с него файл на 10 МБ по анонимному каналу, потом два часа не трогали, а отдельная машина всё это время напрямую собирала с сервера TCP-таймстемпы. Температура менялась всего на 1–1.5 °C, но погрешность часов менялась синхронно с нагрузкой. Изменение было в доли микросекунды в секунду, как раз в тех пределах, которые в 2005-м сочли незначительными. Разглядеть его удалось, потому что Мёрдок вычитал постоянную погрешность и знал, когда именно сервер грелся.
Чтобы убедиться, что дело именно в температуре, машину отдельно грели снаружи, и перепады в 3 °C тоже читались по таймстемпам. Так же читался и суточный ход температуры в комнате. Короче говоря, догадка из статьи 2005-го подтвердилась, и по погрешности стало видно, что происходит вокруг машины.
В 2016-м в Linux [к TCP-таймстемпам стали прибавлять случайное число] в рамках одного соединения, чтобы по ним нельзя было следить за машиной и считать компьютеры за NAT. Разные соединения одной машины так уже не связать, но внутри одного длинного соединения часы идут с той же скоростью, и погрешность [в принципе еще можно посчитать]
🔥45 14😁4👻2
Марков цепи пропил
В общем, забавный факт. Как мы знаем, у кварцевых часов есть погрешность, которой обычно можно пренебречь, но у каждого кристалла она своя. В операционной системе есть TCP-часы, по которым считают задержку до собеседника, и, в отличие от системных, они должны…
This media is not supported in your browser
VIEW IN TELEGRAM
Ладно, пойду траву потрогаю
🔥33👌4👻4😁1🎉1