UNPKG

raindancers-network

Version:
96 lines (95 loc) 4.87 kB
import * as cdk from 'aws-cdk-lib'; import { aws_networkfirewall as firewall } from 'aws-cdk-lib'; import * as constructs from 'constructs'; export declare enum StatelessActions { PASS = "aws:pass", DROP = "aws:drop", STATEFUL = "aws:forward_to_sfe" } export declare enum StatefulDefaultActions { DROP_STRICT = "aws:drop_strict", DROP_ESTABLISHED = "aws:drop_established", ALERT_STRICT = "aws:alert_strict", ALERT_ESTABLISHED = "aws:alert_established" } export declare enum ManagedAwsFirewallRules { ABUSED_LEGIT_MALWARE_DOMAINS_ACTION_ORDER = "AbusedLegitMalwareDomainsActionOrder", ABUSED_LEGIT_BOTNET_COMMAND_AND_CONTROL_DOMAINS_ACTION_ORDER = "AbusedLegitBotNetCommandAndControlDomainsActionOrder", MALWARE_DOMAINS_ACTION_ORDER = "MalwareDomainsActionOrder", BOTNET_COMMAND_AND_CONTROL_DOMAINS_ACTION_ORDER = "BotNetCommandAndControlDomainsActionOrder", THREAT_SIGNATURES_BOTNET_ACTION_ORDER = "ThreatSignaturesBotnetActionOrder", THREAT_SIGNATURES_BOTNET_WEB_ACTION_ORDER = "ThreatSignaturesBotnetWebActionOrder", THREAT_SIGNATURES_BOTNET_WINDOWS_ACTION_ODER = "ThreatSignaturesBotnetWindowsActionOrder", THREAT_SIGNATURES_DOS_ACTION_ORDER = "ThreatSignaturesDoSActionOrder", THREAT_SIGNATURES_EMERGING_EVENTS_ACTION_ORDER = "ThreatSignaturesEmergingEventsActionOrder", THREAT_SIGNATURES_EXPLOITS_ACTION_ORDER = "ThreatSignaturesExploitsActionOrder", THREAT_SIGNATURES_FUP_ACTION_ORDER = "ThreatSignaturesFUPActionOrder", THREAT_SIGNATURES_IOC_ACTION_ORDER = "ThreatSignaturesIOCActionOrder", THREAT_SIGNATURES_MALWARE_ACTION_ORDER = "ThreatSignaturesMalwareActionOrder", THREAT_SIGNATURES_MALWARE_COIN_MINING_ACTION_ORDER = "ThreatSignaturesMalwareCoinminingActionOrder", THREAT_SIGNATURES_MAWLARE_WEB_ACTION_ORDER = "ThreatSignaturesMalwareWebActionOrder", THREAT_SIGNATURES_MALWARE_MOBILE_ACTION_ORDER = "ThreatSignaturesMalwareMobileActionOrder", THREAT_SIGNATURES_PHISHING_ACTION_ORDER = "ThreatSignaturesPhishingActionOrder", THREAT_SIGNATURES_SCANNERS_ACTION_ORDER = "ThreatSignaturesScannersActionOrder", THREAT_SIGNATURES_SUSPECT_ACTION_ORDER = "ThreatSignaturesSuspectActionOrder", THREAT_SIGNATURES_WEB_ATTACKS_ACTION_ORDER = "ThreatSignaturesWebAttacksActionOrder" } export interface AddStatefulRulesProps { readonly awsManagedRules: ManagedAwsFirewallRules[]; } export interface IFirewallPolicyProperty { statefulDefaultActions?: string[]; statefulEngineOptions?: firewall.CfnFirewallPolicy.StatefulEngineOptionsProperty | cdk.IResolvable; statefulRuleGroupReferences?: Array<firewall.CfnFirewallPolicy.StatefulRuleGroupReferenceProperty>; statelessCustomActions?: Array<firewall.CfnFirewallPolicy.CustomActionProperty | cdk.IResolvable> | cdk.IResolvable; statelessDefaultActions: string[]; statelessFragmentDefaultActions: string[]; statelessRuleGroupReferences?: Array<firewall.CfnFirewallPolicy.StatelessRuleGroupReferenceProperty | cdk.IResolvable> | cdk.IResolvable; } export declare enum RuleGroupType { STATEFUL = "STATEFUL", STATELESS = "STATELESS" } export declare enum Protocol { ICMP = 1, TCP = 6, UDP = 17 } export declare enum WellKnownPorts { SSH = 22, HTTP = 80, HTTPS = 443, RDP = 3389 } export interface StatelessRuleProps { readonly actions: StatelessActions[]; readonly priority: number; readonly destinationPorts?: undefined | (string | number | WellKnownPorts)[]; readonly destinations?: undefined | firewall.CfnRuleGroup.AddressProperty[]; readonly protocols?: undefined | Protocol[]; readonly sourcePorts?: undefined | (string | number)[]; readonly sources?: undefined | firewall.CfnRuleGroup.AddressProperty[]; readonly tcpFlags?: undefined | firewall.CfnRuleGroup.TCPFlagFieldProperty[]; } export interface FirewallPolicyProps { readonly policyName: string; readonly statelessDefaultActions: StatelessActions[]; readonly statelessFragmentDefaultActions: StatelessActions[]; readonly statefulEngineOptions?: undefined | firewall.CfnFirewallPolicy.StatefulEngineOptionsProperty; } export interface AddStatelessRulesProps { readonly groupName: string; readonly rules: firewall.CfnRuleGroup.StatelessRuleProperty[]; readonly description: string; } export declare class FirewallPolicy extends constructs.Construct { policy: IFirewallPolicyProperty; readonly firewallpolicy: firewall.CfnFirewallPolicy; constructor(scope: constructs.Construct, id: string, props: FirewallPolicyProps); addManagedStatefulRules(props: AddStatefulRulesProps): void; addStatelessRuleGroup(props: AddStatelessRulesProps): void; } export declare class StatelessRule { readonly statelessRuleProperty: firewall.CfnRuleGroup.StatelessRuleProperty; constructor(props: StatelessRuleProps); }