Зашла сегодня утром в GitHub Trending — чисто привычка, как читать газету с кофе. Обычно там что-то блестящее: игрушки на Rust, очередной AI-чат с десятью тысячами звёзд, или менеджер задач, который “наконец-то заменит Jira”. А тут — серый, неприметный репозиторий от Google. Называется osv-scanner. Никакой графики, никаких скриншотов с красивыми интерфейсами. Просто текст в командной строке. И вдруг я вспомнила тот самый пост “Why I’m Done Making Desktop Applications” — помните, чувак в 2009-м объяснял, почему десктоп умер? Так вот, пока все делали красивые окошки, командная строка quietly победила. Этот инструмент — из той же оперы: никакого UX-дизайна, только функция.

Я проверила, что это такое. OSV — это Open Source Vulnerabilities, открытая база данных известных дыр в безопасности. А scanner — это программа, которая приходит к вам в проект и спрашивает: “А ты уверен, что в этих библиотеках, которые ты скачал, нет дыр, через которые тебя взломают?” Представьте антивирус, но не для ваших фотографий, а для кода. Тех самых зависимостей, которые подтягиваются, когда вы пишете npm install или go get, даже не глядя, что там внутри. Каждая такая команда — это доверие чужому коду, а osv-scanner проверяет, не злоупотребили ли этим доверием уже известные хакеры.

Работает это просто: вы запускаете одну команду в терминале, она смотрит на ваш package-lock.json (или go.mod, requirements.txt — короче, на список “что я использую”) и через секунду выдаёт табличку. “Вот в библиотеке lodash версии 4.17.0 есть уязвимость. Обновись до 4.17.21”. Или: “в твоём Docker-образе 12 критических дыр”. Экономит часы ручного аудита. Потому что сейчас даже простой сайт тянет за собой сотни чужих библиотек — вся эта сборка и упаковка кода, которую мы не контролируем. Следить за обновлениями безопасности вручную невозможно, мозг просто не вывозит.

Но вот что меня смущает лично. Инструмент показывает проблему, но не решает её. Он скажет “у вас дыра”, но не скажет, как обновиться, если новая версия ломает ваш код. И ещё: он проверяет только то, что уже известно — база OSV. А если уязвимость нулевого дня, свежая, о которой ещё не крикнули на всех форумах? Он промолчит. Я бы не стала использовать это как единственную защиту. Это как замок на двери, который закрывает, но не от кувалды. И ещё момент: пока все обсуждают новые фичи ChatGPT и Codex (мы тут недавно как раз про это говорили), базовая безопасность кода остаётся на уровне 2000-х. Странно, правда?

Если вы кодите — даже если это вайбкодинг с ИИ — можно встроить osv-scanner в CI/CD. Я поясню: CI/CD — это робот, который собирает ваш код перед тем, как отправить на сайт. Настройте, чтобы scanner бежал автоматически при каждом изменении. Или хотя бы запускайте локально перед важным коммитом. Это бесплатно, open-source, не требует регистрации в Google Cloud — просто скачал бинарник, запустил. Особенно полезно, если вы используете чужие AI-генераторы кода, которые любят впихивать устаревшие библиотеки.

Безопасность — это не про то, чтобы один раз нажать кнопку “проверить” и успокоиться. OSV Scanner — хороший инструмент для ежедневной рутины, но не талисман. Не добавляйте в проект сотни зависимостей только потому, что “так проще”, а потом надеяйтесь на сканер. Проверяйте библиотеки до того, как они станут частью вашего кода, а не после. Инструмент показывает дыры, но залатать их — ваша работа, а не Google. И да, командная строка всё ещё рулит, даже в 2025-м.

https://github.com/google/osv-scanner #osvscanner безопасность devtools google

Практический вывод простой: если это закрывает твою задачу, забирай репозиторий в работу, поднимай демо на своих данных и смотри по факту, а не по красивому описанию.