All Projects → spacepatcher → FireHOL-IP-Aggregator

spacepatcher / FireHOL-IP-Aggregator

Licence: Apache-2.0 license
Application for keeping feeds from FireHOL https://github.com/firehol/blocklist-ipsets with IP addresses appearance history. HTTP-based API service is developed for search requests.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to FireHOL-IP-Aggregator

CCXDigger
The CyberCX Digger project is designed to help Australian organisations determine if they have been impacted by certain high profile cyber security incidents. Digger provides threat hunting functionality packaged in a simple-to-use tool, allowing users to detect certain attacker activities; all for free.
Stars: ✭ 45 (+73.08%)
Mutual labels:  threat-intelligence
Malware-Sample-Sources
Malware Sample Sources
Stars: ✭ 214 (+723.08%)
Mutual labels:  threat-intelligence
awesome-malware-analysis
Defund the Police.
Stars: ✭ 9,181 (+35211.54%)
Mutual labels:  threat-intelligence
Public-Intelligence-Feeds
Standard-Format Threat Intelligence Feeds
Stars: ✭ 60 (+130.77%)
Mutual labels:  threat-intelligence
ThreatIntelligence
Tracking APT IOCs
Stars: ✭ 23 (-11.54%)
Mutual labels:  threat-intelligence
malware-persistence
Collection of malware persistence and hunting information. Be a persistent persistence hunter!
Stars: ✭ 109 (+319.23%)
Mutual labels:  threat-intelligence
Threat Intel
Archive of publicly available threat INTel reports (mostly APT Reports but not limited to).
Stars: ✭ 252 (+869.23%)
Mutual labels:  threat-intelligence
MindMaps
#ThreatHunting #DFIR #Malware #Detection Mind Maps
Stars: ✭ 224 (+761.54%)
Mutual labels:  threat-intelligence
intelligence-icons
intelligence-icons is a collection of icons and diagrams for building training and marketing materials around Intelligence sharing; including but not limited to CTI, MISP Threat Sharing, STIX 2.
Stars: ✭ 32 (+23.08%)
Mutual labels:  threat-intelligence
censys-recon-ng
recon-ng modules for Censys
Stars: ✭ 29 (+11.54%)
Mutual labels:  threat-intelligence
d4-core
D4 core software (server and sample sensor client)
Stars: ✭ 40 (+53.85%)
Mutual labels:  threat-intelligence
threat-intel
Signatures and IoCs from public Volexity blog posts.
Stars: ✭ 130 (+400%)
Mutual labels:  threat-intelligence
SSHapendoes
Capture passwords of login attempts on non-existent and disabled accounts.
Stars: ✭ 31 (+19.23%)
Mutual labels:  threat-intelligence
mail to misp
Connect your mail client/infrastructure to MISP in order to create events based on the information contained within mails.
Stars: ✭ 61 (+134.62%)
Mutual labels:  threat-intelligence
Azure-Sentinel-4-SecOps
Microsoft Sentinel SOC Operations
Stars: ✭ 140 (+438.46%)
Mutual labels:  threat-intelligence
Ti collector
本项目致力于收集网上公开来源的威胁情报,主要关注信誉类威胁情报(如IP/域名等),以及事件类威胁情报。
Stars: ✭ 254 (+876.92%)
Mutual labels:  threat-intelligence
docker-misp
A (nearly) production ready Dockered MISP
Stars: ✭ 184 (+607.69%)
Mutual labels:  threat-intelligence
sqhunter
A simple threat hunting tool based on osquery, Salt Open and Cymon API
Stars: ✭ 64 (+146.15%)
Mutual labels:  threat-intelligence
Phishruffus
Intelligent threat hunter and phishing servers
Stars: ✭ 44 (+69.23%)
Mutual labels:  threat-intelligence
MurMurHash
This little tool is to calculate a MurmurHash value of a favicon to hunt phishing websites on the Shodan platform.
Stars: ✭ 79 (+203.85%)
Mutual labels:  threat-intelligence

Aggregator of FireHOL IP lists

Application for keeping feeds from blocklist-ipsets (only *.netset and *.ipset files are aggregated) with including historical changes. HTTP-based API service for search requests developed.

Some features of keeping and processing data:

  • New data is written to existing data with last_added field update
  • Data deleted from reputation feed is not deleted from the application database
  • Field timeline is based on events of adding and removing item from reputation list

Start application

To start the collection module and the HTTP-based API service, just type:

docker-compose up

The collection module will start in container sync.

By default, the HTTP-based API service running in container api and is available on port 8000.

API

There are several API-functions for search requests:

  • POST /search - retrieve all information about requested IP or CIDR format objects
  • GET /search/ip - retrieve all information about single requested IP or CIDR format object

Access to the API documentation can be obtained by requesting any unspecified URL.

Example usage

A simple python3 package fiaclient is designed as a client for FireHOL-IP-Aggregator API.

Install the package with pip:

pip install fiaclient

Get a client object in python3 console:

from fiaclient import fiaclient
client = fiaclient.FIAClient(fia_url="http://127.0.0.1:8000/")

To get information about fiaclient package visit https://github.com/spacepatcher/FireHOL-IP-Aggregator/blob/develop/fiaclient/README.md.

The application is able to get search requests in IP or CIDR format, also in mixed list of both data types. To search, run the command in python3 console:

result = client.search(payload=["149.255.60.136"])

Also you can generate search requests using cURL:

  • For HTTP POST search API function:
curl -X POST --data '8.8.8.8,1.1.1.1' -H 'Content-Type: text/html' localhost:8000/search
  • For HTTP GET search API function:
curl -X GET localhost:8000/search/ip?v=8.8.8.8

Here is an example of the result of the requested payload:

{
  "request_time": "2019-01-10T15:39:03.927874+03:00",
  "records_count": 1601585,
  "requested_count": 1,
  "blacklisted_count": 1,
  "currently_blacklisted_count": 1,
  "results": [
    {
      "ip": "5.153.47.228",
      "categories": [
        "malware"
      ],
      "first_seen": "2019-01-10T12:37:09.164000",
      "last_added": "2019-01-10T12:37:09.164000",
      "hits_count": 1,
      "currently_blacklisted": true,
      "hits": [
        {
          "feed_name": "vxvault",
          "category": "malware",
          "maintainer": "VxVault",
          "maintainer_url": "http://vxvault.net",
          "list_source_url": "http://vxvault.net/ViriList.php?s=0&m=100",
          "source_file_date": "Thu Jan 10 03:24:39 UTC 2019",
          "entries": "76 unique IPs",
          "first_seen": "2019-01-10T12:37:09.164000",
          "last_added": "2019-01-10T12:37:09.164000",
          "last_removed": null,
          "current_status": "present",
          "timeline": [
            {
              "added": "2019-01-10T12:37:09.164000",
              "removed": null
            }
          ]
        }
      ]
    }
  ]
}

If the observable is not found in the application database, the response will looks like this:

{
  "request_time": "2019-01-10T15:30:03.813983+03:00",
  "records_count": 1601585,
  "requested_count": 1,
  "blacklisted_count": 0,
  "currently_blacklisted_count": 0,
  "results": []
}

Important files

  • docker-persistent/conf/app.conf - the main application configuration file
  • docker-persistent/app/log/run.log - the main log file

Application configuration

The most important configuration parameters from docker-persistent/conf/app.conf are listed in the table below.

Parameter Description
"unique_ips_limit" Defines the limit of the number of unique IP addresses in FireHOL feeds that will be aggregated (the goal is to filter out huge feeds)
"sync_period_h" Defines time period for syncing with FireHOL IP list repository
"firehol_ipsets_git" Defines FireHOL IP lists repository url

Also it's possible to change count of workers that process queries to API in docker/Dockerfile.api by changing --workers argument value in ENTRYPOINT.

ENTRYPOINT ["gunicorn", "--bind=0.0.0.0:8000", "--workers=4", "--timeout", "3600", "api:__hug_wsgi__"]

To apply configuration changes you should rebuild containers:

docker-compose down
docker-compose up --build
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].