网站建设哪家焦作整站优化

当前位置: 首页 > news >正文

网站建设哪家,焦作整站优化,免费个人网站2018,如何做网站监控2.1 什么是IDS? IDS 的最终目的是检测黑客的攻击行为。那我们应该在哪里进行检测呢#xff1f;首先是在网络流量中#xff1a;黑客在控制了一台服务器之后#xff0c;需要进行权限提升#xff0c;而权限提升需要黑客在内网中挖掘各个服务器存在的漏洞。因此#xff0c;黑… 2.1 什么是IDS? IDS 的最终目的是检测黑客的攻击行为。那我们应该在哪里进行检测呢首先是在网络流量中黑客在控制了一台服务器之后需要进行权限提升而权限提升需要黑客在内网中挖掘各个服务器存在的漏洞。因此黑客会发起很多探测和攻击的网络请求。其次就是在服务器系统中黑客也可以利用服务器系统或应用本身的漏洞进行权限提升同时黑客也会尝试在系统中留下后门这些行为都是通过系统操作来完成的。 因此根据检测内容的不同IDS 可以分成两种类型NIDSNetwork Intrusion Detection System网络入侵检测系统和 HIDSHost-based Intrusion Detection System基于主机型入侵检测系统。 1.第一种类型:NIDS 在讲防火墙的时候我们提到防火墙存在盲区防火墙只能够检测穿越网络边界的流量如果黑客已经进入到了内网那防火墙就没办法提供任何的安全防护了。这个时候我们就需要使用 NIDS 了。 NIDS 主要检测网络流量中的攻击行为。区别于部署在网络边界的防火墙NIDS 一般部署在内网的网络节点路由器或交换机中所有的网络请求都会流经这些网络节点所以NIDS 基本可以获取到对应网络节点下全部的网络行为。 另外和防火墙不同的是NIDS 一般不具备拦截网络请求的能力。这也让 NIDS 能够很好地隐蔽自己让黑客很难发现。对于防火墙和 WAF 来说黑客总是会不断尝试各种方式来绕过这些安全产品原因就是黑客知道自己被拦截了。因此这些安全产品需要不断地更新规则策略对抗黑客。如果黑客都不知道 NIDS 的存在就不会刻意地去绕过 NIDS 的检测这也使得 NIDS 的检测能力比较稳定不需要频繁地更新规则策略。 NIDS 是一个比较经典的安全产品你可以直接使用市面上的开源工具比如Snort、Suricata等。这些工具也依据 CVE 库开发了完整的入侵检测规则。以 Snort 的一条检测规则为例 Rule Header Message alert tcp \(EXTERNAL_NET \)HTTP_PORTS - $HOME_NET any Message msg: “BROWSER-IE Microsoft Internet Explorer CacheSize exploit attempt”; Flow flow: to_client,established; Detection file_data;content:recordset; offset:14; depth:9;content:.CacheSize; distance:0; width:100;pcre:/CacheSize\s\s/;byte_test:10,,0x3ffffffe,0,relative,string; Metadata policy max-detect-ips drop, service http; Reference reference:cve,2016-8077;这个规则是用来检测 CVE 2016-8077 的。CVE 2016-8077 的攻击原理就是黑客先构建一个恶意网站如果用户使用 IE 浏览器访问了这个网站就会被黑客控制。因此在第一行的 Rule Header 中定义了 NIDS 需要检测从外网 HTTP 服务返回给本地的 TCP 请求也就是检测用户访问了一个网页并收到的返回请求。 然后再 Detection 这个部分对该漏洞的关键词进行正则匹配也就是/CacheSize\s\s/。这样一来我们就能够发现黑客通过这个 CVE 漏洞控制用户 IE 浏览器的攻击行为了。 所以我们在使用 NIDS 的时候只要注意及时对规则进行维护即可。从 Snort 的规则中我们也可以看出NIDS 的检测逻辑就是对请求的内容进行正则匹配不具备分析上下文的能力。因此NIDS 一般只能够对单次的攻击请求进行检测。 第二种类型HIDS。 精明的黑客在控制了服务器之后会尽可能避免发送大量的网络请求以此来隐藏自己。那么我们是不是就没办法发现黑客了呢当然不是。无论多么精明的 客也一定会在服务器上留下各种痕迹。不管是入侵的时候通过各种 Web 漏洞执行了系统命令还是入侵成功之后在系统中埋下了后门又或者是直接利用系统漏洞进行权限提升这些操作最终都会在服务器系统上执行。因此我们可以通过监控各个用户在服务器系统上的行为来检测黑客的存在。这就是 HIDS 的功能 了。 HIDS 主要检测服务器系统中的攻击行为。NIDS 运行在某个网络节点之上相当于集中式的对网络流量进行检测但是 HIDS 运行于每一个服务器中也就相当于对系统行为进行分布式检测。那分布式的行为处理有什么好处呢在 NIDS 中我们是基于少量的网络节点检测全部的网络流量。而在 HIDS 中只需要每个服务 器检测各自内部的行为也就相当于将资源消耗分散到了每一台服务器中这就对硬件的性能要求比较低也就节约了公司的防护成本。另外HIDS 一般以 ROOT 权限运行在操作系统中。因此HIDS 能够监控的行为更丰富比如 执行的系统命令 发起和接受的网络请求 运行的进程、监听的端口号等 系统关键文件的完整性 其他黑客可能留下痕迹的地方
对比于 NIDSHIDS 的开发难度会高很多。主要是因为 NIDS 只需要部署在关键的网络节点上一个公司可能也就有几百个这样的节点而 HIDS 需要部署在公司所有的服务器中一个公司有上万个服务器是很常见的事情。而且我们会在日常使用中频繁改动服务器这也使得服务器的系统环境很不统一。所以很多公司都需要基于自己的情况自行开发 HIDS。 据我了解很多公司都会基于Osquery来开发 HIDS。Osquery 提供的信息采集功能可以满足大部分的 HIDS 需求我们只需要运行一句简单的 SQL 语句就能够拿到系统的关键信息了。比如 SELECT name, path, pid FROM processes通过这段代码我们可以从 Osquery 中获取到当前的全部进程信息。但是我之前在测试 Osquery 的时候发现它没办法在 Centos 5 版本的系统中运行也就不适用于我公司的环境。最终我只能选择基于 Go 和 C 语言去一项一项实现各类信息采集的工作。 第三种类型IPS 在 HIDS 和 NIDS 中我们分别通过网络行为和服务器系统行为对黑客入侵进行检测。但是你需要注意它们都只是检测而已。也就是说如果你不进行人工干预的话黑客的入侵行为并不会受到任何影响仍然可以持续进行。精明的黑客一定会选择夜半三更的时候发起攻击等你睡觉起来黑客早已经拿到它们想要的数据了而你只能看着 HIDS 和 NIDS 给出的一堆报警无可奈何。 这显然不是我们希望的结果。因此我们在 NIDS 和 HIDS 中加入了拦截的能力就成了 NIPS 和 HIPS统称为 IPSIntrusion Prevention System入侵防御系统。IDS 和 IPS 是相辅相成的它们唯一的区别在于IDS 强调的是检测IPS 强调的是拦截。当发现了黑客的攻击行为后IDS 会产生报警然后公司的安全响 应人员会对报警进行人工处理。IPS 同样会产生报警不过报警的同时IPS 会尝试对黑客的行为进行拦截在第一时间限制攻击产生的影响范围。 IPS 的实现总体和 IDS 比较类似只是 IDS 通常不会去修改网络节点和操作系统而 IPS 会实现额外的逻辑对网络节点和系统内的行为进行封停从而阻止黑客入侵。 为了加深你对防火墙、WAF、IDS 和 IPS 这些安全产品的理解我整理了一个对比表格。 2.2 什么是蜜罐 在 IDS 的检测机制中我们主要是基于对系统行为和网络请求的分析判断是否存在攻击行为。这种检测模式会存在两个主要的问题第一分析结果总会出现漏报和误判而这些漏报和误判不论是对用户还是对安全人员都会造成极大的困扰第二分析的规则都是人工产出的会存在滞后性。当某种新型攻击出现时我们很可能无法及时更新 IDS 的检测规则让 IDS 形同虚设。那么我们应该如何提升分析的准确性呢对于未知的攻击我们又该如何及时发现呢蜜罐就是一种能满足这两点需求的入侵检测工具。 所谓“蜜罐”就是一台部署在内网的服务器。这个服务器没有任何保护措施并且提供带有漏洞的服务就是为了吸引黑客来攻击它。蜜罐由安全人员部署在网络的各个节点中理论上其他开发人员都不会知道蜜罐的存在也就不会向蜜罐发起任何请求。而黑客入侵内网后需要对内网进行探测如果发现蜜罐中的服务 有漏洞自然就会针对蜜罐发起攻击。因此蜜罐内的一切行为都是黑客产生的。基于蜜罐的报警和日志我们就能够及时发现黑客的存在并且还原出黑客的攻击行为。 蜜罐的类型主要分为两种低交互蜜罐和高交互蜜罐。 所谓低交互蜜罐就是蜜罐内的所有服务都是模拟的不能提供真实的服务功能。比如低交互蜜罐为了模拟一个弱密码的 SSH 服务它会监听 22 端口。而黑客一旦向这个 22 端口发起 SSH 登录请求蜜罐就会返回登录成功的响应。但是蜜罐并没有提供真实的 SSH 服务只是模拟了一个登录成功的响应而已所以黑客并不能通过 SSH 连接上服务器。 高交互蜜罐会提供一个真实的服务而且不施加任何限制只是用来做详细的记录而已。还是以上面 SSH 登录为例在高交互蜜罐中蜜罐会开启一个真实的 SSH 服务黑客能够通过 SSH 连入并且控制蜜罐。但是黑客连入蜜罐后的所有行为都会被记录下来并产生报警。而我们只需要及时处理报警赶走黑客就可以降低蜜罐被控制后所产生的影响。 低交互蜜罐和高交互蜜罐的对比也很明显。低交互蜜罐更安全因为它不提供真实的带有漏洞的服务只是模拟服务所以黑客无法控制蜜罐。但模拟的服务可能 被黑客发觉导致黑客不上钩。这个时候高交互蜜罐对黑客更有吸引力让我们能有更大的概率发现入侵攻击的行为。 当然蜜罐也是有缺陷的。它的主要缺陷就是入侵检测的实现非常依靠运气实现的前提是必须有黑客找到蜜罐。也就是说如果黑客进入内网后首先发现其他带有漏洞的正常服务器就不会进入到蜜罐中了。 蜜罐的实现比较复杂它需要恰到好处地把握提供多少的交互既能吸引黑客又不至于产生漏洞。好在你并不需要关心它的具体实现因为网上已经有不少成熟的开源蜜罐了你可以直接拿来使用。 2.3 如何构建入侵检测体系 在了解了 IDS、IPS 和蜜罐之后我们发现这几款入侵检测工具各有其优势和不足。因此在实际的安全防护中我们通常会将它们组合起来使用。 首先蜜罐具备较高的准确率并且能够发现未知的攻击。因此我们可以将蜜罐中黑客的行为特征作为攻击样本的特征输入到 IDS 和 IPS 中去。这样一来IDS 和 IPS 就具备了根据黑客行为自动学习和升级的能力。 其次IPS 通常是直接拦截黑客的攻击行为来及时止损。但这样一来黑客也会察觉到入侵检测系统的存在。因此我们可以将 IPS 的检测拦截行为调整为一旦检测到攻击行为就将行为转发到蜜罐中。对于黑客来说攻击行为看起来仍然是成功的但实际上不会对系统产生任何影响且攻击行为都被记录下来了。 最后为了提升黑客发现蜜罐的概率我们通常需要在内网中广泛地部署蜜罐。但是这又增加了很多额外的硬件部署成本。因此有的 HIDS 中会嵌入“微蜜罐”就是利用服务器本身的资源实现一个小型的蜜罐服务。比如某个部署 HIDS 的服务器中本来没有 MySQL 服务也没有监听 3306 端口我们可以通过设置 服务器让 HIDS 监听 3306 端口并模拟一个 MySQL 服务出来。这个 MySQL 服务是 HIDS 模拟的开发人员不会感知到所以发起 MySQL 连接的一定是黑客。这就是“微蜜罐”。 现在你应该知道了一个系统化的入侵检测系统需要依靠各个安全产品之间的相互协作才能够实现防护能力的最大化。我总结了一个成熟的入侵检测系统的组织结构图。 在这个入侵检测系统中NIDS 负责对网络节点进行检测网络中会包含部署了 HIDS 的系统和蜜罐系统。最终我们需要通过 ELK 来统一收集各个安全产品的检测日志实现信息同步。所有 IDS 或者 IPS 的信息都是相互关联的我们就能够基于这个完整的信息进行全盘的综合分析了。