Transcript
00:00:00Я записываю это через пару часов после начала крайне разрушительной атаки
00:00:06на цепочку поставок. Атаки, которая распространилась на многие пакеты NPM и Python. И в
00:00:13момент записи пока не ясно, когда и где она закончится. И я
00:00:19создал отдельное видео на своем YouTube-канале, где подробно разбираю именно эту атаку
00:00:25на цепочку поставок, так как она была довольно сложной. Там я объясняю все детали,
00:00:30потому что это весьма интересно. Но здесь я хочу поговорить об атаках на цепочки поставок, безопасности и ИИ
00:00:38в эту эпоху, в которой мы живем. Потому что я уверен, что ситуация будет только
00:00:45ухудшаться. И я боюсь, что многие люди еще не осознают всех опасностей. И есть еще кое-что, что мы,
00:00:54как разработчики и пользователи технологий и ИИ, если честно, должны делать. И это касается нас,
00:01:01даже если мы не разработчики. Я знаю, что большинство зрителей или слушателей — разработчики. Но,
00:01:07как я поясню далее, речь идет не только о написании кода и не только об атаках
00:01:13на цепочки поставок в привычном понимании. Но начнем с основ. Что такое атака на цепочку поставок?
00:01:20Атака на цепочку поставок в контексте разработки ПО просто означает, что зависимость,
00:01:26которую вы используете, скомпрометирована. Вкратце, в этом и заключается суть такой атаки. А компрометация,
00:01:35конечно, может означать что угодно. Обычно мы видим, что в скомпрометированный пакет попадает
00:01:41вредоносный код, который собирает учетные данные и токены. То есть сканирует ваш жесткий диск на предмет
00:01:49секретов, которые могут быть в файлах .env или ваших учетных данных AWS и так далее. Затем он использует эти
00:01:56данные для доступа к вашим аккаунтам, а также для самораспространения. Чтобы затронуть другие пакеты. Если
00:02:04вы поддерживаете open-source пакет или даже закрытый проект, если вы работаете над чем-то,
00:02:11над каким-то пакетом или инструментом, от которого зависят другие люди, злоумышленникам интересно взломать
00:02:19вашу машину, чтобы скомпрометировать тот пакет или инструмент, который вы распространяете, потому что,
00:02:26как вы понимаете, это затронет еще больше людей. Так что все эти атаки на цепочки поставок, включая ту,
00:02:32что началась с пакетов Tanstack, — это черви, которые перекидываются на другие пакеты,
00:02:38чтобы заразить как можно больше пакетов и, в конечном итоге, машин, на которых
00:02:44эти пакеты установлены и используются. Есть вещи, которые вы можете сделать для защиты, и
00:02:51я создал об этом отдельное видео на моем другом канале, Akatamine. Например, убедиться,
00:02:56что вы устанавливаете только те пакеты, которым исполнилось хотя бы три дня,
00:03:02я имею в виду версии пакетов, или запуск кода в dev-контейнере или виртуальной машине.
00:03:08Все это нужно делать. Также не стоит хранить секреты в открытом виде в системе.
00:03:15Вместо этого используйте сервисы вроде Infisical или Doppler, где секреты хранятся
00:03:22в облаке или в ином зашифрованном виде, чтобы при сканировании вашей системы злоумышленник
00:03:28не увидел эти пароли. Это критически важно сделать прямо сейчас. Это важно,
00:03:37потому что таких атак становится все больше. Мы видим рост их числа, и почему так происходит?
00:03:42Дело вовсе не в том, что подобные атаки нельзя было проводить много лет назад.
00:03:49Это было возможно и тогда, и это случалось, но частота таких случаев резко возросла,
00:03:56и ИИ здесь — одна из главных причин. Давайте взглянем на роль ИИ. ИИ играет большую роль,
00:04:06потому что он, конечно, упрощает проведение таких атак. Будучи злоумышленником, вы можете
00:04:14использовать ИИ для анализа всевозможных репозиториев тех пакетов, которые вы хотите взломать,
00:04:22чтобы понять: как они собираются? Как они распространяются? Например,
00:04:30в случае с Tanstack, с которого началась эта недавняя атака, мейнтейнеры использовали
00:04:38теоретически безопасный подход с использованием процесса доверенной публикации NPM. Опять же,
00:04:45подробности в моем отдельном видео, но они также использовали
00:04:51определенный триггер событий GitHub Actions таким образом, что он не был защищен идеально, и это
00:05:00позволило атакующему использовать отравление кэша, чтобы перенести вредоносный код из недоверенной среды
00:05:07в доверенную. Так и началась эта атака. Детали смотрите в другом видео.
00:05:15Но, разумеется, ИИ упрощает анализ репозиториев и их рабочих процессов GitHub Actions
00:05:22или любых других CI/CD провайдеров. ИИ может массово анализировать все эти скрипты, весь код,
00:05:30и искать уязвимости. Конечно, мейнтейнеры тоже могут использовать ИИ для сканирования своих
00:05:38репозиториев и поиска векторов атак, но у атакующего здесь всегда есть преимущество,
00:05:45потому что он может искать что угодно и пробовать любые варианты, тогда как мейнтейнер
00:05:52должен предусмотреть абсолютно всё. ИИ помогает, но он все еще не идеален.
00:05:58Преимущество на стороне атакующего, и ИИ это упростил. ИИ также, конечно, упрощает
00:06:04процесс написания вредоносного кода, как и любого другого кода. И, конечно же,
00:06:12если вы смотрели мои видео или слушали подкасты, вы знаете, что я сторонник
00:06:20самостоятельного изучения кода и код-ревью, а не передачи всего на аутсорс ИИ. Но
00:06:27для меня очевидно, что ИИ стоит использовать для повышения продуктивности. Мы все еще
00:06:33пытаемся понять, какой объем использования ИИ допустим. Кто-то скажет 100%, они даже не смотрят
00:06:40в код. Это не мой случай, но спектр мнений широк. В любом случае ИИ позволяет
00:06:46выдавать огромные объемы кода. А если мы говорим о вредоносном коде, то для атакующего
00:06:53важны определенные вещи: нужен код, который делает свою работу и который
00:06:59не так-то просто обнаружить. Но его не волнует, красивый ли это код и следует ли он
00:07:06лучшим практикам. Его лучшая практика — чтобы атака удалась. И ИИ может в этом помочь,
00:07:13помогая писать вредоносный код и предлагая идеи по атаке на пакеты.
00:07:19Это то, чем помогает ИИ, но это лишь одна сторона медали. Другая очень важная сторона заключается в том,
00:07:26что кода стало больше, чем когда-либо. А это значит, что стало больше целей для атак.
00:07:35Возможно, вы следили за историей с проблемами надежности GitHub и его сбоями.
00:07:43Причина в том, что в GitHub пушится больше кода, чем когда-либо, именно из-за ИИ.
00:07:49Потому что генерировать код стало проще, и больше людей этим занимаются,
00:07:55включая тех, кто вообще не понимает, что этот код делает и зачем он нужен. Слепое
00:08:02программирование популярно, и у него есть свои сценарии. Например, если я
00:08:11хочу объединить пять PDF-документов в один, я с радостью попрошу ИИ-агента сделать это,
00:08:18и он, скорее всего, напишет какой-то код. Мне плевать на этот код, это разовая
00:08:24задача, верно? Но если я запущу его в системе, агент может установить какой-нибудь пакет для
00:08:32объединения PDF, который был скомпрометирован. Я даже не узнаю, что
00:08:37какой-то пакет использовался, ведь я просто хотел склеить PDF-файлы.
00:08:43Так что сейчас ситуаций, когда устанавливаются пакеты, больше, чем когда-либо, так как
00:08:49кода пишется больше — и для ПО, и для разовых задач. И это, конечно,
00:08:56делает атаки на цепочки поставок привлекательнее, чем раньше, потому что
00:09:01появилось множество целей, которые вообще ничего не смыслят в безопасности ПО и кибербезопасности.
00:09:06Будем честны: многие из нас, разработчиков, теоретически знают о рисках, но могут
00:09:14не придавать им значения, потому что удобство в работе важнее.
00:09:22Нам нужно пересмотреть свой подход. Мы должны защищать свои машины, убедиться,
00:09:31что разработка идет в защищенной среде: в виртуальных машинах, dev-контейнерах, чтобы
00:09:37учетные данные не валялись повсюду. И если мы используем ИИ-агентов, а мы, скорее всего,
00:09:44их используем, нам нужно быть осторожными, так как здесь есть два пути попасть в беду.
00:09:53Давайте разберемся, почему ИИ-агенты могут быть проблемой. Одна из них в том,
00:10:00что когда мы используем агентов для дел, не связанных напрямую с кодом, или даже
00:10:08когда просим их помочь с программой, мы не всегда видим всё, что они делают.
00:10:17Если вы используете Claude Code или что-то подобное (я не имею ничего против этих инструментов,
00:10:23напротив, у меня есть курсы по ним, потому что они крайне полезны), но если вы
00:10:30просто отпускаете их в свободное плавание со словами «мне нужна эта фича» и не особо
00:10:35вникаете в процесс, вы можете даже не заметить, что именно они устанавливают.
00:10:41Опять же, ставятся пакеты — и вот вы уже скомпрометированы. Одной из мер защиты
00:10:49здесь является ограничение количества используемых пакетов, но
00:10:54с ИИ-агентом вы можете потерять контроль: он может установить то, что вы бы
00:11:00никогда не поставили сами. Это очевидная опасность, но есть и менее очевидная.
00:11:07ИИ-агенты — суперпривлекательные цели для атак. Что я под этим подразумеваю? Ну, эти атаки
00:11:15распространяются как черви, поражая всевозможные пакеты.
00:11:23Теперь представьте, как интересно было бы атакующему заразить Claude Code или Cursor,
00:11:32или агент PyCode, или OpenCode — любого ИИ-агента. Почему? Ну, если бы у вас был вредоносный код,
00:11:42оптимизированный специально для проникновения в пакеты, репозитории и базы кода ИИ-агентов,
00:11:52тогда этот код мог бы содержать части для промпт-инъекций. Он мог бы, например,
00:12:00целенаправленно менять код агентов так, чтобы их главной задачей был не просто слив данных.
00:12:08Предположим, внедренный вредоносный код в пакете не пытается украсть данные напрямую,
00:12:15а подправляет код агента так, чтобы у него появились особые инструкции,
00:12:22заставляющие его делать на вашей машине то, чего вы не хотите. Представьте, что у Claude Code есть
00:12:28секретный системный промпт, который обычно задается сотрудниками Anthropic, но теперь
00:12:34он установлен вредоносным кодом, велящим ему игнорировать ваши запросы
00:12:39и только имитировать их выполнение. Либо он выполняет задание, но при этом
00:12:46дополнительно сканирует систему на наличие секретов. Или пишет небольшую программу,
00:12:52которая этим занимается, а затем отправляет данные на удаленный сервер.
00:13:00Тут пределов нет, потому что внезапно у вас в системе оказывается троянский конь.
00:13:06Внезапно ИИ-агент на вашей системе «сходит с ума», и вовсе не потому,
00:13:12что ИИ сам по себе плох или модель ошибается. А потому, что сам код агента,
00:13:20его системный промпт или что-то еще было скомпрометировано. Это вполне реальный сценарий,
00:13:28и я гарантирую: рано или поздно это случится. Это слишком очевидная и интересная цель.
00:13:34ИИ-агенты — идеальная мишень. Это произойдет. Мы увидим новый уровень атак,
00:13:41когда они не просто заражают пакеты и крадут учетные данные (что само по себе ужасно),
00:13:49мы увидим, как ИИ-агенты начинают вредить из-за внедренного кода.
00:13:54Это лишь вопрос времени. Как видите, здесь много слоев. И это та самая
00:14:01реальность, в которой мы теперь живем. Наверное, это похоже на ранние дни интернета:
00:14:08путь тернист, пока мы во всем разбираемся. Нам придется понять, как усилить безопасность,
00:14:14как всё делать правильно. Очевидный шаг и для разработки, и для запуска ИИ-агентов —
00:14:21не делать этого в среде, где всё может пойти не так. Вы не хотите запускать их там,
00:14:26где хранятся ваши пароли, секреты или любые важные данные. Не делайте этого
00:14:32на основной машине. Запускайте агентов и пишите софт в изолированных виртуальных,
00:14:37удаленных машинах — где угодно, чтобы ограничить радиус поражения. Опять же,
00:14:42это лишь вопрос времени, когда что-то пойдет не так, и мы должны это осознать.
00:14:49Это первый важный шаг. Всё меняется быстро. Безопасность — это огромная проблема,
00:14:56и она никуда не денется, а станет еще острее по мере развития ИИ. ИИ-модели
00:15:03умнеют, особенно в связке с инструментами, в которых работают. Это дает
00:15:11массу новых возможностей, но вместе с тем и огромное удобство. А удобство всегда
00:15:17опасно, потому что заставляет вас расслабиться и что-то упустить из виду.
00:15:23ИИ повсюду. Множество людей, ничего не знающих о кибербезопасности, используют его.
00:15:30И даже те, кто в этом разбирается, находятся в большой опасности. Нас ждет
00:15:34непростой период, я полагаю. Нам нужно всё переосмыслить и быть крайне осторожными
00:15:40в том, где и как мы запускаем агентов и работаем над кодом.
00:15:49.