磁盘驱动器、其控制方法以及磁盘伪造的探测方法

文档序号:6621634阅读:276来源:国知局
专利名称:磁盘驱动器、其控制方法以及磁盘伪造的探测方法
技术领域
本发明涉及磁盘驱动器、用于控制该磁盘驱动器的方法和伪造探测方法。更为具体地,本发明涉及用于控制具有仅能被主机查阅但不能由主机写入的标记区的磁盘驱动器的方法,并且涉及用于探测数据伪造的伪造探测方法,通过进行2-阶分析,即中间数据的时间瞬态分析和内容的时间瞬态分析,由磁盘驱动器将该方法记录在磁盘驱动器中所使用的存储介质上。
背景技术
随着各种应用软件的普及,在努力将用户准备的文档转换成电子数据方面也存在进展。与写在纸张上的文档不同,电子数据可以被轻松地改变。因此,通过继续致力于将文档转换为电子数据,可以期望工作效率的提高。然而,典型地在司法审判中为了使用电子数据作为证据,制作电子数据的时间和电子数据的内容不被伪造是必需的。由于该原因,必须验证电子数据的无缺陷性,或者,如果电子数据被伪造,则必须探测到该伪造。
由磁盘驱动器记录在安装于其上的存储介质上的电子数据的常规探测可以划分为如下两个大类(1)用于在磁盘驱动器内部产生伪造探测信息的方法,和(2)通过利用磁盘驱动器外部的信息产生伪造探测信息的方法。
就第一种方法而言,在日本未决专利No.10-283262中已经提议并公开了“文件系统和程序存储介质”,而就第二种方法而言,在日本未决专利No.11-261550中已经提议并公开了“用于防止电子文本伪造的系统和方法”。
日本未决专利10-283262已经提议出一种能够确定文件是否被伪造的新文件系统。当产生新文件时,还产生鉴别文件。鉴别文件包括新文件的校验、其编成日期和关于其创建者的信息。通过利用该新文件系统,每当通过主机执行的操作来更新记录在磁盘驱动器中的存储介质上的文件以在存储介质上写入数据时,将更新后的校验和更新数据添加到鉴别文件中。因此,能够确定文件是否被伪造。
在日本未决专利No.11-261550中,提议出的方法为由外部鉴别符产生电子文本的鉴别数据的伪造探测方法。根据该方法,首先,中央处理器(central player)摘录表示电子文本特征的特征数据,并通过利用第一密钥来对该特征数据加密。然后,外部鉴别符将包括至少一个日期的外部鉴别数据添加到被加密的特征数据中,且进一步利用第二密钥对该特征数据加密以产生电子文本的鉴别数据。中央处理器不能产生鉴别数据。因此,通过将电子文本与鉴别数据相比较,能够确定电子文本是否被伪造。
日本未决专利No.10-283262[专利文献2]日本未决专利No.11-261550发明内容然而,利用校验和在该文件系统的基础上提取特征的伪造探测方法存在下述问题。
首先,在日本未决专利No.10-283262中公开的方法存在下述问题(1)不能将所提议的新文件系统应用到现有的文件系统。
(2)该方法可以用于确定文件是否被伪造,但是不能用于识别被伪造的文件部分和伪造的实体内容。
(3)在通过使用应用程序来编辑原始文件的操作中,在该应用程序中,将原始文件保存为具有不同文件名的备份文件且更新后的文件被创建为新文件,关于更新的信息没有留在鉴别文件中。
(4)在例如存取日志等文件大小周期性增加的情况下,随着文件大小的增加,产生校验所花费的时间也变长,且用于存储包含校验的数据的辅助文件的大小也增加。
(5)如果文件被有权改变由计算机测得的现存时间的负责文件管理的人或被有权处理鉴别文件的负责文件管理的人伪造,则将不能探测到该伪造。
(6)如果通过提供鉴别文件来伪造文件,该鉴别文件与磁盘驱动器中存储介质上的文件一致,但是是通过非法存取路径用向模块器件发布直接命令的方式将数据写入文件,而不是使用合法存取路径通过文件系统将数据写入文件,则将不能探测到该伪造。
(7)该方法不能应用于直接存取例如数据库的模块器件的应用程序中。
另一方面,在日本未决专利No.11-261550中公开的方法存在下述问题(1)该方法可以用于确定文件是否被伪造,但不能用于识别已被伪造的文件部分和伪造的实体内容。
(2)该方法不能用于与网络隔离的环境,以至于不能与外部鉴别符相通信。
(3)在存取日志等文件大小周期性增加的情况下,随着文件大小的增加,鉴别处理的负荷也在加重。
(4)该方法不能应用于直接存取例如数据库的模块器件的应用程序中。
因此,本发明的第一个目的是提供一种用于通过对磁盘驱动器中的记录介质的每一个最小的写单元创建仅能被主机查阅而不能被其更新的标记区来控制磁盘驱动器的方法。
本发明的第二个目的是提供用于探测记录在磁盘驱动器中的存储介质上的数据的伪造的伪造探测方法,用于将新数据记录在存储介质的自由区中,以便于在中间信息的时间瞬态的每一个阶段,通过进行中间信息的时间瞬态的分析和由中间信息指定的内容的时间瞬态的分析,来防止现有数据被新数据重写。
本发明第三个目的是提供一种能够在时间轴的正向和反向中查阅伪造探测结果的伪造探测方法。
本发明第四个目的是提供一种能够延缓和恢复探测伪造处理的伪造探测方法。
本发明第五个目的是提供一种能够将内容的标识符写入用于记录该内容的存储介质的标记区的伪造探测方法。
本发明第六个目的是提供一种能够将检查点记录到用于存储介质上的地址的标记区中的伪造探测方法,该存储介质用于记录中间信息和具有一致性的内容。
本发明第七个目的是提供一种能够确定由指定的识别符指定的内容是否已经被伪造的伪造探测方法。
本发明第八个目的是提供一种能够输出伪造之后的内容与伪造之前的内容之间的不同的伪造探测方法。
本发明第九个目的是提供能够使被伪造的数据无效的伪造探测方法。
本发明第十个目的是提供一种伪造探测方法,该方法能够检验包含在安装于磁盘驱动器中的存储介质中的标记区中的信息,该标记区作为仅能被主机查阅但不能被其更新的区,且该方法能够检验中间信息的时间瞬态与内容的时间瞬态之间的一致性。
为了获得本发明的前述目的,根据本发明的磁盘驱动器、磁盘驱动器控制方法和伪造探测方法包括如下工作的装置。
控制单元执行下述步骤为将数据写入磁盘驱动器中所采用的存储介质中的每一个单元提供标记区,该标记区作为主机仅能够查阅而仅控制单元能够向其中写入信息的区域;根据磁盘驱动器的内部信息产生信息;并将所产生的信息写入到标记区中。
控制单元还执行下述步骤从主机接收写命令;根据内部信息产生信息;和产生变化为写命令的伴随执行的信息。
控制单元还执行下述步骤从主机接收读命令;根据内部信息产生信息;和产生变化为读命令的伴随执行的信息。
变化为写命令的伴随执行的信息,为磁盘驱动器的总操作时间、发布到磁盘驱动器的写命令的总数量或对于将数据写到存储介质上的每一单元计算的写命令计数。
在磁盘驱动器中采用的控制单元、将数据写到在磁盘驱动器中采用的存储介质上的第一主机、不将数据写到磁盘中所采用的存储介质上的第二主机或磁盘驱动器的管理控制台执行下述步骤设定记录在磁盘驱动器中所采用的存储介质上的数据的逻辑结构;在记录于磁盘驱动器中所采用的存储介质上的数据块之中识别用作数据的设定逻辑结构的信息的中间信息的记录;分析被识别的中间信息从中间信息的初始状态到中间信息的最新状态的时间瞬态;和在中间信息的所分析的时间瞬态中的每一个阶段,分析作为从内容的初始状态到内容的最新状态的时间瞬态的由中间信息指定的数据的内容的时间瞬态。
根据分析中间信息的时间瞬态的结果,控制单元还执行在从最新状态到初始状态的反方向中产生中间信息的时间瞬态的步骤,根据分析内容的时间瞬态的结果,控制单元还执行在从最新状态到初始状态的反方向中产生内容的时间瞬态的步骤。
控制单元还执行下述步骤分配用于保存分析结果的区域;将分析处理的现存状态保存到所分配的区域中;在伪造探测处理开始时检查用于将数据保存在其中的分配区域,并在状态已经保存在该区域中的情况下读出分析处理的状态;和在已经从该区域中读出在前的分析处理的最后状态的情况下从在前分析处理的最后状态开始作为直接在前的分析处理的继续的分析处理,或者,如果没有从该区域中读出分析处理的状态,则全部从起点开始分析处理。
控制单元还执行下述步骤对存储介质中包括的记录区域,所述记录区域作为这样的区域,其中,磁盘驱动器记录由中间信息指定的数据内容,将内容的标记符记录在标记区中,该标记区设置在用于每一个最小管理单元的存储介质上。
控制单元还执行下述步骤根据分析中间信息的时间瞬态的结果和分析内容的时间瞬态的结果,将磁盘驱动器中使用的存储介质上的地址识别为这样的地址,在该地址处,通过维护中间信息和内容的一致性来记录中间信息和内容;和记录检查点,其示出已通过保持一致性来将中间信息和内容记录在相应于存储介质上的指定地址的标记区中。
控制单元还执行下述步骤接收经由控制台由用户输入的标记符作为内容的标记符;
搜索分析用于标记符的中间信息的时间瞬态的结果,并确定内容是否已经被替换;在其中内容已经被替换的情况下,将表示内容替换事件的信息输出到控制台上;搜索分析用于标记符的内容的时间瞬态的结果,并确定内容是否被更新;和在其中内容已经被更新的情况下,将表示内容更新事件的信息输出到控制台上。
控制单元还执行下述步骤接收输入到控制台的两个任意事件,作为在各自被输出到控制台以表示内容替换事件的信息或各自被输出到控制台以表示内容更新事件的信息中选择出的事件;计算由一个接收事件所需的中间信息与另一个接收事件所述的中间信息的差异,并将该差异输出到控制台;并计算由一个接收事件所需的内容与另一个接收事件所需的内容之间的差异,并将该差异输出到控制台。
控制单元还执行下述步骤接收输入到控制台的两个任意事件,作为在各自被输出到控制台以表示内容替换事件的信息或各自被输出到控制台以表示内容更新事件的信息中选择出的事件;并使接收事件所需的内容无效。
控制单元还执行使中间信息和内容无效的步骤,该中间信息和内容具有与接收事件所需的内容标记符相同的标记符并已经在接收事件发生的时刻和其后被记录在磁盘驱动器中采用的存储介质上。
控制单元还执行使在接收事件发生的时刻和其后被记录在磁盘驱动器中所采用的存储介质上的所有中间信息和所有内容无效的步骤。
控制单元还执行下述步骤检查分析中间信息的时间瞬态的结果与存储在标记区中的信息之间的一致性;和检查分析内容的时间瞬态的结果与存储在标记区中的信息的一致性。
控制单元还执行周期性扫描存储介质的步骤并使用在扫描步骤读出的信息作为以磁盘驱动器的内部信息为基础的信息。
一种包含存储介质和控制单元的磁盘驱动器,该控制单元用于与主机交换命令和数据并执行根据从主机接收的命令来将数据写到存储介质上的操作控制以及根据从主机接收的命令来从存储介质中读出数据的操作控制,该磁盘驱动器包括标记区产生装置,用于对将数据写入存储介质的操作的每一个单元提供标记区,主机仅能查阅该标记区,而仅磁盘驱动器能向其中写入信息;内部状态信息产生装置,用于根据磁盘驱动器的内部状态产生内部状态信息;和内部状态信息写入装置,用于将由内部状态信息产生装置产生的内部状态信息写入到由标记区产生装置提供的标记区中。
内部状态信息产生装置使用变化为写命令的伴随执行的状态和变化为读命令的伴随执行的状态作为内部状态。变化为写命令的伴随执行的状态包括磁盘驱动器的总操作时间、发布到磁盘驱动器的写命令的数量或对于将数据写到存储介质上的操作的每一单元计算的写命令计数。
磁盘驱动器还包括用于周期性地扫描存储介质的扫描装置,且内部状态信息产生装置使用由扫描装置改变的状态作为内部状态。
本发明展现出下述效果。由于不需要外部识别机构,本发明具有即使在孤立的环境下也能够探测伪造的效果。
由于可以仅通过从在磁盘驱动器中采用的存储介质中读出管理信息部分的数据来探测伪造,所以本发明具有能够以与要被读出的数据量的减小成比例的量来缩短探测伪造所花费的时间的效果。
由于延缓和恢复探测伪造处理的功能不需要在其中已经探测伪造的区域中重复伪造探测处理,所以本发明具有能够提高处理速度的效果。
在文件已经被伪造的情况下,本发明具有能够通过从最新状态追溯到在先状态检查伪造点来确定伪造存在的效果。
可以通过直接从主机而不经过文件系统向模块器件发布命令来将数据写入到磁盘驱动器中所采用的存储介质中的文件中。然而,通过追踪将数据写入到用于记录文件内容的模块中的操作历史,即使通过这种方式发布直接命令来将数据写入文件,本发明也具有能够探测文件伪造的效果。
只要应用程序各自将数据作为具有逻辑结构的数据写到磁盘驱动器中所采用的存储介质上,本发明还具有能够将伪造探测应用于除文件系统之外的任何应用程序中的效果。
通过在查阅文件操作历史之前查阅记录在目录操作历史中的操作,本发明可以展现出即使文件被替换也能追踪被更新的文件内容的能力。
通过识别这样的条件,其中,以磁盘驱动器的伪造之前的状态建立文件系统的一致性,通过使最小可能数量的数据无效,本发明还具有能够恢复磁盘驱动器的伪造之前的状态和保持文件系统一致性的效果。


图1是关于阐述根据本发明第一实施例执行的写操作历史的方法的PAD图;图2是关于阐述根据本发明第一实施例的子程序130的PAD图;图3是关于阐述根据本发明第一实施例的子程序140的PAD图;图4是关于阐述根据本发明第一实施例的子程序150的PAD图;图5是关于阐述根据本发明第一实施例的方法作为探测文件伪造的方法的PAD图;图6是示出在作为根据本发明第一实施例的屏幕的控制台的显示单元上呈现的屏幕的视图;图7是示出根据本发明第一实施例的硬件的框图;图8是示出根据本发明第一实施例的磁盘驱动器中的存储介质的记录格式的视图;图9是示出根据本发明第一实施例的标记区的数据结构的视图;图10是示出根据本发明第一实施例的目录状态转变库的视图;图11是关于阐述根据本发明第二实施例的追踪写操作历史的方法的PAD图;图12是关于阐述根据本发明第二实施例的子程序1130的PAD图;图13是关于阐述根据本发明第二实施例的子程序1140的PAD图;图14是关于阐述根据本发明第二实施例的子程序1150的PAD图;图15是关于阐述作为探测文件伪造方法的根据本发明第二实施例的方法的PAD图;图16是示出在作为根据本发明第二实施例的屏幕的控制台的显示单元上呈现的屏幕的视图;图17是示出根据本发明第二实施例的系统结构的框图;图18是示出根据本发明第一实施例的用于记录目录的中间信息的模块的数据结构的视图;图19是示出根据本发明第一实施例的作为数据结构的文件的中间信息的数据结构的视图;
图20是示出根据本发明第一实施例的目录状态转变库的数据结构的视图;图21是示出根据本发明第一实施例的文件状态转变库的数据结构的视图;图22是示出根据本发明第一实施例的作为LBA状态转变库的为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库的数据结构的视图;图23是示出作为根据本发明第一实施例的屏幕的控制台的显示单元上呈现的典型屏幕的视图;图24是示出根据本发明第二实施例的作为LBA状态转变库的为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库的数据结构的视图;图25是示出作为根据本发明第二实施例的屏幕的控制台的显示单元上呈现的典型屏幕的视图。
具体实施例方式
下面将参考附图来描述本发明的实施例。值得注意的是,贯穿说明书,相同的结构元件用相同的参考数字表示。
第一实施例图1是关于阐释追踪根据本发明第一实施例执行的写操作历史的方法的PAD图。在图1中,参考数字100表示关于阐释追踪由第一实施例实施本发明提供的伪造探测方法所执行的写操作历史的方法的PAD图。参考数字110表示检查是否存在以前进行过的分析的结果的步骤。参考数字111表示取出以前进行过的分析的结果的步骤。参考数字112表示取出开始作为直接在前分析的继续的分析所需要的分析恢复信息的步骤。参考数字113表示取出记录在磁盘驱动器中所采用的存储介质上的数据的逻辑结构的步骤。参考数字114表示设定用于追踪写操作历史的分析程序的步骤。参考数字115表示在磁盘驱动器中所采用的存储介质中检索存储介质起点的步骤。参考数字116表示分配用于存储分析结果的位置的步骤。参考数字117表示写入分析结果的步骤。参考数字118表示将用于开始作为直接在先分析的继续的现存分析所需的分析恢复信息写入的步骤。参考数字119表示记录错误的步骤。参考数字120表示在磁盘驱动器中所采用的存储介质中已经完成写操作的分析目标模块的PBA(物理模块地址)的范围内执行循环的步骤。参考数字121表示确定在用作分析目标的模块上执行的写操作是否为目录操作的步骤。参考数字122表示确定在用作分析目标的模块上执行的写操作是否为文件操作的步骤。参考数字123表示确定在用作分析目标的模块上执行的写操作是否为模块操作的步骤。参考数字130表示其中在用作分析目标的模块上执行的写操作为目录操作的情况下的子程序。参考数字140表示其中在用作分析目标的模块上执行的写操作为文件操作的情况下的子程序。参考数字150表示其中在用作分析目标的模块上执行的写操作为模块操作的情况下的子程序。
图2是关于阐释由本发明第一实施例提供的子程序130的PAD图。在图2中,参考数字200表示关于阐释由实施本发明提供的伪造探测方法的第一实施例提供的子程序130的PAD图。参考数字201表示将在中间信息的更新之前的现有状态与在中间信息的更新之后存在的状态进行比较的步骤,所述中间信息作为目录的中间信息记录在用作分析目标的模块中。参考数字202表示检索下一模块的步骤。参考数字210表示确定写操作是否为文件创建的步骤。参考数字211表示检索与用作分析目标的文件名相同的过去存在的文件名的步骤。参考数字212表示根据检索结果确定是否存在相同文件名的步骤。参考数字213表示向目录状态转变库的现有文件转变记录添加项目作为用于保存分析结果的文件转变记录项目的步骤。参考数字214表示向文件转变记录添加表示相反方向的参考标注的步骤。参考数字215表示在目录状态转变库中产生新的文件转变记录的步骤。参考数字220表示确定写操作是否为文件删除的步骤。参考数字221表示向目录状态转变库添加文件删除的文件转变记录的步骤。参考数字230表示确定写操作是否为改变文件名的操作的步骤。参考数字231表示向目录状态转变库添加文件名修改的文件转变记录。
图3是关于阐释由本发明第一实施例提供的子程序140的PAD图。在图3中,参考数字300表示关于阐释由实施本发明提供的伪造探测方法的第一实施例提供的子程序140的PAD图。参考数字301表示将在中间信息的更新之前存在的状态与在中间信息的更新之后存在的状态进行比较的步骤,所述中间信息作为文件的中间信息记录在用作分析目标的模块中。参考数字310表示检查文件的中间信息是否被更新的步骤。参考数字311表示向目录状态转变库添加更新中间信息的操作作为文件转变记录的步骤。参考数字312表示检索用于仅管理模块的LBA(逻辑模块地址)的LBA状态转变库的步骤,每一个所述模块用于对中间信息中的LBA记录未识别文件的内容。参考数字313表示确定中间信息中的LBA是否已经在用于仅管理模块的LBA的LBA状态转变库中编录的步骤,每一个所述模块用于记录未识别文件的内容。参考数字314表示将LBA模块记录从用于仅管理各自用于记录未识别的文件内容的模块的LBA的LBA状态转变库中移动到为文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中的步骤。参考数字315表示检索从用于仅管理各自用于记录未识别的文件内容的模块的LBA的LBA状态转变库中移动到为文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中的用于存储文件尾标的模块的LBA的LBA模块记录的步骤。参考数字316表示确定用于保存文件尾标的模块的LBA是否包含在从用于仅管理各自用于记录未识别的文件内容的模块的LBA的LBA状态转变库中移动到为文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中的LBA模块记录中的步骤。参考数字317表示将一致性标记添加到文件最后模块的管理区的步骤。参考数字318表示检验中间信息与记录在标记区中的信息之间的一致性的步骤。
图4是关于阐释由本发明第一实施例提供的子程序150的PAD图。在图4中,参考数字400表示关于阐释由实施本发明提供的伪造探测方法的第一实施例提供的子程序150的PAD图。参考数字401表示在文件状态转变库的文件转变记录中指定的模块的LBA状态转变库中检索用作分析目标的模块的LBA的步骤。参考数字410表示确定用作分析目标的模块的LBA是否已经编录在为文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中的步骤。参考数字411表示将与用作分析目标的模块相关的信息添加到为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中的步骤。参考数字412表示检查中间信息与记录在标记区中的信息之间的一致性的步骤。参考数字413表示将表示相反方向的参考标注添加到为文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中的步骤。参考数字414表示确定用作分析目标的模块是否为用于记录文件内容末端的最后一个模块的步骤。参考数字415表示将一致性标记添加到文件的最后一个模块的管理区的步骤。参考数字416表示将新的记录添加到仅用于管理各自用于存储未识别的文件内容的模块的LBA的LBA状态转变库中的步骤。
图5是关于阐释由本发明第一实施例提供的作为探测文件伪造方法的方法的PAD图。在图5中,参考数字500表示关于阐释根据实施由本发明提供的磁盘驱动器控制方法和文件伪造探测方法的第一实施例的探测文件伪造的方法的PAD图。参考数字501表示指定路径名的步骤。参考数字510表示循环操作的历史以按逆序更新目录状态转变库的中间信息的步骤。参考数字511表示确定路径名是否为指定的路径名的步骤。参考数字512表示从操作历史读出操作的实体内容以更新中间信息的步骤。参考数字513表示向控制台输出提取的操作的实体内容的步骤。参考标记520表示在所提取的操作的实体内容存在时执行循环的步骤。参考数字527表示提取被替换的与替换的文件之间的文件级差异的步骤。参考数字528表示向控制台输出文件差异的步骤。参考数字531表示读出操作历史的一致性以更新中间信息的步骤。参考数字532表示向控制台输出用于更新中间信息的操作历史的一致性的步骤。参考数字533表示读出文件更新的一致性的步骤。参考数字534表示向控制台输出文件更新的一致性的步骤。
图6是示出作为由本发明第一实施例提供的屏幕的控制台的显示单元上呈现的屏幕的视图。在图6中,参考数字600表示作为由实施本发明提供的磁盘驱动器控制方法和伪造探测方法的第一实施例提供的屏幕的控制台的显示器屏幕。参考数字601表示用于输入路径名的输入部分,而参考数字602表示请求显示相应于路径名的分析结果的命令按钮。参考数字603表示用于显示中间信息差异的显示区域,而参考数字604表示用于显示文件差异的显示区域。参考数字605表示请求使数据无效的命令按钮,而参考数字610表示目录操作显示区。参考数字611表示用于显示各目录操作的实体内容的显示列,而参考数字612表示用于显示各目录操作的一致性的显示列。参考数字613表示被选择的目录操作的行,而参考数字620表示用于显示各自用于记录文件内容的模块的显示区。参考数字621表示用于显示用于记录文件内容的各模块的LBA的显示列。参考数字622表示用于显示用于记录文件内容的各模块的一致性的显示列。
图7是示出根据本发明第一实施例的硬件的框图。在图7中,参考数字700表示示出主机的框图,而参考数字701表示主存储单元。参考数字702和703分别表示WORM(一次性写入多次读取)控制程序和伪造探测程序。参考数字704和705分别表示处理器和磁盘接口。参考数字710表示示出磁盘驱动器的框图,而参考数字711表示闪速ROM。参考数字712和713分别表示主存储器和高速缓冲存储器。参考数字714表示微处理器(MPU)。参考数字715表示硬盘控制器(HDC)和SCSI协议控制器(SPC)。参考数字716和717表示伺服控制器和读/写信道。
图8是示出由本发明第一实施例提供的磁盘驱动器中所采用的存储介质中的模块的记录格式的视图。在图8中,参考数字800表示作为参考格式的常规技术的模块记录格式。参考数字801和802表示分别用户数据和误差修正代码。参考数字810表示根据本发明的模块记录格式,而参考数字811表示标记区。
图9是示出根据本发明第一实施例的标记区811的数据结构的视图。参考数字901表示磁盘驱动器710的总操作时间,而参考数字902表示向磁盘驱动器710发布的写命令的总数量。参考数字903表示向目标扇区发布写命令的数量。参考数字910表示作为仅包括总操作时间901的数据结构的标记区811的数据结构。参考数字920表示作为仅包括总写命令计数902的数据结构的标记区811的数据结构。参考数字930表示作为包括总操作时间901和总写命令计数902的数据结构的标记区811的数据结构。参考数字940表示作为包括总操作时间901、总写命令计数902和目标扇区的写命令计数903的数据结构的标记区811的数据结构。
图1O是示出根据本发明第一实施例的目录状态转变库的视图。图18是示出用于记录根据本发明第一实施例的目录的中间信息的模块的数据结构的视图。在图18中,参考数字1801表示示出文件名或目录名的列,而参考数字1802表示示出各文件或各目录的节点(inode)数量的列。参考数字1800表示表明仅有一个文件的状态。参考数字1810表示表明文件名已经被改变的状态。参考数字1820表示表明已经添加文件的状态。参考数字1830表示表明文件已经被删除的状态。
图19是根据本发明第一实施例示出文件的中间信息的数据结构并示出存储介质的模块的视图。在图19中,参考数字1900表示初始状态,而参考数字1901表示关于文件类型的信息和关于存取模式的信息。参考数字1902表示关于文件所有者的信息,而参考数字1903表示文件的印时戳(timestamp)。参考数字1904表示文件的大小,而参考数字1905表示用于记录文件内容的每一模块的索引数量。参考数字1906表示用于记录文件内容的模块的总数量,而参考数字1907表示节点的数据结构。参考数字1911表示用于记录文件节点的模块,而参考数字1912表示各自用于记录文件内容的模块。参考数字1913表示包含文件更新内容的模块,而参考数字1910表示在模块被改变之后获得的状态。
图20是示出根据本发明第一实施例的目录状态转变库的数据结构的视图。在图20中,参考数字2000表示目录状态转变库,而参考数字2001表示示出在用于存储用作分析目标的各文件或用作分析目标的各目录的中间数据的模块的标记区中记录的值的列。参考数字2002表示示出属于用作分析目标的各文件或用作分析目标的各目录的目录名字的列。参考数字2003表示示出用作分析目标的各文件或用作分析目标的各目录的名字的列。参考数字2004表示示出各分析目标的文件类型的列,而参考数字2005表示示出在用作分析目标的各文件或用作分析目标的各目录上执行的操作的类型的列。参考数字2006表示示出用作分析目标的各文件或用作分析目标的各目录的节点数量的列,而参考数字2007表示示出在用作分析目标的各文件或用作分析目标的各目录上的备注的列。
参考数字2011表示新添加到目录中的文件记录。参考数字2012表示具有被改变的名字的文件的记录。参考数字2013表示作为具有与过去存在的文件名相同的文件名的文件的添加到目录中的新文件的记录。参考数字2014表示新添加到目录中的目录记录。参考数字2015表示从目录中删除的文件记录。参考数字2016表示从目录中删除的目录记录。参考数字2017表示新添加到目录中作为具有与过去存在的文件名相同的文件名的文件的新文件的记录。
图21是示出根据本发明第一实施例的文件状态转变库的数据结构的视图。在图21中,参考数字2100表示用于指定文件的文件状态转变库,而参考数字2101表示示出在用于保存文件的中间信息的每一模块的标记区中记录的值的列。参考数字2102表示示出在文件上执行的每一操作的类型的列。参考数字2103表示示出在文件上执行的每一操作的印时戳的列,而参考数字2104表示示出包含于在文件上所执行的每一个操作中的作为用于记录文件内容的模块的模块的索引数量的列。参考数字2105表示示出在文件上执行的每一个操作的备注的列。
参考数字2111表示新添加到目录的文件的记录。参考数字2112表示具有被改变的名字的文件的记录。参考数字2113表示具有与过去存在的文件相同的文件名的所创建的文件的记录。参考数字2114表示添加到文件中作为用于记录文件内容的模块的模块记录。参考数字2115表示文件的被改变的属性的记录。参考数字2116表示添加到文件中作为用于记录文件内容的模块的模块记录。参考数字2117表示被删除的文件的记录。参考数字2118表示作为被改变成过去存在的文件的文件名的文件名的另一文件的文件名的记录。参考数字2119表示各自用于记录文件内容的被改变的模块的记录。
图22是示出为根据本发明第一实施例的文件状态转变库的文件转变记录中所指定的模块提供的LBA状态转变库的数据结构的视图。在图22中,参考数字2200表示LBA状态转变库,而参考数字2201表示示出用于记录文件内容的每一模块的索引数量的列。参考数字2202表示示出相应于每一模块的索引数量的每一扇区的LBA的列。
参考数字2203表示包含用于记录由模块号码204表示的模块的内容的每一扇区的LBA的记录。同样地,参考数字2204表示包括用于记录由模块号码251表示的模块的内容的每一扇区的LBA的记录。同样,参考标记2205表示包括用于记录由模块号码516表示的模块的内容的每一扇区的LBA的记录。相似地,参考数字2206表示包括用于记录由模块号码538表示的模块的内容的每一扇区的LBA的记录。出于同样的原因,参考数字2207表示包括用于记录由模块号码621表示的模块的内容的每一扇区的LBA的记录。同样地,参考数字2208表示包括用于记录由模块号码622表示的模块的内容的每一扇区的LBA的记录。同样地,参考数字2209表示包括用于记录由模块号码623表示的模块的内容的每一扇区的LBA的记录。相似地,参考数字2210表示包括用于记录由模块号码624表示的模块的内容的每一扇区的LBA的记录。出于同样的原因,参考数字2211表示包括用于记录由模块号码625表示的模块的内容的每一扇区的LBA的记录。同样地,参考数字2212表示包括用于记录由模块号码961表示的模块的内容的每一扇区的LBA的记录。
图23是示出作为根据本发明第一实施例的屏幕的在控制台的显示单元上呈现的典型屏幕的视图。在图23中,参考数字2300表示控制台的典型显示器,而参考数字2301表示包括一致性问题的行。参考数字2302表示包括被选择的中间信息的行,而参考数字2303表示包括具有一致性问题的LBA的行。
该实施例的特征在于通过采用用于分析下述两种类型的信息的方法来分析数据,探测存储在磁盘驱动器中所采用的存储介质中的数据伪造(1)作为由于文件创建或删除、目录创建或删除、文件名的修改或目录名的修改而导致的时间瞬态的由文件系统经历的时间瞬态;和(2)将数据写入到磁盘驱动器中所采用的存储介质中的作为用于记录保存在存储介质中的文件内容的模块的模块中的操作的时间瞬态。
参考图7来阐述本发明的第一实施例的概要。
主机700包括处理器704、主存储单元701和磁盘接口705。处理器704执行存储在主存储单元701中的WORM控制程序702,通过磁盘接口705向磁盘驱动器发布写命令,以便用这样的方式写入接收的数据,所述数据作为当用户请求时被存储到磁盘驱动器710中使用的存储介质中的数据,所述方式为不在存储介质中已经存在的数据上写入接收的数据。处理器704执行伪造探测程序703,以确定以这种方式写入到驱动器710的存储介质中的数据是否已经被伪造。伪造探测程序703根据参考图1至5所阐述的运算法则来分析数据的时间瞬态并在呈现在如图6中所示的控制台的显示单元上的屏幕上向用户示出伪造探测结果。
将磁盘驱动器710的控制程序保存在闪速ROM711中。当打开MPU714的电源时,MPU714将控制程序从闪速ROM711装载到主存储器712中。控制程序还产生要写入到图8中示出的标记区中的数据。
HDC/SPC715从主机700接收命令并向主机700发送响应。SPC根据SCSI协议来发送和接收命令和数据。在由SPC执行的处理结束之后,将处理控制转移到MPU714。
MPU714执行加载到主存储器712中的控制程序以执行必需的处理以存取HDD(磁盘驱动器710)的存储介质。将从主机700接收的写数据和从HDD的存储介质读出的读数据保存在高速缓冲存储器713中。主存储器712还用于保存需要用于产生要写入到图8中示出的标记区的数据的变量。
在MPU714完成由其执行的处理之后,将处理控制转移到HDC。HDC向读/写信道717发布指定物理模块地址的指令。已经获得作为由MPU714执行的地址转换处理的结果的物理模块地址。当接收到指令时,读/写信道717执行写操作以将数据写入存储介质中的物理模块地址处,或执行读操作以从存储介质中读出存储在该地址的数据。在写操作的情况下,读/写信道717将保存在高速缓冲存储器713中的写数据传输到物理模块地址,同时将根据保存在主存储器712中的变量产生的数据传输到存储介质中的标记区中。
为了使磁盘驱动器710能够将基于磁盘驱动器710的内部状态的信息写入标记区中来取代根据从主机700接收命令将信息写入标记区中,磁盘驱动器710内部设置有(1)用于在存储介质中分配标记区的标记区产生装置;(2)内部状态信息产生装置,用于从磁盘驱动器710的内部状态产生要写入标记区的信息;(3)内部状态信息写入装置,用于将由内部状态信息产生装置产生的信息实际地写入由标记区产生装置分配的标记区中。
如果在如图8中所示的数据格式中的用户数据之后提供标记区,需要改变存储介质中的记录格式。因为HDC是用于控制记录格式的元件,所以标记区产生装置是在HDC/SPC715中所采用的HDC的一部分。
为了产生基于磁盘驱动器710的内部状态的信息,MPU714必须用作能够收集信息且如果需要能够处理所收集的信息的处理器。此外,为了稍候查阅基于内部状态的信息,需要将该信息保存在存储器中。因此,通过MPU714和主存储器712来实现内部状态信息产生装置。
为了将基于内部状态的信息写入磁盘驱动器710中所采用的存储介质中,需要执行通过控制写入磁头来将该信息从数据缓冲器传送到存储介质的处理。MPU714是用于将基于内部状态的信息写入用作数据缓冲器的高速缓冲存储器713的元件。伺服控制器716是用于控制写入磁头的元件,而读/写信道717是用于执行将基于内部状态的信息从高速缓冲存储器713传输到存储介质的元件。因此,通过MPU714、高速缓冲存储器713、伺服控制器716和读/写信道717来实现内部状态信息写入装置。
在通过利用模块接口来执行磁盘驱动器的写入和读取操作的情况下,知道写入磁盘驱动器中所采用的存储介质中的数据的结构的仅有的设备为将数据写入存储介质中的主机。因此,为了探测写入磁盘驱动器中所采用的存储介质的数据伪造的存在,在将所有写操作的历史保持在磁盘驱动器中之后,需要执行了解由主机写入的数据结构的伪造探测分析程序。
为了将所有写操作的历史保存在磁盘驱动器中,需要通过执行用于将新数据记录到存储介质上的自由区中的WORM控制来将数据写入磁盘驱动器中所采用的存储介质中,以便于防止现有数据被重写。可以以两种方式执行WORM控制,即在磁盘驱动器中执行和在主机中执行。
在磁盘驱动器中执行WORM提供了这样的优点,其中,即使主机向磁盘驱动器发布写命令以将新数据写入磁盘驱动器中所采用的存储介质中已经存在的数据上,也可以以高可靠度将写操作历史保持在磁盘驱动器中。然而,在磁盘驱动器中执行WORM控制具有这样的缺点,其中,如果在不知道WORM条件的情况下主机将数据写入磁盘驱动器中所采用的存储介质中,则存取性能则会由于诸如在磁盘驱动器中执行的地址转换处理的处理而恶化。
在主机中执行WORM控制提供没有存取性能恶化的优点。然而,在主机中执行WORM控制具有这样的缺点,其中,由于这个事实,即可以将新数据写入到磁盘驱动器中所采用的存储介质中已经存在的数据之上,所以能够轻易地伪造数据。
在本发明的实施例中,主机在将数据写入到磁盘驱动器中所采用的存储介质中的操作中执行WORM控制。然而,由于磁盘驱动器能够探测将数据写在已经存在于存储介质中的数据之上的操作,该实施例具有能够探测伪造而不依赖于外部鉴别符的效果,像在日本未决专利No.11-261550中公开的方法那样。此外,由于写入磁盘驱动器中所采用的存储介质中的数据格式不限于与文件系统可兼容的格式,与在日本未决专利No.10-283262中公开的方法不同,该实施例具有还可以对于除文件系统之外的任意应用软件探测伪造的效果。除了上面的之外,不仅对于主机在将数据写入磁盘驱动器中所采用的存储介质的操作中执行WORM控制的情况来说,而且对于磁盘驱动器在将数据写入磁盘驱动器中所采用的存储介质的操作中执行WORM控制的情况来说,都可以容易地实施通过本发明提供的该方法。
此外,虽然阐述了根据本发明在文件系统中探测伪造的方法,但是只要数据为记录在逻辑结构中的数据,还可以将探测伪造的方法应用于文件系统之外的任意数据。这种数据的一个例子为数据库。
参考图1至4,下述说明阐述了基于文件系统追踪伪造探测所需的写历史的方法。在按照数据写于其上的顺序来追踪写到磁盘驱动器中的存储介质上的数据的写历史的操作中,和探测数据伪造的操作中,保存完成分析的每一LBA(逻辑模块地址)的值和分析的结果。因此,另一分析可以作为直接在其他分析之前的分析的继续开始。通过这样延缓和恢复分析,仅需要分析新保存在磁盘驱动器中所采用的存储介质中的文件的内容。因此,表明了能够缩短分析时间的效果。
在前述的步骤110中,由于如上所述的延缓和恢复分析,检验作为专门用于探测伪造的区域的工作区,所述工作区在磁盘驱动器中所采用的存储介质中分配,以确定先前进行的分析的结果是否已经保存在该区域。如果先前进行的分析的结果保存在该工作区,PAD流程进入步骤111。另一方面,如果在工作区中没有保存在先进行的分析的结果,则PAD流程进入步骤113。在步骤111,提取在先进行的分析的结果。然后,在下一步骤112,提取用于恢复分析所需的分析恢复信息,并执行检索操作以将磁头设置在直接在前的分析的继续的LBA处。分析恢复信息至少包括LBA的值,对于该LBA,已经完成了分析程序的设定和使用该程序进行的分析。
如果在工作区中没有保存在先分析的结果,可以假设分析程序处于一次都没有执行过的状态。在该情况下,执行步骤113、114和115以设定分析程序。对于每一数据格式,即,对于保持在磁盘驱动器710中的每一文件系统,需要分析程序。对保存在磁盘驱动器710中的每一文件系统提供分析程序的处理花费大量的工时。为了解决该问题,将分析程序划分成两个部分,即,(1)用于定义文件系统的数据结构的定义部分和(2)基于每一定义的数据结构的定义的搜索部分。这样,对于每一文件系统准备定义部分,但仅需要一个通用于所有文件系统的搜索部分。在步骤113,将文件系统的数据结构从作为用作分析目标的容量的包含于磁盘驱动器中的容量中加载到作为用于伪造探测程序703的区域的分配在主存储单元701中的参数区中。然后,在下一步骤114,伪造探测程序703输入在步骤113加载的数据结构。最后,在下一步骤115,执行检索操作以将磁头定位在用作分析目标的容量的起点。
在步骤120,在已经完成磁盘驱动器中所采用的存储介质中的写操作的模块的LBA范围内执行循环。执行该循环以便基于在该模块上执行的写操作为目录操作、文件操作或模块操作来进行分析。这是因为通过文件系统在模块上执行的写操作可以被分成下述三类(1)诸如文件的创建和删除以及目录的创建和删除的目录操作;(2)诸如更新文件的中间信息的文件操作;和(3)为将数据写入模块的除目录和文件操作之外的所有操作的模块操作。
通过在步骤113加载的数据结构可以唯一地确定三类中的一类作为在模块上所执行的写操作属于的类型。在步骤121,检验在模块上执行的写操作,以确定写操作是否为目录操作。如果在模块上执行的写操作为目录操作,则PAD流程进入子程序130。在步骤122,检验在模块上执行的写操作,以确定该写操作是否为文件操作。如果在模块上执行的写操作为文件操作,则PAD流程进入子程序140。在步骤123,检验在模块上执行的写操作,以确定该写操作是否为模块操作。如果在模块上执行的写操作为模块操作,则PAD流程进入子程序150。最后,如果在模块上执行的写操作不为目录操作、文件操作和模块操作,则可以将该写操作认作所产生的错误。在这种情况下,PAD流程进入步骤119,在该步骤119,记录错误。在步骤120执行的循环中对于各自完成写操作的所有LBA的分析结束后,PAD流程进入步骤116,在该步骤116分配用于保存分析结果的位置。然后PAD流程进入步骤117,在该步骤117,保存分析结果。最后,PAD流程进入步骤118,在该步骤118中保存恢复分析所需的信息。
详细地说,在步骤116,在作为专门用于探测数据伪造的区域的在磁盘驱动器710中所采用的存储介质中分配的工作区中,分配用于保存分析结果的位置。然后PAD流程进入步骤117。在步骤117,将用于在步骤120执行的循环中所分析的容量的分析结果保存在工作区中的在步骤116中所分配的位置处。然后,PAD流程进入步骤118。在步骤118,将来自对于其已经完成现存分析的LBA的分析恢复所需的信息保存在工作区中的在步骤116中所分配的位置处,以便于允许进行下一分析。作为分析恢复所需的信息的信息至少包括在步骤114中在分析程序中设置的数据和完成在步骤120中执行的在循环中进行的分析的LBA的值。
在步骤130执行的子程序搜索用于作为通过文件系统进行的改变的目录结构中的改变的目录结构。将目录结构中的这种改变作为文件或目录创建、文件或目录删除、或者文件或目录的名字的修改的结果。为了识别在目录结构中所产生的改变,需要检查由主机向用于记录作为用于管理目录记录的信息的中间信息的模块发布的更新命令。由于将所有更新的实体内容记录在用作由WORM控制执行所实施的写操作目标的磁盘驱动器中,所以通过将在修改之前的数据与修改之后的数据相比较,能够确定已经执行了什么操作。如果识别目录结构中的改变,则将改变的实体内容记录在用于管理这种改变的目录状态转变库中。
在步骤140和150中,检验文件内容的改变。将用于记录所改变的内容的模块的时间瞬态记录在文件状态转变库。
通过利用文本编辑器和RCS(修正控制系统)来处理文件的程序开发,被用作阐述目录状态转变库的实例。图10是示出目录状态转变库沿着时间轴的进展的视图。在该附图中,时间在向下方向上流逝。每一实线箭头表示可以根据伪造探测运算法则探测的目录操作事件。另一方面,每一虚线箭头表示可以根据使用的应用软件确定的目录操作的事件。
在通过利用文本编辑器保存第一次命名的文件的阶段,将CREATE事件编录在foo.c记录中。然后,当命名为foo.c的文件通过利用诸如Emacs的文件编辑器被更新和保存时,更新之前的文件的名字被改变成foo.c~,并保存命名为foo.c~的文件。因此,创建新的foo.c~记录,并将CREATE事件作为将文件从foo.c重命名为foo.c~的事件编录在foo.c~记录中。然后,当命名为foo.c的文件再次被更新时,命名为foo.c~的文件被完全删除,将已经存在的更新之前文件的名字改为foo.c~,并保存命名为foo.c的文件。因此,在目录状态转变库的foo.c~记录中,将REMOVE事件作为删除命名为foo.c~的文件的事件编录,而将CREATE事件作为将命名为foo.c的文件重命名foo.c~的事件编录。
在程序的开发中,RCS管理用于保存程序的文件的版本。在RCS中,签到操作导致原始文件的项目从用于保存文件历史的RCS文件中删除。随后,当编辑文件时,离开操作从RCS文件提取文件。签到操作将CREATE事件编录在目录状态转变库的foo.c,v记录中,并将REMOVE事件编录在目录的foo.c记录中。在离开操作中,提取文件的用户名字和关于提取时间的信息以及其它被编录在RCS文件中。为了防止原始文件由于在将数据写入文件的操作期间的意外事件而丢失,将原始文件作为具有不同名字的文件保存。然后,在将数据正常地写入到文件并校验正常的写操作之后,丢弃所保存的原始文件。因此,CREATE事件作为将原始文件重命名为其他名字的事件编录在目录状态转变库的foo.c,v~记录中。然后,在将CREATE事件编录在历史的foo.c,v记录中之后,将REMOVE事件编录在历史的foo.c,v~记录中。
参考图18和19,下述说明阐释了作为符合文件系统的格式的保存在磁盘驱动器中所采用的存储介质中的数据格式。图18是示出作为用于保存目录的中间信息的模块的包含于磁盘驱动器中所采用的存储介质中的模块的数据格式的视图。数据格式是包括记录的结构,每一个所述记录由以下两部分组成目录中的文件的名称1801或目录的名称,以及用于保持文件或目录的中间信息的节点的节点数1802。
参考数字1800表示示出在目录中仅存在一个命名为foo.c的文件的初始状态的数据格式。参考数字1810表示在文件名字从foo.c改变为foo.c~之后的状态的数据格式。由于即使在文件重命名之后文件的内容没有改变,所以用作对于记录文件的中间信息的节点的索引的节点数量还保持相同。参考数字1820表示在将命名为foo.c的文件添加到目录中之后的状态的数据格式。即使所添加的文件的名字与数据格式1800中的文件名字相同,但赋予所添加的文件的新节点数量与数据格式1800中命名为foo.c的文件的节点数量不同。这是因为所添加的文件的内容与数据格式1800中的命名为foo.c的文件的内容不同。参考数字1830表示在将命名为foo.c~的文件从目录中删除之后的状态的数据格式。
图19是示出文件中间信息的数据结构并示出存储介质的模块的视图。参考数字1911表示用于记录文件节点的模块。模块1911的用户数据801包括保存于其中的节点。参考数字1907表示节点的数据结构。参考数字1900表示文件内容的更新之前的状态,而参考数字1910表示相同文件的内容的更新后状态。将标记区811附于模块1911至1913的每一个上。
参考数字1901表示关于确定文件类型和许可类型的存取模式的信息。文件类型包括目录、文件或符号链。另一方面,许可类型可以为读许可、写许可或执行许可。参考数字1902表示关于文件所有者的信息,而参考数字1903表示文件的印时戳。所记录的文件的印时戳包括三种时间,即读出文件内容的最近时间、将数据写入文件的最近时间和更新文件节点的最近时间。参考数字1904表示文件的大小,而参考数字1905表示用于记录文件内容的每一模块的索引数量。每一个索引数量1905可以用于识别记录文件内容的模块1912中之一。参考数字1906表示用于记录文件内容的模块的总数量。
为了更新文件内容,需要更新像模块1913的用于记录内容的模块。当模块的索引数量1905改变或添加用于记录文件内容的模块时,模块的索引数量1905需要更新。在这种情况下,还改变包含于印时戳1903的用于更新文件的文件更新时间。另外,节点更新时间也被改变。
值得注意的是,文件系统的结构确定哪一个模块用作这样的模块,所述模块用于保存相应节点数量的信息。相似地,文件系统的结构还确定HDD中的哪一个扇区用作这样的扇区,所述扇区用于存储模块的节点数量。
图20是示出目录状态转变库的数据结构的视图。在图20中,参考数字2001表示示出将在标记区中保存的值分类的结果的列。根据各自具有图18中示出的数据结构的模块和保存在如图19中所示的模块中的中间信息的分析,组织数据以在目录状态转变库中形成记录(或行)。每一记录包括下述数据。参考数字2002表示用作分析目标的文件(或目录)所属的目录的名字。参考数字2003表示文件或目录的名字。参考数字2004表示可以为文件或目录的文件类型。参考数字2005表示在文件或目录上执行的操作的类型。参考数字2006表示文件或目录的节点数量。参考数字2007表示在分析时知道的作为文件或目录的备注的东西。文件或目录与记录在用于保存文件或目录的中间信息(节点)的模块的标记区811中的值2001相关。目录名字2002和在与目录名字2002相同的记录中的名字2003可以用于识别文件系统中的文件或目录。
例如,记录2011包括用于迄今并不存在于目录状态转变库中的新文件的数据。在该记录的情况下,操作类型2005为CREATE,而备注2007表述为“新文件”。出于同样的原因,记录2014包括用于新目录的数据。在该记录的情况下,操作类型2005为CREATE,而备注2007表述为“新目录”。记录2012包括表示文件名改变的数据。即使文件名改变节点数量保持相同。因此能够识别其名字已经从一文件名改为另一个的文件(或目录)。在记录2012的情况下,文件名已经从foo.c改变为最新设定为具有在备注2007中描述的“SRC foo.c”的文件名2003的foo.c~,以表明原始文件为foo.c。为了表示该文件名的改变,将RENAME设定为操作类型2005。记录2015包括表示文件删除的数据。在该情况下,将REMOVE设定为操作类型2005。
图21是示出文件状态转变库的数据结构的视图。特别地,该附图示出用于由图20中示出的目录状态转变库的记录中的数据表示的/src/foo.c文件的文件状态转变库。记录2111相应于记录2011。记录2111包括表示命名为/src/foo.c的新文件的创建的数据。标记2101为记录在用于记录文件的中间信息(或节点)的模块的标记区811中的值。参考数字2103表示包含于文件的中间信息中的印时戳1903的值。图21示出由于有限空间而各自仅包括文件更新时间的印时戳。在实际中,印时戳1903包括所有前述的印时戳信息。参考数字2104表示指向用于记录文件内容的模块的索引数量1905。标注2105表述为表示新文件的创建的“新文件”。
出于相同的原因,记录2112相应于记录2012。记录2112包括表示示出文件名/src/foo.c已经被改为/src/foo.c~的状态的数据。因此,该记录2112的操作类型2102为RENAME。备注2105表述为表示改变后的文件名为foo.c~的“DST foo.c~”。同样,记录2113相应于记录2013。记录2113包括表示示出已经创建具有/src/foo.c文件名的新文件的状态的数据。记录2114包括表示示出已经添加用于记录状态内容的模块的状态的数据。在该记录中,操作类型2102、印时戳2103和模块索引数量2104分别为UPDATE、文件更新时间和添加模块的索引数量。备注2105表述为表示已经添加模块的ADD BLK。记录2115包括表示示出已经改变文件属性的状态的数据。一个属性的例子为存取模式。在该记录中,操作类型为UPDATE,而备注2105表述为MODATTR。因为记录2115中的印时戳2103也仅示出属性更新时间,所以示出的属性更新时间与记录2114的相同。然而,记录2114中的印时戳2103示出节点更新时间。记录2117包括表示示出已经删除文件的状态的数据。在该记录中的操作类型2102表述为REMOVE。记录2118包括表示示出已经将/src/baz.c文件名改变为/src/foo.c的文件名的状态的数据。在该记录中,操作类型2102为RENAME,且备注2105表述为SRC baz.c。记录2119包括表示示出已经替换用于记录文件内容的模块的状态的数据。在该记录中,操作类型2102为UPDATE,而备注2105表述为MOD BLK。在已经替换模块之后,将被替换的模块的索引数量2104记录在记录中。
在状态从记录2117转变到记录2118期间,用保持与记录2117的印时戳不变的记录2118的印时戳2103替换文件。相同的印时戳表明其的确在文件由于文件替换而被伪造的可能性范围内。出于相同的原因,记录2119的印时戳保持与记录2118的相同的事实暗示其的确在文件由于模块替换而被伪造的可能性范围内。
图22是示出设置用于文件状态转变库内的模块的LBA状态转变库的数据结构的视图。更为具体地,图22中示出的LBA状态转变库为设置用于图21中示出的文件状态转变库中的模块的历史。参考数字2201表示示出每一模块的索引数量的列。与索引数量2201相关,参考数字2202表示示出在HDD中采用的硬盘中的每一扇区的LBA的列。一个模块相应于4个扇区。除LBA之外,列2202还示出存储在各自与一个LBA相关的标记区811中的值。
作为在文件的中间信息级别进行分析的结果,获得包含于图21中示出的文件状态转变库中的数据,同时,作为在安装于HDD上的硬盘的LBA级别进行分析的结果,获得包含于图22中示出的LBA状态转变库中的数据。因此,即使存储在HDD中所采用的硬盘的扇区中的数据没有通过文件系统被改变,也可以探测伪造。例如,看记录2212。在该记录中,记录在用于赋予包括模块的四个扇区的其中之一的3078的LBA标记区811中的值相对于其余扇区的值不展示出连续性。这种不连续性很显然地表示其的确在由于3078的LBA而导致伪造的可能性的范围内。
图22仅示出用于961模块的记录2212的伪造后状态。然而,通过执行周期性探测伪造并保存图20中示出的目录状态转变库、图21中示出的文件状态转变库以及图22中示出的LBA状态转变库的处理,可以将在LBA处的伪造之前和之后的状态记录在LBA状态转变库中。
在步骤130处执行的子程序的步骤201处,将中间信息的改变前的状态与其改变后状态比较。通过利用目录的识别符能够识别目录的中间信息。因此,在在先纪录的中间信息中,搜索具有与分析目标相同的识别符的信息,并将在搜索中发现的中间信息与分析目标的相比较。由于通过WORM控制的执行已将数据写在磁盘驱动器中所采用的存储介质上的事实,可以执行该比较。在该比较中探测到改变点之后,PAD流程进行到步骤210。在步骤210,检验在步骤201获得的结果,以确定是否新创建文件。如果新创建文件,则PAD流程进入步骤211。在步骤210的处理结束之后,PAD流程进入步骤220。
如上所述,如果通过应用软件将数据保存在现有的文件中,则现有文件的内容保留在用作文件备份的与现有文件的旧名字不同的文件中,以便于在某些情况下现有文件变成通过保留旧名字来记录新内容的文件。因此,为了探测具有旧名字的文件的伪造,需要追踪更新文件的操作。在步骤211,为了实施追踪更新文件的操作的这一方法,在目录状态转变库的文件转变记录中搜索过去存在的相同文件名。在完成搜索之后,PAD流程进入步骤212。在步骤212,检验在步骤211获得的搜索结果,以确定在过去是否存在相同的文件名。如果过去存在相同的文件名,则PAD流程进入步骤213。另一方面,如果在过去不存在相同的文件名,则PAD流程进入步骤215。例如,假设将数据写入到命名为A的现有文件,且命名为A的文件的先前内容保持在命名为A.BACKUP的新文件中。在该情况中,在步骤213,将表示已经创建命名为A的新文件的状态作为命名为A的现有文件的新记录添加到包含于目录状态转变库中的现有文件转变记录。另外,将表示现有文件的名字已经从A改变为A.BACKUP的状态添加到目录状态转变库中。
如果按照将数据写入到磁盘驱动器中所采用的存储介质中的顺序进行模块分析,则可以仅按照文件被更新的顺序追踪目录状态转变库的文件转变记录。然而,如果期望确定指定的文件是否已经被伪造,则从最近的状态到在先的状态来追踪文件是方便的。因此,在下一步骤214,将参考备注作为这样的备注添加到在步骤213中添加的文件转变记录中,所述备注表示从在步骤213中添加的文件转变记录表示的状态到在先状态的文件追踪的相反方向。在下一步骤215,在目录状态转变库中创建用于新文件的新文件转变记录以表示已经创建新文件。
在步骤220,检验在步骤201获得的比较结果,以确定文件是否被删除。如果文件被删除,PAD流程进入步骤221。在步骤220结束之后,PAD流程进入步骤230。在步骤221,将表示文件已删除的状态作为文件转变记录添加到目录状态转变库。然后,PAD流程进入步骤214。在下一步骤214,将作为表示从删除文件的状态到在先状态的文件追踪的相反方向的备注的参考备注添加到文件转变记录。
在步骤230,检验在步骤201获得的比较结果,以确定文件名是否被改变。如果文件名已经被改变,则PAD流程进入步骤211。在步骤211,在目录状态转变库的文件转变记录中,搜索过去存在的相同文件名。在完成搜索之后,PAD流程进入步骤212。在步骤212,检验在步骤211获得的搜索结果,以确定在过去是否存在相同的文件名。如果过去存在相同的文件名,则PAD流程进入步骤231。另一方面,如果过去不存在相同的文件名,则PAD流程进入步骤215。在步骤231,将表示文件名已经从一个改变为另一个的状态作为文件转变记录添加到目录状态转变库。在下一步骤214,将作为表示从由在步骤231添加的文件转变记录表示的状态到在先状态的文件追踪的相反方向的备注的参考备注添加到在步骤231添加的文件转变记录中。然后在下一步骤215,在目录状态转变库中创建用于新文件的新文件转变记录,以表明文件名已经从一个改变为另一个。在步骤230结束之后,PAD流程进入步骤202。在步骤202,执行寻找下一模块的检索操作。
在步骤140执行的子程序中,检查用作文件的管理信息的中间信息的改变。文件的管理信息包括文件的修正时间和用于保存文件内容的每一模块的LBA的值。很像在步骤130执行的子程序,将用于保存中间信息的模块的更新之前的内容与模块的更新后内容比较,以确定执行何种类型的更新。在步骤140处执行的子程序的步骤301处,将在文件的中间信息更新之前存在的状态与在中间信息更新之后存在的状态比较。通过利用文件的识别符可以识别文件的中间信息。因此,在先前纪录的中间信息中搜索具有与分析目标相同的识别符的信息,并将在搜索中发现的中间信息与分析目标的相比较。由于通过WORM控制的执行已将数据写在磁盘驱动器中所采用的存储介质上的事实,可以执行该比较。在步骤301结束之后,PAD流程进入步骤310。在步骤310,检验在步骤301识别的改变点,以确定文件的中间信息是否被更新。如果文件的中间信息已被更新,PAD流程进入步骤311。在步骤311,将表示用作管理信息的中间信息的改变点的状态作为新文件转变记录添加到目录状态转变库。如上所述,管理信息的例子包括文件的修正时间和用于保存文件内容的每一模块的LBA的值。
文件的中间信息为每次进行存取文件时都被更新的信息。因此,为了提高文件系统的性能,通常将中间信息保存在主机的高速缓冲存储器中。结果,其的确处于在将文件内容保存在模块中的阶段中不将存储在高速缓冲存储器中的中间信息反射到模块中的可能性范围内。因此,在一些情况下,如果通过执行WORM控制来按照将内容写入到磁盘驱动器中所采用的存储介质中的顺序进行模块内容的分析,则不可能确定哪一个文件包括存储在模块中的内容。为了解决该问题,该实施例设置有两种不同类型的库用于基于是否能够识别哪一个文件包括从中间信息的LBA存储的内容来管理LBA。
如果能够识别哪个文件包括保存在来自中间信息的LBA的内容,则通过利用为在文件状态转变库中指定的模块提供的LBA状态转变库来管理LBA。为在文件状态转变库中指定的模块提供的LBA状态转变库用于在每次更新文件内容时编录关于这种LBA的改变。另一方面,如果不能够识别哪个文件包括保存在来自中间信息的LBA的内容,则将LBA编在仅用于管理这种LBA的LBA状态转变库中。然后,如稍后所描述的,在特定阶段,变得能够识别哪个文件包括保存在该LBA处的内容。在该阶段,将用于该LBA的记录从用于仅管理该LBA的LBA状态转变库移动到为在文件状态转变库中指定的模块提供的LBA状态转变库中。
在步骤311结束之后,PAD流程进入步骤312,在步骤312,在用于仅管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库中搜索包括中间信息中的LBA的LBA模块记录。在步骤312结束之后,PAD流程进入步骤313,以确定是否已经在搜索中发现中间信息中的LBA。如果在搜索中发现中间信息中的LBA,则PAD流程进入步骤314。在步骤314,将在搜索中发现的LBA记录从用于仅管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库中移动到为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中。在步骤314结束之后,PAD流程进入步骤315。在步骤315,在从用于仅管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库中移动到为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中的LBA模块记录中搜索用于保存文件尾标的模块的LBA。在步骤315结束之后,PAD流程进入步骤316。在步骤316,检验搜索结果以确定用于保存文件尾标的模块的LBA是否包含于LBA模块记录中。如果用于保存文件尾标的模块的LBA包含在LBA模块记录中,则PAD流程进入步骤317。在步骤317,将作为表示最后模块为文件的末端模块的标记的一致性标记添加到文件的最后模块的管理区。通过以这种方式对于每一文件识别哪个模块为文件的末端模块,可以以所保持的一致性使将数据写入磁盘驱动器中的文件中的操作无效。
在步骤313结束之后,PAD流程进入步骤318。在步骤318,通过利用在步骤311添加的中间信息和记录在模块的标记区811中的信息,并通过比较根据中间信息显而易见得出的更新顺序与实际模块更新顺序比较,来验证一致性。然后将验证的结果添加到文件状态转变库。
在根据本发明的磁盘驱动器中,保存于模块的标记区811中的信息可以由主机查阅但不能被其更新。图9中示出保存于标记区811中的信息的一个实例。在实例910的情况下,磁盘驱动器将数据写入模块的时间作为具有4个字节长度的整数被记录在标记区中。所记录的时间可以为与诸如格林威治标准时间的现实时间同步的时间或为从初始打开电源时间开始所经历的累计操作时间。在实例920的情况下,将各自发出的用于将数据写入模块中的写命令的总数量作为具有4个字节长度的整数记录在标记区中。通过计算从第一次打开磁盘驱动器开始发出的写命令的累计数量,来获得记录在标记区中的值。如果保存在一个模块中的用户数据801的大小为512个字节,则可以使用具有4个字节长度的整数来表达总数量高达2T字节的用于写数据的写命令。在实例930的情况下,磁盘驱动器将数据写入模块的时间和写命令的总数量被记录在标记区中。在实例940的情况下,除了实例930的数据之外,还将向与标记数量相关的模块发出的写命令的数量作为具有2个字节长度的整数记录在标记区中。
如上所述,保存于标记区811中的信息可以由主机查阅但不能被其更新。因此,通过检查中间信息与记录在标记区中的信息之间的一致性,能够确定数据是否被非法伪造。
在步骤318结束之后,PAD流程进入步骤214。添加作为表示从在步骤311编录的状态到在先状态的相反方向的备注的参考备注。在步骤310结束之后,PAD流程进入步骤202。在步骤202,执行发现下一模块的检索操作。
在步骤150执行的子程序中,检验对每一模块作出的改变。在通过文件系统将来自主机的数据写入到磁盘驱动器中所采用的存储介质中的文件中的操作中,将在其处保存文件内容的LBA的值记录在文件的中间信息中。这样,通过查阅文件的中间信息,能够确定文件的哪个LBA具有被改变的数据。每当向文件进行存取时,更新文件的中间信息的存取时间属性。然而,如果每当进行这种存取时将由于存取文件而引起的更新反射到磁盘驱动器中,文件系统的性能会相当程度地恶化。为了解决该问题,在将更新最终传送到磁盘驱动器之前,暂时在主机侧上的高速缓冲存储器中保存中间信息的更新。然而,这样一来,在某些情况下,如果按照与通过执行WORM控制将数据块写入存储介质的顺序相同的顺序分析磁盘驱动器中所采用的存储介质中的模块,则不能确定哪一文件包括存储在用作分析目标的模块中的内容。为了解决该问题,在该实施例中,当主机通过指定LBA来将数据写入用作分析目标的模块中且能够识别哪一文件包括存储在LBA的内容时,将表示已经将数据写入模块中的状态添加到为在文件的文件状态转变库中指定的模块提供的LBA状态转变库中。否则,独立于文件状态转变库来创建仅用于管理各自用于保存未识别的文件的内容的模块的LBA的新LBA状态转变库,并将表示已经将数据写入模块中的状态添加到新LBA状态转变库中。
在步骤150执行的子程序的步骤401处,在为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中搜索用作分析目标的模块的LBA。在步骤401结束之后,PAD流程进入步骤410。在步骤410,检验在步骤401执行的搜索的结果,以确定用作分析目标的模块的LBA是否已经编录到LBA状态转变库中。如果该LBA已经编录在LBA状态转变库中,则PAD流程进入步骤411。另一方面,如果该LBA没有编录在LBA状态转变库中,则PAD流程进入步骤416。
在步骤411,将与用作分析目标的模块相关的信息添加到为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中。所添加的信息为从用作分析目标的模块的标记区811读出的信息。然后PAD流程进入步骤412。
在步骤412,检验作为被识别文件的文件更新顺序的中间信息表示的文件更新顺序与从在步骤411编录的标记区811中读出的信息之间的一致性,并将检验结果编录在LBA状态转变库上。例如,假设存储介质中的文件A和B已经被更新,且,根据包含在中间信息中的纪录,文件B在文件A之后被更新,而从标记区811读出的信息表示文件A在文件B之后被更新。在这种情况下,确定文件A为通过利用非法手段被伪造的文件。在步骤412结束之后,PAD流程进入步骤413。
在步骤413,添加表示从在步骤411编录的状态到在先状态的相反方向的参考备注。在步骤413结束之后,PAD流程进入步骤414。
在步骤414,检验用作分析目标的模块以确定该模块是否为用于记录文件内容末端的最后模块。如果确定用作分析目标的模块为用于记录文件内容末端的最后模块,则PAD流程进入步骤415。在步骤415,将一致性标记添加到用作分析目标的模块的管理区。一致性标记为表示用作分析目标的模块为用于记录文件内容末端的最后模块。通过以这种方式对每一文件识别哪一模块用作记录文件内容末端的最后模块,能够使将数据写入磁盘驱动器中所采用的存储介质的文件中的操作无效,以便于保持一致性。
然后,在步骤416,将新记录添加到仅用于管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库中。然后,从用作分析目标的模块的标记区811中读出信息并将其编录到记录中。
如上所述,通过收集未被编录在仅用于管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库中的中间信息中的LBA,即使对于保存内容的操作,也能够在将LBA编录到中间信息之前追踪。
在步骤410结束之后,PAD流程进入步骤202。在步骤202,执行寻找下一模块的检索操作。
通过参考图5和6,下述说明将阐述探测指定文件的伪造的方法。在先前参考图1至4阐述的将数据添加到写操作历史中的方法中,将写操作划分为目录和文件操作。因此,在分析通过执行WORM控制写入到磁盘驱动器中所采用的存储介质中的数据中,可以将文件伪造的探测划分成在目录操作级的文件伪造探测和在文件操作级的文件伪造探测。更为详细地,在目录操作级的文件伪造探测中,检验文件替换的存在。另一方面,在文件操作级的文件伪造探测中,检验用于记录文件内容的数据模块的替换的存在。已经通过采用先前参考图1至4中示出的PAD图所阐述的追踪写操作历史的方法来收集需要用于确定数据是否被伪造的所有数据。因此,在由图5和6示出的PAD图所表示的操作中,指定用作伪造探测的目标的文件,并将作为历史追踪分析的结果的所探测到的伪造的实体内容读出并将其输出到控制台。
当用户向控制台的路径名输入单元601输入伪造探测目标的路径名并操作命令按钮602时,在伪造探测方法的步骤501,输入由用户指定的路径名。在步骤501结束之后,PAD流程进入步骤510。
在步骤510,将按照从最近的文件状态开始到在先状态的反向顺序循环由实施写历史追踪方法100产生的分析结果。如果文件已经被伪造,通过从最近的状态追踪它们回到在先状态来检验文件的改变点,使得能够确定文件是否在短的时间周期内被伪造。在步骤511,检验当前被处理的目录操作历史以确定是否与在步骤501指定的路径名一致。如果它们相匹配,则PAD流程进入步骤512。在步骤512,从作为用于指定文件的文件转变记录的包含于在子程序130中所分析的目录状态转变库中的文件转变记录读出文件操作的实体内容。在该步骤读出的文件操作通常包括文件创建、文件删除或文件名修改。在步骤512结束之后,PAD流程进入步骤513。在步骤513,将所提取的操作的实体内容输出到控制台。在步骤513结束之后,PAD流程进入步骤531。在步骤531,以与步骤512相同的方式从目录状态转变库中读出关于中间信息更新的历史一致性的信息。在步骤531结束之后,PAD流程进入步骤532。在步骤532,向控制台输出关于中间信息更新的历史一致性的信息。
在结束在步骤510执行的循环之后,PAD流程进入到在步骤520执行的循环。在步骤520执行的循环中,对于在步骤510执行的循环中读出的操作的每一实体内容,从存储介质中读出用于操作的实体内容的文件内容。只要所提取的操作的实体内容存在,执行在步骤520执行的循环的步骤527、538、533和534。
当删除被新文件替换的现有文件时,WORM控制程序702能够追踪两个文件的内容。在步骤527,通过利用控制程序702的功能,来提取在先文件与替换文件之间的文件级差异。在步骤527结束之后,PAD流程进入步骤528。在步骤528,向控制台输出文件差异。在步骤528结束之后PAD流程进入步骤533。在步骤533,从为在文件状态转变库中指定的模块提供的LBA状态转变库中读出关于文件一致性的信息。然后,PAD流程进入步骤534。在步骤534,向控制台输出所提取的关于一致性的信息。
在该实施例中,主机执行WORM程序702以将所有的写操作历史保存在磁盘驱动器710中。如果操作主机的用户通过利用来自主机的正常路径来伪造磁盘驱动器710中所采用的存储介质中的数据,则所有伪造历史将保留在磁盘驱动器710中。在该情况下,从中间信息更新的历史和内容更新的历史,可以删除伪造和伪造的实体内容。另一方面,如果并非通过正常的存取路径来伪造磁盘驱动器710中所采用的存储介质中的数据,则通过检验记录在标记区811中的信息与中间信息和/或内容之间的一致性,可以删除伪造。通常,如下所述来检验一致性。假设文件A和B已经保存在磁盘驱动器中所采用的存储介质中,且分析中间信息的结果表示在文件B的一个月之前应当已将文件A记录在存储介质中。在该情况下,如果文件A实际上在文件B之后被记录在存储介质中,则确定文件A为被伪造的文件。即使在复制磁盘驱动器710中所采用的存储介质中保存的整个数据的操作期间从标记区811中记录的信息改变数据,也能够确定在短时间周期内在脉冲操作中进行了改变。因此,可以探测磁盘驱动器710中所采用的存储介质的复制。
为了示出中间信息与内容的一致性的差异的信息,控制台对每个中间信息和文件内容提供了一致性显示区和差异显示区。更为具体地,中间信息的差异显示区603显示步骤513输出到控制台的结果。目录操作显示区610用于指定差异要被显示的目录操作。用于显示目录操作的目录操作显示区610包括用于显示各目录操作的实体内容操作类型显示列611和用于显示各目录操作的一致性信息的一致性信息显示列612。如果用户查看操作类型显示列611中的各目录操作的实体内容并选择由黑色行613示出的目录操作,则在用于中间信息的差异显示区603中显示所选择的目录操作与在先操作之间的中间信息差异。此外,通过选择如上所述的目录操作,在用于文件内容的差异显示区604中显示在选择目录操作之前与之后之间的文件差异。除此之外,通过选择如黑色行613所表示的目录操作,受限于选择目录操作的各自用于记录文件的内容的模块的显示区620,示出关于各自用于记录内容的模块的一致性的信息。
另外,如果探测到伪造,则可以通过指定黑色行613并通过操作数据无效按钮605来选择要被恢复的状态,将无效数据的命令给予WORM控制程序702。根据该命令,WORM控制程序702使在由黑色行613所选择的状态中和之前执行的所有写操作无效。
接着,通过参考图23来阐述控制台的典型显示器。文件转变记录2118和2119分别相应于行2301和2302。将文件转变记录2118的内容改变成记录2119中的内容,而不管印时戳保持相同的事实。因此,在用于目录操作的一致性信息显示列612中,行2301和2302各自显示NG标志。通过选择行2302,用于中间信息的差异显示区603显示不一致的原因,该原因实际上为文件转变记录2118的内容被改为记录2119中的内容而不管印时戳保持相同的事实。在用于模块的LBA显示列621中,行2303在模块的一致性显示列622上显示NG标志以表明不一致问题的存在,该不一致问题为在记录2212中的3078LBA的标记区811中记录的值与同3078LBA一起在形成记录2212的模块的3076、3077和3079的三个剩余的LBA的标记区811中记录的值不连续。文件差异显示区604显示记录2301与2302之间的差异,即,事实上,模块623已改变为模块961。
在本发明的该实施例中,作为目录操作,仅处理文件创建、文件删除和文件名修改,而作为文件操作,仅处理将关于用于记录文件内容的模块的信息添加到中间信息的操作。然而,目录和文件操作可以容易地扩展以包括改变多种属性的操作,诸如存取文件花费的时间。
在该实施例的说明中,通过以文件系统作为实例来阐述由本发明提供的方法。然而,除文件系统之外,该方法可以容易地应用于任何其它用于在磁盘驱动器的存储介质中以一种像数据库一样的数据结构保存数据的记录技术。
在来自主机的通过正常的存取路径的写操作的情况下,采用在日本未决专利No.10-283262中公开的方法,能够确定是否存在伪造。另一方面,根据本发明,还可以识别伪造的实体内容。此外,在不由主机执行的通过非法存取路径的写操作的情况下,采用日本未决专利No.10-283262中公开的方法,甚至不能够确定是否存在伪造。另一方面,根据本发明,能够确定是否存在作为这种非法写操作的结果的伪造。
在本发明的情况下,为了探测伪造,只需要仅读出文件的中间信息和记录在标记区811中的值。例如,如果在4kB的单元中通过利用具有4B大小的中间信息来管理内容,则中间信息的大小为在该管理中使用的单元大小的1/1000。因此,与日本未决专利No.11-261550中公开的方法相比较,可以将探测伪造所花费的时间至少减小至1/1000。
此外,在日本未决专利No.11-261550中公开的方法绝对需要外部识别机。另一方面,本发明甚至可以用于孤立的环境中。
第二实施例图11是关于阐述根据本发明第二实施例的追踪写操作历史的方法的PAD图。在图11中,参考数字1100表示关于阐述根据执行根据本发明的磁盘驱动控制方法和伪造探测方法的第二实施例的追踪写操作历史的方法的PAD图。参考数字1110表示确定是否存在在先进行的分析结果的步骤。参考数字1111表示提取在先进行的分析结果的步骤。参考数字1112表示提取作为直接在先分析的继续的开始分析需要的分析恢复信息的步骤。参考数字1113表示提取记录在磁盘驱动器中所采用的存储介质上的数据的数据结构的步骤。参考数字1114表示设定用于追踪写操作历史的分析程序的步骤。参考数字1115表示在磁盘驱动器中所采用的存储介质中检索存储介质起点的操作的步骤。参考数字1116表示分配用于保存分析结果的位置的步骤。参考数字1117表示写入分析结果的步骤。参考数字1118表示在进行下一分析中写入作为直接在先分析的继续的开始下一个分析需要的分析恢复信息的步骤。参考数字1119表示记录错误的步骤。参考数字1120表示在分析目标模块的PBA(物理模块地址)的范围内执行循环的步骤,所述分析目标模块作为已经写入数据的模块包括在磁盘驱动器中使用的存储介质中。参考数字1121表示确定在用作分析目标的模块上执行的操作是否为目录操作的步骤。参考数字1122表示确定在用作分析目标的模块上执行的操作是否为文件操作的步骤。参考数字1123表示确定在用作分析目标的模块上执行的操作是否为模块操作的步骤。参考数字1130表示在用作分析目标的模块上执行的操作为目录操作的情况的子程序。参考数字1140表示在用作分析目标的模块上执行的操作为文件操作的情况的子程序。参考数字1150表示在用作分析目标的模块上执行的操作为模块操作的情况的子程序。
图12是关于阐述根据本发明第二实施例的子程序1130的PAD图。在图12中,参考数字1200表示由执行根据本发明的磁盘驱动控制方法和伪造探测方法的第二实施例提供的子程序1130。参考数字1201表示将用作分析目标的模块与这样的模块比较的步骤,所述模块经历过在先写操作并规定与用作分析目标的模块相同的LBA。参考数字1201还可以表示将用作分析目标的模块与这样的模块比较的步骤,所述模块包括对应目录名的记录的中间信息,所述目录名与对应在用作分析目标的模块中记录的中间信息的目录名相同。参考数字1202表示检索下一模块的步骤。参考数字1210表示确定写操作是否为文件创建。参考数字1211表示检索文件名与用作分析目标的文件名相同的过去存在的文件名的步骤。参考数字1212表示根据检索结果确定是否存在相同的文件名的步骤。参考数字1213表示将作为用于保存分析结果的文件转变记录项目的项目添加到目录状态转变库的现有文件转变记录中的步骤。参考数字1214表示将表示相反方向的参考备注添加到文件转变记录中的步骤。参考数字1215表示在目录状态转变库中创建新的文件转变记录的步骤。参考数字1220表示确定写操作是否为文件删除的步骤。参考数字1221表示将文件删除的文件转变记录添加到目录状态转变库的步骤。参考数字1230表示确定写操作是否为改变文件名的操作。参考数字1231表示将文件名修改的文件转变记录添加到目录状态转变库中的步骤。
图13是关于阐述根据本发明第二实施例的子程序1140的PAD图。在图13中,参考数字1300表示由执行根据本发明的磁盘驱动控制方法和伪造探测方法的第二实施例提供的子程序1140。参考数字1301表示将用作分析目标的模块的在先LBA状态与现有状态比较的步骤。参考数字1310表示检查文件的中间信息是否被更新的步骤。参考数字1311表示将更新中间信息的操作作为文件转变记录添加到目录状态转变库中的步骤。参考数字1312表示在为在文件状态转变库的文件转变记录中指定的模块提供的LBA(逻辑模块地址)状态转变库中检索中间信息中的LBA的步骤。参考数字1313表示确定中间信息中的LBA是否已经编录在为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中的步骤。参考数字1314表示将LBA模块记录从用于仅管理各自用于记录未识别的文件的内容的模块的LBA的LBA状态转变库移动到为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中的步骤。参考数字1315表示在从用于仅管理各自用于记录未识别的文件的内容的模块的LBA的LBA状态转变库移动到为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中的LBA模块记录中检索用于保存文件尾标的模块的LBA的步骤。参考数字1316表示确定用于保存文件尾标的模块的LBA是否包含在从用于仅管理各自用于记录未识别的文件的内容的模块的LBA的LBA状态转变库移动到为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中的LBA模块记录中的步骤。参考数字1317表示将一致性标记添加到包括文件的最后模块的管理区的步骤。
图14是关于阐述根据本发明第二实施例的子程序1150的PAD图。在图14中,参考数字1400表示由执行根据本发明的磁盘驱动控制方法和伪造探测方法的第二实施例提供的子程序1150。参考数字1401表示在为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中检索用作分析目标的模块的LBA的步骤。参考数字1410表示确定用作分析目标的模块的LBA是否已经编录在为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中的步骤。参考数字1411表示将与用作分析目标的模块相关的信息添加到为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中的步骤。参考数字1412表示将表示相反方向的参考备注添加到为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中的步骤。参考数字1413表示将关于文件识别符的信息添加到用作分析目标的模块的管理区中的步骤。参考数字1414表示确定用作分析目标的模块是否为用于记录文件内容末端的最后模块的步骤。参考数字1415表示将一致性标记添加到包括文件的最后模块的管理区中的步骤。参考数字1420表示确定用作分析目标的模块的LBA是否为第一次出现的LBA的步骤。参考数字1421表示在仅用于管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库中创建新记录的步骤。参考数字1422表示将信息添加到仅用于管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库的LBA模块记录中的步骤。参考数字1423表示将表示相反方向的参考备注添加到仅用于管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库的LBA模块记录中的步骤。
图15是关于阐述作为探测文件伪造方法的根据本发明第二实施例的方法的PAD图。在图15中,参考数字1500表示关于阐述执行根据由本发明提供的磁盘驱动控制方法和伪造探测方法的第二实施例的探测文件伪造的方法的PAD图。参考数字1501表示指定路径名的步骤。参考数字1510表示按照相反的顺序循环目录操作历史的步骤。参考数字1511表示确定路径名是否为指定的路径名的步骤。参考数字1512表示从目录操作历史中读出操作的实体内容的步骤。参考数字1513表示向控制台输出所提取的操作的实体内容的步骤。参考数字1520表示只要存在所提取的操作的实体内容就执行循环的步骤。参考数字1521表示对于各自用于记录由文件转变记录指定的文件内容的模块执行循环的步骤。参考数字1522表示在具有相同的LBA的模块以相反的方向执行循环的步骤。参考数字1523表示从存储介质中读出模块内容的步骤。参考数字1524表示读出在先保存在处于相同LBA处的模块中的内容的步骤。参考数字1525表示提取在当前模块与先前经历写操作的模块之间的内容差异的步骤。参考数字1526表示向控制台输出所提取的模块之间的内容差异的步骤。参考数字1527表示提取在被替换的和替换文件之间的文件级差异的步骤。参考数字1528表示向控制台输出文件差异的步骤。
图16是示出作为由本发明第二实施例提供的屏幕的控制台的显示单元上呈现的屏幕的视图。在图16中,参考数字1600表示作为由执行根据本发明的磁盘驱动控制方法和伪造探测方法的第二实施例提供的屏幕的控制台的显示屏幕。参考数字1601表示用于输入路径名的输入部分,而参考数字1602表示请求相应于路径名的分析结果的显示的命令按钮。参考数字1603用于显示中间信息差异的显示区,而参考数字1604表示用于显示模块之间的差异的显示区。参考数字1605表示用于显示文件差异的显示区,而参考数字1606表示模块选择清除按钮。参考数字1607表示用于作出数据无效请求的命令按钮,而参考数字1610表示目录操作显示区。参考数字1611表示用于显示各目录操作的实体内容的显示列,而参考数字1612表示用于显示各目录操作的外部时间的显示列。参考数字1613表示用于显示各目录操作的内部时间的显示列。参考数字1614表示所选择的目录操作的行,而参考数字1620表示用于显示各自用于记录文件内容的模块的显示区。参考数字1621表示用于显示用于记录文件内容的各模块的LBA的显示列。参考数字1622表示用于显示用于记录文件内容的各模块的LBA的时间瞬态的显示列。参考数字1623表示代表作为记录文件内容的模块的处于LBA处的模块的选择框。
图17是示出根据本发明第二实施例的系统的结构的视图。在图17中,参考数字1700表示由执行根据本发明的磁盘驱动控制方法和伪造探测方法的第二实施例提供的系统。参考数字1701和1702分别表示主机和控制台。参考数字1703表示从主机1701通过模块接口到磁盘驱动器所进行的存取。参考数字1704表示从控制台1702通过管理接口进行的存取。参考数字1710表示磁盘驱动器,而参考数字1711表示在磁盘驱动器1710中所采用的控制器。参考数字1712表示在磁盘驱动器1710中所采用的存储介质。
图24是示出作为根据本发明第二实施例的LBA状态转变库的与在文件状态转变库的文件转变记录中指定的模块相关的LBA状态转变库的数据结构的视图。在图24中,参考数字2400表示LBA状态转变库。参考数字2401表示示出各自用于记录文件内容的模块的索引数量的列。参考数字2402表示示出LBA和各自放入圆括号中的作为与LBA相关的PBA的PBA。每一个记录(行)中的LBA和PBA为扇区的地址,所述扇区包括与LBA和PBA相同的记录中的索引数量表示的模块。
参考数字2403表示包括用于记录由模块号码204表示的模块的内容的每一扇区的LBA和PBA的记录。以相同的方式,参考数字2404表示包括用于记录由模块号码251表示的模块的内容的每一扇区的LBA和PBA的记录。同样,参考数字2405表示包括用于记录由模块号码516表示的模块的内容的每一扇区的LBA和PBA的记录。相似地,参考数字2406表示包括用于记录由模块号码538表示的模块的内容的每一扇区的LBA和PBA的记录。出于同样的原因,参考数字2407表示包括用于记录由模块号码621表示的模块的内容的每一扇区的LBA和PBA的记录。同样地,参考数字2408表示包括用于记录由模块号码622表示的模块的内容的每一扇区的LBA和PBA的记录。同样地,参考数字2409表示包括用于记录由模块号码623表示的模块的内容的每一扇区的LBA和PBA的记录。相似地,参考数字2410表示包括用于记录由模块号码624表示的模块的内容的每一扇区的LBA和PBA的记录。出于同样的原因,参考数字2411表示包括用于记录由模块号码625表示的模块的内容的每一扇区的LBA和PBA的记录。同样地,参考数字2412表示包括用于记录由模块号码961表示的模块的内容的每一扇区的LBA和PBA的记录。同样地,参考数字2413表示包括用于记录由模块号码961表示的模块的内容的每一扇区的LBA和PBA的另一记录。
图25是示出作为根据本发明第二实施例的屏幕的控制台的显示单元上呈现的典型屏幕的视图。在图25中,参考数字2500表示控制台的典型显示屏幕,而参考数字2501表示中间信息的被选择行。参考数字2502表示包括具有问题的LBA的行。
第一实施例通过由主机执行WORM控制来探测保存在磁盘驱动器中所采用的存储介质中的伪造数据。另一方面,第二实施例通过由磁盘驱动器自身执行WORM控制来探测保存在磁盘驱动器中所采用的存储介质中的伪造数据。
在第二实施例中,主机进行正常的模块存取,诸如通过SCSI的存取,其中SCSI为这种存取的代表性接口,以通过指定LBA(逻辑模块地址)将数据写入磁盘驱动器中所采用的存储介质或从磁盘驱动器中所采用的存储介质中读出数据。在写操作中,通过动态地修改使LBA与PBA相关联的关系以便于防止新数据保存在现有数据的PBA上,通过将为新数据指定的LBA与和现有数据的PBA不同的PBA(物理模块地址)相联系,即使指定用于新数据的LBA与已经存在的数据的LBA相同,磁盘驱动器也可以防止新数据写到已经存在于存储介质中的数据之上。在读操作中,从存储介质中读出在通过最近的关系与读操作中指定的LBA相关联的PBA处保存的期望数据。
在磁盘驱动器通过模块接口执行读和写操作中,仅写入数据的主机知道在磁盘驱动器中所采用的存储介质中保存的数据的数据结构。因此,为了确定在磁盘驱动器中所采用的存储介质中保存的数据是否已经被伪造,需要通过动态地改变使LBA与PBA相关联的关系并保存所有写操作的历史来通过执行WORM控制存储数据。另外还需要通过执行分析程序来分析写操作历史,该分析程序理解使LBA与PBA关联的关系和所保存的数据的结构。
通常,从保密的观点看,不期望提供允许从除了服务处理器之外的主机进行存取磁盘驱动器中的管理信息的路径。从保密的观点看,因此期望在磁盘驱动器或服务处理器中所采用的控制器中执行分析程序。然而,在诸如其中HDD作为孤立单元执行WORM控制的情况的情况下,没有充足地用于执行分析程序所需的处理器资源。在这种情况下,需要提供可以用于进行存取诸如磁盘驱动器的管理信息的数据的路径并在连接于磁盘驱动器的主机中执行分析程序。
在该实施例中,在磁盘驱动器1710中所采用的控制器1711中执行分析程序,该磁盘驱动器1710通过执行WORM控制将数据存储在其存储介质上,如图17中所示。磁盘驱动器1710包括控制器1711和存储介质1712。当主机1701通过模块接口向磁盘驱动器1710进行存取1703时,向控制器1711发出写数据命令,通过执行WORM控制,控制器1711将数据写入存储介质1712中。另一方面,管理控制台1702通过管理接口向磁盘驱动器1710中所采用的控制器1711进行存取1704,以设定分析程序的参数,发出执行探测伪造的操作的命令并输出探测结果。
下述说明阐述了根据该实施例的探测文件系统中的伪造的方法。然而,只要保存数据以形成数据结构,则该方法还可以应用于诸如数据库的任何数据。
通过参考图11至14,下述说明阐述了探测文件系统中的伪造需要的追踪写操作历史的方法。在通过执行WORM控制,按照将数据块写入磁盘驱动器中所采用的存储介质中的顺序,通过追踪写操作历史来探测伪造的处理中,将已经分析过的数据的PBA(物理模块地址)以及分析结果保存以便于允许开始作为直接在先的分析的继续的新分析。此外,如果以这种方式延缓和恢复分析,则仅需要在新近记录在磁盘驱动器中所采用的存储介质中的内容上进行分析以便于取得减小分析时间的效果。
为了如上所述恢复分析,在步骤1110,检验磁盘驱动器1710的管理区,以确定在先分析的结果是否已经存储于其中。如果在先分析的结果已经存储在管理区中,则PAD流程进入步骤1111。另一方面,如果在先分析的结果没有保存在管理区中,则PAD流程进入步骤1113。在步骤1111,提取在先进行的分析的结果。然后,在下一步骤1112,提取需要用于开始作为直接在先的分析的继续的分析的分析恢复信息。随后,执行检索操作以将磁头定位到直接在先分析的继续的PBA。分析恢复信息至少包括分析程序的设定数据和在其处完成直接在先的分析的PBA的值。
在先分析的结果没有保存在管理区中的事实表明还没有执行一次分析程序。因此,在这种情况下,在步骤1113、1114和1115设定分析程序。需要对每一数据格式,即,对保持在磁盘驱动器1710中的每一文件系统设定分析程序。对保存于磁盘驱动器1710中的每一文件系统提供分析程序的处理花费大量的工时。为了解决该问题,将分析程序划分成两个部分,即,(1)用于定义文件系统的数据结构的定义部分和(2)基于每一定义的数据结构的定义的搜索部分。这样,对于每一文件系统准备定义部分,但仅需要一个通用于所有文件系统的搜索部分。在步骤1113,根据经由管理控制台1702输入的命令,从作为用作分析目标的容量的包含于磁盘驱动器1710中的容量中,控制器1711加载文件系统的数据结构。然后,在下一步骤1114,分析程序输入在步骤1113加载的数据结构。最后,在下一步骤1115,执行检索操作以将磁头定位在用作分析目标的容量的起点。
在步骤1120,在作为已经向其写入数据的模块的包含于磁盘驱动器中所采用的存储介质中的分析目标模块的PBA的范围内执行循环。在该循环中,基于在模块上执行的写操作为目录操作、文件操作或模块操作来执行分析。这是因为通过文件系统在模块上执行的写操作可以被分成下述三类(1)主要创建或删除文件或者目录的目录操作;
(2)更新文件的中间信息的文件操作;和(3)在模块上执行的作为除目录和文件操作之外的写操作的模块操作。
通过在步骤1113加载的数据结构可以唯一地确定三类中的一类作为在模块上所执行的写操作属于的类型。在步骤1121,检验在模块上执行的写操作,以确定写操作是否为目录操作。如果在模块上执行的写操作为目录操作,则PAD流程进入子程序1130。在步骤1122,检验在模块上执行的写操作,以确定该写操作是否为文件操作。如果在模块上执行的写操作为文件操作,则PAD流程进入子程序1140。在步骤1123,检验在模块上执行的写操作,以确定该写操作是否为模块操作。如果在模块上执行的写操作为模块操作,则PAD流程进入子程序1150。最后,如果在模块上执行的写操作不为目录操作、文件操作和模块操作,则可以将该写操作认作所产生的错误。在这种情况下,PAD流程进入步骤1119,在该步骤1119,记录错误。在步骤1120执行的循环中对于各自完成写操作的所有PBA的分析结束后,PAD流程进入步骤1116,在该步骤1116分配用于保存分析结果的位置。然后PAD流程进入步骤1117,在该步骤1117,保存分析结果。最后,PAD流程进入步骤1118,在该步骤1118中保存恢复分析所需的信息。
详细地说,在步骤1116,在作为专门用于探测数据伪造的区域的在磁盘驱动器1710的存储介质中分配的管理区中,分配用于保存分析结果的位置。然后PAD流程进入步骤1117。在步骤1117,将用于在步骤1120执行的循环中所分析的容量的分析结果保存在管理区中在步骤1116中所分配的位置处。然后,PAD流程进入步骤1118。在步骤1118,将来自对于其已经完成现存分析的PBA的分析恢复所需的信息保存在工作区中在步骤1116中所分配的位置处,以便于允许进行下一分析。作为分析恢复所需的信息的信息至少包括在步骤1114设置在分析程序中的数据和完成在步骤1120执行的循环中进行的分析的PBA的值。
在步骤1130执行的子程序搜索用于作为通过文件系统进行的改变的目录结构中的改变的目录结构。将目录结构中的这种改变作为文件或目录创建、文件或目录删除、或者文件或目录的名字的修改的结果。为了识别在目录结构中所产生的改变,需要检查由主机向用于记录作为目录记录的管理信息的中间信息的模块发布的更新命令。根据WORM控制,根据指定与现有数据的LBA相同的LBA的写命令写入磁盘驱动器中所采用的存储介质中的数据实际上被写在与现有数据的PBA不同的PBA处。在WORM控制中,因此可以将在执行写命令之前处于LBA处的模块内容与在执行写命令之后处于同一LBA处的另一模块的内容相比较。因此,磁盘驱动器能够确定在目录上执行什么操作。如果识别了目录结构中的改变,则以与第一实施例相同的方式,将改变的实体内容记录在用于管理磁盘驱动器的状态改变的目录状态转变库和文件状态转变库的记录中。例如,假设新创建文件A作为属于目录Dir的文件。在这种情况下,将表示已经创建文件A的状态作为记录添加到用于目录Dir的目录状态转变库中。在新创建文件A之后,创建用于文件A的文件状态转变库,并将表示已经创建文件A的状态作为记录编录在用于文件A的文件状态转变库中。
由于诸如改变目录名的操作的操作和由文件系统执行的以最优化模块位置的操作,不需要将目录的中间信息保存在同一LBA处。因此在步骤1130执行的子程序的步骤1201处,首先,进行尝试将用作分析目标的模块与通过指定相同的LBA从主机执行的完成在先写操作的模块相比较。如果在完成在先写操作的模块中记录的数据不是具有同一目录名的目录的在先中间信息,则具有同一目录名的目录的在先中间信息作为用于比较的中间信息被找到。由于磁盘驱动器保存过去执行的写操作历史的事实,可以执行与模块的在先状态的比较。在比较中探测到改变点之后,PAD流程进入步骤1210。在步骤1210,检验在步骤1201提取的结果,以确定是否新创建文件。如果已经新创建文件,则PAD流程进入步骤1211。在步骤1210的处理结束后,PAD流程进入步骤1220。
如果通过应用软件将数据保存在现有的文件中,则文件的在先内容的名字保留在用作具有不同文件名的文件备份的文件中,以便于在一些情况下现有的文件变为新文件。因此,为了探测具有旧名字的文件的伪造,需要追踪更新文件的操作。在步骤1211,为了通过追踪更新文件的操作来实施该方法,在目录状态转变库的文件转变记录中检索过去存在的相同文件名。在完成检索之后,PAD流程进入步骤1212。在步骤1212,检验在步骤1211获得的检索结果,以确定过去是否存在相同的文件名。如果过去存在相同的文件名,则PAD流程进入步骤1213。如果过去不存在相同的文件名,则PAD流程进入步骤1215。例如,假设将数据写入命名为A的现有文件中,且命名为A的文件的在先内容被保存在命名为A.BACKUP的新文件中。在这种情况下,在步骤1213,将表明已经创建命名为A的新文件的状态添加到作为用于命名为A的现有文件的新记录的包含于目录状态转变库中的现有文件转变记录中。另外,将标明现有文件的名字已经从A改为A.BACKUP的记录添加到目录状态转变库中。
如果按照将模块写入磁盘驱动器中所采用的存储介质中的顺序进行模块的分析,则可以仅按照文件被更新的顺序追踪目录状态转变库的文件转变记录。然而,如果期望确定指定的文件是否被伪造,则从最近的状态追踪文件到在先的状态是便利的。因此,在下一步骤1214,将参考备注作为表示从在步骤1213添加的文件转变记录表示的状态到在先状态的文件追踪的相反方向的备注添加到在步骤1213添加的文件转变记录中。在下一步骤1215,在目录状态转变库中创建用于新文件的新文件转变记录,以表明已经创建新文件。
在步骤1220,检验在步骤1201获得的比较结果,以确定文件是否被删除。如果文件已经被删除,则PAD流程进入步骤1221。在步骤1220结束之后,PAD流程进入步骤1230。在步骤1221,将表明文件被删除的状态作为文件转变记录添加到目录状态转变库中。然后,PAD流程进入步骤1214。在下一步骤1214,将作为表明从删除文件的状态到在先状态的文件追踪的相反方向的备注的参考备注添加到文件转变记录。
在步骤1230,检验在步骤1201获得的比较结果,以确定文件名是否被改变。如果文件名被改变,则PAD流程进入步骤1211。在步骤1211,在目录状态转变库的文件转变记录中搜索过去存在的相同文件名。在完成检索之后,PAD流程进入步骤1212。在步骤1212,检验在步骤1211获得的检索结果,以确定过去是否存在相同的文件名。如果过去存在相同的文件名,则PAD流程进入步骤1231。如果过去不存在相同的文件名,则PAD流程进入步骤1215。在步骤1231,将表明文件名从一个改变为另一个的状态作为文件转变记录添加到目录状态转变库。在下一步骤1214,将作为表明从由在步骤1231添加的文件转变记录表示的状态到在先状态的文件追踪的相反方向的备注的参考备注添加到在步骤1231添加的文件转变记录。然后在下一步骤1215,在目录状态转变库中创建用于新文件的新文件转变记录以表明文件名从一个改变为另一个。在步骤1230结束之后,PAD流程进入步骤1202。在步骤1202,执行寻找下一模块的检索操作。
在步骤1140执行的子程序中,检查用作文件的管理信息的中间信息的变化。文件的管理信息包括文件的修正时间和用于保存文件内容的每一模块的LBA。很像在步骤1130执行的子程序,将用于保存中间信息的更新前的模块内容与更新后的模块内容相比较,以确定已经执行何种类型的更新。由于诸如改变目录名的操作的操作和通过文件系统执行的以最优化模块位置的操作,不需要将具有相同文件名的文件的中间信息保存在同一LBA。由于该原因,很像先前描述的步骤1201,在步骤1140执行的子程序的步骤1301,首先,进行尝试将用作分析目标的模块与通过指定相同的LBA从主机执行的完成在先写操作的模块相比较。如果记录于完成在先写操作的模块中的数据不是具有同一文件名的文件的在先中间信息,则具有同一目录名的文件的在先中间信息作为要在比较中使用的中间信息被找到。在步骤1301结束之后,PAD流程进入步骤1310。在步骤1310,检验在步骤1301提取的改变点,以确定文件的中间信息是否被更新。如果文件的中间信息被更新,则PAD流程进入步骤1311。在步骤1311,将表明用作管理信息的中间信息的改变点的状态作为新文件转变记录添加到目录状态转变库中。如上所述,管理信息的实例包括文件的修正时间和用于保存文件内容的每一模块的LBA。
为了检查文件的内容是否被更新,需要追踪中间信息中的LBA值的转变和在同一LBA写数据的操作,并需要对于每一模块确定其内容记录在该模块中的文件。文件的中间信息为每当进行存取文件时更新的信息。因此,为了提高文件系统的性能,通常将中间信息保存在主机的高速缓冲存储器中。结果,的确处于在将文件内容保存到模块中的阶段中保存于高速缓冲存储器的中间信息不被反射到模块中的可能性范围内。因此,如果通过执行WORM操作来按照将内容写入磁盘驱动器中采用的存储介质中的顺序进行模块内容的分析,则在一些情况下,不能够确定哪一文件包括保存在模块中的内容。为了解决该问题,在该实施例中,如稍后所述,如果从中间信息在LBA处不能够识别哪一文件包括保存在模块中的内容,则将LBA编录于在用于仅管理这种LBA的LBA状态转变库中创建的记录中。然后,在保存中间信息的特定阶段,变成能够识别哪个文件包括保存于该LBA处的内容。在该阶段,将用于该LBA的记录移动到为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中。
在步骤1311结束之后,PAD流程进入步骤1312,在步骤1312,在用于仅管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库中检索包含中间信息中的LBA的LBA模块记录。在步骤1312结束之后,PAD流程进入步骤1313,以确定是否在检索中发现中间信息中的LBA。如果在检索中发现中间信息中的LBA,则PAD流程进入步骤1314。在步骤1314,将在检索中发现的LBA记录从用于仅管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库移动到为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中。在步骤1314结束之后,PAD流程进入步骤1315。在步骤1315,在从用于仅管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库移动到为在文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中的LBA模块记录中检索用于保存文件尾标的模块的LBA,在步骤1315结束之后,PAD流程进入步骤1316。在步骤1316,检验检索的结果,以确定用于保存文件尾标的模块的LBA是否包含在LBA模块记录中。如果用于保存文件尾标的模块的LBA包含在LBA模块记录中,则PAD流程进入步骤1317。在步骤1317,将一致性标记作为标明最后模块为文件的末端模块的标记添加到文件的最后模块的管理区中。通过以这种方式对于每一文件识别哪一个模块为文件的末端模块,可以以相同的一致性来使将数据写入磁盘驱动器中的文件中的操作无效。
在步骤1313结束之后,PAD流程进入步骤1214。在步骤1214,添加作为表示从在步骤1311编录的状态到在先状态的相反方向的备注的参考备注。在步骤1310结束之后,PAD流程进入步骤1202。在步骤1202,执行寻找下一模块的检索操作。
在步骤1150执行的子程序中,检验对每一模块进行的改变。在通过文件系统将数据从主机写入磁盘驱动器中所采用的存储介质的文件中的操作中,文件内容保存在其处的LBA的值被记录在文件的中间信息中。因此,通过查阅文件的中间信息,能够确定文件的LBA。每当进行存取文件时,更新文件的中间信息的存取时间属性。然而,如果将由每次进行存取文件而导致的更新反射到磁盘驱动器中,则文件系统的性能会相当程度地恶化。为了解决该问题,在将更新传送到磁盘驱动器之前,将中间信息的更新暂时保存在主机侧上的高速缓冲存储器中。然而,这样一来,如果按照将数据块写入存储介质的顺序分析磁盘驱动器中所采用的存储介质中的模块,则在一些情况下,不能确定哪一文件包括保存于用作分析目标的模块中的内容。为了解决该问题,在该实施例中,当主机通过指定LBA来将数据写入用作分析目标的模块并且能够识别哪一文件包括保存在LBA处的内容时,将表明数据写入模块的状态添加到在为了用于文件的文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中。否则,独立于文件状态转变库,创建用于仅管理各自用于保存未识别的文件的内容的模块的LBA的新LBA状态转变库,并将表示将数据写入模块中的状态添加到新的LBA状态转变库中。
在步骤1150执行的子程序的步骤1401,在为了用于文件的文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库中检索用作分析目标的模块的LBA。在步骤1401结束之后,PAD流程进入步骤1410。在步骤1410,检验在步骤1401执行的检索结果,以确定用作分析目标的模块的LBA是否已经编录在LBA状态转变库中。如果已经在LBA状态转变库中编录该LBA,则PAD流程进入步骤1411。另一方面,如果没有在LBA状态转变库中编录该LBA,则PAD流程进入步骤1420。
在步骤1411,将作为分析目标的模块的PBA(物理模块地址)添加到为了用于文件的文件状态转变库的文件转变记录中指定的模块提供的LBA状态转变库的LBA模块记录中。然后,PAD流程进入步骤1412。在步骤1412,添加表明从在步骤1411添加的状态到在先状态的相反方向的参考备注。然后,PAD流程进入步骤1413。在步骤1413,将与LBA状态转变库相关的文件的文件识别符添加到用作分析目标的模块的管理区,以便于使在步骤1401执行的检索的结果可以重新利用。这是因为所添加的文件识别符表示其内容记录于作为用作分析目标的模块的在步骤1401执行的检索中发现的模块中的文件。在步骤1413结束之后,PAD流程进入步骤1414。在步骤1414,检验用作分析目标的模块,以确定该模块是否为用于记录文件内容末端的最后模块。如果确定用作分析的模块为用于记录文件内容末端的最后模块,则PAD流程进入步骤1415。在步骤1415,将一致性标记添加到用作分析目标的模块的管理区。该一致性标记为表明用作分析目标的模块是用于记录文件内容末端的最后模块的标记。通过以这种方式对每一文件识别哪一个模块用作用于记录文件内容末端的最后模块,能够使将数据写入磁盘驱动器中的存储介质的文件中的操作无效,以便于维持一致性。
在步骤1420,检验用于仅管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库,以确定用作分析目标的模块的LBA是否已经编录在LBA状态转变库中。如果用作分析目标的模块的LBA没有编录在用于仅管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库中,即,如果LBA为新的LBA,则PAD流程进入步骤1421。另一方面,如果用作分析目标的模块的LBA编录在用于仅管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库中,则PAD流程进入步骤1422。在步骤1421,在用于仅管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库中创建用于在由主机执行的将数据写入到用作分析目标的模块中的操作中指定的LBA的值的新的LBA模块记录。新的模块记录用作表示数据已经新近记录在用作分析目标的模块中的记录。在步骤1422,将信息添加到用于仅管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库的现有LBA模块记录的历史中。该信息表示其中用作分析目标的模块已经被更新的状态。然后,在下一步骤1423,将表示相反方向的参考备注添加到用于仅管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库的现有LBA模块记录中。相反方向为从在步骤1422添加的状态到在先状态的方向。如上所述,通过收集更新保存在没有编录于作为用于仅管理各自用于保存未识别的文件的内容的模块的LBA的LBA状态转变库的LBA模块记录的中间信息中的LBA的数据的操作历史,即使对于在将数据记录于中间信息之前保存文件内容的情况和通过旁路文件系统来进行非法存取的情况,也能够追踪将数据写入模块的操作。
在步骤1410结束之后,PAD流程进入步骤1202。在步骤1202,执行寻找下一模块的检索操作。
通过参考图15和16,下述说明阐述了探测指定文件伪造的方法。根据早先参考图11至14所述的追踪写操作历史的方法,通过将在数据上执行的写操作划分成目录操作和文件操作来分析在磁盘驱动器中所采用的存储介质中的数据。在两个级别,即,目录操作级别和文件操作级别探测文件伪造。在探测目录操作级别的伪造的处理中,检验文件的更新。另一方面,在探测文件操作级别的伪造的处理中,检验用于记录文件内容的数据模块的更新。根据早先参考图11至14所述的追踪写操作历史的方法,已经收集确定是否存在伪造所需的所有数据。在由图15的PAD图表示的处理中,经由图16中示出的作为控制台屏幕的屏幕来指定作为用作伪造探测处理的目标的文件的文件,然后,从分析历史追踪处理的结果中读出探测伪造的实体内容并将其输出到控制台的屏幕。
在伪造探测方法的步骤1501,当用户向控制台的路径名输入部分1601输入伪造探测处理的目标的路径名,然后操作分析结果显示区的命令按钮1602时,指定的路径名被输入。当结束步骤1501时,PAD流程进入步骤1510。
在步骤1510,通过方法1100的分析结果执行循环,以按照从文件的最近状态的反向顺序追踪写操作历史。该循环是有效的,因为,如果文件被伪造,则可以通过在从文件的最近状态返回到其在先状态的相反方向上检验改变点来探测伪造。循环包括其中的步骤1511。在步骤1511,检验要处理的写操作历史,以确定历史是否与在步骤1501指定的路径名一致。如果历史与路径名一致,则PAD流程进入步骤1512。在步骤1512,从已经被在步骤1130执行的子程序分析的目录操作历史中提取在指定文件上执行的操作的实体内容。所提取的操作的实体内容通常可以为文件创建、文件删除或文件名修改。在步骤1512结束之后,PAD流程进入步骤1513。在步骤1513,将所提取的操作的实体内容输出到控制台。在步骤1510执行的循环结束之后,PAD流程进入在步骤1520执行的循环。
在步骤1520执行的循环中,对于在步骤1510执行的循环中所提取的每一操作的实体内容,读出用于记录文件内容的模块的写操作历史。通过以这种方式追踪用于记录文件内容的模块的写操作历史,展示出即使文件已经被这样的命令伪造也能探测到磁盘驱动器中文件伪造的效果,所述命令由主机直接对模块器件向磁盘驱动器发出而不经过文件系统。只要在步骤1510执行的循环中提取的操作的实体内容保持要被处理,则执行步骤1520的循环的步骤1521、1527和1528。
在步骤1521,对于各自用于记录由文件转变记录指定的文件的内容的模块执行循环。在步骤1520执行的循环涉及下述在步骤1521执行的循环。在步骤1520执行的循环中,如果在保存新文件的操作中在改变现有文件的文件名之后应用软件将新文件作为现有文件保存,则在从现有文件到新文件的方向中执行文件追踪操作。另一方面,在步骤1521执行的循环中,对各自用于记录新文件或现有文件的内容的独立模块追踪更新。通过在以这种方式查阅记录在目录状态转变库中的目录操作历史之后,查阅记录在文件状态转变库的文件操作历史,展现出即使一个文件被另一个替换也能够追踪文件的被更新的内容的效果。步骤1521的循环包括步骤1522的循环。
在步骤1522,在模块上在从最近的状态到在先状态的相反方向中执行循环,在该模块中主机通过指定相同的LBA来写数据。该循环包括步骤1523、1524、1525和1526。在步骤1523,从存储介质中读出用作分析目标的模块的内容。然后PAD流程进入步骤1524。在步骤1524,从存储介质中读出先前保存在处于与用作分析目标的模块相同的LBA处的模块中的内容。然后,PAD流程进入步骤1525。然后,在步骤1525,提取在当前模块与先前经历写操作的模块之间的内容差异。然后,PAD流程进入步骤1526。在步骤1526,将所提取的两个模块之间的内容差异输出到控制台。
在步骤1521执行的循环结束之后,PAD流程进入步骤1527。即使现有的文件被删除、被新文件替换,根据写历史追踪方法1100,能够追踪现有文件和新文件以确定两个文件的哪一个模块用于记录文件内容。因此,在步骤1527,通过利用这一功能提取被替换文件与替换文件之间的文件级差异。在步骤1527结束之后,PAD流程进入步骤1528。在步骤1528,将在步骤1527提取的文件差异输出到控制台。
为了向控制台屏幕显示多个上述所提取的差异,除用于示出差异的显示区之外,该屏幕还包括用于指定一个要在显示区中示出的差异的区域。中间信息差异显示区1603显示在步骤1513输出到控制台的结果。目录操作显示区1610用于选择目录操作差异。目录操作显示区1610包括三个列,即,用于示出各目录操作的实体内容的类型显示列1611、用于示出各目录操作的外部时间的外部时间显示列1612和用于示出各目录操作的内部时间的内部时间显示列1613。详细地说,类型显示列1611示出作为由在步骤1130执行的子程序识别的实体内容的各目录操作的实体内容。外部时间显示列1612示出各目录操作的时间。通过主机将该时间传送到磁盘驱动器并将其记录在中间信息中。内部时间显示列1613示出在记录由磁盘驱动器管理的中间信息的模块上执行写操作所花费的时间。当用户选择在类型显示列1611中示出的一个操作实体内容作为所选择的行1614,则在中间信息差异显示区1603上显示在所选择的操作实体内容与直接在先的操作实体内容之间的中间信息差异。显示区1605显示作为根据所选择的行1614的差异的在操作前的中间信息与操作后的中间信息之间的文件级别的差异。
当用户选择在类型显示列1611中示出的一个操作实体内容作为所选择的行1614时,显示区1620显示各自用于记录文件内容的模块,即,包括文件的模块。更为具体地,对于各模块,显示区1620显示由主机在写操作中指定的LBA(逻辑模块地址)和PBA,在该PBA处,将写操作的数据实际保存在磁盘驱动器中所采用的存储介质中。用于记录文件内容的各模块的LBA在显示列1621上示出。显示列1621在与各自用于记录文件内容的模块一样多的行的其中之一上示出各LBA。主机可以通过指定相同的LBA来执行多个写操作。在这种情况下,其中指定相同LBA的写操作的数据块实际保存在磁盘驱动器中所采用的存储介质内的模块的PBA显示在显示列1622上。显示列1622为示出用于记录文件内容的每一模块的PBA的LBA时间瞬态显示列。LBA时间瞬态显示列1622包括各自用于示出PBA的子列。子列越接近右端侧,在该子列上示出的指定PBA的写操作越近。能够确定任意模块的数据是否被伪造。也就是说,如逻辑框1623所表示的,可以选择LBA行上的逻辑框作为文件模块,检验其数据以确定该数据是否被伪造。在选择一个操作实体内容的阶段中,选择最近向其写入数据的模块。当选择逻辑框1623时,所选择的逻辑框1623所表示的模块与直接之前所选择的模块之间的差异显示于模块差异显示区1604上。通过操作模块选择清除按钮1606,可以将所选择的逻辑框1623设定回直接之前所选择的模块。然后,如果探测到数据伪造,则所选择的逻辑框1623能够指定被伪造的模块恢复到的模块,然后,可以通过操作用于进行数据无效请求的命令按钮1607,将被伪造的模块恢复到指定的模块状态。当操作进行数据无效请求的命令按钮1607时,从控制台向磁盘驱动器供给数据无效命令。在接收到数据无效命令后,通过执行WORM控制来将数据写入存储介质的磁盘驱动器,在从这样的模块之中的最高PBA,每一个所述模块在步骤1713具有加入其中的一致性标记,到每一个都完成写操作的模块之中的最高PBA的范围内,在PBA低于选择的逻辑框1623表示的PBA处,使数据无效。
如上所述,可以通过在伪造数据之前查阅磁盘驱动器的状态来识别文件系统中已建立的一致性的状态。因此展现出这样的效果,即在需要时仅通过使很少的数据无效,磁盘驱动器就可以恢复到数据伪造之前的状态,并可以保持文件系统的一致性。
接着,通过参考图24和25,来阐述控制台显示器的一个具体实例。图24是示出为在文件状态转变库中指定的模块提供的LBA状态转变库的数据结构。除在第二实施例中作为数据编录每一个PBA之外,第二实施例的目录状态转变和文件状态转变库的数据结构与第一实施例的相同,因此不重复它们的阐述。
更为具体地,图24中示出的数据结构与图22中示出的数据结构的不同之处在于在图24中示出的LBA状态转变库的情况下,编录与LBA相关的PBA,来代替保存在与LBA相关的标记区中的值。在第二实施例中,磁盘驱动器执行WORM控制。因此,当将数据写在3078的LBA处时,实际将数据保存在分别在记录2412和2413中示出的8194和18964的不同的PBA处。
图25是示出控制台显示器的具体实例的视图。内部时间显示列1613显示对每个操作实体内容的由磁盘驱动器内部管理的内部时间。外部时间显示列1612显示用于各操作实体内容的外部时间。外部时间为文件系统将数据写入文件的印时戳。在行2501中,内部时间为被更新的内部时间,而外部时间不是被更新的时间,这意味着的确在数据被伪造的可能性范围内。如果选择行2501,用于中间信息的差异显示区1603显示在行2501与直接在行2501之前的行之间的中间信息差异,而显示区1620显示用于记录文件内容的每一模块的LBA。
作为中间信息的差异,中间信息差异显示区1603显示具有未更新的印时戳的信息和用于记录文件内容的模块的更新信息。
由于LBA的PBA从记录2412中的8194改变为记录2413中的18964,用于模块的LBA显示单元1620中的3078的LBA的行显示两个PBA,即,8194的PBA和18964的PBA。如果一个PBA被指定为所选择的逻辑框1623,则在模块差异显示区1604和文件差异显示区1605中显示当前所选择的PBA与直接在先的PBA之间的差异。图25中示出的显示器屏幕示出行2502中的3078的LBA的8194的PBA与18964的PBA之间的差异。
在本发明的实施例中,仅文件创建、文件删除和文件名修改被认作目录操作,仅关于用于记录文件内容的模块的信息添加到中间信息的操作被认作文件操作。然而,这些操作可以容易地扩展以包括改变多种属性的操作,诸如存取文件所花费的时间。
在该实施例的说明中,通过以文件系统作为实例来阐述由本发明提供的方法。然而,除文件系统之外,该方法可以容易地应用于任何其它用于在磁盘驱动器的存储介质中以一种像数据库一样的数据结构保存数据的记录技术。
此外,该实施例假设在服务处理器或磁盘驱动器中所采用的控制器中执行分析程序。不必说,该实施例不受该假设的限制。例如,只要能够对磁盘驱动器中诸如写操作历史的管理信息进行存取,连接于磁盘驱动器的主机也可以容易地执行分析程序。除此之外,该实施例还假设磁盘驱动器作为具有大尺寸的磁盘阵列实现。然而,该实施例还可以应用于作为单个HDD实现的磁盘驱动器。
基于WORM控制的写方法不限于按照物理模块地址的顺序写数据的控制技术。基于WORM控制的写方法还可以作为允许被指定的期望的写数据顺序的写数据技术被采用,如在分析中所采用的技术的情况一样。
权利要求
1.一种用于控制磁盘驱动器的方法,该磁盘驱动器包括存储介质和用于与主机交换命令和数据并控制向存储介质写数据和从存储介质中读数据的控制单元,所述控制单元执行下述步骤对将数据写入所述存储介质的各单元,提供用于将数据写入所述存储介质的每一单元的标记区,作为所述主机仅能够查阅但仅所述控制单元能够向其写信息的区域;基于所述磁盘驱动器的内部信息产生信息;和将所述产生的信息写入所述标记区。
2.根据权利要求1的用于控制磁盘驱动器的方法,其中所述控制单元还执行下述步骤接收来自所述主机的写命令;和产生变成所述写命令的伴随执行的信息,作为基于所述磁盘驱动器的内部信息产生信息的所述步骤。
3.根据权利要求1的用于控制磁盘驱动器的方法,其中所述控制单元还执行下述步骤从所述主机接收读命令,和产生变成所述读命令的伴随执行的信息,作为基于所述磁盘驱动器的内部信息产生信息的所述步骤。
4.根据权利要求2的用于控制磁盘驱动器的方法,其中,作为变成所述写命令的伴随执行的所述信息,使用所述磁盘驱动器的总操作时间。
5.根据权利要求2的用于控制磁盘驱动器的方法,其中,作为变成所述写命令的伴随执行的所述信息,使用向所述磁盘驱动器发出的写命令的总数量。
6.根据权利要求2的用于控制磁盘驱动器的方法,其中,作为变成所述写命令的伴随执行的所述信息,使用向所述存储介质的各写单元发出的写命令的总数量。
7.一种用于磁盘驱动器的伪造探测方法,该磁盘驱动器包括存储介质和控制单元,该控制单元用于与主机交换命令和数据,并根据从所述主机接收的所述命令,控制将新数据写入所述磁盘驱动器中所采用的存储介质中的自由区的操作,以便于不将所述新数据写在所述存储介质上已经存在的数据上,以及根据从所述主机接收的所述命令,控制从所述存储介质中读出数据的操作,所述控制单元执行下述步骤设定所述磁盘驱动器中所述存储介质上记录的数据的逻辑结构;基于所述逻辑结构,在所述磁盘驱动器中所述存储介质上记录的数据之中,识别保存中间信息的数据,该中间信息用作所述数据的所述设定逻辑结构的信息;从所述中间信息的初始状态到所述中间信息的最近状态分析所述识别的中间信息的时间瞬态;和在所述被分析的所述中间信息的所述时间瞬态中的每个阶段,从所述内容的初始状态到所述内容的最近状态分析所述中间信息指定的数据内容的时间瞬态。
8.根据权利要求7的伪造探测方法,其中所述控制单元还执行下述步骤基于分析所述中间信息的所述时间瞬态的结果,在从所述最近的状态到所述初始状态的相反方向上产生所述中间信息的时间瞬态;和基于分析所述内容的所述时间瞬态的结果,在从所述最近状态到所述初始状态的相反方向上产生所述内容的时间瞬态。
9.根据权利要求7的伪造探测方法,其中所述控制单元还执行下述步骤分配用于保存分析结果的区域;在所述分配区中保存分析处理的当前状态;在开始伪造探测处理时检查用于保存在其中的数据的所述分配区,并在所述状态已经保存在所述区域中的情况下读出分析处理的所述状态;和在已经从所述区域中读出所述在前分析处理的最后状态的情况下,从所述在前分析处理的所述最后状态开始分析处理,作为直接在前的分析处理的继续,或者,如果从所述区域中没有读出所述分析处理的状态,则全部从头开始分析处理。
10.根据权利要求7的伪造探测方法,其中所述控制单元还执行下述步骤对于所述存储介质中包括的记录区,该记录区作为这样的区域,其中,所述磁盘驱动器记录由中间信息指定的数据内容,将内容的识别符记录在标记区中,该标记区在所述存储介质上对每一个最小管理单元提供。
11.根据权利要求7的伪造探测方法,其中所述控制单元还执行下述步骤从分析所述中间信息的时间瞬态的结果和分析所述内容的时间瞬态的结果,识别所述磁盘驱动器中包括的所述存储介质上的地址作为这样的地址,在该地址处,通过保持所述中间信息与所述内容之间的一致性来记录中间信息和内容;和在相应于所述存储介质上的所述指定地址的所述标记区中记录检验点,该检验点示出通过保持一致性来记录所述中间信息和所述内容。
12.根据权利要求7的伪造探测方法,其中所述控制单元还执行下述步骤接收经由控制台输入的识别符作为内容识别符;在分析所述中间信息的时间瞬态的结果中检索所述识别符,并确定所述内容是否被替换;在所述内容被替换的情况下,在所述控制台上输出表示内容替换的事件的信息;在分析所述内容的时间瞬态的结果中检索所述识别符,并确定所述内容是否被更新;和在所述内容被重写的情况下,在所述控制台上输出表示内容重写的事件的信息。
13.根据权利要求12的伪造探测方法,其中所述控制单元还执行下述步骤接收输入到所述控制台的两个任意事件作为在这样的信息之中选择的事件,所述信息中的每一个被输出到所述控制台以指示内容替换事件,或者,所述信息中的每一个被输出到所述控制台以指示内容重写事件;计算由一个所述接收事件请求的中间信息与由另一接收事件请求的中间信息之间的差异,并将所述差异输出到所述控制台;和计算由一个所述接收事件请求的内容与由另一接收事件请求的内容之间的差异,并将所述差异输出到所述控制台。
14.根据权利要求12的伪造探测方法,其中所述控制单元还执行下述步骤;接收输入到所述控制台的任意事件作为在这样的信息之中选择的事件,所述信息中的每一个被输出到所述控制台以指示内容替换事件,或者,所述信息中的每一个被输出到所述控制台以指示内容重写事件;和使由所述接收事件请求的内容无效。
15.根据权利要求14的伪造探测方法,其中所述控制单元还执行使中间信息和内容无效的步骤,所述中间信息和内容与所述接收事件请求的内容识别符具有同样的识别符,并且在产生所述接收事件的时间点之时和之后被记录在所述磁盘驱动器中使用的所述存储介质上。
16.根据权利要求14的伪造探测方法,其中所述控制单元还执行使所有的中间信息和所有的内容无效的步骤,所述中间信息和内容在产生所述接收事件的时间点之时和之后被记录在所述磁盘驱动器中使用的所述存储介质上。
17.根据权利要求7的伪造探测方法,其中所述磁盘驱动器包括标记区产生装置,用于对将数据写入所述存储介质的每个单元提供标记区,作为所述主机仅能查阅但所述控制单元可以向其写入信息的区域;内部状态信息产生装置,用于基于所述磁盘驱动器的内部信息产生内部状态信息以伴随写命令的执行;和内部状态信息写入装置,用于将所述内部状态信息产生装置产生的所述内部状态信息写入所述标记区产生装置提供的所述标记区;和其中,所述控制单元还执行下述步骤检验分析中间信息的时间瞬态的结果与所述标记区中存储的信息之间的一致性;和检验分析内容的时间瞬态的结果与所述标记区中存储的信息之间的一致性。
18.根据权利要求1的用于控制磁盘驱动器的方法,其中所述控制单元还执行周期性扫描所述存储介质的扫描步骤,并使用在所述扫描步骤读出的信息作为基于所述磁盘驱动器的内部信息的信息。
19.一种用于磁盘驱动器的伪造探测方法,该磁盘驱动器包括存储介质和控制单元,该控制单元用于与主机交换命令数据,并根据从一个所述主机接收的所述命令,控制将新数据写入所述磁盘驱动器中所采用的存储介质中的自由区的操作,以便于不将所述新数据写在所述存储介质上已经存在的数据上,以及根据从所述主机接收的一个所述命令,控制从所述存储介质中读出数据的操作,将数据写在所述存储介质上的所述主机中的第一个、没有将数据写在所述存储介质上的所述主机中的第二个或所述磁盘驱动器的管理控制台执行下述步骤设定写到所述磁盘驱动器中使用的所述存储介质上的数据的逻辑结构;基于所述逻辑结构,识别保存中间信息的数据,用作在所述磁盘驱动器中使用的所述存储介质上写入的数据之中选择的所述数据的所述设定逻辑结构的信息;从所述中间信息的初始状态到所述中间信息的最近状态分析所述识别的中间信息的时间瞬态;和在所述被分析的所述中间信息的时间瞬态中的每个阶段,从所述内容的初始状态到所述内容的最近状态分析所述中间信息指定的数据内容的时间瞬态。
20.根据权利要求19的伪造探测方法,其中将数据写在所述存储介质上的所述第一个主机、没有将数据写在所述存储介质上的所述第二个主机或所述磁盘驱动器的所述管理控制台还执行下述步骤基于分析所述中间信息的所述时间瞬态的结果,在从所述最近的状态到所述初始状态的相反方向上产生所述中间信息的时间瞬态;和基于分析所述内容的所述时间瞬态的结果,在从所述最近状态到所述初始状态的相反方向上产生所述内容的时间瞬态。
21.根据权利要求19的伪造探测方法,其中将数据写在所述存储介质上的所述第一个主机、没有将数据写在所述存储介质上的所述第二个主机或所述磁盘驱动器的所述管理控制台还执行下述步骤分配用于保存分析结果的区域;在所述分配区中保存分析处理的当前状态;在开始伪造探测处理时检查用于保存在其中的数据的所述分配区,并在所述状态已经保存在所述区中的情况下读出分析处理的所述状态;和在已经从所述区中读出所述在前分析处理的最后状态的情况下,从所述在前分析处理的最后状态开始分析处理,作为直接在前的分析处理的继续,或者,如果从所述区域中没有读出所述分析处理的状态,则全部从头开始分析处理。
22.根据权利要求19的伪造探测方法,其中将数据写在所述存储介质上的所述第一个主机、没有将数据写在所述存储介质上的所述第二个主机或所述磁盘驱动器的所述管理控制台还执行将内容的识别符写入标记区的步骤,该标记区对所述存储介质的每一个最小管理单元提供,并作为这样的区域,其中,所述磁盘驱动器记录中间信息指定的数据内容。
23.根据权利要求19的伪造探测方法,其中将数据写在所述存储介质上的所述第一个主机、没有将数据写在所述存储介质上的所述第二个主机或所述磁盘驱动器的所述管理控制台还执行下述步骤从分析所述中间信息的时间瞬态的结果和分析所述内容的时间瞬态的结果,识别所述磁盘驱动器中包括的所述存储介质上的地址,在该地址处,通过保持所述中间信息与所述内容之间的一致性来记录中间信息和内容;和在相应于所述存储介质上的所述指定地址的所述标记区中写入检验点,该检验点示出通过保持一致性来写入所述中间信息和所述内容。
24.根据权利要求19的伪造探测方法,其中将数据写在所述存储介质上的所述第一个主机、没有将数据写在所述存储介质上的所述第二个主机或所述磁盘驱动器的所述管理控制台还执行下述步骤接收经由控制台输入的识别符作为内容识别符;在分析所述中间信息的时间瞬态的结果中检索所述识别符,并确定所述内容是否被替换;在所述内容被替换的情况下,在所述控制台上输出表示内容替换的事件的信息;在分析所述内容的时间瞬态的结果中检索所述识别符,并确定所述内容是否被重写;和在所述内容被重写的情况下,在所述控制台上输出表示内容重写的事件的信息。
25.根据权利要求24的伪造探测方法,其中将数据写在所述存储介质上的所述第一个主机、没有将数据写在所述存储介质上的所述第二个主机或所述磁盘驱动器的所述管理控制台还执行下述步骤接收输入到所述控制台的两个任意事件作为在这样的信息之中选择的事件,所述信息中的每一个被输出到所述控制台以指示内容替换事件,或者,所述信息中的每一个被输出到所述控制台以指示内容重写事件;计算由一个所述接收事件请求的中间信息与由另一接收事件请求的中间信息之间的差异,并将所述差异输出到所述控制台;和计算由一个所述接收事件请求的内容与由另一接收事件请求的内容之间的差异,并将所述差异输出到所述控制台。
26.根据权利要求24的伪造探测方法,其中将数据写在所述存储介质上的所述第一个主机、没有将数据写在所述存储介质上的所述第二个主机或所述磁盘驱动器的所述管理控制台还执行下述步骤接收输入到所述控制台的任意事件作为在这样的信息之中选择的事件,所述信息中的每一个被输出到所述控制台以指示内容替换事件,或者,所述信息中的每一个被输出到所述控制台以指示内容重写事件;和使由所述接收事件请求的内容无效。
27.根据权利要求26的伪造探测方法,其中将数据写在所述存储介质上的所述第一个主机、没有将数据写在所述存储介质上的所述第二个主机或所述磁盘驱动器的所述管理控制台还执行使中间信息和内容无效的步骤,所述中间信息和内容与所述接收事件请求的内容识别符具有同样的识别符,并且在产生所述接收事件的时间点之时和之后被记录在所述磁盘驱动器中使用的所述存储介质上。
28.根据权利要求26的伪造探测方法,其中将数据写在所述存储介质上的所述第一个主机、没有将数据写在所述存储介质上的所述第二个主机或所述磁盘驱动器的所述管理控制台还执行使所有的中间信息和所有的内容无效的步骤,所述中间信息和内容在产生所述接收事件的时间点之时和之后被记录在所述磁盘驱动器中使用的所述存储介质上。
29.一种磁盘驱动器,包括存储介质和控制单元,该控制单元用于与主机交换命令数据,并根据从所述主机接收的所述命令,控制将数据写入存储介质操作,以及根据从所述主机接收的所述命令,控制从所述存储介质中读出数据的操作,所述磁盘驱动器包括标记区产生装置,用于对将数据写入所述存储介质的操作的每个单元提供标记区,在该标记区处,所述主机仅能查阅但所仅述磁盘驱动器能向其写入信息;内部状态信息产生装置,用于基于所述磁盘驱动器的内部状态产生内部状态信息;和内部状态信息写入装置,用于将所述内部状态信息产生装置产生的内部状态信息写入所述标记区产生装置提供的所述标记区。
30.根据权利29的磁盘驱动器,其中所述内部状态信息产生装置使用改变为伴随写命令执行的状态作为所述内部状态。
31.根据权利要求29的磁盘驱动器,其中所述内部状态信息产生装置使用变成读命令的伴随执行的状态作为所述内部状态。
32.根据权利要求30的磁盘驱动器,其中所述磁盘驱动器的总操作时间用作变成写命令的伴随执行的所述状态。
33.根据权利要求30的磁盘驱动器,其中向所述磁盘驱动器发布的写命令数量用作变成写命令的伴随执行的所述状态。
34.根据权利要求30的磁盘驱动器,其中向所述存储介质的各写单元发出的写命令的数量用作变成写命令的伴随执行的所述状态。
35.根据权利要求29的磁盘驱动器,还包括用于周期性扫描所述存储介质的扫描装置,其中所述内部状态信息产生装置使用由所述扫描装置改变的状态作为所述内部状态。
全文摘要
提供一种伪造探测方法,该方法能够识别伪造的实体内容,不仅可应用于指定的文件系统,还可应用于具有逻辑结构的任意的写数据应用程序,可用在独立的环境中,且甚至对于非常大的数据尺寸也能够防止其性能恶化。将存储在磁盘驱动器中所采用的存储介质中的数据划分成表达数据结构的中间信息和内容。在步骤130,分析中间信息的时间瞬态,而在步骤140和150,分析内容的时间瞬态。通过这样在两个阶段分析数据,可以探测文件的替换和文件内容的替换,同时在文件系统的情况下,可以识别伪造的实体内容。此外,通过为磁盘驱动器中所采用的存储介质中的每一个模块提供标记区,该标记区可以被磁盘驱动器更新,但仅被主机查阅,即使伪造是由于利用非法存取路径执行的写操作所导致的,也可以探测到伪造。
文档编号G06F12/14GK1722108SQ20051007497
公开日2006年1月18日 申请日期2005年6月6日 优先权日2004年6月4日
发明者上村哲也 申请人:日立环球储存科技荷兰有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1