Session1 数字调查证据

文件系统取证分析(File System Forensic Analysis 

Part1 基础(Foundations

/*********************************************************************************************************************

第一章 数字调查基础(Digital Investigation Foundations

*********************************************************************************************************************/

我假设对这本书感兴趣的人不需要激励就会去研究计算机或者别的数字设备,所以我会跳过通常的数字或者统计;这本书指引你调查数据和数据是如何被存储的。如今,数字调查工具相当的好用,它能够减少查调查的时间,然而,在不完全的清楚调查工具所得出结果的情况下,调查者就使用这些结果来作证据是很危险。这本书会从调查和计算的基础开始,然后讲解卷(Volume)和文件系统。实际上指导我们调查的方法有很多,本章我仅仅介绍其中一种调查方法。实际中你可以不采用这种方法,但是这一章的内容符合整本的走向和趋势。


/*********************************************************************************************************************

第一节 数字调查和证据(Digital Investigations and Evidence

*********************************************************************************************************************/
第一节 数字调查和证据

数字取证调查的定义很多,本节我将下一个我用的定义,并且给出说明。数字调查的焦点是,一种卷入了一个事件或者一个犯罪的数字设备。一种情况是这些设备可能提供了一个物理的犯罪的环境,另一种情况也可能执行的数字事件触了一些政策或者法规。下面介绍第一种情况的一个例子,用因特网来调查一些东西,这时因特网就是一种物理的犯罪环境。第二种情况的例子:一个攻击者在没有授权的情况下入侵了一台电脑,并且下载了一些违禁的资料,发送了一封带有恐吓性质的e-mail。当检测到这次入侵时,调查者就需要解释为什么会被入侵和谁或者什么引起了这次入侵。

数字调查是一个数字时间假设和测试这些数字事件假设的过程。这个过程使用科学的方法利用找到的证据做出一个假设,然后用其他的证据来验证这个假设是否真实。数字证据是一个数字对象,这些数字对象包括了可靠的数据,这些数据能够支持或者推翻一个假设。

假设一台服务器被控制了。我们开始调查这是怎么发生的和是谁控制了服务器。在调查过程中,我们发现了与这个事件有关的活动所创建的数据。我们从服务器上恢复被删除了的日志纪录,发现攻击的工具,同时也发现这台服务器上存在的缺陷。利用发现的数据,日志纪录等,我们建立一些关于攻击者利用哪些缺陷获得访问权限和之后又做了什么的假设。之后,我们检查防火墙的配置与日志,发现在我们假设中的一些场景其实是不可能的,因为那种网络传输的类型并不存在,同时我们并没有发现日志纪录存在的必要性。因此,我们已经发现反驳一个或者多个假设的证据。

当一个服务器被盗用的时候,我们会调查服务器怎么被盗用的和谁盗用了这个服务器。在调查期间我们会使用这次事故中产生的数据。我们会恢复服务器中被删除的日志,找寻攻击服务器的工具,找寻服务器上存在的漏洞。我们使用这些数据,推出一些关于入侵者使用了那些漏洞接入了服务器和她在接入服务器后做了什么的假设。之后,通过检查防火墙的配置和日志,我们判断出一些假设的场景是不可能的。因为假设场景下的那一种网络环境不存在,并且我们没有找到需要的日志项。因此我们又找到了一些推翻我们假设的证据。

这本书中,我会在调查的上下文中使用证据(evidence)这个术语。证据的定义是既合法又可以供调查使用(investigative uses)。这个定义中,我说明了证据可以作为调查使用,但是有些情况下,不是所有的调查使用的证据都可以用在法庭上。因为各个国家和各个州的法律的许可性不同,同时我也没有法律的背景,因此我仅仅关注证据的一般概念,当然你有权利根据自己的判断来理解证据[1]。实际上,并没有专门为文件系统设立的法律法规,因此一般的数字调查书籍会在它的目录上列出它所需要的信息。

[1] A good overview of U.S. law is Cybercrime [Clifford 2001].

到目前为止,你可能已经注意到了在我描述数字调查的过程中,我并没有使用取证(forensic)这个术语。取证(forensic)在《美国传统词典》(The American Heritage Dictionary)中的定义是一个形容词,意思是,使用科学或者技术来调查确定法庭上使用的事实或者证据[Houghton Mifflin Company 2000]。数字调查的本质也要求我们在调用的时候使用科学技术,因此数字调查和数字分析调查本质的不同是法律的要求不同。一个数字取证调查的过程是使用科学技术分析数字对象,并且研究测试这些用于法庭的理论。以便解答时间发生的原因。换句话说,一个数字取证调查相对于数字调查更严格。在这本书中我将使用数字调查这个术语,因为数字调查更侧重技术,并不关注法律和法规。

/*********************************************************************************************************************

第二节 数字犯罪场景的调查(Digital Crime Scene Investigation Process)

*********************************************************************************************************************/

第二节 数字犯罪场景的调查

没有单一的调查方式。如果你让五个人去调查谁喝了那一锅中最后的一杯咖啡,你可能得到五个不同的方式。一个人可能检查咖啡锅上得指纹,另一个可能使用会看这个休息室中的安全录像带,又或者去看看那个人的咖啡杯是最热的。无论你使用什么方法,只要是在没有违法的情况下找到了那个喝最后一杯咖啡的人,虽然可能有些方法会更有效一些。

我用的数字调查方法是基于物理犯罪现场的调查过程的[Carrier and Spafford 2003]。这种情况下,我们有一个数字犯罪现场,这个数字环境包括了软件和硬件营造的环境。这个过程有三个主要的阶段,分别是:系统保存(System Preservation)、证据找寻(Evidence Searching)和事件重现(Event Reconstruction)。这三个步骤没必要一个在另一个后面发生。如下图所示的这三个步骤:



1.1数字犯罪现场调查的三个阶段

这个过程可以用来调查动态的或者静态的系统。动态的调查发生在,操作系统或者操作系统的别的资源正在被用来调查找寻证据的时候。静态调查是,你运行一个信任的应用程序在一个信任的系统上来找寻证据。使用动态分析时,你冒着得到错误数据的风险,因为这些软件可能恶意的隐藏了或者篡改了数据。使用静态调查会更划算,但是不是所有的环境都能使用静态调查的。

2.1系统保存阶段

调查过程的第一个阶段时系统保存阶段,这个阶段我们尽力的区保留数字犯罪的现场。这个行为取决于这个阶段依赖的法律、商业或者运作的调查需求。例如,法律的需求可能引起你去关掉这个系统,并且拷贝这个系统的所有数据。另一个极端是,一个事情涉及了后门软件或者一个蜜罐(honeypot[2],且系统在没有保护的情况下运行了这些软件。大部分的公司或者军队在这调查这两个极端之间的事情的时候,是不受法律影响的。

[2] A honeypot is "an information resource whose value lies in unauthorized or illicit use of that resource" [Honeynet Project 2004].

这个阶段的目的是为了减少证据被覆盖。这个过程会持续到系统的所有数据被得到,因为我们需要保留这些数据,以便以后的分析。在第三章“硬盘数据获得”中,我们将会研究如何复制一个硬盘,这本书余下的部分包括如果分析这些数据和如何找寻证据。

2.2保存的技术



参考文献:





可以使用JSP和Session来实现猜数字游戏。 首先,在JSP页面中,需要有一个猜数字的表单,用户可以输入猜测的数字。同时,需要有一个Servlet来处理用户提交的表单数据,并判断用户猜的数字是否正确。 在Servlet中,可以使用Session来存储正确的数字,并与用户猜测的数字进行比较。如果用户猜测的数字与正确的数字相同,就提示用户猜对了,并清除Session中的数据。如果用户猜错了,就提示用户继续猜测。 以下是一个简单的JSP猜数字游戏示例: index.jsp: ```html <!DOCTYPE html> <html> <head> <title>猜数字游戏</title> </head> <body> <h1>猜数字游戏</h1> <p>请猜一个1到100之间的数字:</p> <form action="guess" method="post"> <input type="text" name="guess" required> <input type="submit" value="猜"> </form> </body> </html> ``` GuessServlet.java: ```java import java.io.IOException; import java.util.Random; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @WebServlet("/guess") public class GuessServlet extends HttpServlet { private static final long serialVersionUID = 1L; public GuessServlet() { super(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); Random rand = new Random(); int answer = (int) session.getAttribute("answer"); if (answer == 0) { answer = rand.nextInt(100) + 1; session.setAttribute("answer", answer); } int guess = Integer.parseInt(request.getParameter("guess")); if (guess == answer) { response.getWriter().println("恭喜你,猜对了!"); session.removeAttribute("answer"); } else if (guess < answer) { response.getWriter().println("你猜的数字太小了,请继续猜测。"); } else { response.getWriter().println("你猜的数字太大了,请继续猜测。"); } } } ``` 在这个示例中,每次用户打开页面或猜对数字后,Session中都会存储一个新的正确数字。如果用户关闭浏览器或Session过期,就会重新生成一个新的正确数字。可以根据需要调整这个行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值