// Industries.jsx — verticals with hover-reveal of representative attack chain const INDUSTRIES = [ { icon: 'globe', t: 'Financial Services', d: 'Banking, fintech, payments, and capital markets, where downtime and data exposure carry regulatory consequences.', focus: ['PCI DSS', 'DORA', 'SWIFT CSP'], attack: 'Payment-rail tampering · core-banking IDOR · SWIFT MT103 forgery', sev: 0.92, }, { icon: 'fingerprint', t: 'Healthcare', d: 'Hospitals, telemedicine, health-tech, and medical devices, where patient data and uptime are both at stake.', focus: ['HIPAA', 'NHS DSP', 'FDA pre-market'], attack: 'EHR mass-assignment · device firmware downgrade · PACS ePHI exfil', sev: 0.88, }, { icon: 'cloud', t: 'SaaS & AI Platforms', d: 'B2B SaaS, AI products, and developer tools, where one cross-tenant bug affects every customer.', focus: ['SOC 2', 'ISO 27001', 'OWASP LLM Top 10'], attack: 'GraphQL field-level BFLA · IAM trust loop · indirect prompt injection', sev: 0.85, }, { icon: 'server', t: 'Critical Infrastructure', d: 'Energy, utilities, transportation, and industrial control, where a breach has physical consequences.', focus: ['NIS2', 'IEC 62443', 'NERC CIP'], attack: 'Modbus replay · HMI authentication bypass · jumpbox lateral path', sev: 0.96, }, { icon: 'lock', t: 'Public Sector & Defense', d: 'Government, defense contractors, and cleared environments, where the adversary is often a nation-state.', focus: ['ISO 27001', 'CMMC L3', 'NIST 800-171'], attack: 'Federation forgery · GPO ACL abuse · CUI bucket exposure', sev: 0.90, }, { icon: 'network', t: 'Retail & E-commerce', d: 'Marketplaces, direct-to-consumer brands, fulfillment, and payments, where a checkout bug costs revenue.', focus: ['PCI DSS', 'GDPR', 'CCPA'], attack: 'Magecart skimmer · coupon-stack race · API rate-limit bypass', sev: 0.78, }, ]; const Industries = () => (

Where we work

Industries we serve

A pentest in fintech is a different job from a pentest in healthcare. The regulators, adversaries, and tolerance for downtime all change, so our testers specialize by industry.

{INDUSTRIES.map(ind => )}
); const IndustryCard = ({ ind }) => { const [h, setH] = React.useState(false); return (
setH(true)} onMouseLeave={() => setH(false)} style={{ background: h ? '#141516' : '#0f1011', border: `1px solid ${h ? '#34343a' : '#23252a'}`, borderRadius: 12, padding: 22, position: 'relative', overflow: 'hidden', transition: 'background 220ms, border-color 220ms', minHeight: 240, }} >
{/* Risk index meter */}
risk
0.9 ? '#e8543a' : ind.sev > 0.8 ? '#d98326' : '#5e6ad2', transition: 'width 600ms cubic-bezier(.2,.8,.2,1)', transform: h ? 'scaleX(1)' : 'scaleX(0.85)', transformOrigin: 'left', }} />

{ind.t}

{ind.d}

{ind.focus.map(f => ( {f} ))}
{/* Hover-reveal attack chain */}
Typical attack chain
{ind.attack}
); }; Object.assign(window, { Industries });