feat: fleet ops, KEV scan, tunnels, beacon fallback, persistence
Extend owned-fleet control with scheduled tasks, audit log, file browser, HTTPS beacon when WS drops, protocol tunnels, registry/autostart forge options, KEV exposure in full sys check with Telegram alerts, and UI/tests.
This commit is contained in:
@@ -115,6 +115,49 @@ export default function FullSysCheckPanel({
|
||||
<Row label="Reboot Pending" value={<BoolBadge v={report.security?.reboot_pending} />} />
|
||||
</Section>
|
||||
|
||||
{report.kev_exposure && (
|
||||
<Section title="CISA KEV Exposure (heuristic)">
|
||||
<Row
|
||||
label="Risk score"
|
||||
value={
|
||||
<span
|
||||
className={
|
||||
report.kev_exposure.risk_score >= 50
|
||||
? 'syscheck-bad'
|
||||
: report.kev_exposure.risk_score >= 25
|
||||
? 'syscheck-warn'
|
||||
: 'syscheck-ok'
|
||||
}
|
||||
>
|
||||
{report.kev_exposure.risk_score} / 100
|
||||
</span>
|
||||
}
|
||||
/>
|
||||
<Row
|
||||
label="Indicators"
|
||||
value={`${report.kev_exposure.exposed_count} exposed · ${report.kev_exposure.likely_count} likely · ${report.kev_exposure.critical_count} critical`}
|
||||
/>
|
||||
{report.kev_exposure.summary && (
|
||||
<p className="syscheck-kev-summary">{report.kev_exposure.summary}</p>
|
||||
)}
|
||||
<ul className="syscheck-kev-list">
|
||||
{report.kev_exposure.findings
|
||||
?.filter((f) => f.status === 'exposed' || f.status === 'likely')
|
||||
.map((f) => (
|
||||
<li key={f.cve} className={`syscheck-kev-item syscheck-kev-${f.status}`}>
|
||||
<span className="syscheck-kev-cve">{f.cve}</span>
|
||||
<span className="syscheck-kev-name">{f.name}</span>
|
||||
<span className="syscheck-kev-status">{f.status}</span>
|
||||
{f.detail && <span className="syscheck-kev-detail">{f.detail}</span>}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
<p className="syscheck-muted" style={{ marginTop: '0.5rem' }}>
|
||||
Read-only checks aligned with CISA known-exploited CVE families (Log4Shell, ProxyLogon, Zerologon, Citrix, Pulse, F5, Confluence, etc.). Verify patches on any "likely" or "exposed" row.
|
||||
</p>
|
||||
</Section>
|
||||
)}
|
||||
|
||||
<Section title="Hardware">
|
||||
<Row label="System" value={[report.hardware?.manufacturer, report.hardware?.model].filter(Boolean).join(' ')} />
|
||||
<Row label="Serial / BIOS" value={[report.hardware?.serial, report.hardware?.bios_version].filter(Boolean).join(' · ')} />
|
||||
|
||||
Reference in New Issue
Block a user