AIL-framework/README.md

189 lines
6.5 KiB
Markdown
Raw Normal View History

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)
AIL
===
2016-02-08 11:34:54 +01:00
![Logo](./doc/logo/logo-small.png?raw=true "AIL logo")
AIL framework - Framework for Analysis of Information Leaks
2016-08-29 10:40:18 +02: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 sensitive information.
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
Trending charts
---------------
2016-08-23 17:27:04 +02:00
2016-08-23 17:05:45 +02:00
![Trending-Web](./doc/screenshots/trending-web.png?raw=true "AIL framework webtrending")
![Trending-Modules](./doc/screenshots/trending-module.png?raw=true "AIL framework modulestrending")
2016-08-23 17:20:22 +02:00
2016-08-23 17:27:04 +02:00
Browsing
--------
2016-08-23 17:05:45 +02:00
![Browse-Pastes](./doc/screenshots/browse-important.png?raw=true "AIL framework browseImportantPastes")
2016-08-23 17:20:22 +02:00
2016-08-23 17:27:04 +02:00
Sentiment analysis
------------------
2016-08-23 17:05:45 +02:00
![Sentiment](./doc/screenshots/sentiment.png?raw=true "AIL framework sentimentanalysis")
2016-08-23 17:20:22 +02:00
2016-08-23 17:27:04 +02:00
Terms manager and occurence
---------------------------
2016-08-23 17:09:28 +02:00
![Term-Manager](./doc/screenshots/terms-manager.png?raw=true "AIL framework termManager")
## Top terms
2016-08-23 17:09:28 +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")
2016-08-23 17:05:45 +02:00
2016-08-29 10:40:18 +02:00
[AIL framework screencast](https://www.youtube.com/watch?v=1_ZrZkRKmNo)
2014-09-22 13:35:46 +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
* 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)
2016-02-08 11:49:33 +01:00
* Extracting and validating potential leak of credit cards numbers
* Extracting and validating email addresses leaked including DNS MX validation
* Module for extracting Tor .onion addresses (to be further processed for analysis)
* Extracting and validating potential hostnames (e.g. to feed Passive DNS systems)
* A full-text indexer module to index unstructured information
2016-08-23 17:20:22 +02:00
* Modules and web statistics
* Global sentiment analysis for each providers based on nltk vader module
2016-08-29 10:40:18 +02:00
* Terms tracking and occurrence
2016-02-08 14:13:24 +01:00
* Many more modules for extracting phone numbers, credentials and others
2016-02-08 11:49:33 +01:00
Installation
------------
2014-09-18 13:28:25 +02:00
Type these command lines for a fully automated installation and start AIL framework
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
```
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.
2016-08-23 17:20:22 +02:00
Starting AIL web interface
--------------------------
2016-02-08 14:13:24 +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
```
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
```
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:
``http://localhost:7000/``
2016-10-13 17:13:08 +02:00
How to
======
How to feed the AIL framework
-----------------------------
2016-10-13 17:26:20 +02:00
For the moment, there are two different ways to feed AIL with data:
2016-10-13 17:21:31 +02:00
2016-10-13 17:26:20 +02:00
1. Be a collaborator of CIRCL and ask to access our feed. It will be sent to the static IP your are using for AIL.
2016-10-13 17:17:09 +02:00
2016-10-13 17:26:20 +02:00
2. You can setup [pystemon](https://github.com/CIRCL/pystemon) and use the custom feeder provided by AIL (see below).
2016-10-13 17:13:08 +02:00
2016-10-13 17:21:31 +02:00
###Feeding AIL with pystemon
2016-10-13 17:17:09 +02:00
AIL is an analysis tool, not a collector!
2016-10-13 17:26:20 +02:00
However, if you want to collect some pastes and feed them to AIL, the procedure is described below.
2016-10-13 17:20:25 +02:00
2016-10-13 17:17:09 +02:00
Nevertheless, moderate your queries!
2016-10-13 17:13:08 +02:00
2016-10-13 17:26:55 +02:00
Here are the steps to setup pystemon and feed data to AIL:
2016-10-13 17:20:25 +02:00
2016-10-13 17:13:08 +02:00
1. Clone the [pystemon's git repository](https://github.com/CIRCL/pystemon)
2016-10-13 17:17:09 +02:00
2016-10-13 17:13:08 +02:00
2. Install its python dependencies inside your virtual environment
2016-10-13 17:17:09 +02:00
2016-10-13 17:13:08 +02:00
3. Launch pystemon ``` ./pystemon ```
2016-10-13 17:17:09 +02:00
2017-02-14 09:40:04 +01:00
4. Edit your configuration file ```bin/packages/config.cfg``` and modify the pystemonpath path accordingly
2016-10-13 17:17:09 +02:00
2016-10-13 17:13:08 +02:00
5. Launch pystemon-feeder ``` ./pystemon-feeder.py ```
How to create a new module
--------------------------
2016-02-08 14:13:24 +01:00
If you want to add a new processing or analysis module in AIL, follow these simple steps:
2016-02-08 10:43:58 +01:00
1. Add your module name in [./bin/packages/modules.cfg](./bin/packages/modules.cfg) and subscribe to the Redis_Global at minimum.
2016-02-08 10:43:58 +01:00
2. Use [./bin/template.py](./bin/template.py) as a sample module and create a new file in bin/ with the module name used in the modules.cfg configuration.
2016-02-08 11:55:39 +01:00
How to contribute a module
--------------------------
Feel free to fork the code, play with it, make some patches or add additional analysis modules.
To contribute your module, feel free to pull your contribution.
2016-10-13 17:13:08 +02:00
Overview and License
====================
2014-08-20 15:31:10 +02:00
Redis and LevelDB overview
--------------------------
2014-08-20 15:33:26 +02:00
* Redis on TCP port 6379 - DB 1 - Paste meta-data
* DB 0 - Cache hostname/dns
* Redis on TCP port 6380 - Redis Pub-Sub only
* Redis on TCP port 6381 - DB 0 - Queue and Paste content LRU cache
2016-08-23 17:20:22 +02:00
* Redis on TCP port 6382 - DB 1-4 - Trending, terms and sentiments
2014-08-20 15:33:26 +02:00
* LevelDB on TCP port <year> - Lines duplicate
2014-08-20 15:31:10 +02:00
LICENSE
-------
```
Copyright (C) 2014 Jules Debra
Copyright (C) 2014-2016 CIRCL - Computer Incident Response Center Luxembourg (c/o smile, security made in Lëtzebuerg, Groupement d'Intérêt Economique)
Copyright (c) 2014-2016 Raphaël Vinot
Copyright (c) 2014-2016 Alexandre Dulaunoy
Copyright (c) 2016 Sami Mokaddem
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/>.
```