<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Elastic Security Labs - Articles by Susan Chang</title>
        <link>https://www.elastic.co/es/security-labs</link>
        <description>Trusted security news &amp; research from the team at Elastic.</description>
        <lastBuildDate>Thu, 05 Mar 2026 22:21:01 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>Elastic Security Labs - Articles by Susan Chang</title>
            <url>https://www.elastic.co/es/security-labs/assets/security-labs-thumbnail.png</url>
            <link>https://www.elastic.co/es/security-labs</link>
        </image>
        <copyright>© 2026. Elasticsearch B.V. All Rights Reserved</copyright>
        <item>
            <title><![CDATA[Elastic Advances LLM Security with Standardized Fields and Integrations]]></title>
            <link>https://www.elastic.co/es/security-labs/elastic-advances-llm-security</link>
            <guid>elastic-advances-llm-security</guid>
            <pubDate>Mon, 06 May 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Discover Elastic’s latest advancements in LLM security, focusing on standardized field integrations and enhanced detection capabilities. Learn how adopting these standards can safeguard your systems.]]></description>
            <content:encoded><![CDATA[<h2>Introduction</h2>
<p>Last week, security researcher Mika Ayenson <a href="https://www.elastic.co/es/security-labs/embedding-security-in-llm-workflows">authored a publication</a> highlighting potential detection strategies and an LLM content auditing prototype solution via a proxy implemented during Elastic’s OnWeek event series. This post highlighted the importance of research pertaining to the safety of LLM technology implemented in different environments, and the research focus we’ve taken at Elastic Security Labs.</p>
<p>Given Elastic's unique vantage point leveraging LLM technology in our platform to power capabilities such as the Security <a href="https://www.elastic.co/es/guide/en/security/current/security-assistant.html">AI Assistant</a>, our desire for more formal detection rules, integrations, and research content has been growing. This publication highlights some of the recent advancements we’ve made in LLM integrations, our thoughts around detections aligned with industry standards, and ECS field mappings.</p>
<p>We are committed to a comprehensive security strategy that protects not just the direct user-based LLM interactions but also the broader ecosystem surrounding them. This approach involves layers of security detection engineering opportunities to address not only the LLM requests/responses but also the underlying systems and integrations used by the models.</p>
<p>These detection opportunities collectively help to secure the LLM ecosystem and can be broadly grouped into five categories:</p>
<ol>
<li><strong>Prompt and Response</strong>: Detection mechanisms designed to identify and mitigate threats based on the growing variety of LLM interactions to ensure that all communications are securely audited.</li>
<li><strong>Infrastructure and Platform</strong>: Implementing detections to protect the infrastructure hosting LLMs (including wearable AI Pin devices), including detecting threats against the data stored, processing activities, and server communication.</li>
<li><strong>API and Integrations</strong>: Detecting threats when interacting with LLM APIs and protecting integrations with other applications that ingest model output.</li>
<li><strong>Operational Processes and Data</strong>: Monitoring operational processes (including in AI agents) and data flows while protecting data throughout its lifecycle.</li>
<li><strong>Compliance and Ethical</strong>: Aligning detection strategies with well-adopted industry regulations and ethical standards.</li>
</ol>
<p><img src="https://www.elastic.co/es/security-labs/assets/images/elastic-advances-llm-security/image4.png" alt="Securing the LLM Ecosystem: five categories" />
Securing the LLM Ecosystem: five categories</p>
<p>Another important consideration for these categories expands into who can best address risks or who is responsible for each category of risk pertaining to LLM systems.</p>
<p>Similar to existing <a href="https://www.cisecurity.org/insights/blog/shared-responsibility-cloud-security-what-you-need-to-know">Shared Security Responsibility</a> models, Elastic has assessed four broad categories, which will eventually be expanded upon further as we continue our research into detection engineering strategies and integrations. Broadly, this publication considers security protections that involve the following responsibility owners:</p>
<ul>
<li><strong>LLM Creators</strong>: Organizations who are building, designing, hosting, and training LLMs, such as OpenAI, Amazon Web Services, or Google</li>
<li><strong>LLM Integrators</strong>: Organizations and individuals who integrate existing LLM technologies produced by LLM Creators into other applications</li>
<li><strong>LLM Maintainers</strong>: Individuals who monitor operational LLMs for performance, reliability, security, and integrity use-cases and remain directly involved in the maintenance of the codebase, infrastructure, and software architecture</li>
<li><strong>Security Users</strong>: People who are actively looking for vulnerabilities in systems through traditional testing mechanisms and means. This may expand beyond the traditional risks discussed in <a href="https://llmtop10.com/">OWASP’s LLM Top 10</a> into risks associated with software and infrastructure surrounding these systems</li>
</ul>
<p>This broader perspective showcases a unified approach to LLM detection engineering that begins with ingesting data using native Elastic <a href="https://www.elastic.co/es/integrations">integrations</a>; in this example, we highlight the AWS Bedrock Model Invocation use case.</p>
<h2>Integrating LLM logs into Elastic</h2>
<p>Elastic integrations simplify data ingestion into Elastic from various sources, ultimately enhancing our security solution. These integrations are managed through Fleet in Kibana, allowing users to easily deploy and manage data within the Elastic Agent. Users can quickly adapt Elastic to new data sources by selecting and configuring integrations through Fleet. For more details, see Elastic’s <a href="https://www.elastic.co/es/blog/elastic-agent-and-fleet-make-it-easier-to-integrate-your-systems-with-elastic">blog</a> on making it easier to integrate your systems with Elastic.</p>
<p>The initial ONWeek work undertaken by the team involved a simple proxy solution that extracted fields from interactions with the Elastic Security AI Assistant. This prototype was deployed alongside the Elastic Stack and consumed data from a vendor solution that lacked security auditing capabilities. While this initial implementation proved conceptually interesting, it prompted the team to invest time in assessing existing Elastic integrations from one of our cloud provider partners, <a href="https://docs.elastic.co/integrations/aws">Amazon Web Services</a>. This methodology guarantees streamlined accessibility for our users, offering seamless, one-click integrations for data ingestion. All ingest pipelines conform to ECS/OTel normalization standards, encompassing comprehensive content, including dashboards, within a unified package. Furthermore, this strategy positions us to leverage additional existing integrations, such as Azure and GCP, for future LLM-focused integrations.</p>
<h3>Vendor selection and API capabilities</h3>
<p>When selecting which LLM providers to create integrations for, we looked at the types of fields we need to ingest for our security use cases. For the starting set of rules detailed here, we needed information such as timestamps and token counts; we found that vendors such as Azure OpenAI provided content moderation filtering on the prompts and generated content. LangSmith (part of the LangChain tooling) was also a top contender, as the data contains the type of vendor used (e.g., OpenAI, Bedrock, etc.) and all the respective metadata. However, this required that the user also have LangSmith set up. For this implementation, we decided to go with first-party supported logs from a vendor that provides LLMs.</p>
<p>As we went deeper into potential integrations, we decided to land with AWS Bedrock, for a few specific reasons. Firstly, Bedrock logging has <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-invocation-logging.html">first-party support</a> to Amazon CloudWatch Logs and Amazon S3. Secondly, the logging is built specifically for model invocation, including data specific to LLMs (as opposed to other operations and machine learning models), including prompts and responses, and guardrail/content filtering. Thirdly, Elastic already has a <a href="https://www.elastic.co/es/integrations/data-integrations?solution=all-solutions&amp;category=aws">robust catalog</a> of integrations with AWS, so we were able to quickly create a new integration for AWS Bedrock model invocation logs specifically. The next section will dive into this new integration, which you can use to capture your Bedrock model invocation logs in the Elastic stack.</p>
<h3>Elastic AWS Bedrock model integration</h3>
<h4>Overview</h4>
<p>The new Elastic <a href="https://docs.elastic.co/integrations/aws_bedrock">AWS Bedrock</a> integration for model invocation logs provides a way to collect and analyze data from AWS services quickly, specifically focusing on the model. This integration provides two primary methods for log collection: Amazon S3 buckets and Amazon CloudWatch. Each method is optimized to offer robust data retrieval capabilities while considering cost-effectiveness and performance efficiency. We use these LLM-specific fields collected for detection engineering purposes.</p>
<p>Note: While this integration does not cover every proposed field, it does standardize existing AWS Bedrock fields into the gen_ai category. This approach makes it easier to maintain detection rules across various data sources, minimizing the need for separate rules for each LLM vendor.</p>
<h3>Configuring integration data collection method</h3>
<h4>Collecting logs from S3 buckets</h4>
<p>This integration allows for efficient log collection from S3 buckets using two distinct methods:</p>
<ul>
<li><strong>SQS Notification</strong>: This is the preferred method for collecting. It involves reading S3 notification events from an AWS Simple Queue Service (SQS) queue. This method is less costly and provides better performance compared to direct polling.</li>
<li><strong>Direct S3 Bucket Polling</strong>: This method directly polls a list of S3 objects within an S3 bucket and is recommended only when SQS notifications cannot be configured. This approach is more resource-intensive, but it provides an alternative when SQS is not feasible.</li>
</ul>
<h4>Collecting logs from CloudWatch</h4>
<p>Logs can also be collected directly from CloudWatch, where the integration taps into all log streams within a specified log group using the filterLogEvents AWS API. This method is an alternative to using S3 buckets altogether.</p>
<h4>Integration installation</h4>
<p>The integration can be set up within the Elastic Agent by following normal Elastic <a href="https://www.elastic.co/es/guide/en/fleet/current/add-integration-to-policy.html">installation steps</a>.</p>
<ol>
<li>Navigate to the AWS Bedrock integration</li>
<li>Configure the <code>queue_url</code> for SQS or <code>bucket_arn</code> for direct S3 polling.</li>
</ol>
<p><img src="https://www.elastic.co/es/security-labs/assets/images/elastic-advances-llm-security/image2.png" alt="New AWS Bedrock Elastic Integration" /></p>
<h3>Configuring Bedrock Guardrails</h3>
<p>AWS Bedrock <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html">Guardrails</a> enable organizations to enforce security by setting policies that limit harmful or undesirable content in LLM interactions. These guardrails can be customized to include denied topics to block specific subjects and content filters to moderate the severity of content in prompts and responses. Additionally, word and sensitive information filters block profanity and mask personally identifiable information (PII), ensuring interactions comply with privacy and ethical standards. This feature helps control the content generated and consumed by LLMs and, ideally, reduces the risk associated with malicious prompts.</p>
<p>Note: other guardrail examples include Azure OpenAI’s <a href="https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/content-filter?tabs=warning%2Cpython-new">content and response</a> filters, which we aim to capture in our proposed LLM standardized fields for vendor-agnostic logging.</p>
<p><img src="https://www.elastic.co/es/security-labs/assets/images/elastic-advances-llm-security/image1.png" alt="AWS Bedrock Guardrails" /></p>
<p>When LLM interaction content triggers these filters, the response objects are populated with <code>amazon-bedrock-trace</code> and <code>amazon-bedrock-guardrailAction</code> fields, providing details about the Guardrails outcome, and nested fields indicating whether the input matched the content filter. This response object enrichment with detailed filter outcomes improves the overall data quality, which becomes particularly effective when these nested fields are aligned with ECS mappings.</p>
<h3>The importance of ECS mappings</h3>
<p>Field mapping is a critical part of the process for integration development, primarily to improve our ability to write broadly scoped and widely compatible detection rules. By standardizing how data is ingested and analyzed, organizations can more effectively detect, investigate, and respond to potential threats or anomalies in logs ingested into Elastic, and in this specific case, LLM logs.</p>
<p>Our initial mapping begins by investigating fields provided by the vendor and existing gaps, leading to the establishment of a comprehensive schema tailored to the nuances of LLM operations. We then reconciled the fields to align with our OpenTelemetry <a href="https://github.com/open-telemetry/semantic-conventions/blob/main/docs/gen-ai/llm-spans.md">semantic conventions</a>. These mappings shown in the table cover various aspects:</p>
<ul>
<li><strong>General LLM Interaction Fields</strong>: These include basic but critical information such as the content of requests and responses, token counts, timestamps, and user identifiers, which are foundational for understanding the context and scope of interactions.</li>
<li><strong>Text Quality and Relevance Metric Fields</strong>: Fields measuring text readability, complexity, and similarity scores help assess the quality and relevance of model outputs, ensuring that responses are not only accurate but also user-appropriate.</li>
<li><strong>Security Metric Fields</strong>: This class of metrics is important for identifying and quantifying potential security risks, including regex pattern matches and scores related to jailbreak attempts, prompt injections, and other security concerns such as hallucination consistency and refusal responses.</li>
<li><strong>Policy Enforcement Fields</strong>: These fields capture details about specific policy enforcement actions taken during interactions, such as blocking or modifying content, and provide insights into the confidence levels of these actions, enhancing security and compliance measures.</li>
<li><strong>Threat Analysis Fields</strong>: Focused on identifying and quantifying potential threats, these fields provide a detailed analysis of risk scores, types of detected threats, and the measures taken to mitigate these threats.</li>
<li><strong>Compliance Fields</strong>: These fields help ensure that interactions comply with various regulatory standards, detailing any compliance violations detected and the specific rules that were triggered during the interaction.</li>
<li><strong>OWASP Top Ten Specific Fields</strong>: These fields map directly to the OWASP Top 10 risks for LLM applications, helping to align security measures with recognized industry standards.</li>
<li><strong>Sentiment and Toxicity Analysis Fields</strong>: These analyses are essential to gauge the tone and detect any harmful content in the response, ensuring that outputs align with ethical guidelines and standards. This includes sentiment scores, toxicity levels, and identification of inappropriate or sensitive content.</li>
<li><strong>Performance Metric Fields</strong>: These fields measure the performance aspects of LLM interactions, including response times and sizes of requests and responses, which are critical for optimizing system performance and ensuring efficient operations.</li>
</ul>
<p><img src="https://www.elastic.co/es/security-labs/assets/images/elastic-advances-llm-security/image5.png" alt="General, quality, security, policy, and threat analysis fields" /></p>
<p><img src="https://www.elastic.co/es/security-labs/assets/images/elastic-advances-llm-security/image6.png" alt="Compliance, OWASP top 10, security tools analysis, sentiment and toxicity analysis, and performance fields" /></p>
<p>Note: See the <a href="https://gist.github.com/Mikaayenson/cf03f6d3998e16834c1274f007f2666c">gist</a> for an extended table of fields proposed.</p>
<p>These fields are mapped by our LLM integrations and ultimately used within our detections. As we continue to understand the threat landscape, we will continue to refine these fields to ensure additional fields populated by other LLM vendors are standardized and conceptually reflected within the mapping.</p>
<h3>Broader Implications and Benefits of Standardization</h3>
<p>Standardizing security fields within the LLM ecosystem (e.g., user interaction and application integration) facilitates a unified approach to the security domain. Elastic endeavors to lead the charge by defining and promoting a set of standard fields. This effort not only enhances the security posture of individual organizations but also fosters a safer industry.</p>
<p><strong>Integration with Security Tools</strong>: By standardizing responses from LLM-related security tools, it enriches security analysis fields that can be shipped with the original LLM vendor content to a security solution. If operationally chained together in the LLM application’s ecosystem, security tools can audit each invocation request and response. Security teams can then leverage these fields to build complex detection mechanisms that can identify subtle signs of misuse or vulnerabilities within LLM interactions.</p>
<p><strong>Consistency Across Vendors</strong>: Insisting that all LLM vendors adopt these standard fields drives a singular goal to effectively protect applications, but in a way that establishes a baseline that all industry users can adhere to. Users are encouraged to align to a common schema regardless of the platform or tool.</p>
<p><strong>Enhanced Detection Engineering</strong>: With these standard fields, detection engineering becomes more robust and the change of false positives is decreased. Security engineers can create effective rules that identify potential threats across different models, interactions, and ecosystems. This consistency is especially important for organizations that rely on multiple LLMs or security tools and need to maintain a unified platform.</p>
<h4>Sample LLM-specific fields: AWS Bedrock use case</h4>
<p>Based on the integration’s ingestion pipeline, field mappings, and processors, the AWS Bedrock data is cleaned up, standardized, and mapped to Elastic Common Schema (<a href="https://www.elastic.co/es/guide/en/ecs/current/ecs-reference.html">ECS</a>) fields. The core Bedrock fields are then introduced under the <code>aws.bedrock</code> group which includes details about the model invocation like requests, responses, and token counts. The integration populates additional fields tailored for the LLM to provide deeper insights into the model’s interactions which are later used in our detections.</p>
<h3>LLM detection engineering examples</h3>
<p>With the standardized fields and the Elastic AWS Bedrock integration, we can begin crafting detection engineering rules that showcase the proposed capability with varying complexity. The below examples are written using <a href="https://www.elastic.co/es/guide/en/security/8.13/rules-ui-create.html#create-esql-rule">ES|QL</a>.</p>
<p>Note: Check out the detection-rules <a href="https://github.com/elastic/detection-rules/tree/main/hunting">hunting</a> directory and <a href="https://github.com/elastic/detection-rules/tree/main/rules/integrations/aws_bedrock"><code>aws_bedrock</code></a> rules for more details about these queries.</p>
<h4>Basic detection of sensitive content refusal</h4>
<p>With current policies and standards on sensitive topics within the organization, it is important to have mechanisms in place to ensure LLMs also adhere to compliance and ethical standards. Organizations have an opportunity to monitor and capture instances where an LLM directly refuses to respond to sensitive topics.</p>
<p><strong>Sample Detection</strong>:</p>
<pre><code>from logs-aws_bedrock.invocation-*
 | WHERE @timestamp &gt; NOW() - 1 DAY
   AND (
     gen_ai.completion LIKE &quot;*I cannot provide any information about*&quot;
     AND gen_ai.response.finish_reasons LIKE &quot;*end_turn*&quot;
   )
 | STATS user_request_count = count() BY gen_ai.user.id
 | WHERE user_request_count &gt;= 3
</code></pre>
<p><strong>Detection Description</strong>: This query is used to detect instances where the model explicitly refuses to provide information on potentially sensitive or restricted topics multiple times. Combined with predefined formatted outputs, the use of specific phrases like &quot;I cannot provide any information about&quot; within the output content indicates that the model has been triggered by a user prompt to discuss something it's programmed to treat as confidential or inappropriate.</p>
<p><strong>Security Relevance</strong>: Monitoring LLM refusals helps to identify attempts to probe the model for sensitive data or to exploit it in a manner that could lead to the leakage of proprietary or restricted information. By analyzing the patterns and frequency of these refusals, security teams can investigate if there are targeted attempts to breach information security policies.</p>
<h3>Potential denial of service or resource exhaustion attacks</h3>
<p>Due to the engineering design of LLMs being highly computational and data-intensive, they are susceptible to resource exhaustion and denial of service (DoS) attacks. High usage patterns may indicate abuse or malicious activities designed to degrade the LLM’s availability. Due to the ambiguity of correlating prompt request size directly with token count, it is essential to consider the implications of high token counts in prompts which may not always result from larger requests bodies. Token count and character counts depend on the specific model, where each can be different and is related to how embeddings are generated.</p>
<p><strong>Sample Detection</strong>:</p>
<pre><code>from logs-aws_bedrock.invocation-*
 | WHERE @timestamp &gt; NOW() - 1 DAY
   AND (
     gen_ai.usage.prompt_tokens &gt; 8000 OR
     gen_ai.usage.completion_tokens &gt; 8000 OR
     gen_ai.performance.request_size &gt; 8000
   )
 | STATS max_prompt_tokens = max(gen_ai.usage.prompt_tokens),
         max_request_tokens = max(gen_ai.performance.request_size),
         max_completion_tokens = max(gen_ai.usage.completion_tokens),
         request_count = count() BY cloud.account.id
 | WHERE request_count &gt; 1
 | SORT max_prompt_tokens, max_request_tokens, max_completion_tokens DESC
</code></pre>
<p><strong>Detection Description</strong>: This query identifies high-volume token usage which could be indicative of abuse or an attempted denial of service (DoS) attack. Monitoring for unusually high token counts (input or output) helps detect patterns that could slow down or overwhelm the system, potentially leading to service disruptions. Given each application may leverage a different token volume, we’ve chosen a simple threshold based on our existing experience that should cover basic use cases.</p>
<p><strong>Security Relevance</strong>: This form of monitoring helps detect potential concerns with system availability and performance. It helps in the early detection of DoS attacks or abusive behavior that could degrade service quality for legitimate users. By aggregating and analyzing token usage by account, security teams can pinpoint sources of potentially malicious traffic and take appropriate measures.</p>
<h4>Monitoring for latency anomalies</h4>
<p>Latency-based metrics can be a key indicator of underlying performance issues or security threats that overload the system. By monitoring processing delays, organizations can ensure that servers are operating as efficiently as expected.</p>
<p><strong>Sample Detection</strong>:</p>
<pre><code>from logs-aws_bedrock.invocation-*
 | WHERE @timestamp &gt; NOW() - 1 DAY
 | EVAL response_delay_seconds = gen_ai.performance.start_response_time / 1000
 | WHERE response_delay_seconds &gt; 5
 | STATS max_response_delay = max(response_delay_seconds),
         request_count = count() BY gen_ai.user.id
 | WHERE request_count &gt; 3
 | SORT max_response_delay DESC
</code></pre>
<p><strong>Detection Description</strong>: This updated query monitors the time it takes for an LLM to start sending a response after receiving a request, focusing on the initial response latency. It identifies significant delays by comparing the actual start of the response to typical response times, highlighting instances where these delays may be abnormally long.</p>
<p><strong>Security Relevance</strong>: Anomalous latencies can be symptomatic of issues such as network attacks (e.g., DDoS) or system inefficiencies that need to be addressed. By tracking and analyzing latency metrics, organizations can ensure that their systems are running efficiently and securely, and can quickly respond to potential threats that might manifest as abnormal delays.</p>
<h2>Advanced LLM detection engineering use cases</h2>
<p>This section explores potential use cases that could be addressed with an Elastic Security integration. It assumes that these fields are fully populated and that necessary security auditing enrichment features (e.g., Guardrails) have been implemented, either within AWS Bedrock or via a similar approach provided by the LLM vendor. In combination with the available data source and Elastic integration, detection rules can be built on top of these Guardrail requests and responses to detect misuse of LLMs in deployment.</p>
<h3>Malicious model uploads and cross-tenant escalation</h3>
<p>A recent investigation into the Hugging Face Interface API revealed a significant risk where attackers could upload a maliciously crafted model to perform arbitrary code execution. This was achieved by using a Python Pickle file that, when deserialized, executed embedded malicious code. These vulnerabilities highlight the need for rigorous security measures to inspect and sanitize all inputs in AI-as-a-Service (AIAAS) platforms from the LLM, to the infrastructure that hosts the model, and the application API integration. Refer to <a href="https://www.wiz.io/blog/wiz-and-hugging-face-address-risks-to-ai-infrastructure">this article</a> for more details.</p>
<p><strong>Potential Detection Opportunity</strong>: Use fields like <code>gen_ai.request.model.id</code>, <code>gen_ai.request.model.version</code>, and prompt <code>gen_ai.completion</code> to detect interactions with anomalous models. Monitoring unusual values or patterns in the model identifiers and version numbers along with inspecting the requested content (e.g., looking for typical Python Pickle serialization techniques) may indicate suspicious behavior. Similarly, a check prior to uploading the model using similar fields may block the upload. Cross-referencing additional fields like <code>gen_ai.user.id</code> can help identify malicious cross-tenant operations performing these types of activities.</p>
<h3>Unauthorized URLs and external communication</h3>
<p>As LLMs become more integrated into operational ecosystems, their ability to interact with external capabilities like email or webhooks can be exploited by attackers. To protect against these interactions, it’s important to implement detection rules that can identify suspicious or unauthorized activities based on the model’s outputs and subsequent integrations.</p>
<p><strong>Potential Detection Opportunity</strong>: Use fields like <code>gen_ai.completion</code>, and <code>gen_ai.security.regex_pattern_count</code> to triage malicious external URLs and webhooks. These regex patterns need to be predefined based on well-known suspicious patterns.</p>
<h4>Hierarchical instruction prioritization</h4>
<p>LLMs are increasingly used in environments where they receive instructions from various sources (e.g., <a href="https://openai.com/blog/custom-instructions-for-chatgpt">ChatGPT Custom Instructions</a>), which may not always have benign intentions. This build-your-own model workflow can lead to a range of potential security vulnerabilities, if the model treats all instructions with equal importance, and they go unchecked. Reference <a href="https://arxiv.org/pdf/2404.13208.pdf">here</a>.</p>
<p><strong>Potential Detection Opportunity</strong>: Monitor fields like <code>gen_ai.model.instructions</code> and <code>gen_ai.completion</code> to identify discrepancies between given instructions and the models responses which may indicate cases where models treat all instructions with equal importance. Additionally, analyze the <code>gen_ai.similarity_score</code>, to discern how similar the response is from the original request.</p>
<h3>Extended detections featuring additional Elastic rule types</h3>
<p>This section introduces additional detection engineering techniques using some of Elastic’s rule types, Threshold, Indicator Match, and New Terms to provide a more nuanced and robust security posture.</p>
<ul>
<li><strong>Threshold Rules</strong>: Identify high frequency of denied requests over a short period of time grouped by <code>gen_ai.user.id</code> that could be indicative of abuse attempts. (e.g. OWASP’s LLM04)</li>
<li><strong>Indicator Match Rules</strong>: Match known malicious threat intel provided indicators such as the LLM user ID like the <code>gen_ai.user.id</code> which contain these user attributes. (e.g. <code>arn:aws:iam::12345678912:user/thethreatactor</code>)</li>
<li><strong>New Terms Rules</strong>: Detect new or unusual terms in user prompts that could indicate usual activity outside of the normal usage for the user’s role, potentially indicating new malicious behaviors.</li>
</ul>
<h2>Summary</h2>
<p>Elastic is pioneering the standardization of LLM-based fields across the generative AI landscape to enable security detections across the ecosystem. This initiative not only aligns with our ongoing enhancements in LLM integration and security strategies but also supports our broad security framework that safeguards both direct user interactions and the underlying system architectures. By promoting a uniform language among LLM vendors for enhanced detection and response capabilities, we aim to protect the entire ecosystem, making it more secure and dependable. Elastic invites all stakeholders within the industry, creators, maintainers, integrators and users, to adopt these standardized practices, thereby strengthening collective security measures and advancing industry-wide protections.</p>
<p>As we continue to add and enhance our integrations, starting with AWS Bedrock, we are strategizing to align other LLM-based integrations to the new standards we’ve set, paving the way for a unified experience across the Elastic ecosystem. The seamless overlap with existing Elasticsearch capabilities empowers users to leverage sophisticated search and analytics directly on the LLM data, driving existing workflows back to tools users are most comfortable with.</p>
<p>Check out the <a href="https://www.elastic.co/es/security/llm-safety-report">LLM Safety Assessment</a>, which delves deeper into these topics.</p>
<p><strong>The release and timing of any features or functionality described in this post remain at Elastic's sole discretion. Any features or functionality not currently available may not be delivered on time or at all.</strong></p>
]]></content:encoded>
            <category>security-labs</category>
            <enclosure url="https://www.elastic.co/es/security-labs/assets/images/elastic-advances-llm-security/Security Labs Images 4.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Using LLMs and ESRE to find similar user sessions]]></title>
            <link>https://www.elastic.co/es/security-labs/using-llms-and-esre-to-find-similar-user-sessions</link>
            <guid>using-llms-and-esre-to-find-similar-user-sessions</guid>
            <pubDate>Tue, 19 Sep 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[In our previous article, we explored using the GPT-4 Large Language Model (LLM) to condense Linux user sessions. In the context of the same experiment, we dedicated some time to examine sessions that shared similarities. These similar sessions can subsequently aid the analysts in identifying related suspicious activities.]]></description>
            <content:encoded><![CDATA[<h2>Using LLMs and ESRE to find similar user sessions</h2>
<p>In our <a href="https://www.elastic.co/es/security-labs/using-llms-to-summarize-user-sessions">previous article</a>, we explored using the GPT-4 Large Language Model (LLM) to condense complex Linux user sessions into concise summaries. We highlighted the key takeaways from our experiments, shedding light on the nuances of data preprocessing, prompt tuning, and model parameter adjustments. In the context of the same experiment, we dedicated some time to examine sessions that shared similarities. These similar sessions can subsequently aid the analysts in identifying related suspicious activities. We explored the following methods to find similarities in user sessions:</p>
<ul>
<li>In an endeavor to uncover similar user profiles and sessions, one approach we undertook was to categorize sessions according to the actions executed by users; we accomplished this by instructing the Language Model Model (LLM) to categorize user sessions into predefined categories</li>
<li>Additionally, we harnessed the capabilities of <a href="https://www.elastic.co/es/guide/en/machine-learning/current/ml-nlp-elser.html">ELSER</a> (Elastic’s retrieval model for semantic search) to execute a semantic search on the model summaries derived from the session summarization experiment</li>
</ul>
<p>This research focuses on our experiments using GPT-4 for session categorization and <a href="https://www.elastic.co/es/elasticsearch/elasticsearch-relevance-engine">ESRE</a> for semantic search.</p>
<h2>Leveraging GPT for Session Categorization</h2>
<p>We consulted a security research colleague with domain expertise to define nine categories for our dataset of 75 sessions. These categories generalize the main behaviors and significant features observed in the sessions. They include the following activities:</p>
<ul>
<li>Docker Execution</li>
<li>Network Operations</li>
<li>File Searches</li>
<li>Linux Command Line Usage</li>
<li>Linux Sandbox Application Usage</li>
<li>Pip Installations</li>
<li>Package Installations</li>
<li>Script Executions</li>
<li>Process Executions</li>
</ul>
<h2>Lessons learned</h2>
<p>For our experiments, we used a GPT-4 deployment in Azure AI Studio with a token limit of 32k. To explore the potential of the GPT model for session categorization, we conducted a series of experiments, directing the model to categorize sessions by inputting the same JSON summary document we used for the <a href="https://www.elastic.co/es/security-labs/using-llms-to-summarize-user-sessions">session summarization process</a>.</p>
<p>This effort included multiple iterations, during which we concentrated on enhancing prompts and <a href="https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api">Few-Shot</a> Learning. As for the model parameters, we maintained a <a href="https://txt.cohere.com/llm-parameters-best-outputs-language-ai/">Temperature of 0</a> in an effort to make the outputs less diverse.</p>
<h3>Prompt engineering</h3>
<p><em>Takeaway:</em> Including explanations for categories in the prompts does not impact the model's performance.</p>
<p>The session categorization component was introduced as an extension to the session summarization prompt. We explored the effect of incorporating contextual explanations for each category alongside the prompts. Intriguingly, our findings revealed that appending illustrative context did not significantly influence the model's performance, as compared to prompts devoid of such supplementary information.</p>
<p>Below is a template we used to guide the model's categorization process:</p>
<pre><code>You are a cybersecurity assistant, who helps Security analysts in summarizing activities that transpired in a Linux session. A summary of events that occurred in the session will be provided in JSON format. No need to explicitly list out process names and file paths. Summarize the session in ~3 paragraphs, focusing on the following: 
- Entities involved in the session: host name and user names.
- Overview of any network activity. What major source and destination ips are involved? Any malicious port activity?
- Overview of any file activity. Were any sensitive files or directories accessed?
- Highlight any other important process activity
- Looking at the process, network, and file activity, what is the user trying to do in the session? Does the activity indicate malicious behavior?

Also, categorize the below Linux session in one of the following 9 categories: Network, Script Execution, Linux Command Line Utility, File search, Docker Execution, Package Installations, Pip Installations, Process Execution and Linux Sandbox Application.

A brief description for each Linux session category is provided below. Refer to these explanations while categorizing the sessions.
- Docker Execution: The session involves command with docker operations, such as docker-run and others
- Network: The session involves commands with network operations
- File Search: The session involves file operations, pertaining to search
- Linux Command Line Utility: The session involves linux command executions
- Linux Sandbox Application: The session involves a sandbox application activity. 
- Pip Installations: The session involves python pip installations
- Package Installations: The session involves package installations or removal activities. This is more of apt-get, yum, dpkg and general command line installers as opposed to any software wrapper
- Script Execution: The session involves bash script invocations. All of these have pointed custom infrastructure script invocations
- Process Execution: The session focuses on other process executions and is not limited to linux commands. 
 ###
 Text: {your input here}
</code></pre>
<h3>Few-shot tuning</h3>
<p><em>Takeaway:</em> Adding examples for each category improves accuracy.</p>
<p>Simultaneously, we investigated the effectiveness of improving the model's performance by including one example for each category in the above prompt. This strategy resulted in a significant enhancement, notably boosting the model's accuracy by 20%.</p>
<h2>Evaluating GPT Categories</h2>
<p>The assessment of GPT categories is crucial in measuring the quality and reliability of the outcomes. In the evaluation of categorization results, a comparison was drawn between the model's categorization and the human categorization assigned by the security expert (referred to as &quot;Ground_Truth&quot; in the below image). We calculated the total accuracy based on the number of successful matches for categorization evaluation.</p>
<p><img src="https://www.elastic.co/es/security-labs/assets/images/using-llms-and-esre-to-find-similar-user-sessions/image2.png" alt="Evaluating Session Categories" /></p>
<p>We observed that GPT-4 faced challenges when dealing with samples bearing multiple categories. However, when assigning a single category, it aligned with the human categorization in 56% of cases. The &quot;Linux Command Line Utility&quot; category posed a particular challenge, with 47% of the false negatives, often misclassified as &quot;Process Execution&quot; or &quot;Script Execution.&quot; This discrepancy arose due to the closely related definitions of the &quot;Linux Command Line Utility&quot; and &quot;Process Execution&quot; categories and there may have also been insufficient information in the prompts, such as process command line arguments, which could have served as a valuable distinguishing factor for these categories.</p>
<p>Given the results from our evaluation, we conclude that we either need to tune the descriptions for each category in the prompt or provide more examples to the model via few-shot training. Additionally, it's worth considering whether GPT is the most suitable choice for classification, particularly within the context of the prompting paradigm.</p>
<h2>Semantic search with ELSER</h2>
<p>We also wanted to try <a href="https://www.elastic.co/es/guide/en/machine-learning/current/ml-nlp-elser.html#ml-nlp-elser">ELSER</a>, the Elastic Learned Sparse EncodeR for semantic search. Semantic search focuses on contextual meaning, rather than strictly exact keyword inputs, and ELSER is a retrieval model trained by Elastic that enables you to perform semantic search and retrieve more relevant results.</p>
<p>We tried some examples of semantic search questions on the session summaries. The session summaries were stored in an Elasticsearch index, and it was simple to download the ELSER model following an <a href="https://www.elastic.co/es/guide/en/machine-learning/current/ml-nlp-elser.html#ml-nlp-elser">official tutorial</a>. The tokens generated by ELSER are stored in the index, as shown in the image below:</p>
<p><img src="https://www.elastic.co/es/security-labs/assets/images/using-llms-and-esre-to-find-similar-user-sessions/image1.png" alt="Tokens generated by ELSER" /></p>
<p>Afterward, semantic search on the index was overall able to retrieve the most relevant events. Semantic search queries about the events included:</p>
<ul>
<li>Password related – yielding 1Password related logs</li>
<li>Java – yielding logs that used Java</li>
<li>Python – yielding logs that used Python</li>
<li>Non-interactive session</li>
<li>Interactive session</li>
</ul>
<p>An example of semantic search can be seen in the Dev Tools console through a <a href="https://www.elastic.co/es/guide/en/elasticsearch/reference/8.9/semantic-search-elser.html#text-expansion-query">text_expansion query</a>.</p>
<p><img src="https://www.elastic.co/es/security-labs/assets/images/using-llms-and-esre-to-find-similar-user-sessions/image5.png" alt="Example screenshot of using semantic search with the Elastic dev tools console" /></p>
<p>Some takeaways are:</p>
<ul>
<li>For semantic search, the prompt template can cause the summary to have too many unrelated keywords. For example, we wanted every summary to include an assessment of whether or not the session should be considered &quot;malicious&quot;, that specific word was always included in the resulting summary. Hence, the summaries of benign sessions and malicious sessions alike contained the word &quot;malicious&quot; through sentences like &quot;This session is malicious&quot; or &quot;This session is not malicious&quot;. This could have impacted the accuracy.</li>
<li>Semantic search seemed unable to differentiate effectively between certain related concepts, such as interactive vs. non-interactive. A small number of specific terms might not have been deemed important enough to the core meaning of the session summary for semantic search.</li>
<li>Semantic search works better than <a href="https://link.springer.com/referenceworkentry/10.1007/978-0-387-39940-9_921">BM25</a> for cases where the user doesn’t specify the exact keywords. For example, searching for &quot;Python&quot; or &quot;Java&quot; related logs and summaries is equally effective with both ELSER and BM25. However, ELSER could retrieve more relevant data when searching for “object oriented language” related logs. In contrast, using a keyword search for “object oriented language” doesn’t yield relevant results, as shown in the image below.</li>
</ul>
<p><img src="https://www.elastic.co/es/security-labs/assets/images/using-llms-and-esre-to-find-similar-user-sessions/image4.png" alt="Semantic search can yield more relevant results when keywords aren’t matching" /></p>
<h2>What's next</h2>
<p>We are currently looking into further improving summarization via <a href="https://arxiv.org/pdf/2005.11401.pdf">retrieval augmented generation (RAG)</a>, using tools in the <a href="https://www.elastic.co/es/guide/en/esre/current/index.html">Elastic Search and Relevance Engine</a> (ESRE). In the meantime, we’d love to hear about your experiments with LLMs, ESRE, etc. If you'd like to share what you're doing or run into any issues during the process, please reach out to us on our <a href="https://ela.st/slack">community Slack channel</a> and <a href="https://discuss.elastic.co/c/security">discussion forums</a>.</p>
]]></content:encoded>
            <category>security-labs</category>
            <enclosure url="https://www.elastic.co/es/security-labs/assets/images/using-llms-and-esre-to-find-similar-user-sessions/photo-edited-03@2x.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Using LLMs to summarize user sessions]]></title>
            <link>https://www.elastic.co/es/security-labs/using-llms-to-summarize-user-sessions</link>
            <guid>using-llms-to-summarize-user-sessions</guid>
            <pubDate>Mon, 11 Sep 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[In this publication, we will talk about lessons learned and key takeaways from our experiments using GPT-4 to summarize user sessions.]]></description>
            <content:encoded><![CDATA[<h2>Using LLMs to summarize user sessions</h2>
<p>With the introduction of the <a href="https://www.elastic.co/es/guide/en/security/current/security-assistant.html">AI Assistant</a> into the Security Solution in 8.8, the Security Machine Learning team at Elastic has been exploring how to optimize Security operations with LLMs like GPT-4. User session summarization seemed like the perfect use case to start experimenting with for several reasons:</p>
<ul>
<li>User session summaries can help analysts quickly decide whether a particular session's activity is worth investigating or not</li>
<li>Given the diversity of data that LLMs like GPT-4 are trained on, it is not hard to imagine that they have already been trained on <a href="https://en.wikipedia.org/wiki/Man_page">man pages</a>, and other open Security content, which can provide useful context for session investigation</li>
<li>Session summaries could potentially serve as a good supplement to the <a href="https://www.elastic.co/es/guide/en/security/current/session-view.html">Session View</a> tool, which is available in the Elastic Security Solution as of 8.2.</li>
</ul>
<p>In this publication, we will talk about lessons learned and key takeaways from our experiments using GPT-4 to summarize user sessions.</p>
<p>In our <a href="https://www.elastic.co/es/security-labs/using-llms-and-esre-to-find-similar-user-sessions">follow-on research</a>, we dedicated some time to examine sessions that shared similarities. These similar sessions can subsequently aid the analysts in identifying related suspicious activities.</p>
<h2>What is a session?</h2>
<p>In Linux, and other Unix-like systems, a &quot;user session&quot; refers to the period during which a user is logged into the system. A session begins when a user logs into the system, either via graphical login managers (GDM, LightDM) or via command-line interfaces (terminal, SSH).</p>
<p>Upon starting a Linux Kernel, a special process called the &quot;init' process is created, which is responsible for starting configured services such as databases, web servers, and remote access services such as <code>sshd</code>. These services, and any shells or processes spawned by them, are typically encapsulated within their own sessions and tied together by a single session ID (SID).</p>
<p>The detailed and chronological process information captured by sessions makes them an extremely useful asset for alerting, compliance, and threat hunting.</p>
<h2>Lessons learned</h2>
<p>For our experiments, we used a GPT-4 deployment with a 32k token limit available via Azure AI Studio. Tokens are basic units of text or code that LLMs use to process and generate language. Our goal here was to see how far we can get with user session summarization within the prompting paradigm alone. We learned some things along the way as it related to data processing, prompt engineering, hallucinations, parameter tuning, and evaluating the GPT summaries.</p>
<h3>Data processing</h3>
<p><em>Takeaway:</em> An aggregated JSON snapshot of the session is an effective input format for summarization.</p>
<p>A session here is simply a collection of process, network, file, and alert events. The number of events in a user session can range from a handful (&lt; 10) to hundreds of thousands. Each event log itself can be quite verbose, containing several hundred fields. For longer sessions with a large number of events, one can quickly run into token limits for models like GPT-4. Hence, passing raw logs as input to GPT-4 is not as useful for our specific use case. We saw this during experimentation, even when using tabular formats such as CSV, and using a small subset of fields in the logs.</p>
<p><img src="https://www.elastic.co/es/security-labs/assets/images/using-llms-to-summarize-user-sessions/image1.png" alt="Max token limit (32k) is reached for sessions containing a few hundred events" /></p>
<p>To get around this issue, we had to come up with an input format that retains as much of the session's context as possible, while also keeping the number of input tokens more or less constant irrespective of the length of the session. We experimented with several log de-duplication and aggregation strategies and found that an aggregated JSON snapshot of the session works well for summarization. An example document is as follows:</p>
<p><img src="https://www.elastic.co/es/security-labs/assets/images/using-llms-to-summarize-user-sessions/image3.jpg" alt="Aggregated JSON snapshot of session activity" /></p>
<p>This JSON snapshot highlights the most prominent activities in the session using de-duplicated lists, aggregate counts, and top-N (20 in our case) most frequent terms, with self-explanatory field names.</p>
<h3>Prompt engineering</h3>
<p><em>Takeaway:</em> Few-shot tuning with high-level instructions worked best.</p>
<p>Apart from data processing, most of our time during experimentation was spent on prompt tuning. We started with a basic prompt and found that the model had a hard time connecting the dots to produce a useful summary:</p>
<pre><code>You are an AI assistant that helps people find information.
</code></pre>
<p>We then tried providing very detailed instructions in the prompt but noticed that the model ignored some of the instructions:</p>
<pre><code>You are a cybersecurity assistant, who helps Security analysts in summarizing activities that transpired in a Linux session. A summary of events that occurred in the session will be provided in JSON format. No need to explicitly list out process names and file paths. Summarize the session in ~3 paragraphs, focusing on the following: 
- Entities involved in the session: host name and user names.
- Overview of any network activity. What major source and destination ips are involved? Any malicious port activity?
- Overview of any file activity. Were any sensitive files or directories accessed?
- Highlight any other important process activity
- Looking at the process, network, and file activity, what is the user trying to do in the session? Does the activity indicate malicious behavior?
</code></pre>
<p>Based on the above prompt, the model did not reliably adhere to the 3 paragraph request and also listed out process names and file paths which it was explicitly told not to do.</p>
<p>Finally, we landed on the following prompt that provided high-level instructions for the model:</p>
<pre><code>Analyze the following Linux user session, focusing on:      
- Identifying the host and user names      
- Observing activities and identifying key patterns or trends      
- Noting any indications of malicious or suspicious behavior such as tunneling or encrypted traffic, login failures, access to sensitive files, large number of file creations and deletions, disabling or modifying Security software, use of Shadow IT, unusual parent-child process executions, long-running processes
- Conclude with a comprehensive summary of what the user might be trying to do in the session, based on the process, network, and file activity     
 ###
 Text: {your input here}
</code></pre>
<p>We also noticed that the model follows instructions more closely when they're provided in user prompts rather than in the system prompts (a system prompt is the initial instruction to the model telling it how it should behave and the user prompts are the questions/queries asked by a user to the model). After the above prompt, we were happy with the content of the summaries, but the output format was inconsistent, with the model switching between paragraphs and bulleted lists. We were able to resolve this with <a href="https://arxiv.org/pdf/2203.04291.pdf">few-shot tuning</a>, by providing the model with two examples of user prompts vs. expected responses.</p>
<h3>Hallucinations</h3>
<p><em>Takeaway:</em> The model occasionally hallucinates while generating net new content for the summaries.</p>
<p>We observed that the model does not typically <a href="https://arxiv.org/pdf/2110.10819.pdf">hallucinate</a> while summarizing facts that are immediately apparent in the input such as user and host entities, network ports, etc. Occasionally, the model hallucinates while summarizing information that is not obvious, for example, in this case summarizing the overall user intent in the session. Some relatively easy avenues we found to mitigate hallucinations were as follows:</p>
<ul>
<li>Prompt the model to focus on specific behaviors while summarizing</li>
<li>Re-iterate that the model should fact-check its output</li>
<li>Set the <a href="https://learnprompting.org/docs/basics/configuration_hyperparameters">temperature</a> to a low value (less than or equal to 0.2) to get the model to generate less diverse responses, hence reducing the chances of hallucinations</li>
<li>Limit the response length, thus reducing the opportunity for the model to go off-track — This works especially  well if the length of the texts to be summarized is more or less constant, which it was in our case</li>
</ul>
<h3>Parameter tuning</h3>
<p><em>Takeaway:</em> Temperature = 0 does not guarantee determinism.</p>
<p>For summarization, we explored tuning parameters such as <a href="https://txt.cohere.com/llm-parameters-best-outputs-language-ai/">Temperature and Top P</a>, to get deterministic responses from the model. Our observations were as follows:</p>
<ul>
<li>Tuning both together is not recommended, and it's also difficult to observe the effect of each when combined</li>
<li>Solely setting the temperature to a low value (&lt; 0.2) without altering Top P is usually sufficient</li>
<li>Even setting the temperature to 0 does not result in fully deterministic outputs given the inherent non-deterministic nature of floating point calculations (see <a href="https://community.openai.com/t/a-question-on-determinism/8185">this</a> post from OpenAI for a more detailed explanation)</li>
</ul>
<h2>Evaluating GPT Summaries</h2>
<p>As with any modeling task, evaluating the GPT summaries was crucial in gauging the quality and reliability of the model outcomes. In the absence of standardized evaluation approaches and metrics for text generation, we decided to do a qualitative human evaluation of the summaries, as well as a quantitative evaluation using automatic metrics such as <a href="https://en.wikipedia.org/wiki/ROUGE_(metric)">ROUGE-L</a>, <a href="https://en.wikipedia.org/wiki/BLEU">BLEU</a>, <a href="https://en.wikipedia.org/wiki/METEOR">METEOR</a>, <a href="https://arxiv.org/abs/1904.09675">BERTScore</a>, and <a href="https://aclanthology.org/2020.eval4nlp-1.2/">BLANC</a>.</p>
<p>For qualitative evaluation, we had a Security Researcher write summaries for a carefully chosen (to get a good distribution of short and long sessions) set of 10 sessions, without any knowledge of the GPT summaries. Three evaluators were asked to compare the GPT summaries against the human-generated summaries using three key criteria:</p>
<ul>
<li>Factuality:  Examine if the model summary retains key facts of the session as provided by Security experts</li>
<li>Authenticity: Check for hallucinations</li>
<li>Consistency: Check the consistency of the model output i.e. all the responses share a stable format and produce the same level of detail</li>
</ul>
<p>Finally, each of the 10 summaries was assigned a final rating of &quot;Good&quot; or &quot;Bad&quot; based on a majority vote to combine the evaluators' choices.</p>
<p><img src="https://www.elastic.co/es/security-labs/assets/images/using-llms-to-summarize-user-sessions/image2.png" alt="Summarization evaluation matrix" /></p>
<p>While we recognize the small dataset size for evaluation, our qualitative assessment showed that GPT summaries aligned with human summaries 80% of the time. For the GPT summaries that received a &quot;Bad&quot; rating, the summaries didn't retain certain important facts because the aggregated JSON document only kept the top-N terms for certain fields.</p>
<p>The automated metrics didn't seem to match human preferences, nor did they reliably measure summary quality due to the structural differences between human and LLM-generated summaries, especially for reference-based metrics.</p>
<h2>What's next</h2>
<p>We are currently looking into further improving summarization via <a href="https://arxiv.org/pdf/2005.11401.pdf">retrieval augmented generation (RAG)</a>, using tools in the <a href="https://www.elastic.co/es/guide/en/esre/current/index.html">Elastic Search and Relevance Engine (ESRE)</a>. We also experimented with using LLMs to categorize user sessions. Stay tuned for Part 2 of this blog to learn more about those experiments!</p>
<p>In the meantime, we’d love to hear about your experiments with LLMs, ESRE, etc. If you'd like to share what you're doing or run into any issues during the process, please reach out to us on our <a href="https://ela.st/slack">community Slack channel</a> and <a href="https://discuss.elastic.co/c/security">discussion forums</a>. Happy experimenting!</p>
]]></content:encoded>
            <category>security-labs</category>
            <enclosure url="https://www.elastic.co/es/security-labs/assets/images/using-llms-to-summarize-user-sessions/photo-edited-01@2x.jpg" length="0" type="image/jpg"/>
        </item>
    </channel>
</rss>