Skip to main content

๐Ÿงช Security Self-Test Auditor (SelftestEngine)

SelftestEngine is an automated security compliance and performance benchmark auditor built directly into @ferrox-node/core. It executes OWASP Web Security Testing Guide (WSTG) compliance checks against application routes before production deployment.


๐ŸŒŸ Key Featuresโ€‹

  • OWASP WSTG Compliance Audit: Evaluates HTTP response security headers, CORS origin configurations, cookie flags (HttpOnly, Secure, SameSite), and payload size limits.
  • Automated Route Benchmarking: Measures route latency metrics (p50, p95, p99) under synthetic load to catch performance regressions.
  • Security Report Generation: Produces JSON and HTML compliance reports detailing security violations and remediation advice.
  • CI/CD Build Gate: Integrates into deployment pipelines to block deployments if security compliance falls below required thresholds.

๐Ÿ”ฌ Internal Architecture & Execution Mechanicsโ€‹

flowchart TD
Trigger["SelftestEngine.runAudit()"]
HeaderCheck["Check OWASP Security Headers (HSTS, CSP, DENY)"]
CorsCheck["Verify Wildcard CORS & Credential Policies"]
SyntheticLoad["Synthetic Latency Benchmark (p50, p95, p99)"]
ScoreCalc["Calculate Compliance Score (0 - 100%)"]
ReportOutput["Generate Audit JSON Report"]

Trigger --> HeaderCheck
HeaderCheck --> CorsCheck
CorsCheck --> SyntheticLoad
SyntheticLoad --> ScoreCalc
ScoreCalc --> ReportOutput

๐Ÿ“Š Architectural Comparison: SelftestEngine vs External Scannersโ€‹

Feature / Dimension๐Ÿงช SelftestEngine๐ŸŒ External Vulnerability Scanner
Execution ContextIn-Memory / In-Process Pre-Flight AuditExternal Network Probe
Pipeline LatencySub-Second Execution (< 500ms)Minutes / Hours Scan Time
Framework AwarenessDirect Access to Ferrox DI RoutesBlack-Box Crawler Only

๐Ÿš€ Practical Usage & Production Code Examplesโ€‹

import { SelftestEngine } from '@ferrox-node/core';

async function executePreDeploymentAudit() {
const auditor = new SelftestEngine();

// Run security audit against running local server instance
const report = await auditor.auditAppRoutes('http://localhost:8080', {
checkHeaders: true,
checkCors: true,
benchmarkLatency: true,
});

console.log(`๐Ÿ”’ Security Compliance Score: ${report.complianceScore}%`);
console.log(`Latency p95: ${report.latencyMetrics.p95}ms`);

if (report.complianceScore < 100) {
console.error('โŒ Security Violations Found:');
report.violations.forEach((v) => {
console.error(` - [${v.severity}] ${v.ruleId}: ${v.description}`);
});
process.exit(1); // Block deployment pipeline
}

console.log('โœ… All security compliance checks passed!');
}

executePreDeploymentAudit().catch(console.error);

โš ๏ธ Common Pitfalls & Anti-Patternsโ€‹

[!CAUTION] Running Audits on Staging Database with Destructive Routes: Ensure synthetic benchmarking is configured to bypass state-mutating endpoints (DELETE /api/v1/users) or targets non-production test databases.


๐Ÿ’ก Best Practicesโ€‹

[!TIP] CI/CD Pipeline Gatekeeper: Run SelftestEngine inside your GitHub Actions or GitLab CI pipeline right after integration tests pass to guarantee 100% OWASP compliance before merging to main.