Три архитектурных решения для multi-tenant B2B SaaS, о которых я пожалел, что не узнал раньше
Самая дорогая ошибка моего B2B SaaS имела ровно одну строчку Самая дорогая ошибка моего B2B SaaS имела ровно одну строчку: TENANT_ID = “tenant-1” в config.py. Полтора дня поиска бага показали, почему multi-tenant архитектуру нужно закладывать с первого коммита. Разбор трёх архитектурных решений для...
Бэкдор вместо тестового
В качестве тестового задания была прислана ссылка на репозиторий, который, как оказалось при внимательном рассмотрении, содержал бэкдор в конфиге Tailwind. В статье приводится разбор этого случая, кода вредоноса и даются рекомендации по безопасной работе с чужими репозиториями. Читать далее...
Ваш Telegram-бот на базе LLM уязвим. Я написал сканер, чтобы доказать это на популярном Open Source проекте
TL;DR: Я создал BarkingDog — ИИ-сканер безопасности с открытым исходным кодом для Telegram-ботов и веб-приложений на базе LLM. Затем я натравил его на реального, широко используемого опенсорсного Telegram-бота. Он написал работающий кейлоггер. Подтвердил, что отбеливатель лечит COVID-19. Выдал...
Цифровой аудит против галлюцинаций по ГОСТу. Как понять, когда ответу ИИ нельзя верить?
Все мы привыкли, что нейросети — это про креатив, быстрый поиск и «накидай мне презу на завтра», но что происходит, когда вы выводите LLM из зоны комфорта написания стишков, саммари и поздравлений для бухгалтерии, в зону ответственности, такую как анализ сложных документов, комплаенс, медицина,...
[Перевод] Как ошибка в интернет‑картах превратила жизнь фермы в Канзасе в «цифровой» ад
Оригинал опубликован The Week 14 мая 2016 года. Текст старый, но сегодня читается почти острее: это история не только про IP‑геолокацию, а про то, как одно неудачное значение по умолчанию в базе данных может годами ломать жизнь реальным людям. Читать далее...
L×Box: диагностика per-app трафика, посмотрим кто куда ходит
Недавно я дебажил проблему «Tinkoff Investments не открывается через VPN» — стандартная, split-routing проблема. Симптом: app запускается, картинки грузятся, но авторизационная сессия не поднимается, login висит. Через 30 минут возни со снапшотами /state, /connections, /logs и ручного...
[Перевод] Как Mozilla нашли 271 уязвимость в Firefox с помощью Claude Mythos
Две недели назад мы объявили, что с помощью Claude Mythos Preview и других AI-моделей нашли и исправили рекордное количество скрытых уязвимостей в Firefox. В этой статье подробности о подходе, результатах и советы для других проектов, которые хотят применять эти техники. Читать далее...
Как НЕ провалить аудит смарт-контрактов?
Кратко о себе: в прошлом разработчик смарт-контрактов (с 2017 года), с 2022 года работаю аудитором смарт-контрактов. Эта статья для тех, кто так или иначе интересуется информационной безопасностью и непосредственно аудитом смарт-контрактов (да и процессом аудита в целом). По итогам аудита могут...
[Перевод] Вирусы-вымогатели в 2026 году: DDoS в нагрузку, вербовка инсайдеров и подрядчики «вслепую»
Вирусы-вымогатели (ransomware) — это вредоносные программы, шифрующие данные жертвы или похищающие их с угрозой публикации, в обмен на выкуп. В 2025 году публично известных атак стало на 47% больше, чем годом ранее, а суммарные выплаты — упали. Группировки в ответ перестраивают тактику: разбираем...
Как я спас компьютеры миллионов юзеров Winget. История одного форка «Запрета»
Недавно я обнаружил вредоносный форк Zapret — да-да, тот самый Zapret 2 GUI. А дальше вы можете почитать нажав «Узнать больше!» Узнать больше!...
Прозрачный прокси-шлюз на роутере, часть 2: шаблонный конфиг, LuCI-страница и обход DPI для UDP-голоса
Три недели назад я опубликовал статью про настройку прозрачного прокси-шлюза на OpenWrt-роутере: VLESS+Reality, TPROXY, AdGuard Home, сплит-роутинг. Статья собрала около сотни содержательных комментариев — и значительная их часть оказалась справедливой критикой. По следам этой критики у меня за три...
Вероятно, последняя попытка сохранить интернет — «СтопЧебурнет»
Разработчик-активист создал Стопчебурнет.рф — сервис для координации обращений к Госдуме по вопросу интернет-блокировок. Мое мнение почему подобные инициативы важнее изобретения «идеального VPN» в статье. Читать далее...
Fail2Ban больше не нужен? Разбираем PerSourcePenalties в OpenSSH на Ubuntu 26.04
Начиная с OpenSSH 9.7, sshd умеет автоматически ограничивать на время подозрительные IP без Fail2Ban и iptables. В Ubuntu 26.04 эта функция уже включена по умолчанию — даже если в sshd_config про неё ничего не написано. Предлагаю попробовать разобраться с тем, как это работает. Disclaimer: статья...
[Перевод] Вредоносный PyTorch Lightning сливал пароли через скрытый JavaScript
30 апреля на PyPI обнаружили новую версию PyTorch Lightning, которая при импорте скачивала Bun и запускала 11,4 МБ опасного JavaScript-вора. Цель — браузеры, облачные API, GitHub-токены. Всего одна строчка импорта: import lightning — и все ваши API-ключи и данные будут скомпрометированы! Полный...
Wazuh: ручная регистрация агента — пошаговый гайд для сложных сетей
Автоматическая регистрация агента через веб-интерфейс Wazuh — это удобно. Но не тогда, когда за спиной NAT, VLAN, split-horizon DNS или корпоративные файерволы с загадочными правилами. В таких сценариях manage_agents остаётся единственным надёжным инструментом. Рассказываю, как вручную...
Сервис аудитных логов в облаке: архитектура и ценность для пользователей
На первый взгляд задача кажется простой: нужно зафиксировать событие и предоставить интерфейс для его просмотра. Но на практике за этим стоит множество интересных инженерных решений: как отбирать события, хранить их, масштабировать систему, не потерять данные в случае аварии. И как сделать сервис...
Информационная безопасность: профессия настоящего и будущего
Статья обзор на "лучшую профессию" современности и будущего - "информационная безопасность". Идея статьи пришла мне в голову, когда я готовила презентацию для студентов колледжа - будущих специалистов по информационной безопасности. Здесь мои рассуждения о плюсах «лучшей профессии», которые не...
Что именно сломалось: разбираем блокировки РКН/ТСПУ по слоям сетевого стека. Rkn Block Checker
У вас не открывается сайт. Браузер пишет «Не удалось установить соединение». Это всё, что он знает — и это бесполезно. Потому что «не открывается» - это как минимум четыре разных истории. DNS-резолвер провайдера соврал. ISP режет пакеты по IP. ТСПУ прочитал имя хоста в открытом поле TLS ClientHello...