NOP::Nuances of Programming
56K subscribers
4.49K photos
11 videos
12 files
5.83K links
Любые вопросы по сотрудничеству: @ramilkr
Если нужен токен:
https://telega.in/c/nuancesprog
NOP::Humor - https://t.iss.one/nophumor
NOP::Recruiter Удаленка- https://t.iss.one/nopremote

РКН: 4977653520
Download Telegram
Слабое звено Azure: пять полных кросс-тенантных взломов

Исследователь Binary Security нашёл уязвимости в API Connections внутри Azure Logic Apps. Они дают полный доступ к чужому бэкенду и принесли исследователю 200 000 долларов.

ARM-запрос идёт в общий API Management с правами на все подключения. Поэтому чужой токен можно применить к Key Vault, Azure SQL или Jira.

Первый фикс закрыл path traversal, но не архитектурный доступ к чужим токенам. Минимизируй права токенов у своих Azure API Connections.

🔗 Подробнее

@nuancesprog #Security
👍3
H.264 Is Magic
H.264 — стандарт видеокодека для интернет-видео, Blu-ray, телефонов, дронов и камер.
Несжатое видео 1080p при 60 кадрах в секунду занимает примерно 370 МБ/с.

Автор сравнил PNG-скриншот и H.264-видео одной и той же страницы.
Скриншот весит 1015 КБ, а пять секунд видео с 300 кадрами — 175 КБ.

H.264 сжимает с потерями: он выбрасывает малозаметные детали изображения.
У MacBook Pro пропадают отверстия решёток динамиков, а кадр весит 7% исходника.
🔗 Подробнее

@nuancesprog #Data
👍2
Решение проблемы COUNT в Postgres

ParadeDB ускорила COUNT-запросы поиска в два раза. Пропускная способность выросла с 2645.8 до 5353.3 QPS.

Проверка видимости строк занимала 81% всех чтений страниц. Сегментная партиция по ctid сократила эти чтения с 1382 до 30.

Второй шаг — инвертировать карту DocId → ctid. Старый маппинг требовал n чтений ctid для n совпадений.

🔗 Подробнее

@nuancesprog #Data #Postgres
👍3
arm64e: как устроена подпись указателей PAC

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

Подпись хранится в неиспользуемых старших битах указателя.
На этом Mac под неё отведено 16 бит, а на A12 для ядра — 24.

Слабое место — указатели на функции в C: стандарт требует побайтового копирования.
Поэтому их подписывают одинаково, и любой годится вместо любого другого.

🔗 Подробнее

@nuancesprog #Security #C
👍5
Почему после 6 лет я разочаровался в GraphQL

Автор шесть лет использовал GraphQL в проде и больше не рекомендует его большинству. Безопасность и производительность перевесили удобство запросов.

GraphQL увеличивает поверхность атаки: авторизацию надо проверять на каждом поле. Он отправил 128-байтный запрос без логина и получил 500 за 10 секунд.

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

🔗 Подробнее

@nuancesprog #Security
👍4
Инженерия для медленного интернета

Автор блога brr.fyi 14 месяцев работал в Антарктиде.
Интернет там шёл через ограниченные спутниковые каналы американской антарктической программы.

Станция Мак-Мердо делила несколько десятков мегабит на почти тысячу человек.
На Южном полюсе связь была лишь несколько часов в день, пинг около 750 мс.

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

🔗 Подробнее

@nuancesprog #Infrastructure
👍4
Unslop: навык Claude против «вайбкоднутого» дизайна

Unslop — это навык для Claude, который находит и убирает признаки AI-дизайна. Он ловит фиолетовые градиенты, свечения, эмодзи-подписи и неровные отступы.

Он работает с React, Vue, Svelte, Tailwind и чистым HTML. Сначала он показывает аудит и направление, поэтому правки можно направить заранее.

Установи навык в ~/.claude/skills и вызови /unslop для дашборда или ссылки. Лицензия CC BY 4.0 разрешает коммерческое использование, но требует указать автора.

🔗 Подробнее

@nuancesprog #AI
👍5
Многопоточный libuv, но не совсем
Разработчик protty поделился заметками о проектировании многопоточного цикла событий на Zig. Он хотел сделать рантайм в духе Go или Tokio, но без аллокаций в куче.
Он напоминает, что модель «поток на ядро» часто выигрывает по пропускной способности и хвостовой задержке. Но распределять задачи по ядрам без воровства задач сложно, и не всегда это оправдано.
Готового кода нет: автор решил, что идея пока поживёт в голове. Среди выводов: не усложняй park/unpark и выбирай взаимно простое из n/2..n.
🔗 Подробнее

@nuancesprog #Languages
👍3
Tailscale превысил 10 Гбит/с на Linux

Tailscale выпустила набор изменений для Linux-клиента. Они ускоряют передачу данных через UDP segmentation offload и оптимизацию контрольных сумм.

Реализация wireguard-go в пользовательском пространстве обгоняет ядерный WireGuard. На bare metal Linux скорость превысила 10 Гбит/с.

Попробовать можно в нестабильном клиенте или Tailscale v1.40 в ближайшие дни. Но бенчмарк iperf3 на Ubuntu 22.04 — не гарантия для твоего окружения.

🔗 Подробнее

@nuancesprog #Infrastructure #Linux
👍5
Jepsen проверил ParticleDB и нашёл 96 проблем
Jepsen проверил ParticleDB с 1.1.4 до 1.1.18.11.rc-22. Для большинства хватало одного сервера, одного клиента и никаких сбоев.
К версии 1.1.18.11.rc-22 остались десять нерешённых проблем. При обычной работе в режиме occ по умолчанию база теряла зафиксированные записи.
Также serializable допускал аномалии и Lost Update. Orkes выпустила 1.1.19-rc.13 и заявляет, что исправила все оставшиеся проблемы.
🔗 Подробнее

@nuancesprog #Data
👍2
Semantic Compression
Кейси Муратори иронично разбирает типичный C++-подход: классы для каждой сущности. Наследование и шаблоны превращают простую модель в кашу.
Он считает, что учебные материалы по C++ в основном плохие. Сам он потратил шесть лет, прежде чем отказался от ООП.
В следующих статьях он покажет механические приёмы работы с кодом. Начнёт с Movement Panel — окна с кнопками поворота на 90 градусов.
🔗 Подробнее

@nuancesprog #Opinion
👍4
RAMBO: утечка данных с air-gap компьютеров через радиосигналы RAM
Вредонос на изолированной машине генерирует радиосигналы через шины памяти. Так можно передать файлы, изображения, нажатия клавиш и ключи шифрования.

Изолированные системы часто защищают самые чувствительные данные. Эта атака превращает RAM в радиопередатчик без сетевого доступа.

Скорость утечки достигает 1000 бит в секунду. Автор предлагает контрмеры для этой угрозы.

🔗 Подробнее

@nuancesprog #Security
👍3
Linux: уязвимость TCP use-after-free с CVSS 9.8

Уязвимость CVE-2026-98432 — use-after-free в IPv4 TCP-рукопожатии. Она позволяет удалённо выполнить код без аутентификации.

Ядро исправило её 15 октября, но Ubuntu и RHEL ещё не выпустили фикс. Контейнеры используют ядро хоста, поэтому новый образ не спасает.

Если патча нет, сбрасывай TCP-пакеты с IPv4-опциями. Go открывает multipath TCP-слушатели по умолчанию, проверь такие хосты первыми.

🔗 Подробнее

@nuancesprog #Security #Linux
👍2
Обгоняем компилятор на знаковом 32-битном делении

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

Такие операции часто встречаются в горячих циклах.
Разница в несколько инструкций заметно влияет на скорость.

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

🔗 Подробнее

@nuancesprog #Languages #C
👍2
В реальном репозитории ноль @ts-ignore и 117 as unknown as

Автор проверил 610 исходных файлов TypeScript. Запрещённых @ts-ignore не нашлось, зато grep показал 117 двойных приведений as unknown as.

Конструкция as unknown as обходит правило no-explicit-any и проходит ревью. Она семантически равна as any, но обычный grep её не ловит.

В CI добавили grep с бюджетом и явным allowlist-файлом. Исключение требует причины, а бюджет можно только уменьшать.

🔗 Подробнее

@nuancesprog #Languages #TypeScript
👍3
OmniDiff: быстрый content-aware Git difftool на Rust

OmniDiff сравнивает файлы по типу содержимого, а не просто построчно. Он понимает разные форматы файлов и выбирает под них свой алгоритм.

Разработчику это даёт меньше шума в ревью. Автор заявляет, что инструмент корректно обрабатывает 99,95% изменений кода и работает быстрее 100 мс.

Можно взять готовые бинарники с релизов или собрать через cargo install --locked omnidiff. Для VS Code встроенное сравнение пока заменить нельзя.

🔗 Подробнее

@nuancesprog #Tools #Rust
👍2
Proton: проблема не в AI, а в руководстве
404 Media выяснила, что CEO Proton Andy Yen назвал просьбу инженера о пентесте «loser thinking». Он призвал меньше «любовно писать код» и больше использовать AI.
Автор считает, что дело не в AI, а в унижении сотрудника за поднятую проблему безопасности. Для приватного сервиса осторожность — это часть продукта, который покупают пользователи.
Сотрудник на Reddit оправдал Йена: пентесты — это ок, если не тормозят пайплайн. Автор видит в этом согласие с корпоративной линией, а не честный спор.
🔗 Подробнее

@nuancesprog #Opinion
👍2
Trigger.dev: утечка переменных окружения клиентов

В Trigger.dev произошёл инцидент безопасности. Атакующий получил доступ к переменным окружения части организаций.

Переменные окружения часто содержат ключи API и секреты. Утечка таких данных открывает доступ к вашим сервисам.

Компания уже заблокировала эксплойт и уведомила пострадавших. Проверь почту и смени скомпрометированные секреты в своих проектах.

🔗 Подробнее

@nuancesprog #Security
Codex незаметно изнашивал SSD: 37 ТБ за 21 день

Один разработчик заметил, что SSD получил около 37 ТБ записей за 21 день.
Виновниками оказались база logs_2.sqlite и её WAL-файл (журнал предзаписи).

Файл оставался небольшим, но каждая вставка и удаление логов шли в SQLite.
TRACE, самый подробный уровень логирования, работал по умолчанию, и RUST_LOG=warn не выключал его.

Версия 0.142.0 существенно снизила шум: ранние тесты показали около 85% меньше записей.
Если используешь старую сборку, обнови и проверь счётчики реальной записи на SSD.

🔗 Подробнее

@nuancesprog #Tools #Rust
Ubuntu не выпустила патч для CVE-2026-98432

В ядре Linux нашли критическую уязвимость CVE-2026-98432, существующую с 2016 года. Anthropic собрала рабочий эксплойт, дающий root на сервере.

Debian выпустил патч 16 октября, а Ubuntu тянет больше двух недель. Все поддерживаемые релизы Ubuntu, включая LTS, помечены как уязвимые.

Волонтёрские проекты вроде Arch и Alpine выпустили фикс, а Ubuntu — нет. Автор отключил серверы и решил перенести их с Ubuntu.

🔗 Подробнее

@nuancesprog #Security #Linux