概述
4-1 渗透测试预知识
渗透测试(penetration testing,pentest)是实施安全评估(即审计)的具体手段。
1. 渗透测试种类
1.1 黑盒测试
在进行黑盒测试时,测试人员在不清楚被测单位的内部技术构造的情况下,从外部评估网络基础实施的安全性。黑盒测试模拟真实的外部黑客攻击,找出目标的安全问题,甚至揭露尚未被他人利用的安全漏洞(0day)。
老练的渗透测试专家应该能确定可引发安全事故的一个弱点的所有攻击模式。
1.2 白盒测试
白盒测试是跟黑盒测试相反,测试人员可以获取被测单位的各种内部资料甚至不公开资料,所以测试人员的视野更为开阔。
以白盒测试的方法评估安全漏洞,测试人员可以以最小的工作量达到最高的评估精确度。白盒测试从被测系统环境自身出发,全面消除内部安全问题,从而增加了从外部渗透系统的难度。这是黑盒测试不能起到的作用。
另外,若能将白盒测试与常规的研发生命周期相结合,就可以在入侵者发现和利用安全漏洞之前尽可能最早地消除全部安全隐患。
脆弱性评估与渗透测试的区别:
渗透测试不仅要识别目标的弱点,他还设计在目标系统上进行漏洞利用、权限提升和访问维护。换句话说,脆弱性评估虽然可以充分发现系统里的缺陷,但不会考虑去衡量这些缺陷对系统造成的危害。另外,相比脆弱性评估,渗透测试更倾向于入侵,会可以使用各种手段利用安全漏洞;所以渗透测试可能对生产环境带来实际的破坏性影响。而脆弱性评估以非入侵的方式,定性、定量的识别已知安全漏洞。
2. OWASP
OWASP,开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个组织,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息。其目的是协助个人、企业和机构来发现和使用可信赖软件。
该组织网站上有策划一些安全项目、发布安全相关指南(如渗透测试的相关指南、Web开发人员的相关安全指南)等。
2.1 OWASP Top 10
《OWASP Top 10》是10项最严重的Web应用程序安全风险指南,至今出版有2010、2013、2017版。
以下为2017版OWASP Top 10:
top1:注入
将不受信任的数据作为命令或查询的一部分发送到解析器时,会产生诸如SQL注入、NoSQL注入、OS 注入和LDAP注入的注入缺陷。攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预期命令或访问数据。
top2:失效的身份认证
通常,通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌, 或者利用其它开发缺陷来暂时性或永久性冒充其他用户的身份。
如:登陆界面可以被暴露、cookie盗取与欺骗等。
top3:敏感数据泄露
许多Web应用程序和API都无法正确保护敏感数据,例如:财务数据、医疗数据和PII数据。攻击者可以通过窃取或修改未加密的数据来实施信用卡诈骗、身份盗窃或其他犯罪行为。未加密的敏感数据 容易受到破坏,因此,我们需要对敏感数据加密,这些数据包括:1. 传输过程中的数据、2. 存储的数据、3. 浏览器的交互数据。
如:某后台管理员账户或数据库遭泄露、未授权的访问、源码的泄露等。
top4:XML 外部实体(XXE)
许多较早的或配置错误的XML处理器评估了XML文件中的外部实体引用。攻击者可以利用外部实体窃取使用URI文件处理器的内部文件和共享文件、监听内部扫描端口、执行远程代码和实施拒绝服务攻击。
top5:失效的访问控制
未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。
top6:安全配置错误
安全配置错误是最常见的安全问题,这通常是由于不安全的默认配置、不完整的临时配置、开源云存储、错误的 HTTP 标头配置以及包含敏感信息的详细错误信息所造成的。因此,我们不仅需要对所 有的操作系统、框架、库和应用程序进行安全配置,而且必须及时修补和升级它们。
top7:跨站脚本(XSS)
当应用程序的新网页中包含不受信任的、未经恰当验证或转义的数据时,或者使用可以创建 HTML或 JavaScript 的浏览器 API 更新现有的网页时,就会出现 XSS 缺陷。XSS 让攻击者能够在受害者的浏览器 中执行脚本,并劫持用户会话、破坏网站或将用户重定向到恶意站点。
top8:不安全的反序列化
不安全的反序列化会导致远程代码执行。即使反序列化缺陷不会导致远程代码执行,攻击者也可以利用它们来执行攻击,包括:重播攻击、注入攻击和特权升级攻击。
top9:使用含有已知漏洞的组件
组件(例如:库、框架和其他软件模块)拥有和应用程序相同的权限。如果应用程序中含有已知漏洞的组件被攻击者利用,可能会造成严重的数据丢失或服务器接管。同时,使用含有已知漏洞的组 件的应用程序和API可能会破坏应用程序防御、造成各种攻击并产生严重影响。
top10:不足的日志记录和监控
不足的日志记录和监控,以及事件响应缺失或无效的集成,使攻击者能够进一步攻击系统、保持持续性或转向更多系统,以及篡改、提取或销毁数据。大多数缺陷研究显示,缺陷被检测出的时间超 过200天,且通常通过外部检测方检测,而不是通过内部流程或监控检测。
3. 安全漏洞编号
常见的漏洞编号体制有:CWE,CVE,CAN,MS,CNCVE,CNVD,CNNVD,S2等。
-
了解了漏洞编号,就可以通过对方使用的组件版本,查看是否含有已知漏洞,若有则可以考虑利用该漏洞。
-
了解了漏洞编号,就可以查到某个漏洞对应的补丁的编号,从而发现对方是否打了对应的补丁,若无则可以利用该已知漏洞。
3.1 CWE
CWE是通用缺陷列表(CommonWeakness Enumeration),是社区开发的常见软件和硬件安全漏洞列表。它是一种通用语言,是安全工具的量尺,并且是弱点识别,缓解和预防工作的基准。
CWE与CVE比较
CWE说明的是某一类漏洞,所包含的主要是一些基础性原理漏洞,如XSS,SLQ注入等。
如CWE-79,CWE-89,分别代表了XSS漏洞、SQL注入漏洞。
CVE则是某个应用、系统等的具体漏洞。正是有了CWE的基础和原理,从而才能发展形成具体的CVE的漏洞。
如CVE-2014-0160、CVE-2019-0708,分别是心脏滴血漏洞、RDP漏洞。
3.2 CVE
CVE 的英文全称是(Common Vulnerabilities & Exposures,公共漏洞和暴露),CVE就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。使用一个共同的名字,可以帮助用户在各自独立的各种漏洞数据库中和漏洞评估工具中共享数据,虽然这些工具很难整合在一起。这样就使得CVE成为了安全信息共享的“关键字”。如果在一个漏洞报告中指明的一个漏洞,如果有CVE名称,你就可以快速地在任何其它CVE兼容的数据库中找到相应修补的信息,解决安全问题。
以CVE开头,如CVE-1999-104
3.3 CAN
“CAN”和“CVE”的唯一区别是,前者代表了候选条目,还未经CVE编辑委员会认可,而后者则是经过认可的条目。 然后,两种类型的条目都对公众可见,但条目的编号不会随着认可而改变,仅仅是“CAN”前缀替换成了“CVE”。
以CAN开头,如CAN-2000-0626
3.4 MS
MS开头是微软公司对其产品的安全公告(即微软的漏洞编号体系),编号含义简单易懂,如MS08-067 那么08是代表2008年微软出的漏洞,067是代表08年第67个漏洞。
以MS开头,如MS17-010,代表永恒之蓝漏洞。
微软的补丁则以KB开头,如KB958488。
3.5 CNCVE
CNCVE就是中国的CVE,是CNCERT/CC(国家计算机网络应急处理协调中心)为漏洞进行编号的一个自己的标准,即国家计算机网络应急处理协调中心(CNCERT/CC)领导下,国内正在组建自己的CVE组织。CNCVE的组建目的就是建设一个具有中国特色的,能为国内广大用户服务的CVE组织。国际CVE组织仅仅是描述漏洞的主要特征,统一命名漏洞。CNCVE不但包含漏洞的描述予以统一定义,还将包括漏洞的补丁、验证等措施,更方便、有用。
以CNCVE开头,如CNCVE-20000629
3.6 CNVD与CNNVD
CNVD是国家信息安全漏洞共享平台。是由国家计算机网络应急技术处理协调中心(简称CNCERT)联合国内重要信息系统单位、基础电信运营商、网络安全厂商、软件厂商和互联网企业建立的信息安全漏洞信息共享知识库,漏洞编号规则为CNVD-xxxx-xxxxx。
以CNVD开头,如CNVD-2014-0282
CNNVD是中国国家信息安全漏洞库,漏洞编号规则为CNNVD-xxxxxx-xxx。是中国信息安全测评中心为切实履行漏洞分析和风险评估的职能,负责建设运维的国家信息安全漏洞库,为我国信息安全保障提供基础服务。
以CNNVD开头,如CNNVD-201404-530
3.7 S2
S2(Struts 2)是Apache软件基金会下的开源的开发Java web应用程序的框架。
以S2开头的漏洞编号是指存在于Struts2框架下的漏洞。
以S2开头,如S2-053
最后
以上就是傲娇火车为你收集整理的4-0 渗透测试预知识4-1 渗透测试预知识的全部内容,希望文章能够帮你解决4-0 渗透测试预知识4-1 渗透测试预知识所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复