入侵分析十诫

这些年来,笔者一直积极参与入侵检测分析师的培训和发展工作,同时还担任了 SANS 信息安全课程《深入入侵检测》(编号503)的授课导师。笔者发现自己一直在不断改变对有效入侵检测的哲学认识。然而,不论该哲学如何演化,有些主题总是保持不变。

通过这些经历,笔者创作了「入侵分析十诫」,这十诫所突出的核心主题不仅是笔者想要灌输给接受培训的分析师的,也是希望在自身的入侵分析工作中能融会贯通的。这十诫不是命令你们做什么,不过因为恰好有十条,所以取了「十诫」 这个还算切合的标题。入侵分析十诫可能不适合你或你所在公司的目标,或者不符合你的个人风格,但是它们对笔者的确用处匪浅!

1、分析师,分析师,分析师!

对分析师来说最重要的是深刻认识到他们自身的重要性。分析师是安全防护的第一道防线——他们在电脑前时刻关注着安全威胁的存在。分析师能阻挡攻击,也能防止被攻击后的情况恶化。在大多数信息安全事件的开始,分析师会根据入侵检测系统的告警给出解决提示;在事件的结尾,分析师会输入新的签名并基于已知安全事件的信息开发新的工具。从信息安全事件的开始到结束,分析师从始至终无处不在。好吧,也许是有点戏剧性,但入侵分析师的重要性是不可低估的。

2、除非是你自己创建的数据包,否则没有绝对的安全。

假设是分析的前提,记住这点非常重要。你在未来做出的大多数决定将基于一个数据包或者一条日志项,然后根据在研究中积累的经验对其反复斟酌。事实是,网络数据流并不是分析师生成的,因此我们所做的每个决定只是基于部分数据做出的假设。不过别担心,这没有什么不对的。问问你在化学界和物理界的同僚们,他们的绝大部分工作也都是在假设的基础上开展的,然而他们也取得了巨大成功。重点是没有什么是绝对的。这个 IP 地址真的对应一个已知的合法主机么?这个域名真的属于 XYZ 公司吗?这台 DNS 服务器真的应该和那个数据库服务器进行交互吗?没有什么是绝对的,有的只是假设,正因为如此,请记住假设的东西是可以改变的。总是怀疑自己,并保持警觉。

3、留意你从数据中抽取的信息是否准确。

分析师需要依赖数据来采取行动。这些数据可能来源于 PCAP 文件、IIS 日志文件或者系统日志文件。由于你会花大量时间通过各种工具与这些数据进行交互,因此知晓这些工具如何和数据交互至关重要。你是否知道运行 Tcpdump 时如果不对参数另做规定,它将只能捕捉一个数据包中前 68 个字节的数据?是否知道 Wireshark 显示 TCP 数据包中的序列号和应答号时默认显示的是相对值而非真实值?工具是人开发的,然而有时候工具的“功能特征”会模糊数据并阻碍正确的分析。刚刚举例的两个“功能特征”其实是很好用的,但是也应该对它们保持警觉,才可以在需要时获取所有的包数据,或查看真实的序列号和应答号。当我们从事一份依赖数据且数据至上的工作时,必须要理解工具和数据是如何进行交互的。

4、两个人的审视好过只有一人的审视。

作者配有编辑,警察配有搭档,核武器库里总安排两个人,这都是有原因的。不管你多么富有经验或者表现得多好,你总会遗漏掉什么。之所以需要两个人是因为不同的人背景相异。笔者在政府部门工作,因此在检查网络流量时,第一件事就是查看其来源国和目的国。笔者曾和拥有系统管理背景的人共事,因此,他会在检查网络流量时最先查看端口号。笔者甚至和从事数值计算处理的人共事过,他就会先查看包的大小。这表明我们的不同经历塑造了差异化的策略。这意味着做数值处理的人能发现做系统管理员的人没发现的信息,而为政府部门工作的人能发现做数字处理的人没有发现的信息。不管什么时候,有另个人来审视你面临的问题总是一个不错的主意。

5、不要邀请攻击者共舞

这是我在最初启动一台 Snort(轻量级网络入侵检测系统)传感器主机那天就深信不疑的事情。后来我在大师 Mike Poor 的 SANS 课程上听到了他更为精妙的表述——永远不要邀请攻击者共舞。对分析师来说,采用一些超出常规的手段来侦查恶意 IP 地址是件极具诱惑的事情。相信我,有很多次我都想对给我发送大量明显刻意制作的 UDP 数据包的恶意 IP 进行端口扫描。每次有人试图对笔者防护的网络进行 DoS 攻击时,除了拿他们可怜的毫无戒备的 DSL 连接发泄愤怒之外别无他求。这里的问题是,99% 的时候我们都不知道面临的是谁或者是什么工具。虽然你可能看到他们的扫描活动,但是产生这些网络流量的主机有可能被一个庞大组织甚至是另一个国家的军事部门操纵。即使一个简单的 ping 命令都会让攻击者知道你发现了他们的存在,从而促使他们改变攻击策略,切换源主机,甚至加强攻击力度。你不知道你的对手是谁,亦不知他们的动机或具备怎样的能力,所以在网络防护时永远不要挑衅他们。

6、情境很重要!

网络情境可以彻底改变你的监控和检测能力。为了有效防御,必须具备你所防护的网络的上下文。网络图、服务器列表及其作用、IP 地址的分配故障等等都会是你最好的伙伴。基本上,一切可以记录网络资产、它们如何运作以及它们和其他网络资产如何关联的文档都会在处理异常事件时派上用场。也许以你在公司中的职位,无法获取这些信息,或者这些信息现在仍未整理出来,那么你将会花很长时间让同事下大力气把这些文档整理出来。虽然这会很困难,但仍然值得你的争取和坚持。不管你做出的努力是硬着头皮向首席信息官提出你的依据和要求,亦或只是请你的网络工程师们喝一杯他们最爱的酒精饮料,你终将获得回报。

7、总的来说,数据包是合法的。

人生的终极争论是人之初性本善还是性本恶。对于数据包来说,这个争论同样存在。作为分析师,你可以认为所有的数据包都是恶意的,也可以认为所有的数据包都是合法的。笔者注意到,大多数分析师在职业生涯的初期都抱着前一种观点,然后很快就过渡到了后一种观点。那是因为把网络流量中的所有数据都当成潜在的根级别入侵危害来处理是根本不可行的。如果你那样做,你会因为花了整整一天却只处理了一个告警而被解雇,或者被你自己折腾得精疲力竭。有些事要说清楚,数据包有合法的有恶意的,但事实的真相是网络流量中的绝大部分数据包都不是恶意的,因此在数据包被证实是恶意的之前,应当视作合法数据包来处理。

8、tcpdump 工具之于入侵分析犹如望远镜之于天文学

每当面试入门级以上的入侵分析师时,笔者都会让他们描述下如何研究一个典型的入侵检测系统告警。然而让笔者感到沮丧的是这些人总是回答「我会使用 tcpdump、Wireshark Network Miner、 Netwitness、Arcsight、 Xeyes 等工具研究告警」,而不做进一步的具体解释。虽然它们是进行入侵分析的工具和技术,但是入侵分析本身不是工具和技术,而是艺术。如果不是这样的话,那么在入侵分析的过程中人的存在就不是必要的了。一个高效的分析师应该明白,即使使用这些工具是工作最重要的部分,但它们也只是拼图中的一块块碎片。就像天文学家的望远镜只是其工具库中帮助他发现行星围绕太阳运转原理的一个工具一样,Wireshark 也只是分析师的工具库中帮助他找出是什么让一个数据包绕过防火墙规则的一个工具。从技术开始,加上一些工具和软件,统观大局,留意细节,再结合你从过往经历中获取的经验,你将创造出一套属于自己的入侵分析哲学。至此,你才将自己的分析上升到艺术的层面,从而使你极具价值,无法被机器取代。

9、有时候,我们会失败。

不管你多么努力阻止攻击,总会出现你防护的网络被成功攻击和入侵的情况。在现代信息安全格局中,这是不可避免的,你能做的事情也很有限。这些时候,分析师很可能因为攻击事件而受到批评。因此,你需要为防护失败的发生做好准备。成功入侵事件不会因为如何发生而被记住,但会因为如何被应对、宕机时长、丢失的信息量以及其最终造成了公司多少财产损失而被记住。你能给管理者什么建议以保证此类事件不再发生?你怎么给自己的上司解释这次入侵攻击为什么没被成功检测?你使用的工具有什么缺陷?在发生入侵事件之前,这些问题都是无法得到充分的解答。但是你现在绝对可以开始考虑这些问题,并制定向关键人物回答以上问题的方案。你会措手不及,遭遇偷袭,但重要的是你不会表现出来并保持坚定严肃的姿态。这是决定你将获得晋升还是被解雇的关键。

10、深度挖掘

到你光荣退休的那天,你需要代表荣誉的桂冠来证明你的功勋,而你的功勋应该是你尽职尽责并拼尽全力的事实。笔者在入侵分析方面的“座右铭”是“深度挖掘”。网络防护人员必须控制 65535 个端口,而攻击者只需入侵一个就足够了。网络防护人员必须保护一万名用户,而攻击者只需要欺骗一个用户就足够了。网络防护人员必须检查成百上千万的数据包,而攻击者只需要在一个数据包中隐藏好恶意数据就足够了。你要怎么样做才能对数据有更敏锐的感知?你要锻炼什么样的能力,才能与攻击者相抗衡?你有一种预感,事情并不像看到的那么简单,你要怎么样做才能深度挖掘?

原文链接:http://chrissanders.org/2011/01/the-10-commandments-of-intrusion-analysis/

本文转自 OneAPM 官方博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 寻找数组的中心索引_Leetcode724查找数组Python的中心索引,LeetCode724,寻找,python...

寻找数组的中心索引这一次打卡不知道又摸了多久的鱼,周五没做题,周日补上。题目给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右…

算法--动态规划

动态规划需要弄清楚两个问题,首先子问题的最优解,其次重叠子问题。首先来看一个问题吧: 有3种硬币,对应的面值是1、2、4,如果要组成11元,最少需要几枚硬币呢? 思路:考虑组成0元&…

[译]机器人操作系统简介:终极机器人应用框架(上)

2019独角兽企业重金招聘Python工程师标准>>> [译]机器人操作系统简介&#xff1a;终极机器人应用框架 /*** 原文出处&#xff1a;https://www.toptal.com/robotics/introduction-to-robot-operating-system* author dogstar.huang <chanzonghuanggmail.com> 2…

底量超顶量超级大黑马指标源码_一旦出现底量超顶量形态,是超级大黑马诞生!...

一、底量超顶量当股价形成头部时&#xff0c;成交量必须放大&#xff0c;这种放量虽然不能和上市前三天相比&#xff0c;但也必须是相对天量&#xff0c;随即出现天价。但是&#xff0c;有些个股在形成头部之时&#xff0c;成交量只是象征性地放大&#xff0c;换手率低&#xf…

AIKit v4.11.0 – WordPress AI 自动编写器、聊天机器人、写作助手和内容重定向器 / OpenAI GPT 插件

AIKit v4.11.0&#xff1a;WordPress的AI革命 一、引言 AIKit v4.11.0是一款为WordPress用户精心设计的强大插件&#xff0c;该插件集成了OpenAI的GPT-3技术&#xff0c;为用户提供了前所未有的AI写作和聊天机器人功能。此版本的推出&#xff0c;将WordPress的功能扩展到了全新…

精华阅读第6期|程序猿的世界,你不懂!

上周&#xff0c;微信圈被一篇文章刷屏了&#xff01;那就是西乔出品的《你为什么总招不到程序员&#xff1f;》&#xff0c;西乔的漫画之所以这么火&#xff0c;很重要的原因就是她懂程序猿的生活&#xff0c;同时作品也能够引起大家的共鸣。其实&#xff0c;移动开发精英俱乐…

ai建立使用图案_ai自定义图案的方法详解步骤图

1.ai中如何制作剪纸纹理图案确定以后&#xff0c;大概可以看到这样的操作界面&#xff0c;界面上多了一个”图案选项“面板&#xff0c;在软件界面中心&#xff0c;可以看到的图案是5排5列的图形&#xff0c;也就是”图案选项“下面显示的份数”5X5“&#xff0c;也可以自己另外…

nginx(五)rewrite

**ngx_http_rewrite_module模块配置**将请求的uri基于正则表达式进行重写&#xff1b;例&#xff1a;http-->httpsdomain1.tld-->domain2.tlduri1-->uri2指令&#xff1a;rewrite regex replacement [flag];regex:正则表达式&#xff0c;用于匹配用户请求的uri&#x…

恒生估值系统_恒生指数和恒生国企指数投资价值分析

恒生指数和恒生国企指数都是港股的大蓝筹指数。恒生指数是从香港股票市场挑选出50只优质蓝筹股票组成的指数。恒生国企指数又称为H股指数。H股指注册地在内地&#xff0c;但是上市地在香港的外资股票。恒生国企指数的成分股数目是没有限制的&#xff0c;但是必须为市值最大&…

java程序练习

数组求和作业 开发环境&#xff1a;java 工具&#xff1a;eclipse 两种数据类型excel和csv 在同学建议下&#xff0c;我选择用csv文件打开&#xff0c;这就引来了第一个问题&#xff0c;在java中如何调用csv文件。以下是我百度的结果 http://www.educity.cn/java/627496.html &…

mysql数据库增删改查关键字_MySQL数据库(增删改查语句)

MySQL数据库(增删改查语句)一.登录数据库&#xff1a;----> mysql -uroot -proot;(对应用户名和密码)二.SQL语句&#xff1a; 数据定义语言DDL 用来定义数据库、表、列&#xff0c;关键字为 create、alter、drop 数据操作语言DML 用来进行数据库更新的操作&#xf…

ECC 算法

一、简介 1&#xff09;椭圆曲线密码学的初级读本 http://8btc.com/thread-1240-1-1.html 2&#xff09;ECC加密算法入门介绍 http://www.pediy.com/kssd/pediy06/pediy6014.htm &#xff13;&#xff09;ECC算法原理的认识 http://blog.csdn.net/sszgg2006/article/details/41…

hwd是长宽高吗_五菱皮卡要来了,五种形态任你选,颜值是你期待的吗?

近日&#xff0c;网友上传了五菱皮卡的渲染图&#xff0c;引起了大家对五菱皮卡的热烈讨论。在刚过去的2020年&#xff0c;五菱凭借性价比超高的宏光MINI EV成为了新能源领域的领头羊&#xff0c;而后推出的‘大四座’家用车五菱凯捷也取得了五万台的预定量&#xff0c;五菱一时…

Java多线程:用三个线程控制循环输出10次ABC

题目&#xff1a;有A,B,C三个线程, A线程输出A, B线程输出B, C线程输出C&#xff0c;要求, 同时启动三个线程, 按顺序输出ABC, 循环10次。 解题思路&#xff1a;要按顺序输出ABC, 循环10次&#xff0c;就要控制三个线程同步工作&#xff0c;也就是说要让三个线程轮流输出&#…

mysql if语句后面执行两个语句_MySQL的if,case语句使用总结

Mysql的if既可以作为表达式用&#xff0c;也可在存储过程中作为流程控制语句使用&#xff0c;如下是做为表达式使用&#xff1a;IF表达式IF(expr1,expr2,expr3)如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL)&#xff0c;则 IF()的返回值为expr2; 否则返回值则…

mac mysql 默认字符集_MacOS中Mysql设置默认字符集

一、查看字符集mysql> show variables like character%;-------------------------------------------------------------------------------------| Variable_name | Value |----------------------------…

原创 通过PEB获得进程路径 (附完整工程)

完整工程&#xff1a;http://files.cnblogs.com/files/Gotogoo/%E8%BF%9B%E7%A8%8B%E7%AE%A1%E7%90%86%E5%99%A8%28x86%26%26x64%29.zip PEB&#xff08;Process Environment Block&#xff0c;进程环境块&#xff09;存放进程信息&#xff0c;每个进程都有自己的PEB信息。位于…

土豚mysql_树莓派LNMP配置

修改软件源1.首先备份源列表&#xff1a;sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup2.而后打开sources.list文件修改&#xff1a;sudo vim /etc/apt/sources.list软件源可已在网上查查&#xff0c;有ubuntu官方的、阿里云的、清华的等需要注意首先查看自己的…

Windbg SOS and CLR版本不一致的解决方案

由于测试服务环境与Windbg运行环境的差异&#xff0c;这就可能出现Windbg在分析dump文件时.net sos.dll和mscordacwks.dll版本不一致问题&#xff0c;从而导致windbg调试器的扩展命令无法正常使用&#xff0c;具体的解决方法如下&#xff1a;1.首先定义Windgb symbols路径&…

mysql镜像远程连接_docker 创建mysql镜像,并成功进行远程连接

1.安装1.1 拉取镜像docker pull mysql拉取成功可以验证一下docker images1.2 创建并启动一个mysql容器docker run --name ly-mysql -e MYSQL_ROOT_PASSWORD123456 -p 3306:3306 -d mysql–name&#xff1a;给新创建的容器命名&#xff0c;此处命名为ly-mysql-e&#xff1a;配置…