What is an Issue?
An issue in Garnet represents a security concern that requires attention. Issues are created by aggregating related events into actionable items, making it easier for security teams to understand and respond to threats. While events are raw telemetry, issues are the analyzed, prioritized, and contextualized security incidents that your team should investigate.Issue Structure
Issue Classification
Issue Classes
Issues are categorized into classes based on the type of threat:Network Exfiltration
Suspicious outbound network traffic to potentially malicious destinations.Examples:
- Connections to known threat domains
- Data transfer to suspicious IPs
- Unauthorized external communications
Crypto Miner
Cryptocurrency mining activity detected on your infrastructure.Examples:
- Mining pool connections
- Mining binary execution
- High CPU usage patterns
Network Anomaly
Unusual network behavior that doesn’t fit normal patterns.Examples:
- Unexpected protocol usage
- Connections to unusual ports
- Abnormal traffic patterns
Issue States
Issues can be in one of two states:- Allowed: The issue has been reviewed and the activity is permitted
- Blocked: The issue has been blocked via a network policy rule
Changing an issue’s state requires providing a reason to maintain an audit trail.
Priority Levels
Low Priority
Low Priority
Minor security concerns that should be reviewed but don’t require immediate action.
- Tracking domain access
- Informational fingerprinting
- Low-risk network activity
Medium Priority
Medium Priority
Potentially suspicious activity that warrants investigation.
- Unusual network patterns
- Access to uncommon services
- Moderate risk indicators
High Priority
High Priority
Significant security concerns requiring prompt attention.
- Known malicious domains
- Suspicious tool execution
- Privilege escalation attempts
Critical Priority
Critical Priority
Severe security threats requiring immediate response.
- Active crypto mining
- Confirmed malware execution
- Data exfiltration attempts
- Known threat actor infrastructure
Creating an Issue
Issues are typically created automatically by Garnet, but can also be created manually:An issue must be associated with at least one event. The
EventIDs field cannot be empty.Listing Issues
Query issues with comprehensive filtering:Available Filters
Issue Attributes
- Class: Issue classification
- State: Allowed or blocked
- Priority: Priority level
- Labels: Key-value labels
Context Filters
- AgentKind: Type of agent (GitHub, K8s, Vanilla)
- AgentID: Specific agent
- RepositoryID: GitHub repository
- Repository: Repository name
- WorkflowName: GitHub workflow
- CreatedAfter: Time filter
Updating Issues
Modify issue properties as your investigation progresses:When changing the state of an issue, you must provide a reason. This creates an audit trail for security decisions.
Ignoring Issues
Mark an issue as ignored to suppress it from default queries:Taking Action on Issues
Garnet provides two primary actions for responding to issues: allowing and blocking.Allowing an Issue
Create a network policy rule to explicitly allow the traffic:Blocking an Issue
Create a network policy rule to block the traffic:Network Policy Scopes
Actions can be scoped at different levels:Global
System Global: Applies across all projects (admin only)Project Global: Applies to all agents in a projectUse for: Organization-wide policies
GitHub Context
Repo: Applies to specific repositoryWorkflow: Applies to specific workflowUse for: Repository or workflow-specific rules
Kubernetes Context
Cluster: Applies to entire clusterNode: Applies to specific nodeUse for: Cluster or node-specific rules
Choosing Scope
Narrow scope: More targeted, less impactBroad scope: Organization-wide protectionUse for: Balance security and operational needs
The network policy rule is automatically created from the network destination extracted from the issue’s events. For domain-based events, a domain rule is created. For IP-based events, a CIDR rule is created.
Issue Action History
Track all actions taken on an issue:- Action type (allow/block)
- Scope where rule was created
- Reason provided
- User who performed the action
- Network policy and rule IDs
- Destination type and value
- Timestamp
Issue Labels
Labels help organize and categorize issues:Network Destination Extraction
Issues automatically extract network destination information from their events:types/issue.go:364-442):
- Examines all events in the issue
- For DropIP events: Prefers domain if available, falls back to IP
- For domain access events: Extracts domain from flow data
- Returns the rule type (CIDR or domain) and value
Domain extraction prefers the
Name field (original requested domain) over the Names array (DNS resolution chain) to ensure the rule targets the intended destination.Deleting Issues
Soft-delete an issue:Deleted issues are soft-deleted (marked with
DeletedAt timestamp) and not returned in normal queries.Best Practices
Issue Triage
Issue Triage
- Review critical and high priority issues daily
- Investigate medium priority issues weekly
- Use labels to track review status
- Document decisions in the reason field
- Set up alerting for critical issues
Action Decisions
Action Decisions
- Start with narrow scopes (workflow/node) before broad (global)
- Test allow rules before deploying broadly
- Block known threats immediately
- Document the business justification for allows
- Review action history regularly
Lifecycle Management
Lifecycle Management
- Don’t ignore issues without investigation
- Use priority levels consistently
- Update issue state as investigation progresses
- Link issues to tickets in external systems via labels
- Regularly review and cleanup old issues
Team Workflow
Team Workflow
- Assign issues to team members via labels
- Track progress with custom labels
- Use filters to create team views
- Integrate with incident response workflows
- Maintain audit trail with detailed reasons
Error Handling
Common Errors
ErrInvalidIssueID (types/issue.go:73)
types/issue.go:82)
types/issue.go:71)
types/issue.go:94)
Related Concepts
- Events - Raw security events that form issues
- Agents - Components that detect and report events
- Network Policies - Rules created from issue actions
