2 TECHNOLOGIES
The proposed platform has been implemented using
four main technologies: Python (Python, 1991),
Flask-Python framework (Ronacher, 2010), Mon-
goDB (Inc., 2009) and Docker (Ronacher, 2013).
Python being an interpreted, interactive and object-
oriented programming language as well as portable
(it runs on multiple Unix variants, macOS, Windows
2000 and above) allows for fast development and por-
tability, and as such was the language of choice for
developing this platform and modules associated with
it. Since there is a need to build and deploy web servi-
ces for this platform, and since Python was the chosen
language to do so, Flask-Python framework is used
as the tool to create and deploy them since it is light-
weight and easy to use. MongoDB is a non-relational,
open-source database and it has been chosen due to
the amount of data this platform may store and the
low level of relationships between data. In order for
deployment to be as smooth as possible and not prone
to failure due to different Unix systems configurati-
ons, Docker was chosen to be used as a container.
A container allows this platform to be deployed wit-
hout concerns about dependencies, libraries or other
issues that could arise from different configurations;
by wrapping every needed component in a container,
which takes care of communication with the operative
system’s kernel, one can mitigate the effects of run-
ning the platform on different systems. Docker makes
it so that it’s possible to simply transfer the preconfi-
gured container to the desired machine, and have it up
and running in a matter of minutes.
3 DESIGN & IMPLEMENTATION
3.1 Overview
The system relies on a set of Probes, widely spread
around the globe, and a central unit (Mainframe).
Probes are able to perform multiple monitoring tasks
to a specific destination/target, pre-process data and
relay results to the Mainframe. Routing anomalies are
detected at the Mainframe by comparing/correlating
new data with data that was previously acquired. Fi-
gure 1 depicts the platform elements and relations. A
probe resides in a Virtual Private Server or Cloud Ser-
ver (VPS/CS) with minimum computational require-
ments and consequently low cost. Each probe runs the
Central Probe Module (CPM) which is responsible
to manage all the modular monitor modules running
under that probe supervision, collect and pre-process
data and relaying it to the Mainframe.
Figure 1: Platform elements.
CPM deploys a web-server, using Flask-Python,
to which monitoring modules can be attached. Mul-
tiple monitoring modules can be added and individu-
ally assigned to perform monitoring tasks to speci-
fied targets. The modules can be developed in py-
thon, or in any compatible language other than py-
thon and integrated by means of a python wrapper
(see sub-section 3.4). Currently, the active modules
are RTT Monitor and Traceroute/HopRTT Moni-
tor developed natively in python. The former per-
forms periodic RTT measures to predefined destinati-
ons (network prefixes being monitored) defined at the
Mainframe. The latter performs trace route to the des-
tinations, also defined at the Mainframe, and records
the path hops and respective RTT to each one. Note
that monitoring destinations may be different for dif-
ferent monitoring modules.
The Mainframe deploys a web-service, using
Flask-Python, and a non-relational database (Mon-
goDB). It is responsible for probe initialization, con-
trol, monitoring, data collection as well as data ana-
lysis, alarms, countermeasures and for the graphical
user interface (GUI).
The desired VPS/CS minimum requirements for
the Mainframe are: 8GB RAM, Quadcore 2.4GHz+,
500GB disk space, Linux 64-bit (Ubuntu 16.04+,
CentOS6+, Debian7+), Python 3.X, PIP, MongoDB.
And for the PCM, are: 1GB RAM, Single core
1.4GHz+, 10GB disk space, Linux 64-bit (Ubuntu
16.04+, CentOS6+, Debian7+).
3.2 Control and Communication
The Mainframe performs installation and control
tasks remotely on Probes using Secure Shell (SSH)
and Secure Copy (SCP) for file transfers both to and
from the Probes. For that to be possible, the plat-
form’s users, when setting up a new Probe on the plat-
form, are required to provide a user name with root
privileges and it’s respective password for the new
ICISSP 2018 - 4th International Conference on Information Systems Security and Privacy
200