HTTP Security Assessment

Automated vulnerability detection and security analysis for web applications

Introduction

The HTTP Security Assessment system is the framework's automated vulnerability detection capability that performs deep security analysis of web applications and APIs. It captures complete HTTP transactions, analyzes security headers ?, validates SSL/TLS certificates ?, assesses cookie security, measures performance, and generates comprehensive diagnostic reports.

Key Capabilities

Architecture Components

The HTTP assessment system consists of 6 core components:

ComponentPurpose
FW_AuditManagerCentral audit orchestration hub (singleton)
FW_Audit_HttpReviewCore HTTP analysis engine (7 phases)
FW_HttpExecutorHTTP transaction capture
FW_HttpHTTP transaction data model (9 sections)
FW_HttpDiagnosticReporterHTML/Markdown diagnostic reports
FW_HttpReporterConfigurable summary reports (v2.2.0)
FW_HtmlReportGeneratorHTML reports with help links (v3.0.0)

Analysis Phases

  1. Network & Geolocation
  2. TLS & Certificate validation
  3. Security header analysis
  4. Cookie security assessment
  5. Redirect chain inspection
  6. Performance profiling
  7. Compliance checking

Report Configuration NEW v2.2.0

The reporting system offers 18 different report configurations through two independent controls.

Report Depth Levels

DepthSizeContentUse Cases
EXECUTIVE~1,800 chars, <1 pageCritical/High findings only, top 3 recommendationsBoard presentations, executive briefings
STANDARD DEFAULT~12,000 chars, ~3 pagesAll 11 sections, complete findings, mAi Advisor™Daily development, security audits
COMPREHENSIVE~13,000 chars, ~4 pagesAll STANDARD + raw request/response dataDebugging, forensic analysis

Audience Configuration

AudienceFocusReceives
DEVELOPERTechnical implementationCode examples, testing approaches
SECURITY_ENGINEERThreat analysisAttack vectors, compliance requirements
PROJECT_MANAGERPlanning & coordinationEffort estimates, sprint planning
EXECUTIVEBusiness impactRisk assessment, cost estimates
OPS_INFRASTRUCTUREDeployment & operationsServer configs, deployment procedures
QA_TESTERTesting strategiesTest cases, validation procedures

What Gets Audited

Security Headers (12 Types)

Critical: Strict-Transport-Security (HSTS), Content-Security-Policy (CSP), X-Frame-Options, X-Content-Type-Options

Important: X-XSS-Protection, Referrer-Policy, Permissions-Policy, Cross-Origin-* (CORS)

SSL/TLS Configuration

Cookie Security

Performance Metrics

MetricGoodWarningSlow
DNS Resolution<100ms100-500ms>500ms
Connection<200ms200-1000ms>1000ms
Time to First Byte<500ms500-2000ms>2000ms

Compliance Checking

Standards analyzed: OWASP Top 10 ?, PCI-DSS ?, GDPR ?, NIST TLS standards.

Running HTTP Audits

Using Test Suite (Recommended)

@Test
@Tag("audit")
@DisplayName("TC - Audit - HttpReview - www.saucedemo.com")
public void tc_audit_httpreview_www_saucedemo_com() {
    String url = "https://www.saucedemo.com/v1/";
    FW_CustomAssertJU.autoPass(
        FW_AuditManager.INSTANCE.getAuditHttpReview()
            .runAuditHttpReview(url, true)
    );
}

Using FW_AuditManager API

// Simple audit (default: STANDARD depth, DEVELOPER audience)
FW_AuditManager.INSTANCE.performHttpAudit("https://example.com");

// With verbose output
FW_Http http = FW_AuditManager.INSTANCE.performHttpAudit(
    "https://example.com", 
    true  // verbose console output
);

// Access results
System.out.println("Security Score: " + http.getSecurityScore());
System.out.println("Critical Findings: " + http.getCriticalFindingsCount());

Configuring Report Depth and Audience

FW_Http http = FW_AuditManager.INSTANCE.performHttpAudit(url, false);
FW_HttpReporter reporter = new FW_HttpReporter();

// Configure depth and audience
reporter.setReportDepth(FW_HttpReporter.ReportDepth.EXECUTIVE);
reporter.setTargetAudience(FW_AdvisorAudience.EXECUTIVE);

// Generate report
String report = reporter.generateReport(http);

// Save to file
Files.write(
    Paths.get("target/http-reports/executive-summary.md"),
    report.getBytes(StandardCharsets.UTF_8)
);

Common Report Configurations

PurposeDepthAudienceResult
Executive SummaryEXECUTIVEEXECUTIVE1-page business impact summary
Developer Deep DiveCOMPREHENSIVEDEVELOPER4-page technical analysis with raw data
Security AuditSTANDARDSECURITY_ENGINEER3-page security-focused analysis
Operations DeploymentSTANDARDOPS_INFRASTRUCTURE3-page ops guide with server configs
QA Test PlanningSTANDARDQA_TESTER3-page testing strategy with test cases
Project PlanningSTANDARDPROJECT_MANAGER3-page planning guide with effort estimates

Understanding Reports

Color-Coded Findings

ℹ️ Understanding "0 Recommendations"

This is correct behavior, not an error! mAi Advisor™ templates target specific audiences. Some findings primarily affect developers (implementation), so Security/Executive audiences may not get implementation-level recommendations. This ensures relevant guidance only.

Configuration Options

Configure audit behavior in testConfig.properties:

# HTTP Audit Configuration
http.followRedirects=true
http.maxRedirects=10
http.connectionTimeout=30000
http.readTimeout=60000
http.userAgent=Mozilla/5.0 (MissionWares Audit Bot)

# Report Generation
http.generateHtmlReport=true
http.generateMarkdownReport=true
http.reportOutputPath=target/http-reports/

# Report Configuration (NEW in v2.2.0)
http.report.defaultDepth=STANDARD
http.report.defaultAudience=DEVELOPER

# mAi Advisor™ Integration
advisorEnabled=true
advisorDefaultAudience=DEVELOPER
advisorIncludeCodeExamples=true

Troubleshooting

⚠️ Connection timeout

Cause: Target server unreachable. Solution: Increase http.connectionTimeout

⚠️ SSL handshake failed

Cause: Certificate validation failure. Solution: Check certificate chain, update trust store

⚠️ No findings generated

Cause: No security issues detected. Solution: This is good! The site is secure.

⚠️ 0 recommendations

Cause: Audience filtering working correctly. Solution: Expected behavior for coordinator audiences

Debugging Techniques

// Enable verbose output
FW_Http http = FW_AuditManager.INSTANCE.performHttpAudit(url, true);

// Check FW_Http Object
System.out.println("Valid: " + http.isValid());
System.out.println("Complete: " + http.isResponseComplete());
System.out.println("Has Error: " + http.hasError());

// Verify report configuration
System.out.println("Depth: " + reporter.getReportDepth());
System.out.println("Audience: " + reporter.getTargetAudience());

Best Practices

Choose Depth Based on Purpose

Choose Audience Based on Reader

DocumentDescription
mAi Advisor™ GuideIntelligent recommendations
Network DiagnosticsNetwork testing
Test DevelopmentWriting tests
Architecture DiagramLayer 6 details
HTTP Audit PipelineVisual flow

HTML Reports with Help Links NEW v3.0.0

The framework now supports dual-mode report generation - producing both Markdown and HTML reports simultaneously. HTML reports feature a modern dark theme, interactive help links powered by Perplexity.ai ?, and topic-based organization.

Enabling HTML Reports

# Report output formats (both can be true for dual output)
reportOutputMarkdown=true    # Default: true (backward compatible)
reportOutputHtml=true        # Default: false (opt-in)

# Help links configuration
reportHelpLinksEnabled=true  # Enable ? icons with Perplexity links
reportHelpLinksProvider=perplexity  # AI provider for help queries

HTML Report Features

Topic-Based Architecture

TopicWeightDescription
📜 SSL/TLS Certificates12.5%Certificate validity, expiration, signature
🔒 Security Headers12.5%HSTS, CSP, X-Frame-Options, etc.
⚡ Performance12.5%Response times, compression, caching
🌐 DNS & Network12.5%DNS resolution, geolocation
📄 Content Analysis12.5%Content type, body analysis
🔀 Redirects12.5%Redirect chain inspection
🍪 Cookies12.5%Cookie security attributes
🔗 CORS Configuration12.5%Cross-origin policy analysis

Grading Algorithm

The overall grade is calculated using a weighted average of topic grades:

Code Example

// Configure reporter for dual output
FW_HttpReporter reporter = new FW_HttpReporter();
reporter.setReportDepth(ReportDepth.COMPREHENSIVE);
reporter.setTargetAudience(FW_AdvisorAudience.SECURITY_ENGINEER);

// Generate both MD and HTML reports
String mdReport = reporter.generateReport(httpTransaction);
String htmlReport = reporter.generateHtmlReport(httpTransaction);

What's New in v3.0.0

What's New in v2.2.0