最近收到一份网络安全检查清单(如下),部分是 IBM AppScan 里的安全漏洞,结合提取了出来,并完善内容做了说明,方便在日常工作中遇到时可查。
一、网络安全问题清单
序号 | 问题类型 | 问题描述 | 解决方案 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Druid未授权访问漏洞 | Druid未授权访问漏洞 Druid是阿里巴巴数据库出品的,为监控而生的数据库连接池,并且Druid提供的监控功能,监控SQL的执行时间、监控Web URI的请求、Session监控,首先Druid是不存在什么漏洞的。但当开发者配置不当时就可能造成未授权访问。 | 隐藏Druid页面无法进行访问,无法获取信息。 ———— | ||||||||||||||
2.. | 敏感信息泄露 | 在应用程序测试过程中,检测到所测试的应用系统存在敏感信息泄漏。攻击者可以通过暴露出来的敏感信息寻找利用方法进行进一步的侵入。 | 删除受影响文件,避免信息泄漏。 ———— https://www.jianshu.com/p/be2cac664eb5 (作者) 补充PE项目常见:后台地址mana***、初始帐密admi***、不安全构建压缩包、不安全挂载点…… | ||||||||||||||
3 | 使用了不安全的http方法 | 过OPTIONS方法提交特定的请求,在响应中查看allow头信息,在allow头中发现delete、put等选项,delete方法是用来调试web服务器连接的http方式,支持该方式的服务器文件可能被非法删除;put方法用来向服务器提交文件,测试显示部分请求中这些方法是允许的。详细:
| 说明1:修改系统web服务器配置,禁止使用delete、put等方法。限制了请求类型。 说明2:除标准的GET和POST方法外,HTTP请求还使用其他各种方法。许多这类方法主要用于完成不常见与特殊的任务。如果低权限用户可以访问这些方法,他们就能够以此向应用程序实施有效攻击。 ———— | ||||||||||||||
4 | Web漏洞_敏感数据明文传输 | 以HTTPS代替HTTP协议,启用WEB服务器的HTTPS功能,在原有HTTP登陆界面上设置自动转向以HTTPS协议访问系统登录页面。 ———— 在涉及账户信息、交易信息应用启用HTTPS协议。 部署参考,可软可硬: FreeSSL首页 - FreeSSL.cn一个提供免费HTTPS证书申请的网站 | |||||||||||||||
5 | 错误消息凭证枚举 | 用户登录时,如果输入错误的用户信息,最好提示同一个错误消息提醒,比如:你的用户名或密码输入错误。提供枚举提示,容易被暴力破解。 | 不应该提供枚举提示,提醒信息修改为模糊提示。 ———— | ||||||||||||||
6 | 系统无图形验证码功能 | 系统没有图形验证码,无法防止暴力猜解攻击,容易造成恶意撞库、恶意提交。 | 为应用系统加上验证码功能。 ———— 常规验证、运算验证、拼图验证、选字验证、滑动验证 | ||||||||||||||
7 | ApacheTomcat管理后台地址泄露 | 在应用程序测试过程中,检测到所测试的应用系统存在ApacheTomcat管理后台地址泄漏风险。 | 删除/隐藏ApacheTomcat管理后台地址,控制后台地址访问权。 | ||||||||||||||
8 | 安装文件未删除 | 应用系统的生产环境中存在软件默认的安装说明文件。 | 删除无用的安装文件。 | ||||||||||||||
9 | 用户名枚举 | 程序存在用户名枚举,攻击者可以通过注册来进行用户名枚举。 | 增加随机token防止攻击者通过fuzz方式进行枚举。 | ||||||||||||||
10 | ApacheTomcat样例目录session操纵漏洞 | ApacheTomcat默认安装包含”/examples”目录,里面存着众多的样例,其中session样例(/examples/servlets/servlet/SessionExample)允许用户对session进行操纵,因为session是全局通用的,所以用户可以通过操纵session获取管理员权限。 | 删除此文件。 | ||||||||||||||
11 | SQL注入漏洞 | 程序过滤不严,存在SQL注入漏洞。 | 前后端使用过滤方式限制,去除相关敏感字符。 | ||||||||||||||
12 | 应用程序弱口令 | 在应用程序测试过程中,检测到所测试的应用系统存在可被猜解的弱口令。 | 修改账户弱口令为账户强口令,并做密码复杂度限制。 ———— 强制强密码功能,很受欢迎,必须同时含有大写、数字、英文三者。 | ||||||||||||||
13 | Web漏洞_目录遍历漏洞 | 使用IIS管理器关闭目录浏览。 | |||||||||||||||
14 | TomcatServletS示例页面信息泄露漏洞 | ||||||||||||||||
15 | 反射型XSS漏洞 | 程序过滤不严,存在XSS跨站漏洞。 | 在客户端和服务端对程序接收到的数据进行全面过滤 | ||||||||||||||
16 | 应用程序错误回显 | 通过构造特殊的请求以制造服务器逻辑错误并回显,可能会泄露系统相关的敏感信息以及包含产生未处理异常的文件的位置。攻击者可根据获取的信息进行相关的恶意行为。 | 1.编码时增加异常处理模块,对错误页面做统一的自定义返回界面,隐藏服务器版本信息; | ||||||||||||||
17 | 响应头信息泄露 | web应用程序返回的HTTP响应包括一个名为X-AspNet-Version的响应头。这个响应头的值被VisualStudio用来确定ASP的版本。攻击者可根据获取的信息进行特定的攻击,业务系统内并不需要,应禁用。 | 这个响应头的值业务系统内并不需要,应禁用。 | ||||||||||||||
18 | IIS短文件名枚举漏洞 | 此漏洞实际上是由HTTP请求中带有旧DOS8.3名称约定(SFN)的波浪号字符(~)引起的。它允许远程攻击者在Web根目录下公开文件和文件夹名称(不应被访问)。 | 升级补丁以修复这个安全问题 | ||||||||||||||
19 | 用户信息未做模糊化处理 | 应用系统在查询用户信息时,没有对信息进行模糊化处理。 | 返回数据增加信息进行模糊化处理 | ||||||||||||||
20 | 文件上传漏洞-可绕过的可选文件类型限制 | 系统的文件上传模块只在本地限制了可选文件的类型限制,导致攻击者可轻易绕过此限制,上传可被解析的webshell脚本木马。 | 在客户端和服务端同时限制可上传的文件类型,确保上传数据的安全性。 | ||||||||||||||
21 | Web漏洞_存储型XSS漏洞 | 按照要求前端和后端添加了xss过滤机制,对接收的数据进行全面的过滤。 | |||||||||||||||
22 | ApacheTomcat样例目录暴露 | ApacheTomcat默认安装包含”/examples”目录,里面存着众多的样例。 | 删除此文件。 | ||||||||||||||
23 | 样例目录Session、Cookie操纵漏洞 | ||||||||||||||||
24 | 用户敏感信息未模糊化 | 应用系统在查询用户信息时,没有对信息进行模糊化处理。 | 在查询用户信息时,对敏感信息进行模糊化处理。 | ||||||||||||||
25 | 任意密码重置 | 可利用获得的用户id号任意重置密码为888888 | 用户操作个人信息(读取、修改)时,服务端要对当前用户身份进行验证,防止越权操作;用来标识用户身份的名称或ID可以使用自定义加密,也可以隐藏这些参数,直接从cookie中获取用户信息等。 | ||||||||||||||
26 | 未授权访问ArcGISREST服务目录/后台管理页面对外开放 | 未对访问用户做限制,大量地质水文信息泄露,可下载敏感文件。 | 在系统中,加入用户身份认证机制或者tonken验证,防止可被直接通过连接就可访问到用户的功能进行操作,简而言之,一定对系统重要功能点增加权限控制,对用户操作进行合法性验证。 | ||||||||||||||
27 | Git存储库信息泄露漏洞 | 攻击者可以通过请求版本控制工具Git创建的隐藏元数据目录来提取敏感信息。元数据目录用于开发目的,以便在将一组源代码提交回中央存储库之前跟踪它们的开发以进行更改。当代码从存储库创建到服务器时,它应该作为导出完成,而不是作为本地工作副本。攻击者可以通过泄露的.git文件夹还原重建工程源代码。 | 及时删除.git文件夹;发布页面时不要上传.git文件夹。 ———— 建立.giignore文件,Github(Gitee)之 建立 .gitignore 文件 屏蔽一些文件上传,不上传自己不需要的文件或者文件夹_仙魁XAN的博客-CSDN博客_.gitignore gitee | ||||||||||||||
28 | LiveGBS流媒体服务应用存在弱口令漏洞 | 通过验证,LiveGBS流媒体服务应用存在弱口令。 | 为用户配置一个强壮的密码。 | ||||||||||||||
29 | GeoServer地理信息系统弱口令漏洞 | 通过验证,GeoServer地理信息系统弱口令漏洞,利用弱口令进入管理后台,获取敏感信息,恶意增删改查信息数据。 | 为用户配置一个强壮的密码。 | ||||||||||||||
30 | 跨域策略配置文件泄露 | 浏览器安全模型通常阻止来自一个域的web内容访问另一个域的数据。这通常被称为“同源政策”。URL策略文件授予读取数据的跨域权限。它们允许默认情况下不允许的操作。默认情况下,URL策略文件位于目标服务器的根目录中,名称为crossdomain.xml站点声明允许该域中任何服务器的操作者获取策略文件所在服务器上的任何文档。 | 限定crossdomain.xml中domain的域名范围。 ———— 跨域策略文件crossdomain.xml的配置方法_houbin0912的博客-CSDN博客_crossdomain 项目经常漏掉了。 | ||||||||||||||
31 | 会话Cookie中缺少Secure属性 | Cookie中有一个secure标记,如果设置了,那么这个cookie只会在https下被发送出去,HTTPS的传输是加密的,减少敏感cookie在http明文传输时泄露的可能性。 | 修改程序源代码,为用户会话cookie设置secure属性。 | ||||||||||||||
32 | FTP账户密码爆破 | 服务器开启了21端口,运行ftp服务,且可被外部访问,恶意攻击者可利用账号密码字典进行暴力破解。 | 禁止使用FTP传输文件,若必须开放应限定管理IP地址并加强口令安全审计(口令长度不低于8位,由数字、大小写字母、特殊字符等至少两种以上组合构成)。 更改服务器FTP默认端口。 部署入侵检测设备,增强安全防护。 ———— 怎么防护都是假的,不开FTP才是真。 | ||||||||||||||
33 | SSH账号密码爆破 | 服务器开启了22端口,运行ssh服务,且可被外部访问,恶意攻击者可利用账号密码字典进行暴力破解。 | 修改/etc/ssh/sshd_config默认端口为其它端口。 在/etc/hosts.allow中设置允许的IP访问。 ———— sshd_config、ssh_config的修改,还有很多需要注意的。 端口修改:linux 修改sshd端口的步骤。_张必安的博客-CSDN博客_sshd端口 sshd_config介绍:sshd_config配置文件详解_独孤柯灵的博客-CSDN博客_sshd_config |
二、常见安全问题分类
问题类别 | 详细问题 |
---|---|
1.应用程序部署环境 | 操作系统用户名及密码强度 |
操作系统用户、用户组及权限设置 | |
系统漏洞及补丁 | |
系统端口安全 | |
应用部署环境目录及文件安全(文件读写权限等) | |
2.数据库服务器环境 | 主要对数据库的授权、账户、口令等安全设置及数据库环境安全等进行测试。 |
数据库服务器版本及漏洞 | |
用户名、密码设置 | |
数据库用户权限设置及授权设置 | |
数据库文件读取权限 | |
3.Web应用测试及工具 | SQL注入(SQLInjectMe) |
表单漏洞 | |
Cookie欺骗 | |
Session测试 | |
日志文件测试 | |
第三方接口服务安全测试 | |
跨站脚本攻击(ZAP) | |
认证及会话攻击(Hackbar) | |
不安全对象直接引用攻击(Burp) | |
CSRF(TamperData) | |
安全配置错误(Watobo) | |
加密存储 | |
不限制访问者URL(Nikto/Wikto) | |
传输层面安全隐患(Calomel) | |
未经验证的重定向及转发(Watcher) | |
文件操作 | |
命令注入测试 | |
4.第三方软件及服务 | 测试Nginx、Tomcat、短信服务、邮件服务、APPPush服务等第三方软件及服务的安全性。 |
系统/服务版本及漏洞 | |
安全性配置测试 | |
数据传输安全性测试 | |
数据合法性测试 | |
数据完整性测试 | |
5.外部接口 | 是否进行请求合法性校验(验证码、令牌、IP\MAC白名单、User-Agent和Referer限制) |
是否有接口过载保护措施 | |
数据传输安全排查(是否对敏感数据进行加密、是否采用加密协议传输) | |
数据合法性测试(是否进行服务端数据校验、是否采用白名单的数据校验方法) | |
接口错误处理措施排查(是否对接口返回结果进行统一编码,是否存在堆栈信息泄露) |
三 、建议排查文档输出
系统在上线前针对以上表格中的每类安全问题进行逐一排查,形成安全排查报告,针对每一项排查点,列出如下内容:
- 排查对象(描述你排查的对象,如表单、URL等)
- 排查方法(描述如何进行的排查,以及用到的工具)
- 测试数据(描述采用的哪些测试数据)
- 排查结果
- 排查结论(描述相关排查点是否符合安全要求,以及整改要求)