mirror of https://github.com/MISP/misp-dashboard
addition: Added start and terminate script + added test_geo script that
test important function in the geo helperpull/29/head
parent
968757f81b
commit
c714d88977
|
@ -0,0 +1,19 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
GREEN="\\033[1;32m"
|
||||||
|
DEFAULT="\\033[0;39m"
|
||||||
|
RED="\\033[1;31m"
|
||||||
|
|
||||||
|
[ -z "$DASH_HOME" ] && echo "Needs the env var DASHENV. Run the script from the virtual environment." && exit 1;
|
||||||
|
|
||||||
|
conf_dir="${DASH_HOME}/config/"
|
||||||
|
redis_dir="${DASH_HOME}/../redis/src/"
|
||||||
|
test_dir="${DASH_HOME}/tests/"
|
||||||
|
screenName="Misp-Dashboard-test"
|
||||||
|
|
||||||
|
screen -dmS "$screenName"
|
||||||
|
sleep 0.1
|
||||||
|
echo -e $GREEN"\t* Launching Redis servers"$DEFAULT
|
||||||
|
screen -S "$screenName" -X screen -t "redis-server" bash -c $redis_dir'redis-server --port 6260; read x'
|
|
@ -0,0 +1,19 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
GREEN="\\033[1;32m"
|
||||||
|
DEFAULT="\\033[0;39m"
|
||||||
|
RED="\\033[1;31m"
|
||||||
|
|
||||||
|
[ -z "$DASH_HOME" ] && echo "Needs the env var DASHENV. Run the script from the virtual environment." && exit 1;
|
||||||
|
|
||||||
|
conf_dir="${DASH_HOME}/config/"
|
||||||
|
redis_dir="${DASH_HOME}/../redis/src/"
|
||||||
|
redis_dir="../../redis/src/"
|
||||||
|
test_dir="${DASH_HOME}/tests/"
|
||||||
|
screenName="Misp-Dashboard-test"
|
||||||
|
|
||||||
|
|
||||||
|
bash -c $redis_dir'redis-cli -p 6260 shutdown'
|
||||||
|
screen -S $screenName -X quit
|
|
@ -0,0 +1,58 @@
|
||||||
|
[Dashboard]
|
||||||
|
#hours
|
||||||
|
graph_log_refresh_rate = 1
|
||||||
|
#sec
|
||||||
|
rotation_wait_time = 30
|
||||||
|
max_img_rotation = 10
|
||||||
|
hours_spanned = 48
|
||||||
|
zoomlevel = 15
|
||||||
|
# [1->12]
|
||||||
|
size_dashboard_left_width = 5
|
||||||
|
size_openStreet_pannel_perc = 55
|
||||||
|
size_world_pannel_perc = 35
|
||||||
|
item_to_plot = Attribute.category
|
||||||
|
fieldname_order=["Event.id", "Attribute.Tag", "Attribute.category", "Attribute.type", ["Attribute.value", "Attribute.comment"]]
|
||||||
|
char_separator=||
|
||||||
|
|
||||||
|
[GEO]
|
||||||
|
#min
|
||||||
|
updateFrequency = 60
|
||||||
|
zoomlevel = 11
|
||||||
|
# ~meter
|
||||||
|
clusteringDistance = 10
|
||||||
|
|
||||||
|
[CONTRIB]
|
||||||
|
max_number_of_last_contributor = 10
|
||||||
|
min_between_reload = 5
|
||||||
|
additional_help_text = ["Sightings multiplies earned points by 2", "Editing an attribute earns you the same as creating one"]
|
||||||
|
|
||||||
|
[Log]
|
||||||
|
directory=logs
|
||||||
|
filename=logs.log
|
||||||
|
|
||||||
|
[RedisGlobal]
|
||||||
|
host=localhost
|
||||||
|
port=6250
|
||||||
|
#misp_web_url = http://192.168.56.50
|
||||||
|
misp_web_url = https://misppriv.circl.lu
|
||||||
|
#zmq_url=tcp://192.168.56.50:50000
|
||||||
|
zmq_url=tcp://localhost:9990
|
||||||
|
|
||||||
|
[RedisLIST]
|
||||||
|
db=3
|
||||||
|
listName=bufferList
|
||||||
|
|
||||||
|
[RedisLog]
|
||||||
|
db=0
|
||||||
|
channel=1
|
||||||
|
channelLastContributor = lastContributor
|
||||||
|
channelLastAwards = lastAwards
|
||||||
|
|
||||||
|
[RedisMap]
|
||||||
|
db=1
|
||||||
|
channelDisp=PicToDisplay
|
||||||
|
pathMaxMindDB=../data/GeoIP2-City_20171017/GeoIP2-City.mmdb
|
||||||
|
path_countrycode_to_coord_JSON=../data/country_code_lat_long.json
|
||||||
|
|
||||||
|
[RedisDB]
|
||||||
|
db=2
|
|
@ -0,0 +1,75 @@
|
||||||
|
#!/usr/bin/env python3.5
|
||||||
|
import configparser
|
||||||
|
import redis
|
||||||
|
import sys,os
|
||||||
|
import datetime
|
||||||
|
sys.path.append('..')
|
||||||
|
|
||||||
|
configfile = 'test_config.cfg'
|
||||||
|
cfg = configparser.ConfigParser()
|
||||||
|
cfg.read(configfile)
|
||||||
|
|
||||||
|
serv_redis_db = redis.StrictRedis(
|
||||||
|
host='localhost',
|
||||||
|
port=6260,
|
||||||
|
db=1)
|
||||||
|
|
||||||
|
from helpers import geo_helper
|
||||||
|
geo_helper = geo_helper.Geo_helper(serv_redis_db, cfg)
|
||||||
|
|
||||||
|
categ = 'Network Activity'
|
||||||
|
|
||||||
|
def wipeRedis():
|
||||||
|
serv_redis_db.flushall()
|
||||||
|
|
||||||
|
def errorExit():
|
||||||
|
wipeRedis()
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
def test():
|
||||||
|
today = datetime.datetime.now()
|
||||||
|
# IP -> Coord
|
||||||
|
supposed_ip = '8.8.8.8'
|
||||||
|
geo_helper.getCoordFromIpAndPublish(supposed_ip, categ)
|
||||||
|
rep = geo_helper.getTopCoord(today)
|
||||||
|
excpected_result = [['{"lat": 37.751, "lon": -97.822}', 1.0]]
|
||||||
|
if rep != excpected_result:
|
||||||
|
print('ip to coord result not matching')
|
||||||
|
errorExit()
|
||||||
|
|
||||||
|
# gethitmap
|
||||||
|
rep = geo_helper.getHitMap(today)
|
||||||
|
excpected_result = [['US', 1.0]]
|
||||||
|
if rep != excpected_result:
|
||||||
|
print('getHitMap result not matching')
|
||||||
|
errorExit()
|
||||||
|
|
||||||
|
# getCoordsByRadius
|
||||||
|
rep = geo_helper.getCoordsByRadius(today, today, 0.000, 0.000, '1')
|
||||||
|
excpected_result = []
|
||||||
|
if rep != excpected_result:
|
||||||
|
print('getCoordsByRadius result not matching')
|
||||||
|
errorExit()
|
||||||
|
|
||||||
|
rep = geo_helper.getCoordsByRadius(today, today, 37.750, -97.821, '10')
|
||||||
|
excpected_result = [[['{"categ": "Network Activity", "value": "8.8.8.8"}'], [-97.82200008630753, 37.75100012475438]]]
|
||||||
|
if rep != excpected_result:
|
||||||
|
print('getCoordsByRadius result not matching')
|
||||||
|
errorExit()
|
||||||
|
|
||||||
|
wipeRedis()
|
||||||
|
|
||||||
|
|
||||||
|
# Phone -> Coord
|
||||||
|
phoneNumber = '(+352) 247-82000'
|
||||||
|
geo_helper.getCoordFromPhoneAndPublish(phoneNumber, categ)
|
||||||
|
rep = geo_helper.getTopCoord(datetime.datetime.now())[0]
|
||||||
|
excpected_result = ['{"lat": "49.7500", "lon": "6.1667"}', 1.0]
|
||||||
|
if rep != excpected_result:
|
||||||
|
print('Phone to coord result not matching')
|
||||||
|
errorExit()
|
||||||
|
|
||||||
|
|
||||||
|
test()
|
||||||
|
wipeRedis()
|
||||||
|
print('Tests succeeded')
|
Loading…
Reference in New Issue