AiSecOps Architecture & Workflow
Security events from existing tools (SIEM, EDR, cloud logs) are streamed into the AiSecOps engine, where machine learning models score and cluster related alerts, eliminating duplicate and low-fidelity noise. High-priority incidents are automatically enriched with context and threat intelligence, then routed to analysts with AI-generated investigation summaries, or resolved automatically via pre-approved SOAR playbooks.
<style>
.aso{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:16px 12px;padding:4px 2px 10px}
.aso_src{display:flex;flex-direction:column;gap:16px;justify-content:center}
.aso_src span{display:flex;align-items:center;gap:10px;color:#fff;font-size:13px;white-space:nowrap}
.aso_src .sd_ico{width:28px;height:28px;margin:0}
.aso_col{display:flex;flex-direction:column;gap:14px;justify-content:center}
.aso_b{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;width:164px;padding:20px 14px;border:1px solid rgba(255,255,255,.16);border-radius:14px;text-align:center;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01))}
.aso_b.is-core{border-color:rgba(230,46,45,.6)}
.aso_b.is-sm{width:178px;padding:14px}
.aso_b h4{margin:0;font-size:14px;line-height:1.25;color:#fff;font-weight:600}
.aso_b p{margin:0;font-size:12px;line-height:1.45;color:rgba(255,255,255,.6)}
.aso_b .sd_ico{margin:0;width:46px;height:46px}
.aso_row{display:flex;align-items:center;gap:9px;align-self:stretch;text-align:left}
.aso_row .sd_ico{width:30px;height:30px;flex:none}
.aso_ar{align-self:center;flex:none;color:#E62E2D}
.aso_btn{width:100%;padding:9px;border-radius:8px;text-align:center;font-size:13px;color:#fff;border:1px solid rgba(230,46,45,.6)}
.aso_btn.is-fill{background:#E62E2D;border-color:#E62E2D}
.aso{flex-wrap:nowrap;gap:14px 6px}.aso_src{flex:0 0 auto}.aso_src span{font-size:12px}.aso_b{width:auto;flex:1 1 0;min-width:0;padding:14px 6px;gap:8px}.aso_b.is-sm{width:auto;padding:12px 7px}.aso_col{flex:0 0 122px}.aso_col>.aso_b{width:100%;box-sizing:border-box}.aso_b h4{font-size:11.5px;line-height:1.2}.aso_b p{font-size:10.5px;line-height:1.35;overflow-wrap:anywhere}.aso_b .sd_ico{width:36px;height:36px}.aso_row{flex-direction:column;align-items:flex-start;gap:4px}.aso_row>div{min-width:0}.aso_row .sd_ico{width:22px;height:22px}.aso_btn{font-size:11px;padding:7px 4px}@media(max-width:1150px){.aso{flex-wrap:wrap;gap:16px 12px}.aso_src span{font-size:13px}.aso_b{flex:0 0 auto;width:164px;padding:20px 14px;gap:11px}.aso_b.is-sm{width:178px;padding:14px}.aso_col{flex:0 0 auto}.aso_b h4{font-size:14px}.aso_b p{font-size:12px}.aso_b .sd_ico{width:46px;height:46px}.aso_row{flex-direction:row;align-items:center;gap:9px}.aso_row .sd_ico{width:30px;height:30px}}
/* --- connectors, matching the Figma frame -----------------------------
Figma draws ONE continuous rule running through all six numbered
circles, not a dash floating in each gap. The circles carry their own
solid background, so the rule passes behind them and reads as touching
each one. An earlier pass here replaced that rule with five short
segments, which is what looked disconnected.
The flow connectors below were 16px sitting inside a 6px flex gap, so
they floated between the boxes instead of meeting them. They are now
34px with -6px margins, which closes the gap on both sides so each line
physically touches the box at either end.
------------------------------------------------------------------- */
.sd .sd_rail:before{display:block !important;height:2px;background:#E62E2D}
.sd .sd_rail:after{display:block !important}
.sd .sd_rn:not(:last-child):before,.sd .sd_rn:not(:last-child):after{display:none !important}
.aso_ar{width:34px !important;height:14px;margin-left:-6px;margin-right:-6px}
.aso_ar .aso_dot{animation:aso-run 1.9s linear infinite}
@keyframes aso-run{from{stroke-dashoffset:0}to{stroke-dashoffset:-24}}
@media(prefers-reduced-motion:reduce){.aso_ar .aso_dot{animation:none;opacity:0}}
/* responsive: the row turns into a column, so the connectors rotate and
their negative margins have to swap axis or the boxes overlap */
@media(max-width:767px){
.aso{flex-direction:column;align-items:center}
.aso_ar{transform:rotate(90deg);margin:-6px 0 !important;width:34px !important}
}
</style>
<div class="sd" style="--n:6;padding-bottom:40px">
<div class="sd_rail">
<span class="sd_rn"><b>1</b><i>Data Ingestion</i></span>
<span class="sd_rn"><b>2</b><i>AI Correlation</i></span>
<span class="sd_rn"><b>3</b><i>Incident Enrichment</i></span>
<span class="sd_rn"><b>4</b><i>Playbook Orchestration</i></span>
<span class="sd_rn"><b>5</b><i>Analyst Review Interface</i></span>
<span class="sd_rn"><b>6</b><i>Continuous Learning</i></span>
</div>
<div class="aso">
<div class="aso_src">
<span><svg class="sd_ico" viewBox="0 0 24 24"><rect x="2" y="4" width="20" height="15" rx="2"/><path d="M2 8h20"/><path class="r" d="M10 12l-2 2 2 2M14 12l2 2-2 2"/></svg>SIEM</span>
<span><svg class="sd_ico" viewBox="0 0 24 24"><rect x="2" y="4" width="20" height="13" rx="2"/><path d="M9 21h6M12 17v4"/><path class="r" d="M7 12l3-3 3 3 4-5"/></svg>EDR</span>
<span><svg class="sd_ico" viewBox="0 0 24 24"><path d="M7 18a4.2 4.2 0 0 1-.6-8.4A5.5 5.5 0 0 1 17 8.6 4.7 4.7 0 0 1 16.6 18z"/></svg>CLOUD LOGS</span>
<span><svg class="sd_ico" viewBox="0 0 24 24"><rect x="3" y="4" width="18" height="5.5" rx="1"/><rect x="3" y="14.5" width="18" height="5.5" rx="1"/><circle class="r" cx="7" cy="6.7" r="0.9"/><circle class="r" cx="7" cy="17.2" r="0.9"/></svg>EVENTS</span>
</div>
<svg class="aso_ar" width="20" height="12" viewBox="0 0 20 12" fill="none"><path d="M0 6h20M17 3l3 3-3 3" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/><path class="aso_dot" d="M0 6h20" stroke="#ff5f52" stroke-width="3" stroke-linecap="round" stroke-dasharray="0.01 24"/></svg>
<div class="aso_b" data-fl="1"><svg class="sd_ico" viewBox="0 0 24 24"><path d="M12 3l8.5 4-8.5 4-8.5-4z"/><path d="M3.5 12L12 16l8.5-4"/><path d="M3.5 17L12 21l8.5-4"/></svg><p>Normalize all telemetry events</p></div>
<svg class="aso_ar" width="20" height="12" viewBox="0 0 20 12" fill="none"><path d="M0 6h20M17 3l3 3-3 3" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/><path class="aso_dot" d="M0 6h20" stroke="#ff5f52" stroke-width="3" stroke-linecap="round" stroke-dasharray="0.01 24"/></svg>
<div class="aso_b" data-fl="2"><svg class="sd_ico" viewBox="0 0 24 24"><path d="M3 4h18l-7 8v7l-4 2v-9z"/><circle class="r" cx="7" cy="2" r="0.8"/><circle class="r" cx="12" cy="1.6" r="0.8"/><circle class="r" cx="17" cy="2" r="0.8"/></svg><p>Correlate and score to identify true incidents</p></div>
<svg class="aso_ar" width="20" height="12" viewBox="0 0 20 12" fill="none"><path d="M0 6h20M17 3l3 3-3 3" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/><path class="aso_dot" d="M0 6h20" stroke="#ff5f52" stroke-width="3" stroke-linecap="round" stroke-dasharray="0.01 24"/></svg>
<svg class="aso_node" viewBox="0 0 24 26" width="30" height="32" fill="none" aria-hidden="true"><path d="M12 1.2 22 4.6v8.2c0 6.2-4.2 10.5-10 12-5.8-1.5-10-5.8-10-12V4.6z" stroke="#fff" stroke-width="1.4"/><path d="M12 4.1 19.2 6.5v6.1c0 4.4-3 7.6-7.2 8.8-4.2-1.2-7.2-4.4-7.2-8.8V6.5z" fill="#E62E2D"/><path d="M8.6 12.6 11 15l4.4-4.8" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>
<svg class="aso_ar" width="20" height="12" viewBox="0 0 20 12" fill="none"><path d="M0 6h20M17 3l3 3-3 3" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/><path class="aso_dot" d="M0 6h20" stroke="#ff5f52" stroke-width="3" stroke-linecap="round" stroke-dasharray="0.01 24"/></svg>
<div class="aso_b" data-fl="3">
<div class="aso_row"><svg class="sd_ico" viewBox="0 0 24 24"><path d="M6 3h8l4 4v14H6z"/><path d="M14 3v4h4"/><path class="r" d="M9 12h6M9 15h6"/></svg><div><h4>Context Data</h4><p>e.g. User/Asset</p></div></div>
<div class="aso_row"><svg class="sd_ico" viewBox="0 0 24 24"><path d="M6 3h8l4 4v14H6z"/><path d="M14 3v4h4"/><path class="r" d="M9 12h6M9 15h6"/></svg><div><h4>Threat Intel</h4><p>e.g. User/Asset</p></div></div>
</div>
<svg class="aso_ar" width="20" height="12" viewBox="0 0 20 12" fill="none"><path d="M0 6h20M17 3l3 3-3 3" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/><path class="aso_dot" d="M0 6h20" stroke="#ff5f52" stroke-width="3" stroke-linecap="round" stroke-dasharray="0.01 24"/></svg>
<div class="aso_col">
<div class="aso_b is-sm" data-fl="4"><div class="aso_row"><svg class="sd_ico" viewBox="0 0 24 24"><path d="M6 3h8l4 4v14H6z"/><path d="M14 3v4h4"/><path class="r" d="M9 14l2 2 4-4.5"/></svg><div><h4>Auto Resolution</h4><p>Pre-approved actions</p></div></div></div>
<svg class="aso_tree" viewBox="0 0 44 34" width="52" height="40" fill="none" aria-hidden="true"><rect x="17" y="1" width="10" height="10" rx="1.5" stroke="#fff" stroke-width="1.4"/><rect x="1" y="23" width="10" height="10" rx="1.5" stroke="#fff" stroke-width="1.4"/><rect x="17" y="23" width="10" height="10" rx="1.5" stroke="#fff" stroke-width="1.4"/><rect x="33" y="23" width="10" height="10" rx="1.5" stroke="#fff" stroke-width="1.4"/><path d="M22 11v6M6 23v-6h32v6M22 17v6" stroke="#fff" stroke-width="1.4" stroke-linecap="round"/></svg>
<div class="aso_b is-sm" data-fl="5"><div class="aso_row"><svg class="sd_ico" viewBox="0 0 24 24"><path d="M6 3h8l4 4v14H6z"/><path d="M14 3v4h4"/><path class="r" d="M12 11v3.5"/><circle class="r" cx="12" cy="17" r="0.9"/></svg><div><h4>Escalation to Analyst</h4><p>Human review required</p></div></div></div>
</div>
<svg class="aso_ar" width="20" height="12" viewBox="0 0 20 12" fill="none"><path d="M0 6h20M17 3l3 3-3 3" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/><path class="aso_dot" d="M0 6h20" stroke="#ff5f52" stroke-width="3" stroke-linecap="round" stroke-dasharray="0.01 24"/></svg>
<div class="aso_b is-core" data-fl="6"><svg class="sd_ico" viewBox="0 0 24 24"><rect x="4" y="4" width="16" height="17" rx="2"/><rect x="9" y="2" width="6" height="3.6" rx="1"/><path class="r" d="M7.5 10l1.4 1.4 2.3-2.4M7.5 14l1.4 1.4 2.3-2.4"/><path d="M13.5 10.2h3.5M13.5 14.2h3.5"/></svg><p>Enriched investigation summary</p><div class="aso_btn is-fill">Resolve</div><div class="aso_btn">Escalate</div></div>
<svg class="aso_ar" width="20" height="12" viewBox="0 0 20 12" fill="none"><path d="M0 6h20M17 3l3 3-3 3" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/><path class="aso_dot" d="M0 6h20" stroke="#ff5f52" stroke-width="3" stroke-linecap="round" stroke-dasharray="0.01 24"/></svg>
<div class="aso_b" data-fl="7"><svg class="sd_ico" viewBox="0 0 24 24"><circle cx="9" cy="8" r="3.4"/><path d="M2 19c0-3.8 3.1-5.9 7-5.9s7 2.1 7 5.9"/><circle class="r" cx="17.5" cy="9" r="2.5"/><path class="r" d="M17.5 14c2.7 0 4.5 1.7 4.5 4.2"/></svg><h4>Analyst Feedback</h4></div>
<svg class="aso_ar" width="20" height="12" viewBox="0 0 20 12" fill="none"><path d="M0 6h20M17 3l3 3-3 3" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/><path class="aso_dot" d="M0 6h20" stroke="#ff5f52" stroke-width="3" stroke-linecap="round" stroke-dasharray="0.01 24"/></svg>
<div class="aso_b" data-fl="8"><svg class="sd_ico" viewBox="0 0 24 24"><path d="M11.5 4a4 4 0 0 0-4 4 3.4 3.4 0 0 0-1.4 6.3A3.6 3.6 0 0 0 11.5 20z"/><path class="r" d="M12.5 4a4 4 0 0 1 4 4 3.4 3.4 0 0 1 1.4 6.3A3.6 3.6 0 0 1 12.5 20z"/></svg><h4>Model Improvement</h4></div>
<svg class="aso_ar" width="20" height="12" viewBox="0 0 20 12" fill="none"><path d="M0 6h20M17 3l3 3-3 3" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/><path class="aso_dot" d="M0 6h20" stroke="#ff5f52" stroke-width="3" stroke-linecap="round" stroke-dasharray="0.01 24"/></svg>
<div class="aso_b" data-fl="9"><svg class="sd_ico" viewBox="0 0 24 24"><circle cx="12" cy="12" r="8.5"/><circle cx="12" cy="12" r="4.5"/><circle class="r" cx="12" cy="12" r="1.3"/><path class="r" d="M12 12l7-7M15.5 5h3.5v3.5"/></svg><h4>Optimized Detection</h4></div>
</div>
</div>