2016-01-19 14:17:16 +01:00
[![Build Status ](https://travis-ci.org/CIRCL/AIL-framework.svg?branch=master )](https://travis-ci.org/CIRCL/AIL-framework)
2014-08-06 11:43:40 +02:00
AIL
===
2016-02-08 11:34:54 +01:00
![Logo ](./doc/logo/logo-small.png?raw=true "AIL logo" )
2014-12-01 10:43:36 +01:00
AIL framework - Framework for Analysis of Information Leaks
2014-08-06 11:43:40 +02:00
2017-11-24 09:38:39 +01:00
AIL is a modular framework to analyse potential information leaks from unstructured data sources like pastes from Pastebin or similar services or unstructured data streams. AIL framework is flexible and can be extended to support other functionalities to mine or process sensitive information.
2014-08-06 11:43:40 +02:00
2016-08-23 17:05:45 +02:00
![Dashboard ](./doc/screenshots/dashboard.png?raw=true "AIL framework dashboard" )
2016-08-23 17:20:22 +02:00
2016-02-08 11:49:33 +01:00
Features
--------
2016-02-08 14:13:24 +01:00
* Modular architecture to handle streams of unstructured or structured information
* Default support for external ZMQ feeds, such as provided by CIRCL or other providers
2017-05-03 14:25:58 +02:00
* Multiple feed support
2016-02-08 14:13:24 +01:00
* Each module can process and reprocess the information already processed by AIL
* Detecting and extracting URLs including their geographical location (e.g. IP address location)
2017-05-03 14:25:58 +02:00
* Extracting and validating potential leak of credit cards numbers, credentials, ...
2016-02-08 11:49:33 +01:00
* Extracting and validating email addresses leaked including DNS MX validation
* Module for extracting Tor .onion addresses (to be further processed for analysis)
2017-05-03 14:25:58 +02:00
* Keep tracks of duplicates
2016-02-08 11:49:33 +01:00
* Extracting and validating potential hostnames (e.g. to feed Passive DNS systems)
* A full-text indexer module to index unstructured information
2017-05-03 14:25:58 +02:00
* Statistics on modules and web
2017-11-24 09:38:39 +01:00
* Real-time modules manager in terminal
2016-08-23 17:20:22 +02:00
* Global sentiment analysis for each providers based on nltk vader module
2017-05-03 14:25:58 +02:00
* Terms, Set of terms and Regex tracking and occurrence
2016-02-08 14:13:24 +01:00
* Many more modules for extracting phone numbers, credentials and others
2017-11-24 09:38:39 +01:00
* Alerting to [MISP ](https://github.com/MISP/MISP ) to share found leaks within a threat intelligence platform using [MISP standard ](https://www.misp-project.org/objects.html#_ail_leak )
2016-02-08 11:49:33 +01:00
2016-02-08 11:16:53 +01:00
Installation
------------
2014-08-06 11:43:40 +02:00
2017-10-22 18:49:11 +02:00
Type these command lines for a fully automated installation and start AIL framework:
2017-10-20 15:56:14 +02:00
```bash
2014-08-25 15:02:53 +02:00
git clone https://github.com/CIRCL/AIL-framework.git
cd AIL-framework
./installing_deps.sh
cd var/www/
./update_thirdparty.sh
cd ~/AIL-framework/
. ./AILENV/bin/activate
cd bin/
./LAUNCH.sh
```
2017-10-22 18:49:11 +02:00
2016-02-08 14:13:24 +01:00
The default [installing_deps.sh ](./installing_deps.sh ) is for Debian and Ubuntu based distributions. For Arch
linux based distributions, you can replace it with [installing_deps_archlinux.sh ](./installing_deps_archlinux.sh ).
2014-08-25 15:02:53 +02:00
2016-02-08 14:13:24 +01:00
There is also a [Travis file ](.travis.yml ) used for automating the installation that can be used to build and install AIL on other systems.
2014-08-06 11:43:40 +02:00
2017-10-01 02:23:32 +02:00
Docker Quick Start (Ubuntu 16.04 LTS)
------------
2017-10-22 18:49:11 +02:00
2017-10-01 02:23:32 +02:00
1. Install Docker
2017-10-20 15:56:14 +02:00
```bash
2017-10-01 02:23:32 +02:00
sudo su
apt-get install -y curl
curl https://get.docker.com | /bin/bash
```
2017-10-01 02:29:56 +02:00
2. Type these commands to build the Docker image:
2017-10-20 15:56:14 +02:00
```bash
2017-10-01 02:23:32 +02:00
git clone https://github.com/CIRCL/ail-framework
cd AIL-framework
2017-10-01 02:34:53 +02:00
docker build -t ail-framework .
2017-10-01 02:23:32 +02:00
```
2017-10-01 02:29:56 +02:00
3. To start AIL on port 7000, type the following command below:
2017-10-01 02:23:32 +02:00
```
docker run -p 7000:7000 ail-framework
```
2017-10-01 02:29:56 +02:00
4. To debug the running container, type the following command and note the container name or identifier:
2017-10-20 15:56:14 +02:00
```bash
2017-10-01 02:23:32 +02:00
docker ps
```
After getting the name or identifier type the following commands:
2017-10-20 15:56:14 +02:00
```bash
2017-10-01 02:23:32 +02:00
docker exec -it CONTAINER_NAME_OR_IDENTIFIER bash
cd /opt/ail
```
2016-08-23 17:20:22 +02:00
2017-10-01 02:29:56 +02:00
2016-02-08 11:16:53 +01:00
Starting AIL web interface
--------------------------
2014-08-06 11:43:40 +02:00
2017-11-24 09:38:39 +01:00
To start the web interface, you first need to fetch the required JavaScript/CSS files:
2014-08-08 11:42:51 +02:00
2017-10-20 15:56:14 +02:00
```bash
2014-08-08 11:42:51 +02:00
cd $AILENV
cd var/www/
bash update_thirdparty.sh
```
2016-02-08 14:13:24 +01:00
and then you can start the web interface python script:
2014-08-08 11:42:51 +02:00
2017-10-20 15:56:14 +02:00
```bash
2014-08-08 11:42:51 +02:00
cd $AILENV
cd var/www/
Flask_server.py
```
2016-02-08 14:13:24 +01:00
Eventually you can browse the status of the AIL framework website at the following URL:
2014-08-06 11:43:40 +02:00
2017-10-20 15:56:14 +02:00
```
http://localhost:7000/
```
2014-08-06 11:43:40 +02:00
2017-07-17 13:36:41 +02:00
HOWTO
-----
HOWTO are available in [HOWTO.md ](HOWTO.md )
2016-10-13 17:13:08 +02:00
2017-05-03 14:30:58 +02:00
Screenshots
===========
Trending charts
---------------
![Trending-Web ](./doc/screenshots/trending-web.png?raw=true "AIL framework webtrending" )
![Trending-Modules ](./doc/screenshots/trending-module.png?raw=true "AIL framework modulestrending" )
Browsing
--------
![Browse-Pastes ](./doc/screenshots/browse-important.png?raw=true "AIL framework browseImportantPastes" )
Sentiment analysis
------------------
![Sentiment ](./doc/screenshots/sentiment.png?raw=true "AIL framework sentimentanalysis" )
Terms manager and occurence
---------------------------
![Term-Manager ](./doc/screenshots/terms-manager.png?raw=true "AIL framework termManager" )
2017-05-09 11:13:16 +02:00
### Top terms
2017-05-03 14:30:58 +02:00
![Term-Top ](./doc/screenshots/terms-top.png?raw=true "AIL framework termTop" )
![Term-Plot ](./doc/screenshots/terms-plot.png?raw=true "AIL framework termPlot" )
[AIL framework screencast ](https://www.youtube.com/watch?v=1_ZrZkRKmNo )
2017-05-09 11:13:16 +02:00
Command line module manager
---------------------------
![Module-Manager ](./doc/screenshots/module-manager.png?raw=true "AIL framework ModuleInformationV2.py" )
2017-05-03 14:30:58 +02:00
2017-05-03 14:25:58 +02:00
License
=======
2014-08-06 11:43:40 +02:00
```
Copyright (C) 2014 Jules Debra
2017-11-24 09:38:39 +01:00
Copyright (C) 2014-2017 CIRCL - Computer Incident Response Center Luxembourg (c/o smile, security made in Lëtzebuerg, Groupement d'Intérêt Economique)
Copyright (c) 2014-2017 Raphaël Vinot
Copyright (c) 2014-2017 Alexandre Dulaunoy
Copyright (c) 2016-2017 Sami Mokaddem
2014-08-06 11:43:40 +02:00
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see < http: / / www . gnu . org / licenses / > .
```