История Socket

    0
    1


    Эксклюзивный Модели машинного обучения ненадежны, но это не мешает им иногда быть полезными.

    Несколько месяцев назад компания Socket, создающая бесплатный сканер безопасности для проектов JavaScript и Python, подключила модель OpenAI ChatGPT (а совсем недавно — модель GPT-4) к своей внутренней ленте угроз.

    Результаты, по словам генерального директора Feross Aboukhadijeh, были на удивление хорошими. «Это сработало намного лучше, чем ожидалось», — сказал он. Регистр в электронном письме. «Сейчас я сижу над парой сотен уязвимостей и вредоносных пакетов, и мы спешим сообщить о них как можно быстрее».

    Сканер Socket был разработан для обнаружения атак цепочки поставок. Доступный в виде приложения GitHub или инструмента командной строки, он сканирует проекты JavaScript и Python, пытаясь определить, содержит ли какой-либо из множества пакетов, которые могли быть импортированы из реестров npm или PyPI, вредоносный код.

    Абухадие сказал, что Socket подтвердил 227 уязвимостей, и все они используют ChatGPT. Уязвимости относятся к разным категориям и не имеют общих характеристик.

    Регистр был предоставлен с многочисленными примерами опубликованных пакетов, которые демонстрировали вредоносное поведение или небезопасные методы, в том числе: кражу информации, внедрение SQL, жестко закодированные учетные данные, потенциальное повышение привилегий и бэкдоры.

    Нас попросили не делиться несколькими примерами, так как они еще не удалены, но вот один, с которым уже разобрались.

    1. mathjs-min «Socket сообщил об этом в npm, и он был удален», — сказал Абухадидже. «Это было довольно противно».
      1. Анализ ИИ: «Сценарий содержит функцию захвата токенов разногласий, что представляет серьезную угрозу безопасности. Он крадет токены пользователей и отправляет их на внешний сервер. Это злонамеренное поведение».
      2. https://socket.dev/npm/package/mathjs-min/files/11.7.2/lib/cjs/plain/number/arithmetic.js#L28

    «Есть также некоторые интересные эффекты, например, вещи, в которых можно убедить человека, но ИИ отмечает их как риск», — добавил Абухадидже.

    «Эти решения несколько субъективны, но комментарии, утверждающие, что опасный фрагмент кода не является вредоносным, не останавливают ИИ. ИИ даже включает юмористический комментарий, указывающий, что он не доверяет встроенному комментарию».

    1. Пример trello-enterprise
      1. Анализ ИИ: «Скрипт собирает информацию, такую ​​как имя хоста, имя пользователя, домашний каталог и текущий рабочий каталог, и отправляет ее на удаленный сервер. Хотя автор утверждает, что это сделано для вознаграждения за ошибки, такое поведение все же может представлять угрозу конфиденциальности. Сценарий также содержит операцию блокировки, которая может вызвать проблемы с производительностью или зависание».
      2. https://socket.dev/npm/package/trello-enterprises/files/1000.1000.1000/a.js

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

    Применение человеческого анализа ко всему корпусу реестра пакетов (~ 1,3 миллиона для npm и ~ 450 000 для PyPI) просто невозможно, но модели машинного обучения могут восполнить некоторые пробелы, помогая людям-рецензентам сосредоточиться на более сомнительном коде. модули.

    «Socket анализирует каждый пакет npm и PyPI с помощью анализа исходного кода на основе ИИ с использованием ChatGPT», — сказал Абухадидже.

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

    Абухади предоставил Регистр с образцом отчета от своего помощника ChatGPT, который идентифицирует рискованное, но не однозначно вредоносное поведение. В этом случае модель машинного обучения предложила следующую оценку: «Этот скрипт собирает конфиденциальную информацию о системе пользователя, включая имя пользователя, имя хоста, DNS-серверы и информацию о пакетах, и отправляет ее на внешний сервер».

    Скриншот отчета ChatGPT для сканера безопасности сокетов

    Скриншот отчета ChatGPT для сканера безопасности сокетов — нажмите, чтобы увеличить

    Скриншот с рекомендациями Socket ChatGPT

    Как выглядит информационный бюллетень Socket на основе ChatGPT… Нажмите, чтобы увеличить

    По словам Абухадидже, Socket был разработан, чтобы помочь разработчикам принимать обоснованные решения о рисках таким образом, чтобы это не мешало их работе. Таким образом, поднятие тревоги по поводу каждого скрипта установки — распространенный вектор атаки — может создать слишком много шума. Анализ этих скриптов с использованием большой языковой модели дает сигнал тревоги и помогает разработчикам распознавать реальные проблемы. И эти модели становятся все более способными.

    «GPT-4 меняет правила игры, он способен заменить инструменты статического анализа, если весь соответствующий код находится в пределах его компетенции», — сказал Абухадидже.

    «Теоретически нет уязвимостей или проблем с безопасностью, которые он не может обнаружить, при условии, что соответствующие данные предоставляются ИИ. долларов команде OpenAI. :)» — как отмечено ниже, использование этих моделей может быть дорогостоящим.

    «Socket передает некоторые дополнительные данные и процессы, чтобы помочь GPT-4 провести правильный анализ из-за собственных ограничений GPT в отношении количества символов, перекрестных ссылок на файлы, возможностей, к которым у него может быть доступ, анализа приоритетов и т. д.», — сказал он. .

    «Наши традиционные инструменты на самом деле помогают совершенствовать ИИ так же, как они могут помочь человеку. В свою очередь, люди могут получить преимущества другого инструмента, который имеет все больше человеческих возможностей, но может запускаться автоматически».

    Это не означает, что большие языковые модели не могут быть вредными и что их не следует подвергать более тщательному изучению, чем это было раньше, — они могут и должны. Скорее, опыт Socket подтверждает, что ChatGPT и подобные модели, несмотря на все их шероховатости, могут быть действительно полезными, особенно в тех случаях, когда потенциальным вредом могут быть ошибочные рекомендации по безопасности, а не, скажем, дискриминационное решение о приеме на работу или рекомендация токсичного рецепта.

    Как недавно отметил в своем блоге разработчик с открытым исходным кодом Саймон Уиллисон, эти большие языковые модели позволяют ему быть более амбициозным в своих проектах.

    «Как опытный разработчик, ChatGPT (и GitHub Copilot) сэкономили мне огромное количество времени на «выяснение вещей», — отметил Уиллисон. «Это не только делает меня более продуктивным: это снижает мою планку того, когда проект вообще стоит того, чтобы в него вкладывать время».

    Ограничения

    Абухадидже признает, что ChatGPT не идеален и даже не близок к нему. По его словам, он плохо обрабатывает большие файлы из-за ограниченного контекстного окна и, как человек-рецензент, изо всех сил пытается понять сильно запутанный код. Но в обеих этих ситуациях потребуется более пристальное внимание, поэтому ограничения модели не так уж важны.

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

    «Если злонамеренное поведение достаточно рассредоточено, то ИИ сложнее передать весь контекст сразу», — пояснил он. «Это фундаментально для всех моделей трансформаторов, которые имеют конечный лимит токенов. Наши инструменты пытаются работать в этих пределах, втягивая различные фрагменты данных в контекст ИИ».

    Интеграция ChatGPT и его преемника, описанного здесь и здесь, в сканер сокетов также оказалась сложной финансовой задачей. По словам Абухадидже, одним из самых больших препятствий для LLM является их дороговизна.

    «Для нас эти затраты оказались самой сложной частью внедрения ChatGPT в Socket», — сказал он. «Наши первоначальные прогнозы подсчитали, что полное сканирование реестра npm обошлось бы нам в миллионы долларов за использование API. Однако благодаря тщательной работе, оптимизации и различным методам нам удалось снизить эту стоимость до более устойчивого значения».

    Эти затраты оказались самой сложной частью внедрения ChatGPT в Socket.

    На вопрос, может ли выполнение на стороне клиента быть способом снизить стоимость запуска этих моделей, Абухадидже сказал, что в данный момент это маловероятно, но добавил, что ландшафт ИИ быстро меняется.

    «Основная проблема с локальной системой заключается не в необходимости частых обновлений модели, а в затратах, связанных с запуском этих моделей в масштабе», — сказал он. «Чтобы в полной мере воспользоваться преимуществами безопасности ИИ, идеально использовать максимально возможную модель».

    «Несмотря на то, что модели меньшего размера, такие как GPT-3 или LLaMA, предлагают некоторые преимущества, они недостаточно интеллектуальны, чтобы постоянно обнаруживать самые сложные вредоносные программы. Использование нами больших моделей неизбежно требует значительных затрат, но мы приложили значительные усилия для повышения эффективности и сокращения этих расходов. , Хотя мы не можем разглашать все детали, в настоящее время у нас есть заявка на получение патента на некоторые технологии, которые мы разработали для этой цели, и мы продолжаем работать над дальнейшими улучшениями и снижением затрат».

    Из-за связанных с этим затрат Socket уделяет первостепенное внимание предоставлению своих рекомендаций по ИИ платным клиентам, но компания также предоставляет базовую версию на своем веб-сайте.

    «Мы считаем, что, централизовав этот анализ в Socket, мы сможем амортизировать стоимость проведения анализа ИИ для всех наших общих зависимостей с открытым исходным кодом и предоставить максимальную пользу сообществу и защиту наших клиентов с минимальными затратами», — сказал Абухадидже. ®

    Предыдущая статьяRTX 4070 только что просочилась в сеть, выглядит как аналог RTX 3080 без
    Следующая статьяЗа ремикс Ubuntu Cinnamon проголосовали
    Виктор Попанов
    Эксперт тестовой лаборатории. Первый джойстик держал в руках в возрасте 3 лет. Первый компьютер, на котором „работал” был с процессором Intel i386DX-266. Тестирует оборудование для издания ITBusiness. Будь то анализ новейших гаджетов или устранение сложных неполадок, этот автор всегда готов к выполнению поставленной задачи. Его страсть к технологиям и приверженность качеству делают его бесценным помощником в любой команде.