mirror of
https://github.com/mukul975/Anthropic-Cybersecurity-Skills.git
synced 2026-06-11 13:44:56 +03:00
172 lines
5.5 KiB
Markdown
172 lines
5.5 KiB
Markdown
# Reference: Attack Surface Management
|
|
|
|
## Exposure Scoring Algorithm
|
|
|
|
### Weighted Formula
|
|
|
|
The exposure score uses a weighted composite of five factors, each normalized to 0-100:
|
|
|
|
```
|
|
Exposure Score = (Port_Score * 0.25) + (Vuln_Score * 0.30) + (Tech_Score * 0.15)
|
|
+ (Exposure_Score * 0.15) + (Data_Score * 0.15)
|
|
```
|
|
|
|
### Component Scoring
|
|
|
|
**Open Ports (25% weight)**
|
|
- Each port has a risk weight from PORT_RISK_WEIGHTS (1.0-9.5)
|
|
- Management ports (SSH, RDP, Telnet): 8.0-9.5
|
|
- Database ports (MySQL, MongoDB, Redis): 9.0-9.5
|
|
- Web ports (HTTP, HTTPS): 2.5-3.0
|
|
- Formula: `min(100, (avg_weight * 10) * log2(count + 1))`
|
|
|
|
**Vulnerabilities (30% weight)**
|
|
- Weighted by CVSS score bands: Critical=10, High=7, Medium=4, Low=2
|
|
- Diminishing returns via logarithmic scaling
|
|
- Formula: `min(100, total_weight * log2(count + 1))`
|
|
|
|
**Technology Risk (15% weight)**
|
|
- Known high-risk technologies scored 2.0-8.0
|
|
- Struts (8.0), phpMyAdmin (8.0), WebLogic (7.0), Jenkins (7.0)
|
|
- Unknown technologies get baseline score of 10.0
|
|
|
|
**Exposure Level (15% weight)**
|
|
- Base score 50 for internet-facing
|
|
- HTTP-only: +15 | CDN protected: -20
|
|
- Auth required (401/403): -25
|
|
- Admin/login panel detected: +20
|
|
|
|
**Data Sensitivity (15% weight)**
|
|
- Exposed database ports: +20 each
|
|
- File sharing ports (FTP, SMB): +15 each
|
|
- Sensitive service indicators: +15 each
|
|
|
|
### Risk Levels
|
|
|
|
| Score Range | Risk Level |
|
|
|-------------|------------|
|
|
| 80-100 | CRITICAL |
|
|
| 60-79 | HIGH |
|
|
| 40-59 | MEDIUM |
|
|
| 20-39 | LOW |
|
|
| 0-19 | INFORMATIONAL |
|
|
|
|
## OWASP Attack Surface Analysis
|
|
|
|
### Entry Points to Catalog
|
|
|
|
Per OWASP Attack Surface Analysis Cheat Sheet:
|
|
- Network-accessible ports and services
|
|
- Web application endpoints and parameters
|
|
- Authentication mechanisms
|
|
- File upload functions
|
|
- Administrative interfaces
|
|
- API endpoints
|
|
- Form fields and query parameters
|
|
|
|
### Relative Attack Surface Quotient (RSQ)
|
|
|
|
Microsoft's RSQ methodology counts:
|
|
1. **Channels**: TCP/UDP ports, RPC endpoints, named pipes
|
|
2. **Methods**: HTTP verbs, RPC methods, API functions
|
|
3. **Data Items**: Files, registry keys, database records
|
|
|
|
RSQ = sum of (damage_potential / effort) for each attack vector
|
|
|
|
## Shodan Search Operators
|
|
|
|
| Operator | Description | Example |
|
|
|----------|-------------|---------|
|
|
| `hostname:` | Search by hostname | `hostname:example.com` |
|
|
| `org:` | Search by organization | `org:"Example Corp"` |
|
|
| `net:` | Search by CIDR | `net:93.184.216.0/24` |
|
|
| `port:` | Filter by port | `port:3389` |
|
|
| `product:` | Filter by product | `product:nginx` |
|
|
| `os:` | Filter by OS | `os:"Windows Server 2019"` |
|
|
| `ssl.cert.subject.cn:` | SSL cert CN | `ssl.cert.subject.cn:example.com` |
|
|
| `vuln:` | Search by CVE | `vuln:CVE-2021-44228` |
|
|
| `country:` | Filter by country | `country:US` |
|
|
| `has_vuln:true` | Has known vulns | `hostname:example.com has_vuln:true` |
|
|
|
|
## Censys Search Syntax
|
|
|
|
| Query | Description |
|
|
|-------|-------------|
|
|
| `services.port: 443` | Hosts with port 443 open |
|
|
| `services.tls.certificates.leaf.subject.common_name: example.com` | SSL cert match |
|
|
| `services.http.response.html_title: "Admin"` | Page title match |
|
|
| `services.software.product: "Apache"` | Software product |
|
|
| `location.country: "United States"` | Geographic filter |
|
|
| `autonomous_system.asn: 13335` | ASN filter |
|
|
|
|
## ProjectDiscovery Tool Chain
|
|
|
|
### subfinder
|
|
Passive subdomain discovery using 50+ data sources:
|
|
- Certificate transparency (crt.sh, Certspotter)
|
|
- DNS datasets (DNSdumpster, SecurityTrails)
|
|
- Search engines (Google, Bing, Yahoo)
|
|
- Web archives (Wayback Machine, CommonCrawl)
|
|
- Shodan, Censys, VirusTotal APIs
|
|
|
|
```bash
|
|
subfinder -d example.com -all -recursive -o subs.txt
|
|
```
|
|
|
|
### httpx
|
|
HTTP toolkit for probing and fingerprinting:
|
|
- Status codes, content length, content type
|
|
- Technology detection (Wappalyzer)
|
|
- Favicon hash, JARM fingerprint
|
|
- CDN detection, CNAME resolution
|
|
|
|
```bash
|
|
cat subs.txt | httpx -sc -cl -ct -title -tech-detect -json -o httpx.json
|
|
```
|
|
|
|
### nuclei
|
|
Template-based vulnerability scanner:
|
|
- 10,000+ community templates
|
|
- Severity-based filtering
|
|
- Protocol support: HTTP, DNS, TCP, SSL, File
|
|
- Automatic template updates
|
|
|
|
```bash
|
|
cat live_hosts.txt | nuclei -severity critical,high -tags cve -o findings.txt
|
|
```
|
|
|
|
## Port Risk Classification
|
|
|
|
### Critical Exposure (Score 9.0+)
|
|
- 23 (Telnet): Unencrypted remote access
|
|
- 27017 (MongoDB): Often misconfigured without auth
|
|
- 6379 (Redis): Commonly exposed without auth
|
|
- 445 (SMB): Ransomware propagation vector
|
|
|
|
### High Exposure (Score 7.0-8.9)
|
|
- 22 (SSH): Brute force target
|
|
- 3389 (RDP): BlueKeep, credential attacks
|
|
- 3306/5432/1433 (Databases): Data exfiltration
|
|
- 21 (FTP): Anonymous access, credential theft
|
|
- 161 (SNMP): Community string exposure
|
|
|
|
### Medium Exposure (Score 4.0-6.9)
|
|
- 8080/8443 (Alt HTTP/S): Dev/staging environments
|
|
- 25 (SMTP): Open relay, spoofing
|
|
- 53 (DNS): Zone transfer, cache poisoning
|
|
- 8888 (Various): Development panels
|
|
|
|
### Low Exposure (Score 2.0-3.9)
|
|
- 80 (HTTP): Standard web
|
|
- 443 (HTTPS): Standard secure web
|
|
|
|
### References
|
|
|
|
- OWASP Attack Surface Analysis: https://cheatsheetseries.owasp.org/cheatsheets/Attack_Surface_Analysis_Cheat_Sheet.html
|
|
- OWASP ASM Top 10: https://owasp.org/www-project-attack-surface-management-top-10/
|
|
- ProjectDiscovery ASM blog: https://blog.projectdiscovery.io/asm-platform-using-projectdiscovery-tools/
|
|
- Shodan API documentation: https://developer.shodan.io/api
|
|
- Censys API documentation: https://search.censys.io/api
|
|
- subfinder GitHub: https://github.com/projectdiscovery/subfinder
|
|
- nuclei GitHub: https://github.com/projectdiscovery/nuclei
|