GithubHelp home page GithubHelp logo

newbee119 / ti_collector Goto Github PK

View Code? Open in Web Editor NEW
307.0 15.0 99.0 5.74 MB

本项目致力于收集网上公开来源的威胁情报,主要关注信誉类威胁情报(如IP/域名等),以及事件类威胁情报。

Python 65.39% C 14.47% Makefile 0.19% C++ 19.95%
threat-intelligence dns-sniffer iocs threat-article-crawler threat-feeds

ti_collector's Introduction

Ti_Collector


Ti_Collector为Threat Intelligence Collector,主要关注网上公开的信誉类威胁情报和事件类威胁情报。

信誉类威胁情报主要来源于一些安全社区的分享;事件类威胁情报主要来源于安全企业的咨询分享。

这些威胁情报数据通过爬虫手段,经分类处理后自动存入到数据库中,以构建自身的威胁情报库。

同时,我们提供一个捕获和查询本机DNS纪录中是否存在威胁行为的程序。

整个流程如图所示。

流程

Code Introduction


ThreatFeedSpider

  • 说明

      ThreatFeedSpider中包含了31个爬虫,爬取了31个不同的信誉类威胁情报来源,然后按类存放到数据库中。
    
      这些数据大概包括1090000个ip地址,4600个域名,14000个url。
    
      scripts目录下:(1)存有相关feed的爬虫脚本;(2)feed_id.txt 存有相关feed与数据库中存储的source_id的对照
    
  • 环境要求

      测试计算机用的Ubuntu 16.04.1,Windows 10 x86_64,python 2.7,MySQL 5.7.20
    
      python依赖环境为:MySQLdb
    
  • 数据库

     sql目录中的TiDB.sql文件,构建数据库以及数据库表格。
     
     使用MySQL数据库时,请自行修改连接的数据库参数。
    
  • 使用

     首先要运行sql目录下的建库脚本。
     
     然后再运行RunThreatSpider.py之前,请自行修改60.py脚本和download.py脚本内与数据库有关的语句和参数。
    
     在ThreatFeedSpider目录下,通过命令 python RunThreatSpider.py,调用scripts目录下的脚本文件,
     
     通过脚本将feed下的威胁情报录入数据库。
    
     注:由于网络问题,个别feed网站不可到达而出现timeout报错。
    

ThreatArticleSpider

  • 说明

      处理事件类威胁情报,在现阶段只有一个爬取文章链接的爬虫ThreatArticleSpider.py
      
      后续会陆续增加爬取链接的脚本和从文章中提取相应IoC信息的脚本。
    
  • 使用

      直接运行命令 python ThreatArticleSpider.py 即可。
    
  • 结果

      运行过程中会存储大量的html文件,这些文件为链接的来源,不需要的可以自行删除。
    
      运行完成后会生成一个ret.json文件存储网站上的链接,用户可自行判断其中的链接是否有进一步处理的价值。 
    
      Result目录下存储的是我们整理的文章中的事件类威胁情报,以#开头的是来源和时间,其余的是IoC信息。
    

DNS-Sniffer

  • 说明

      DNS-Sniffer是用来捕获DNS请求包的程序,用C写成,内涵源码和编译好的程序,
      
      在Linux和Windows环境下可以直接使用RunSniffer.py启动。
      
      Windows下也可以直接运行DNS.exe。运行时会生成一个Dns.txt文件来存储DNS记录。
    
  • 环境要求

    1.Windows环境

      该程序要用到Winpcap,一般情况下都已经安装了,如果没有安装可以在Windows文件夹下找到它的安装文件
      
      WinPcap_4_1_2.exe(64);推荐使用本项目自带的WinPcap_4_1_2.exe(64),以避免版本冲突。
      
      VS中需配置项目属性 详情请参看:http://www.cnblogs.com/laddielan/p/5405534.html。
      
      安装Winpcap并配置好项目属性后,打开源码用VS2013及以上版本直接编译生成即可。
    

    2.Linux环境

      安装libcap库,Ubuntu输入命令apt-get install libpcap-dev即可安装。
      
      CentOS参考http://www.cnblogs.com/wawahaha/p/3821486.html
      
      编译:安装好库后,进入Linux文件夹下执行make就可生成可执行文件dns。
    
  • 使用

      直接在同一目录下运行RunSniffer.py即可。 Linux下需要以管理员权限运行
    
      注意:
    
      Winpcap和Libpcap这两个是必须安装的,不然既无法运行而且也无法编译源码生成可执行文件,
      
      python需要2.x版本,3.x版本运行RunSniffer.py会报错。
    
      Windows下电脑电源设置为从不休眠,因为休眠后会关闭嗅探器。
    

request.py

  • 说明

      用来判断NDS-Sniffer捕获到的DNS纪录中是否有威胁情报中记录的恶意行为。
    
      在查询到有恶意DNS记录后会输出警告,脚本运行完后会生成一个结果文件Result.txt
    
  • 环境要求

      python:MySQLdb库
    
      数据库的信息要自行设置
    
  • 使用

      使用时要将DNS-Sniffer生成的待查文件Dns.txt放入同一个目录下。进入该目录直接运行命令:python request.py即可。
    
      如果用户修改了数据库的信息,要在request.py中的相应位置修改数据库信息。  
    

Screenshots


ThreatFeedSpider

run

DNS-Sniffer生成的文件dns.txt

dns.txt

request.py

结果

联系我们


有任何需要讨论的问题,不要犹豫,联系我们。

邮箱:[email protected]

ti_collector's People

Contributors

bestyhe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.