Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Alcune informazioni in questo articolo fanno riferimento alle caratteristiche di un prodotto prima del rilascio, che possono essere modificate sostanzialmente prima della distribuzione al pubblico. Microsoft non fornisce alcuna garanzia, esplicita o implicita, in relazione alle informazioni contenute in questo documento.
Questo articolo offre una panoramica concettuale dei componenti chiave che definiscono il funzionamento degli agenti Security Copilot personalizzati, consentendo di comprenderne la struttura, il comportamento e la logica operativa.
Agente
Un agente in Security Copilot è un'entità di calcolo semi autonoma o completamente autonoma che funziona per raggiungere un obiettivo specifico. È definito dalla sua capacità di percepire e reagire al proprio ambiente, prendere decisioni e produrre risultati per raggiungere il suo obiettivo. La progettazione di un agente informa l'agente su come raggiungere il suo obiettivo, decidendo quali funzionalità usare se si tratta di un modello LLM (Large Language Model), strumenti connessi (competenze) o entrambi. Le decisioni dell'agente sono guidate dai relativi input e istruzioni, che potrebbero far sì che l'agente usi la logica predefinita o richiedere a un LLM di interpretare e agire in base a tali istruzioni.
Gli agenti vengono attivati tramite un trigger, che crea un'esecuzione dell'agente ed esegue ogni passaggio (o attività) fino a quando non viene raggiunto un risultato. Durante l'esecuzione dell'agente, in base alle istruzioni, decide di sfruttare un LLM o uno strumento connesso per completare un'attività.
Gli agenti possono interagire con strumenti, risorse esterne oltre le istruzioni LLM e dell'agente, usando una delle due strategie di selezione:
Strumento statico: set fisso di risorse disponibili per l'agente da chiamare, come elencato nella definizione dell'agente, per un singolo passaggio o l'intera esecuzione dell'agente. Se definito in questo modo, l'LLM all'interno di un agente non può decidere di chiamare strumenti esterni a quanto definito. Ciò può migliorare la velocità e la pertinenza dei risultati degli strumenti. Un agente di intelligence sulle minacce che deve richiamare origini predefinite potrebbe essere progettato in questo modo.
Strumento dinamico: le chiamate agli strumenti vengono selezionate durante l'esecuzione dell'agente in base al contesto, al ragionamento o agli input per l'agente. Gli strumenti resi disponibili per l'agente possono essere introdotti in fase di esecuzione. Gli agenti che devono essere reattivi alle condizioni rilevate in un'esecuzione dell'agente possono essere progettati in questo modo. Ad esempio, un agente che arricchisce un'entità potrebbe essere eseguito in modo diverso in base al tipo di entità fornito come input per l'agente.
Gli sviluppatori e gli utenti Security Copilot possono progettare agenti usando entrambi gli approcci alla selezione degli strumenti in base all'obiettivo dell'agente. L'obiettivo consente inoltre di stabilire se il risultato dell'agente serve un singolo utente, un team o un'organizzazione. Quando gli agenti vengono eseguiti usando un'identità, l'ambito del risultato e le autorizzazioni dell'identità devono essere allineati.
Che si stia creando un semplice agente di valutazione degli avvisi o orchestrando un sistema multi-agente per indagini complesse, questo articolo fornisce le informazioni di base necessarie per usare il framework dell'agente Security Copilot dalla selezione degli strumenti e dalla progettazione del manifesto per attivare la configurazione e la governance.
Istruzioni
Le istruzioni sono istruzioni fornite a un agente per definirne gli obiettivi, informarne il processo decisionale e dettagliarne il risultato. Ad esempio, è possibile indicare a un agente di valutazione di concentrarsi sugli eventi imprevisti di gravità elevata o guidare un agente dati a eseguire il pull solo delle informazioni che seguono determinate regole. Le istruzioni aiutano gli agenti a rimanere accurati e coerenti.
Strumento
Uno strumento (competenza) è costituito da risorse a cui si accede al di fuori delle istruzioni dell'agente e LLM che un agente Security Copilot può richiamare per completarne il risultato. Si consideri uno strumento come una funzione in un linguaggio di programmazione tradizionale. Ha un nome, alcuni argomenti e, quando richiamato, esegue un'attività ben definita e restituisce un risultato.
Gli utenti possono creare gli strumenti desiderati che Security Copilot possono chiamare per eseguire attività specializzate o interagire con sistemi esterni.
Ad esempio:
Rispondere a domande di risoluzione o reputazione su un'entità non vista prima, ad esempio "Chi si è registrato
www.contoso.com?'Rispondere alle domande sui dati specifici del cliente, ad esempio "L'evento imprevisto 1234 influisce su quali utenti?".
Interagire con sistemi esterni, ad esempio "Reimpostare la password dell'account per "testaccount@contoso.com".
Recuperare informazioni specifiche del cliente da un'origine conoscenze, ad esempio SharePoint.
Plug-in
Raccolta di strumenti correlati che gli utenti possono abilitare in Security Copilot quando è rilevante per la creazione di nuove funzionalità di prompting, promptbook o agentic. Per gli agenti, i plug-in estendono le operazioni che un agente può eseguire concedendole l'accesso alle risorse esterne a un agente e a LLM. Un esempio è un plug-in che usa un'API per connettersi a un servizio esterno, ad esempio la ricerca della reputazione, in cui le definizioni degli strumenti sottostanti per il plug-in potrebbero restituire un punteggio di reputazione, malware correlato, intelligence sulle minacce e così via.
Formati degli strumenti
Security Copilot piattaforma supporta diversi modi per creare e ospitare strumenti (competenze) in base alle varie esigenze. È possibile creare agenti usando una qualsiasi delle competenze supportate. I formati degli strumenti supportati sono i seguenti:
| Formato strumento | Ideale per | Esempio di caso d'uso |
|---|---|---|
| API | Integrazione di sistemi esterni o interni | Automatizzare le reimpostazioni delle password, recuperare informazioni sulle minacce dalle API, attivare i flussi di lavoro di correzione |
| GPT | Fornisce definizioni per l'elaborazione del linguaggio naturale che non sono disponibili in modo nativo nelle VM sottostanti. | Definizioni specifiche del dominio, riepilogo degli eventi imprevisti in formati univoci |
| KQL | Esecuzione di query sulle origini dati Microsoft (Microsoft Defender, Microsoft Sentinel) | Recuperare i log di accesso, rilevare anomalie |
| AGENTE | Orchestrazione di flussi di lavoro in più passaggi con modelli di linguaggio di grandi dimensioni (LLM) e strumenti figlio | Comprendere la situazione di hosting di un URL, , concatenare più strumenti per l'analisi. |
| MCP | Integrazioni dinamiche con più strumenti esposte da un server MCP; Copilot di sicurezza individua gli strumenti in fase di esecuzione. | Aggregazione di informazioni sulle minacce o orchestrazione della correzione in diversi strumenti tramite il server MCP. |
Definizione dell'agente
La definizione dell'agente funge da progetto per un agente ed è un componente chiave del file manifesto. Si tratta di una delle chiavi di primo livello nel manifesto e specifica la configurazione, le funzionalità e il comportamento principali dell'agente. Specifica:
- Dettagli descrittivi/metadati (ad esempio: nome, descrizione).
- Definizioni di trigger che descrivono gli eventi che causano l'esecuzione dell'agente.
- Strumenti o strumenti associati che l'agente usa per completare il lavoro.
In qualità di sviluppatore Security Copilot, le definizioni degli agenti create sono disponibili per l'esecuzione e la visualizzazione dei risultati da parte degli analisti.
Istanza dell'agente
Un'istanza dell'agente è la versione distribuita di una definizione dell'agente all'interno di una particolare area di lavoro. Ogni istanza:
- Mantiene la propria identità o credenziali.
- Archivia i ricordi e i commenti specifici dell'istanza.
- Più tenant e aree di lavoro possono avere una propria istanza della stessa definizione dell'agente. Le modifiche alla configurazione o gli aggiornamenti della memoria per un'istanza non influiscono su altre istanze.
Manifesto
Il manifesto definisce la definizione, l'identità, gli strumenti e la logica operativa dell'agente in un formato YAML o JSON strutturato. Analogamente a un file di configurazione nei sistemi software tradizionali, il manifesto specifica:
- Scopo e attività univoci dell'agente
- Linee guida operative generali
- Logica decisionale
- Gli strumenti che deve richiamare
- Altri agenti che può chiamare durante l'esecuzione
Il manifesto include i metadati (definizioni e competenze dell'agente) che l'agente può usare, il modo in cui tali competenze vengono raggruppate e le azioni che può eseguire. Il file manifesto viene incluso nel pacchetto e distribuito come parte del flusso di lavoro dell'agente nella piattaforma Security Copilot. Gli analisti SOC interagiscono con l'agente tramite questa piattaforma e l'agente risponde a richieste o eventi in base alla configurazione del manifesto e alla logica dello strumento.
Nota
Negli esempi, il formato YAML è elencato perché è più chiaro per gli utenti leggere e può includere commenti, ma entrambi i formati funzionano ugualmente bene. Il formato JSON è identico al formato YAML, ma usa invece la sintassi JSON.
Agent YAML
Questo è un esempio di un file di esempio manifest.yaml .
Descriptor:
Name: Contoso.SecurityOperations.Samples-090925
Description: DCA URL Geolocation Agent
DisplayName: DCA URL Geolocation Agent
SkillGroups:
- Format: AGENT
Skills:
- Name: URL_Location_DCA_Agent_Entrypoint-090925
Description: The entrypoint into the URL Location Agent
Interfaces:
- Agent
Inputs:
- Required: true
Name: URL
Description: A URL the agent should investigate
Settings:
Model: gpt-4.1
Instructions: |
<|im_start|>system
You are an AI agent that helps a security analyst understand the hosting situation of a URL (the input).
You'll do this by following a three-step process:
1) Use ExtractHostname to find the hostname from the URL provided as input
2) Use GetDnsResolutionsByIndicators to extract IP Addresses that the hostname has been observed resolving to. This may produce a list of IP Addresses.
3) One-at-a time, use lookupIpAddressGeolocation to look up the geolocation of an IP address.
Produce a simply formatted response telling the security analyst which locations that URL is being served from.
If you encounter an error share that.
Always return something the user knows that something happened.
<|im_end|>
<|im_start|>user
{{URL}}
<|im_end|>
ChildSkills:
- lookupIpAddressGeolocation
- ExtractHostname_DCA-090925
- GetDnsResolutionsByIndicators
- Format: GPT
Skills:
- Name: ExtractHostname_DCA-090925
DisplayName: ExtractHostname_DCA-090925
Description: ExtractHostname_DCA-090925
Inputs:
- Name: URL
Description: A URL string
Required: true
Settings:
ModelName: gpt-4.1
Template: |-
<|im_start|>system
Return the hostname component of the URL provided as input. For example:
- If the input is 'https://www.mlb.com/', return 'www.mlb.com'
- If the input is 'http://dev.mycompany.co.uk/sign-up/blah?a=12&b=12&c=32#23', return 'dev.mycompany.co.uk'
- If the input is 'ftp:/x.espon.com', return 'x.espon.com'
<|im_end|>
<|im_start|>user
{{URL}}
<|im_end|>
- Format: KQL
Skills:
- Name: RecentUrlClicks_DCA-090925
Description: Returns 10 recently clicked URLs
Settings:
Target: Defender
Template: UrlClickEvents | sort by TimeGenerated desc | limit 10 | project Url
AgentDefinitions:
- Name: URLLocationAgent-090925
DisplayName: URLLocationAgent
Description: An agent to help an analyst understand URL hosting
Publisher: Contoso
Product: SecurityOperations
RequiredSkillsets:
- Contoso.SecurityOperations.Samples-090925
- ThreatIntelligence.DTI
- DCA_SampleAPIPlugin
AgentSingleInstanceConstraint: None
Settings:
- Name: LookbackWindowMinutes
Label: Max Lookback Window in minutes
Description: The maximum number of minutes to find clicked URLs
HintText: You should probably enter 5
SettingType: String
Required: true
Triggers:
- Name: Default
DefaultPeriodSeconds: 300
FetchSkill: Contoso.SecurityOperations.Samples-090925.RecentUrlClicks_DCA-090925
ProcessSkill: Contoso.SecurityOperations.Samples-090925.URL_Location_DCA_Agent_Entrypoint-090925
L'agente segue un processo in tre passaggi per richiamare le competenze figlio:
ExtractHostname: usa lo strumentoExtractHostname_DCA-090925GPT per analizzare il nome host dall'URL.GetDnsResolutionsByIndicators: usa il set di competenze di Microsoft Threat Intelligence per recuperare gli indirizzi IP associati al nome host. È necessario abilitare il plug-in Gestisci origini > personalizzato. Assicurarsi cheRequiredSkillsets: ThreatIntelligence.DTIdebba essere aggiunto senza qualeGetDnsResolutionsByIndicatorsstrumento non viene richiamato.lookupIpAddressGeolocation: oggettooperationIdnella specifica OpenAPI, a cui si fa riferimento nel plug-inDCA_SampleAPIPluginAPI per cercare i dati di georilevazione per ogni indirizzo IP. Per informazioni di riferimento, vedere Esempio di API di compilazione.
Attivazione
Un trigger è ciò che avvia il flusso di lavoro di un agente. Può essere avviato manualmente o impostato per l'esecuzione in base a una pianificazione. Dopo l'attivazione del trigger, l'agente segue il piano e esegue automaticamente le azioni.
Gli agenti operano in base a un piano d'azione strutturato ed eseguono su tale piano. Ad esempio, un agente di valutazione del phishing può determinare quali strumenti o altri agenti richiamare dal set di funzionalità pre-configurate. Gli strumenti, ad esempio FetchSkill e ProcessSkill definiti nel trigger, fungono da punti di ingresso nel flusso di lavoro dell'agente che guidano l'esecuzione dell'attività.
Nell'esempio seguente:
Triggers:
- Name: Default
DefaultPeriodSeconds: 300
FetchSkill: Contoso.SecurityCopilot.Samples-090925_1b.RecentUrlClicks_DCA-090925_1b
ProcessSkill: Contoso.SecurityCopilot.Samples-090925_1b.URL_Location_DCA_Agent_Entrypoint-090925_1b
Settings:
1. Ogni 5 minuti, viene RecentUrlClicks_DCA-090925_1b richiamato per ottenere nuovi dati.
2.Quindi, ProcessSkill URL_Location_DCA_Agent_Entrypoint-090925_1b viene richiamato su ogni elemento restituito per agire sui dati.
Ognuno di questi cicli è un'esecuzione del trigger e ogni chiamata a ProcessSkill è un'esecuzione di trigger. Queste chiamate di competenza vengono eseguite in sessioni associate all'istanza e al trigger dell'agente e usano l'identità associata dell'agente.
FetchSkill e ProcessSkill
FetchSkill
Quando un trigger viene attivato in un'esecuzione dell'agente, FetchSkill, se configurato, raccoglie i dati. ProcessSkill definisce il modo in cui gli agenti agiscono su tali dati durante l'esecuzione. Dopo il recupero dei dati, ProcessSkill assume il controllo, usando tali dati come input per eseguire azioni o analisi specifiche. Questi due componenti funzionano insieme per abilitare flussi di lavoro dinamici basati sui dati. Se il valore FetchSkill è impostato, il trigger richiama innanzitutto FetchSkill.
Importante
Fetch e ProcessSkills devono essere spazi dei nomi in base al set di competenze. Devono seguire il formato Skillset name.Skill name.
Nell'esempio per Trigger, è Skill nameRecentUrlClicks_DCA. è Skillset name il Descriptor.name, ad esempio Contoso.SecurityCopilot.Samples-090925_1b. Il nome completo della competenza è Contoso.SecurityCopilot.Samples-090925_1b. RecentUrlClicks_DCA.
ProcessSkill
Se viene definito un oggetto FetchSkill, per ogni oggetto di output viene chiamato ProcessSkill usando i valori di output come input per ProcessSkill. Se fetchSkill non è definito, viene richiamato ProcessSkill.
{
[
{
"Incident": 1,
"name": "Item One",
"created_at": "2024-02-17T12:34:56Z"
},
{
"Incident": 2,
"name": "Item Two",
"created_at": "2024-02-17T12:35:30Z"
},
{
"Incident": 3,
"name": "Item Three",
"created_at": "2024-02-17T12:36:10Z"
}
]
}
Nell'esempio ProcessSkill viene chiamato tre volte con Incident, namee created_at come input.
Area di lavoro
Contenitore per il lavoro. Gli agenti operano nel contesto di un'area di lavoro. L'area di lavoro fornisce un'unità di controllo per l'accesso, la configurazione, l'utilizzo e la gestione dei dati.
Memoria
La memoria consente agli agenti di mantenere il contesto tra le interazioni, consentendo risposte più intelligenti e personalizzate. Archiviando informazioni rilevanti, ad esempio azioni precedenti, preferenze utente o cronologia degli eventi imprevisti, gli agenti possono garantire la continuità e migliorare il processo decisionale nel tempo.