正在加载...
 
从SQA角度提出对程序设计及代码编写的基本要求  

作者:黄鑫(glacier②unnoo.com)

对于多人开发团队来说,程序设计和代码编写人员的编程基础、经验往往参差不齐。所以在一个软件项目进入设计和编码阶段之前,除了制订明确的编码规范,还有必要对代码质量的其他部分提出明确要求,同时这些要求应作为程序设计和代码编写的审核内容列入检查表。
尽量避免可预见的错误或缺陷是提出这些要求的目的之一,另一个目的则是尽快提高开发新手的基本素质。

一、变量/常量/函数命名、注释格式、缩进格式要求:
凡从事软件开发的公司大都制订了自己的编码规范,即使没有,也很容易通过google轻松找到较完整的通用要求。略。

二、代码组织结构要求:
1、对于标准C程序,要求将功能相近的函数集中保存,如文件处理函数组保存在file_operate.c文件中,注册表处理函数组保存在reg_operate.c文件中,且在设计阶段注意保持各文件的相对独立性,避免发生这样的结果:测试单个模块时交叉引用其他文件,最终几乎包含了整个project。简言之,就是要求设计者对于标准C代码也尽量采用面向对象的思想进行设计。
示例:略。
2、对于面向对象程序,只要按照OO的思想进行设计,本身就是将相关的数据结构及方法进行封装,即只要符合OOD要求即可。
示例:略。

三、公用函数设计要求:
多处使用的功能代码必须以函数形式设计和编写,除特殊情况外,不允许两个以上不同的程序段完成相同功能。该项要求的目的是:
1)便于白盒测试中针对公用代码进行完全测试;
2)避免函数内部代码改动时进行多处重复的检查和修改。
示例:略。

四、对于参与白盒测试的函数设计要求:
对于参与白盒测试的所有函数,参数和返回值必须是测试环境下容易构造的数据结构。在 WINDOWS驱动程序或ISAPI等特殊程序中,存在许多应用层难以构造的数据结构,如"DEVICE_OBJECT"、 "UNICODE_STRING"、"HTTP_FILTER_CONTEXT"等,如果需要在应用层对包含这些数据结构的函数进行测试,将大大增加测试代码开发的工作量,且测试效果并不一定理想。对于这类函数,要求将参数转换为普通数据结构并通过独立的函数进行处理,再将结果按需要进行转换并返回。对于代码量过大的单个函数,除特殊情况(如算法复杂且连贯的压缩、加密函数等)外,均应进一步拆分为功能相对单一且独立的多个函数,便于白盒测试中进行条件、路径覆盖以及检测各分支的中间结果。
示例:略。

五、对于面向对象程序的设计要求:
1、预留测试及调试接口:设计对象及编码时应注意为后续的测试或调试工作做好铺垫,预留一些私有变量及成员函数记录该对象的各种中间状态和尽可能详细的错误信息。
示例:略。
2、保证对象的封装性:不允许为了满足白盒测试中对中间结果检测的要求,而将本应为private或protect类型的变量、函数定义为public 类型。对于测试中需要访问的私有成员,可以专门编写public类型的测试函数,将私有变量结果返回,并通过预定义对这类测试函数进行限制,使其只在测试代码中参与编译。
示例:略。

标签:开发设计 | 浏览数(729) | 评论数(0) | 2007-01-03
如何检测和定位程序中的资源泄漏问题  

作者:黄鑫(glacier②unnoo.com)

对于大中型软件来说,资源泄漏问题往往很难全面检测和定位。常见的资源泄漏分为两类:一是打开的文件或资源句柄没有及时关闭,二是动态申请的内存没有及时释放。这两种资源泄漏问题在情况严重时都将导致系统性能严重下降甚至死机。这里总结一下发现和解决这类问题的方法:

一、借助外部工具
使用“Numega Bounds Checker”或“Rational Purify”等工具,设置源代码路径后加载Debug版本的二进制程序运行,会直接报告出可能存在资源泄漏和非法内存访问的代码位置。这两款检测软件都兼容目前常用的开发工具,如VB、VC、BCB、DELPHI等,操作也很方便,但我的实际使用结果却不太理想。误报现象不算严重,不至于影响自己的分析判断,但在漏报情况下就还得靠其他手段来检测了。

二、使用编译器自带的检测功能
1、BCB编译器中可以通过菜单“Project->Options-> CodeGuard”切换到CodeGuard页,选中“CodeGuard Validation”中需要检测的项目即可。程序运行结束后BCB会对句柄、内存等资源泄漏情况作出详细报告。
2、VC中检测内存泄漏不像 BCB那么方便,需要通过重载malloc()、free()等函数并增加cl_mem_leak_diagnostics等预定义实现。虽然实现起来比较麻烦,但如果能做得完善一些并形成自己的检测库,在后续项目的使用中就方便多了。细节可以参考http://www.tunesmithy.co.uk/memleakcheck/index.htm中的描述和完整示例。

三、其他
1、编写代码时养成良好的编程习惯,在调用malloc()或new的同时写好free()或delete,然后在中间插入代码。
2、尽量不要在函数内的分支中调用return,以确保在统一的出口前释放临时申请的资源。
3、SQA部门将针对资源泄漏问题的检查列入代码检查表和白盒测试中,尽量不将该问题扩散到单元测试以外。
4、除了上面提到的专用工具和编译器以外,还可以通过一些“土办法”对资源泄漏问题进行检测。比如win2k中的任务管理器提供了对单个进程“内存使用”、“高峰内存使用”、“句柄数”等状态的实时监测功能,测试人员通过一段时间的监视,可以很容易发现较明显的资源泄漏问题。

标签:开发设计 | 浏览数(702) | 评论数(0) | 2007-01-03
设计文档和代码的检查内容  

作者:黄鑫(glacier②unnoo.com)
软件质量管理的目标是通过日常工作在开发过程之中内建质量而非修补质量,所以在提出了针对设计文档和代码质量的明确要求后,就应该在文档、代码的定期审核过程中检查提出的要求是否被正确实施,而不是在发现错误无法定位或产品难于维护时才开始纠正。设计文档和代码的审核通常由SQA部门或项目负责人完成,但对于较简单的模块代码,也可以采用开发人员之间交叉评审的放式,以减轻项目负责人的负担。
下面列出的检查内容只是我根据自己可预见的问题整理所得,还需要在实际开发工作中进一步完善。

设计文档检查内容
文档主结构——文档结构是否符合国标或内部要求,文档内容是否完整。
设计合理性——接口部分设计以及参数、返回值是否合理。
容错设计——整体结构或模块结构中是否有足够的容错设计,不会因为某项非致命错误而导致不可恢复的数据损失。
错误处理——是否使用统一的错误处理函数和统一的错误代码,不会在错误发生时无法定位错误模块和获得错误代码。
文档可读性——文档内容描述是否足够清晰,复杂描述部分是否配有相应的图表。
上下层一致性——文档描述与对应的上层设计或原型代码是否一致。
术语一致性——各文档中使用术语是否与《术语字典》中术语对应。
文字缺陷——描述中是否存在歧义或错别字。

示例:略

程序代码检查内容
代码编写风格——是否遵守《代码编写规范》。
代码可读性——代码结构是否清晰、易于理解,变量或函数命名是否存在歧义。
注释风格——主要函数的输入、输出项及返回值是否有详细说明,函数内主要分支是否有相应说明。
与设计文档一致性——代码实现与设计文档是否一致。
代码健壮性——对各个函数或系统API调用失败后是否有足够的错误处理,不会引起非法操作;对传入参数及指针变量的检查是否充分,对临时申请的系统资源是否及时回收。

示例:略

标签:开发设计 | 浏览数(784) | 评论数(0) | 2007-01-03
通用弱点评价体系(CVSS)简介  

整理:吴鲁加<wulujia@unnoo.com>

一、综述
弱点(vulnerabilities)是网络安全中的一个重要因素,在多种安全产品(如漏洞扫描、入侵检测、防病毒、补丁管理等)中涉及到对弱点及其可能造成的影响的评价。但目前业界并没有通用统一的评价体系标准。通用弱点评价体系(CVSS)是由NIAC开发、FIRST维护的一个开放并且能够被产品厂商免费采用的标准。利用该标准,可以对弱点进行评分,进而帮助我们判断修复不同弱点的优先等级。

二、通用弱点评价体系(CVSS)

2.1 CVSS的要素
通过下图可以看出通用弱点评价体系(CVSS)包含的要素及它们之间的相互关系:


通用弱点评价体系(CVSS)的所有要素及其取值范围如下表所示:

有些需要说明的要素如下:

1、如果漏洞既可远程利用,又可以本地利用,取值应该为远程利用的分值。
2、攻击复杂度的分值由原先的低/高变为低/中/高,参见:http://www.first.org/cvss/draft/accepted/060103.html
3、需要认证的例子,如需要预先有Email、FTP帐号等。

有些有用的参考资源如下:

CVSS评分计算器:http://nvd.nist.gov/cvss.cfm?calculator
CVSS的最近更新:http://www.first.org/cvss/draft/
一些文档及胶片:http://www.first.org/cvss/links.html

2.2 CVSS评分方法

2.2.1 基本评价
基本评价指的是该漏洞本身固有的一些特点及这些特点可能造成的影响的评价分值,该分值取值如下:

AccessVector     = case AccessVector of
                        local:            0.7
                        remote:           1.0
                       
AccessComplexity = case AccessComplexity of
                        high:             0.6
                        medium:           0.8
                        low:              1.0
                           
Authentication   = case Authentication of
                        required:         0.6
                        not-required:     1.0
                           
ConfImpact       = case ConfidentialityImpact of
                        none:             0
                        partial:          0.7
                        complete:         1.0
                           
ConfImpactBias   = case ImpactBias of
                        normal:           0.333
                        confidentiality:  0.5
                        integrity:        0.25
                        availability:     0.25
                           
IntegImpact      = case IntegrityImpact of
                        none:             0
                        partial:          0.7
                        complete:         1.0
                           
IntegImpactBias  = case ImpactBias of
                        normal:           0.333
                        confidentiality:  0.25
                        integrity:        0.5
                        availability:     0.25
                           
AvailImpact      = case AvailabilityImpact of
                        none:             0
                        partial:          0.7
                        complete:         1.0
                           
AvailImpactBias  = case ImpactBias of
                        normal:           0.333
                        confidentiality:  0.25
                        integrity:        0.25
                        availability:     0.5

BaseScore = round_to_1_decimal(10 * AccessVector
                                  * AccessComplexity
                                  * Authentication
                                  * ((ConfImpact * ConfImpactBias)
                                  + (IntegImpact * IntegImpactBias)
                                  + (AvailImpact * AvailImpactBias)))

2.2.2 生命周期评价
因为漏洞往往同时间是有紧密关联的,因此这里也列举出三个与时间紧密关联的要素如下:

Exploitability   = case Exploitability of
                        unproven:             0.85
                        proof-of-concept:     0.9
                        functional:           0.95
                        high:                 1.00
                      
RemediationLevel = case RemediationLevel of
                        official-fix:         0.87
                        temporary-fix:        0.90
                        workaround:           0.95
                        unavailable:          1.00
                      
ReportConfidence = case ReportConfidence of
                        unconfirmed:          0.90
                        uncorroborated:       0.95    
                        confirmed:            1.00

TemporalScore = round_to_1_decimal(BaseScore * Exploitability
                                             * RemediationLevel
                                             * ReportConfidence)

2.2.3 环境评价
每个漏洞会造成的影响大小都与用户自身的实际环境密不可分,因此可选项中也包括了环境评价,这可以由用户自评。

CollateralDamagePotential = case CollateralDamagePotential of
                                 none:            0
                                 low:             0.1
                                 medium:          0.3 
                                 high:            0.5    
                               
TargetDistribution        = case TargetDistribution of
                                 none:            0
                                 low:             0.25
                                 medium:          0.75
                                 high:            1.00

EnvironmentalScore = round_to_1_decimal((TemporalScore + ((10 - TemporalScore)
                                         * CollateralDamagePotential))
                                         * TargetDistribution)

三、示例

3.1 一个漏洞的评分实例

这个例子是Apache Web Server分块编码远程溢出漏洞,该漏洞的描述为(参考http://www.nsfocus.net/vulndb/2975):

Apache在处理以分块(chunked)方式传输数据的HTTP请求时存在设计漏洞,远程攻击者可能利用此漏洞在某些Apache服务器上以Web服务器进程的权限执行任意指令或进行拒绝服务攻击。

分块编码(chunked encoding)传输方式是HTTP 1.1协议中定义的Web用户向服务器提交数据的一种方法,当服务器收到chunked编码方式的数据时会分配一个缓冲区存放之,如果提交的数据大小未知,客户端会以一个协商好的分块大小向服务器提交数据。

Apache服务器缺省也提供了对分块编码(chunked encoding)支持。Apache使用了一个有符号变量储存分块长度,同时分配了一个固定大小的堆栈缓冲区来储存分块数据。出于安全考虑,在将分块数据拷贝到缓冲区之前,Apache会对分块长度进行检查,如果分块长度大于缓冲区长度,Apache将最多只拷贝缓冲区长度的数据,否则,则根据分块长度进行数据拷贝。然而在进行上述检查时,没有将分块长度转换为无符号型进行比较,因此,如果攻击者将分块长度设置成一个负值,就会绕过上述安全检查, Apache会将一个超长(至少>0x80000000字节)的分块数据拷贝到缓冲区中,这会造成一个缓冲区溢出。

对于1.3到1.3.24(含1.3.24)版本的Apache,现在已经证实在Win32系统下, 远程攻击者可能利用这一漏洞执行任意代码。在UNIX系统下,也已经证实至少在OpenBSD系统下可以利用这一漏洞执行代码。据报告称下列系统也可以成功的利用:
*      Sun Solaris 6-8 (sparc/x86)
*      FreeBSD 4.3-4.5 (x86)
*      OpenBSD 2.6-3.1 (x86)
*      Linux (GNU) 2.4 (x86)

对于Apache 2.0到2.0.36(含2.0.36),尽管存在同样的问题代码,但它会检测错误出现的条件并使子进程退出。

根据不同因素,包括受影响系统支持的线程模式的影响,本漏洞可导致各种操作系统下运行的Apache Web服务器拒绝服务。

在CVSS评价中,它的示例如下:

        ----------------------------------------------------
        BASE METRIC                 EVALUATION         SCORE
        ----------------------------------------------------
        Access Vector               [Remote]          (1.00)
        Access Complexity           [Low]             (1.00)
        Authentication              [Not-Required]    (1.00)
        Confidentiality Impact      [Partial]         (0.70)
        Integrity Impact            [Partial]         (0.70)
        Availability Impact         [Complete]        (1.00)
        Impact Bias                 [Availability]    (0.25)
        ----------------------------------------------------
        BASE FORMULA                              BASE SCORE
        ----------------------------------------------------
        round(10 * 1.0 * 1.0 * 1.0 * (0.7 * 0.25) +
             (0.7 * 0.25) + (1.0 * 0.5)) ==           (8.50)
        ----------------------------------------------------
 
        ----------------------------------------------------
        TEMPORAL METRIC             EVALUATION         SCORE
        ----------------------------------------------------
        Exploitability              [Functional]      (0.95)
        Remediation Level           [Official-Fix]    (0.90)
        Report Confidence           [Confirmed]       (1.00)
        ----------------------------------------------------
        TEMPORAL FORMULA                      TEMPORAL SCORE
        ----------------------------------------------------
        round(8.50 * 0.95 * 0.90 * 1.00) ==           (7.00)
        ----------------------------------------------------

        ----------------------------------------------------
        ENVIRONMENTAL METRIC        EVALUATION         SCORE
        ----------------------------------------------------
        Collateral Damage Potential [None - High]  {0 - 0.5}
        Target Distribution         [None - High]  {0 - 1.0}
        ----------------------------------------------------
        ENVIRONMENTAL FORMULA            ENVIRONMENTAL SCORE
        ----------------------------------------------------
        round((7.0 + ((10 - 7.0) * {0 - 0.5})) *
             {0 - 1.00}) ==                    (0.00 - 8.50)
        ----------------------------------------------------

3.2 漏洞评分表图例

这里是一个CVSS表格的例子:

该例可以从以下地址下载:

样例:cvss-sample-1.1draft1.xls
空白表格:cvss-blank-scoring-1.1draft1.xls


四、应用实例


4.1 Nessus中的应用

在比较流行的免费漏洞扫描工具Nessus中,已经部份地将CVSS中的基本评价(Base Score)用于进行漏洞评价,取代了原先的“Risk factor”取值,举例而言:

ASP-DEv XM Forum IMG Tag Script Injection Vulnerability的Risk factor现在描述如下:

Medium / CVSS Base Score : 5
(AV:R/AC:L/Au:NR/C:P/A:N/I:P/B:N)";

这段话的含义为:该漏洞的影响为中,CVSS基本评价分值为5分,其中分项取值表格

        ----------------------------------------------------
        BASE METRIC                 EVALUATION         SCORE
        ----------------------------------------------------
        Access Vector               [Remote]          (1.00)
        Access Complexity           [Low]             (1.00)
        Authentication              [Not-Required]    (1.00)
        Confidentiality Impact      [Partial]         (0.70)
        Integrity Impact            [Partial]         (0.70)
        Availability Impact         [None]            (0.00)
        Impact Bias                 [Normal]          (0.333)
        ----------------------------------------------------
        BASE FORMULA                              BASE SCORE
        ----------------------------------------------------
        round(10 * 1.0 * 1.0 * 1.0 * (0.7 * 0.333) +
        (0.7 * 0.333) + (1.0 * 0.333)) ==           (4.66)

4.2 推荐使用甚至CVSS的补丁策略

一个可选的CVSS补丁策略可以是将补丁的优先权分为Patch Level 1-4,每个等级有不同的应对方式:

CVSS分值  优先级别  补丁SLA
  0           P4        可以自由决定
 1-3          P3        3-6个月
 4-6          P2        最多4周
 7-10         P1        最多2周


五、参照:微软威胁评价体系介绍


微软的漏洞威胁评价体系中,包括以下几方面的要素:

Microsoft Product Vulnerability:Yes/No/Patch Not Available
Vectors of Attack
New Vector of Attack:Yes/No
Distribution Potential:High/Medium/Low
Unique Data Destruction:Yes/No
Significant Service Disruption:Yes/No

微软在补丁发布时会有漏洞危急程度的描述,如:CRITICAL、MODERATE等等,都是基于以上要素进行分析的结果,例如CRTTICAL级别漏洞,各要素的取值范畴为:


当然,作为商业评价体系,微软的漏洞评价方法公开部份有限,因此仅能作为参考。

六、参考资料

1. A Complete Guide to the Common Vulnerability Scoring System(CVSS)
2. PSS Security Team - Security Alert Severity Matrix
3. The Common Vulnerability Scoring System
4. CVSS FAQ
5. CERT Vulnerability Scoring
6. Example of CVSS base patching policy

标签:安全研究 | 浏览数(781) | 评论数(0) | 2007-01-03
即时通讯工具安全指南  

即时通讯已经成为当前互联网上除了web、email之外使用者最多的应用之一。
在使用即时通讯产品的过程中,个人用户、企业需要注意哪些安全问题?即时通讯产品厂商应该考虑哪些安全因素?面对即时通讯的新挑战,电信运营商又该有哪些应对措施?

即时通讯工具安全指南》用思维导图的形式为您理顺思路。

标签:安全研究 | 浏览数(820) | 评论数(0) | 2007-01-03
2006年全国信息网络安全状况与计算机病毒疫情调查分析报告  

今年6月,公安部公共信息网络安全监察局举办了2006年度信息网络安全状况与计算机病毒疫情调查活动,在国家计算机病毒应急处理中心、国家反计算机入侵和防病毒研究中心、新浪网等三家网站开设了在线调查栏目,各省区市公安厅、局公共信息网络安全监察部门组织本地重要信息系统管理和使用单位、互联网服务单位进行了网上调查。调查内容包括我国2005年5月至2006年5月发生网络安全事件、计算机病毒疫情状况和安全管理中存在的问题。
下载《2006年全国信息网络安全状况与计算机病毒疫情调查分析报告

标签:业界新闻 | 浏览数(1236) | 评论数(1) | 2007-01-03
警惕:QQ 0day漏洞攻击  

出处:DSW Avert    时间:2007年01月01日
近日,DSW Lab Avert小组发现一个高度危险的QQ漏洞被披露,名为Exploit.Win32.QQCom.a,如果被恶意利用,可以使得用户在浏览植入恶意代码的 网页时,打开本地端口,远程植入木马到用户系统中。黑客完全利用此漏洞可以远程控制用户电脑,进行文件拷贝、删除等恶意操作。
经过与QQ安全小组联系得知,QQ公司已经于昨日升级,修补该漏洞。DSWLAB也及时升级了超级巡警最新特征库,请广大用户升级到最新库,监测利用该漏洞的木马,强烈建议广大用户及时升级QQ,抵御病毒入侵,预防此漏洞危害系统。
腾讯QQ目前有着2亿的用户数量,使得该漏洞有着极大的攻击范围,有可能被利用来制造僵尸网络。QQ安全中心已经就此漏洞发布了一个补丁检查升级公告:http://security.qq.com/affiche/2006/20061231.shtml


版权所有:数据安全实验室
http://www.dswlab.com
http://www.unnoo.com
Copyright(c) DSW Lab All rights reserved

标签:超级巡警个人版,超级巡警企业版 | 浏览数(955) | 评论数(0) | 2007-01-02
熊猫烧香病毒专题:多少变种,怎么破坏,如何查杀?  

一、熊猫烧香有几个变种?
    到目前为止,从大体上分,目前主要有四大变种,变种A我们已经分析,见本版,变种B的就是大家常说的spoclsv.exe进程,它藏的全路径是:% SystemRoot%\Drivers\spoclsv.exe,其它部分与变种A基本一致。变种C主要的改动是对抗杀毒软件,尤其是超级巡警的专杀, 该专杀旧版本被360安全卫士内置到工具列表中。变种C通过查找窗口标题有超级巡警字样,即关闭该窗口,即使在桌面新建一个名为超级巡警的文本文件,用记 事本打开也会被关闭。因此许多网友下载了旧版的专杀,抱怨打开就被关闭,同时熊猫烧香病毒还会关闭其它一些常见的进程管理的,比如常用的Windows任 务管理器。对付这种变种的方法就是使用一个不被关闭的进程管理的,推荐使用X-PS,下载地址和使用说明:http://www.unnoo.com/html/research/2006/0718/29.html,关闭掉名为spoclsv.exe的进程。然后在使用巡警的专杀,当然也可以下载最新的超级巡警使用里面的专杀来查杀。
    变种D是最近才出现的一个变种,该变种感染文件后图标不在是熊猫模样,当感染该变种会在临时目录发现100个图标文件。还有其它一些变种,基本都是为了躲避查杀进行修改和下载不同的后门的版本。

二、对系统的破坏:
    熊猫烧香在感染的系统上,会关闭杀毒软件进程,删除杀毒软件的注册表项目,禁用杀毒软件的服务,修改资源管理器不显示隐藏文件等。 
    还会调用如下命令来删除共享:
    cmd.exe /c net share C$ /del /y
    cmd.exe /c net share D$ /del /y
    cmd.exe /c net share admin$ /del /y
    ....  
    旧变种会全面感染系统文件,新变种会感染除系统目录外的文件,即尽量不感染微软操作系统自身的文件。
    新旧变种都会删除.gho,一般人会在安装完成系统后,使用Norton Ghost进行备份,熊猫会恶意删除这个备份文件。
    其中一个变种还会在感染目录生成desktop_.ini。
    最大的破坏是,熊猫烧香本身就是一种下载者,会在指定的网站下载后门、木马、各种盗号程序,甚至DDoS程序。
   
三、为什么无法清除干净,如何彻底查杀:
    有人使用了超级巡警和巡警之熊猫专杀后,将一个机子杀干净了,但不久又发现感染了,这是因为,熊猫烧香在感染了一个系统后,开启一个单独的线程进行C类网 络扫描感染,访问同网段的139/445端口,进行IPC$密码猜解和查找共享,并感染共享中的文件。这样只要网络内有一个机子还有存活的熊猫烧香病毒, 就依然存在再次感染全网的可能。
    许多朋友网络内都是有文件共享服务器,电影服务器,而许多网友的网络内的人都为了方便系统登录口令都是空口令,或者是123这样的简单口令。
    局域网中有用户IE没有打补丁,浏览挂了熊猫烧香病毒的网站,并不知情。
    查杀的办法是:
    1、断开网络,使用超级巡警之熊猫烧香专杀,每个机子全面杀毒。
    2、修改口令,取消本地共享目录。
    3、查杀完成后使用超级巡警的补丁检查检查系统没有打的补丁,及时打上补丁,尤其是IE补
丁。
    最新版巡警已经内置了最新专杀,请到官方网站http://dswlab.com中推荐的下载地址去下载!

标签:超级巡警个人版,超级巡警企业版 | 浏览数(998) | 评论数(0) | 2007-01-02
反病毒理念、历史、现状与未来  

作者:killer②xfocus.org
超级巡警主页:http://www.dswlab.com
大成天下主页:http://www.unnoo.com
作者和他所在的团队2006年开始组建数据安全实验室,一年来,该团队开发的超级巡警受到广大网管、网民的喜爱。在各大下载站点普遍处于反病毒、反木马软件下载量前五名。2006年底DSWLAB团队开发的熊猫烧香专杀工具,有效地帮助了大量受该肆虐病毒影响的用户,2007年,超级巡警将会更好地发力,敬请期待

一、玩的就是概念

    AV是我习惯的简写,全名应该叫Anti-Virus,从这个英语字面含义和一些对反病毒历史的追溯,我发现最初人们想表现的并不是杀毒,今天我们总是习惯叫杀毒软件,其实是不准确的。Anti的本意是抵制、防护,它应该叫抗病毒,或者防病毒。不论抗或者防都说明对病毒的未雨绸缪。杀毒则是一种后发补救的策略,虽说亡羊补牢犹未晚,但毕竟还是有一些损失的。
    叫杀毒软件则是典型的中国特色,比如健康,中国人一般平时是不太注意健康的,等到有病了才要去看病。中国的反病毒公司出于宣传效果需要,就必然要搞的威风凛凛,给AV技术带来一层杀气腾腾的神秘色彩。
    说起概念,我很欣赏一些国外的宣传,这里不防就给NAV做个广告:

   
   
    看到没,上面这图就是Symentec给自己做的宣传页,诺顿在发布会上用瑜伽诠释了它的文化自由分享,安心沟通,瑜伽的充分舒展身体,意味着自由,意味着无限延伸。
    如今的网络你可以安心沟通么?显然不能!网络上广告满天飞,流氓插件群魔乱舞,垃圾邮件像一只只马蜂乱蛰,一些黑客整天无聊的扫来扫去,D站 D得不亦乐乎。这个时候,你认为你需要的,显然不是浪费时间和精力的去检查,去杀灭,你希望的也许是一个安心的防护套件,让我们可以自由、安心的冲浪。
    反病毒理念的不同造就各种不同的反病毒产品,不过上天有好生之德,本文作者亦本着万物以自己的喜好为准,所以并不特别推荐你用哪种AV,也请勿问我。

二、混沌初开
    自从盘古开天辟地的以来,出来了两个神仙级的人物,一个被人称为Doctor Soloman,一个叫Eugene Kaspersky,另外还有两个叫Peter Norton和Mcafee。这几位神仙有感人间妖风阵阵^-^,病毒横行。决定制定一套法典,用来解救世人,于是他们的研究,促成了当年反病毒理论的基础。这些基础理论,经过后来的一些教授、专家们推广开来,就形成了今天的反病毒体系。
    在那个时代,还有无数的高人,自己苦心孤诣的修炼,但终因天资所限、时不与我,或者剑走偏锋,步步险招,无法修炼成正果。
    远古的反病毒软件主要有:
    Anti-virus collection by V.Bontchev
    F-Prot
    File Shiled  by McAfee
    NOD of Slovak AV
    TbScan
    AVP by E.Kaspersky
    Dr.Web by Igor Daniloff
    Norton AV
    Solomon's Toolkit
    LEVEL3 virus dedicated AV by SAC
    IBM Anti-Virus 
    除了这些,还有更多的针对某个病毒的专杀,这里就不一一列出了。值得注意的是:我在这里尽量列出今天你还能熟知的名字,然而尽管我努力,历史终究是无情的。你在上面看到的,一部分和大多数我没列出来的已经成为遥远的过去,只有像我这样喜欢怀旧的人,偶尔会想起那些曾经的同病毒决战的侠士。  
    最初病毒不多,能掌握写病毒会被人视为天才,好像现在还是这样?大家的抗病毒办法都是针对一个个病毒写专杀,后来因为病毒多了,大家开始编写类似批处理的脚本,这样用户在选择1 2 3 菜单来选择查杀哪个病毒,这本质还是一对一的检测方式。
    还有多少朋友记得DOS中那个编制菜单用来选择的命令? 
    早期的AV几乎都是这样过来的,但是随后神仙们发现这样做不行,病毒数量膨胀的太快,文件格式具备通用处理过程,每次的专杀都有一些重复工作的地方。所以神仙们的反病毒理论逐渐浮出水面,这个时候,开始形成了通用反病毒技术。整个的针对大量的病毒的处理,也开始了模块化分工,扫描/清除,文件修复等。
    于是AV开始转型,具备扫描模块、清除模块、特征库,AV外围技术也开始如火如荼的发展起来,主动监控、完整性检查、免疫技术等等。
    下面这一段就是最初一个完整的用来清除引导病毒的AV源代码:
=====================================================================
.model tiny
.radix 16
.code
        org 100
start:
        mov     dx,offset message
        mov     ah,09
        int     21
        xor     ax,ax
        int     16
        or      al,20
        cmp     al,'y'
        je      Goforit
        mov     dx,offset notdone
        mov     ah,09
        int     21
        mov     ax,4c01
        int     21
GoForIt:
        xor     ax,ax
        mov     ds,ax
        mov     ax,word ptr ds:[413]
        mov     cs:ConvMEM,ax       
        mov     di,offset Int13
        mov     si,13*4
        movsw
        movsw
        push    cs
        pop     ds
        cmp     ConvMem,280
        je      RegConvMem
        mov     ah,09
        mov     dx,offset StrangeConv
        int     21
RegCOnvMem:
        mov     ax,0201
        mov     bx,offset OrgSector
        mov     cx,1
        mov     dx,80
        int     13
        call    TunnelInterrupts
        mov     ax,0201
        mov     bx,offset NewSec
        mov     cx,1
        mov     dx,80
        int     13
        push    cs cs
        pop     es ds
        mov     di,offset NewSec
        mov     si,offset OrgSector
        mov     cx,200
        repz    cmpsb
        jcxz    NoDifference
        mov     ax,0301
        mov     bx,offset OrgSector
        mov     cx,1
        mov     dx,80
        int     13
        mov     ah,3c
        mov     dx,offset sample
        xor     cx,cx
        int     21
        xchg    bx,ax
        mov     ah,40
        mov     dx,offset NewSec
        mov     cx,200
        int     21
        mov     ah,3e
        int     21
LOCKEMIN:
        cli
        mov     ah,09
        mov     dx,offset fixed
        int     21
        xor     ax,ax
        int     16
        jmp     LOCKEMIN
Nodifference:
        mov     ah,09
        mov     dx,offset noprob
        int     21
        mov     ax,4c00
        int     21
TunnelInterrupts:
        push    ax bx cx dx es ds si di
        xor     ax,ax
        mov     ds,ax
        push    word ptr ds:[04]
        push    word ptr ds:[06]
        cli
        mov     word ptr ds:[04],offset Int1
        mov     word ptr ds:[06],cs
        pushf
        pushf
        pop     ax
        or      ax,100
        push    ax
        popf
        xor     ax,ax
        call    dword ptr cs:[int13]   ;tunnel interrupt 13
        pushf
        pop     ax
        and     ax,0feff
        push    ax
        popf
   ExitTunnel:
        les     bx,dword ptr cs:[Root13]
        cli
        xor     ax,ax
        mov     ds,ax
        pop     word ptr ds:[06]
        pop     word ptr ds:[04]
        mov     word ptr ds:[13*4],bx
        mov     word ptr ds:[13*4+2],es
        sti
        pop     di si ds es dx cx bx ax
        ret
Int1:
        cmp     cs:found,1
        je      exitint1
        push    bp
        mov     bp,sp
        push    ax bx cx dx es ds si di
        mov     ax,ss:[bp+2]
        mov     cx,4
        shr     ax,cl
        add     ax,ss:[bp+4]
        cmp     ax,0c000
        jb      DoneInt1
        mov     cs:found,1
        les     bx,SS:[bp+2]
        mov     word ptr cs:[Root13],bx
        mov     word ptr cs:[Root13+2],es
  DoneInt1:
        pop     di si ds es dx cx bx ax bp
exitint1:
        iret
StrangeConv db   0a,0dh,'Conventional Memory Suspicious.',0a,0dh,24
Fixed   db      0a,0dh,'Virus Cleaned - sample saved in VIRUS.MBR .',0a,0dh 
        db             'Now COLD REBOOT IMMEDIATELY!!!!!!!!!!!!!!!!',0a,0dh,24
NoProb  db      0a,0dh,'No Stealthing Detected.  No Action Taken.',0a,0dh,24
notdone db      0a,0dh,'No Action Taken.',0a,0dh,24
Message:
db      0a,0dh
db      '--==[Stormbringer''s Instant Stealth MBR Virus Remover.]==--',0a,0dh
db      '          USE AT YOUR OWN RISK!  RTFM Before Using!         ',0a,0dh
db      0a,0dh,'Continue (y/N)',24
sample          db      'Virus.MBR',0
found           db      0
NewSec          db      200 dup(?)
OrgSector       db      200 dup(?)
Int13           dd      ?
Root13          dd      ?
ConvMem         dw      ?
end start
======================================================================   
    此时的反病毒程序,基本都是采用汇编编写。我们通过更多早期的反病毒程序源代码可以看出这个事实:抗病毒软件基本都使用纯汇编语言编写。而一个建立在理论体系化上面的完整杀毒程序代码量都不会少,这使得进入反病毒这个领域的门栏高得让人望而生畏。后来,使用纯C和C++编写的反病毒程序和相关模块多了起来,其中一部分还是基于跨平台的考虑。而在整个AV历史中,只有极少的爱好者使用Pascal语言来编写反病毒程序。
    这是某AV查壳部分源代码:
======================================================================
unp proc
        call readTitle
        jc noUnp
        cmp varNP,0
        je noUnp
        call scanPack
noUnp:
        ret
        endp
scanPack proc
        push ax bx cx dx bp di es
        mov es,baseSeg
        mov di,regIP
        lea si,sigUnp
noLastSig:
        push si
scanMore:
        call scanChSumB ;1
        jne nextSig
        ......
======================================================================   
    还有一些扫描和清除模块的源代码,限于篇幅,就不一一贴出了。   
    远古的病毒库也较为简单,别惊讶,下面这几行,就是当年的大名鼎鼎的F-PORT的病毒特征库中的一小段:
======================================================================
Valert      y0Jny5dM+OMjnm-2mljm7hpsUBQrVAqq5M6i05mO0m+4gBqYUlBNBU
Taiwan      OVn5aMFMA6-KNMqpYCbw-qCOqWQBEPDX553mpwNRvlehJgNldYp6Bz
Durban      fEJn-jPjD2m5mjIrJb8oKcVZJMgmhkBcjcaOMnjj3YnYjvuDtW
Pretoria    G7kmu5s5rypVosPPtvczLY7fKUc5MjucEPYkkM7F0od24-HW
XA1         g0knPMSjgjKH5mj5PhOA4gK6l7jr8KJWYhOKw3mm8KgCHYMM-W
Kennedy     h0ljSMDMd864oME5TM+YjgeKpLuHbjmjah0fuOTM0ptAfu6LZI
8-tunes     jp1TKjd5htmjnMZcwNwj+THd70MrOFFKM4X55TjjURT5JMBsnv
Virdem      NWk5s5Ij9osXSctXAX82MMnmm674Rtw09rkRDu7e9fTlbO479rNbvdIipT
======================================================================
    后来,时代要求科学合理的病毒库出现,病毒库不单包括病毒名、特征码,还要包括清除方法。于是人们改进了原来病毒库的结构,如下就是后来许多人采用的改进病毒库结构:
======================================================================   
.!.:rc393,[VD/SLAM]
.:0.:16.:66.:00.:0C 4F8E 0D9A.:3E.:0C.:20 BC46 CF5D.:AUTO+.:62.:0.:AUTO
.!.:rc393,[VD/SLAM]
.:0.:16.:E9.:00.:0C 2A7F 96BF.:DD.:0C.:20 48A4 2DBD.:AUTO+.:152.:0.:AUTO
======================================================================   

三、开元盛世
    从1994年起,AV正式成熟起来,此时的AV正慢慢走入了鼎盛时代,这个时候,以AVP为首的反病毒厂商开始大刀阔斧的占领市场,反病毒从最初的谁行谁上,演变为需要靠广告战,价格战来抢夺市场。市场的竞争就难免豪夺巧取,于是在欧洲强胜一时的Dr.Solomon开始走下坡路,最终无奈被 NAI(MCAFEE)收购。
    更多后起之秀们,从前辈那学来的知识,也开始参与了市场激烈的竞争,只是在反病毒技术和体系上,再也没有突破过AVP和Dr.Solomon的厂商。由于Dr.Solomon被MCAFEE收购,所以天下的反病毒引擎分为了两个派系,一个AVP(Kaspersky Antivirus)派系,一个NAI派系(Dr.Solomon派)。 
    而只有Eugene Kaspersky此时正式开创了一个反病毒的神话(见本人AVP神话一文),其它的商家无一不搅在市场的这个利益的角斗场。在地下病毒站,VXER们讨论和剖析的反病毒产品主要有:AVP、TBAV、F-Prot、Dr.Web,说起这个不外乎有这样的意义,我们把目光放得更远,抛却商业的争夺看到的是,在病毒作者心目中反病毒产品的力量。事实上AVP和F-PROT以大量的病毒样本库闻名,地下的VXER经常使用这两款杀毒软件来进行样本交换。
    这里,让我们怀念一下Dr.Solomon,这位反病毒历史上极其重要的人物,他在1989年的反病毒产品图片(来之不易啊):
   

   

    后来的For Windows 3.x Win NT 3.X 的:


 

         
    由于AVP的技术成功,使得大量第三方AV产品使用AVP的引擎来工作,这里面知名的有F-Secure、AVK等。也有许多后来学习利用AVP 技术的产品,比如DR.Web,它是Igor Daniloff所领军打造的产品,这哥们也是一个顶尖逆向工程高手,而且很早以前他还经常在地下站点发表反病毒和逆向的相关文章,从对Drweb的老版本查看,我经常发现AVP的影子,连病毒库的结构,都有几分形似。
    这个时候的反病毒不仅在市场上大获全胜,赚了大把的票子,在用户的需求和市场的竞争下,技术上也成熟起来,具备了:
    1、高速的扫描/特征匹配算法。
    2、合理的病毒库,大量的病毒样本,完善的病毒清除方法。
    3、产品线全面,各种主流系统的兼容DOS/Win9x/Winnt/2000,NOVELL、LINUX/UNIX四处开花。
    4、以监控为主的防护概念普及和应用。
    5、启发扫描、虚拟机、人工智能全面应用。
    直到今天,这些技术依然是整个AV体制的坚石和基础,而今天AV技术的发展却缓慢鲜有创新。

四、赚并堕落着
    没错,反病毒的今天已经开始了堕落,这种堕落体现在关键技术上的不思进取,市场上的尔虞我诈。反病毒商家的自我炒作,彼此炒作已经屡见不鲜。而由于基础反病毒技术的浅显化,使得大量的小手工作坊又一次涌现出来,这些手工作坊的产品不仅没有多少创意。而且它们这些良莠不齐的反病毒/反木马产品,混淆着用户的视听。
    在网络上,各个BBS中,你会发现N多人都在谈论病毒,整天谈论的就是怎么清除一个木马,木马又改注册表哪里啦?木马把文件拷贝到哪儿啦?TXT 文件关联是不是又被修改啦?等等,并觉得这就是技术,乐此不疲。我经常被人家这样问来问去,在某种意义上,我觉得这侮辱了反病毒技术,这个活儿应该叫客服!
    当然这种堕落也是病毒技术的堕落,初接触计算机那种对病毒的神秘感已经彻底消失,今天的病毒是看得见的,今天的病毒作者十有八九的不懂变形、多态,你看那几百K的木马,近1M的后门,形形色色的蠕虫和垃圾邮件们依靠操作系统漏洞、应用程序的BUG和对用户的社交工程欺骗来传播。
    反病毒公司这个年代大喜过望,因为几乎不用对抗那些诡异的病毒,传统的那些多态、变形的DOS/WIN9X病毒已经随着系统的变换成为昨日黄花,那个年代AV做的再烂都已经无关紧要,新的平台给了大家站在同一个起跑线的机会。如今的商业反病毒公司面对木马几乎是居高临下的傲视,这让反病毒的公司的分析员多少有些无聊,是的,整天面对那些重复着、弱智的木马,那些单一的、垃圾的代码,生活变得那么乏味,没有激情,没有可敬的敌人,惺惺相惜的对手。病毒和反病毒从原来的曲高和寡,彻头彻尾的沦落为下里巴人。
    我们以前要面对的是这样一些天才:

    29/A成员,以Benny为首的29/A不少高手,写过许多非常具有创意的病毒、包括一些划时代的病毒,Benny是一个对技术执着的顶尖高手。值得一提的是:他虽然写了很多病毒,但他写的这些病毒仅仅是一种技术研究,事实上国内也有不少病毒高手,在默默研究病毒技术,以更深层次的技术交流为目的。有的高手还研究病毒技术的应用,包括针对爆发蠕虫的遏制。安全届最初找到通过PEB获取kernel.dll地址,从而获得ShellCode 使用API的方法时,人人叫好,而这却是被病毒高手们玩烂的技术。还有一些高手,自己写出来针对自己病毒的清除程序,原因仅仅是反病毒公司编写的清除模块不能检测和正常的清除病毒。您不信么?看看下面这段SMF病毒组织一个作者在自己的病毒清除工具包中的自述:
From author:
~~~~~~~~~~~~
I write this program, because AV programs like AVP or DrWeb can't cure
some of my virii :) Sorry, this version not tested archives and packed
files. They test only COM/EXE files. Make report at dav.rep file.
Detected all HLL-virii from DVL #3 - #4.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   
    CIH作者,不管怎么说,陈赢豪的学习能力是值得敬佩的,因为在他写CIH之前不久,大约是两周,捷克的加密解密高手EliCZ刚刚公开自己的研究成果:通过IDT从Ring3切换到Ring0的方法,这个方法刚刚被披露没几天,就被陈赢豪创造性的应用在的病毒上。
    然而,今天我们对抗的却是这样一些所谓高手
   

    Jeremy Jaynes是个百万富翁,也是个垃圾邮件发送高手,他雇佣人专门进行收费互联网垃圾邮件发送业务。
   

    Jay Echouafni ,CEO,同时也是一个黑客,控制了傀儡网络进行给竞争对手DDOS攻击。
   

    Andrew Schwarmkoff 是俄罗斯一个黑客团体成员,善于自己改造木马/后门利用来发动社会工程学的钓鱼攻击。
    病毒和反病毒仿佛商量过似的,一起开始了赚钱,不同的是,病毒作者低调的赚钱,钻着法律的空子,依靠网络的不可控的现实。而反病毒公司则天经地义,明目张胆。

五、前路在哪里
    今天,似乎没有多少人对反病毒产品的未来进行探索。F-Prot已经不像当年那么风光无限,虽然它的启发扫描的逻辑依然被我所赞叹。卡巴斯基 (Kaspersky)独孤求败的寂寞和不能出世的无奈并不为多少外人所知。然而市场毕竟是市场,用户并不关心你的启发扫描模块的优劣。据我所知,有几个厂商的反病毒引擎,已经近4年几乎没有更新过,这些年惟一更新的就是不断的炒作。有的要求进步的公司则直接建立了研究室,你别以为这是独立探索最新反病毒技术的地方,事实上这是逆向先进反病毒产品,从而用来亦步亦趋的跟着学的研究室。
    每天都是一个变革的开始,给新生的力量带来了机会,Microsoft也正式的介入了这个领域,事实上在遥远的DOS年代Microsoft就染指了一次反病毒市场,那是个时候正好是免疫技术流行的时代,Microsoft错误的以为免疫技术足以应对各种病毒,于是CPAV一度在DOS下流传。然而天山派剑术的轻灵终究无法抵挡昆仑派内力的雄厚,所以Microsoft败得很惨。但Microsoft又是一个善于学习的商家,今天Anti- Spyware 、Windows OneCare 、Windows Defender 卷土重来,一波波态势逼人。
    而传闻中MS Anti-Spyware某次升级后会不小心删除Norton Antivirus,这是不是又预示一场不公平的竞争开始。
    未来在那里,谁又能看的清呢,于是笔者killer只好寻根一下历史,企图借历史一双慧眼去先知一下未来。现在看来,有所惑有所不惑,把酒夜话,一切尽在不言中。

    Creditz:F-Secure,提供部分图片。

标签:安全研究 | 浏览数(929) | 评论数(0) | 2007-01-01
铁卷电子文档安全系统V3.0产品简介  

铁卷电子文档安全系统V3.0是大成天下主推的电子文档、图纸防泄密,电子文档审计及例规性系统。
下载铁卷电子文档安全系统V3.0产品简介

标签:铁卷 | 浏览数(1519) | 评论数(1) | 2006-12-29
铁卷电子文档安全系统FAQ  

一、铁卷基本问题


铁卷的运行原理是什么?

铁卷采用的原理是内核文件实时透明加解密,在操作系统底层对文件进行加解密操作,不影响人员的原有使用习惯。安装铁卷的用户在使用文件时,运行于驱动层的用户终端自动将文件实时加解密;文件的接收者必须经过管理中心端的认证,才能够根据许可权限对文件进行操作。

 

铁卷是否支持多语言版本?

支持。铁卷设计的时候充分考虑了未来对多语种的支持,目前支持简体中文、繁体中文及英文版。如果有客户需求,可以在很短的时间内满足对其它语种的支持。

 

铁卷采用的加密方式安全吗?

铁卷默认采用的是业界最先进的AES 256加密算法,该算法获得过多项国际认证,并且该算法运算速度快、资源消耗低,已经成为包括金融、电信、政府等各行各业公认具备高安全强度的加密算法。同时,铁卷还能够让用户自行选择如RC4RC6等其它加密算法。

 

可以在铁卷系统中直接找到加密的密钥吗?

铁卷系统的私钥已经经过高强度加密,在现有的计算能力下,即使使用高性能服务器也无法破解。

 

用户将文件的扩展名更改(例如将1.doc改为1.abc)后拷贝回家,此时文件是否仍然处于加密状态?

是的。铁卷是在内核中对文件进行全文加解密操作,因此无论扩展名改成什么,文件内容始终是加密的。

 

用户将文档另存为其它格式,铁卷能保护吗?

可以,凡是受保护的文件,另存为其它格式(例如:htmltxtxmljpg等等)时,均会受铁卷控制,以加密形式储存,绝无泄密困扰。

 

铁卷能否防止用户拷贝粘贴?

可以。铁卷的防拷贝设计十分贴心,您只是无法从受信任进程(例如OFFICE)文件将文字或图片等内容往非受信进程(例如notepad)中拷贝,也无法采用各种应用软件特有的拖拽等机制将文字拷出。

但您仍然可以从非受信进程(例如Webtxt文本)将文字或图片拷入受信任进程中,也能够在受信任文件之间相互拷贝,这极大提高了使用的方便性和透明度。

 

铁卷能否防止内存转储?

可以。铁卷通过以下几种技术手段:

* 禁止Windows系统种的多种内存转储指令;

* 内存分段安全化处理;

能够有效防止内存转储,保证安全最大化。

 

铁卷能否防止各种截取屏幕的软件?

可以。铁卷支持超强型截屏防御,从设备驱动底层直接阻断屏幕截获的请求,全球上千种屏幕捕获录像软件均无法捕获正在打开的被保护文件屏幕内容。

 

铁卷能否控制非授权的文件打印?

可以。铁卷可以设置仅允许用户在管理中心注册的打印机上进行打印操作,并且能够控制虚拟打印机输出,有效防止用户将文档打印成OCRFLASH等格式后传播扩散。

 

如果用户修改了程序的名称,例如:将Office中的Winword.exe改名为a.exe,这时运行a.exe创建的Word文档还能加密吗?

可以。铁卷并不仅仅根据文件名称来进行可信进程判断的,而是综合多种特征进行判别,最大程度保证安全性。

 

如果用户在保存文件时设定了自己的后缀名,比如Word文档不保存为.doc,而是保存为.abc时,是否仍然能够加密?

可以。应用铁卷后,受保护的应用程序产生的输出,无论后缀名是什么,都会受到保护。

 

如果用户将电脑做了Ghost镜像后,铁卷是否还能起到保护作用?

可以。铁卷在安装时会根据硬件信息生成唯一验证串后由服务器存储,如果将电脑做了Ghost镜像后在另一台机器恢复,由于硬件信息变化,将无法接入服务器并解密文档。

 

铁卷能否防止用户以插入对象的形式带走文件?

可以。铁卷对包括Office在内的多种应用程序中插入对象的功能进行了深入研究,可以完全控制对插入对象方法的安全控制。

 

铁卷能否防止一些内核工具分别禁用内核钩子后导出明文文件?

可以,铁卷通过对内核钩子运行结果的判断,可以防止内核工具单独禁用铁卷的某些功能。

 

铁卷是否可以将所有的加密文件批量解密?

铁卷可以在系统管理员提供正确的硬件标识、密钥的情况下将加密文档批量解密。但为了保证系统的安全性,批量解密功能组件在一家企业只能由信息主管持有,并且需要授权使用。

 

打开文档时的速度延迟如何?

打开文档时,铁卷将把解密后的数据递交给应用程序,解密的速度延迟跟铁卷所使用的加密算法和您使用的计算机硬件有关。经过我们测试,在使用AES 256算法,Pentium III 1G256M内存的情况下,打开一个3MDOC文档的延迟大约是0.3秒,几乎不会对您的体验产生任何影响。

 

铁卷的心跳监测,那对网络性能影响如何,会产生多大的网络流量?

在产品完全部署后,一个客户端每5秒产生一个字节的心跳信息,那么一个200个客户端的部署环境在一个小时内大约将有(60*60/5)/8/1024*200H17M非并发流量产生。这对于一个10/100MLAN来说,几乎不构成任何压力。

 

铁卷的用户终端(Agent)能否在UNIX系统上使用?

暂时不能。目前铁卷采用的是在内核中对文件进行加解密,虽然理论上可行,但目前暂时没有成规模的需求,因此UNIX终端的开发计划尚未启动。


二、铁卷部署问题


跨地域的公司是否可以通过部署铁卷来同时保障多个分支机构的安全?

可以。铁卷是采用client-server的架构模式,只要配合一定的网络设置,就可以让处于不同地点的分支机构同时使用铁卷。

 

铁卷的服务器是否可以架设在公网上?

可以。

 

铁卷服务器是否允许用户通过VPN拨入后进行验证?

可以。

 

不同公司部署的铁卷管理中心是否可以通用,会不会造成安全问题?

不会产生安全问题。因为铁卷会根据管理中心服务器的机器码经过运算得出一个认证码,不同的管理中心生成的用户终端及其密钥都是不同的。因此不同公司部署的铁卷之间无法相互接入,也无法解开彼此的加密文档。

 

怎样查看用户PC机上铁卷用户终端的版本?

只有铁卷管理员能够通过管理中心查看客户机上安装的铁卷用户终端版本号,详见下图:

 

 

怎样升级客户PC机上的铁卷用户终端?

在终端列表中右键点击一台在线终端,选择升级终端程序菜单,见下图:

 

 

选中由管理中心创建的的新版本终端程序terminal.exe后点击确定即可。升级完毕后客户PC机会弹出重新启动计算机的提示,当完成重启操作后,升级完成。

 

有位员工马上要离职了,我可以现在就禁止他阅读文档吗?

可以。在管理中心选中该员工的主机,右键单击后弹出如下菜单:

 

这时选择拒绝接入,当您看到该员工的电脑图标变为桔色后,则该员工的阅读权限已经被取消。

 

铁卷的管理中心能否开放给外部用户使用?

可以。铁卷采用标准的TCP/IP协议进行通讯,如果您有外部用户需要接入,需要他有对外的IP地址,并且需要在防火墙上开放铁卷应用的端口,就能够正常接入。

 

我们采用了XXX杀毒软件,为什么会出现病毒提示?

因为铁卷采用了操作系统底层的文档安全防护技术,在这种情况下,会有少量杀毒软件的启发式检测功能产生误报。这种情况下需要在防病毒软件的中央服务器上将铁卷的用户终端程序设置为可信程序即可。

在目前我们测试的二十多种杀毒软件中,仅有一种软件(NOD32)会产生类似的误报。

 

如果将来我们要卸载铁卷,如何对所有加密文档解密?

安装铁卷正式版后,应先通过主界面菜单中的导出KEY将密钥导出并保存。需要批量解密的文档时候,使用我们提供的解密工具将保存的 KEY 文件导入,就可以批量解密了。KEY 文件被导出时可设置密码,所以别人在不知道密码的情况下,即使拿到了 KEY 文件和解密工具,加密文档也是安全的。

 

大规模部署铁卷前应该注意什么?

正式版的 License Center 导出的注册文件(.inf)产生,安装完成后自带的 License 只允许