风险说明 在以下情况下,应用程序易受攻击:
一些更常见的注入包括:SQL、 NoSQL、 OS命令、 对象关系映射 (ORM) 、 LDAP和表达式 语言 (EL) 或对象图导航库 (OGNL) 注入。这一概念在所有解析器中都是相同的。源代码审查是 检测应用程序是否易受注入攻击的最佳方法 。强烈鼓励针对所有参数 、 标题 、 URL、 cookies 、 JSON、 SOAP和XML数据输入的自动测试。组织可以在CI/CD管道中引入静态 (SAST) 、 动态 (DAST) 和交互式 (IAST) 应用程序安全测试工具, 以在产品部署之前识别引入的注入缺陷 预防措施 防止注入需要将数据与命令和查询分开:
系统运行时的防御 1、文件上传的目录设置为不可执行。只要wb容器无法解析该目录下面的文件,即使攻击者上传了脚本文件,服务器本身也不会受到影响。 2、判断文件类型。在判断文件类型时,可以结合使用ME下yp、后缀检查等方式。在文件类型检查中,强烈推荐白名单方式,黑名单的方式已经无数次被证明是不可靠的。此外,对于图片的处理,可以使用压缩函数或者res立e函数,在处理图片的同时破坏图片中可能包含的HTML代码。 3、使用随机数改写文件名和文件路径。文件上传如果要执行代码,则需要用户能够访问到这个文件。在某些环境中,用户能上传,但不能访问。如果应用了随机数改写了文件名和路径,将极大地增加攻击的成本。再来就是像shel.php.rar.rar和crossdomain.xml这种文件,将因为重命名而无法攻击。 4、单独设置文件服务器的域名。由于浏览器同源策略的关系,一系列客户端攻击将失效,比如上传crossdomain.xml、上传包含Javascript的XSS利用等问题将得到解决。 5、使用安全设备防御。文件上传攻击的本质就是将恶意文件或者脚本上传到服务器,专业的安全设备防御,此类漏洞主要是通过对漏洞的上传利用行为和恶意文件的上传过程进行检测。恶意文件千变万化,隐藏手法也不断推陈出新,对普通的系统管理员来说可以通过部署安全设备来帮助防御。 系统开发阶段的防御 对文件上传漏洞来说,最好能在客户端和服务器端对用户上传的文件名和文件路径等项目分别进行严格的检查。客户端的检查虽然对技术较好的攻击者来说可以借助工具绕过,但是这也可以阻挡一些基本的试探。 服务器端的检查最好使用白名单过滤的方法,这样能防止大小写等方式的绕过,同时还需对%00截断符进行检测,对HTTP包头的content-type也和上传文件的大小也需要进行检查。 系统维护阶段 1、系统上线后运维人员应有较强的安全意思,积极使用多个安全检测工具对系统进行安全扫描,及时发现潜在漏洞并修复。 2、定时查看系统日志,Wb服务器日志以发现入侵痕迹。定时关注系统所使用到的第三方插件的更新情况,如有新版本发布建议及时更新,如果第三方插件被爆有安全漏洞更应立即进行修补。 3、对于整个网站都是使用的开源代码或者使用网上的框架搭建的网站来说,尤其要注意漏洞的自查和软件版本及补丁的更新,上传功能非必选可以直接删除。除对系统自身的维护外,服务器应进行合理配置,非必选一般的目录都应去掉执行权限,上传目录可配置为只读。 0x03 认证会话管理 1、预防固定会话 一般来说,解决固定会话是相当容易的。最基本的建议就是:一旦用户登录成功以后,重写SessionlD。 2、保护你的会话令牌
Cookie有两个很重要的属性:secure和HttpOnly,设置好这两个属性对于保护你的Cookie至关重要。
上面介绍的是系统自动按照设定的时间使会话过期,一个好的应用程序应该提供一个功能,即用户可以手动地使当前会话过期,这就是我们在几乎所有网站上都看到的logout:按钮。 3、多因素认证
0x04 访问控制 风险说明 访问控制强制实施策略,使用户无法在其预期权限之外进行操作。失败的访问控制通常会导致未经授权的信息泄露、修改或销毁所有数据、或在用户权限之外执行业务功能。常见的访问控制脆弱点包括:
访问控制只在受信服务器端代码或无服务器API中有效,这样攻击者才无法修改访问控制检查或元数据。
风险说明 首先要确认:对传输中数据和存储数据都有哪些保护需求。例如, 密码、 信用卡号、 医疗记录、 个人信 息和商业秘密需要额外保护, 尤其是在这些数据属于隐私保护法 (如:欧盟GDPR) 或法规条例 (如:金融数据保护标准PCI DSS)适用范围的情况下。对于这些数据, 要确定:
至少执行以下操作, 并查阅参考资料:
https://zhuanlan.zhihu.com/p/353034640 0x07 DDOS 防御方法 1、采用高性能的网络设备 首先要保证网络设备不能成为瓶颈,因此选择路由器、交换机、硬件防火墙等设备的时候要尽量选用知名度高、口碑好的产品。再就是假如和网络提供商有特殊关系或协议的话就更好了,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某些种类的DDoS攻击是非常有效的。 2、尽量避免NAT的使用 无论是路由器还是硬件防护墙设备要尽量避免采用网络地址转换NAT的使用,因为采用此技术会较大降低网络通信能力,其实原因很简单,因为NAT需要对地址来回转换,转换过程中需要对网络包的校验和进行计算,因此浪费了很多CPU的时间,但有些时候必须使用NAT,那就没有好办法了。 3、充足的网络带宽保证 网络带宽直接决定了能抗受攻击的能力,假若仅仅有10M带宽的话,无论采取什么措施都很难对抗现在的SYNFIood攻击,当前至少要选择100M的共享带宽,最好的当然是挂在1000M的主干上了。但需要注意的是,主机上的网卡是1000M的并不意味着它的网络带宽就是千兆的,若把它接在100M的交换机上,它的实际带宽不会超过100M,再就是接在100M的带宽上也不等于就有了百兆的带宽,因为网络服务商很可能会在交换机上限制实际带宽为10M,这点一定要搞清楚。 4、升级主机服务器硬件 在有网络带宽保证的前提下,请尽量提升硬件配置,要有效对抗每秒10万个SYN攻击包,服务器的配置至少应该为: P42.4G/DDR512M/SCS1-HD,起关键作用的主要是CPU和内存,若有志强双CPU的话就用它吧,内存一定要选择DDR的高速内存,硬盘要尽量选择SCS的,别只贪DE价格不贵量还足的便宜,否则会付出高昂的性能代价,再就是网卡一定要选用3COM或Intel等名牌的,若是Realtekl的还是用在自己的PC上吧。 5、把网站做成静态页面或者伪静态 大量事实证明,把网站尽可能做成静态页面,不仅能大大提高抗攻击能力,而且还给黑客入侵带来不少麻烦,至少到现在为止关于HTML的溢出还没出现,看看吧!新浪、搜狐、网易等门户网站主要都是静态页面,若你非需要动态脚本调用,那就把它弄到另外一台单独主机去,免的遭受攻击时连累主服务器,当然,适当放一些不做数据库调用脚本还是可以的,此外,最好在需要调用数据库的脚本中拒绝使用代理的访问,因为经验表明使用代理访问你网站的80%属于恶意行为。 6、增强操作系统的TCP/IP栈 Win2000和Win2003作为服务器操作系统,本身就具备一定的抵抗DDoS攻击的能力,只是默认状态下没有开启而已, 7、安装专业抗DDOS防火墙 8、HTTP请求的拦截 如果恶意请求有特征,对付起来很简单:直接拦截它就行了。 HTTP请求的特征一般有两种:P地址和User Agent字段。比如,恶意请求都是从某个IP段发出的,那么把这个IP段封掉就行了。或者,它们的User Agent字段有特征(包含某个特定的词语),那就把带有这个词语的请求拦截。 9、备份网站 你要有一个备份网站,或者最低限度有一个临时主页。生产服务器万一下线了,可以立刻切换到备份网站,不至于毫无办法。 备份网站不一定是全功能的,如果能做到全静态浏览,就能满足需求。最低限度应该可以显示公告,告诉用户,网站出了问题,正在全力抢修。 这种临时主页建议放到Github Pages或者Netlify,它们的带宽大,可以应对攻击,而且都支持绑定域名,还能从源码自动构建。 10、部署CDN CDN指的是网站的静态内容分发到多个服务器,用户就近访问,提高速度。因此,CDN也是带宽扩容的一种方法,可以用来防御DDOS攻击。 网站内容存放在源服务器,CDN上面是内容的缓存。用户只允许访问CDN,如果内容不在CDN上,CDN再向源服务器发出请求。这样的话,只要CDN够大,就可以抵御很大的攻击。不过,这种方法有一个前提,网站的大部分内容必须可以静态缓存。对于动态内容为主的网站(比如论坛),就要想别的办法,尽量减少用户对动态数据的请求;本质就是自己搭建一个微型CDN。各大云服务商提供的高防P,背后也是这样做的:网站域名指向高防P,它提供一个缓冲层,清洗流量,并对源服务器的内容进行缓存。 这里有一个关键点,一旦上了CDN,千万不要泄露源服务器的P地址,否则攻击者可以绕过CDN直接攻击源服务器,前面的努力都白费。搜一下'绕过CDN获取真实P地址',你就会知道国内的黑产行业有多猖獗。 11、其他防御措施 以上几条对抗DDoS建议,适合绝大多数拥有自己主机的用户,但假如采取以上措施后仍然不能解决DDoS问题,就有些麻烦了,可能需要更多投资,增加服务器数量并采用DNS轮巡或负载均衡技术,甚至需要购买七层交换机设备,从而使得抗DDoS攻击能力成倍提高,只要投资足够深入。 0x08 安全配置 风险说明 您的应用程序可能受到攻击, 如果应用程序是:
缺少一个体系的、 可重复的应用程序安全配置过程, 系统将处于高风险中。 应实施安全的安装过程, 包括:
向客户端发送安全指令, 例如:安全标头。
|
|