fa
Feedback
Blue (h/c)at Café

Blue (h/c)at Café

رفتن به کانال در Telegram

Здесь живут истории о безопасности — искренние, местами хаотичные, с оттенком усталости и самоиронии, но всегда честные и технически точные. Юмор слегка непостижимый, а котики появляются по мере критической необходимости. Без них никак.

نمایش بیشتر
3 812
مشترکین
-124 ساعت
+147 روز
+11830 روز
جذب مشترکین
ژوئن '26
ژوئن '26
+42
در 0 کانال‌ها
مه '26
+325
در 5 کانال‌ها
Get PRO
آوریل '26
+150
در 1 کانال‌ها
Get PRO
مارس '26
+132
در 1 کانال‌ها
Get PRO
فوریه '26
+119
در 0 کانال‌ها
Get PRO
ژانویه '26
+267
در 1 کانال‌ها
Get PRO
دسامبر '25
+95
در 0 کانال‌ها
Get PRO
نوامبر '25
+97
در 5 کانال‌ها
Get PRO
اکتبر '25
+101
در 1 کانال‌ها
Get PRO
سپتامبر '25
+89
در 1 کانال‌ها
Get PRO
اوت '25
+90
در 0 کانال‌ها
Get PRO
ژوئیه '25
+193
در 9 کانال‌ها
Get PRO
ژوئن '25
+82
در 3 کانال‌ها
Get PRO
مه '25
+92
در 0 کانال‌ها
Get PRO
آوریل '25
+111
در 1 کانال‌ها
Get PRO
مارس '25
+193
در 18 کانال‌ها
Get PRO
فوریه '25
+121
در 0 کانال‌ها
Get PRO
ژانویه '25
+98
در 2 کانال‌ها
Get PRO
دسامبر '24
+91
در 1 کانال‌ها
Get PRO
نوامبر '24
+131
در 1 کانال‌ها
Get PRO
اکتبر '24
+221
در 5 کانال‌ها
Get PRO
سپتامبر '24
+135
در 2 کانال‌ها
Get PRO
اوت '24
+119
در 1 کانال‌ها
Get PRO
ژوئیه '24
+91
در 3 کانال‌ها
Get PRO
ژوئن '24
+50
در 1 کانال‌ها
Get PRO
مه '24
+117
در 5 کانال‌ها
Get PRO
آوریل '24
+147
در 3 کانال‌ها
Get PRO
مارس '24
+271
در 4 کانال‌ها
Get PRO
فوریه '24
+258
در 4 کانال‌ها
Get PRO
ژانویه '24
+230
در 1 کانال‌ها
Get PRO
دسامبر '23
+204
در 4 کانال‌ها
Get PRO
نوامبر '23
+432
در 1 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
13 ژوئن0
12 ژوئن+2
11 ژوئن+2
10 ژوئن+3
09 ژوئن+1
08 ژوئن+5
07 ژوئن+4
06 ژوئن+5
05 ژوئن+2
04 ژوئن+3
03 ژوئن+5
02 ژوئن+4
01 ژوئن+6
پست‌های کانال
🎧 Реставрируем музыку дома Давно меня не было с постами и ресёрчами, но молчал не просто так, а пилил. Дальше будет лонгрид, но сначала немного контекста, без него никак Я люблю музыку. Не "фоном, пока работаешь", а так, что жалко каждый трек. А стриминги тем временем методично приучают нас, что музыка это не вещь, а доступ: подписка дорожает каждый год, треки в плейлистах внезапно сереют, западные лейблы свернулись, а в наших сервисах вместо запиканного слова уже играет звук из мема. Музыкой ты больше не владеешь. Ты её арендуешь. И условия аренды меняют без тебя В какой-то момент меня это просто достало. Я вернулся к своей коллекции с нулевых и упёрся носом в то, что добрая её половина это глухие mp3 на 128 kbps. И вместо того чтобы привычно поныть в комментах, я сел и собрал свою станцию, которая эту коллекцию чинит. Локально, без облаков и телеметрии, без "скачать музыку из интернета" Если по сути, то: 🔹 lossy-кодеки режут верх спектра (mp3-128k мрёт уже на 16 кГц), и этих частот в файле просто нет 🔹 я пошёл против SOTA-моды "регенерируй весь спектр целиком" и сделал наоборот: трогаем только верхнюю полосу, а низ кодек и так сохранил лучше любой модели 🔹 мелкая нейронка на 8.8М параметров (в 1.9 раза меньше Apollo) в строго парном бенче на 700 сэмплах статистически значимо обходит его по всем 5 метрикам 🔹 обучена на одном маке, без чужих весов И да, я честно расписал, как сам облажался с багом в бенчмарке (метрика орала, что прозрачный mp3 разрушен на -13 дБ, а на деле виноват был я), как из этого фейла родился adaptive deficit-gate и почему FAD-VGGish врёт в задачах BWE. Без хайпа, без "купи курс", просто разбор того, что реально работает и что нет. Читать на Хабре - ТЫК

2
ИИ-лудоманы, узнали себя? r/#shitposting
ИИ-лудоманы, узнали себя? r/#shitposting
730
3
🌊 Как бездарность портит жизнь пользователям Это отредактированный пост, так как мой юрист насчитал в оригинале пять потенциальных рисков: оскорбление по 5.61 КоАП, защита деловой репутации по 152 ГК, клевета по 128.1 УК, нецензурная брань, призыв к координированным действиям, а самое опасное - сексуализированное оскорбление конкретного лица и подача домыслов как фактов. Мы же не хотим моего отъезда на бутылку ... Ну вот и моё время пришло написать свой "хвалебный" отзыв о приложении, на которое я возлагал большие надежды. В плане рекомендаций, естественно = это реально то, что у них работало, даже с некоторыми условностями Да-да, Яндекс нейрослоп Музыка, речь пойдёт о тебе. Сегодня Ты - герой моего токсичного выплёскивания желчи на творение хороших программистов и бездарных дизайнеров. Ладно, сначала стоит затронуть тему, о которой они покорно молчат, чтоб не обидеться - запикивание и замалчивание уничтожения пласта музыки с неугодными "НАРКОТИКИ, ВОЙНА, ТАБЛЕТКИ". "Ну это же артисты сделали" - ага, все поголовно, а не злой пиджачок, которому нужно очко на хорошую оценочку полизать. Надеюсь, названный не прочитает мой пост, а то потом не сможет на себя в зеркало наяривать свой БОГОУГОДНЫЙ 🌵 Мама, я люблю дофамин, мама, я люблю AI-слоп. Мама, я прям крутой, мама, я убил весь UI. Мама, я люблю пихать сторис в UX. А всё потому, потому что я - <УДАЛЕНО> Фух, с частью, в которой мы обсираем косвенно контору 🥸- закончили. А теперь у нас слоп слон 🐘 в комнате. Вы не заметили, как вам втюхали хрючево под видом "ауенно, молодёжно, стильно"? Каждый редизайн хуже предыдущего: кнопки переезжают, привычные функции прячут куда-то в подвал, зато сторис артистов на главной - пожалуйста. Это музыкальный плеер или инстаграм? У меня был выстроенный flow: открыл, тыкнул, играет. Теперь открыл, поискал куда дели кнопку, нашёл, тыкнул, выскочило что-то новое, закрыл, тыкнул ещё раз, играет. Прогресс! Схаваете 🍽? Стерпите? Ответ один - ДА! Тут примерно как и с выбором без выбора: кому-то нужна оценочка в квартале, а вы, пользователи, жрите Напомнило, ТЫ ТРЯСИ-ТРЯСИ СМАРТФОН, чтобы потерять песню Отдельная моя боль - чарты. Открываешь топ, а там через одного ИИ-исполнители. Не фит с нейросетью, не эксперимент живого артиста, а целиком сгенерированный трек от несуществующего человека. И он стоит в одном ряду с людьми, которые годами писали музыку, ночевали в студиях, собирали залы по 50 человек. Нейросеть не страдала, не переживала развод, не писала текст в четыре утра на кухне, потому что не могла уснуть. Она сгенерировала статистически вероятный хит за три секунды и заняла место в чарте. Честно 🛑? А живой артист с тысячей прослушиваний сидит внизу и думает, что он бездарь, хотя проблема не в нём, а в том, что алгоритм продвигает то, что дешевле производить. Яндекс зарабатывает на контенте, ИИ-слоп стоит ноль, живой артист хочет роялти. Угадайте, кого алгоритм будет любить больше - маму А AI слоп фичу видели? Такую уйню порет, ребята, МОЛЮ ВАС, почините свой Deepseek, он сам ахуевает от ваших файнтюнингов. Интересный факт для дата-сайентистов Яндекса, которых понабрали из стажёров: когда вы заливаете в файнтюнинг всё подряд, думая "чем больше данных, тем лучше" - модель начинает деградировать. Это называется catastrophic forgetting: базовая модель умела генерализировать, а после агрессивного дообучения на гигантском, но шумном датасете она забывает исходные способности и начинает уверенно пороть чушь. Чем больше мусора в обучающей выборке, тем увереннее модель в своём мусоре - она не становится умнее, она тупеет. Плюс overfitting на доминирующий паттерн: если 80% ваших данных это попса, модель будет рекомендовать попсу даже там, где просили джаз. Больше данных != лучше модель. Больше качественных данных = лучше модель. Но качество стоит денег, а стажёры стоят дешевле Больше меня не будут звать и пускать на мероприятия яндекса - увы Мой вывод прост: удалить, захейтить, распространить, тихо хихикать в другом сервисе
1 600
4
Timeweb - говно
2 107
5
🐧 Fragnesia: ядро забывает, что память чужая Помните Dirty Pipe? Помните Copy Fail? Ну вот, встречайте третью серию: Fragnesia, она же CopyFail 3.0, она же часть класса Dirty Frag (CVE-2026-43284 / CVE-2026-43500). Вчера опубликовали на oss-security, PoC уже на GitHub. Сегодня вечер среды, а у кого-то уже root Что опять происходит В ядре Linux есть ESP-in-TCP - это когда IPsec-трафик заворачивают в обычный TCP-сокет. Нормальная штука для VPN. Проблема в том, что происходит, когда TCP-сокет переключается в режим espintcp ULP *после* того, как в его receive queue уже через splice() попали данные из файла. Ядро смотрит на эти данные и думает: "О, ESP-шифротекст, надо расшифровать". А это не шифротекст. Это страницы page cache от обычного файла. И ядро берёт AES-GCM keystream и XOR'ит его прямо в read-only страницу Без race condition. Без гонки. Детерминистически. Один байт за одно срабатывание, но атакующий контролирует IV nonce, а значит контролирует keystream byte, а значит может записать любой байт в любое место page cache. Строишь lookup table на 256 записей (все возможные keystream-байты → nonce), и посимвольно перезаписываешь /usr/bin/su маленьким ELF-стабом, который делает setresuid(0,0,0) и exec("/bin/sh"). 192 байта, и su теперь даёт root без пароля Самое неприятное это то, что файл на диске не тронут. Только page cache. Это значит: проверка целостности через rpm -V или debsums покажет "всё чисто". А su при этом спавнит рутовый шелл. И будет спавнить, пока кто-нибудь не сделает echo 3 > /proc/sys/vm/drop_caches или не перезагрузит машину. Форенсика по диску ничего не найдёт, потому что на диске всё в порядке Затронуто: Ubuntu, RHEL 8/9/10, AlmaLinux, Fedora, openSUSE, CentOS Stream Митигация до патча (от Claude): rmmod esp4 esp6 rxrpc 2>/dev/null printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf Читать тут - ТЫК Учтите, что этот патч, что прошлые, все они ломают IPsec. Если у вас на этих серверах VPN-туннели через ESP - ну, выбирайте между VPN и root shell для любого локального пользователя Для эксплуатации обычно нужен CAP_NET_ADMIN, так что в нормально настроенном Kubernetes с default seccomp profile это не стреляет. Но на виртуалках, bare metal, CI/CD runners с привилегированными контейнерами - вполне Dirty Pipe, Copy Fail, Dirty Frag, Fragnesia. Каждый раз одна и та же история: splice() + page cache + ядро забывает проверить ownership. В какой-то момент, может, стоит пересмотреть саму архитектуру работы с page cache, а не латать каждую новую дырку по отдельности. Но это я так, мечтаю вслух, устал от еженедельных LPE
3 104
6
🧠 Помните Copy Fail? Так вот, нашли ещё два способа делать то же самое Неделю назад я писал про CVE-2026-31431 - 732 байта Python и ты root. Баг в крипто-подсистеме ядра, через splice() и page cache. Казалось бы - ну нашли, ну пропатчили, живём дальше А вчера V4bel выкатил DirtyFrag. Два новых бага того же класса. Тот же принцип - через splice() загоняем страницы файла в ядерную криптографию, ядро расшифровывает "на месте" и перезаписывает содержимое прямо в page cache. Только теперь не через AF_ALG, а через два других модуля - ESP (IPsec) и RxRPC 👀 Два пути к root. Выбирай какой нравится Первый - через ESP. Создаём XFRM-ассоциацию с UDP-инкапсуляцией, засовываем страницы /usr/bin/su в пайплайн через splice(), ядро делает in-place расшифровку и пишет 4 байта куда мы скажем. Повторяем - записываем 192-байтный шеллкод поверх su. Запускаем su - получаем root. Звучит знакомо? Это буквально тот же паттерн, что и Copy Fail, только через другую подсистему. Баг в ядре с января 2017 года Второй - через RxRPC, и вот тут красиво. Вместо перезаписи бинарника - патчим /etc/passwd. Создаём rxkad-токен с нужным ключом шифрования, ядро через rxkad_verify_packet_1() делает pcbc(fcrypt) расшифровку прямо по странице файла. Три splice-операции с перекрытием - и строка root:x:0:0: превращается в root::0:0:. Пустой пароль. su root, Enter, всё. Причём нужный ключ шифрования подбирается в юзерспейсе - полностью офлайн, без единого обращения к ядру. Один детерминированный триггер в конце. Этот баг с июня 2023 года Ни одной гонки. Ни одного race condition. Детерминированная логика - настроил параметры, дёрнул расшифровку, page cache перезаписан. Если что-то пошло не так - ядро не падает, можно повторить Проверено на Ubuntu 24.04, RHEL 10.1, openSUSE Tumbleweed, CentOS Stream 10, AlmaLinux 10, Fedora 44. Компилируется одной строкой: gcc -O0 -Wall -o exp exp.c -lutil И вот тут начинается самое интересное - CVE нет. Патча нет. Ни для одного дистрибутива. Потому что кто-то сломал эмбарго до того, как вендоры успели выкатить фиксы. Исследователь связался с linux-distros@openwall, те попросили опубликовать - и он опубликовал. Полный исходник, компиляция, запуск. На момент публикации - zero-day в чистом виде Что мы имеем. Dirty Pipe в 2022 - page cache через пайпы. Copy Fail неделю назад - page cache через AF_ALG. DirtyFrag вчера - page cache через ESP и RxRPC. Три разных подсистемы, один и тот же баг-класс. Ядро Linux полно мест, где криптооперации делаются «на месте» по данным из splice(). Каждое такое место - потенциальная запись в page cache. Сколько ещё таких мест в ядре - вопрос открытый. Подозреваю - не мало 👀 Митигация прямо сейчас (патча-то нет): printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf rmmod esp4 esp6 rxrpc 2>/dev/null Что может сломаться - ESP модули нужны для IPsec VPN. Если у вас site-to-site IPsec или strongSwan - подумайте дважды. RxRPC на Ubuntu загружен по умолчанию, но реально его использует только AFS (Andrew File System). Если у вас нет AFS - смело отключайте Три года, девять лет. Два бага лежали рядом и ждали. Один исследователь, один эксплойт, все дистрибутивы. И на момент публикации - ни одного патча. Вот вам и координированное раскрытие
11 246
7
🏆 Pentest Award 2026 - приём заявок открыт Если в этом году вы ломали что-то интересное и вам за это ничего не было (если уже сидите по 272, то тоже можно, но не желательно 🍽) - самое время этим похвастаться. Pentest Award снова принимает заявки. Бесплатно, как и всегда - за вход вы платите историями 🐾 Суть простая - показываешь свою работу, смотришь что делают другие, тихо радуешься что это они ломали чужое, а не твоё. И это не очередная конференция или митап. Для нас, это место, где нормально говорить "я получил доступ через ебейшую цепочку" и тебе за это жмут руку, а не заводят тикет и не ставят на бутылку в угол • За первое место - макбук и статуэтка (статуэтку можно поставить рядом с монитором, чтобы маме наконец-таки объяснить, что ты не просто кнопочки тыкаешь). • За второе-третье - айфоны и смарт-часы. Награждение 14 августа на Красном Октябре Заявки на сайте 👀
2 025
8
💥 732 байта Python-скрипта - и ты root на любом Linux Вчера опубликовали CVE-2026-31431, она же Copy Fail. Локальное повышение привилегий в ядре Linux. Работает буквально на всём - Ubuntu, RHEL, Amazon Linux, SUSE, Debian, Arch. Без гонок, без подбора смещений, без привязки к конкретной версии. Один скрипт, 732 байта, любой непривилегированный пользователь становится root. И этот баг лежал в ядре с 2017 года. А где вы были эти 9 лет 💥 ???? 🥲 Что произошло В 2017 году в подсистему ядра algif_aead добавили оптимизацию - криптооперации стали выполняться "на месте", входной и выходной буферы указывают на одну память. Логично же, зачем копировать туда-сюда, только вот когда данные подаются через splice() из файла - в выходной буфер попадают страницы файлового кеша ядра. Те самые, через которые ядро хранит содержимое файлов в памяти, а в authencesn (обёртка для шифрования, которую юзает IPsec) - есть запись 4 байтов за границей выходного буфера. Обычно это не должно ничего страшного за собой нести, но когда выходной буфер - это страница кеша, эти 4 байта перезаписывают содержимое файла прямо в памяти Дальше просто: берём SUID-бинарник /bin/su, через splice() загоняем его страницы в пайплайн, дёргаем расшифровку и контролируемо пишем 4 байта в кешированную копию. Проверка HMAC падает, recvmsg() возвращает ошибку, но запись уже случилась. Модифицированный SUID запускается с правами root. Занавес, алес или что-то подобное Когда читаешь, всё реально просто, а потом сам залез в код... Три коммита за шесть лет (2011, 2014, 2017). Каждый по отдельности безобидный. Вместе - полный захват. Я про это буквально недавно писал - мы думаем уязвимостями, а атакующий думает цепочками. Вот ещё одно подтверждение моей шизотеории про цепочки уяз Нашли это, кстати, не люди. Исследователь скормил гипотезу в Xint Code - ИИ-аудитор кода и тот за час прочесал всю криптоподсистему ядра. То, что люди не замечали девять лет, машина нашла за час с правильно поставленным вопросом. Можно спорить про ИИ в безопасности, но тут спорить не с чем А отдельно доставляет история с рейтингами. Ubuntu изначально поставил medium priority. По их же собственным гайдлайнам - должен быть high. Потом подняли, да, но сколько команд за эти дни глянули на medium и отложили на потом? 👀 А был бы hackadvisor... Кого касается в первую очередь - мультитенантные хосты, Kubernetes-кластеры, CI/CD-раннеры. Любое место, где чужой код крутится от непривилегированного юзера на общем ядре. Из контейнеров, по словам исследователей, тоже можно сбежать, детали обещают позже. Я дал задачу claude opus, со снятым ограничением, чтобы он ресерчил и пробовал на демостендах, что найдет - отпишу 🍽 Что делать Фиксить: ядро до 6.18.22+, 6.19.12+ или 7.0+. Если прямо сейчас не можете, то лучше отключить модуль: echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf rmmod algif_aead dm-crypt, LUKS, IPsec, TLS, SSH - ничего из этого не сломается, они все работают через криптографию ядра напрямую, минуя AF_ALG Девять лет. 732 байта. И medium в трекере. По-бе-да, оригинал статьи - ТЫК
0
9
💥 Почему мы до сих пор думаем уязвимостями, а не цепочками Давайте будем честны. Мы нашли SQLi - завели тикет. Нашли SSRF - завели тикет. Нашли misconfigured IAM - завели тикет. Три medium, CVSS 6.5 каждый. Ни один не попал в критичный спринт. А потом кто-то собрал из них цепочку SQLi -> SSRF -> IAM credentials -> S3 с ПДн 100 миллионов клиентов, да-да привет, Capital One. И тут проблема не в том, что мы не находим баги, а именно как мы о них думаем 🥲 Немного цифр для контекста Из всех опубликованных CVE за последние 10 лет реально эксплуатировались 1.1%. При этом 28% уязвимостей, которые реально использовались в атаках Q1 2025 - имели medium CVSS. Да, не удивляйтесь, medium уязы, те самые, которые мы откладываем "на потом" У среднего приложения 21 уязвимость. Из всех exposure организации 80% - это мисконфигурации, даже не cve. А 74% найденных exposure вообще тупики для атакующего. Зато оставшиеся 26% позволяют двигаться к критичным активам. И только на 2% exposure сходятся множественные attack paths - это и есть choke points, о которых будем дальше. Медианное время эксплуатации уязвимости - 5 дней. Среднее время remediation критической уязвимости - 60+ дней. 55-дневный зазор. И именно в нем кроется 💩 🔗 Мышление цепочками - в чём суть Суть в том, что реальная атака будет строиться как цепочка шагов, каждый из которых по отдельности выглядит терпимо, а не базовая во всех смыслах - "эксплуатировали CVE-2026-XXXX". Вспомним наш любимый axios (я про него писал). Что там было? Угнанный npm-аккаунт -> phantom dependency в манифесте (нигде не импортируется) -> postinstall хук -> двухслойная обфускация -> определение ОС -> C2 -> RAT -> self-cleanup. 8!!! шагов. Ни один из них по отдельности не выглядит как "critical". Вместе - полный compromise. Или Trivy Actions в марте этого года: AI-бот нашёл misconfiguration в pull_request_target workflow -> украл PAT -> перезаписал 75 из 76 version tags -> каждый CI/CD пайплайн, который использовал эти tags, выполнял малварь Сканер безопасности стал вектором атаки. Ужасно иронично, не находите? 🍽 🐈 Choke points - как фиксить не всё, а то что важно Вместо стандартного "фиксим 847 уязвимостей по CVSS" мы подумаем и построим граф атаки и найдем точки схождения, где пересекаются множественные пути к критичным активам. А иначе вопрос, зачем нам Ai,Ai,Ai,Ai в каждой презентации и обвалы акций сесурити компаний? Возьмем данные от XM Cyber: только 2% от всех найденных слабых мест - это узловые точки, через которые проходят сразу несколько путей атаки. Фикс одной такой точки ломает десятки цепочек одновременно. Это ровно то, что я предлагал в посте про зависимости: не "фикси все 847 алертов npm audit", а "пойми, какие из них реально достижимы и какой один фикс закроет максимум путей" 🙂 Что делать на практике Вместо CVSS как единственного приоритета мы должны рассматривать стек: реально эксплуатируется? -> какова вероятность эксплуатации в ближайшие 30 дней? -> торчит ли наружу? насколько критичен для бизнеса? сходятся ли на нём другие пути? Такой подход сокращает "срочные" уязвимости с 16,000 до 850. Минус 95% шума, что победа для любого размера команд аппсек. Ну и CJA (Crown Jewel Analysis) - определяем что реально критично для бизнеса, а не что имеет высокий CVSS. Строим пути от точек входа до crown jewels, ищем choke points, фиксим первыми 📕 Вывод Мы не проигрываем потому что не находим баги. Мы проигрываем потому что думаем о них поштучно, а атакующий думает цепочками. Пока мы приоритизируем по CVSS и фиксим critical по одному - он собирает три medium в один critical path и уже у нас внутри, а потом внутри вас начальство 👀 Единственный способ это изменить - перестать считать уязвимости и начать считать пути
0
10
🎸 Давай-те снова отвлечёмся на музыку Про данную песню было тяжело писать. Когда я готовлю посты - ставлю музыку на фон, но тут мне пришлось писать в абсолютной тишине. Так что тут будет не так много моих частичек эмоций, простите... 👀 Есть песни, которые знают все. Их поют в подъездах, на кухнях, на <УДАЛЕНО ПО ТРЕБОВАНИЮ РОСКОМПОЗОРА>. Их текст гуглят, чтобы не перепутать куплеты. А потом оказывается, что те, кто пел громче всех - не понял смысла этой песни 🫠 "Всё идёт по плану" Егора Летова - это, наверное, самая неправильно понятая песня в истории русского рока. Её сделали гимном. Протестным, ироничным, дворовым - каким угодно, но не тем, чем было задумано самим автором. А Летов очень злился, потому что это не гимн, это ебанная трагедия, написанная голосом человека, у которого уже нет сил злиться Он говорил прямо: песня написана не от его лица. Он сел перед телевизором, представил себя обычным советским человеком - подавленным, раздавленным системой - и стал записывать всё, что приходит в голову. Потом переписал "не своим слогом", утрируя: "хороший был вождь", "дедушка Ленин". Как сам бы никогда не сказал из-за его взглядов. Забавно, что сегодня можно проделать тот же эксперимент - сесть перед телевизором и записать, что слышишь. Слова будут другие, а интонация та же самая Но чтобы понять, откуда этот голос - нужно знать, что было за два года до записи Осень 1985-го. Мать одного из участников группы, партийная, услышала записи и пошла в КГБ 😎 - "сына втянули в антисоветскую организацию". К ноябрю дело было подшито и всё готово для задержания и суда. Летова отправили на принудительное лечение в психиатрическую больницу. Диагноз поставили "вялотекущая шизофрения". Три месяца он страдал с 8 декабря 1985-го по 7 марта 1986-го В разных источниках - разная информация о том, чем его накачивали Там его накачивали нейролептиками. Неулептил в таких дозах, что он временно ослеп. Он потом сравнивал действие этих препаратов с лоботомией и говорил, что впервые столкнулся с тем, "что хуже смерти". Чтобы не сойти с ума он сочинял стихи и рассказы прямо в палате. Брат Сергей вытащил его хитростью - пригрозил собрать пресс-конференцию с иностранными журналистами и заявить, что никакой перестройки нет, а музыкантов держат в психушках насильно. В 85-м это ещё работало - иностранных журналистов ещё стеснялись Текст "Всё идёт по плану" датирован 1986-м - тем самым годом, когда Летов вышел оттуда. А запись случилась в январе 88-го максимально тайно, в ГрОб-студии, то есть в его собственной квартире в Омске. Плёнки не хватало - всё "лишнее", что не проходило его внутренний цензор тут же перезаписывалось. Ударные в первый день, бас и ритм во второй, голос с соло-гитарой за полтора дня Человек, которого государство пыталось сломать химически - вышел, сел в своей квартире перед магнитофоном и записал на кассету голос того, кого сломали. Голос человека, у которого всё идёт по плану - потому что у него нет ни сил, ни воли, ни языка сказать, что ничего не идёт. Если вдуматься, то даже сейчас, в такое <УДАЛЕНО ПО ТРЕБОВАНИЮ РОСКОМПОЗОРА> этот голос никуда не делся. Он просто пересел с кухни в комментарии и чаты, сменил "дедушку Ленина" на другие слова, но интонация - та же усталая покорность А потом эту песню сделали весёлой Летов умер 19 февраля 2008-го в своей квартире в Омске. Ему было 43. Причина - острая дыхательная недостаточность от отравления алкоголем. Тот самый план, видимо, дошёл до последнего пункта 🫠
0
11
Переезд на другой канал музыки
0
12
🎸 Давай-те снова отвлечёмся на музыку Бывает так, что ты просыпаешься утром и понимаешь - ничего не изменилось. Вчера ты решил, что всё будет по-другому, что начнёшь сначала. А утро приходит и ты снова тот же. Те же привычки, те же мысли, тот же маршрут до туалета. И для этого ощущения есть песня, которая описывает его точнее, чем любой разговор с самим собой. Snow (Hey Oh) от RHCP на первый взгляд кажется лёгкой - быстрый перебор, мелодия для пробежки или пробки. Но она про одну из самых честных вещей, которые можно сказать вслух: я снова облажался, но я всё ещё пытаюсь Кидис не скрывал, о чём писал. Это песня про бесконечное повторение попыток начать заново - не про одну красивую попытку с чистого листа, а про серию провалов, после каждого из которых ты заставляешь себя встать ещё раз. Снег, в данном случае - не зимняя романтика, а скорее белая пелена поверх старых следов. Иллюзия, что их больше нет. Но они под ним. Всегда. Его собственные слова: "Я развалил всё, но у меня есть чистый холст - поле снега - и я могу начать заново". Не "у меня получится", а "я могу попробовать". Огромная разница, если смотреть на весь путь перцев Теперь поговорим про гитару Фрушанте. Перебор, который многие считают простым, на деле один из самых сложных рифов в дискографии группы. Четыре аккорда - G# minor, E, B, F# - прогрессия из тысячи других песен. Но Фрушанте использует cross-picking с переменным штрихом, добавляя hammer-on и pull-off внутри каждой фразы, а два последовательных удара вниз ломают паттерн и гитара начинает "дышать", как и сам Фуршанте, который с высокой долей вероятности мог бы уже и не дышать Я человек не музыкальный и не умею играть на гитаре, благо в интернете есть видеоразборы и много информации Он вдохновлялся Хендриксом, называл Electric Ladyland своей "библией" при записи Stadium Arcadium. Рифф повторяется всю песню. Снова и снова. Снова и снова. Снова и снова. Как попытка номер 158 встать и пойти дальше. Ну а чтобы понять, почему именно Фрушанте мог сыграть это так - нужно знать, через что он прошёл... Тут хочется отметить один из лучших видео по данной группе - ТЫК В 92-м он ушёл из группы на пике славы - после Blood Sugar Sex Magik. А ушёл не в другую группу ... ушёл долбить героин и крэк. К 96-му жил и тратил по $500 в день на наркотики. Журналист, который пытался записывать интервью описал его как "скелет, обтянутый кожей" - без зубов, с руками в абсцессах от грязных игл. Продюсер и лучший соня на студии Рик Рубин вспоминал визит к нему: "Стены были в крови, а вокруг - повсюду рвота" К концу 97-го он был бездомен и стоял перед реальной перспективой смерти. В январе 98-го лёг в реабилитационную клинику и после этого пока не срывался (он, не перцы). Удаление всех зубов, импланты, пересадка кожи на руках. Флеа пришёл навестить его после всего пережитого и предложил вернуться в группу - Фрушанте заплакал и сказал, что ничто в мире не сделало бы его счастливее. И вот этот человек, тело которого было перешито и перелатано - садится в студии и записывает гитарную партию для Snow (Не с первых 100-ни раз. По записям концертов можно видеть насколько его руки отрафировались). Для песни о том, как ты снова и снова пытаешься начать с чистого листа. Пальцы, на которых когда-то не было ногтей, выдают один из самых сложных рифов в поп-роке пять с половиной минут без единой паузы Ну да, Snow не утешает, она не говорит, что всё будет хорошо, но она превращает повторение в ритуал, который уже выглядит как какая-то практика. Каждое утро ложится новый снег. И каждое утро ты выбираешь - лежать под ним или встать и оставить новые следы, зная, что к завтрашнему утру их снова засыплет Иногда именно в этом повторении и есть весь смысл 🍽 Немного отступлений За последние пару ночей я написал 5 постов про музыку и поэтому давай-те с вами запустим маленькое голосование, которое поможет определиться. Создать отдельный канал про музыку/радио/отдушину для всех заебавшихся иб куколдов, недавольных работой, уставших от переработок, <место именно для тебя> или остаться тут и пох кто нам чего скажет?
0
13
🚀
0
14
😑 axios 1.14.1/0.30.4 скомпрометирован 31 марта угнали npm-аккаунт основного мейнтейнера axios, подменили email на protonmail и залили axios@1.14.1 и axios@0.30.4 - обе ветки за 39 минут. В самом axios ни строчки вредоносного кода. Вместо этого в dependencies добавлен phantom-пакет plain-crypto-js@4.2.1, который нигде не импортируется - его единственная задача запустить postinstall хук с кроссплатформенным RAT-дроппером на macOS, Windows и Linux. Подготовка была заблаговременная: за 18 часов до атаки зарегистрирован plain-crypto-js@4.2.0 - чистая копия crypto-js, чтобы пакет не выглядел нулёвым для сканеров. Потом тихо обновлён до 4.2.1 с payload'ом. Обфускация двухслойная: XOR-шифр с ключом "OrDeR_7077" (через Number() всё кроме цифр превращается в NaN -> эффективный ключ [0,0,0,0,0,0,7,0,7,7]) плюс реверс строки и base64. C2-сервер на sfrclak[.]com:8000, а POST body маскируется под npm-трафик - "packages.npm.org/product0" для macOS, product1 для Windows, product2 для Linux. После выполнения дроппер удаляет себя, удаляет package.json и подменяет его чистым стабом из package.md. Любая посмертная проверка node_modules/plain-crypto-js/ покажет абсолютно чистый манифест. npm audit ничего не найдёт. Единственный индикатор - само существование директории plain-crypto-js в node_modules, которой там быть не должно. Детальный разбор с таймлайном атаки, декодированными строками, process tree и IOC - ТЫК 🧠 Делаем выводы Это идеальная иллюстрация того, о чём мы говорили в прошлом посте. CVE-based SCA тут бесполезен - в момент атаки CVE нет. Reachability analysis не поможет - plain-crypto-js нигде не импортируется в коде. Классический npm audit в момент установки ничего не покажет. Что сработало бы: 🔵 Behavioral analysis - phantom dependency (в манифесте есть, в коде нет ни одного require/import) + postinstall хук, это два жирных красных флага, которые могут детектировать сканнеры 🔵 Provenance check - все легитимные релизы axios публикуются через GitHub Actions с OIDC Trusted Publisher. У 1.14.1 нет trustedPublisher, нет gitHead, нет соответствующего коммита - ручной publish украденным токеном 🔵 Cooldown - plain-crypto-js@4.2.1 был опубликован за 24 минуты до axios@1.14.1. Любой cooldown-период от 24 часов заблокировал бы установку 🔵 --ignore-scripts - postinstall бы просто не выполнился Четыре независимых слоя, каждый из которых по отдельности остановил бы атаку. Ни один из них не требует CVE 👎
0
15
💥 Предположим, что зависимости - это ваш код Допустим, мы в проде крутим 500 npm-пакетов, из которых 480 - транзитивные, и при этом делаем вид, что отвечаем только за свой main.js на 200 строчек. А потом удивляемся, когда нас имеют через debug@5.0.0, который залил товарищ🇨🇳 из Shai Hulud Посмотрел пару постов\статей и по данным, менее 9.5% уязвимостей в зависимостях реально достижимы через call graph. 90% алертов - шум. А supply chain атаки вообще не имеют CVE на момент компрометации. И тут, есть подход, который решает обе проблемы - анализировать зависимости как свой код 🧠 Reachability analysis Вопрос возникает совсем необчный для SCA - не "есть ли CVE", а "достижима ли уязвимая функция из нашего кода". Три уровня глубины, которые я отметил: 🔵Dependency-level: используется ли пакет вообще. Грубо говоря, минус ~30% шума 🔵Function-level: call graph (CHA -> RTA -> VTA), вызывается ли уязвимая функция. Минус ~90% 🔵Dataflow: taint tracking - течёт ли user input в уязвимый вызов. Минус ~95-98% Как пример возьму нашумевшую Log4Shell: function-level скажет "вы вызываете Logger.info()", что true для всех java-приложений. Dataflow покажет, течёт ли HTTP-параметр через цепочку `StrSubstitutor -> JndiLookup -> InitialContext.lookup(). Разница между 847 алертами и 12 реально эксплуатируемыми, что вызывает бурю дофамина, как при вайбкодинге (claude делает бр-бр-бр) 🔄 Behavioral analysis Как мы уже поняли CVE-based подход принципиально не ловит supply chain атаки - нужен анализ поведения, что усложняет задачу в x10. У нас из opensource есть - Datadog GuardDog: Semgrep-правила + YARA. Да, со своими проблемами, недочетами, НО у вас есть ИИшки - допилите сами, как сделал я. Отдельная история это гумозные install scripts. 94% вредоносных npm-пакетов используют postinstall для запуска пейлоадов. Shai Hulud именно так распространялся, как все помнят, надеюсь. Но и для этого есть прикольная фича с pnpm, где можно отключить postinstall ⚙️ SAST + diff-review зависимостей Semgrep по умолчанию пропускает node_modules/, что нам мешает обратно включить через --include и натравливаем те же правила, что и на свой код. CodeQL включает node_modules/ автоматически, через custom queries ищем dangerous sinks в зависимостях. Для остальных языков +- тоже самое, думаю, не запутаетесь и логика понятна. Каждый PR с обновлением зависимости - это code review. Как будто разраб закинул PR. Нам не обходимо задать несколько вопросов: Что изменилось? Появились новые network calls? eval()? Если он не знает - смотрим сканнеры. Renovate (не забываем отключать телеметрию) с postUpgradeTasks оркестрирует: cooldown 7–14 дней, автоматический GuardDog и Semgrep на обновлённой зависимости прямо в PR. 😕 Где ломается Ни один подход не серебряная пуля. xz-utils - payload в release tarball, в git его не было, спасают только reproducible builds. Spring4Shell - function-level бесполезен, нужен dataflow через class.module.classLoader traversal. Trivy - в марте 2026 скомпрометирован сам сканер (точнее его экшены), 76 из 77 тегов Action перезаписаны. ☕️ Что по результатам тестов Вместо npm audit -> 847 vulns -> тикет "мы в курсе" -> кофе: SBOM (Syft) -> Grype (CVSS+EPSS+KEV в одну цифру) -> OSV-Scanner (call analysis) -> GuardDog (behavioral) -> Renovate (cooldown + diff + SAST) -> Dependency-Track (dashboard + VEX) Весь стек собрал на opensource. Ни один слой не достаточен сам по себе: reachability фильтрует шум CVE, behavioral ловит атаки без CVE, SAST на vendor/ ищет 0-day. Исследование с пайплайнами, CodeQL-запросами, Renovate-конфигами и CVE-кейсами - приложу к некст посту, если будет интересно Не болейте, не скучайте 🐈
0
16
Сейчас как раз должна была играть Гражданская оборона, видимо, вот и причина аппаратного сбоя
Сейчас как раз должна была играть Гражданская оборона, видимо, вот и причина аппаратного сбоя
0
17
Радио умерло, но я пока живой. Если не поднимется, что-то может поменяться...
Радио умерло, но я пока живой. Если не поднимется, что-то может поменяться...
0
18
ИИшечка прочно вошла и не выходит из наших жизней. Багбаунти это тоже не обделило и есть как хорошие последствие этой иинтегр
ИИшечка прочно вошла и не выходит из наших жизней. Багбаунти это тоже не обделило и есть как хорошие последствие этой иинтеграции, так и не очень. Собственна, вот есть условный Вася(имя вымышленное все совпадения с реально существующими Василиями случайны). Василий узнает из каких-то источников, что есть какая-то биг баунти и платят там биг деньги. Наш персонаж регистрируется на платформе бб, берет себе никнейм vasyan1337(все совпадения случайны, а никнейм вымышлен) и идет смотреть программы. Понимает, что это золотая жила, вон какие суммы платят. Денег хочется, а погружаться в то, как их получить - нет. И тут, у нашего новоиспеченного хакера возникает идея. "Чатжпт найди мне уязвимость здесь" и LLM, не будь дураком, находит. От осознания того, НАСКОЛЬКО просто она была найдена, Василий преисполняется и присылает еще больше уязвимостей. А потом еще и еще... Триажеры на утро, за кофе, разбирая ночные баги видят over9000 отчетов от vasyan1337 и все закрывают как N/A, NMI, просят показать импакт и тд. Василий не понимает, что происходит, засылает ответы в жпт, который отвечает триажерам, которые отвечают ему и так далее. Штош, добро пожаловать в вайбхантинг - новую проблему, с которой уже столкнулись некоторые вендора, а кто-то для себя ее еще откроет. Последствия у этого не самые радостные и страдают не только вендоры, но и багхантеры. А что конкретно может всех ждать - расскажу позже 😎
0