###Overview ThirdEye is a continuous authentication system for Facebook on the Google Chrome web browser. The system comprises of a Chrome extension and this server.
###Description The ThirdEye server is responsible for three tasks:
- Central storage point for all user collected data.
- Notification-generating service.
- A platform for anomaly detection algorithms.
###Technical ####System The server is written in python's microwebframework Flask. By default, it runs on port 5000 and has the following end points (routes):
- /submit : This collects, logs, and stores data sent by the ThirdEye extension. A user notification is generated if an anomaly is detected.
- /email : This endpoint receives and stores client's email, and generates a user notification for successful installation.
- /uninstall : This endpoint is called when an extension is uninstalled to generate a user notification.
####Storage The server uses MongoDB as a storage database. The user database is organized as a unique collection for each client extension. Each Facebook action is stored as an individual document.
####Notification The server uses python's SMTP module to send email notifications to users. Connection to the mailserver is secured using SSL.
The server exposes a standard API to allow seamless integration of multiple anomaly detection algorithms.
detection_system.py defines an abstract base class (ABC), which all algorithm implementations are expected to override. The two primary calls are :
- new_entry: This function is called by the server for each individual event/action received.
- alarm: This function is called by a detection algorithm when it wants to send a notification to the user.
###Installation Instructions ####Requirements The server is cross platform and requires Python 2.7 and MongoDB installed on your system. You will also need to include the PyMongo module so that Python can communicate to the MongoDB. This can be installed using the following command:
$ python -m pip install pymongo
- Download the repository and unzip to a desired location
- Navigate and open
detection_system.pyand scroll to line 70 - 75.
- Add your SMTP details including mailserver, port, email address, mail server login and mail server password
- Run the server with the following command
- Note that you will need to update the corresponding ThirdEye extension installation to send event notifications to your deployed server.