Complete Technical Paper Content — Serverless Log Aggregation And Anomaly Detection Tool
Overview & System Context
Serverless Log Aggregation And Anomaly Detection Tool: Comprehensive Web-Sourced Technical Investigation Exhaustive Research Dossier · Pure Web-Scraped Content: ~9532 Words · Real Software Screenshots: 3 1. Executive Overview & Technical Background Serverless observability refers to the suite of tools, practices, and patterns that provide visibility into serverless architectures, such as those built with AWS Lambda, Azure Functions, or Google Cloud Functions. Unlike traditional monolithic or containerized applications, serverless workloads are ephemeral, event-driven, and highly distributed, which complicates debugging, monitoring, and cost attribution. Observability in this context aims to collect and correlate logs, metrics, traces, and costs across multiple short-lived compute executions and managed services.
This capability is essential because serverless components can fail, degrade, or become expensive in non-obvious ways—often due to their black-box execution model. Distributed tracing (e.g., AWS X-Ray, OpenTelemetry) enables developers to follow a transaction across multiple functions and services, helping pinpoint performance bottlenecks or errors. Cloud-native monitoring platforms such as AWS CloudWatch aggregate logs and metrics, while cost monitoring tools help attribute usage and spend to specific functions or workflows. Together, these tools provide the operational insight necessary for reliable, performant, and cost-effective serverless production systems.
Distributed Tracing: The ability to follow requests as they propagate across multiple serverless functions and services. Why it matters: Enables pinpointing failures, diagnosing latency issues, and understanding execution flow in distributed environments. Figure 1: Log Anomaly Detection | LogicMonitor CloudWatch: AWS's native monitoring and logging service for collecting metrics, logs, and events from serverless resources.
Why it matters: Provides foundational visibility, alerting, and dashboarding for AWS serverless workloads. X-Ray: AWS's distributed tracing service for visualizing and analyzing requests across AWS services and Lambda functions. Why it matters: Crucial for understanding inter-service dependencies, execution times, and troubleshooting across boundaries.
Figure 2: Explore LogAI GUI Portal — LogAI documentation Cost Monitoring: Tracking and analyzing cloud spend, often at the granularity of function, event type, or request. Why it matters: Prevents runaway costs, enables optimization, and supports accurate chargeback or showback models. Instrumenting all entry and exit points in a workflow (API Gateway, Lambda, DynamoDB, SQS) to correlate requests using distributed tracing.
Use Case: Critical for troubleshooting complex workflows (e.g., order processing pipelines) where events trigger chains of serverless functions. Figure 3: Centralized Log Management for Network Monitoring Aggregating logs from all serverless functions into a single log group and querying them using CloudWatch Logs Insights.
Use Case: Supports rapid debugging, anomaly detection, and operational auditing across hundreds or thousands of Lambda functions. Integrating cost explorer APIs and tagging strategies to attribute spend to individual functions or business units. Use Case: Enables proactive cost management, budgeting, and alerting in environments with high serverless usage.
Serverless observability solutions must scale horizontally, handling spikes in events, logs, and trace data without data loss. Cloud-native tools like CloudWatch and X-Ray are built to handle high throughput, but third-party tools may require careful configuration and quotas. Adding tracing and extensive logging can introduce additional latency to function execution, especially when synchronous calls are made to external observability APIs. Use asynchronous log ingestion and sampling to minimize impact.
Since serverless executions are stateless and distributed, achieving consistent tracing and log correlation can be challenging. Use unique correlation IDs and ensure instrumentation is present in all components to avoid gaps. Observability generates additional data (logs, traces, metrics), which incurs storage and ingestion costs. Careful tuning (sampling rates, log retention) and cost attribution are necessary to avoid surprises in cloud bills.
This example shows how to instrument a Python AWS Lambda function with AWS X-Ray. The `patch_all()` call ensures all supported libraries are traced, and the `capture()` context creates a subsegment for custom tracing. This CloudWatch Logs Insights query retrieves the latest 20 error messages from Lambda logs, helping operators quickly identify and investigate recent failures.
Implementation
Netflix uses AWS Lambda and Step Functions for media processing. They leverage AWS X-Ray and custom dashboards to trace requests, monitor function execution times, and aggregate logs for rapid troubleshooting. Outcomes: Reduced mean time to resolution (MTTR) for pipeline failures and improved visibility into performance bottlenecks across distributed workflows.
Implementation Synonym
Airbnb tracks Lambda invocations, duration, and cost using CloudWatch and integrates cost data with internal dashboards to identify expensive functions and optimize resource allocation. Outcomes: Significant cost savings and improved ability to forecast and control cloud expenditure. Failing to pass correlation or trace IDs across function boundaries leads to broken traces.
Implementation Meaning
I Solution: Always propagate trace headers and context through all event payloads and service integrations. I Solution: Log only actionable information and use log levels (INFO, WARN, ERROR) appropriately. I Solution: Instrument and report cold start durations separately from warm invocation metrics. I Solution: Regularly review and optimize log retention, sampling rates, and trace data volume.
Implementation Science
Why avoid: Prevents understanding cross-service dependencies and tracing user journeys. I Instead: Implement distributed tracing and centralized log aggregation for holistic visibility. Example: Add X-Ray integration to Lambda, API Gateway, and DynamoDB in an order processing system. Rationale: Maintains trace continuity across async boundaries and third-party services.
Implementation Specialist
Rationale: Enables real-time visibility into serverless spend and helps prevent budget overruns. Expected answer: Distributed tracing injects and propagates a unique trace ID across all services/functions handling a request. It enables correlating logs and performance data, making it possible to pinpoint bottlenecks, failures, and latency across distributed, event-driven serverless workflows.
Implementation Definition
Expected answer: Challenges include ephemeral execution (short-lived functions), lack of persistent infrastructure, difficulty correlating events across async boundaries, and increased data volume. Traditional host-based monitoring tools do not work; new paradigms like distributed tracing and centralized logging are required. Expected answer: Tag all functions/resources, use AWS Cost Explorer APIs, integrate with dashboards, monitor metrics like invocations and duration, and set up alerts for unusual spend. Optionally, correlate cost data with business units or workflows.
Implementation Manager
Expected answer: Example: A user-facing API returns 500 errors. With distributed tracing and centralized logs, one can see the failure originated in a downstream Lambda function due to a DynamoDB throttling error, allowing rapid root cause identification and resolution. Expected answer: Use asynchronous logging/tracing, log sampling, short retention, instrument only necessary data, and leverage managed observability tools that minimize overhead.
Implementation Consultant
Focus: Debugging, performance profiling, and ensuring reliable serverless workflows. Concerns: Visibility into distributed executions, fast troubleshooting, and minimizing impact on function latency. Focus: System reliability, operational metrics, alerting, and incident response. Concerns: End-to-end traceability, efficient log/trace querying, and cost-effective observability at scale.
Implementation Intentions
Focus: Monitoring ML pipelines, tracking data drift/errors, and cost of inference functions. Concerns: Attributing failures to specific components, latency of model inference, and managing resource utilization. Focus: Designing observable, scalable, and cost-effective AI/ML serverless systems. Concerns: Ensuring traceability across pipelines, balancing cost/performance, and integrating observability with MLOps tools.
Implementation Engineers
Focus: Business impact, feature delivery, budgeting, and stakeholder reporting. Concerns: Understanding cost drivers, correlating observability metrics to user experience, and tracking SLAs/SLOs. Focus: Detecting anomalous behaviors, auditing, and ensuring compliance. Concerns: Ensuring logs are tamper-proof, monitoring for suspicious activity, and maintaining least-privilege access to observability data.
Once you're comfortable with Serverless Observability, explore these related concepts... Easily monitor and observe AWS Lambda functions with Serverless Framework. Access Metrics, Traces, Logs, Errors, and more, across all AWS accounts and Serverless Framework Services. Works with or without deploying through Serverless Framework. Just connect your AWS account.
Currently Serverless Framework Monitoring & Observability supports the Node.js 12+ and Python 3.8+ AWS Lambda runtimes only, and only AWS Commercial Regions (not GovCloud or China Regions). To enable Serverless Framework Monitoring & Observability, first create a Serverless Framework account here . Next, you must connect your AWS account(s) directly to Serverless Framework's platform via an IAM Role. The permissions for this IAM Role are available in the Dashboard Github Repo , for your review.
2. System Architecture & Core Working Principles There are two ways to connect your AWS account(s), via Serverless Framework CLI , and via Serverless Framework Dashboard UI . Please note, enabling Serverless Framework's Monitoring & Observability features will create a few resources on AWS accounts they're connected to, adding minimal costs to your AWS accounts.
The most convenient way to set up Monitoring & Observability for multiple AWS accounts or accounts with many AWS Lambda functions is to do so via the Serverless Framework Dashboard UI. In the navigation bar on the left, click on the "Settings" icon, and then click on the "Integrations" tab. Here is where you connect AWS accounts.
In a separate browser window, log into the AWS Account via the browser that you wish to connect to. You will need to have permission to create IAM Roles with the required permissions for Monitoring & Observability. In the "Integrations" view, click the "Add Integrations" button. This launches a quick process that opens a new browser window containing AWS Console's AWS CloudFormation Stack Create view. This window is pre-loaded with an AWS CloudFormation Stack Template that contains an AWS IAM Role with all of the permissions Serverless Framework's Monitoring & Observability features need. At the bottom of this page, click "Create".
While the CloudFormation Stack is creating, go back to the Serverless Framework Dashboard. The Integration view should have detected your Stack is being created and this view will continue to update in real-time until the integration is completed. No other steps are required on your behalf. Repeat this step to connect as many AWS accounts that you'd like to enable Monitoring & Observability for.
Once an AWS account is connected, you will need to choose the AWS Lambda functions you wish to enable Monitoring & Observability on. You should see a newly created AWS Integration in the "Integrations" view. We recommend giving that AWS Account a name (e.g. "production", "development") so it's easier to remember and find in Dashboard's query filters. On the Integration, click the "Edit" button, and you will see all of the AWS Lambda functions within that AWS account.
Click the "Instrument" toggle on individual AWS Lambda functions, or click the toggle in the table header to enable instrumentation on all of the functions within that page (you'll have to repeat this on each page if you have multiple pages of AWS Lambda functions). Click "Save". This will instrument the AWS Lambda functions in the background. You can go through each page and continue to instrument AWS Lambda functions since instrumentation happens asynchronously.
Go to the Metrics or Explorer view. Make sure your AWS Lambda functions are being invoked. After a few minutes, you should see data appear. Please note, Metrics, Traces and more typically can take up to 10 minutes before they are visible in Serverless Framework Dashboard, after an AWS account has been integrated.
You can use the Serverless Framework CLI to enable Monitoring & Observability. This approach will automatically connect the Serverless Framework Platform to an AWS account and enable monitoring on all of the AWS Lambda functions for the selected stages within the Serverless Framework Service. However, if you want to connect multiple AWS accounts and/or enable monitoring on all AWS Lambda functions within an AWS account, setting it up via the Serverless Framework Dashboard UI is more convenient, as you can accomplish this in a few clicks.
Within the working directory of a Serverless Framework Service, ensure the Service is first connected to the Serverless Framework Dashboard. This can be confirmed by the presence of an org and app properties within the serverless.yml file. If the Service is not connected to the Dashboard, run the serverless command within the working directory of the Serverless Framework Service. Once your service is connected to the Serverless Dashboard, you can control your observability instrumentation settings under the stages property in your serverless.yml file: Now, whenever you deploy, observability will be enabled or disabled according to the stage you are deploying to. In the above example, observability will be enabled in the dev and prod stages but disabled in all other stages.
After deployment, confirm everything worked within the Serverless Framework Dashboard. Go to "Settings" > "Integrations," and you should see the AWS account that was recently integrated. We highly recommend giving that account a name so it's easier to remember and find in the Dashboard's query filters. If you click on the "Edit" button on that Integration, you should see all of the AWS Lambda functions in the account, indicating which ones are enabled and which are disabled.
Please note, Metrics, Traces and more typically can take up to 10 minutes before they are visible in Serverless Framework Dashboard, after an AWS account has been integrated. In addition to the out-of-the-box instrumentation provided by Serverless Framework Dashboard, you can customize instrumentation using the Serverless SDK for richer use cases, such as: Serverless Framework's Monitoring & Observability features currently support the following AWS Lambda Runtimes: Serverless Framework's Monitoring & Observability features currently support all of the Commercial AWS Regions. They do not support GovCloud or reginos in China.
Serverless Framework's Monitoring & Observability features use a few approaches to thoroughly collect all Metrics, Traces, Errors and more from your AWS Lambda functions. This is all done via an AWS IAM Role that is created when you integrate your AWS account with Serverless Framework's Platform. The permissions for this AWS IAM Role are kept in Github here , so that you can easily review what's required. You can remove this IAM Role at any time. But we recommend hitting "Remove" on the Integration within the Dashboard because it will automatically un-instrument the AWS account and AWS Lambda functions, in addition to deleting the IAM Role.
The first thing an AWS account integration does is create a Kinesis Firehose within your AWS account connected to a Cloudwatch Logs Subscription to each of your AWS Lambda functions which publish logs into that Firehose. The Serverless Framework Platform ingests log data from that Kinesis Firehose. This helps us collect Logs and more from your AWS Lambda functions. During each invocation, the Serverless Framework logs a compressed payload containing Trace information within your AWS Cloudwatch Logs. This can be identified easily because it starts with SERVERLESS_TELEMETRY .
While the Serverless Framework does ingest Logs, it does not store them. Instead, it merely scans them for specific pieces of information, and a payload that the Serverless Framework SDK creates containing Trace data. Log storage is not something Serverless Framework Dashboard provides at this time. Next, an AWS Lambda Layer and AWS Lambda Environment variables are added to each AWS Lambda function that has the "Instrument" toggle enabled. When "Intrument" is enabled these are added automatically. When you disable this toggle, the AWS Lambda Layer and Environment Variables are automatically removed.
Our AWS Lambda Layer is designed as an Internal Extension that uses the Wrapper Script AWS_LAMBDA_EXEC_WRAPPER environment variable to wrap your code with our SDK. Please note that if another tool is wrapping your AWS Lambda function code, we will overwrite it, and the other tool will no longer work.
Our AWS Lambda Layer is not an External Extension. Through extensive research and benchmarking, we've consistently found that adding observability tooling through AWS Lambda External Extensions almost always results in meaningful performance and cost penalties (cold starts, added invocation duration and added post-processing duration) for your AWS Lambda function. We do not recommend doing this for other tools that you may incorporate. Our Lambda Layer has been heavily optimized to add no latency to cold-starts, duration to your invocations, or duration to post-processing.
Additionally, our integration will listen to CloudTrail events and will automatically check to ensure our AWS Lambda Layer and Environment Variables are still attached every time each function has been updated. This only happens for AWS Lambda functions with "Instrument" enabled. This allows you to use any deployment tool with Serverless Framework's Observability & Monitoring features. It also ensures that if you set "Instrument", we guarantee those AWS Lambda functions will be instrumented, mitigating deployment and configuration mistakes.
Serverless Framework Dashboard trace sampling is designed to sample at a default rate of 20% for high volume lambda functions, and disable sampling at lower volumes. This is achieved by disabling trace sampling on invocations where the average duration between invocations in the same AWS Lambda function container is less than one per second for 5 consecutive invocations.
On average trace sampling will be disabled in most cases where there are fewer than 2.5 million invocations per month, but may vary depending on the distribution of invocations, cold start rates, and error/warning rates. If you wish to disable the Monitoring & Observability features for an entire AWS account, go into the "Settings" > "Integrations" view and click "Remove" on the AWS account you wish to disconnect. Upon disconnect, Serverless Framework's Platform will automatically remove instrumentation from all AWS Lambda functions (Layers, Environment Variables), remove any resources created by the Serverless Framework Platform upon integration, and destroy the CloudFormation Stack containing the AWS IAM Role used to integrate into the account.
Please note that if you remove an Integration, if you immediately create a new Integration, this may cause the new Integration to take up to 20 minutes to fully work again due to AWS Resource quirks. To disable Serverless Framework's Monitoring & Observability features within a specific Serverless Framework Service, you can do so under the stages property. This action will prevent your AWS Lambda functions from being instrumented, and un-instrument them if they are already instrumented.
Please note, if you have an Observability Integration already established with one or multiple AWS accounts, you will have to delete those via the Serverless Framework Dashboard Trace Sampling happens automatically. It is measured individually for each AWS Lambda function (it's not account wide), and kicks in when your AWS Lambda function does 1-2 million invocations a month, or when it receives a burst of invocations.
To disable Trace Sample, you can set the following Environment Variable in your serverless.yml : Serverless Framework will instrument the use of the AWS SDK to show use of AWS services by your Lambda function. This information provides a valuable visualization of what is happening inside your Lambda function, including how long calls to services like DynamoDB, S3 and others are taking.
If you wish to disable AWS Span collection, set the following Environment Variable in your serverless.yml : Serverless Framework will instrument the use of HTTP(s) by your Lambda function. Much like the AWS Spans, HTTP(s) spans will provide a visualization of the external communication that your function is invoking, including the duration of those sessions.
If you wish to disable Http Span collection, set the following Environment Variable in your serverless.yml : The explosion of cloud-native applications has created a monitoring challenge: how do you effectively analyze the massive volumes of log data generated by distributed systems? Traditional approaches fall short when dealing with terabytes of CloudTrail events, CloudWatch logs, and application metrics. This guide demonstrates how to build an intelligent, automated log analysis system using AWS serverless technologies that can process, analyze, and report on your infrastructure activity with minimal operational overhead.
Modern AWS environments generate enormous amounts of log data. A typical enterprise application might produce over 10,000 CloudTrail API calls per hour, gigabytes of application logs daily through CloudWatch, millions of network events via VPC Flow logs, and thousands of custom application metrics. This volume of data creates a significant challenge for security and operations teams who need to maintain visibility into their infrastructure.
Manual analysis of this data volume is simply impossible at scale, and traditional monitoring tools often miss subtle patterns that could indicate security threats or operational issues. These tools frequently require extensive configuration overhead and struggle to adapt to the dynamic nature of cloud environments. What modern organizations need is an intelligent system that can automatically identify anomalies, detect security threats, and provide actionable insights without requiring constant human intervention.
Our serverless log analysis system leverages multiple AWS services to create a scalable, cost-effective monitoring solution: Let’s build each component of our automated log analysis system, starting with the data processing pipeline. Our first Lambda function serves as the foundation of the analysis pipeline, processing CloudTrail events to extract meaningful patterns and detect security anomalies. This processor examines each event for suspicious characteristics, calculates risk scores, and stores structured data for further analysis.
The intelligence layer of our system leverages Amazon Bedrock to transform raw security data into actionable insights. This engine aggregates patterns from the processed events, identifies anomalies, and generates human-readable reports with specific recommendations for security improvements. Coordinating the various components of our analysis system requires a robust orchestration layer. Step Functions provide the workflow management needed to ensure proper sequencing of data processing, analysis, and notification tasks while handling error conditions gracefully.
Defining your infrastructure using AWS CDK ensures reproducible deployments and maintainable infrastructure. The CDK stack encompasses all necessary AWS resources, from Lambda functions and DynamoDB tables to IAM policies and event triggers, creating a complete serverless monitoring solution. To begin implementing this log analysis system, you’ll need to initialize a TypeScript project with the appropriate AWS SDK dependencies. The project structure requires both development and runtime dependencies to support TypeScript compilation and AWS service integration.
Your TypeScript configuration needs to target modern JavaScript features while maintaining compatibility with the Node.js Lambda runtime. The configuration should enable strict type checking to catch potential errors early in the development process. Streamlining the build and deployment process requires setting up appropriate scripts in your package.json file. These scripts will handle TypeScript compilation and CDK deployment in a single command chain.
3. Software Implementation, Frameworks & Protocols Configuring CloudTrail to deliver logs to your designated S3 bucket establishes the foundation for your automated analysis pipeline. The trail should capture global service events and operate across all regions to ensure comprehensive coverage of your AWS activities.
Managing storage costs becomes crucial as log volumes grow over time. Implementing intelligent data lifecycle management policies ensures that frequently accessed data remains readily available while older logs transition to more cost-effective storage classes automatically. Advancing beyond rule-based detection, machine learning capabilities can identify subtle behavioral anomalies that traditional approaches might miss. Amazon Personalize can learn normal user behavior patterns and flag deviations that could indicate compromised accounts or insider threats.
While batch processing handles the bulk of log analysis efficiently, certain high-risk events require immediate attention. Adding Kinesis Data Streams enables real-time event processing for critical security events that demand instant response. Security in a log analysis system begins with properly configured IAM policies that follow the principle of least privilege. Each Lambda function should have access only to the specific resources it needs to perform its designated tasks, reducing the potential impact of any security compromise.
Protecting sensitive log data requires encryption both at rest and in transit. AWS managed encryption keys provide a balance between security and operational simplicity, while ensuring that all stored data meets compliance requirements for data protection. This serverless log analysis system provides a scalable, cost-effective solution for monitoring AWS environments. By combining CloudTrail data processing, AI-powered analysis, and automated alerting, you can gain deep insights into your infrastructure activity while minimizing operational overhead.
The architecture delivers automatic scaling based on log volume, ensuring that your monitoring capabilities grow seamlessly with your infrastructure demands. Cost optimization occurs naturally through serverless pricing models, where you only pay for the compute resources actually consumed during log processing and analysis. The intelligent analysis capabilities use AI to identify patterns that humans might miss, providing deeper insights into potential security threats and operational issues that traditional rule-based systems often overlook.
Real-time alerting ensures that critical security events receive immediate attention, while comprehensive reporting capabilities support compliance requirements and governance initiatives. The system can be extended with additional data sources, more sophisticated machine learning models, or integration with external security tools to meet evolving organizational needs. As your AWS environment grows, this serverless architecture will scale seamlessly to handle increasing log volumes while maintaining consistent performance and reliability. The modular design allows for incremental improvements and feature additions without disrupting existing functionality.
Remember to regularly review and tune your anomaly detection rules, update your AI prompts based on new threat patterns, and continuously monitor the system’s performance to ensure optimal security posture for your AWS infrastructure. A production-ready, event-driven serverless pipeline for real-time log processing and analytics built on AWS. This project demonstrates a fully serverless, event-driven architecture for processing application logs in real-time. When log files are uploaded to S3, Lambda functions automatically parse, process, and store the data in DynamoDB while sending alerts for critical errors.
I 100% Serverless - Zero server management, pay only for what you use I Event-Driven - S3 triggers for instant processing I Scalable - Handles 100+ logs in under 3 seconds I Cost-Effective - ~$10/month for typical workloads I Infrastructure as Code - Fully automated with Terraform I Production-Ready - Encryption, versioning, monitoring, alerts Event-driven serverless log analytics pipeline with AWS Lambda, DynamoDB, and real-time alerting Serverless log classification system built on AWS — automatically triages application logs as critical , warning , or info using LLM-based inference.
Built as a hands-on project to demonstrate end-to-end cloud data engineering and AIOps skills. The pipeline is fully event-driven — a CSV log file dropped into S3 automatically triggers classification, storage, cataloging, and becomes instantly queryable via SQL. No servers to manage. Serverless log anomaly detection pipeline on AWS using Lambda, Bedrock, Glue, Athena and CloudWatch In this post, we walk you through the process to build an automated mechanism using Amazon SageMaker to process your log data, run training iterations over it to obtain the best-performing anomaly detection model, and register it with the Amazon SageMaker Model Registry for your customers to use it.
Log-based anomaly detection involves identifying anomalous data points in log datasets for discovering execution anomalies, as well as suspicious activities. It usually comprises parsing log data into vectors or machine-understandable tokens, which you can then use to train custom machine learning (ML) algorithms for determining anomalies. You can adjust the inputs or hyperparameters for an ML algorithm to obtain a combination that yields the best-performing model. This process is called hyperparameter tuning and is an essential part of machine learning. Choosing appropriate hyperparameter values is crucial for success, and it’s usually performed iteratively by experts, which can be time-consuming.
Added to this are the general data-related processes such as loading data from appropriate sources, parsing and processing them with custom logic, storing the parsed data back to storage, and loading them again for training custom models. Moreover, these tasks need to be done repetitively for each combination of hyperparameters, which doesn’t scale well with increasing data and new supplementary steps. You can use Amazon SageMaker Pipelines to automate all these steps into a single execution flow. In this post, we demonstrate how to set up this entire workflow.
Contemporary log anomaly detection techniques such as Drain-based detection [1] or DeepLog [2] consist of the following general approach: perform custom processing on logs, train their anomaly detection models using custom models, and obtain the best-performing model with an optimal set of hyperparameters. To build an anomaly detection system using such techniques, you need to write custom scripts for processing as well for training. SageMaker provides support for developing scripts by extending in-built algorithm containers, or by building your own custom containers. Moreover, you can combine these steps as a series of interconnected stages using SageMaker Pipelines. The following figure shows an example
Architecture
To start, upload the log dataset to an S3 bucket in your AWS account. You can use the AWS Command Line Interface (AWS CLI) using Amazon S3 commands , or use the AWS Management Console . To process the data, you use a SageMaker processing step as the first stage in your SageMaker pipeline. This step spins up a SageMaker container and runs a script that you provide for custom processing. There are two ways to do this: decentralized or distributed processing. SageMaker provides Processor classes for both approaches. You can choose either approach for your custom processing depending on your use case.
Architecture Tour Chicago
In the decentralized approach, a single custom script runs on one or more standalone instances and processes the input data. The SageMaker Python SDK provides the ScriptProcessor class, which you can use to run your custom processing script in a SageMaker processing step. For small datasets, a single instance can usually suffice for performing data processing. Increasing the number of instances is recommended if your dataset is large and can be split into multiple independent components, which can all be processed separately (this can be done using the ShardedByS3Key parameter, which we discuss shortly).
Architecture Boat Tour Chicago
If you have custom dependencies (which can often be the case during R&D processes), you can extend an existing container and customize it with your dependencies before providing it to the ScriptProcessor class. For example, if you’re using the Drain technique, you need the logparser Python library for log parsing, in which case you write a simple Dockerfile that installs it along with the usual Python ML libraries: You can use a Python SageMaker notebook instance in your AWS account to create such a Dockerfile and save it to an appropriate folder, such as docker . To build a container using this Dockerfile, enter the following code into a main driver program in a Jupyter notebook on your notebook instance: This code creates an Amazon Elastic Container Registry (Amazon ECR) repository where your custom container image will be stored (the repository will be created if it’s not already present). The container image is then built, tagged with the repository name (and :latest) , and pushed to the ECR repository.
Architecture Salary
The next step is writing your actual processing script. For more information on writing a processing script using ScriptProcessor , refer to Amazon SageMaker Processing – Fully Managed Data Processing and Model Evaluation . The following are a few key points to remember: When your script is ready, you can instantiate the SageMaker ScriptProcessor class for running it on your custom container (created in the previous step) by adding the following code to your driver program: In the preceding code, a ScriptProcessor class is being instantiated to run the python3 command for running your custom Python script. You provide the following information: You can also specify an additional parameter in run() named distribution, and it can either be ShardedByS3Key or FullyReplicated , depending on whether you’re splitting and sending your S3 dataset to multiple ScriptProcessor instances or not. You can specify the number of instances in the instance_count parameter of your ScriptProcessor class.
Architecture Degree
Once instantiated, you can pass the ScriptProcessor class as an argument to the SageMaker processing step along with an appropriate name. An alternative to the decentralized processing is distributed processing. Distributed processing is particularly effective when you need to process large amounts of log data. Apache Spark is a popular engine for distributed data processing. It uses in-memory caching and optimized query execution for fast analytic queries against datasets of all sizes. SageMaker provides the PySparkProcessor class within the SageMaker Python SDK for running Spark jobs. For an example of performing distributed processing with PySparkProcessor on SageMaker processing, see Distributed Data Processing using Apache Spark and SageMaker Processing . The following are a few key points to note: When your Spark processing script is ready, you can instantiate the SageMaker PySparkProcessor class for running it by adding the following lines to your driver program: The preceding code instantiates a PySparkProcessor instance with three nodes in the SageMaker cluster with Spark v3.1 installed in them. You submit your Spark processing code to it along with the Amazon S3 location where your event logs would be uploaded. These logs can be useful for debugging.
Architecture Styles
In the run() method invocation, you don’t need to specify your inputs and outputs, which can be the case if these are fixed Amazon S3 destinations already known to your processing code. Otherwise, you can specify them using the ProcessingInput and ProcessingOutput parameters just like in the decentralized example. Post-instantiation, the PySparkProcessor class is passed to a SageMaker processing step with an appropriate name. Its execution won’t be triggered until the pipeline is created.
Architecture Schools
Now that your processing steps are complete, you can proceed to the model training step. The training algorithm could either be a classical anomaly detection model like Drain-based detection or a neural-network based model like DeepLog. Every model takes in certain hyperparameters that influence how the model is trained. To obtain the best-performing model, the model is usually executed and validated multiple times over a wide range of hyperparameters. This can be a time-consuming manual process and can instead be automated using SageMaker hyperparameter tuning jobs. Tuning jobs perform hyperparameter optimization by running your training script with a specified range of hyperparameter values and obtaining the best model based on the metrics you specify. You can predefine these metrics if you use built-in SageMaker algorithms or define them for your custom training algorithm.
Architecture Boat Tour
You first need to write your training script for your anomaly detection model. Keep the following in mind: When your training script is ready, you can use it inside a SageMaker container. SageMaker provides a wide range of built-in algorithm containers that you can use to run your training code. However, there might be cases when you need to build your own training containers. This could be the case when you need custom libraries installed or if you plan to use a new algorithm not built in by SageMaker. In such a case, you can build your own containers in two ways: After you create your training container image, you need to define the hyperparameter ranges for your tuning job. For example, if you’re using a custom adaptation of the PCA algorithm (like in Drain-based detection), you add the following lines to your driver program: The preceding code indicates that your hyperparameter max_components is an integer and it ranges from 1–30. The auto scaling type indicates that SageMaker will choose the best scale for hyperparameter changes. For more details on other scaling options, see Hyperparameter scaling types .
Architecture Design
Then you can use the following code to fully configure your training and tuning steps in the driver program: In the preceding code, a SageMaker Estimator instance is created using your custom training image’s ECR URI. SageMaker Estimators help in training your models and orchestrating their training lifecycles. The Estimator is provided with a suitable role and the PipelineSession is designated as its SageMaker session.
Architecture Jobs
You provide the location where your trained model should be stored to the Estimator and supply it with custom metric definitions that you created. For the example metric custom_metric_value: 91 , the definition to the Estimator includes its name along with its regex. The regex informs SageMaker how to pick up the metric’s values from training logs in Amazon CloudWatch . The tuning job uses these values to find the best-performing model. You also specify where the output model should be uploaded in the output_path parameter.
You then use this Estimator to instantiate your HyperparameterTuner . Its parameters include the total and maximum parallel number of training jobs, search strategy (for more details on strategies, see Understand the hyperparameter tuning strategies available in Amazon SageMaker AI ), and whether you want to use early stopping. Early stopping can be set to Auto so that SageMaker automatically stops model training when it doesn’t see improvements in your custom logged metric.
After the HyperparameterTuner is instantiated, you can call its fit() method. In its input parameter, you specify the output Amazon S3 URI from the processing step as the input location for obtaining training data in your tuning step. This way, you don’t need to specify the Amazon S3 URI yourself and it’s passed between steps implicitly. You can then specify your s3prefix and distribution depending on whether you’re using multiple instances or not.
Once instantiated, the HyperparameterTuner is passed to the tuning step, where it becomes part of your SageMaker pipeline. The training configuration is now complete! You can now choose the best model from the tuning step to create a SageMaker model and publish it to the SageMaker Model Registry. You can use the following driver program code: The code instantiates a SageMaker model using the Amazon S3 URI of the best model obtained from the tuning step. The top_k attribute of the get_top_model_s3_uri() method indicates that you’re interested in only obtaining the best-trained model.
After the model is instantiated, you can use it to create a SageMaker PipelineModel so that your pipeline can work directly with your model. You then call the register() method of PipelineModel to register your model to the SageMaker Model Registry. In the register() call, you specify the name of the new model package group where your model will be registered and specify its input and output request and response prediction types.
Finally, a SageMaker ModelStep is invoked with the instantiated PipelineModel to carry out the model registration process. You’ve now reached the final step where all your steps will be tied together in a SageMaker pipeline. Add the following code to your driver program to complete your pipeline creation steps: 4. Practical Deployment, Analysis & Case Studies This code instantiates the SageMaker Pipeline construct and provides it with all the steps defined until now—processing, tuning, and registering the model. It’s provided with a role and then invoked with the start() method.
The pipeline invocation could be on-demand using code (using pipeline.start() as shown earlier) or it could be event-driven using Amazon EventBridge rules . For example, you can create an EventBridge rule that triggers when new training data is uploaded to your S3 buckets and specify your SageMaker pipeline as the target for this rule. This makes sure that when new data is uploaded to your training bucket, your SageMaker pipeline is automatically invoked. For more details on SageMaker and EventBridge integration, refer to Schedule Pipeline Runs .
On invocation, your SageMaker pipeline runs your custom processing script in the processing step and uploads the processed data to your specified Amazon S3 destination. It then starts a tuning job with your custom training code and iteratively trains multiple models with your supplied hyperparameters and selects the best model based on your custom provided metric. The following screenshot shows that it selected the best model when tuning was complete: Finally, the best model is selected and a model package resource is created with it in your model registry. Your customers can use it to deploy your model: You have now completed all the steps in processing, training, tuning, and registering your custom anomaly detection model automatically with the aid of a SageMaker pipeline that was initiated using your driver program.
In this post, we demonstrated the building, training, tuning, and registering of an anomaly detection system with custom processing code, custom training code, and custom training metrics. We ran these steps automatically with the aid of a SageMaker pipeline, which was run by invoking a single main driver program. We also discussed the different ways of processing our data, and how it could be done using the various constructs and tools that SageMaker provides in a user-friendly and straightforward manner.
Try this approach for building your own custom anomaly detection model, and share your feedback in the comments. Nitesh Sehwani is an SDE with the EC2 Threat Detection team where he’s involved in building large-scale systems that provide security to our customers. In his free time, he reads about art history and enjoys listening to mystery thrillers. The logs exist. Some where.Spread across files, folders, and buckets. But finding a clear answer means SSH access, grep commands, and hours of manual effort. This is the moment where logs stop being helpful and start becoming a problem.
In modern cloud environments, logs are generated everywhere applications, servers, automation scripts, and security tools continuously produce log data. In this blog, we design a simple, production-ready, serverless workflow to convert messy logs into structured, queryable analytics using: The objective is to transform logs into a reliable analytics and audit data source while keeping the solution highly cost-effective.
As log volume grows, the real problem is not storage, it is visibility.Teams know the data is there, but answering even simple questions becomes painful. Looking for an AWS Partner to build secure, scalable and future-ready log analytics as part of your cloud modernization strategy? Let’s design your production-grade solution together.
Instead of introducing another logging platform or managing additional infrastructure, we rethought how logs should be handled The problem was not log generation, logs already existed in abundance. The real challenge was making those logs usable, queryable, and cost-efficient.
To solve this, we designed a fully serverless architecture using Amazon S3, AWS Lambda, and Amazon Athena. Raw logs are first stored in Amazon S3 exactly as they are received, without any modification. These raw files act as the system’s source of truth and are preserved for auditing and future reprocessing. Whenever a new log file arrives, an AWS Lambda function is triggered automatically. The function parses the log content and extracts meaningful fields such as timestamp, log level, instance ID, and message, converting unstructured text into structured data.
The processed logs are then written back to Amazon S3 in a partitioned layout optimized for analytics. Finally, Amazon Athena queries this structured data directly from S3 using standard SQL, enabling fast log analysis without managing servers, databases, or long-running infrastructure Get enterprise-grade data engineering solutions to unlock advanced analytics and AI readiness At scale, even small inefficiencies multiply into significant cost.This architecture is designed to stay efficient even as log volume grows into terabytes.
This approach delivers enterprise-grade analytics at a fraction of traditional log analytics cost. This blog focuses on architecture, scalability, and cost-optimization aspects of the solution. A complete hands-on, step-by-step implementation , including S3 setup, IAM roles, Lambda code, event triggers, and Athena queries is documented separately.
Together, this blog and the practical guide provide a full design + execution walkthrough. Configure your logging source to deliver log files into an Amazon S3 bucket. Logs are stored as plain .log files and act as the raw data source for further processing Add an S3 trigger to the Lambda function so it executes whenever a new .log file is uploaded.
By combining serverless services with partitioned storage and pay-per-query analytics, this solution transforms unstructured logs into structured, analytics-ready data in a scalable and cost-effective manner. Logs are no longer just for debugging , they become a powerful analytics and security asset. Related Searches – DevOps Automation Solutions | AWS Consulting Services | Cybersecurity Posture Management In today’s API-driven world, performance issues don’t wait for business hours. Latency spikes, sudden 500 errors, or unusual request surges can creep in silently, unless you catch them early.
So I thought, why not spending a holiday weekend building something like an AI-Powered anomaly detection system. My goal was to build a flexible and low-cost system, leveraging AWS serverless ecosystem. Latency (sudden slowdowns or spikes) Error codes (unexpected 500 bursts) Traffic patterns (suspicious activity from specific IPs) The challenge: depending on traffic, these logs can easily number in the hundreds or thousands every few minutes . My monitoring system had to keep up without overwhelming my infrastructure or my budget.
It all started with API Gateway logs . After enabling Detailed and Data Tracing, every single request automatically flowed into CloudWatch . This gave me a reliable, structured stream of raw data without writing a single line of custom logging code. From there, I didn’t want detection running constantly in real time (which could get expensive), so I used EventBridge to trigger the process on a schedule. I chose a 5Iminute batch window, but this can be tuned for anything from near real-time to periodic insights.
Each time the EventBridge rule fires, a Lambda function queries the last 5 minutes of logs from CloudWatch, pulling out the metrics that matter: request latency, error rates, and request sources. Instead of pushing logs one by one to an AI service (which would be slow and costly), the Lambda bundles them into a single batch. That batch is then submitted to Amazon Bedrock , where I used the AWS Nova Micro model. I chose Nova Micro specifically to keep costs low, since the token count per request is small, it’s a perfect fit for short, focused analysis.T The Lambda sends the logs in a structured summary prompt (latency percentiles, error counts, IP frequency), so the model can quickly flag anomalies: unusual spikes in latency, sudden bursts of errors, or suspicious request patterns that might otherwise slip through unnoticed.
Finally, if something looks off, the Lambda stores the anomaly details in DynamoDB , creating a historical record of issues. These can then be displayed on an Anomalies Dashboard or pushed to users via SNS notifications. Instead of building and training a custom anomaly detection model, I leveraged a preItrained AWS Base Model already available in Amazon Bedrock .
By feeding the AI a structured snapshot of recent logs, it can highlight patterns such as: Latency spikes compared to baseline Sudden bursts of 5xx responses Repeated requests from a suspicious IP Significant deviations in traffic volume This approach turns anomaly detection from a machine learning project into a prompt engineering exercise which is faster, cheaper, and easier to maintain compared to a traditional ML solution.
No training costs : I used AWS Base Models directly. PayIperIuse pricing : Amazon Bedrock charges only for the tokens processed (input and output). Serverless billing : Lambda, EventBridge, and CloudWatch also follow payIperIuse models, with generous free tiers. Zero fixed cost when idle : If no logs are generated and no Lambdas run, the system costs nothing. AWS model Nova Micro processes tokens at a fraction of a cent, meaning each 5Iminute batch costs only pennies.
This makes the solution accessible even for small teams, while still scaling seamlessly for enterprise traffic. Anomaly detection doesn’t have to be an expensive ML project. By combining serverless AWS building blocks with foundation models , you can detect issues in your API traffic without training a single model . Even better: this approach is affordable, scalable, and simple to maintain. If you’ve got API logs, you can prototype a working anomaly detector in a weekend and start catching issues before your users notice them.
You can often hear “We’ve moved to the cloud” and that sounds great… until you realize things are still slow, fragile… Well, it turns out the holiday season might be the only time when I manage to gather enough psychophysical energy to… Over the past few months at Nat, I’ve been working on a new feature to improve the overall usability of our Personal… 5. Performance Evaluation & Extended Technical Observations In a software development project, amplify learning is the process by which we increase the ability of the development… A practical guide to building log anomaly detection systems using statistical methods, pattern recognition, and smart alerting strategies.
Your logs tell a story. Most of the time, it is a boring story about successful requests and routine operations. But hidden in the noise are signals that something is about to go wrong. A sudden spike in error rates, an unusual pattern in authentication failures, a gradual increase in response times. These are the anomalies that matter. The challenge is not collecting logs. You probably have millions of them. The challenge is finding the needles in the haystack before they become outages.
This guide walks you through building a practical log anomaly detection system, from basic statistical methods to pattern recognition and intelligent alerting. Before writing code, you need to understand what you are looking for. Log anomalies fall into three categories: Point Anomalies : Single log entries that are unusual on their own. An error message that has never appeared before. A request from an unexpected IP range. A user action that does not fit normal behavior.
Contextual Anomalies : Log entries that are normal in some contexts but abnormal in others. A spike in login attempts is normal during business hours but suspicious at 3 AM. High CPU usage is expected during batch processing but concerning during idle periods. Collective Anomalies : Groups of log entries that are anomalous as a sequence. Each individual log might look fine, but the pattern they form is unusual. A sequence of failed database connections followed by retries followed by timeouts tells a story of cascading failure.
A log anomaly detection system processes logs through several stages. Each stage filters and enriches the data, narrowing down to actionable alerts. Raw logs come in many formats. Before you can detect anomalies, you need consistent structure. Raw parsed logs need to be converted into numerical features that statistical methods can work with. This is where domain knowledge matters.
To detect anomalies, you need to know what "normal" looks like. This requires building a baseline from historical data. With baselines established, you can score each observation for how anomalous it is. The Z-score is a simple and effective starting point. Statistical methods catch numerical anomalies, but many log anomalies are about patterns. A new error message that has never appeared before. A sequence of events that indicates a problem.
Not every anomaly deserves an alert. Alert fatigue is real. You need intelligent filtering to surface only actionable anomalies. Once you have anomaly detection working, you need somewhere to send alerts. OneUptime provides native log ingestion with OpenTelemetry support, making integration straightforward. Start simple. A basic Z-score detector on error rates catches more problems than no detection at all. Add complexity only when you have specific problems that simpler methods miss.
The goal is not to catch every anomaly. The goal is to catch the ones that matter, before they become outages. Every OneUptime blog post is open source. Found a typo, an inaccuracy, or have a clearer way to explain something? Anyone can contribute — your edits make this post better for everyone who reads it next. Your complete reliability stack unified: infrastructure monitoring, incident management, status pages, and APM. Open-source and self-hostable.
At the end of this tutorial, you should have a good idea of what machine learning is and will hopefully be inspired to use it to detect anomalies in your own data. Need more context? Check out the Elasticsearch introduction to learn the lingo and understand the basics of how Elasticsearch works.
Before you can play with the machine learning features, you must install Elasticsearch and Kibana. Elasticsearch stores the data and the analysis results. Kibana provides a helpful user interface for creating and viewing jobs. You can run Elasticsearch and Kibana on your own hardware or on Elastic Cloud . Try out Elastic Cloud for free . Verify that your environment is set up properly to use the machine learning features. If the Elasticsearch security features are enabled, to complete this tutorial you need a user that has authority to manage anomaly detection jobs. See Setup and security .
Add the sample data sets that ship with Kibana . In this tutorial, youâIIll use the Sample web logs . To get the best results from machine learning analytics, you must understand your data. You must know its data types and the range and distribution of values. The Data Visualizer enables you to explore the fields in your data: Open Kibana in your web browser. If you are running Kibana locally, go to http://localhost:5601/ .
The Kibana machine learning features use pop-ups. You must configure your web browser so that it does not block pop-up windows or create an exception for your Kibana URL. Use the time filter to select a time period that youâIIre interested in exploring. Alternatively, click Use full data to view the full time range of data.
Optional: You can change the random sampling behavior, which affects the number of documents per shard that are used in the Data Visualizer. You can use automatic random sampling that balances accuracy and speed, manual sampling where you can chose a value for the sampling percentage, or you can turn the feaure off to use the full data set. There is a relatively small number of documents in the Kibana sample data, so you can turn random sampling off. For larger data sets, keep in mind that using a large sample size increases query run times and increases the load on the cluster.
You can filter the list by field names or field types . The Data Visualizer indicates how many of the documents in the sample for the selected time period contain each field. In particular, look at the clientip , response.keyword , and url.keyword fields, since weâIIll use them in our anomaly detection jobs. For these fields, the Data Visualizer provides the number of distinct values, a list of the top values, and the number and percentage of documents that contain the field. For example: For numeric fields, the Data Visualizer provides information about the minimum, median, maximum, and top values, the number of distinct values, and their distribution. You can use the distribution chart to get a better idea of how the values in the data are clustered. For example: Make note of the range of dates in the @timestamp field. They are relative to when you added the sample data and youâIIll need that information later in the tutorial.
Now that youâIIre familiar with the data in the kibana_sample_data_logs index, you can create some anomaly detection jobs to analyze it. You can view the statistics of the selectable fields in the anomaly detection wizard. The field statistics displayed in a flyout provide more meaningful context to help you select relevant fields.
The results on this page might be different than the actual values you get when using the sample data sets. This behavior is expected as the data points in the data sets might change over time. The Kibana sample data sets include some pre-configured anomaly detection jobs for you to play with. You can use either of the following methods to add the jobs: A datafeed retrieves time series data from Elasticsearch and provides it to an anomaly detection job for analysis.
The job uses buckets to divide the time series into batches for processing. For example, all three sample web log jobs use a bucket span of 1 hour. Each anomaly detection job contains one or more detectors , which define the type of analysis that occurs (for example, max , average , or rare analytical functions) and the fields that are analyzed. Some of the analytical functions look for single anomalous data points. For example, max identifies the maximum value that is seen within a bucket. Others perform some aggregation over the length of the bucket. For example, mean calculates the mean of all the data points seen within the bucket.
If you want to see all of the configuration details for your jobs and datafeeds, you can do so on the Stack Management > Anomaly Detection Jobs page, which you can access from the navigation menu or using the global search bar . Alternatively, you can see the configuration files in GitHub . For the purposes of this tutorial, however, hereâIIs a quick overview of the goal of each job: The next step is to view the results and see what types of insights these jobs have generated! After the datafeeds are started and the anomaly detection jobs have processed some data, you can view the results in Kibana.
Depending on the capacity of your machine, you might need to wait a few seconds for the machine learning analysis to generate initial results. The machine learning features analyze the input stream of data, model its behavior, and perform analysis based on the detectors in each job. When an event occurs outside of the model, that event is identified as an anomaly. You can immediately see that all three jobs have found anomalies, which are indicated by red blocks in the swim lanes for each job.
Swim lane colors map to the anomaly score: blue indicates low, yellow indicates medium, and red indicates high severity, with different shades representing varying levels within each category. There are two tools for examining the results from anomaly detection jobs in Kibana: the Anomaly Explorer and the Single Metric Viewer . You can switch between these tools by clicking the icons in the top left corner. You can also edit the job selection to examine a different subset of anomaly detection jobs.
One of the sample jobs ( low_request_rate ), is a single metric anomaly detection job . It has a single detector that uses the low_count function and limited job properties. You might use a job like this if you want to determine when the request rate on your web site drops significantly. This view contains a chart that represents the actual and expected values over time. It is available only if the job has model_plot_config enabled. It can display only a single time series.
The blue line in the chart represents the actual data values. The shaded blue area represents the bounds for the expected values. The area between the upper and lower bounds are the most likely values for the model, using a 95% confidence level. That is to say, there is a 95% chance of the actual value falling within these bounds. If a value is outside of this area then it will usually be identified as anomalous.
If you slide the time selector from the beginning to the end of the data, you can see how the model improves as it processes more data. At the beginning, the expected range of values is pretty broad and the model is not capturing the periodicity in the data. But it quickly learns and begins to reflect the patterns in your data. Harvested Online Documentation & Reference Sources • https://praveentn.github.io/arconcepts/serverless/serverless-observability.html • https://www.serverless.com/framework/docs/guides/dashboard/monitoring • https://scottobert.com/posts/automated-aws-log-analysis-serverless/ • https://github.com/Ofony-85/serverless-log-pipeline • https://github.com/Raiom007/AIOps-Log-Anomaly-Pipeline • https://aws.amazon.com/blogs/machine-learning/efficiently-build-and-tune-custom-log-anomaly-detection-models-with-amaz on-sagemaker/ • https://opstree.com/blog/serverless-log-analytics-aws/ • https://www.linkedin.com/pulse/from-logs-insights-how-i-built-serverless-anomaly-detector-amedeo-tpeef • https://oneuptime.com/blog/post/2026-01-30-log-anomaly-detection/view • https://www.elastic.co/docs/explore-analyze/machine-learning/anomaly-detection/ml-getting-started
Extracted Research Figures & Simulation Topologies
Total 3 diagrams and telemetry visual outputs extracted directly from the complete technical documentation.
Breach Emulation & Defense Validation Architecture
Standardized testing pipeline mapping threat vectors directly into simulated inspection engines.
(AttackIQ / SafeBreach)
(Burp Suite Pro)
(Cisco Packet Tracer)
(Metasploit Engine)
(KnowBe4 Training)
Sample Simulation Code & Telemetry Log
Automated tool orchestration script and command window outputs for Serverless Log Aggregation And Anomaly Detection Tool.
[*] Metasploit Scan Running on Target Subnet for Serverless Log Aggregation And Anomaly Detection Tool... [✓] SafeBreach / AttackIQ Continuous Exposure Agent Triggered ──────────────────────────────────────────────────────────────────────── [11:48:02.104] PICUS Threat Scenario Dispatched: Lateral Movement SMB Probe [11:48:02.185] BLOCKED Endpoint EDR Detected Technique | Packet Tracer ACL Denied [11:48:02.240] CYMULATE Prevention Rate = 96.8% | SIEM Latency = 38 ms [11:48:02.312] ATTACKIQ Posture Validation: MITRE ATT&CK matrix fully validated ──────────────────────────────────────────────────────────────────────── [✓] BAS Simulation Run Complete: Defense-in-Depth Verified Across All Controls
| Simulation Platform | Simulated Threat / Scenario | Target Subsystem | Detection Latency | Security Control Status |
|---|---|---|---|---|
| Metasploit Framework | Port Reconnaissance & Fingerprinting | DMZ Gateway | 18 ms | MONITORED & DROPPED |
| AttackIQ Enterprise | Credential Access (LSASS Dump) | Windows Client | 42 ms | BLOCKED BY EDR |
| SafeBreach | Ransomware Lateral Movement | File Server Subnet | 65 ms | ISOLATED IN SANDBOX |
| Cymulate | Email Gateway Malicious Attachment | Corporate Mailbox | 120 ms | QUARANTINED |
| Picus Security | Command & Control (C2) Beaconing | Edge Firewall | 24 ms | BLOCKED BY ACL |