zoukankan      html  css  js  c++  java
  • 应急响应小总结

    **0x00**

    应急响应服务是指为了应对各种意外事件的发生所做的准备以及在事件发生后所采取的措施的服务。例如:系统被入侵、重要信息被窃取、系统拒绝服务、网络流量异常等。

    应急响应的目标是:采取紧急措施和行动,恢复业务到正常状态;调查安全事件发生的原因,避免同类事件再次发生;在需要司法机关介入时,提供法律认可的数字证据。应急响应是一项需要充分准备并严密组织的工作,开展调查工作的过程中,要避免不正确的步骤或者遗漏重要步骤对系统产生新的影响。这就需要掌握一定的追踪能力、沟通能力的专业安全人员参与。安全厂商常年研究安全技术、实时跟踪安全动态,对分析和解决各类安全事件有成熟的技术手段和丰富的经验,能为其客户提供可靠的技术服务支持。
    关于应急响应国内的技术流程已经是很完善了,但是很多甲乙双方也有很多的不同点和侧重点。看过很多总结性文章,可能是基于篇幅不宜过大的原因,很多的文章都是侧重于具体技术分析。正好前段时间有帮客户做个一个应急响应的case就入门式的来写点总结性文章。文章也秉承我一直以来的想法甲方思维乙方手段来解决问题。每一次的应急响应客户不仅仅只是需要一个简单的应急和服务的可用性,更重要的是对黑客行为的全面分析,以资产为核心来分析黑客思维,尽可能明白整个事件的前因后果以及后续的安全排查加固等措施。我将现行的应急响应从性质主要分为定性,取证,分析 ,二次定性,总结(木马清除加固反思等)四个大类步骤。从业务流程方式可以分为调查,评估,抑制,分析,恢复以及报告的流程。可能这也只是第一期之后有机会再详细的分解。由于疏忽可能有不全或者错误之处还望多多指正。

    **0x01 一次分析**

    在开始接触应急业务的时候在和客户没有沟通,甚至没有完全清楚事件发生时间点和实际造成的破坏面时候就冒然下手,各种读日志查进程各种杂乱的进行分析,这样造成的结果是完全的毫无头绪看到什么分析什么,手法极其不专业。在应急的过程中如果是身为乙方人员协助的情况下,更应该耐心和甲方人员认真负责的详细询问整起事件的详细内容,做好预判攻击性质。一般情况下的攻击性质可以分为以下几种:
    1.png

    通常事件的发生不会是单一的,从源头出发确定事件发生时间范围以此为时间点范围确定事件发生影响来对事件进行一次定性。以此来迅速找出关键性排查点,以尽快恢复业务正常化为首要目标。在实施过程中严格规范操作流程进行之后进行进一步的取证分析溯源和后续处理。

    0x02 取证

    很多大学都设立了取证分析一门专业,在司法等场景中取证是尤为关键的一个环节,工作中很多人往往比较忽视这一点,多数人寄希望与可以通过溯源手段去获得攻击者的真实信息,经过攻击者的层层伪装和痕迹清理之后这样的情况下溯源在没有大量数据的支持下可以找到攻击者的可能性微乎其微。为了防止攻击者清理攻击痕迹,说点题外话对于日志保存机制等问题,这里推荐的解决办法就是同步备份,类似于银行对数据的异地容灾备份机制一样,采用双备份的情况下被攻击者毁尸灭迹之后也可以有源可查(效果不错的日志等信息备份系统推荐:evtsys,kiwi syslog deamon)。如果通过溯源后得到攻击者信息然后通过法律手段来进行维权,在经过多重分析之后的原数据可能已经面目全非。所以第一步的取证尤为重要。在Acpo(Association of Chief Police Officers )对取证提出了四个原则而我也建议从事应急响应的人员在取证时应该遵循以下这四个原则:
    1: 存储在计算机或存储介质数据不能被修改或变更,因为这些数据可能以后会在法庭上作为证据提出。
    2: 一个人必须足以胜任处理计算机或存储介质上的原始数据,如果有必要,也应该能够给自己的行为的相关性和过程的证据的解释。
    3: 基于电子取证过程的所有审计追踪和其他文档需要被创建和保存。一个独立的第三方能够检查这些过程并能获取相同的结果。
    4: 负责取证的个人必须在法律和ACPO的原则下全面负责取证过程
    该标准中对取证有较为深刻的理解,限于我不想把这篇文章写的太”鸡汤”的感觉,故在此打住。希望深入了解的人可以自行取读。
    有本2009年出版的书《Windows Forensics and Incident Recovery》虽然年代久远不过很多内容还是值得一读。为了在取证过程中不会破坏和修改硬盘原有数据的完整性,通过硬盘复制机将鉴材硬盘中的内容复制到备份硬盘中。由于这种复制是位对位的复制,鉴材硬盘中的内容会在备份硬盘中完全的反映出来,不会丢失、遗漏也不会被修改,这样就可以保证通过对备份硬盘的操作达成鉴定工作。通过克隆方式进行计算机证据鉴定,注意加上数字签名和MD5校验,以证明原始计算机证据没有被改变,并且整个鉴定过程可以重现。证据分析过程不会被故意篡改,对有可能造成数据变化的操作需要记录鉴定人员实施可能会造成的影响。由于网络的特点导致电子证据的分布性,电子证据不仅仅会在计算机文件中被发现,在与之关联的服务器聊天记录网络流量等也有可能会出现,应该不遗漏其真实性。当然对内存等信息的取证也不容忽略,在Linux系统下内存取证工具Volatility,在windows平台下国产软件SmartMFT(www.jnsnt.com)可以达到很好的效果。简单一句话概括的就是一定要全面从每个文件到内存数据能全则全,然后对原有内容进行分析。

    **0x03 分析**

    1.侧重点分析:
    通过对事件的定性以及取证后我们可以有选择的先分析重点内容,基本的排查分析思路如下图所示,
    2.png

    这里建议首先采用最短路径从一次定性中获取到的信息进行定量分析,对应事件类型为主要点以此分析,之后再对其他点进行全量分析。尤其对已经进入服务器或获得webshell的事件应该尤为警惕,建议服务恢复后更加全面细致的排查后门和隐患。下图是对应不同事件性质可以辅助排查的工具。
    3.png

    2.重点文件分析
    通过第一次定性分析后的结果,判断攻击类型所对应应重点分析排查点,尽快解决问题尽快恢复系统正常上线再进行全量分析。
    Linux平台下应该额外注意点:
    文件类:passwd文件,shadow文件,uid信息,ssh文件谨防SSH后门,host,rpm包(./rpm -Va > rpm.log).bash_history等。
    日志类:message日志, cron日志,Shell日志,ecure日志,last日志
    /var/log/secure,/ar/log/wtmp,var/log/message:jihu
    /var/log/secure:记录登录系统存取数据的文件,例如pop3,ssh,telnet,ftp等都会记录在此.
    /ar/log/wtmp:记录登录这的信息记录,被编码过,所以必须以last解析;
    /var/log/message:jihu所有的开机系统发生的错误都会在此记录;
    /var/log.boot.log:记录一些开机或者关机启动的一些服务显示的启动或者关闭的信息;
    /var/log/maillog:记录邮件的存取和往来;
    /var/log/cron:用来记录crontab这个服务的内容;
    /var/log/httpd,
    /var/log/mysqld.log等等文件,记录几个不同的网络服务的记录文件;
    /var/log/acpid ,ACPI - Advanced Configuration and Power Interface,表示高级配置和电源管理接口。 后面的 d 表示 deamon 。 acpid 也就是 the ACPI event daemon 。 也就是 acpi 的消息进程。用来控制、获取、管理 acpi 的状态的服务程序。
    /var/run/utmp 记录着现在登录的用户;
    /var/log/lastlog 记录每个用户最后的登录信息;
    /var/log/btmp 记录错误的登录尝试;
    /var/log/dmesg内核日志;
    /var/log/cpus CPU的处理信息;
    /var/log/syslog 事件记录监控程序日志;
    /var/log/auth.log 用户认证日志;
    /var/log/daemon.log 系统进程日志;
    /var/log/mail.err 邮件错误信息;
    /var/log/mail.info 邮件信息;
    /var/log/mail.warn 邮件警告信息;
    /var/log/daemon.log 系统监控程序产生的信息;
    /var/log/kern 内核产生的信息;
    /var/log/lpr   行打印机假脱机系统产生的信息;
    Access.log
    Error.log
    Windows平台下应该额外注意点:
    文件类:本地用户和组,检查克隆用户(LP_Check.exe),Local SettingsHistory,Local SettingsTemp,Temporary Internet Files,host等。
    日志类:应用程序日志,安全性日志,系统日志(eventvwr)。
    Web服务器:
    文件类:恶意木马,cmd,webshell等。
    日志类:服务器日志等。
    #关于服务器日志分析可以参考这篇文章https://xianzhi.aliyun.com/forum/read/1723.html

    3.全面分析

    ①进程分析
    Windows:Pchunter
    Linux: Chkrootkit&Rkhunter
    隐藏进程查看
    ps -ef | awk '{print}' | sort -n | uniq >1
    ls /proc | sort -n |uniq >2
    diff 1 2
    ②后门分析
    通过crontabl –l 查看当前的任务计划有哪些,是否有后门木马程序启动相关信息;
    查看etc目录任务计划相关文件,ls /etc/cron* 查看linux 开机启动程序
    rpm包检查
    Webshell分析
    工具:
    chkrootkit  
    Rkhunter
    Hm
    ③内存分析
    Volatility
    ④网络分析
    Wireshark
    ⑤端口分析
    netstat –antlp | more
    lsof -i:3306(查看使用指定端口应用程序)
    使用netstat –anp(Solaris使用netstat -an)命令查看当前开放的端口。
    使用lsof –i(仅限Linux)显示进程和端口对应关系。
    ⑥服务分析
    Rkhunter(linux)
    sc query(windows)
    ⑦计划任务分析
    schtasks命令(win)
    Crontab(linux)
    ⑧其他关联度分析
    对上所分析到的相关内容,通过逻辑关联到一起,对其中分析到的ip域名等信息综合性关联判断真实来源IP黑客路径等信息。
    3.溯源分析
    合理利用分析结果,对ip等指纹信息进行相关溯源,判断有可能被恶意下载读取文件的来源进行溯源。最好的办法是提前布置欺骗防御系统对黑客攻击资产进行路径记录对黑客画像更为精确。如果可以通过已有信息经过关联和逻辑精确定位到黑客个人,就可以保留好取证结果依法对其进行起诉。

    0x004二次定性

    当必要的分析完成后对其中关键细节复盘分析,具体分析全部主机,尽量对黑客攻击路径,对攻击资产定量,再次对黑客真实目标定性。

    0x005 加固

    参照基线加固和SDL开发流程。

    **0x006 输出报告**

    **0x006 反思**

    不可否认某些甲方的技术能力和完整度都超过许多乙方企业,甚至二次技术输出。 对大多数甲方企业来说很多的安全响应技术都需要靠乙方的支持,所以我选择甲方思维乙方手段来做事。尽可能多的去以客户需求想问题,以乙方专业技术去解决问题。不仅仅只关心攻击者现行情况下对客户影响面,在基于客观事实为用户合理定制内网防护策略和一套完整的安全开发生命周期(SDL)。

    Refer: https://github.com/sindresorhus/awesome
    http://www.freebuf.com/tools/87400.html
    http://www.amazon.com/gp/product/1593275099
    https://xianzhi.aliyun.com/forum/read/1655.html
    http://resources.infosecinstitute.com/computer-forensics-investigation-case-study/

  • 相关阅读:
    一、单一职责原则
    四、接口隔离原则
    彼得·林奇的25条黄金规则
    程序员的四个境界
    VS2008开发.NET 2.0的项目时,可用的C#3.0语言特性一览表
    Linq试用问题总结
    SQL Server 2000中修改数据库COLLATE一例
    SQL Tip:将SP生成的结果集Insert到另一Table中
    OOAD读书笔记(一):什么是好的软件?
    成功创业的8个关键点
  • 原文地址:https://www.cnblogs.com/pshell/p/7832226.html
Copyright © 2011-2022 走看看