snort学习笔记-02

今日成果

  1. 阅读安装指南
  2. 阅读snort3介绍
  3. 阅读snort3用户手册

阅读安装指南

我读的是Snort 3 on Ubuntu 18 & 19,链接为https://snort.org/documents/snort-3-on-ubuntu-18-19,这份指南主要讲述了如何在ubuntu18中安装并使用snort,也介绍了不少关于snort的特性。

  1. This guide shows you how to setup Snort 3 with Splunk as a Network Intrusion Detection System (NIDS) and security information and event management (SIEM) system on Ubuntu.
  1. About Snort 3: The new plugin architecture allows developers to create their own plugins for use within Snort’s processing pipeline
    新的架构运行开发者创建他们自己的插件,用在snort的处理管道
    注:用在处理管道,也就是用在处理流程中吧
  1. About Splunk: Splunk is a security information and event management (SIEM) system that collects, stores, and allows you to easily analyze and visualize machine generated data, including the alerts created by Snort.
    Splunk是一个安全信息和事件管理系统,收集、存储,让你可以以一种轻松的方式分析和可视化机器生成的数据,包括Snort生成的警报。
  1. OpenAppID: Snort OpenAppID allows Snort to identify, control, and measure the applications in use on the network. OpenAppID consists of a set of packages (signatures) that match specific types of network data, including layer 7 applications, such as Facebook, DNS, netflix, discus, google, as well as the applications that use these services (chrome, http, https, etc.). You can create rules based on these OpenAppID signatures, allowing you to block traffic that matches certain applications (for example, block all Facebook traffic).
    注1:太长了就不翻译了,大意就是Snort可以,阻止某些应用程序的流量,识别方式是基于签名的方式。怎么感觉做了上网行为管理该做的事情。。。
    注2:snort3编译出来的文件中,就带了一个脚本appid_detector_builder.sh

    1
    2
    3
    4
    5
    6
    ➜  bin ./appid_detector_builder.sh
    Snort Application Id - Detector Creation Tool

    Enter below, the AppId string to be associated with the Detector.
    (e.g. "CNN.com", "Yahoo!", "Avira Download/Update", etc.)
    AppId strings MUST NOT INCLUDE tab, backslash, apostrophe, or double-quote.
  2. Snort 2 vs Snort 3: Snort 3 is a complete re-design of the Snort product to address a number of limitations with Snort 2.9.x. Some of the major points are multi-threading, extensible plugin architecture, lua-based configuration files, a command line shell, and many other ideas. More information can be found here.
    snort3是一个完全重新设计的产品,它解决了snort 2.9.x中的一系列限制。一些要点是多线程、可扩展插件的架构、基于lua的配置文件、一个命令行shell和许多其它点。更多的信息可以在这里找到。
    注1:https://blog.snort.org/2014/12/introducing-snort-30.html
    注2:snort3的介绍尽然是14年12月写的。正好五年了。。。
    注3:原来address也可以是动词,这里的意思是解决

  1. 指南接下来详细的介绍了安装流程,其中提到了几个比较重要的可选项:
    • Tcmalloc: Tcmalloc is a memory allocator that’s optimized for high concurrency situations which will provide better speed for the trade-off of higher memory usage.
      注:我们常用的默认的malloc是ptmalloc2
    • Hyperscan: Snort 3 uses Hyperscan for fast pattern matching.
      注:Hyperscan is a high-performance multiple regex matching library. It follows the regular expression syntax of the commonly-used libpcre library, but is a standalone library with its own C API.
    • FlatBuffers: Snort has an optional requirement for flatbuffers, A memory efficient serialization library
      注:不是很清楚这是什么,但在snort -V中特别提到了,应该也是比较重要的。
    • LZMA:这也是snort的推荐的一个可选安装项。
      注:Google显示是一种数据压缩算法,也在snort -V中提到了。
  1. 指南接着让我们设置一系列信息,但是看起来并不是必须的
    • Configuring Environmental Variables:设置环境变量,否则可能会不可用
    • Configuring Network Cards:设置网卡的LRO和GRO,否则可能会截断较长的数据包
    • Installing OpenAppID:安装OpenAppID,并测试是否正常工作
    • Installing Snort Community Rules:安装snort社区版规则
    • Enabling Built-in Rules:加载内置规则,这些规则可以检测一些普通规则不太好描述的流量
    • Passing PCAP files into Snort and Output Alerts to .csv:介绍了snort读pcap包的一些操作,并提供了一个pcap包下载地址,来测试规则 https://www.netresec.com/index.ashx?page=MACCDC
    • JSON Alerts Output Plugin:使用snort的其他输出插件,如alert_json,以方便导入Splunk来处理
    • Snort Startup Script:设置snort的启动脚本
  1. 在接下来,指南介绍了Splunk以及一些附录信息,这里就先不阅读了,仅放上标题以供参考。
    • Splunk
    • Using Splunk
    • Cleaning up your install
    • Conclusion
    • Appendix A: Installing Example Plugins
    • Appendix B: Changing the Install Location
    • Appendix C: Building the Developers Guide
    • Appendix D: Installing BATS: Bash Automated Testing System

阅读snort3介绍

snort3的介绍,也就是和snort2.9.x的区别。阅读的文档就是安装指南中提到的。
https://blog.snort.org/2014/12/introducing-snort-30.html
里面并没有什么重点,稍微有点用的就是一些新特性,但是是14年写的也不知道过时没有,稍微翻译一下。

  • 人性化设计
    • 我们希望能让人们尽可能简单的学习和运行snort,这意味着不需要配置内存、端口、参数等等
    • 内建的文档
    • 内建的配置文件
    • 错误和多错误的支持
    • 在启动时确认配置文件
  • 更加简单的规则语言
    • 我们使编写规则更加简单
    • Sticky buffers
    • Custom http buffers
    • 自动检测所有的协议
  • 命令行shell
    • Secured to localhost
    • 允许某些人重载配置文件
    • 允许你暂停或恢复检测
  • 多线程和多核
    • All new design for multithreading, maintaining a single persistent configuration for many threads.

阅读snort3用户手册

https://snort.org/downloads/snortplus/snort_manual.html

其实并没有去读这个手册,因为太长了,这个手册应该作为一个参考来使用。粗略的看一下目录,会发现它介绍了很多很多关于snort3相关的信息,十分具有参考价值。

总结

  1. 其实本篇并没有学习什么新知识,主要是对snort3有一个概览性的了解。和snort2没有看出来有什么本质性的区别,但是也增加了很多新功能。
  2. 因为本人对snort也仅仅局限于使用上的了解,所以还是决定首先了解snort的整个架构先,之后再来查看一些细节部分,以及选出一些比较感兴趣的部分,做些深入研究或调查,完成毕业设计。
  3. 针对学习笔记-01提到了剪贴板共享问题,寻找了很久,的确没有合适的软件完成win-mac的剪贴板共享问题,罗技鼠标的Flow功能可能也不合适,这里自己想办法实现了一下。
    • Windows安装Ditto(用于管理剪贴板的软件),它会将所有剪贴板内容写入数据库。
    • 将数据库做一个硬连接到SMB共享文件夹
    • Mac OS上使用Automator,绑定一个快捷键到一个脚本上
    • 这个脚本读取SMB中的数据库文件,并读出最新一条记录,并写入剪贴板中echo [record] | pbcopy