扫描是一切入侵的基础,通过扫描来发现目标主机是否为活动主机、操作系统是什么版本、开放了哪些服务等。扫描技术纷繁复杂,新的扫描技术也层出不穷,不可能穷举所有扫描技术,下面按入侵步骤对主机扫描、端口扫描和服务扫描技术做一个简要分类与概述。

活动主机扫描可分为两类:1)ICMP echo扫描与Broadcast ICMP扫描;端口扫描也分为两类:1)开放扫描,这类扫描会产生大量的审计数据,容易被对方发现,但其可靠性高(例如TCP connect扫描);2)秘密扫描,这类扫描能有效的避免对方入侵检测系统和防火墙的检测,但这种扫描使用的数据包在通过网络时容易被丢弃从而产生错误的探测信息(例如SYN、FIN、ACK、NULL等扫描);最后一类为针对特定服务扫描,指对特定系统(OS型号与版本)的特定服务(网络服务与服务版本)的特定漏洞进行扫描,现有扫描软件一般都会以插件形式来增加对特定漏洞扫描支持,一旦扫描确认漏洞存在后可直接利用。例如针对WEB服务器的扫描,或针对FTP服务器扫描。

不同的扫描技术与扫描方式,有不同的检测方法。但检测的总体思路是一致的,即利用iptables的配置策略来记录日志(具体配置策略请参考检测思路中不同场景的配置),再通过对日志的分析查找来检测可疑的扫描并发出报警。下面检测方案中,针对不同的扫描技术与扫描方式,利用不同的检测方案进行检查。

场景1:ICMP扫描痕迹检查

针对Broadcast ICMP包:

在配置了iptable的系统中,配置如下的日志记录策略:

iptables -A INPUT -p icmp --icmp-type echo-request -j LOG

查找协议类型为ICMP echo request的广播包,若发现此类型包的记录,发出报警。

针对ICMP echo包:

思路1:

若能确定许可的IP地址范围,用白名单来发现可疑行为并报警;

思路2:

若不能确定IP地址白名单,查找非工作时段(例如深夜)记录,若找到发出相应的可疑行为报警。

场景2:TCP Connect扫描痕迹检查

使用TCP三步握手来探测是否开放相应的端口与服务

思路1:

首先维护操作系统与业务系统正常运行所需要开放的端口的白名单,并配置相应的iptables日志记录策略:

iptables -A INPUT -p tcp -m state --state NEW,ESTABLISHED -j LOG

在记录的日志中查找,若日志中记录的端口不在白名单中,发出报警。

思路2:

用统计方法检测,分别针对低速扫描(1小时—2天发一个包)和常规扫描(1分钟—1小时会发N个包)有两种设置统计检测的方法。第一种针对常规扫描,若发现一段时间内(建议值为5分钟,可选范围为1—60分钟),来自同一IP地址对不同目标端口的记录超过一定计数阈值(建议值为3,建议范围为>3的值),则报警,以5分钟为步进值持续对日志进行统计查找;第二种针对低速扫描,若一段时间内(建议值为6小时,可选范围1小时—2天),来自同一IP地址对不同目标端口的记录超过一定计数阈值(建议值为3,建议范围为>3的值),则报警,

注:时间阈值和计数阈值的具体值还应根据实际情况设定

场景3:WEB扫描痕迹检查

利用GET请求WEB服务器发现服务器版本、漏洞等信息,进一步利用这些漏洞入侵对linux的WEB服务Apache,这种扫描会在WEB服务器日志access.log中记录,特点明显。即同一个IP持续10分钟每秒产生10多个get请求,很明显的web扫描痕迹。可以用时间阈值(建议值为5分钟,建议范围建议范围为1—1440分钟)与计数阈值(建议值为10,建议范围为>3的值)来过滤该IP的请求日志,分析攻击者是否入侵。另外,对于SQL注入、XSS注入、命令注入和路径遍历扫描可根据日志中的关键字识别潜在的WEB扫描与攻击痕迹。

注:时间阈值和计数阈值的具体值还应根据实际情况设定,且可变更

作者:jz

探测活动主机的代码linux,Linux入侵痕迹检测方案【华为云技术分享】相关推荐

  1. Linux入侵痕迹检测方案【华为云技术分享】

    背景说明 扫描是一切入侵的基础,通过扫描来发现目标主机是否为活动主机.操作系统是什么版本.开放了哪些服务等.扫描技术纷繁复杂,新的扫描技术也层出不穷,不可能穷举所有扫描技术,下面按入侵步骤对主机扫描. ...

  2. 【华为云技术分享】【开发记录】Linux服务器维护常用命令(二)

    在Linux系统维护的过程中,随时可能有需要查看 CPU和内存的使用率.对于服务器的性能维护和分析,我们需要使用到一些基本的命令.会根据实际的应用需要,不断的更新内容. 一.查看系统整体的负载(top ...

  3. 【华为云技术分享】一行代码就能写一个日志打印组件,你信吗?为你揭晓LiteOS中日志打印组件的核心

    1. 做实验引发的思考 在学习LiteOS日志打印组件使用的时候,我记录了一篇博客:atiny_log | LiteOS 物联网操作系统中的日志打印组件使用分享,关于实验的具体内容,请阅读这篇博客. ...

  4. 【华为云技术分享】Linux内核补丁源码分析(1)

    在上一期中,我们介绍了Linux内核编程环境,在这一期中,我们将通过实例来介绍如何分析Linux内核的补丁. 一.Linux内核补丁 在"Linux内核发展史"中,我们简要介绍了L ...

  5. 【华为云技术分享】Linux软件安装的几种方法 (一)—— apt-get

    Linux系统上安装软件的方法和在windows上安装软件是有很大不同的,有时候Linux上安装软件碰到各种依赖不满足,是极为头疼的事情,下面盘点一下Linux上安装软件的几种方法,笔者基本上用的是u ...

  6. 【华为云技术分享】Linux内核的分布式编译(1)

    上一期中我们介绍了Linux内核模块依赖图的绘制方法,这一期中我们将介绍Linux内核的分布式编译方法和分布式编译工具distcc的安装过程. 一.Linux内核的分布式编译 分布式编译是指将源程序通 ...

  7. 【华为云技术分享】Linux内核编程环境 (2)

    在上一期中,我们介绍了Linux内核编译方法,这一期我们用一个例子来介绍如何向Linux内核中增加一个模块. 一.LKM内核模块 LKM是Loadable Kernel Module的缩写,意思是可加 ...

  8. 【华为云技术分享】Linux内核编程环境 (1)

    在上一期中,我们介绍了Linux内核的源码结构,这一期我们介绍Linux内核编程环境,首先介绍的是Linux内核的编译方法. 一.Linux内核编译方法 本期中我们以Linux 4.19.94版内核来 ...

  9. 【华为云技术分享】Linux内核发展史 (3)

    这一小节我们主要介绍Linux系统应用程序的主要来源--GNU. 一.GNU Linux包含系统内核和提供系统服务和工具的应用程序两个部分.Linux所使用的应用程序是由许多程序员编写并自由发布的.L ...

最新文章

  1. 使用ASP.Net WebAPI构建REST服务(一)——简单的示例
  2. java 百度地图地址解析_百度地图Java地址解析和经纬度解析
  3. deepin下深度终端使用ssh-agent(xshell中的xagent功能)
  4. java记事本打开功能_Java简易实现记事本的打开与保存
  5. 修改Noteexpress插入参考文献序号的颜色
  6. 用matlab来计算函数,Matlab函数求导教程
  7. 用户研究|为何这么多用户愿意成为VIP?
  8. python批量图片进行双三插值BiCubic后,输出保存(亲测可用)。
  9. lisp画弯箭头_下篇-大神总结:CAD制图的43个技巧,都学会你就逆天了!
  10. Android开发人才前景分析及建议
  11. Pyton 类和对象
  12. android p 预览版壁纸,Android P预览版加入黑暗模式主题 iOS啥时候才能有呢?
  13. 团队管理24--团建活动
  14. FusionCharts基本使用
  15. dump在计算机中的意义
  16. 百慕大永中迎来ECFA时代
  17. MindMapper中怎样插入关联性
  18. 内存数据库应用之NBA篮球图文直播室存储设计(Redis版)
  19. wine常见问题集合
  20. iphone快捷指令一键重启_苹果手机一键重启方法

热门文章

  1. 扩展、统计线性化和无迹RTS平滑器
  2. poj 2263 最短路变形——最小边的最大值
  3. levelshifter工作原理_从滑块问题看Level Shifter中Latch的状态转换
  4. input复选框改变样式
  5. 旋转数组(右旋转,js实现,unshift,splicec实现)
  6. postgresql 创建用户_PostgreSQL创建用户和修改用户密码
  7. java设置面板的大小_java – 设置面板的大小
  8. 有什么办法可以判断页面是静态还是动态?_你知道seo到底是什么吗?该怎么优化?...
  9. 数值运算python嵩天_python语法_算数运算+赋值运算符+比较运算符+逻辑运算符
  10. 修改pom文件_自动化测试基础篇:Selenium 框架设计(POM)