目录
关于安全的重要性以及安全意识到底有多重要,咱们从2021年互联网历史上破坏力最惊人漏洞之一Log4j漏洞讲起,漏洞波及面和危害程度堪比2017年的“永恒之蓝”漏洞。从爆发至今,Log4j漏洞影响的严重性、广泛性已经在各领域开始显现,并不断加大。简单点说,黑客可以恶意构造特殊数据请求包payload触发漏洞,从而可以在目标服务器上执行任意代码,导致服务器被黑客控制。
Apache Log4j 是一个基于Java的日志记录工具。它是由Ceki Gülcü首创的,现在已经发展为Apache软件基金会的项目之一。
本次漏洞是因为Log4j2组件中 lookup功能的实现类 JndiLookup 的设计缺陷导致,这个类存在于log4j-core-xxx.jar中
log4j的Lookups功能可以快速打印包括运行应用容器的docker属性,环境变量,日志事件,Java应用程序环境信息等内容。比如我们打印Java运行时版本。
因为这里没有任何的白名单,那么我们就可以构造任何的字符串,只有符合${就可以,那么就很容易构造漏洞

咱们中国的阿里第一时间发现了改漏洞,但是第一时间报给了apache的软件基金会,并没有报给中国的软件工信部,这导致中国滞后于美国去处理这件事情,所以我们每个人都要有安全意识,更要明白出现安全问题如何处理和防范。
安全测试是指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程

导致软件出现安全问题的主要原因或根源事软件的安全漏洞。
安全测试是从内到外的一种测试,是一种安全预防性测试,代码审查,架构分析,而渗透测试是从外到内的测试,它是一种试探的方法。
出发点差异:渗透测试是以成功入侵系统,证明系统存在安全问题为出发点;而安全测试则是以发现系统所有可能的安全隐患为出发点。
视角差异:渗透测试是以攻击者的角度来看待和思考问题,安全测试则是站在防护者角度思考问题,尽量发现所有可能被攻击者利用的安全隐患,并指导其进行修复。
覆盖性差异:渗透测试只选取几个点作为测试的目标,而安全测试是在分析系统架构并找出系统所有可能的攻击界面后进行的具有完备性的测试。
成本差异:安全测试需要对系统的功能、系统所采用的技术以及系统的架构等进行分析,所以较渗透测试需要投入更多的时间和人力。
解决方案差异:渗透测试无法提供有针对性的解决方案;而安全测试会站在开发者的角度分析问题的成因,提供更有效的解决方案。

安全漏洞特指在硬件、软件、协议的在逻辑设计上或具体实现或系统安全策略上存在的缺陷或错误。
1,客户端漏洞:
XSS(跨站脚本攻击)
CSRF(跨站请求伪造)
XXE(XML外部实体注入)
2,服务端漏洞:
SQL注入
文件上传漏洞
服务器请求伪造(SSRF)
反序列化
命令执行漏洞
文件包含漏洞
逻辑漏洞
越权漏洞
敏感信息泄露




安全隐患就像软件的其他缺陷一样是不可能杜绝的,只能尽可能防御,减少,下面是一下软件安全测试设计的基本原则
只授予每个用户/程序在执行操作时所必须的最小特权。这样可以限制事故、错误、攻击带来的危害,减小特权程序之间潜在的相互影响。
当系统发生故障时,对任何请求默认应加以拒绝。
采用多层安全机制,这个概念范围比较大。比如在表单中的字段校验不光要在页面校验,还要在后台有相应的校验机制;比如在信任区、非信任区之间二次部署防火墙。
比如禁止root用户远程登录、多重身份校验登陆等。