Искусственный интеллект стремительно меняет то, как программы пишутся, разворачиваются и используются. Тенденции указывают на будущее, в котором ИИ сможет быстро и легко создавать программы под заказ — назовём такое ПО мгновенным (Instant software).

Пользователю станет проще попросить ИИ написать нужное приложение — скажем, электронную таблицу — и удалить его сразу после использования, чем покупать готовый коммерческий продукт. Системы будущего, вероятно, будут сочетать оба подхода: и привычное долгоживущее ПО, и эфемерные программы, которые непрерывно создаются, разворачиваются, изменяются и удаляются.
ИИ меняет и кибербезопасность. В частности, системы искусственного интеллекта всё лучше справляются с поиском и устранением уязвимостей в коде. Это имеет последствия и для нападающих, и для защитников — в зависимости от того, как именно будут развиваться эти и смежные технологии.
Как может работать поиск изъянов
Со стороны нападающих способность ИИ автоматически находить и эксплуатировать уязвимости резко выросла за последние месяцы. Мы уже видим, как ИИ применяют для атак и государственные, и криминальные хакеры. Принципиальна здесь именно эксплуатация уязвимостей: она даёт неподготовленному злоумышленнику возможности, далеко выходящие за рамки его понимания.
По мере совершенствования ИИ всё больше нападающих будут автоматизировать свои атаки. А поскольку отдельные люди и организации всё чаще смогут запускать мощные модели локально, попытки разработчиков ИИ отслеживать и пресекать злонамеренное использование своих систем будут терять смысл.
Главными целями, как можно ожидать, станут программы с открытым кодом — в том числе открытые библиотеки, входящие в состав проприетарного ПО: в исходном коде уязвимости находить проще.
Первая неизвестная — насколько хорошо инструменты ИИ справятся с поиском уязвимостей в проприетарных коммерческих продуктах. Я полагаю, что вскоре они смогут находить изъяны, анализируя готовый дистрибутив, без доступа к исходникам. Если так, коммерческое ПО окажется столь же уязвимым.
Особенно уязвимы будут программы для IoT-устройств — подключённых к сети автомобилей, холодильников, камер видеонаблюдения. А также промышленное ПО в энергосетях, на нефтеперерабатывающих заводах и трубопроводах, химических предприятиях и так далее. Качество кода в потребительских IoT-устройствах обычно куда ниже среднего, а промышленный сектор живёт на унаследованном программном обеспечении.
Мгновенно создаваемые программы уязвимы по-другому. Они не идут в массовый рынок: их пишут под конкретного человека, организацию или сеть. У нападающего, как правило, нет доступа к коду для анализа, а значит, шанс внешней атаки ниже.
Если такая программа эфемерна, то и срок жизни любых её уязвимостей будет невелик. Но многие подобные программы будут долго жить в сетях. А если их выкладывают в общие библиотеки инструментов, нападающие смогут скачать и изучить этот код.
Всё это указывает на будущее, в котором ИИ станет мощным инструментом кибератак, способным автоматически находить и эксплуатировать уязвимости в системах по всему миру.
Автоматический выпуск исправлений
Но это лишь половина уравнения. Защитники тоже вооружатся ИИ. Те же технологии поиска уязвимостей ещё ценнее для обороны. Найдя эксплуатируемую уязвимость на своей стороне, защитник может закрыть её и навсегда лишить нападающих этого способа атаки.
Как это будет работать на практике, зависит от ещё одной близкой способности — умения ИИ исправлять уязвимое ПО, что тесно связано с его умением изначально писать безопасный код.
Сегодня с этим у ИИ дела обстоят неважно: программы, которые он создаёт на лету, обычно нашпигованы уязвимостями — и потому, что ИИ пишет небезопасный код, и потому, что вайб-кодеры плохо разбираются в безопасности. Хороший пример тому — OpenClaw.
Итак, вторая неизвестная — насколько лучше ИИ научится писать безопасный код. То, что обучают его на гигантских массивах плохо написанного и небезопасного кода, — серьёзный недостаток, но прогресс идёт. Если модели смогут стабильно писать код без уязвимостей, это станет колоссальным преимуществом обороны. К тому же поиск уязвимостей с помощью ИИ облегчает обучение моделей написанию безопасного кода.
Можно представить себе будущее, в котором инструменты ИИ для поиска и закрытия уязвимостей становятся стандартной частью процесса разработки. Назвать такой код полностью свободным от уязвимостей нельзя — это недостижимая цель, — но в нём не должно остаться легко обнаруживаемых изъянов. Если технология действительно дозреет, код можно будет считать практически безуязвимым.
Запаздывание исправлений и унаследованные системы
Для нового ПО — и коммерческого, и мгновенно создаваемого — это будущее благоприятно для защитников. С обычными коммерческими и открытыми программами всё сложнее.
Мир сегодня переполнен унаследованным ПО. У многих систем — например, у прошивок IoT-устройств — нет ни выделенной команды безопасности, ни самой возможности обновляться. И как ИИ труднее искать уязвимости без доступа к исходному коду, так ему труднее и исправлять программы, если он не встроен в процесс разработки.
Я не уверен, что ИИ сможет так же легко исправлять уязвимости, как находить их: исправление часто требует целостного тестирования и понимания. Это третья неизвестная — насколько быстро ИИ научится готовить надёжные обновления для найденных уязвимостей и насколько быстро пользователи смогут эти обновления устанавливать.
Сегодня между выпуском исправления и его установкой проходит заметное время. Для крупных корпоративных систем разрыв ещё больше: риск, что обновление сломает основное ПО, слишком велик, чтобы накатывать его без предварительного тестирования.
Но если ИИ сможет ускорить этот процесс — быстрее и надёжнее писать исправления и проверять их в сгенерированных средах-двойниках, — преимущество окажется на стороне защитников. Если нет, у нападающего по-прежнему будет окно для атаки до выхода исправления.
К самовосстанавливающимся системам
В по-настоящему оптимистичном будущем можно представить себе самовосстанавливающуюся сеть. Агенты ИИ непрерывно проверяют постоянно меняющийся массив коммерческого и сгенерированного на заказ кода в поисках уязвимостей и автоматически закрывают их по мере обнаружения.
Чтобы это работало, придётся менять лицензионные соглашения. Сейчас ритм выпуска исправлений задают поставщики ПО. Передача этой возможности покупателям затрагивает вопросы совместимости, права на ремонт и юридической ответственности. Решения здесь — поле для регулирования, а не для технологий.
Если оборона сможет находить, но не сможет надёжно закрывать изъяны в унаследованном ПО, именно туда нападающие и направят свои усилия. В этом случае можно представить непрерывно эволюционирующее обнаружение вторжений на базе ИИ, которое анализирует входящие данные и блокирует вредоносные атаки до того, как они дойдут до уязвимого ПО. Это не так радикально, как автоматическое исправление уязвимостей в работающем коде, но всё же ценно.
Сила таких оборонительных систем ИИ возрастёт, если они смогут координироваться между собой и обмениваться данными об уязвимостях и обновлениях. Открытие, сделанное одним ИИ, быстро дойдёт до всех пользователей затронутого ПО. И снова — преимущество у защитника.
Есть и другие переменные. Относительный успех нападения и обороны зависит ещё и от того, насколько вообще много уязвимостей, насколько легко их находить, сумеет ли ИИ обнаруживать самые тонкие и неочевидные изъяны и насколько хорошо нападающие координируются между собой. Всё это вместе — четвёртая неизвестная.
Уровнем выше
Даже в самом оптимистичном будущем нападающие не сложат оружие. Они начнут атаковать те части системы, которые не сводятся к программному коду, — например, пользователей. Или будут искать в системе лазейки: то, что технически разрешено, но не задумывалось и не предусматривалось её создателями — людьми или ИИ — и может быть обращено против неё.
В таком мире остаются атаки, не связанные с поиском и эксплуатацией программных уязвимостей: социальная инженерия и кража учётных данных. И мы уже видим, как сгенерированные ИИ дипфейки облегчают социальную инженерию.
Но и здесь можно представить оборонительных агентов ИИ, которые следят за поведением пользователей и ищут признаки атаки. Это ещё одно применение ИИ — и я даже не уверен, как правильно вписать его в общую гонку вооружений. Зато мы по крайней мере выдавливаем атаки на более высокие уровни.
Кроме того, нападающие будут пытаться проникать в оборонительные ИИ, влиять на них, отравляя их вывод и снижая их возможности. Системы ИИ уязвимы для самых разных манипуляций — в том числе для инъекций в подсказки, — и неясно, удастся ли эту проблему решить.
Это пятая неизвестная, и она крупная. Возможно, перед нами всегда будет стоять «проблема доверия к доверию», знакомая по классической работе Кена Томпсона.
Никакое будущее не гарантировано. Мы и правда не знаем, продолжат ли эти технологии развиваться и когда выйдут на плато. Но с учётом того, как далеко продвинулась разработка ПО с помощью ИИ всего за последние месяцы, нам пора начинать думать, как будет работать кибербезопасность в этом мире мгновенно создаваемого ПО.
Пока ИИ-агенты не патчат код за нас, базовая страховка — резервная копия инфраструктуры, готовая принять нагрузку. Один из способов это организовать — аварийное восстановление в облако (DRaaS) от Cloud4Y, с параметрами восстановления под ваши задачи. А для читателей Хабра у нас сейчас действует скидка 20% на аренду облачных серверов по промокоду HABR20 — на них как раз можно развернуть резервную площадку и проверить сценарий аварийного переключения на реальных данных.
Автор: Cloud4Y


