TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
StringConcat - разработка без боли и сожалений

11 Aug, 11:38

Открыть в Telegram Поделиться Пожаловаться

Тут опять произошло прекрасное.

Исследователи из JFrog решили проверить, что там с найденными (как выяснилось, в основном ИИ) уязвимостями в SQLite, и оказалось, что из 55 зарегистрированных CVE реальной была всего одна, а остальные — обычные галлюцинации ИИ: тут и выдуманные методы, и несуществующие пути эксплуатации, и нерабочие эксплоиты, и прочие радости жизни. Самое фиговое, что эти уязвимости уже успели попасть в CVE. То есть в следующем релизе вполне возможно, что какой-нибудь сканер начнет сношать вам мозг относительно критической уязвимости, которой никогда не существовало.

Можно подумать, что ИИ тут бесполезна. Но нет.

На мой взгляд, ИИ сейчас довольно неплохо работает там, где есть четко сформулированные правила, которые можно проверить. Например, при разработке агрегатов и инвариантов к ним. Можно попросить ИИ оценить белые пятна: не нарушается ли владение объектами, не забыли ли мы проверить уникальность, нет ли сценария, при котором агрегат может попасть в неконсистентное состояние и все в этом духе. Понятно, что это не магический анализатор, который найдет все проблемы. Но результаты иногда бывают довольно неожиданные и реально полезные. Как минимум, помогает посмотреть на модель с другой стороны и найти потенциальные баги до того, как они доедут до прода.

Вторая полезная штука — проверить наличие или отсутствие проверок безопасности. Но тут есть важный момент (и, кстати, он справедлив и для первого случая). Эти проверки должны быть единообразны и желательно централизованы.

Условно, если у вас простая модель разделения доступа, то на каждом контроллере должна быть аннотация @Secured (или что-то подобное), а не где-то глубоко в DAO. Иначе вы просто сожжете токены ибо ИИ не сможет понять, что именно является правилом, а что случайностью.

Вообще, для таких критичных вещей я большой фанат подхода fail fast. В одном из проектов мы сделали следующим образом: если в конфигурации явно не задано, какая роль нужна для контроллера (или он не добавлен в список исключений), приложение просто не стартует. Что-то вроде: .addRole(SomeController::method, Roles.ADMIN)

Но это довольно примитивный случай. Проблемы начинаются дальше. Например, нам нужно проверить не просто наличие роли, а доступ к конкретному ресурсу. Пользователь может видеть только свои счета, свои документы и т.д. Тут уже одной аннотации с ролью на контроллере может быть недостаточно. И вот здесь как раз хорошо работает комбинация из архитектурных правил, статического анализа и ИИ. Допустим, мы договариваемся, что любой Use Case, который работает со счетом, обязан использовать интерфейс безопасности: CheckHasAccountAccess(accountUID)

Дальше можно кастомный статанализатор (мы так делали, дописывали правила уже к существующему), который будет проверять наличие такого вызова (и имеет ли он вообще отношение к сущностям, над которыми происходит действие), можно ронять сборку при нарушении правила, а еще можно попросить ИИ проверить не упустили ли мы чего.

Конечно, это не панацея и не заменяет нормальные тесты и security review. Но вероятность забыть критичную проверку становится заметно ниже. Мне вообще кажется, что именно в этом сейчас одна из самых сильных сторон ИИ. Мы не пытаемся заставить его быть магическим сканером уязвимостей, который найдет неизвестную дыру в миллионах строк кода, а использовать его как дополнительный слой контроля за тем, что ваши собственные правила действительно соблюдаются. Но для этого сначала нужно эти правила иметь . Если у вас просто сопли, размазанные по всему проекту, слоям и сервисам (99% того что я видел выглядит именно так), то ИИ просто поможет вам быстрее расстаться с бюджетом
SQLite Critical CVEs or LLM Slop? | JFrog
The JFrog security research team recently identified a supply chain attack targeting the `xinference` package on PyPI. Versions 2.6.0, 2.6.1, and 2.6.2 were compromised and yanked by maintainers after users reported suspicious behavior. If you installed or imported these versions, you must assume yo...

1.6k 0 9 6 27
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot