GBT 22239-2019《信息安全技术 网络安全等级保护基本要求》中,8.1.4.4安全计算环境—入侵防范项中要求包括:a)应遵循最小安装的原则,仅安装需要的组件和应用程序;b)应关闭不需要的系统服务、默认共享和高危端口;c)应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制;d)应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求;e)应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞;f)应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警。敏感信息泄漏对应访问控制项中要求d),所以安全控制点为入侵防范d。
GBT 28448-2019《信息安全技术 网络安全等级保护测评要求》中,测评单元(L3-CES1-21) 该测评单元包括以下要求: a)测评指标:应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞。;b)测评对象:终端和服务器等设备中的操作系统(包括宿主机和虚拟主机操作系统)、网络设备(包括虚拟网络设备)、安全设备(包括虚拟安全设备)、移动终端、移动终端管理系统、移动终端管理客户端、感知节点设备、网关节点设备、控制设备、业务应用系统、数据库管理系统、中间件和系统管理软件等。c)测评实施包括以下内容: 1)应通过漏洞扫描、渗透测试等方式核查是否不存在高危风险漏洞; 2)应核查是否在经过充分测试评估后及时修补漏洞;d)单元判定:如果1)和2)均为肯定,则符合本测评单元指标要求,否则不符合或部分符合本测评单元指标要求敏感信息泄漏属于测评单元(L3-CES1-21)中测评实施的第1项,故定测评单元为L3-CES1-21.1。
检测目标系统是否存在敏感信息泄露漏洞,如管理后台对外、错误页面返回服务器、网上能搜索到密码本、源代码等信息。
敏感信息(也称作敏感数据)是指由权威机构确定的必须受保护的信息。不当使用或未经授权被人接触或修改后,会产生不利于国家和组织的负面影响和利益损失,或不利于个人依法享有的个人隐私的所有信息。敏感信息根据其信息种类的不同,可大致分为个人敏感信息、商业敏感信息、国家的敏感信息。
敏感信息包括但不限于:账号、密码、密钥、证书、会话标识、License、隐私数据(如短消息的内容)、授权凭据、个人数据(姓名、住址、电话、身份证号码)、程序文件、配置文件、日志文件、备份文件及数据库、网站物理地址、phpinfo信息、代码、服务器端口、banner信息等。
比如,渗透测试时在URL后添加随机字符,使网站报错,某些未经过安全设置的网站就会暴露中间件信息、版本号、框架、CMS、物理地址、本页代码、数据库配置文件代码等等。1. 由于后台人员的疏忽或设计不当,导致不应该被前端用户看到的数据被轻易访问到;
2. 发布时未能从公共内容中删除内部内容;
3. 网站和相关技术的不安全配置。例如,未能禁用调试和诊断功能,有时可以为攻击者提供有用的工具来帮助他们获取敏感信息。默认配置也可能使网站遭到攻击。
4. 应用程序的设计和行为有缺陷。例如,如果某网站在发生不同的错误状态时返回不同的响应,攻击者可据此枚举敏感数据。
敏感信息虽然一直被评为危害比较低的漏洞,但是这些敏感信息往往在攻击实战中提供着很大的帮助,甚至能直接造成严重的损失,所以在开发时不仅要进行安全的代码编写,也需要注意对敏感信息的合理处理。
• 开启的端口、服务(namp)
• 操作系统的类型与版本(Wappalyzer)
• http返回头
• 404报错页面
• 使用工具(如whatweb)
• CMS类型、版本、敏感信息
• 工具(whatweb、cms_identify、Wappalyzer)
• phpinfo()信息泄漏 http://[ip]/test.php
http://[ip]/phpinfo.php
• 测试页面泄漏在外网 test.cgi
phpinfo.php
info.php等
• 编辑器备份文件泄漏在外网 http://[ip]/test.php.swp
http://[ip]/test.php.bak
http://[ip]/test.jsp.old
http://[ip]/cgi~
• 版本管理工具(如git)文件信息泄漏 http://[ip]/.git/config
http://[ip]/CVS/Entriesp
http://[ip]/.svn/entriesp
• HTTP认证信息泄漏http://[ip]/basic/index.php
• 管理后台地址泄漏 http://[ip]/login.php
http://[ip]/admin.php
http://[ip]/manager.php
http://[ip]/admin_login.php
• 泄漏员工邮箱、分机号码
• 泄漏邮箱及分机号码可被社工,也可生成字典
• 错误页面暴漏信息
• Mysql错误
• php错误
• 框架错误
• 探针文件
• robots.txt
• phpMyAdmin
• 网站源码备份文件
• www.rar
• sitename.tar.gz
• web
• zip等
• Web控制台泄漏Web控制台常常被用于网站后台或者Web容器控制台中,其不仅仅局限于容器或者网站管理后台,还包括一些数据库默认地址等。常见的Web控制台:
Tomcat
http://x.x.x.x/manager/html
http://x.x.x.x:8080/manager/html
默认账号:
admin/admin、admin/空密码Axis2
http://x.x.x.x/axis2-admin/
默认账号:
admin/axis3
Weblogic
http://x.x.x.x:7001/console
http://x.x.x.x:port/console
WebSphere
http://x.x.x.x:9060/ibm/console
https://x.x.x.x:9043/ibm/console/logon.jsp
默认账号:admin/admin
Oracle
http://x.x.x.x:5500/em
Mongodb
http://x.x.x.x:28017
HP system managent
http://x.x.x.x:2381/cpqlogin.php?error=100&serverity=4
Service Registry
http://x.x.x.x:port/soar
port默认为6060
Jboss
http://x.x.x.x/jmx-console/
http://x.x.x.x/web-console/
默认无需登录,或admin/admin
Apache
http://x.x.x.x/server-status
普元
http://x.x.x.x/eosmgr
默认账号:
sysadmin/000000
• DNS域传送漏洞
• 运维监控系统弱口令
• 网络拓扑泄漏
• zabbix弱口令
• zabbix sql注入等
• github中源码、数据库、邮箱密码泄漏
• 搜索类似:smtp 163 password关键字
• GISL等工具
• 网盘中敏感数据泄漏
• 员工不小心将敏感文件上传至网盘
• QQ群敏感数据泄漏
• 员工不小心上传敏感文件至QQ群
最一手的资料就在官网:https://www.exploit-db.com/google-hacking-database 利用搜索引擎有针对性的搜索信息来对网络入侵的技术和行为。搜索引擎对于搜索的关键字提供了很多种语法,构造出特殊的关键字,能够快速全面的让攻击者挖掘到有价值的信息。
轻量级的搜索可搜索出一些遗留后门、不想被发现的后台入口;中量级的搜索可搜索出一些用户信息泄露、源代码泄露、未授权访问等等;重量级的则可能是mdb文件下载、CMS 未被锁定install页面、网站配置密码、SQL注入、远程文件包含漏洞等重要信息。敏感路径:
intitle:index.of "parent directory"
"Index of / " + password.txt敏感文件
inurl:admin inurl:userlist
intitle:"index of" "*.passwords.txt"
filetype:sql "MySQL dump" (pass|password|password|pwd)
敏感页面
intitle:"Nessus Scan Report" ext:html
intitle:"Cacti" AND inurl:"/monitor/monitor.php"
测试方法:
1. 检测形式多样,工具爬虫扫描得到敏感文件的路径,从而找到敏感数据,主要还是通过关键词爆破;
2. 手工挖掘,根据Web容器或者网页源代码的查看,Github找到敏感信息。
敏感信息泄漏可能会产生直接或间接的影响,具体取决于获取的信息内容以及获取的人。敏感信息泄漏会造成以下危害:
1. 内网IP泄漏:攻击者会渗透进内网,扫描内网开启的服务,使用file、gopher、dict协议读取本地文件、执行命令等等扩大战果,对内网造成危害;
2. 数据库信息泄漏:攻击者知道数据库类型、版本、账号等信息,会降低攻击难度;
3. 网站调试信息泄漏:会使攻击者知道网站编程语言、使用的框架等信息;
4. 网站目录结构泄漏:会泄漏敏感文件;
5. 电子邮件泄漏:邮件泄漏会造成垃圾邮件的骚扰、邮件钓鱼,攻击者可获取更多信息扩大危害;
6. 账号密码泄漏:导致攻击者直接操作后台或数据库;
7. 源码泄漏:攻击者可进行代码审计分析出其他更多的漏洞;
1. 禁止在代码中存储敏感数据 禁止在代码中存储如数据库连接字符串、口令和密钥之类的敏感数据,这样容易导致泄密。
2. 禁止密钥或者账号的口令以明文方式存储在数据库或者文件中 密钥或者账号的口令必须经过加密存储。例外情况,如果web容器的配置文件中只能以明文方式配置连接数据库的用户名和口令,那么就不用强制遵循该规则,将该配置文件的属性改为只有属主可读写;
3. 禁止在Cookie中以明文形式存储敏感数据:Cookie信息容易被窃取,尽量不要在Cookie中存储敏感数据;如果条件限制必须使用Cookie存储敏感信息时,必须先对敏感信息加密再存储到Cookie;
4. 禁止在隐藏域中存放明文形式的敏感数据;
5. 禁止用自己开发的加密算法,必须使用公开、安全的标准加密算法;
6. 禁止在日志中记录明文的敏感数据:禁止在日志中记录明文的敏感数据(如口令、会话标识等),防止敏感信息泄漏;
7. 禁止带有敏感数据的Web页面缓存:带有敏感数据的Web页面都应该禁止缓存,以防止敏感信息泄漏或通过代理服务器上网的用户数据互窜问题。
8. 应根据业务特点定义出系统存储的敏感信息;
9. 敏感信息在存储、传输、显示时应进行安全处理,可采用的处理方式为加密或脱敏;
10. 敏感信息不应使用GET方式提交到服务器;
11. 用户密码为最高级别的敏感信息,在存储、传输、显示时都必须加密;
12. 需要选择可靠的加密算法,优先选择不对称加密算法,不得使用Base64等编码方式进行加密;
13. 对于一些系统默认报错页面应重新进行设计自定义报错页面,以免暴露系统敏感信息。
14. 控制台:对于必须暴露于公网或者其他网络中的控制台地址,则为其地址做访问名单措施,可通过过滤器实现。或修改控制台默认用户名、密码、端口、路径,并为其控制台设置强壮的口令,防止可被恶意或猜解到。
参考:https://cloud.tencent.com/developer/article/1969038
https://www.freebuf.com/articles/web/228033.html
E
N
D