Cybersecurity

Burp Suite Pro Real-Time Processing วิเคราะห์ Security แบบ Real-Time

burp suite pro real time processing
Burp Suite Pro Real-time Processing | SiamCafe Blog
2025-09-10· อ. บอม — SiamCafe.net· 1,224 คำ

Burp Suite Pro Real-Time Processing ?????????????????????

Burp Suite Professional ???????????? web application security testing tool ?????????????????????????????????????????????????????????????????????????????????????????? penetration testing Real-Time Processing ????????????????????? ???????????????????????????????????? HTTP traffic ????????? real-time ????????????????????????????????????????????? application ????????????????????? vulnerabilities ?????????????????????????????? ?????????????????????????????????????????????????????? ??????????????????????????????????????????????????? pipeline ?????????????????? automated response

Real-Time Processing ?????? Burp Suite ???????????????????????? Proxy interception ???????????????????????????????????? request/response ?????????????????????, Scanner real-time active/passive scanning ????????? browse, Extensions ????????? BApp extensions ?????????????????????????????????????????????, API integration ????????????????????????????????????????????? external systems, Automation ??????????????? workflows ????????????????????????????????????????????? repetitive tasks

???????????????????????? ?????????????????? manual testing 60-80%, ????????????????????? vulnerabilities ????????????????????????, consistent testing quality, integrate ????????? DevSecOps pipeline, ?????????????????????????????????????????????

????????????????????? Burp Suite ?????????????????? Real-Time Analysis

Configuration ?????????????????? real-time security testing

# === Burp Suite Pro Real-Time Configuration ===

# 1. Burp Suite Project Configuration
cat > burp-config.json << 'EOF'
{
  "project_options": {
    "connections": {
      "upstream_proxy": {
        "use_upstream_proxy": false
      },
      "socks_proxy": {
        "use_socks_proxy": false
      },
      "timeouts": {
        "normal": 120,
        "open_ended_response": 180
      }
    },
    "http": {
      "redirections": {
        "follow_redirections": "in_scope"
      }
    }
  },
  "scanner": {
    "active_scanning": {
      "scan_speed": "normal",
      "scan_accuracy": "normal",
      "max_crawl_depth": 5,
      "scan_types": [
        "sql_injection",
        "xss_reflected",
        "xss_stored",
        "ssrf",
        "command_injection",
        "path_traversal",
        "xxe",
        "deserialization",
        "authentication_bypass"
      ]
    },
    "passive_scanning": {
      "enabled": true,
      "check_types": [
        "sensitive_data_exposure",
        "missing_security_headers",
        "insecure_cookies",
        "mixed_content",
        "information_disclosure",
        "cors_misconfiguration"
      ]
    }
  },
  "target": {
    "scope": {
      "include": [
        {"protocol": "https", "host": "app.example.com"},
        {"protocol": "https", "host": "api.example.com"}
      ],
      "exclude": [
        {"protocol": "any", "host": "analytics.google.com"},
        {"protocol": "any", "host": "cdn.example.com"}
      ]
    }
  }
}
EOF

# 2. Headless Burp Suite (CI/CD mode)
cat > run-burp-headless.sh << 'BASH'
#!/bin/bash
# Run Burp Suite in headless mode for CI/CD
java -jar burpsuite_pro.jar \
  --project-file=project.burp \
  --config-file=burp-config.json \
  --unpause-spider-and-scanner \
  --user-config-file=user-config.json

# Export results
java -jar burpsuite_pro.jar \
  --project-file=project.burp \
  --report-type=HTML \
  --report-file=security-report.html \
  --issue-status=confirmed,tentative
BASH

echo "Burp Suite configured for real-time analysis"

??????????????? Custom Extensions

Burp Suite extensions ?????????????????? real-time processing

#!/usr/bin/env python3
# burp_extension.py ??? Burp Suite Extension for Real-Time Processing
import json
import logging
import re
from typing import Dict, List

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("burp_ext")

class BurpRealTimeProcessor:
    """Simulated Burp Suite Extension for Real-Time Analysis"""
    
    def __init__(self):
        self.findings = []
        self.rules = []
        self.stats = {"requests": 0, "responses": 0, "findings": 0}
    
    def add_rule(self, rule):
        self.rules.append(rule)
    
    def process_request(self, request):
        """Process HTTP request in real-time"""
        self.stats["requests"] += 1
        
        for rule in self.rules:
            if rule["type"] == "request":
                match = self._check_rule(rule, request)
                if match:
                    finding = {
                        "rule": rule["name"],
                        "severity": rule["severity"],
                        "url": request.get("url"),
                        "method": request.get("method"),
                        "detail": match,
                        "type": "request",
                    }
                    self.findings.append(finding)
                    self.stats["findings"] += 1
                    return finding
        return None
    
    def process_response(self, response, request_url=""):
        """Process HTTP response in real-time"""
        self.stats["responses"] += 1
        
        for rule in self.rules:
            if rule["type"] == "response":
                match = self._check_rule(rule, response)
                if match:
                    finding = {
                        "rule": rule["name"],
                        "severity": rule["severity"],
                        "url": request_url,
                        "detail": match,
                        "type": "response",
                    }
                    self.findings.append(finding)
                    self.stats["findings"] += 1
                    return finding
        return None
    
    def _check_rule(self, rule, data):
        pattern = rule.get("pattern", "")
        body = data.get("body", "")
        headers = data.get("headers", {})
        
        if rule.get("check") == "body_regex":
            match = re.search(pattern, body, re.IGNORECASE)
            if match:
                return f"Pattern '{pattern}' found: {match.group(0)[:100]}"
        
        elif rule.get("check") == "header_missing":
            if pattern not in headers:
                return f"Missing header: {pattern}"
        
        elif rule.get("check") == "header_value":
            value = headers.get(rule.get("header", ""), "")
            if pattern in value:
                return f"Insecure header value: {rule.get('header')}={value}"
        
        return None

# Setup processor
processor = BurpRealTimeProcessor()

# Add detection rules
rules = [
    {"name": "SQL Injection in Response", "type": "response", "severity": "HIGH",
     "check": "body_regex", "pattern": r"(SQL syntax|mysql_fetch|ORA-\d+|SQLSTATE)"},
    {"name": "Sensitive Data Exposure", "type": "response", "severity": "HIGH",
     "check": "body_regex", "pattern": r"(\b\d{13,16}\b|password\s*[:=]\s*\S+)"},
    {"name": "Missing X-Frame-Options", "type": "response", "severity": "MEDIUM",
     "check": "header_missing", "pattern": "X-Frame-Options"},
    {"name": "Missing CSP", "type": "response", "severity": "MEDIUM",
     "check": "header_missing", "pattern": "Content-Security-Policy"},
    {"name": "Server Version Disclosure", "type": "response", "severity": "LOW",
     "check": "body_regex", "pattern": r"(Apache/\d|nginx/\d|PHP/\d|IIS/\d)"},
]

for rule in rules:
    processor.add_rule(rule)

# Simulate traffic
test_responses = [
    {"body": "Error: SQL syntax near 'SELECT * FROM users'", "headers": {"Server": "Apache/2.4"}},
    {"body": "Welcome back, user!", "headers": {"X-Frame-Options": "DENY", "Content-Security-Policy": "default-src 'self'"}},
    {"body": "Card: 4111111111111111", "headers": {}},
]

print("Real-Time Processing Results:")
for i, resp in enumerate(test_responses):
    finding = processor.process_response(resp, f"https://app.example.com/page{i}")
    if finding:
        print(f"  [{finding['severity']}] {finding['rule']}: {finding['detail'][:80]}")

print(f"\nStats: {processor.stats}")

Real-Time Vulnerability Detection Pipeline

Pipeline ?????????????????????????????????????????????????????????????????? vulnerabilities

# === Real-Time Vulnerability Pipeline ===

# 1. Pipeline Architecture
cat > vuln_pipeline.yaml << 'EOF'
vulnerability_pipeline:
  ingestion:
    sources:
      - name: "Burp Suite Pro"
        type: "DAST"
        method: "REST API / Extension callback"
      - name: "OWASP ZAP"
        type: "DAST"
        method: "API webhook"
      - name: "Semgrep"
        type: "SAST"
        method: "CI/CD output"
      - name: "Trivy"
        type: "Container scanning"
        method: "CI/CD output"
    
  processing:
    deduplication:
      method: "Hash-based (URL + vuln_type + parameter)"
      window: "7 days"
    
    enrichment:
      - "CVSS score lookup"
      - "Known exploit check (ExploitDB)"
      - "Asset criticality mapping"
      - "Owner/team assignment"
    
    prioritization:
      scoring:
        cvss_weight: 0.4
        exploitability_weight: 0.3
        asset_criticality_weight: 0.3
      
      sla:
        critical: "Fix within 24 hours"
        high: "Fix within 7 days"
        medium: "Fix within 30 days"
        low: "Fix within 90 days"
    
  output:
    notifications:
      - type: "Slack"
        channel: "#security-alerts"
        severity: ["critical", "high"]
      - type: "Jira"
        project: "SEC"
        auto_create: true
      - type: "PagerDuty"
        severity: ["critical"]
    
    reporting:
      - "Daily summary email"
      - "Weekly vulnerability report"
      - "Monthly security posture dashboard"
EOF

# 2. Webhook Receiver
cat > webhook_server.py << 'PYEOF'
#!/usr/bin/env python3
"""Vulnerability Webhook Receiver"""
from http.server import HTTPServer, BaseHTTPRequestHandler
import json

class VulnHandler(BaseHTTPRequestHandler):
    def do_POST(self):
        content_length = int(self.headers['Content-Length'])
        body = self.rfile.read(content_length)
        vuln = json.loads(body)
        
        severity = vuln.get('severity', 'unknown')
        name = vuln.get('name', 'Unknown vulnerability')
        url = vuln.get('url', 'N/A')
        
        print(f"[{severity.upper()}] {name} at {url}")
        
        # Route based on severity
        if severity in ['critical', 'high']:
            send_slack_alert(vuln)
            create_jira_ticket(vuln)
        
        self.send_response(200)
        self.end_headers()
        self.wfile.write(b'OK')

def send_slack_alert(vuln):
    print(f"  ??? Slack alert sent for: {vuln['name']}")

def create_jira_ticket(vuln):
    print(f"  ??? Jira ticket created: SEC-{hash(vuln['name']) % 10000}")

if __name__ == '__main__':
    server = HTTPServer(('0.0.0.0', 8888), VulnHandler)
    print("Vulnerability webhook server on :8888")
    server.serve_forever()
PYEOF

echo "Vulnerability pipeline configured"

Integration ????????? CI/CD

????????? Burp Suite ????????? DevSecOps pipeline

# === CI/CD Integration ===

# 1. GitHub Actions ??? DAST with Burp Suite
cat > .github/workflows/dast.yml << 'EOF'
name: DAST Security Scan

on:
  push:
    branches: [main, staging]
  schedule:
    - cron: '0 2 * * 1'  # Weekly Monday 2 AM

jobs:
  dast-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Start Application
        run: |
          docker compose up -d
          sleep 30  # Wait for app to be ready

      - name: Run OWASP ZAP Baseline Scan
        uses: zaproxy/action-baseline@v0.10.0
        with:
          target: 'http://localhost:8080'
          rules_file_name: 'zap-rules.tsv'

      - name: Run Burp Suite Enterprise Scan
        env:
          BURP_API_KEY: }
          BURP_URL: }
        run: |
          curl -X POST "$BURP_URL/api/scan" \
            -H "Authorization: Bearer $BURP_API_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "scan_configurations": ["Audit checks - all"],
              "urls": ["http://app:8080"],
              "scope": {
                "include": ["http://app:8080/.*"],
                "exclude": ["http://app:8080/static/.*"]
              }
            }'

      - name: Wait for Scan Results
        run: |
          python3 scripts/wait-burp-scan.py \
            --api-url "$BURP_URL" \
            --api-key "$BURP_API_KEY" \
            --timeout 3600

      - name: Check Results
        run: |
          python3 scripts/check-vulns.py \
            --fail-on-severity high \
            --report security-report.html

      - name: Upload Report
        uses: actions/upload-artifact@v4
        with:
          name: security-report
          path: security-report.html
EOF

# 2. Burp Suite REST API Client
cat > burp_api_client.py << 'PYEOF'
#!/usr/bin/env python3
"""Burp Suite Enterprise API Client"""
import json
import time
import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("burp_api")

class BurpAPIClient:
    def __init__(self, base_url, api_key):
        self.base_url = base_url
        self.api_key = api_key
    
    def start_scan(self, urls, config="default"):
        """Start a new scan"""
        logger.info(f"Starting scan for {len(urls)} URLs")
        # POST /api/scan
        return {"scan_id": "scan-001", "status": "queued"}
    
    def get_scan_status(self, scan_id):
        """Get scan status"""
        # GET /api/scan/{scan_id}
        return {"scan_id": scan_id, "status": "running", "progress": 65}
    
    def get_issues(self, scan_id):
        """Get scan issues"""
        return [
            {"name": "SQL Injection", "severity": "high", "confidence": "certain",
             "url": "https://app.example.com/api/users?id=1", "parameter": "id"},
            {"name": "Reflected XSS", "severity": "high", "confidence": "firm",
             "url": "https://app.example.com/search?q=test", "parameter": "q"},
            {"name": "Missing CSP Header", "severity": "low", "confidence": "certain",
             "url": "https://app.example.com/"},
        ]
    
    def generate_report(self, scan_id, format="html"):
        """Generate scan report"""
        return {"report_url": f"/reports/{scan_id}.{format}"}

client = BurpAPIClient("https://burp.example.com", "api-key")
scan = client.start_scan(["https://app.example.com"])
issues = client.get_issues(scan["scan_id"])

print(f"Scan Issues ({len(issues)}):")
for issue in issues:
    print(f"  [{issue['severity'].upper()}] {issue['name']} ??? {issue['url']}")
PYEOF

echo "CI/CD integration configured"

Monitoring ????????? Alerting

???????????????????????? security testing

#!/usr/bin/env python3
# security_dashboard.py ??? Security Testing Dashboard
import json
import logging
from typing import Dict, List

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("dashboard")

class SecurityDashboard:
    def __init__(self):
        pass
    
    def overview(self):
        return {
            "scan_summary_30d": {
                "total_scans": 45,
                "unique_targets": 12,
                "total_findings": 187,
                "by_severity": {
                    "critical": 3,
                    "high": 18,
                    "medium": 52,
                    "low": 89,
                    "info": 25,
                },
                "fixed": 142,
                "open": 45,
                "fix_rate": "75.9%",
            },
            "sla_compliance": {
                "critical": {"sla": "24h", "avg_fix_time": "8h", "compliance": "100%"},
                "high": {"sla": "7d", "avg_fix_time": "4.2d", "compliance": "89%"},
                "medium": {"sla": "30d", "avg_fix_time": "18d", "compliance": "95%"},
                "low": {"sla": "90d", "avg_fix_time": "45d", "compliance": "98%"},
            },
            "top_vulnerability_types": [
                {"type": "XSS (Reflected)", "count": 28, "trend": "decreasing"},
                {"type": "Missing Security Headers", "count": 25, "trend": "stable"},
                {"type": "SQL Injection", "count": 12, "trend": "decreasing"},
                {"type": "Insecure Cookies", "count": 18, "trend": "stable"},
                {"type": "Information Disclosure", "count": 15, "trend": "increasing"},
            ],
            "mttr_trend": {
                "3_months_ago": "12.5 days",
                "2_months_ago": "9.3 days",
                "1_month_ago": "7.1 days",
                "current": "5.8 days",
                "trend": "Improving 15% month-over-month",
            },
        }

dashboard = SecurityDashboard()
data = dashboard.overview()
summary = data["scan_summary_30d"]
print("Security Dashboard (30 days):")
print(f"  Scans: {summary['total_scans']}, Findings: {summary['total_findings']}")
print(f"  Fixed: {summary['fixed']}/{summary['total_findings']} ({summary['fix_rate']})")

print(f"\nBy Severity:")
for sev, count in summary["by_severity"].items():
    bar = "#" * count
    print(f"  {sev:>10}: {count:>3} {bar}")

print(f"\nSLA Compliance:")
for sev, info in data["sla_compliance"].items():
    print(f"  {sev}: {info['compliance']} (avg fix: {info['avg_fix_time']}, SLA: {info['sla']})")

print(f"\nMTTR Trend: {data['mttr_trend']['trend']}")

FAQ ??????????????????????????????????????????

Q: Burp Suite Pro ????????? OWASP ZAP ??????????????????????????????????

A: Burp Suite Pro ???????????? commercial tool ($449/year) scanner ??????????????????????????????????????????, Extensions ecosystem ????????????, Collaborator server ?????????????????? out-of-band detection, Professional support ??????????????? professional pentesters ?????????????????????????????????????????? budget OWASP ZAP ???????????? open source (?????????) community-maintained, API ???????????????????????? automation, HUD (Heads-Up Display) ???????????????????????? manual testing ??????????????? developers, teams ??????????????? budget ???????????????, CI/CD integration ??????????????? ????????? ZAP ?????? CI/CD (automated baseline scans) ????????? Burp Suite Pro ?????????????????? manual pentesting ????????? deep security assessment ?????????????????????????????????????????????

Q: Burp Suite Extensions ??????????????????????????????????????????????????????????

A: Extensions ???????????????????????? Logger++ (log ????????? request/response ????????????????????????), Autorize (??????????????? authorization bypass ???????????????????????????), Turbo Intruder (fast fuzzing ???????????? Python scripts), JSON Web Token Attacker (??????????????? JWT vulnerabilities), ActiveScan++ (??????????????? scan checks), Param Miner (?????? hidden parameters), Backslash Powered Scanner (advanced injection detection), Collaborator Everywhere (inject Collaborator payloads ??????????????????) ?????????????????? real-time processing Logger++ + custom Python extension ?????????????????????????????????

Q: DAST ?????? CI/CD pipeline ???????????????????

A: ????????????????????? scope ????????? configuration Full scan (all checks, deep crawl) ????????????????????? 1-4 ????????????????????? ?????????????????????????????????????????? PR builds Baseline scan (passive checks, limited crawl) ????????????????????? 5-15 ???????????? ????????????????????????????????? PR builds Targeted scan (??????????????? endpoints ??????????????????????????????) ????????????????????? 2-10 ???????????? ????????????????????????????????? ??????????????? PR builds ????????? baseline/targeted scan (????????????, block critical issues), Nightly builds ????????? full scan (????????????????????????, ???????????????????????? developer workflow), Weekly ????????? authenticated full scan + manual review

Q: Real-time processing ?????? false positives ???????????????????

A: Burp Suite Pro ?????? false positive rate ????????????????????????????????????????????? (?????????????????? 5-10%) ???????????????????????? ZAP 15-25% ????????? commercial tools ???????????? 10-20% ?????? false positives ???????????? Scope configuration ??????????????? target ?????????????????? exclude third-party domains, Confidence filtering ??????????????????????????? findings ????????? confidence "certain" ???????????? "firm", Custom rules ??????????????? rules ??????????????????????????? application context, Tuning ???????????? scanner settings ????????? application type, Triage process ?????? security engineer review ???????????? create tickets ?????????????????? CI/CD ???????????? threshold ???????????? fail ??????????????? "high severity + certain confidence" ?????? noise

📖 บทความที่เกี่ยวข้อง

Burp Suite Pro Automation Scriptอ่านบทความ → Burp Suite Pro Observability Stackอ่านบทความ → Burp Suite Pro API Integration เชื่อมต่อระบบอ่านบทความ → Burp Suite Pro Business Continuityอ่านบทความ →

📚 ดูบทความทั้งหมด →