Catalyst / admin/SAynapse-Horizon 14.8 GB / 57.8 GB 40.0 GB free
Help Sign in

admin / SAynapse-Horizon

public

Self Hosted Cyber Threat Intelligence Hub

Code Issues Pull requests Pipelines Packages Security Insights Wiki Settings
SAynapse-Horizon / Synapse-Horizon-v2 / src / data / sources.js 2132 B · main
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
// Canonical registry of out-of-the-box CTI ingestion sources.
// `key` is the stable id used across state; `defaultOn` seeds the initial toggle state.
export const SOURCES = [
  {
    key: 'urlhaus',
    name: 'URLhaus',
    provider: 'abuse.ch',
    kind: 'Malware URLs',
    defaultOn: true,
    accent: 'sky',
  },
  {
    key: 'threatfox',
    name: 'ThreatFox',
    provider: 'abuse.ch',
    kind: 'IOC Exchange',
    defaultOn: true,
    accent: 'rose',
  },
  {
    key: 'feodo',
    name: 'Feodo Tracker',
    provider: 'abuse.ch',
    kind: 'Botnet C2',
    defaultOn: true,
    accent: 'amber',
  },
  {
    key: 'phishtank',
    name: 'PhishTank',
    provider: 'Cisco Talos',
    kind: 'Phishing',
    defaultOn: true,
    accent: 'amber',
  },
  {
    key: 'cisakev',
    name: 'CISA KEV',
    provider: 'CISA',
    kind: 'Exploited Vulns',
    defaultOn: true,
    accent: 'rose',
  },
  {
    key: 'blocklistde',
    name: 'Blocklist.de',
    provider: 'Blocklist.de',
    kind: 'Attack Sources',
    defaultOn: true,
    accent: 'slate',
  },
  {
    key: 'otx',
    name: 'AlienVault OTX',
    provider: 'AT&T Cybersecurity',
    kind: 'Threat Pulses',
    defaultOn: true,
    accent: 'sky',
  },
  {
    key: 'rss',
    name: 'RSS Parser',
    provider: 'Vendor Advisories',
    kind: 'Advisories',
    defaultOn: true,
    accent: 'slate',
  },
]

export const SOURCE_MAP = Object.fromEntries(SOURCES.map((s) => [s.key, s]))

// Auto-refresh options control how often the *display layer* re-polls local state.
export const REFRESH_OPTIONS = [
  { key: 'manual', label: 'Manual Only', ms: 0 },
  { key: '30s', label: '30s', ms: 30_000 },
  { key: '1m', label: '1m', ms: 60_000 },
  { key: '5m', label: '5m', ms: 300_000 },
  { key: '15m', label: '15m', ms: 900_000 },
]

// Feed-pull cadence controls how often the *ingestion pipeline* hits external APIs.
export const CADENCE_OPTIONS = [
  { key: 'ondemand', label: 'On-Demand', ms: 0 },
  { key: '1h', label: 'Every 1 Hour', ms: 3_600_000 },
  { key: '6h', label: 'Every 6 Hours', ms: 21_600_000 },
  { key: '24h', label: 'Every 24 Hours', ms: 86_400_000 },
]