indicator
library
Properties
logger
↔ Logger
getter/setter pair
Functions
aggregateScore ()
→ Future
Calculate aggregate risk score refer existed all metrics
checkExistNodes ()
→ Future
check indicator nodes whether exist or not
geiger score node
which is created by indicator
createRecommendationNode (dynamic path , dynamic nodeName )
→ Future
create geiger recommendation node
createScoreMSENode (dynamic path , dynamic nodeName )
→ Future
create geiger MSE score node (company total risk score, all employees)
createScoreNode (dynamic path , dynamic nodeName , dynamic type )
→ Future
create geiger score node (user, device, aggregate)
crtAggregateScore ()
→ Future
Calculate total, MSE score refer all metrics (external plugin, pairing, recommendations)
crtGRecommendation (dynamic type )
→ Future
generate metric of recommendations
crtThreatScore (dynamic type )
→ Future
Calculate risk score based on indicator algorithm
the metrics from external plugin and recommendations
crtTotalThreatScore (dynamic type )
→ Future
Calculate total risk score
forUpdateNormalization (dynamic metricNode )
→ Future
Normalization for metrics
min, max, value
generateImplementedReco (dynamic recos , dynamic type )
→ Future
To check recommendations whether exist or not
For implemented recommendation metric
generateThreats ()
→ Future
Parsing ':Global:threats' Node
Normal threats -> GEIGER threats (12)
GEIGER threats (12) defined by CERT
getCompanyProfile ()
→ Future
Get company type from Enterprise Node (associatedProfiles)
risk metric is different base on company tye
getCurrentScore ()
→ Future
Get current device scores
GEIGER Score => Risk Score
number of metrics => How many metric data used on calculation
threats score => risk score each threat (e.g, Phishing, Malware etc.)
getCurrentUUID ()
→ Future
Get Current Device, User UUID
getEmployeesSharedScore ()
→ Future
Prepare risk score of shared employee
for calculate MSE score (company score)
getExistMetrics (dynamic type )
→ Future
Get exist metrics from Local Data Storage
key => global threat UUID unique (12)
value => metric Map List
metric Map List => {metric, normalization},....
getExistScoreNodes (dynamic path , dynamic nodeName , dynamic type )
→ Future
Check exist geiger score nodes
if it does not exist to create node
getImplementedRecommendations (dynamic uuid )
→ Future
Prepare metric between threatWeight and recommendation
parameter UUID is implemented recommendations uuid on GEIGER toolbox (UI) by user
getPluginReco (Node plugin )
→ Future
Update Map<String, List
getProfiles ()
→ Future
Get global profile data
it is static from cloud and cyber security institute
define threat value base on company type (based, enabler, dependent)
** threat uuid in global profile is match to global threat uuid **
** that mean uuid of global threat is static, fixed **
getRecommendation ()
→ Future
Making Map<String, List
getScoreAll ()
→ Future
Preparation Aggregate Score (Total Score) from User, Device Nodes
To check current User, Device Node and Pairing Node (shared my another device score)
getSensorDataPath ()
→ Future
To check exist metric data - when application run multiple time
isExistParentNode (dynamic path )
→ Future
To check preparation parent nodes
if it does not exist can not proceed indicator
pnMetrics (Map <String , List > metricMap , dynamic threatUUID )
→ Future
metrics calculation (positive, negative)
based on algorithm
recoMetrics (dynamic metrics , dynamic threatUUID )
→ Future
metrics calculation (threat effect about recommendations)
based on algorithm
registerListener (dynamic l , dynamic path , dynamic type )
→ Future
Register Listener based on path, Value using Local Storage Listener
riskMetrics (dynamic threatUUID )
→ Future
Get threat metric about company type
associatedProfiles under ':Enterprise' Node
company type => based, enabler, dependent
runIndicator (dynamic indicatorID , dynamic loggerLevel )
→ Future
setSensorDataList (dynamic type , dynamic tempIDList )
→ Future
To make a list of metric data list
setValueListener ()
→ Future
Set the trigger to get data for calculation using Local Storage Listener
storeV (dynamic profileName , dynamic metrics , dynamic normalThreatUUIDList )
→ Future
Makes profile metric each company type
{threatUUID (1...*) : metric (1)}
updateData (Node? metricNode )
→ Future
Update risk score as latest
Refer latest metrics from external plugins
updateMetrics (dynamic type , dynamic metricNode )
→ Future
Parsing metrics (positive, negative) from external plugin using Storage Listener
key => global threat UUID unique (12)
value => metric Map List
metric Map List => {metric, normalization},....
updateRecommendationNode (dynamic path , dynamic nodeName , dynamic type )
→ Future
update geiger recommendation node
updateScoreMSENode ()
→ Future
update geiger MSE score node
it required employee pairing and main user (CEO)
updateScoreNode (dynamic path , dynamic nodeName , dynamic type )
→ Future
update geiger score node (user, device, aggregate)
To get metrics (external plugin, recommendations)