File size: 6,737 Bytes
5b7eaab
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
import React from 'react';
import { DEVICE_DATABASE } from '../utils/formatters';

const HelpModal = ({ isOpen, onClose }) => {
  if (!isOpen) return null;

  return (
    <div className="help-modal" onClick={onClose}>
      <div className="help-content" onClick={(e) => e.stopPropagation()}>
        <button className="help-close" onClick={onClose}>ร—</button>
        
        <h2 style={{ marginBottom: '24px', color: '#1e293b' }}>
          ๐ŸŽฏ Activity Simulation Detection Dashboard - Help Guide
        </h2>

        <div className="help-section">
          <h3>๐Ÿ“Š Machine Risk</h3>
          <p>
            Shows the overall risk score for the monitored machine. The score ranges from 0.0 (definitely human) 
            to 1.0 (definitely a jiggler). The color coding helps you quickly identify risk levels:
          </p>
          <ul style={{ marginLeft: '20px', color: '#475569' }}>
            <li><strong style={{ color: '#059669' }}>Green (0.0-0.3):</strong> Low risk - likely human activity</li>
            <li><strong style={{ color: '#d97706' }}>Orange (0.3-0.7):</strong> Medium risk - suspicious activity</li>
            <li><strong style={{ color: '#dc2626' }}>Red (0.7-1.0):</strong> High risk - likely jiggler activity</li>
          </ul>
        </div>

        <div className="help-section">
          <h3>๐Ÿ” Evidence</h3>
          <p>
            Raw data and calculations behind the risk score. Key components:
          </p>
          <ul style={{ marginLeft: '20px', color: '#475569' }}>
            <li><strong>onnxScore:</strong> ML model prediction (Level 2 AI analysis)</li>
            <li><strong>heuristicRisk:</strong> Rule-based analysis (Level 1 behavioral patterns)</li>
            <li><strong>features:</strong> Individual measurements like timing patterns, mouse movement smoothness</li>
            <li><strong>unknownDevice:</strong> Whether the hardware is recognized</li>
          </ul>
        </div>

        <div className="help-section">
          <h3>๐Ÿ›ก๏ธ Device Trust</h3>
          <p>
            List of hardware devices (mice, keyboards) observed on this machine. Known devices contribute 
            to lower risk scores, while unknown devices increase suspicion.
          </p>
          <p>
            <strong>Device ID Format:</strong> VID/PID (Vendor ID/Product ID) - unique identifiers for hardware.
          </p>
        </div>

        <div className="help-section">
          <h3>๐Ÿง  Heuristics</h3>
          <p>
            Level 1 behavioral analysis that measures human vs robotic patterns:
          </p>
          <ul style={{ marginLeft: '20px', color: '#475569' }}>
            <li><strong>Inter-event Entropy:</strong> How random are timing patterns? High = suspicious</li>
            <li><strong>Interval Regularity:</strong> How consistent are time gaps? Perfect consistency = robotic</li>
            <li><strong>Path Straightness:</strong> How straight are mouse movements? Too straight = jiggler</li>
          </ul>
        </div>

        <div className="help-section">
          <h3>๐Ÿค– ML Model (Level 2)</h3>
          <p>
            Advanced AI/ML contribution to risk assessment:
          </p>
          <ul style={{ marginLeft: '20px', color: '#475569' }}>
            <li><strong>ML Anomaly Score:</strong> What the machine learning models think (0.0-1.0)</li>
            <li><strong>Model Confidence:</strong> How sure the AI is about its prediction</li>
            <li><strong>Model Status:</strong> Which ML models are currently active</li>
          </ul>
          <p>
            <strong>Models Used:</strong> Isolation Forest and One-Class SVM for anomaly detection.
          </p>
        </div>

        <div className="help-section">
          <h3>๐Ÿ’ป Machines</h3>
          <p>
            List of computers currently being monitored:
          </p>
          <ul style={{ marginLeft: '20px', color: '#475569' }}>
            <li><strong>hb:</strong> Last heartbeat (when activity was last detected)</li>
            <li><strong>ft:</strong> First seen timestamp (when monitoring started)</li>
          </ul>
        </div>

        <div className="help-section">
          <h3>๐Ÿ“ˆ Risk History</h3>
          <p>
            Timeline showing how the risk score has changed over time. Helps identify patterns 
            and trends in activity behavior.
          </p>
        </div>

        <div className="help-section">
          <h3>๐ŸŽฎ Control Buttons</h3>
          <ul style={{ marginLeft: '20px', color: '#475569' }}>
            <li><strong>Seed Demo:</strong> Generates realistic test data with both human and jiggler patterns</li>
            <li><strong>Clear:</strong> Removes all demo data and resets the system</li>
            <li><strong>Evict Stale (120m):</strong> Removes data for machines inactive for 120+ minutes</li>
            <li><strong>Help:</strong> Opens this help guide</li>
          </ul>
        </div>

        <div className="device-reference">
          <h4>๐Ÿ”ง Device Reference Database</h4>
          <p style={{ marginBottom: '16px', color: '#475569' }}>
            Common device manufacturers and their VID codes:
          </p>
          
          <table className="device-table">
            <thead>
              <tr>
                <th>VID</th>
                <th>Manufacturer</th>
                <th>Popular Models</th>
              </tr>
            </thead>
            <tbody>
              {Object.entries(DEVICE_DATABASE).map(([vid, vendor]) => (
                <tr key={vid}>
                  <td><code>{vid}</code></td>
                  <td>{vendor.name}</td>
                  <td>
                    {Object.values(vendor.devices).slice(0, 3).join(', ')}
                    {Object.keys(vendor.devices).length > 3 && '...'}
                  </td>
                </tr>
              ))}
            </tbody>
          </table>
        </div>

        <div className="help-section">
          <h3>๐Ÿ”ฌ How It Works</h3>
          <p>
            The system combines three detection methods for maximum accuracy:
          </p>
          <ol style={{ marginLeft: '20px', color: '#475569' }}>
            <li><strong>Device Trust (30%):</strong> Recognized hardware = lower risk</li>
            <li><strong>Heuristics (30%):</strong> Behavioral pattern analysis</li>
            <li><strong>ML Models (40%):</strong> AI-powered anomaly detection</li>
          </ol>
          <p>
            The final risk score is a weighted blend of all three methods, providing 
            enterprise-grade detection of mouse jigglers and simulated activity.
          </p>
        </div>
      </div>
    </div>
  );
};

export default HelpModal;