Fuzzing
利用漏洞检查工具,发送数据到组件,或对指定格式进行填充,完成数以万计的检查任务,来帮助我们发现软件中不期望有的漏洞的行为。
Fuzzing是一种基于缺陷注入的自动软件测试技术。通过编写fuzzer工具向目标程序提供某种形式的输入并观察其响应来发现问题,这种输入可以是完全随机的或精心构造的。Fuzzing测试通常以大小相关的部分、字符串、标志字符串开始或结束的二进制块等为重点,使用边界值附近的值对目标进行测试。
主要有两种类型的fuzzing技术 :
(1)dumb fuzzing 这种测试无需了解协议或文件本身格式,通过提供完全随机的输入或简单改变某些字节去发现问题。这种方法实现起来较简单,容易快速触发错误,但它的完全随机性会导致产生大量无效的输入或格式。
(2)Intelligent fuzzing 研究目标应用程序的协议或文件格式、功能配置,了解各类漏洞的成因,有目的地编写fuzzer。编写有效的fuzzer需要花费时间,但能够对某些感兴趣的部分集中测试,因此更有效。在对目标进行fuzzing的过程中,也可能存在各种问题:校验和、加密、压缩等措施会大大增加fuzzer工具的编写难度;编写智能化的fuzzer依赖目标程序的协议文档,因此协议文档的完整性影响fuzzing测试的效果,等等。Fuzzing测试过程中需要采取措施记录目标的状态,通常通过13志的方式记录下各种信息,以便后续分析。目前比较有名的fuzzer工具有SPIKE和Peach,它们提供了对许多协议接口的支持,现有的许多fuzzer都是基于这两个框架实现的。
CVE
CVE 的英文全称是“Common Vulnerabilities & Exposures”公共漏洞和暴露。CVE就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。使用一个共同的名字,可以帮助用户在各自独立的各种漏洞数据库中和漏洞评估工具中共享数据,虽然这些工具很难整合在一起。这样就使得CVE成为了安全信息共享的“关键字”。如果在一个漏洞报告中指明的一个漏洞,如果有CVE名称,你就可以快速地在任何其它CVE兼容的数据库中找到相应修补的信息,解决安全问题。
随着最近一些年来在全球范围的黑客入侵不断猖獗,信息安全问题越来越严重。在对抗黑客入侵的安全技术中,实时入侵检测和漏洞扫描评估(IDnA——Intrusion Detection and Assessment)的技术和产品已经开始占据越来越重要的位置。
目前实时入侵检测和漏洞扫描评估基于的主要方法还是“已知入侵手法检测”和“已知漏洞扫描”,换句话说就是基于知识库的技术。可见,决定一个IDnA技术和产品的重要标志就是能够检测的入侵种类和漏洞数量。
1999年2月8日的 InfoWorld在比较当时ISS的Internet Scanner5.6和NAI的CyberCop2.5时有一段描述,“由于没有针对这些扫描器平台的分类标准,直接比较他们的数据库非常困难。我们找到在Internet Scanner和CyberCop中同一个漏洞采用了不同的名称……”
各个IDnA厂家在阐述自己产品的水平时,都会声称自己的扫描漏洞数最多,你说有1000种,我说有5000。我们的用户如何辨别?不同的厂家在入侵手法和漏洞这方面的知识库各有千秋,用户如何最大限度地获得所有安全信息?CVE就是在这样的环境下应运而生的。
cve的特点
为每个漏洞和暴露确定了唯一的名称
- 给每个漏洞和暴露一个标准化的描述
- 不是一个数据库,而是一个字典
- 任何完全迥异的漏洞库都可以用同一个语言表述
- 由于语言统一,可以使得安全事件报告更好地被理解,实现更好的协同工作
- 可以成为评价相应工具和数据库的基准
- 非常容易从互联网查询和下载,http://www.cve.mitre.org
- 通过“CVE编辑部”体现业界的认可
CVE 开始建立是在1999年9月,起初只有321个条目。在2000年10月16日,CVE达到了一个重要的里程碑——超过1000个正式条目。截至目前(2000年12月30日),CVE已经达到了1077个条目,另外还有1047个候选条目(版本20001013)。目前已经有超过28个漏洞库和工具声明为CVE兼容。
poc
?? poc=test=example.
exploit
Exploit 的英文意思就是利用,它在黑客眼里就是漏洞利用。有漏洞不一定就有Exploit(利用)。有Exploit就肯定有漏洞
UAC :
UAC(User Account Control,用户帐户控制)是微软为提高系统安全而在Windows Vista中引入的新技术,它要求用户在执行可能会影响计算机运行的操作或执行更改影响其他用户的设置的操作之前,提供权限或管理员密码。通过在这些操作启动前对其进行验证,UAC 可以帮助防止恶意软件和间谍软件在未经许可的情况下在计算机上进行安装或对计算机进行更改。
BUG
所谓“(Bug)”,是指电脑系统的硬件、系统软件(如操作系统)或应用软件(如文字处理软件)出错。硬件的出错有两个原因,一是设计错误,一是硬件部件老化失效等。
软件的Bug,狭义概念是指软件程序的漏洞或缺陷,广义概念除此之外还包括测试工程师或用户所发现和提出的软件可改进的细节、或与需求文档存在差异的功能实现等。仅就狭义概念而言,软件出现Bug的原因有:
1、对各种流程分支考虑不全面;
2、对边界情况的处理不到位;
3、编码时的手误。
程序中隐藏的功能缺陷或错误。由于现在的软件复杂程度早已超出了一般人能控制的范围,如Win95、Win98这样的较成熟的操作系统也会不定期地公布其中的Bug。如何减少以至消灭程序中的Bug,一直是程序员所极为重视的课题.
在现在一些网络游戏中也可能出现系统漏洞,大家都管它叫"BUG" 。这些漏洞可以导致玩家获利而运营公司赔本以即状态或效果消失等。为了减少这种情况的发生,游戏运营商们会不断制作游戏补丁(不一定是网络游戏,单机游戏也有升级和补丁。其中网络游戏可以自动更新,单机游戏就必须手动下载并安装)。很多玩家利用这些漏洞牟取利益,突显个性.运营商有权利给玩家处罚,严重者会永久封号。
至今还没有100%完美的硬件,系统软件,或应用软件,所以BUG无法避免,一个看来无可挑剔的游戏,还是有可能存在BUG,只是你没发现而已,尽管BUG无法避免,但是工作人员在努力地修复它,这也是电脑界面对的一个问题:能够彻底杜绝BUG的存在吗?
缺省:
英文:default
释义:指未经其他任何指令更改,程序或系统默认的(设置)。
缺省,即系统默认状态,意思与“默认”相同。缺省值也叫默认值,就是如果你不想或不需要作任何特殊的选择,电脑里就按照它已经配置好的参数进行设置。这些配置能满足绝大多数情况下的使用要求,除非你的要求特殊。 其实可以这样理解,缺少或者省略的时候系统的默认值,没有比这个更贴切的了。
缺省==默认。
0day:
0day 无外乎破解的意思;最早的破解是专门针对软件的,叫做WAREZ,后来才发展到游戏,音乐,影视等其他内容的。0day中的0表示zero,早期的0day表示在软件发行后的24小时内就出现破解版本,现在我们已经引申了这个含义,只要是在软件或者其他东西发布后,在最短时间内出现相关破解的,都可以叫0day。 0day是一个统称,所有的破解都可以叫0day
0day软件其实就是Warez的一种传播形式,0day不是说那些破解专家不到1天就“搞定”某个软件,而是说他在最短的时间内迅速地“解锁”,并在网上发布。0day的真正意思是“即时发布”(尽管不是真的当天发布),大家可以把它看作是一种精神。
网络安全意思上的0day就是指一些没有公布补丁的漏洞,或者是还没有被漏洞发现者公布出来的漏洞利用工具,由于这种漏洞的利用程序对网络安全都具有巨大威胁,因此0day也成为黑客的最爱。一般的黑客软件带有Oday的名字指的是此漏洞还没有打补丁而软件已经公布
目前国内0day的地下交易已经比较成熟.对0day有需求的包括大型的网络安全公司比如iDefence,职业黑客.提供0day的一般都是漏洞研究爱好者或是比较松散的网络安全组织,可以参考国外的0day研究网站。某些外国网站的发布的作品可能就是中国人做的呢!!
内存泄露:
在编程时进行动态内存分配是非常必要的。它可以在程序运行的过程中帮助分配所需的内存,而不是在进程启动的时候就进行分配。然而,有效地管理这些内存同样也是非常重要的。在大型的、复杂的应用程序中,内存泄漏是常见的问题。当以前分配的一片内存不再需要使用或无法访问时,但是却并没有释放它,那么对于该进程来说,会因此导致总可用内存的减少,这时就出现了内存泄漏。尽管优秀的编程实践可以确保最少的泄漏,但是根据经验,当使用大量的函数对相同的内存块进行处理时,很可能会出现内存泄漏。尤其是在碰到错误路径的情况下更是如此。
简单所来,就是分配了内存却没有进行释放,导致程序出现问题。。。