by Mohammad Alsaadi, Nabeel Mazyed, and Saleh Huneidi
SOARCERY is a comprehensive AWS-based security orchestration, automation, and response platform designed to monitor, analyze, and automatically remediate security threats across AWS environments. The platform integrates with AWS GuardDuty, Security Hub, and other AWS services to provide real-time threat detection and automated incident response.
SOARCERY consists of three main components:
- Technology: React + TypeScript + Vite
- UI Framework: Tailwind CSS with shadcn/ui components
- Features:
- Role-based access control (Admin/Client)
- Real-time security event monitoring
- Interactive charts and visualizations
- Event management and remediation approval
- Report generation interface
- Technology: AWS API Gateway with OpenAPI 3.0 specification
- Authentication: JWT-based authentication
- Endpoints:
/findings
- List and filter security findings/finding/{accountId}
- Account-specific findings/approve/{key}
- Approve remediation actions/reject/{key}
- Reject remediation actions/auth
- User authentication/generate/{accountId}
- Generate security reports
- Language: Python 3.x
- Functions:
GuardDutyLogs
- Process GuardDuty findingsDashboardFindings
- API for dashboard dataApproveRemediation
- Handle remediation approvalsRejectRemediation
- Handle remediation rejectionsAuthentication
- User authentication logicGenerateReport
- Create and email security reports
- Real-time Detection: Automatically processes GuardDuty findings via EventBridge
- Threat Classification: Categorizes threats by severity (Critical, High, Medium, Low)
- Automated Filtering: Focuses on specific attack types like:
- Malicious IP caller detection
- Reverse shell execution
- Unauthorized access attempts
- Automatic Response: Low and medium severity threats are automatically remediated
- Approval Workflow: High and critical severity threats require manual approval
- Cross-Account Support: Handles security incidents across multiple AWS accounts
- Remediation Actions:
- Network ACL modifications to block malicious IPs
- Security group isolation for compromised instances
- Process termination for suspicious activities
- Instance tagging for incident tracking
-
Admin Dashboard:
- Organization-wide security overview
- Client management and monitoring
- Pending approval queue
- Comprehensive analytics
-
Client Dashboard:
- Account-specific security events
- Remediation status tracking
- Report generation capabilities
- Historical event analysis
- Automated Reports: PDF security reports generated on-demand
- Email Delivery: Reports automatically emailed to account administrators
- Multi-Account Support: Consolidated reporting across AWS Organizations
- Professional Formatting: Styled HTML emails with attached PDF reports
- React 18 with TypeScript
- Vite for build tooling
- Tailwind CSS for styling
- shadcn/ui component library
- React Router for navigation
- TanStack Query for state management
- Recharts for data visualization
- AWS Lambda (Python 3.x)
- AWS API Gateway (REST API)
- AWS S3 for findings storage
- AWS Secrets Manager for credentials
- AWS SES for email delivery
- AWS SSM for instance management
- AWS EventBridge for event processing
- Role-based access control
- AWS IAM for service permissions
- Cross-account role assumption
- Encrypted storage in S3
- AWS CLI configured with appropriate permissions
- Node.js 16+ for frontend development
- Python 3.x for Lambda functions
- AWS Organizations setup (for multi-account features)
cd Dashboard
npm install
npm run dev
Each Lambda function includes:
- Python source code
- IAM policy documents
- Resource-based policy statements
Deploy using AWS CLI, CloudFormation, or your preferred IaC tool.
- Import the OpenAPI specification from
API Gateway/Api config.yaml
- Configure Lambda integrations
- Set up authentication and CORS
FINDINGS_BUCKET
: S3 bucket for storing security findingsORGANIZATION_ID
: AWS Organization ID for multi-account supportREMEDIATION_ROLE_NAME
: IAM role for cross-account remediation
soarcery/ec2-credentials
: SSH credentials for report generationsoarcery-user-{username}
: User authentication credentials
The system currently monitors and responds to:
UnauthorizedAccess:EC2/MaliciousIPCaller.Custom
TTPs/Command and Control/UnauthorizedAccess: EC2-MaliciousIPCaller.Custom
TTPs/Execution/Execution:Runtime-ReverseShell
- GuardDuty Integration: Real-time threat detection
- Security Hub Aggregation: Centralized finding management
- Custom Threat Intelligence: Configurable attack type filtering
- Network Isolation: Automatic blocking of malicious IPs
- Instance Quarantine: Security group modifications for compromised resources
- Process Termination: Automated killing of suspicious processes
- Forensic Collection: Gathering of system information for analysis
- Event Logging: Comprehensive audit trail
- Remediation Tracking: Full history of security actions
- Multi-Account Visibility: Organization-wide security posture
- Reporting: Regular security reports and metrics
- Detection: GuardDuty identifies security threats
- Processing: EventBridge triggers Lambda for finding processing
- Storage: Findings stored in S3 with metadata
- Classification: Automatic severity and threat type classification
- Remediation: Automated response for low/medium threats
- Approval: Manual approval workflow for high/critical threats
- Reporting: Dashboard updates and email notifications