LIMB
Вход Регистрация

тема

Распределённая мульти-агентная система для анализа уязвимостей

lisa99 · · 11 ответов · 977 просмотров

Описываю  автономный комбайн по поиску и анализу таргетов, как я его вижу. И сейчас пытаюсь реализовать.


Hidden text, you need have 11 messages, now you have 0 posts.



Иными словами, схема такова:

СТРАТЕГИЯ (Cloud AI Orchestrator + Человек)
    |
СВЯЗЬ (MCP + Файловая система как очередь)
    |
ТАКТИКА, ОПЕРАЦИОНКА (N локальных агентов: Qwen 7\14B + Скрипты)

п.с. я поставила на комп qwen 2.5-coder 14b, Opencode, MCP серверы свои + тестировала чужие со скриптами.
Работает, но мне не нравится многое в локальных LLM, в результатах

@La_zet - интересно ваше мнение =) с учетом вашего варианта работы с ИИ
👍97 ❤️24 🔥16 😁11 👏24
Вот что мне удалось попробовать.

Не удалось прогрузить медиа



Имхо, слабовато. Набор оберток-интерфейсов. Скорее как прототип, а не реальный инструмент (китайский софт).
Реклама крута, но в реальности - овраги.

Может и не права. но все немного игрушечное. И его графы и детекторы и пейлоады.
Ответlisa99

Описываю автономный комбайн по поиску и анализу таргетов, как я его вижу. И сейчас пытаюсь реализовать. * Hidden text: cannot be quoted. * Иными словами, схема такова: СТРАТЕГИЯ (Cloud AI Orchestrator + Человек) | СВЯЗЬ…

Казалось бы, архитектура в любом случае крайне занимательная, так скажем, и в то же время довольно тривиальная, ну будем честны, никаких сверхновых и прорывных технологий у тебя на схеме не проюзано. Это в то же время и довольно неплохо, - нет нужды городить новые огороды, отдавать их в Q&A, фиксить все шероховатости, тут определенно поддержу.
Дата на руках уже тоже есть, не нужно учить свои ллмки, то бишь, как "быстро и эффективно" и по соотношению скорость развертки потенциальной инфраструктуры - качество ее работы ты определенно выигрываешь. Спасибо за картинку, кстати, хакерам с СДВГ удобнее ориентироваться, чем читать много буков.

Концептуальные минусы.. извини, буду честен. Нашел "вагон и маленькую тележку", но даже так лучше, чем потенциально мусорнувшие тебя готовые "автономные агенты" на апишках и еще невесть каком чуде.
1) А мы так и будем ходить линейным образом по каждой задаче? Это что за паровоз? Вагончик за вагончиком - так и состариться можно. Я не вижу в твоей архитектуре отдельного этапа, который бы оптимизировал работу с инструментами и апихами(об апихах позже). Запустил сразу кучу нужных мер разведки(пробрутил имена доменов, запустил сканирования с нмапов, постучал про каждый сабдомен на шодан, все собрал, проанализировал, нашел НАИБОЛЕЕ ВЕРОЯТНЫЕ векторы и пустил их параллельно в работу - например, в Nuclei(проверка на цве на основе темплейтов) и ждет вывода). У тебя "получил задачу - сделал задачу - получил новую задачу - сделал новую задачу", судя по всему, будет в архитектуре, либо долбанутая нагрузка. Тут уместна графовая система, которую до сей поры мало кто организовал. Где оркестратор будет пулять целую линию задач, например, "узнайте сабдомены, просканируйте их, найдите что-то похожее на фортик или сабдомен-админку", и уже узел-исполнитель(в твоем случае квен) будет сначала выстраивать, какие задачи пойдут вслед за какими, потом автоматизировать(устраивать пайплайн) из этих локальных инструментов. На каждом из этапов он брал бы пробу, но если сделать прослойку, которую он будет прожимать, чтобы выполнить конкретное действие, а не чтобы он с нуля думал каждый раз, то можно снизить на него(на квен) нагрузку. Параллельно с этим, квен обрабатывает данные таким образом, что начинает строить мнимый граф. Из каждой точки могут быть ответвления в еще 3-4 точки, и так он строит "дерево", собирая информацию из каждой точки. В итоге квену останется лишь поанализировать содержание каждой из точек графа и думать, стоит ли идти в этом направлении дальше(ого! фортик бьется паблик цвехой, на кой черт мне искать скули по второму домену, я пойду дальше эксплойтить фортик для начала, или ух ты! а в шарах лежит что-то интересное, дай-ка я их сначала прогляжу, потом уже нетекзек в других режимах запущу). Пижонство, лишняя апи-прослойка и инвалидное кресло для ИИ? А я не согласен, я отвечу "экономия контекстного окна + экономия времени", куча действий параллельно без мышления на эту тему от локальной дцпшной иишки. Вдобавок, уменьшаем вероятность "баяна" от ИИ в формате "пойду-ка переберу тамперскрипты нмапа за 2014 год". ИИ не галлюцинирует, а лишь жмет понятную ему кнопку, "начать разведку с помощью этого тула", и кнопка потом вернет ему "привет, это был нуклей, и да, мы уязвимы". Тем самым, строим граф, высчитываем статистически более выгодные поинты и развиваемся в их сторону, и идя графами, а не полным путем от оркестратора до его собеседника-квена каждый раз. Оркестратор лишь получит уже изжеванный ответ от "локальной части". Если что не так понял, поправляй, это касается и дальнейших пунктов.
2) Полагаться в анализе ответов от мероприятий по разведке со своими тулами только на квен? Вспоминается мультик про рыбку, которая ничего не помнила, забыл название, - вот же ирония. Бесспорно, анализ они произведут, моделька мощная(хотя мне разок и говорили, что сет под дипсик куда мощнее). Но один вопрос, зачем? К чему это? Случится переполнение контекстного окна, и бабахнет, модель забудет, чем она занималась минут 20 назад. Разве что задать ей пресет в формате "только что-то сделаешь - сразу стучи клоду", но не знаю, затея не рентабельная, клод мы совсем не экономим.. и вдобавок, можно же выжать куда большую эффективность из имеющихся у нас инстансов квена. Как? Есть идея, относительно простая, и в то же время сложная, не знаю, как описать. Векторы. Ссылаемся на мой первый пункт, опять, выжимаем из квенов максимум. Что, если задача квена - не помнить это все и не прожигать токены клода, а строить свой, векторный бд по поводу конкретного таргета(сетки, веб-структуры, тут это индифиррентно). И тут ему поможет векторное хранение. Возвращаясь к графовой структуре, есть граф, который строится на основе самих мероприятий разведки(recon по-амерски), а есть отдельный векторный лес, где хранятся важные, необходимые знания, статистика. Моделька что-то узнает из рекона, моделька обращается к твоему карманному лесу из векторов, и, допустим, имея три язвы и три конкретных пути, найдет наиболее важный и "сочный" среди них. Туда же грузим то, чего делать нельзя и как не залететь на условные хонепоты. Векторное хранение информации здесь подойдет в любом случае очень хорошо. Моделька нашла - моделька сверила и узнала, что дальше делать можно и чего делать дальше нельзя, или определилась, что делать приоритетнее всего. И теперь, когда решили проблему неоправданных и палевных, дебильных шагов от ИИ(она черпает информацию из векторов и жмет лишь на кнопки для мероприятий разведки, где ей ошибиться?? сама она тулы не качает и не выбирает), можно и о ее контекстном окне еще сильнее позаботиться. Все, что делает модель, - интерпретирует информацию и не запоминает ее, а пишет в отдельную графовую структуру(полноценную), которую и будет читать клод. Итого, получим допустим какой-то такой прикол:https://imgur.com/a/XxcFoWA

Оптимизируем ресурсы и даем многозадачности? Да. Избежали часть галлюцинаций? Да. Можем управлять поведением "агента помладше" явнее, чем кучей промптов, задав лишь парочку "на любой вопрос справляйся с векторной системкой?"? Да, куда явнее. Особенно, если еще и научить правильно спрашивать рецензии на условные скрипты у клода. Да и выглядит теперь куда покрасивше. 

3) А что, если каждый квен делает что-то свое? Один осинтит, один пошел в разведку, и все крутятся вокруг одной графовой базы? Не переспрашивая друг у друга запомненный контекст, а просто анализируя. Оркестрация станет еще эффективнее, в разы эффективнее. Как масштабировать этот рисуночек и привести его в человечный вид, ты уже понимаешь, думаю. Допустим, вторая иишка сидит с парсерами всего и вся, и видя конкретный пункт в графе "разведываем снаружи" начинает достраивать от точки графа новые ответвления, помечая их по серьезности согласно уже своей "приложенной памяти". А тут либо клод корректирует действия одного квена согласно выводам другого, прочитав граф, либо они сами постоянно изменения перепроверяют. И серьезность сопоставляют. Всяко лучше, наверное.

4) Прослойка, не дающая "полный и абсолютный контроль", а лишь разрешающая определенные действия, и то в виде апи, например, посмотри-ка шары, - еще и защита от возможной компрометации одного из квенов. Маловероятно, даже очень, но чем черт не шутит? Да и сам квен сомнительной хрени на хост-тестировщик не накачает.
5) Не корми клоду данные с апишек(шодан, зумай и тд), лучше пусть компетентный квен это делает и строит выводы в общий граф, помечая сурьезность. И клода сэкономишь, и избежишь забываний уже с его стороны.

Как итог, архитектуру твою вижу сугубо на 6/10, но это мое субъективное мнение и мое субъективное видение. Однако, она уже лучше, чем у многих китайцев с их прямыми и пустыми дерьмомцп. 

P.S. - свою мини-модельку хотя бы, но доучить стоит, всяко лучше, чем насыщать отдельное пространство данными в векторном формате, да и попроще отчасти будет. Маленькая, чисто на конкретные нужды конкретной модельки.
👍3
ОтветleakinN_nname

Спасибо за картинку, кстати, хакерам с СДВГ удобнее ориентироваться, чем читать много буков.

да, я всегда учитываю этот момент.

ОтветleakinN_nname

Казалось бы, архитектура в любом случае крайне занимательная, так скажем, и в то же время довольно тривиальная, ну будем честны, никаких сверхновых и прорывных технологий у тебя на схеме не проюзано

хех. А что проюзано в паблике?
У нас, здесь на форуме пишут статью как я поставил qwen2.5 и протестировал на шаблонном грязном файле.

Я спрашивала когда-то у двух даже профи.   - кто работает из АПТ с серьезными схемами, вот такого уровня?

Не удалось прогрузить медиа


Ответ - похоже, никто. Не слышали -с.




Что касается базы. Я не пишу софт для продакшен. Это демо-пример, но будет более-менее рабочий.
Цель - проиллюстрировать как ИИ может применяться в ПЕНТЕСТЕ.

Цель же  моей статьи в журнале дать обзор методик:

1. взяли локальный ИИ - статически просканировали скрипты - профит (SAST)
2. Взяли облачный - обман, обход, посканировали через MCP что-то  - например, роутер (можно показать результат)
3. Взяли, понаходили и собрали совокупность данных и погнали многопоточно.
Это сейчас мой вариант - но не там где хотелось бы, не прямые атаки с эксплойтами. Мне это сложно - просто ради статьи, и вообще.
4. уровень продакшен

То что по факту предлагаеншь ты на свой картинке

Не удалось прогрузить медиа


Вот так оно реализовано по-серьезному

Не удалось прогрузить медиа



VulnBot:

~3000 строк Python
5 модулей (Planner, Memory Retriever, Generator, Executor, Summarizer)
Интеграция с Kali Linux tools
RAG с Milvus vector DB  (использоватли LangChain-Chatchat)
PTG management.  Это их ключевая инновация - ориентированный ациклический граф (DAG) для управления зависимостями задач пентеста.

Если я начну подключать векторные БД, графы, LangChain - это будут месяцы разработки. Ради чего?


Я вижу свою задачу ближайшую - обзор существующих технологий, а не изобретение 5го колеса и заработток на нем.
Чувствуешь разницу?

А когда я писала в частной переписке студенту, что будет круто. Да, так и есть - не в разделе уязвимости сетей ничего мультиагентного.никакого.
Ни на 6 баллов, ни на 4.


В любом случае спасибо за критику. Но больше половины считаю что ко мне не относится.
Это как сказать  беднякам - почему вы кушаете хлеб с вареньем, ведь есть пироженные?"

А вот упомянуть в обзоре серьезные решения - нужно. Обязательноо. а MVP, POC на своем компе построить на том, что минимально отражает большие идеи.
Вот мой подход на данный момент.


Если так не пойдет для журнала - напиши свое мнение. 
Статья с возу - кобыле легше)
👍1
Ответlisa99

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

Про месяцы - не преувеличивай, про команду - именно, так и будет, так что тут с тобой соглашусь. Про необходимость в MVP для демонстрации - верно, соглашусь. Но про одно не соглашусь, не надо ориентироваться на всех, и говорить, что лучше. Не инноваторский совсем какой-то подход.
👍1
В ИИ-ассистентах подобного плана просто не будет никакого смысла(больше тупняка, отладки, геморроя и настройки), если не доводить их до нормального состояния, потому про бедняков тоже замечание, как по мне, излишне.
Если нужда просто автоматизировать какую-то рутину - на то и без ИИ-бума были свои решения, да причем такие, что с тычка морды разваливало. Вон какие машинки на той же дамаге можно найти на чистом Bash, пайплайн за пайплайном, и все - голые инструменты из дефолтного кали сорц-пака. И с гита, опенсорс.
А итог? 2 алиаса и вставленный прокси, и с таким свистом разрывало, что потом СМИ по поводу этих корп еще недельку-другую эхом скулили. 


Мое сообщение - лишь мое видение, @lisa99, то, как я подошел бы к вопросу, если бы стояла цель не продемонстрировать, а собрать рабочий агрегат. А не укор в сторону твоего предложения. Об этом сказано напрямую.
👍4
Как обзор - более, чем достойно. Потому и лайк. Основное ознакомление, что за фрукт такой этот ИИ и что из него готовят.
👍2
обзора еще нет.

я выдернула только "практическую историю". И конечно она тоже не отражает мощи ИИ и того что с ними можно сделать даже сегодня.
То есть получается автоматизированный молоток, а не автоматический пресс. Мне не очень нравится и это направление с данными. Хотелось бы чего-то более эффектного.
 
Просто ограничены возможности. 
И не очень уверена, что стоит  делать именно это и именно так, отсюда и вопросы в паблике.
👍1
Ответlisa99

обзора еще нет. я выдернула только "практическую историю". И конечно она тоже не отражает мощи ИИ и того что с ними можно сделать даже сегодня. То есть получается автоматизированный молоток, а не автоматический пресс…

А как по мне, у тебя уже обзор вырисовывается. Даже с минимальным PoC, вон, картинки мне и публике накидываешь же. Значит, уже относительно ориентируешься по существующим или уже отыгравшим кампаниям с использованием робоишаков.
Я ж с той же целью свою точку зрения на проблему создания человечьего мозга из нескольких машинных и сказал, мнение же спросили, я ответил. Дополнительной точкой зрения.


Эффектность на поке не показать, к сожалению.. эффектность пока кроется для тех, кто уже в теме сечет, и кто понимает, как собрать то, о чем говорится, и это максимизировать. Я лично эффектность вижу. В случае, если это доработать.

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


Мне материал понравился.
👍3
ОтветleakinN_nname

Вон какие машинки на той же дамаге можно найти на чистом Bash, пайплайн за пайплайном, и все - голые инструменты из дефолтного кали сорц-пака. И с гита, опенсорс. А итог? 2 алиаса и вставленный прокси, и с таким свистом…

👍2
Ответjeka

Можно линк?

на что именно?
Самая частая ошибка в таких "системах" это оверинжиниринг. По моему опыту хватило примерно такой архитектуры - автоматическая разведка (используются тулзы в духе subfinder, shodan, и т.п), сама агентная система, память агентов (возьмем даже memgraph + qdrant). Безусловно понадобится оркестратор и субагенты оркестратора, их не должно быть много. Каждая роль субагента делится на свою специализацию, условно возьмем Recon, exploit, post-exploitation, appsec, такого будет довольно достаточно. Оркестратор спавнит субагентов с конкретными задачами, субагенты выполняют их, отдают оркестратору, оркестратор продвигается дальше. Что не менее важно отметить, никакая система, особенно AI-автоматизация не будет стабильно работать на слабых моделях. Тут уже нужны ресурсы на более продвинутые модели. Теоретически вам может хватить поместить агента в Linux VPS, и дать ему возможности делать что он захочет, но этого не хватит из за проблем с контекстом. Полностью автоматической системы пока даже я построить не смог, где то надо пинать, подсказывать, давать своё мнение.
👍3

Гостевой просмотр. Чтобы отвечать и ставить реакции, войдите или зарегистрируйтесь.