Too Long, Did Read
1.08K subscribers
352 photos
5 videos
136 links
Привет!
Я - Тим: продакт, СТО-самоучка и стартапер (лол).

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

А еще я их пишу: https://timsh.org
Download Telegram
Куда ходят мобильные приложения?

https://timsh.org/everyone-knows-your-location-part-2-try-it-yourself/

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

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

Быть потерпевшим я как-то не захотел — еще обернется какой-нибудь проблемой, ну вы понимаете.
Но я предложил вместо этого помочь им засетапить такой эксперимент с несколькими людьми и приложениями сразу - такие дела (видимо) работают лучше, чем 1 человек vs 1 приложение. Им идея понравилась, и я ушел делать инструкцию.

Посмотрел на то, как я делал все в прошлый раз (руками просматривал сотни запросов в Charles Proxy), и решил усовершенствовать этот процесс, чтобы его было легко повторить и как-нибудь отмасштабировать.
Пересел на опенсорсный mitmproxy, написал гайд по нему и завел jupyter notebook с кодом, который фильтрует файл с сырыми запросами по ключевым словам и возвращает совпадения в виде таблички.
Гайд + код тут: https://github.com/tim-sha256/analyse-ad-traffic/

Изначально я сделал эту инструкцию для них, а потом подумал: почему бы мне не попробовать провести такой краудсорсинговый эксперимент и предложить людям потратить ~полчаса и проверить какое-нибудь приложение.
Например, из того самого утекшего списка Gravy Analytics — там приложений больше 2к, хватит на всех.
По моим наблюдениям, некоторые из разработчиков приложений из списка “что-то сделали” — те запросы, которые я видел на момент написания первой статьи, частично пропали или стали обфусцированными.

В общем!
Если захотите тоже поучаствовать - проходите гайд и заполняйте гугл форму, если что-то найдете.
Да и статью посмотрите - там и картинки прикольные, и даже зачин на продолжение есть.
1🔥18🕊3
Что таит гит?

https://medium.com/@sharon.brizinov/how-i-made-64k-from-deleted-files-a-bug-bounty-story-c5bd3a6f5f9b

Прочитал супер крутую историю одного bug bounty hunter'a про почти полностью автоматизированный пайплайн, который позволил ему просканировать git-репозитории кучи компаний и найти в них секреты == получить вознаграждение за найденные уязвимости.

Всего он настриг $64k с помощью своего инструмента.

Автор очень подробно рассказывает про то, как устроено хранение файлов, коммитов и метаданных в гите - советую почитать!
Перескажу только самый сок, который и позволил ему получить столько денег: что происходит с файлом, когда его удаляют из гита [из текущей версии / из ветки ...]

The juice — so how do we get all deleted files?:

- Restored deleted files by diffing parent-child commits.
- Unpack all .pack files using git unpack-objects < .git/objects/pack/pack-<SHA>.pack
- Find dangling objects using git fsck — full — unreachable — dangling


Как работает git rm?

Дело в том, что история гита неизменяема, — каждый коммит содержит в себе полный слепок* изменений файловой системы на момент создания, включая референсы — ссылки на файлы, в том числе и удаленные.
Даже те удаленные файлы, на которые референсов вообще нет, остаются в служебных файлах гита на 2 недели.

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

Помимо этого, бывают кейсы, когда в .gitignore забывают добавить всякие служебные директории или файлы, например .pyc файлы, в которых в перемешку с бинарным кодом могут остаться секреты.


Чтобы по-настоящему очистить историю репозитория или удалить оттуда файл, нужно использовать специальные тулзы вроде git filter-branchgit-filter-repo, либо вручную rebas`ить и прунить мусор - задача, судя по всему, нетривиальная.

Процесс поиска секретов

1. Автор попарсил открытые списки bug bounty програм и составил список из кучи компаний
2. Для каждой компании нашел +- все ее публичные репозитории
3. С помощью алгоритма из цитаты выше восстановил все удаленные файлы
4. С помощью TruffleHog прошелся по каждому файлу и поискал там секреты, а также проверил, настоящие ли они и активны ли до сих пор (за истекшие ключи денег не платят)
5. Настроил автоматические уведомления о найденных живых ключах в тг

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

Самые "дорогие" ключи, кстати, это GCP (Google Cloud Platform) и продовые AWS-токены - найдя такой ключ, можно сделать с инфраструктурой компании много всего (если не вообще все).
За каждый найденный ключ из этой категории, со слов автора, заплатили $5k–$15k.

Мораль

1. Автоматические тулзы для поиска уязвимостей, секретов или незакрытых эндпоинтов вовсю применяются в реальном мире.
Аргументы "да кто меня будет взламывать" медленно теряют свой смысл (особенно, если вам / компании есть, что терять)
2. Будьте осторожны с вашими репозиториями: все, что вы туда закоммитите, останется там +- навсегда, если не проводить гигиеническую чистку.

Ну и еще добавлю, что недавно я тоже нашел AWS-секрет в коде одного "vibecoded" стартапа - мне даже не пришлось никакие удаленные файлы восстанавливать )

Думаю заняться созданием похожего полуавтоматического пайплайна, но с другой аудиторией и немного другими классами уязвимостей.
Как будут какие-то результаты - расскажу!
3🔥20🤡1🥴1
Рикролл в каше

https://www.planujemywesele.pl/sxg-tests/offline-abuse

Увидел тут крайне забавную демонстрацию того, как работают современные браузеры и кеширование в них.

В двух словах:
1. Открываешь инкогнито
2. Гуглишь что сказали
3. Ждешь (там просят сделать несколько действий, но смысл только в ожидании)
4. Вырубаешь интернет и тыкаешь на ссылку из поиска
5. Открывается типичная хромовская страница с динозавром, но…
Читать продолжение в источнике))

Если вам неохота проходить демо самостоятельно или хочется узнать подробнее - вот статья с описанием и видео-демонстрацией.

На таком забавном примере автор демонстрирует, как работает префетчинг страниц в гугле.
Если не вдаваться в подробности: топ-2 сайта из поисковой выдачи + любой сайт из выдачи, на который ты наводишь мышкой на компе, в виде их голого HTML автоматически префетчатся (кешируются) браузером, и ты можешь просмотреть голый HTML сайтов даже в авиарежиме.

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

А как это работает?
Оказывается, существует такая не до конца допиленная технология под названием Signed Exchange, которая позволяет гуглу (и не только) префетчить страницу в SXG-формате - насколько я смог понять, это архив, подписанный цифровой подписью.

The Googlebot visits the website. It tells the website it understands the SXG format by setting the appropriate Accept HTTP header.
The website serves the SXG version of a page instead of a raw HTML. SXG encapsulates HTML and is signed with a website private key.


Подробнее можно почитать тут (официальная дока) и тут (статья автора демо на тему)

Если включить такую штуку (можно, например, в Cloudflare ее включить), то можно добиться того, что когда пользователь повлипал в выдачу несколько секунд, а затем ткнул на ваш сайт, он загрузится почти мгновенно со всеми потрохами, картинками и стилями.

Круто ли это?

Демонстрация точно прикольная. Еще и кликбейтная: “как авиарежим обманывает нас” и все такое.
А вот сама технология...

Автор сам приводит в статье про SXG кучу нюансов - если честно, я не понимаю, нахрена он продолжил этим заниматься (он сделал на своем “настоящем” сайте SXG), зная все это:

- Ты больше не владелец того, куда переходит пользователь. “оно” лежит на каком-то CDNе в уже запакованном виде - это дает сильно меньше контроля, чем закешенная HTMLка, которая додергивает стили, скрипты и картинки (хотя и это не тру контроль, конечно).
Больше того, гугл позволяет purge`ить такой кеш только асинхронно (очень медленно), и по одному урлу за раз.

- Server-side аналитика и любая персонализация сайта через бэк перестает работать.
Хочешь что-то считать или персонализировать - засовывай все это в client-side js.

Короче, я бы это делать не стал.

На моем опыте даже обычное кеширование js-файлов приводит к куче проблем: представьте себе web-viewer для 3D моделей, который после починки бага на проде не обновляется еще час - это реальный кейс из прошлого.
Я молчу про Cloudflare`овские прокси и CDN, из-за которых периодически в некоторых странах на ваш сайт тупо невозможно попасть - со мной такое было бувально месяц назад.

Плюс я считаю всю тему “самый быстрозагружающийся сайт на диком западе” довольно дурацкой - в реальности пользователю вашего сайта про свадьбы или кибербезопасность (я не говорю про уровень бигтеха, у которого свой CDN с блекджеком) наплевать, загружается он 100 мс или 1 секунду.

В то же время сайты систематически “жирнеют” год за годом, обрастая кучей ненужных вещей (ой, а может еще тут анимация будет?).
Удивительно, но yet another vibecoded лендингу на next.js сначала нужны 400 node-modules для сборки, а потом 30 js-скриптов для отображения формы обратной связи - а без этого никак :(

Зато можно потом это упаковать в SXG - и проблема решена!
👍13🌭4
Как закирпичить iPhone одной строчкой кода

https://rambo.codes/posts/2025-04-24-how-a-single-line-of-code-could-brick-your-iphone

Супер крутая история: разработчик нашел уязвимость в iOS, которая позволяет "закирпичить" айфон буквально одной строчкой кода.

Все началось с darwin-уведомлений - специальных уведомлений для общения между приложениями.
Автор обнаружил, что приложениям не нужны особые привилегии ни для приема, ни для отправки сообщений.
Больше того, список уведомлений, которые слушает то или иное приложение (в тч - служебное) - открытый, и не существует механизма для верификации отправителя.

В двух словах: можно посмотреть, какие действия в приложениях привязаны к каким ручкам (слушалкам уведомлений), а дальше свободно дергать эти ручки изнутри другого приложения.

Уже на этом этапе автор сделал PoC-приложение "EvelNotify", в котором всего 1 экран с кнопками, которые умеют:

- Cause the “liquid detection” icon to show up in the status bar
- Trigger the Display Port connection status to show up in the Dynamic Island
- Block system-wide gestures for pulling down Control Center, Notification Center, and Lock Screen
- Force the system to disregard Wi-Fi and use the cellular connection instead
- Lock the screen
- Trigger a “data transfer in progress” UI that prevented the device from being used until the user cancelled it
- Simulate the device entering and leaving Find My’s “Lost Mode”, triggering an Apple ID password dialog prompt to re-enable Apple Pay
- Trigger device entering a “restore in progress” mode

Уже жестко! В статье есть демо-видео - советую посмотреть.
Автор решил остановиться подробнее на последнем действии: ввести айфон в состояние “restore in progress”.
Именно это и делается одной строчкой:
notify_post("com.apple.MobileSync.BackupAgent.RestoreStarted")

Restore in progress это состояние, в которое телефон переводится на время заливания бэкапа - айфон в этот момент не реагирует ни на какие действия, если не выключить его принудительно.

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

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

Тут начинается самое интересное.

Хорошо, что у приложений в iOS есть виджеты, которые можно добавить на Home Screen - например, у календаря, погоды или почты.

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

Автор добавил в свое приложение все возможные виды виджетов, чтобы повысить вероятность того, что iOS будет "будить" приложение как можно чаще.
При установке нового приложения с доступными виджетами iOS сразу запускает и обновляет виджет, чтобы можно было предложить пользователю добавить "готовый" виджет.

И вуаля:
1. Скачиваем приложение, в котором есть 1 строчка
2. Так как в приложении есть виджеты, iOs автоматически запускает код виджета.
3. Виджет посылает уведомление "restore in progress", а затем крашится.
4. Телефон впадает в фэйковую "restore in progress" кому, и оставляет пользователю только один вариант - перезагрузиться.
5. После перезагрузки iOS автоматически обновляет соджержимое крашнушегося виджета...

И так вечно.
Лечится только полным затиранием телефона до заводских настроек по проводу :)

Уязвимость с тех пор пофиксили - теперь “важные” уведомления могут слать только авторизованные приложения.
А автору заплатили $17.500 - на мой взгляд, несоразмерно крутости бага.
1👍22🤡16🤯8🔥7
Как подготовить попугая к удаленке

https://www.smithsonianmag.com/smart-news/scientists-taught-pet-parrots-to-video-call-each-other-and-the-birds-loved-it-180982041/

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

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

Так вот, ученые отобрали 18 попугаев (хотя до конца эксперимента дошли только 15…) и научили их выбирать попугая, которому они хотят позвонить, и нажимать на его изображение на планшете - конечно, под контролем владельцев.

За 2 недели попугаи совершили 147 звонков друг другу, владельцы записали все это на видео, и ученые проанализировали поведение попугаев.

Вот самые интересные выводы:
- у попугаев был лимит по времени на звонок, и в абсолютном большинстве случаев они использовали все доступное им время
- чаще других, попугаи звонили своим самым общительным сородичам (тем, кто сам больше всех инициировал звонки)
- попугаи учили друг друга новых движениям, песням и словам
- некоторые общались между собой на английском, составляя вполне осмысленные (но простые, конечно) диалоги

Понятно, что такие звонки не заменяют попугаям реального общения, но это точно лучше, чем ничего, - тем более, что устраивать ирл встречи попугаям довольно трудно и даже опасно (из-за какого-то птичьего вируса).

Меня очень радуют и вдохновляют подобные исследования - про них хочется читать гораздо больше, чем про MCP и AI agents :)
Про ученых-попугаеведов и их работу остается сказать только одно - exceptional use of free will
🕊41👍18🔥6🤔1🤡1
Теория игр в картинках, играх и комиксах

https://ncase.me/trust/

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

Я примерно на 3ем курсе проходил все это в универе, но тем не менее в 3 из 5 “квизов” (там нужно выбрать, какая поведенческая модель выиграет) выбрал неправильно - это вообще не интуитивно, пока не увидишь решение :)

Вся демонстрация с помощью теории игр поясняет, как формируется доверие в обществе, почему мы никому не доверяем, и всякое такое.
В общем, если вы никогда или давно не смотрели ничего по теме - вам точно будет интересно.

Мне очень понравилось, как сделан интерфейс “игры” - все проработано до малейших деталей и очень мило выглядит, - поэтому я пошел смотреть, что еще делал автор игры. И мгновенно влюбился!

На сайте Nicky https://ncase.me/ я нашел его недавний проект про AI safety - я последнее время этим очень интересуюсь, как-нибудь напишу сюда длиннопост-конспект прочитанного.

Вот ссылка на проект (интерактивный блог): aisafety.dance

Во-первых, Ник очень приятно и понятно пишет, с кучей ссылок и без резких высказываний.
Если хотите разобраться в азах вопроса регуляции и рисков, связанных с ИИ - очень рекомендую!
Все 5 частей читаются на одном дыхании.

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

По уровню фронтового “задротства” напомнило eieio.games - но эти мне наверное нравятся даже больше, тк они образовательные и более “осмысленные”.
Вспомнил свой первый эксперимент с образовательным сайтиком про Proof of Stake и подумал, что если соберусь делать какой-то новый, попробую уделить больше внимания оформлению и стилизации.
🔥22👍4🤡1🥴1
Вайблендинг

Недавно мои друзья решили открыть свое агентсво по разработке, и я вызвался помочь им сделать лендинг чисто курсорингом.
Я собрал лендинг (от готовых макетов в фигме до деплоя) за ~6 часов, и больше половины из этого ушло на нюансы.

Хочу поделиться своим подходом, проблемами-решениями, и дать пару советов всем тем, кто собирается делать то же самое.

Зачем это мне?

Я за жизнь сделал лендингов 10-15, и каждый раз я выбирал между доступными nocode инструментами - Tilda, Webflow и прочими.
И я их все ненавижу - из-за ограничений, платных фичей, и сложности редактирования уже готового (особенно, сделанного другим человеком) проекта.
Когда я последний раз мучился с лендингом Track Pump я сказал себе: в следующий раз я не буду собирать лендинг в конструкторе.

И так, нам понадобятся:

1. Макеты в фигме

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

Когда вы выбираете дизайнера, который будет делать макеты - попросите у него ссылку на полный проект любого из его кейсов.

Если там 2 компонента, все фреймы называются Frame 2398319, и все задано НЕ через стили - это ред флаг, не тратьте время и деньги, даже если сам дизайн невероятно красивый.

2. Figma Pro + figma-to-json

К сожалению, Dev Mode в фигме, который был нужен для моего подхода, есть только в платных версиях.

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

Возвращаясь к качеству дизайна: чем меньше структуры, переиспользуемых элементов и стилей, а также нормальных названий есть в макете, тем сложнее будет любой ЛЛМке (и вам) разобраться, что куда.

Также, если вместо auto-layout и relative позиционирования элементов дизайнер везде “нахардкодил” все размеры в пикселях, то придется выгружать такие json’ы для каждого из нужных разрешений экрана, тк дизайн по умолчанию будет не адаптивный. 

У меня в итоге вышло 8 json’ов: 5 на разные разрешения экрана по 2000+ строк и 3 под компоненты (форму, футер, хедер) по 200-600 строк.

3. Cursor + Astro (или реакт) + терпение

В качестве фреймворка я выбрал Astro, а не традиционный реакт, потому что устал от реакта + почитал доку, и мне очень понравилось, как астро устроен. 

Дальше возникла проблема: большинство ллмок не способны сожрать за раз 10к+ строк кода, да еще и “понять”, что там описаны одни и те же элементы для разных разрешений экрана.

Так что я завел базовый astro-проект, и начал кормить курсор: сразу выделил отдельные секции, которые должны стать отдельными компонентами ComponentName.astro, глазами отмерил строки json’ов, которые отвечают за каждую секцию, и указал для каждого @media теги, чтобы стили применялись только для заданного диапазона разрешений экрана. 

На самом деле, почти сразу пошло хорошо - гораздо лучше, чем когда я пробовал делать то же самое со скриншотами вместо json.

Я долго провозился с адаптивами формы / попапов, а еще с z-index и расположением элементов под друг другом, но это (по памяти) всегда сложно и долго, с курсорами и без.
А вот отправку емейла из формы, кстати, я прикрутил с EmailJS за 5 минут и 0$.

4.Настроенный Coolify и еще немножко курсора

Coolify меня он уже был развернут и прикручен к домену, - см. пост выше.

Весь деплой занимает минут 15:

-просим курсор сделать для проекта docker-compose
-пушим все это в гитхаб репозиторий, цепляем через Github App к Coolify, деплоим
- магия.

Крутейшая фича кулифая с гитхаб-эппом: при пуше в мастер-ветку сервис автоматически редеплоится с учетом нового кода.

Вот и все!
Сам лендинг пока не покажу, извините - там еще остались заглушки и lorem ipsum, - но потом покажу.
Поверьте пока что на слово: вышло красиво, стабильно, нормально работает адаптив, в общем, я остался доволен.
Точно быстрее, чем собирать целиковый проект в конструкторе, не говоря про то, что это +- бесплатно.
🔥20👍1
S in IoT stands for Security

Последнее время часто читаю про разные attack chains с участием IoT девайсов - умных камер, термостатов, холодильников и тд.
Тема не новая - среди кибербезопасников давно ходит шутка: S in IoT stands for Security.

Начинающим пентестерам часто советуют попробовать себя в IoT, особенно с дешевыми девайсами а-ля беби-камера с Амазона за 20$.
Вот, например, туториал-лекция с Defcon как раз про это.

Но тут наткнулся на статью, в которой автор напоминает об очень серьезной проблеме, связанной с IoT-девайсами и их безопасностью, а именно - с ростом количества ботнетов, состоящих из умных девайсов.

https://spectrum.ieee.org/iot-security-root-of-trust

Если для создания "классического" ботнета обычно нужно заразить виндовые компы каким-нибудь трояном, а потом еще не палиться, что с компьютером "что-то не то",
то в случае с IoT задача часто гораздо проще, так как:

- многие девайсы крайне посредственно защищены (или не защищены вообще)
- абсолютное большинство людей никак не меняет настройки девайса, который они покупают - в том числе, логины и пароли от админки, а также настройки доступа устройств к интернету (помимо локальной сети)
- у большинства девайсов интерфейс примитивный, спрятанный в мобильное приложение с 3 кнопками, что усложняет диагностику
- никто не следит за запущенными процессами на условной wi-fi камере, а также не думает: блин, че это моя камера так тупит, может прогнать проверку антивирусом?

Все это делает IoT девайсы легкой добычей для создателей ботнетов.
Более того, вы можете никогда не узнать о том, что ваше устройство было заражено, если целью хакеров является именно использование устройства для DDoS-атак, а не вымогательство / кража ваших данных.

В статье ссылаются на статистику, согласно которой в 2024 в мире было 18.8 миллиардов IoT-устройств - представьте себе, сколько из них в абсолютном выражении являются уязвимыми к атакам с использованием базовых, часто бесплатных, инструментов.

Говоря про инструменты, вспомнил, что когда мне было лет 16 я узнал про появление shodan.io - поисковик по всем подключенным к интернету устройствам, - и за 1 день нашел несколько частных камер с парой логин-пароль из списка:
[admin, root, user, 1234, 0000].
Помню, что мне было от этого очень весело)

Автор, кстати, упоминает крупный ботнет Mirei, запущенный в 2016 году, который был ориентирован как раз на это.

Цитирую статью клаудфлера про него:
Mirai scans the Internet for IoT devices that run on the ARC processor. This processor runs a stripped-down version of the Linux operating system.
If the default username-and-password combo is not changed, Mirai is able to log into the device and infect it.


И еще, про дефолтные логины и пароли - ради интереса, предлагаю вам в следующей поездке, если снимите квартиру через AirBnb или саблет, проверить, менял ли владелец квартиры дефолтные логин и пароль от админки роутера (ака 192.168.0.1)
Я так делаю последние полгода, просто из интереса. По моим наблюдениям, больше половины админок с дефолтными логином-паролем, которые написаны на роутере.

Надо ли говорить, что можно сделать с помощью доступа к роутеру квартиры, в которой в год бывает по 50 разных постояльцев?)

У устройств посерьезнее, типа умных колонок, с безопасностью, конечно, получше - в них часто используют хардверный Root of Trust прямо внутри процессора или SoC-чипа - если все сделано правильно, он обеспечивает единый и неизменяемый "центр правды" внутри устройства, и каждый следующий слой (вроде операционной системы, контейнера с приложением, и т д) полагаются на него для проверки "хорошести" исполняемого кода.

Но и это не всегда панацея: рукастый человек с инструментами за <100$ может, например, получить root-доступ к Яндекс Алисе.
Это я молчу про разные виды конспирологии относительно того, как Яндекс в целом обрабатывает речь, которую слышит ваша колонка, и с кем она может этим делиться.
1🔥13🤡3🥴3🤯2
Careless people

Пару дней назад дочитал книжку Сары Уинн-Уильямс “Careless People” про ее опыт работы в Фейсбуке в роли Head of Global Policy.
Она занималась коммуникацией с президентами / премьерами / ведомствами разных стран, чтобы фейсбук мог выйти на новый рынок / не быть заблокированным на старом, и много общалась лично с Цукербергом и Шерил Сандберг (ех-СОО фейсбука).

Книга написана в формате мемуара - от истории как она хотела попасть в фб в 2010 и изменить мир, до ее увольнения в 2019 [allegedly за то, что она вместе с кучей других женщин обвинила своего начальника в домогательствах].

В 2025 Сара стала whistleblower`ом (не знаю, какой аналог в русском языке) и выступила перед конгрессом, обвиняя фейсбук и цукера лично в разнообразых преступлениях. Пара примеров:

- Фейсбук очень долго пытался выйти на китайский рынок, и ради аппрува от КПК сделал для них инструмент, который позволял трекать пользователей + шэдоубанить или удалять неугодные посты, а также читать личные переписки без официальных запросов и в неограниченном количестве.
Больше того, не только граждан Китая, а еще Гонгконга и Тайваня, а еще всех, кто с ними контактировал.
В 2018 Цукерберг “под присягой” на слушании конгресса заявил, что ничего такого фб никогда не делал.

- То, из-за чего в том числе сейчас идет судебный процесс между американской антимонопольной службой и ФБ по поводу WhatsApp: в 2013 ФБ купил впн Onavo, который продвигал в фб на главной в качестве рекомендуемого сервиса для обеспечения приватности и “экономии мобильного траффика”.
В реальности, в течение 5 лет впн служил бекдором, с помощью которого ФБ могли расшифровывать SSL-encrypted траффик некоторых (=любых) приложений на телефонах пользователей.
С помощью этого “тулза” они следили за активностью людей в Snapchat, а также вовремя приняли решение купить WhatsApp, руководствуясь инсайдерской информацией. Если что, вот исходники раскрытых документов в качестве пруфа.

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

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

Две вещи, от которых мне страшно / немного грустно:

- ФБ ничего никогда не будет за это (пока какой-нибудь конкурент еще больше не сможет задушить их). Максимум - заплатят какой-нибудь смешной штраф. Как говорится, 2Big2Fail, 2Big2Jail.

- Каждый раз, когда в книге упоминался очередной суд / скандал / пруф преступлений фб, я шел читать статьи того времени и материалы с заседаний суда по диагонали.
Пруфов и огласки всего этого очень много, большая часть того, в чем Сара обвинила фб - не конспирология, а факты с бумажными доказательствами. Но за +-10 лет с появления первого такого “громкого” кейса, на мой взгляд, восприятие большинства людей от ФБ не изменилось почти никак (а может и изменилось в лучшую сторону).
Надеяться, что книжка или yet another слив документов, или даже решение суда “виновен” это изменит - сложно.
👍15🤯8🔥4🐳1
Для тех, кому 400 страниц про это читать лень - пара ссылок:

- Рецензия-пересказ от Кори Доктороу с самым соком: https://pluralistic.net/2025/04/23/zuckerstreisand/
- Увидел это видео примерно год назад у Виталика в канале - история преступлений фб за 3 часа: https://www.youtube.com/watch?v=MPyJBJTHyO0
- Довольно едкий пост про то, как топы в ФБ последовательно убивали (и продолжают убивать) все хорошее в ФБ: https://www.wheresyoured.at/killingfacebook/

#fuckzuck :))
1🙏13👍1
Игра в английскую бюрократию

https://jameshaydon.github.io/passport/

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

Дело в том, что англичане для принятия всех решений решения - британец ты или нет, - должны увидеть один из двух (это без корнеркейсов) пруфов твоей британскости: либо ты родился в британии, либо на момент твоего рождения кто-то из твоих родителей был британцем.
А как понять, был ли кто-то из твоих родителей британцем? Либо они родились в британии, либо… :)

Это рекурсивное дерево продолжается до тех пор, пока не достигнут “base case” - предок, имевший гражданство до 1983 года,
тк для него и для его предка уже не обязательно доказывать легитимность этого гражданства.
Для всех, родившихся после, доказывать “британскость” надо.

И главный прикол подачи на паспорт (на практике - на любые документы) в ЮК - ты не можешь изначально узнать весь набор документов, которые тебе потребуются. Отправь емейл - и через 5-7 business days ты узнаешь, какой документ от тебя ждут для прохождения на следующий этап.

Поигравшись месяц в эту игру и после того, как для паспорта его дочери запросили applicant's father's father's father's birth certificate, автор не выдержал и написал скрипт на Haskell, который задает тебе вопросы, и исходя из ответов показывает доступные варианты пруфов и наборы документов.

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


-- | British citizenship for those born abroad
britBornAbroad :: Person -> M Proof
britBornAbroad p =
viaParent p $ \parent ->
britOtbd parent `orElse` (brit parent `and` evidence (Years3LivingInUK parent))

-- | British otherwise than by descent (BOTD)
britOtbd :: Person -> M Proof
britOtbd p = do
check (IsBritOtbd p)
evidence (Naturalised p) `orElse` britOtbdUkBorn `orElse` bornCrownService p
where
britOtbdUkBorn = evidence (BornInUK p) `and` britBornInUk p

bornCrownService :: Person -> M Proof
bornCrownService p = viaParent p $ \parent -> do
check (CrownService parent)
brit parent `and` evidence (CrownService parent)


Итоговая программа задает тебе вопросы, пока не придет к однозначному base case и соответствующему набору документов, например:
Proof 1:

• Applicant was born after 2006
• Via Applicant's Father's britishness:
• Applicant's Father was born in UK
• Via Applicant's Father's Mother's britishness:
Applicant's Father's Mother was settled at time of birth

Possible doc sets:
• - Birth certificate for Applicant,
- Birth certificate for Applicant's Father,
- Settled status document for Applicant's Father's Mother


Всего за 37 вопросов скрипт собрал аж 3 возможных пруфа с наборами документов - естественно, applicant's father's father's father's birth certificate требуется только в самом длинном и неоптимальном пруфе)

В общем, смешно и познавательно!
Всем, кто когда-либо подавался на английские визы / подтверждал дипломы и т п - очень советую почитать, прям одинаковые паттерны:)
Хорошо, что я уже со своей англией успокоился.
1👍15🔥7🥴4🐳1
Клод в докере

https://timsh.org/claude-inside-docker/

Уже пару месяцев хотел:
- пересесть с курсора за 20$ + gpt за 20$ на одну клодовскую подписку
- пересесть с курсора в целом на claude code тк все говорят что надо
- перестать давать AI агенту доступ к моей файловой системе и терминалу, тк это опасно

И вот вчера за вечер пересел, все настроил, и даже написал небольшой пост про это.
А еще сделал quick start репу для желающих попробовать то же самое: https://github.com/tim-sha256/claude-in-docker

Имхо, все, кто пользуются агентами в yolo mode (когда не каждую команду аппрувишь, а только “жоские”), да и тем, кто аксептит руками, не стоит делать это просто на компьютере, тк есть много рисков.

Например, что агент возьмет и жестко удалит что-нибудь вне репы — в интернетах много таких примеров.
Больше того, судя по некоторым постам, даже с установленными в Курсорсе правилами по запрещенным командам, Claude научился обходить эти запреты, запихивая команды в bash-скрипт и запуская его.

Или поставит кучу херни в непонятном окружении (или просто в рут проекта), а потом окажется, что какая-то из установленных зависимостей была взломана и отравлена. А ллмки обожают ставить кучу непонятно зачем нужных либ на каждый пук :)

Как будто бы моя горе-вайбкодерская жизнь стала чуть безопаснее, и при этом UX стал даже получше - клод код это реально крутая штука, мне и интерфейс нравится больше курсоровских чатов, и работает он проворнее, и все затраты сразу видны.
Ну и в комбо с VSCode и его интеграцией и с докером (devcontainers), и с клодом - все нативно, никакого гемора — в общем, сплошная красота.
1🔥17🤡6👍1
$500к за подсветку синтаксиса

https://securelist.com/open-source-package-for-cursor-ai-turned-into-a-crypto-heist/116908/

В тему предыдущего поста: на днях завирусилась новость про "blockchain developer from Russia", который потерял $500к, установив расширение в Cursor.
Очень кликбейтный заголовок, но на деле все так и было (ну если верить, что блокчейн-разработчик хранил 500к баксов не на леджере, а в браузерном кошельке):
он установил расширение "Solidity Language" из маркетплейса расширений курсора, которое было 1в1 слизано с нормального расширения solidity, а в нем оказался стилер Trojan-PSW, кстати оч похожий на Redox, про который я писал тут.

Как так вышло?

Немного контекста: с января 2025 Курсор использует OpenVSX в качестве встроенного в IDE магазина расширений.
OpenVSX это опенсорсный-безограничений форк майкрософтовского vscode-магазина, который разрешает форкам vscode (в отличие от майкрософтовского) туда ходить и качать расширения.

Так вот, оказалось, что OpenVSX при ранжировании расширений в выдаче (например, когда ищешь "solidity") ориентируется на несколько факторов, включая рейтинг, количество скачиваний и дату последнего апдейта.

Упомянутое выше вредоносное расширение в результате попало в топ выдачи, даже выше solidity, тк последний апдейт у него был всего несколько дней назад.
В статье про это ничего не сказано, но я думаю, что накрутить рейтинги и количество скачиваний в OpenVSX - достаточно тривиальная задача: авторы этого расширения каким-то образом получили 50к скачиваний всего за пару недель, в то время как оригинальное расширение живет годами, и у него 64к.

Самое жесткое, что когда это расширение все-таки зарепортили и смогли удалить, почти сразу же появилось новое.
С названием "solidity" и автором расширения "juanbIanco" - точно таким же, как и у хорошего расширения, но с заглавной i вместо прописной L. В интерфейсе курсора с их шрифтом разницы между ними ровно 0.
Больше того, у этого нового вредоносного расширения 2М скачиваний (возвращаясь к накрутке), в то время как у оригинального все еще 64к.
Давайте честно, какое из них выбрали бы вы?

Мне от всей этой истории стало жутко с первой минуты, тк у меня стоит "какое-то" расширение "solidity", правда в vscode.
Благо у меня стоит оригинальное.
Но это я к тому, что в отличие от большинства источников стилеров, тут я был максимально близко к бедному блокчейн-разработчику и прочей целевой аудитории этого расширения - я думаю, что я бы повелся с вероятностью около 100%.

Microsoft в своем твиттере сразу выебнулся, что "у них это расширение удалили за 2 секунды", и вообще "Not in our house."
Ага.
С другой стороны, что еще им говорить, когда они конкурируют с форком собственного продукта, демпингуют итд.
Может у них и безопаснее в магазине расширений, но за майкрософтом есть довольно много грешков, связанных с модерацией своих сервисов, см. тот же пост про Redox.

Основная проблема с этими расширениями состоит в том, что они запускаются не в сендбоксе, а прямо на вашей машине под вашим юзером. И сделать могут +- все что угодно. Зная это, доверять даже вскодовскому маркетплейсу, где "все плохое удаляют за 2 сек" не хочется.

Еще вспомнил, что месяцом ранее читал статью Koi Security про уязвимость, которую они нашли в OpenVSX, которая позволяла злоумышленнику удалять, добавлять и пушить обновленные версии любых расширений на маркетплейсе.
Просто вдумайтесь, какой ущерб мог быть от такой атаки (у OpenVSX примерно 10+ млн пользователей).

Выводы и что со всем этим делать

1. По возможности вообще не ставьте расширения.
Если надо - ставьте официальные (где автор - Microsoft, к примеру).
На страничке расширения в маркетплейсе есть ссылка на репозиторий - точно будет не лишним перейти по ней и убедиться, что репозиторий принадлежит известному разработчику / организации, которым "можно доверять".

2. Выключайте у расширений Auto-update - по умолчанию он всегда включен!
Так у вас есть шанс не попасть под зловредный апдейт какого-нибудь расширения, которое захватил злоумышленник.
1🤯23👍11🔥3
Левосторонние кошки

https://www.cell.com/action/showPdf?pii=S0960-9822%2825%2900507-X

Прочитал про исследование сна кошек, в результате которого было установлено значительное и статистически значимое превосходство сна на левом боку перед сном на правом: 65% vs 35% с p < 0.001.
Для этого ученые отобрали и отфильтровали 400+ видео со спящими 10+ секунд кошками в полный рост.

Авторы немного рассказывают о сне кошек в целом: домашние кошки являются одновременно хищниками и добычей (например, для койотов), и при этом спят 12-16 часов в день.
Получается, что они проводят 60%+ своей жизни в очень уязвимом положении, в котором они могут как пропустить проходящую мимо мыш, так и быть сожранной аккуратно подкравшимся койотом, которого вы видимо завели просто по угару.

Чтобы снизить риски, кошки предпочитают спать на возвышении, чтобы смотреть на всех свысока и иметь возможность отреагировать, пока они находятся в привилегированном положении.

Но это не объясняет, почему 2/3 кошек предпочитают спать на левом боку.

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

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

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

Интересно, что это не связано с тем, левша кошка или правша — да, если что, 78% кошек имеют “ведущую” лапу, которой они чаще пользуются для более приоритетных дел, — и распределение правшей vs левшей среди кошек примерно 50:50.

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

А еще, животные, у которых strength of lateralization (не придумал как перевести) низкий, хуже справляются с несколькими делами одновременно и легче впадают в состояние стресса.

В общем, если ваша кошка чаще спит на правом боку, то вам стоит провести с ней беседу и объяснить связанные с ее поведением риски. Вероятно, в этом случае вам также не стоит заводить койота, тк кошка может не пережить встречу с ним.
С другой стороны, возможно у вас такой безопасный вайб дома, что кошка уже в конец расслабилась и перестала бояться внешних угроз.
Хорошо это или плохо - решать вам.
7🔥13🐳10🤯6🙏2🤡1
Дешевые авиабилеты

https://fortune.com/2025/07/16/delta-moves-toward-eliminating-set-prices-in-favor-of-ai-that-determines-how-much-you-personally-will-pay-for-a-ticket/

Нет, это не реклама авиасейлс: прочитал статью про эксперимент одной авиакомпании, которая для 3% своих пользователей сделала полностью индивидуальный “AI” прайсинг.
Статья не особо интересная + выглядит как реклама этой самой Delta для инвесторов, но навела меня на пару мыслей.

Во-первых, для инвесторов, конечно, звучит круто: по твоему digital fingerprint подберем максимальную цену, которую ты готов заплатить → оптимизируем margin per client и зарабатываем много деняк.
Вот только мне кажется, что после ковида авиакомпании и так перешли на новую ценовую модель: все билеты стоят дорого, надо будет поехать - заплатишь, куда ты денешься. И это звучит круче, чем индивидуальная цена, тк лучше пусть всем будет дорого, чем части покупателей.
Ну или возможно я бедный просто, хз.

Во-вторых, мне казалось, что и так уже давно все это делают - иначе VPN-сервисы не смогли бы (ага лол) рекламироваться в америках без роскомнадзоров через value proposition “покупаешь билет москва-стамбул? войди под айпшиником франкфурта и купи билет в Х раз дешевле”.
Что, кстати, по моим ощущениям, вообще не работает. Ну или возможно я не умею просто билеты покупать.

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

В связи со всем этим у меня родилась идея для стартапа: turnkey digital personality для разных покупок.
Уже давно существуют специальные браузеры, в которых можно создавать разные digital fingerprint в разных вкладках, абсолютно изолированные от внешнего мира.
Я парочкой таких пользовался во времена Track Pump, - например, https://multilogin.com/ и https://dolphin-anty.com/.
Их обычно используют для разного спама - вести параллельно 25 аккаунтов в инстаграме, или лайки накручивать (хз насколько актуально).

Но в них идея все-таки в том, что тебе дают абсолютно чистый и голый профайл, а ты его уже начиняешь куками и аккаунтами.
А я бы сделал такой сервис для новой эпохи AI-прайсинга: указываешь, на каком сайте ты что-то хочешь купить, и тебе подбирается и создается “правильный” профайл - в одном случае у тебя фингерпринт малоимущего на пособии, в другом - белого цисгендерного мужчины-водителя с 20+ летним стажем вождения, и так далее.

Чтобы с этим бороться, сервисам прийдется открыто признать, что они передают твои персональные данные (имя/фамилию/номер паспорта и т д) третьим лицам для enrichment’а своих данных - что, наверное, они все равно будут делать, тк кому какая разница.

Но глобально мне кажется, что чем дальше бизнесы будут уходить в fingerprinting тебя как клиента по digital-характеристикам, тем больше digital манипуляций можно будет делать, чтобы выдавать себя за другого.

Кто хочет заняться таким бредом - напишите, можем склепать лендинг по-быстрому :)
🐳18🕊12🔥3👍1
Страшилка про VPNы

Недавно ненадолго приезжал в Москву и прифигел от того, до чего техника дошла в плане блокировки контента.
Помимо того, что в России поблокировали кучу IP ranges разных облачных провайдеров, вроде Cloudflare, Digital Ocean и даже Hetzner, за последние пару лет большая часть существующих VPN-протоколов почти полностью перестали работать (особенно на LTE).
Очень рекомендую прошлогодний выпуск “запуск завтра”, где про методы блокировок довольно подробно и интересно рассказывает директор фонда “Общество защиты интернета”.
Спойлер: почти все, что он там “предсказывал” про следующие протоколы, которые будут банить в РФ, за этот год уже произошло.

Большинство моих друзей в результате всего этого меняют VPNы раз в 1-2 месяца и держат сразу по несколько приложений одновременно на всякий случай.
В связи с этим решил повспоминать случаи, в которых разработчики VPNов умышленно или неумышленно (ага) подвергали пользователей разнообразным рискам, шпионили за ними и т д.

- Наверное, самый масштабный кейс с участием 150+ разных VPN-сервисов - ботнет 911 S5, снесенный американскими спецслужбами в 2024.
Создатель ботнета на протяжении нескольких лет создавал и продвигал разные VPN-приложения “с сюрпризом” в App Store и Google Play и успел насобирать более 19 млн пользователей по всему миру и $99+ млн выручки.
Каждый девайс с установленным и включенным VPNом из этого набора превращался в зараженную ноду ботнета, который, в свою очередь, создатель сдавал в аренду разным киберпреступникам для организации DDoS-атак, фишингов и вымогательств.

- Уже писал коротко про Onavo - VPN, который в 2013 году купил Facebook за астрономические на тот момент + для такого приложения $120 млн и продвигал его на главной фб как способ сидеть в интернете “безопаснее и дешевле”.
В ходе антимонопольного кейса против FB “случайно” обнаружилось, что вплоть до 2019 года фейсбук с помощью Onavo расшифровывал весь проходящий через VPN трафик на домены Snapchat, Amazon, Google…
Очень подробный технический разбор этого кейса.

- В 2021 произошла утечка данных 21 млн пользователей трех популярных на тот момент VPNов: SuperVPN, GeckoVPN и ChatVPN.
Данные пользователей (емейлы, IMEI, пароли и прочее) выложили на один из даркнет-форумов и продавали всем желающим.
По слухам (чет не нашел железобетонных пруфов), разработчики оставили экспоузнутую базу данных с дефолтным логином/паролем, - так что и ломать особо ничего не пришлось.

Какие можно сделать выводы из подобных историй?

Во-первых, если VPN бесплатный, то он зарабатывает каким-то другим способом.
Если это “хороший” впн, то он показывает рекламу при заходе в приложение и очень сильно режет трафик, вымогая подписку.
Если ваш бесплатный впн этого не делает, работает без ограничений, смс, рекламы и т д - либо вы нашли святого VPN-провайдера, либо он монетизирует вас как-то иначе. И шансов узнать как именно у вас довольно мало.

Кстати, если впн платный - он может точно так же зарабатывать доп. деньги сливая данные или продавая вас как частичку ботнета - диверсификация revenue streams, так сказать.

Во-вторых, разработчик-вайбкодер, который запускает yet another VPN, мог и без всякого злого умысла оставить пару дырок для желающих угнать данные пользователей. А впн знает довольно много в сравнении с другими видами приложений.

Честно говоря, что со всем этим глобально делать я не знаю.
Я уже пару лет сижу только на собственноручно развернутом VPNе (в основном использую Tailscale, расскажу как-нибудь), но вот в последний приезд обнаружил, что на LTE он уже не работает (ну, точнее, на Билайне. хз может у других не так).

И даже моя “запасная” Amnesia с 10ю разными изощренными протоколами вроде X-Ray и Shadowsocks5 работала только на вайфае.
Видел, что люди покупают в тг ботах профили для Outline, вроде бы работает - но выглядит это все хуже и хуже.

Думаю (без пруфов и достаточной экспертизы), что если глушить все будут и дальше, через год-два уже только невероятные умельцы смогут ВПНить с мобильного интернета.
А вы как думаете?
1🤯11👍5🥴3🐳2🔥1🙏1
1000 и 1 способ украсть акк в телеге

Вчера Виталик @thingsiread прислал мне бота “отключение света тбилиси”, которого он случайно нашел в тг [понятно, почему он его искал].

Как работает этот чудесный бот:

1) Чтобы долго жить и высоко ранжироваться в выдаче при поиске “отключение тбилиси”, основной бот сам не должен делать ничего плохого. Поэтому когда пишешь боту /start, он присылает тебе ссылку на другой канал.
Ссылки ротируются с каждым стартом, сколько их всего - без понятия.

2) Бот, которого тебе прислали, рандомно называется (вроде “белла вита косметика” или “масло дыши отзывы”), сразу после старта проверяет, знает ли он твой номер телефона (см. ниже).
Какие у него варианты знать твой номер:
- у тебя открытый номер в тг (лол)
- у тебя когда-то был открытый номер в тг (см. ниже)
- вроде все

Если боту твой номер неизвестен, то сначала он просит тебя нажать на кнопку “Я не робот”.
При нажатии вылезает уведомление “бот запрашивает доступ к вашему номеру телефона”.

После того, как бот как-то узнал номер, он сразу же просит ввести код “чтобы подтвердить, что вы не робот”.

3) Бедному, лишившемуся посреди дня света (и способности критически мыслить) пользователю приходит код в оффчат Telegram, он вводит код - бинго, аккаунта больше нет.
Интересно, кстати, (мне жалко все мои акки, так что проверять не стал) автоматизирован ли “отжим” аккаунта или нет (смена пароля + 2фа + логаут всех сессий). Скорее всего, там сидит какой-то Вася, ловит уведомления об успешном отжиме и бежит руками это делать.

Решил разобраться, как это устроено внутри.

Сначала хотел написать своего такого бота - естественно, с огромными заголовками вроде БОТ ДЛЯ ДЕМОНСТРАЦИИ УГОНА АКАУНТА В ТГ, но потом подумал, что за такой довольно бесполезный PoC я могу лишиться своего акаунта в телеге (из-за блокировки), так что ограничился простым скриптом на питоне, который имитирует деятельность бота.

Но для начала - откуда бот знает мой номер телефона?
Он уже много лет (но недостаточно) закрыт от всех, даже от контактов.

Немного погуглил и нашел несколько ботов для деанона, которые по @username или user_id присылают всю известную информацию о пользователе.
В первом же таком боте (не буду прикладывать ссылку, найти элементарно) была инфа о моем номере от 2019 года.

Правда, на моем более свежем “анон” акке, который я завел год назад, я сразу убрал доступ ко всем данным кроме username, и его номер боты не знают.

Откуда эти деанон боты берут данные о пользователях? (помимо публикуемых сливов из всяких яндекс ед)
Нашел вот такой ответ, который меня в целом устроил:

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


Забавно, но пока искал, как делают таких деанон-ботов, и можно ли где-то вместо бота запрашивать данные о пользователе по апишке, наткнулся на несколько скамов^2: инструкций, как делать фейковые деанон-боты, на которые будут покупаться сталкеры.
Ссылки прикладывать не буду, интересно - напишите в комментах.

И так, полный алгоритм работы нашего бота “отключение электричества”:

1) Бот кидает ссылку на бота - не буду пояснять, тут все и так понятно

2) Проверяет, знает ли он ваш номер телефона.
В своем PoC я сделал это немного через жопу - залогинил свою аппку в свой тг аккаунт, и через send_message отправил сообщение боту для деанона, а потом распарсил его ответ с помощью get_messages.
Но наверняка можно просто купить доступ к базе тг аккаунтов, если порыться на грязных форумах.

3) Дергает метод sendCode с указанием номер телефона, и на ассоциированный с номером аккаунт приходит сообщение в тг.

Бот(ов), кстати, телеграм уже поблочил.
Интересно, сколько людей успели лишиться своих аккаунтов конкретно в этом скаме с отключением света в тбилиси?

К чему я все это - сделать такого бота может любой дурак за час и +- бесплатно.
Так что будьте осторожны, когда пользуетесь очередным непонятным ботом - всегда есть шанс, что он сделан по инструкции с форума.
3🤯10👍6🥴4🐳2
Про бобров

Недавно заинтересовался (не спрашивайте, почему) бобрами и их жизнью.
Если точнее: реально ли они строят дамбы как в фильмах/мультиках, как и зачем?

Начнем с основ: да, бобры реально строят дамбы, причем огромные - чтобы вы понимали масштаб, 20 тусовок по 6-8 бобров в каждой (тн "колонии") могут построить дамбу шириной 4 (мама) километра.
Причем, самое интересное - не сговариваясь между тусовками!

Зачем бобрам эти дамбы?

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

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

Как они учатся строить?

Никак! Даже бобры, выросшие в полной изоляции и бетонной среде обладают инстинктом и базовыми навыками строительства.
Бобры инстинктивно начинают строить с малых лет (даже пока родители не подпускают их к реальным дамбам и не показывают их им), когда слышат звук журчащей воды.
Причем если с одной стороны поставить колонку и играть звуки журчания, а с другой - открытую трубу, по которой беззвучно течет вода - бобры выбирают колонку и пытаются строить около нее.
Это все выяснил биолог Ларс Вилсон еще в 60-х - вот тут коротко.

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

Не поверите, но бобры все это делают, причем довольно децентрализованно.

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

Она очень много наблюдала за бобрами, и вот, что она узнала:

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

Как бобры влияют на среду?

Если коротко: бобры одни из самых полезных животных как для экосистемы, так и для людей 🦫.
Благодаря прудам, которые создают бобры:

- многие животные (типа лосей) получают новые и удобные места для остановки на водопой
- выживают некоторые редкие виды рыб
- появляется торфяная почта, которая "запирает" CO2

Исследованием влияния бобров на людей и земледелие занимается, в том числе... NASA.

Они предоставляют серии снимков со спутников, с помощью которых ученые "в полях" могут сравнивать похожие участки, в которых есть / нет бобров. Вы, наверное, уже догадались: где бобры = там круче :)

Ученые часто работают вместе с фермерами, которые потихоньку начинают просекать, что бобры им очень полезны: в Престоне, Идахо, например, бобры за 10 лет повысили количество дней, в течение которых течет река (тают ледники → течет река → из-за дамб она медленнее стекает) в регионе на 40 в год.

Для сухих и жарких регионов, как можно догадаться, это очень критично: мало того, что существенно улучшает урожайность почвы, так еще и снижает вероятность возникновения пожаров в окрестностях прудов.

Я не смог найти ни одного плохого эффекта жизнедеятельности бобров для природы - были какие-то разговоры про опасные бактерии, плодящиеся в прудах, но в той же статье их и опровергли (ну, вернее, увидели, что есть и эффект снижения, и роста, и в сумме +- 0).

В общем, я теперь, как говорят в NASA, "Beaver Believer".
177🔥17🐳5🤡1
Про Bitchat - оффлайн мессенджер

Недавно друг спросил, пользовался ли я когда-то Bitchat… а я не пользовался, но сразу заинтересовался.

Bitchat это оффлайн P2P мессенджер, который работает через Bluetooth mesh сети - устроено это примерно так:
Клиент, установленный на вашем телефоне, ищет устройства по соседству (в радиусе 20-100 метров), на которых тоже стоит Bitchat, узнает, есть ли у него коннекты рядом… и так до самого последнего Peer.

Если представить себе уровень adoption как у условного вотсапа, то в теории так можно общаться почти со всеми в урбан-мире (тк если вы живете в городе, вероятность встретить человека с установленным Whatsapp в 20-50 метрах от вас довольно высокая).

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

Так что если будете пробовать - ставьте вдвоем, включайте режим самолета и поражайтесь чуду оффлайн-переписки из соседних комнат.

Юзкейсы у Bitchat (и аналогов, см. ниже) все же немного другие: например, координация людей на протестах, в условиях блэкаута, в непокрытых сотовой связью пространствах (в горах что ли?), ну и так далее.

Сделал (а точнее, завайбкодил) этот битчат, кстати, Jack Dorsey - ко-фаундер твиттера, The Block, Bluesky и всякого такого.

После неглубокого изучения темы я выяснил следующее:

Идея bluetooth mesh p2p мессенджеров совсем не новая - например, был такой FireChat, созданный больше 10 лет назад.

С помощью него еще в 14-16 году общались протестующие в разных странах: в Ираке, Гонг Конге, Эквадоре и Каталунии.

Потом еще был Bridgefy (и до сих пор есть) - тоже использовался протестующими и активистами в разных странах.

Звучит круто, но у всех этих протоколов есть один нюанс: безопасность.

В случае с тем же Bridgefy это все на абсурдном уровне: в 20 году исследователи обнаружили уязвимости, которые позволяют:

- создать социальный граф пользователей в одной сети (кто с кем общается)
- прочитать все их сообщения
- выдать себя за любого пользователя и написать сообщение от его имени
- вишенка на торте: уронить всю сеть одним специально отравленным сообщением

Но наверняка Джек Дорси спустя 5+ лет учел все эти моменты в своем приложении?
Кажется, не все :(

Вскоре после анонса битчата исследователь-безопасник поковырялся в нем, нашел уязвимость, позволяющую любому пользователю довольно легко реализовать MiTM (man in the middle) атаку, и написал гневный пост про это.

Если вкратце:

- в битчате проблемы с Proof of Identity, из-за которых можно довольно легко выдать себя за человека в ваших Favorites и написать сообщение от его имени.

- не надо изобретать велосипед (свой протокол для e2e общения), если не разбираешься в теме.
Лучше взять готовый (условный libsignal)

Насколько я понял, Джек решил не переписывать кусок приложения, а забить и предупредить пользователей о дырке:

security notice: private messages have not received external security review and may contain vulnerabilities. do not use for sensitive use cases, and do not rely on its security until it has been reviewed. public local chat (the main feature) has no security concerns.


На мой взгляд, не самое лучшее решение для приложения, ориентированного на активистов и протестующих без связи, ну да ладно.

В двух словах про все эти bluetooth mesh сети - круто в теории, но довольно грустно на практике.
1👍19🤯5🥴2🔥1
Kill List: как два хакера взломали маркетплейс убийств в даркнете и спасли кучу людей

https://youtu.be/cYZmRp90hss

Еще в 2019 году хакер и журналист случайно наткнулись на сайт Besa Mafia в даркнете - сайт, на котором можно заказать убийство или похищение человека почти в любой стране у албанской мафии (лол).

Чтобы разобраться, как устроен процесс, один из авторов (Крис) зарегистрировался на сайте и опубликовал свой запрос на убийство.
Для обсуждения деталей сразу же был создан чат, в котором будущий убийца и заказчик могут обсуждать детали и договариваться.

Буквально в первые 5 минут Крис заметил IDOR-уязвимость (ровно как тут): в урле страницы чата прописан айдишник (условно 1234567), и если вписать вместо него другое число, можно попасть в чужой чат и увидеть все, что туда писали.

А дальше хакер получил контроль над вообще всем сайтом - там было полно разных уязвимостей, который позволили это сделать. В полученных данных были биткоин кошельки, все данные с серверов, страниц администраторов и т д.
Естественно, главного администратора сайта звали Юра (ну а как еще?).

Так появился Kill List: архив всех чатов, которые удалось собрать перебором айдишников, насчитывающий тысячи запросов на заказное убийство, данные покупателей и многое другое.

Меня абсолютно поразили цены на убийство, которые выставляли люди: 1000-2000$ за убийство человека в Европе / США - это прям копейки. Естественно, качество реализации за такие деньги тоже было очень низким - но об этом позже.

Естественно, первое что сделали авторы, когда получили доступ ко всему этому - позвонили в полицию (в Англии) и рассказали им обо всем, что нашли. Угадайте, как отреагировали полицейские?

Сначала решили провести ментал чек журналиста, который позвонил - думали, что он псих.
Потом убедились, что он не псих, но сказали, что в списке “недостаточно жертв в UK”, поэтому они ничего расследовать не будут(sic!).
Пообещали передать информацию в Интерпол, но и там люди в целом забили на албанцев.

Авторы решили сами уведомлять всех жертв, кого они смогли определить: буквально звонить им со словами “На вас планируется покушение, будьте осторожны” итд.
Люди, конечно же, не стали верить рандомному звонку, - ну а вы бы как поступили? Это даже хуже, чем “здравствуйте, это служба доставки”.

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

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

Во многих случаях убийство не получались, - все таки, когда заказываешь хитмена за 1000$, за работу берется не самый профессиональный человек. Авторы расследования постоянно получали обновления по всем чатам, и видели все: хитмен потерялся, забыл или потерял оружие, громко топал и был замечен, и так далее.

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

За 3 года авторы раскрыли 175 оплаченных заказов больше чем в 20 странах, что привело к 32 арестам, 28 признаниям и большим тюремным срокам - как для заказчиков, так и исполнителей.

В конце 2022 года румынские спецслужбы, по наводкам журналистов, провели несколько рейдов в Румынии и (похоже) поймали Юру.
Только спустя 3 года с начала расследования спецслужбы и органы власти наконец-то перехватили инициативу на себя и начали работать по той же схеме без помощи журналистов.
2🤯44🔥19🤔2
А еще - ищу желающих поучаствовать в расследовании / поковырять вирус

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

И так, те самые 2 направления:

- Распотрашить (зареверсить) вредоносный js-скрипт, а также запустить его в каком-то сендбоксе и стать “жертвой”

Тут мне бы очень помог человек, который хорошо знает js, а в идеале еще и умеет его запускать в разных окружениях / сендбоксах (может фронт-тестировщик? не знаю, если честно).

- Проанализировать данные - 200к сообщений (кол-во растет с каждой минутой) из 40+ чатов + пользователи в них, найти всевозможные связи, и все это круто визуализировать.

В идеале кто-то, кто хорошо умеет работать с графами / нетворк визуализациями, с использованием всяких Gephi, PyVis и прочего.
Над этим я успел уже немного поработать и сам, но буду очень рад подсказкам/помощи/идеям от профессионала или просто более опытного аналитика, чем я.

Сам я это делаю ради интереса, поэтому ничего материального предложить не могу, но обязательно упомяну вас (или ваш блог / проект / компанию) как соавтора в блоге (timsh.org), ну и тут, если захотите. Трафика у меня сколько-то есть)

На мой взгляд, тема супер свежая и интересная (уже неделю как маньяк не могу отлипнуть).
Приходите в личку, если хотите поучаствовать, в идеале сразу с коротким интро “я умею вот это”: @timshbnv

P.S. Если вы узнали в описании выше кого-то знакомого - скиньте ему, пожалуйста!
Если вдруг у вас канал / группа, где только такие люди и сидят - тем более! буду очень благодарен
🕊7🔥6🤯5👍4