hover info + clickk to reload + websocket reload + readme
This commit is contained in:
@ -1,8 +1,7 @@
|
||||
var alerts = [];
|
||||
var alertDates = []
|
||||
|
||||
const {
|
||||
v4: uuidv4
|
||||
} = require('uuid');
|
||||
const {v4: uuidv4} = require('uuid');
|
||||
function addAlert(first_seen, srv_city_name, ip_version, action, pool_id, srv_continent_name, score, entity_val, vlan_id, cli2srv_bytes, cli_country_name, entity_id, srv_asn, l7_proto, is_cli_attacker, srv_name, srv_ip, proto, json, srv_country_name, community_id, alert_id, is_srv_attacker, srv_blacklisted, alerts_map, srv_os, cli_localhost, cli_asn, srv2cli_packets, cli2srv_packets, tstamp, cli_name, cli_continent_name, srv2cli_bytes, l7_cat, ifid, observation_point_id, srv_localhost, cli_port, cli_blacklisted, dns_last_query, is_flow_alert, srv_port, l7_master_proto, is_cli_victim, cli_ip, cli_city_name, cli_os, is_srv_victim){
|
||||
// function addAlert(srv_name, srv_ip, srv_port, json, cli_ip, cli_port){
|
||||
var data = {
|
||||
@ -57,11 +56,44 @@ function addAlert(first_seen, srv_city_name, ip_version, action, pool_id, srv_co
|
||||
cli_city_name:cli_city_name,
|
||||
cli_os:cli_os,
|
||||
is_srv_victim:is_srv_victim
|
||||
}
|
||||
if(!alerts.some(x => x.cli_ip === data.cli_ip && x.srv_ip === data.srv_ip)) {
|
||||
alerts.push(data);
|
||||
return data.uid
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(!alerts.some(x => x.cli_ip === data.cli_ip && x.srv_ip === data.srv_ip)) {
|
||||
const date = new Date();
|
||||
const nowminutes = date.getMinutes();
|
||||
if(alertDates.some(x => x.minute === nowminutes)){
|
||||
const dataIndex = alertDates.findIndex(ad => ad.minute === nowminutes);
|
||||
alertDates[dataIndex].uids.push(data.uid);
|
||||
}else{
|
||||
var alertMinute = {
|
||||
uids: [data.uid],
|
||||
date: date,
|
||||
minute: nowminutes
|
||||
}
|
||||
alertDates.push(alertMinute)
|
||||
}
|
||||
alerts.push(data);
|
||||
return data.uid
|
||||
}
|
||||
}
|
||||
|
||||
function delAlerts(uids){
|
||||
uids.forEach(uid => delAlert(uid))
|
||||
}
|
||||
|
||||
function delAlert(uid){
|
||||
console.log(uid)
|
||||
alerts = alerts.filter(a => a.uid !== uid)
|
||||
}
|
||||
|
||||
function delAlertDate(date){
|
||||
console.log(date)
|
||||
alertDates = alertDates.filter(ad => ad.date !== date )
|
||||
}
|
||||
|
||||
function getAlertDates(){
|
||||
return alertDates;
|
||||
}
|
||||
|
||||
function getAlerts(){
|
||||
@ -69,11 +101,14 @@ function getAlerts(){
|
||||
}
|
||||
|
||||
function getAlert(uid){
|
||||
return alerts.filter(i => i.uid === uid);
|
||||
return alerts.filter(i => i.uid === uid)[0];
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getAlerts,
|
||||
getAlert,
|
||||
addAlert
|
||||
addAlert,
|
||||
getAlertDates,
|
||||
delAlertDate,
|
||||
delAlerts
|
||||
};
|
@ -27,25 +27,35 @@ var settings = {
|
||||
},
|
||||
arc: {
|
||||
default: 1.1
|
||||
},
|
||||
globe: {
|
||||
arcDashLength: 0.4,
|
||||
arcAltitudeAutoScale: 0.4,
|
||||
arcDashGap: 0.1,
|
||||
arcDashInitialGap: 0.1,
|
||||
arcDashAnimateTime: 7000,
|
||||
arcStroke: 0.5,
|
||||
labelSize: 0,
|
||||
labelDotRadius: 0.4,
|
||||
labelResolution: 2
|
||||
}
|
||||
},
|
||||
timer:{
|
||||
del: 30
|
||||
}
|
||||
}
|
||||
|
||||
var geoip = require('fast-geoip');
|
||||
|
||||
async function addArc(src, dest, uid){
|
||||
const arcName = src + " -> " + dest;
|
||||
async function addArc(src, dest, uid, src_name, dest_name){
|
||||
const arcName = src_name + " -> " + dest_name;
|
||||
var geoSrc = undefined;
|
||||
var startLat = undefined;
|
||||
var startLng = undefined;
|
||||
var geoDest = undefined;
|
||||
var endLat = undefined;
|
||||
var endLng = undefined;
|
||||
if(data.arc.some(x => x.name === arcName)) {
|
||||
console.log("is scho da")
|
||||
}else{
|
||||
console.log(src.includes("192.168.1.") || src.includes("127.0.0.1"))
|
||||
console.log(dest.includes("192.168.1.") || dest.includes("127.0.0.1"))
|
||||
if(!data.arc.some(x => x.src === src && x.dest === dest)) {
|
||||
if (src.includes("192.168.1.") || src.includes("127.0.0.1")) {
|
||||
startLat = round(settings.location.home.lat, settings.location.precision)
|
||||
startLng = round(settings.location.home.lng, settings.location.precision)
|
||||
@ -70,6 +80,7 @@ async function addArc(src, dest, uid){
|
||||
endLng = round(settings.location.home.lng, settings.location.precision)
|
||||
}
|
||||
}
|
||||
var txrx = [{src: src, dest: dest, src_name: src_name, dest_name: dest_name}];
|
||||
var dat = {
|
||||
uid: uid,
|
||||
name: arcName,
|
||||
@ -78,12 +89,14 @@ async function addArc(src, dest, uid){
|
||||
endLat: endLat,
|
||||
endLng: endLng,
|
||||
color: settings.colors.arc.default,
|
||||
stroke: settings.sizes.arc.default
|
||||
stroke: settings.sizes.arc.default,
|
||||
src: src,
|
||||
dest: dest,
|
||||
src_name: src_name,
|
||||
dest_name: dest_name,
|
||||
txrx: txrx
|
||||
}
|
||||
console.log(arcName)
|
||||
if(data.arc.some(x => x.startLat === startLat && x.startLng === startLng && x.endLat === endLat && x.endLng === endLng)){
|
||||
console.log("is scho da 2")
|
||||
}else {
|
||||
if(!data.arc.some(x => x.startLat === startLat && x.startLng === startLng && x.endLat === endLat && x.endLng === endLng)){
|
||||
const newUid = addLoc(arcName, startLat, startLng, uid)
|
||||
dat.uid = newUid;
|
||||
if (!data.arc.some(x => x.startLat === startLat && x.startLng === startLng && x.endLat === endLat && x.endLng === endLng)) {
|
||||
@ -93,18 +106,18 @@ async function addArc(src, dest, uid){
|
||||
} else {
|
||||
const dataIndex = data.arc.findIndex(x => x.startLat === endLat && x.startLng === endLng && x.endLat === startLat && x.endLng === startLng);
|
||||
data.arc[dataIndex].color = settings.colors.arc.dualsender;
|
||||
data.arc[dataIndex].txrx.push({src: dat.src, dest: dat.dest, src_name: dat.src_name, dest_name: dat.dest_name})
|
||||
}
|
||||
} else {
|
||||
const dataIndex = data.arc.findIndex(x => x.startLat === startLat && x.startLng === startLng && x.endLat === endLat && x.endLng === endLng);
|
||||
const arcuid = data.arc[dataIndex].uid;
|
||||
var loc = getLoc(arcuid)
|
||||
loc.color = settings.colors.loc.dualsender;
|
||||
loc.txrx.push({src: dat.src, dest: dat.dest, src_name: dat.src_name, dest_name: dat.dest_name})
|
||||
editLoc(loc);
|
||||
console.log("selbe richtiung schon da")
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log("NACH IS SCHO DA")
|
||||
}
|
||||
|
||||
function round(value, precision) {
|
||||
@ -112,14 +125,16 @@ function round(value, precision) {
|
||||
return Math.round(value * multiplier) / multiplier;
|
||||
}
|
||||
|
||||
function addLoc(name, lat, lng, uid){
|
||||
function addLoc(name, lat, lng, uid, src, dest, src_name, dest_name){
|
||||
var txrx = [{src: src, dest: dest, src_name: src_name, dest_name: dest_name}]
|
||||
var dat = {
|
||||
uid: uid,
|
||||
name: name,
|
||||
lat: lat,
|
||||
lng: lng,
|
||||
size: settings.sizes.loc.default,
|
||||
color: settings.colors.loc.default
|
||||
color: settings.colors.loc.default,
|
||||
txrx: txrx
|
||||
};
|
||||
|
||||
if(!data.loc.some(x => x.lat === lat && x.lng === lng)) {
|
||||
@ -127,7 +142,7 @@ function addLoc(name, lat, lng, uid){
|
||||
return dat.uid
|
||||
}else{
|
||||
const dataIndex = data.loc.findIndex(obj => obj.lat === lat && obj.lng === lng);
|
||||
data.loc[dataIndex].name = data.loc[dataIndex].name + "<br>\n" + name;
|
||||
data.loc[dataIndex].name = data.loc[dataIndex].name + "\n" + name;
|
||||
return data.loc[dataIndex].uid
|
||||
}
|
||||
}
|
||||
@ -145,10 +160,13 @@ function getData(){
|
||||
}
|
||||
|
||||
function getDisplayData(){
|
||||
return {
|
||||
arc: filterUid(data.arc),
|
||||
loc: filterUid(data.loc)
|
||||
}
|
||||
var ret = data;
|
||||
ret.settings = settings
|
||||
return ret
|
||||
}
|
||||
|
||||
function getSettigns(){
|
||||
return settings;
|
||||
}
|
||||
|
||||
function filterUid(tofilter){
|
||||
@ -177,7 +195,26 @@ function editLoc(loc){
|
||||
data.loc[dataIndex] = loc;
|
||||
}
|
||||
|
||||
function delUids(uids){
|
||||
uids.forEach(uid => delUid(uid))
|
||||
}
|
||||
|
||||
function delUid(uid){
|
||||
console.log("delglobe")
|
||||
console.log(uid)
|
||||
delArc(uid);
|
||||
delLoc(uid);
|
||||
}
|
||||
|
||||
function delLoc(uid){
|
||||
data.loc = data.loc.filter(loc => loc.uid !== uid)
|
||||
}
|
||||
|
||||
function delArc(uid){
|
||||
data.arc = data.arc.filter(arc => arc.uid !== uid)
|
||||
}
|
||||
|
||||
|
||||
module.exports = {
|
||||
addArc, addLoc, getLocData, getArcColor, getData, getArcData, getLocColor, getDisplayData
|
||||
addArc, addLoc, getLocData, getArcColor, getData, getArcData, getLocColor, getDisplayData, delUids, getSettigns
|
||||
}
|
Reference in New Issue
Block a user