diff --git a/frontend/src/pages/DashboardPage.tsx b/frontend/src/pages/DashboardPage.tsx index 054eafd..89994d4 100644 --- a/frontend/src/pages/DashboardPage.tsx +++ b/frontend/src/pages/DashboardPage.tsx @@ -69,16 +69,9 @@ export const DashboardPage: React.FC = () => { const spark3 = [4, 3, 2, 4, 5, 3, 2, 1, 2, 1, 0, 1, 2, 1, 0]; const spark4 = [60, 58, 62, 61, 65, 67, 66, 70, 69, 72, 74, 73, 76, 78, 81]; - const openCveCount = assets.reduce((s, _a) => s + 0, 0); // TODO: compute from vulns endpoint later - - // Static fake feed (replace with real events endpoint when it exists) - const feed = [ - { id: 'F-2041', at: '15:42', sev: 'critical' as Level, source: 'Honeynet', text: 'Сработала сигнатура БДУ.006 на портале', asset: 'A-003' }, - { id: 'F-2040', at: '15:31', sev: 'high' as Level, source: 'MaxPatrol', text: 'Аномальный брутфорс учётных данных AD-01 (~140 попыток/мин)', asset: 'A-006' }, - { id: 'F-2039', at: '15:18', sev: 'medium' as Level, source: 'NetFlow', text: 'Повышенный исходящий трафик DNS-канала', asset: 'A-010' }, - { id: 'F-2038', at: '14:55', sev: 'high' as Level, source: 'CVE-фид', text: 'Опубликован CVE-2026-0188 (CVSS 9.6)', asset: 'A-001' }, - { id: 'F-2037', at: '14:32', sev: 'low' as Level, source: 'Сканер', text: 'Завершено сканирование сегмента DMZ — 0 новых уязвимостей', asset: null }, - ]; + // Count of assets that have at least one risk point + const assetsAtRisk = new Set(points.map(p => p.asset_id)).size; + const kiiCount = assets.filter(a => a.kii_category && a.kii_category !== 'none').length; return ( { } /> - } /> - f.sev === 'critical' || f.sev === 'high').length} tone="low" mono - sub="MTTR 47 мин · в пределах SLA" + } /> - {/* Main grid */} -
+ {/* Main section */} +
{/* Risk breakdown */} navigate('/risk/map')}>Открыть матрицу →}> @@ -197,30 +190,6 @@ export const DashboardPage: React.FC = () => {
- {/* Threat feed */} - }>LIVE} - pad={0}> -
- {feed.map((f, i) => ( -
-
-
-
- {f.at} - {f.source} - {f.asset && {f.asset}} -
-
{f.text}
-
-
- ))} -
-
{/* PTSZI formula callout */} @@ -229,20 +198,20 @@ export const DashboardPage: React.FC = () => {
-
Qth · потенциал угрозы
-
0 … 1 — из БДУ ФСТЭК
+
Qthreat
+
степень реализации угрозы, 0…1
-
q · вес уязвимости
-
0 … 1 — CVSS/БДУ
+
qthreat
+
степень опасности угрозы, 0…1
-
Qre · реакция СЗИ
-
0 … 1 — доля закрытых VL
+
Qreaction
+
степень предотвращения угрозы, 0…1
-
Z · контур
-
0.5 … 1 — prod/isolated
+
Z
+
критичность для контура, 0.5 или 1