企业安全建设怎样防止供应商出现安全漏洞
有些时候目标单位的软件供应商也会成为攻击者的攻击目标。攻 击者通过攻击供应商有可能获得目标单位的维护账号、人员信息、部 署资料、测试系统、系统源代码等大量敏感信息。攻击者采取信息整 合,如代码审计、社工、维护账号登录等各种手段攻击目标系统。供 应商的安全防护问题主要有以下几个。(1)供应商本地和远程维护问题供应商在本地维护的过程中,维护人员的安全意识不足、供应商 人员和设备未经安全检测接入网络、私
有些时候目标单位的软件供应商也会成为攻击者的攻击目标。攻 击者通过攻击供应商有可能获得目标单位的维护账号、人员信息、部 署资料、测试系统、系统源代码等大量敏感信息。攻击者采取信息整 合,如代码审计、社工、维护账号登录等各种手段攻击目标系统。供 应商的安全防护问题主要有以下几个。
(1)供应商本地和远程维护问题
供应商在本地维护的过程中,维护人员的安全意识不足、供应商 人员和设备未经安全检测接入网络、私自开放管理后台、管理员账号 为弱口令、私自开通维护账号等都会给目标单位带来安全风险。如存 在远程后台或通过VPN拨入维护的情况,则安全风险会大大增加。供应 商安全维护的建议如下:
1)制定供应商安全维护管理规范; 2)禁止供应商远程维护系统; 3)本地维护时,未经许可不得将自带设备接入内网; 4)维护时必须有参演单位人员陪同; 5)维护时必须通过堡垒机登录,可审计和监控是否出现其他违规维护行为;
6)供应商不得记录参演单位除堡垒机维护密码以外的密码。
(2)供应商测试系统问题
需要特别注意的是,部分供应商会将目标单位所采购系统软件的 测试系统发布在互联网上供客户测试使用,这同样是一个重大的风险 点。防护建议如下:
1)测试系统所采用的密码口令不得在正式环境中出现;
2)禁止供应商将目标单位真实数据放在商业测试系统上; 3)安装路径尽量不要采用默认路径; 4)关闭不用的功能和目录; 5)管理好供应商内部SVN/Git。
开发商/外包商内部自建的Git/SVN等源代码管理服务器,一般都 会存有已经交付给参演单位的信息系统源代码,而开发商/外包商的源 代码系统管理安全能力和参演单位相比可能要差几个数量级。后果就 是:攻击者通过获得的源代码,发现系统应用0day,从而控制参演单 位已上线信息系统。解决方案如下:
1)督促供应商加强自身源代码管理服务器管理; 2)源代码服务器不得联网,和内部其他系统物理隔离。
防物理攻击
物理安全就是保护一些比较重要的网络边界、设备不被接触。目 前比较流行的物理攻击主要有以下几种。
(1)Wi-Fi破解
主动进入参演单位现场或接待室,或在参演单位办公地附近的公 共场所搜索Wi-Fi进行破解,破解成功后进入参演单位的内网环境进行 进一步的渗透。建议从以下几方面进行防御:
1)对进入接待区的人员进行确认,防止闲散人员进入; 2)对于无线接入采用严格的验证机制和准入控制措施,防止被利
用;
3)对无线接入后的权限进行控制; 4)公共无线接入最好和办公内网隔离; 5)关闭Wi-Fi无线广播功能。 (2)冒充上门维护
冒充供应商,要求进机房检查线路或设备,或者在分支机构、营 业网点等安全意识薄弱的地点要求检查和维护设备,趁机进行网络攻 击。
要防止此类攻击,建议采取以下措施: 1)对现有的各类产品及服务的供应商清单进行梳理; 2)对上门维护的人员进行身份验证; 3)对上门维护的事项进行确认; 4)对物理接触设备的人员的行为进行跟踪和监视。
(3)历史后门利用
攻击者也会通过扫描的方式检测目标单位网站是否存在Web或系统 后门,例如冰蝎后门、一句话后门、Webshell、按五下Shift键弹出 CMD等。这种攻击方式也很常见。常用的防御方法如下:
1)对所有互联网开放Web系统进行失陷检测,查找是否有后门链接情况;
2)扫描和检测网站代码是否存在后门木马文件,或者根据后门内 容特征全盘搜索存在该特征内容的文件;
3)定期查看安全检测设备报警,是否有后门链接报警。
防护架构加强
互联网暴露面收敛
- 使互联网出口可控、可检测
大型单位往往有多个互联网出口,这意味着攻击者可能会从多个 入口进入,为攻击行为的监测和防御带来影响。为了发现和阻断攻 击,大型单位需要在每个出口部署相关的监测设备和防护设备,这也 意味着需要投入更多的人员进行相应的监测分析和响应工作。
处置建议如下。
1)尽量合并减少互联网出口。
2)进行互联网出口功能规划,如划分正式Web发布出口、互联网 测试系统出口、终端上网互联网出口、托管系统互联网出口等,根据 不同出口进行有针对性的安全防护和监控。
- VPN接入控制
VPN为大家带来便利的同时也是最受攻击者青睐的攻击路径之一, 一旦VPN被攻陷,攻击者进入内网后将畅通无阻。同时由于VPN的加密 属性,攻击者可以绕过所有安全防护设备,而且还不易被发现。
处置建议如下。 1)对于存在多套VPN的,尽量进行合并处理。
2)对于保留供应商的VPN远程维护通道的,采用随用随开、用完 即关的策略。
3)采用VPN+准入认证双层认证,即在VPN拨入后增加准入认证和 双因素认证。一旦VPN被攻陷,准入认证将是第二道防护屏障。
4)VPN账号梳理:对于VPN账号尤其是外部人员的VPN账号能禁用 就禁用,不能禁用的,可以按照使用时间段进行控制。
5)VPN权限清理:对于拨入VPN后能够访问的资源进行明确授权。
6)VPN账号清理:对默认的管理账号进行清理;对于已分配的VPN 账号,对从未使用过的进行关停处理,对其他账号采用强密码策略并 定期修改密码。
对外发布系统资产排查
IT部门普遍存在资产管理缺陷,而安全部门无法管控对外发布系 统的所有资产,导致有些停用的、测试后需要下线的、不用的功能模 块,不需要开放在互联网上的系统以及未经过安全检测私自上线的系 统依然发布在互联网上。这些系统由于缺乏维护普遍安全性较低,会 成为攻击者重点攻击的对象。
处置建议如下。
1)让各业务处室自行梳理需要开放在互联网上的系统域名和端口 并上报安全管理员,只在互联网上开放业务处室上报的系统域名和端 口,其他的一律关闭互联网访问。
2)测试系统和正式上线系统不得部署在同一发布区内,单独划分 测试系统区域和互联网出口。
3)在用的系统对相关的功能模块进行排查,对于不使用的功能模 块进行下线或关停处理。
开放在互联网上的API排查
较大单位的信息系统互联相对复杂,系统之间可能存在接口调用 情况,而不安全的接口调用方式会被攻击者利用。例如,不得不开放 在公网的API,基于用户的分布特性又难以限制可接入IP,因而容易受 到API参数篡改、内容篡改、中间人攻击等安全威胁。
处置建议如下。
1)通常情况下,WebAPI是基于HTTP协议的,也是无状态传输的, 故而认证任务需要我们自己实现。原则上每一次API请求都需要带上身 份认证信息,通常使用的是API key。
2)加密和签名。为保证信息的保密性和完整性,通常使用 SSL/TLS来加密通信消息,由API客户端发送和接收。签名用于确保API 请求和响应在传输过程中未被篡改。
3)关闭不需要的API功能(如文件上传功能)。
4)API必须使用文件上传功能的,需要对上传文件扩展名(或强 制重命名)、内容、格式进行合规检测,同时关闭上传文件夹执行权 限。
管理后台排查
攻击者最习惯的渗透方式就是直接找网站的管理后台,通过暴力 破解、撞库、默认用户名及密码或者后台指纹漏洞收集等方式进行攻 击。一旦攻击成功,即可直接取得网站所有权限。原则上管理后台不 得联网,但有些运维人员为了方便还是会把管理后台发布在互联网 上。
处置建议如下。 1)进行安全制度约束,禁止将任何互联网系统后台发布在互联网上。
2)定期通过人工或脚本扫描本单位互联网发布系统后台的管理路 径,一旦发现,通报关闭。
网络侧防御
从实战来看,安全的网络架构、部署得当的防护和监控设备、合 理的安全域划分、域之间的访问控制被证明是有效安全防护的基础。 网络侧的安全防护应注意以下几点。
网络路径梳理
网络环境复杂的单位应定期梳理所有外部系统接入本单位内部网 络的网络路径,并给出网络路径图。通过网络路径梳理判断攻击者可 能的攻击路径,并尽可能在所有攻击路径上部署安全防护设备和安全 检测设备,避免攻击路径梳理不全面造成监控缺失,进而导致核心或 目标系统被攻陷或对于攻击发现不及时。
处置建议如下。
1)外部系统网络连接必须将外联区域作为唯一路径,其他路径一律禁止。
2)本单位广域专网和互联网区域互联最好通过网闸连接,广域专 网不得上互联网。
3)与下属单位广域专网连接路径一定要部署防护设备和安全监控设备。
安全的网络架构
合理的网络架构是安全防护、限制攻击路径、防止攻击范围蔓延 的天然屏障。一个好的网络架构应包含如下几方面。
1)可控的、规划合理的互联网发布出口。互联网终端区最好与服 务器区物理隔离,不共用互联网出口。
2)合理的安全域划分,必须建立外连区,所有外部接入网络必须 经由外连区唯一路径接入,形成清晰可控的与其他网络互联的网络路 径。外连区应具有和服务器区同等的防护水平。单独划分业务系统测 试区,并严格控制测试区和生产服务器区的数据互通情况,最好进行 物理隔离。
3)完善的各个网络接入路径与安全域间竖向和横向的安全防护措
施。
4)合理安全的域间访问控制策略。在原有安全域的基础上,应明 确互联网接入区、外连区、安全管理区、终端区、服务器区和测试区 之间的互联关系。
5)内网终端不可上互联网,访问内网服务应通过代理。 6)安全管理区最好采用带外管理,和业务数据分开。
访问控制
合理、有效的域间访问控制被证明是最好的防护和防内网蔓延手 段,各个安全域间须根据业务需要对访问的地址、服务严格按照最小 原则配置防火墙安全策略。一般的访问控制根据安全级别、数据传输 业务的不同分为如下几种。
1)逻辑物理隔离系统间访问控制:一般建议生产专网和可上互联 网网络间采取这种控制方式;通过代理数据摆渡的方式进行数据传 输,隐藏专网内部结构,数据传输路径可控。
2)单项数据传输访问控制:一般是数据上传和数据拉取时采用的 访问控制模式,防火墙只需要配置单项传输的目标IP、源IP、端口或 协议通过即可。
3)双向数据访问访问控制:一般只有对内或对外提供的业务服务 才会产生双向数据访问,此时只需要按照最小原则开通对外开放的 IP、端口或协议即可。如需更严格,则可根据业务提供的时间进行基 于时间的访问控制策略。
主机侧防御
做好主机侧的安全防御是防止攻击者提权、横向渗透、后渗透持 续控制的最有效安全手段。主机侧防御的技术关键点主要有以下几 个。
- 及时安装漏洞补丁
操作系统及安装软件的漏洞是攻击者用来控制主机、提权、上传 后门软件、抓取密码的基础,目标单位须建立定期和紧急针对系统或 相关软件打安全补丁的机制。可通过和相关安全组织或安全厂商建立 威胁情报共享机制,监控本单位涉及的操作系统和软件的漏洞通报情 况。若出现紧急漏洞,则需要立即打上相关安全补丁;对于严重漏 洞,如MS17-010、MS08-067、MS06-040等可直接远程控制系统的漏 洞,需要及时安装相关补丁以防止攻击者利用;对于其他高危补丁, 可定期安装。具体建议如下:
1)本单位根据IT资产建立高危漏洞通报机制; 2)定期进行漏洞扫描,定期对产生的高危漏洞打补丁; 3)在新系统或软件上线前打全安全补丁; 4)为主机安装加固防护软件,并定期更新相关规则库; 5)安装杀毒软件,及时更新病毒库。
- 安全加固
系统或软件不当的配置也会被攻击者利用,造成系统被入侵。单 位应建立系统和各个软件的安全配置基线,并定期更新安全配置基线 配置策略,同时对之前的安全配置进行检查和更新。安全加固建议如 下:
1)最小原则安装系统,仅安装用得到的服务或功能,其他服务或 功能不安装或关闭;
2)最小权限安装软件,禁止使用管理员权限安装软件,给安装软 件单独分配用户权限;
3)禁止使用默认配置,仅开放需要的功能,修改默认用户名和密
码;
4)系统远程登录或软件管理后台配置白名单访问; 5)关闭不安全的登录或传输协议,如Telnet登录; 6)开启安全日志记录功能。
- 其他根据实际业务情况需要加固的加固项
(1)弱密码
弱密码口令是攻击者最喜欢的漏洞,可被直接利用,形成更深层 的数据泄露和安全漏洞。弱口令包括以下几类。
1)常见密码:如123456、1qaz2wsx、12345qwert等密码字典里肯 定会有的常见弱密码。
2)默认密码:系统或软件默认口令,如MySQL默认口令sa、ldap 默认空密码等。
3)相同口令或规则口令:管理员为了方便,一般会对一批服务器 都用一个口令或者规则口令,这为入侵者横向扩展提供了巨大的便 利。建议采用密码加动态口令的登录方式。
(2)中间件防御
1)中间件版本及漏洞。Web中间件作为Web服务发布软件直接暴露 在互联网或专网。近几年陆续爆出中间件远程代码执行高危漏洞,中 间件成为攻击者越来越喜欢利用并挖掘的攻击点,这也为中间件的安 全敲响了警钟。目前比较主流的Web中间件有WebLogic、WebSphere、 JBoss、Tomcat、Nginx等。防范该类漏洞的方式有以下几种:
- 定期打安全补丁;
- 将中间件升级到安全的版本;
- 禁用不用的有安全问题的组件;
- 不对外开放后台管理端口或敏感目录;
2)中间件后台。中间件后台暴露在互联网上也会引起极大风险。 一旦攻破中间件后台,攻击者可直接部署Webshell控制Web网站。中间 件后台防护手段如下:
- 禁止采用默认路径和默认端口;
- 禁止中间件后台暴露在互联网上;
- 中间件后台在内网限制地址进行访问;
- 禁止使用中间件默认用户名和密码;
- 禁止在生产环境发布测试系统。
3)中间件配置加固。中间件的配置不当也会造成安全问题,例 如,未限制HTTP传输方式、网站目录文件任意下载、测试页面和默认 口令等都可以被攻击者利用。Web中间件安全加固建议如下:
- 修改默认的用户名和密码;
- 禁止列网站目录功能;
- 删除测试页面;
- 正式环境下禁止将报错文件直接返给用户;
- 如无特殊需求,HTTP传输方式固定为只允许POST和GET方式;
- 开启日志功能;
⑦ 上传文件夹关闭运行权限;
⑧ 中间件管理员用户名配置强口令;
⑨ 根据不同中间件特性制定加固基线。
- Web侧防御
作为开放在外的应用系统,Web应用常常会被攻击者作为首要的攻 击目标。他们攻击的主要步骤为:第一步,获取Web权限;第二步,提 权获取系统权限;第三步,建立隐蔽通信隧道;第四步,寻找其他跳 板机;第五步,在同网段横向渗透。Web应用作为常规第一突破口,是 安全防护的重中之重。除了常规的Web防护设备和监控设备外,为了防 止黑客绕过Web检测设备,Web侧防御应参考如下几类。
- Web安全漏洞
除了常见的Web漏洞(OWASP TOP 10)和常规渗透测试,还应注意 以下可能产生漏洞的点。
1)开发框架漏洞。出于某种原因,开发者一般都会在成熟的开发 框架上开发应用系统,不会改动开发框架的代码。这样一来,开发者 在引入开发框架的同时可能也把该开发框架的漏洞一同引入了开发的 系统。目前主流的开发框架有Struts2、Spring、ThinkPHP等。解决建 议如下:
- 充分掌握本单位应用系统利用的开发框架,跟踪漏洞平台和安
全厂商披露的涉及本单位所用开发框架的漏洞,并根据处置建议加固 或者升级。
- 遵从最小应用原则,删除不用的应用组件。
2)主流CMS漏洞。各个单位可能会采用比较成熟的CMS管理或发布 网站内容。如果单位的CMS暴露在互联网上,且CMS名称和版本暴露的 话,攻击者就可能会在各漏洞平台搜索该CMS已被披露的利用漏洞,或 自己搭建环境挖掘该系统漏洞,挖掘成功后就可以成功攻陷目标单位 CMS。安全建议如下:
- 禁止将CMS暴露在互联网上;
- 尽量隐藏商业CMS名称和版本;
- 删除不使用的功能模块。
3)编辑器漏洞。单位论坛、管理后台可能会引用第三方编辑器的 丰富编辑功能。某些主流编辑器或版本存在漏洞,被攻击者发现的话 也会存在较大的安全风险。解决建议如下:
- 充分掌握本单位引用的编辑器名称和版本,跟踪漏洞平台和安
全厂商披露的涉及本单位所用编辑器的漏洞,并根据处置建议加固或 者升级。
- 遵从最小应用原则,删除不用的功能组件。
4)商业系统漏洞:各个单位可能会采用比较成熟的商业Web系 统,如致远OA、帆软报表等商业系统,如果该商业系统暴露在互联网 上,且系统名称和版本暴露的话,攻击者会在各漏洞平台搜索披露的 该商业系统利用漏洞,或自己搭环境挖掘该系统漏洞,挖掘成功后攻 击目标单位商业系统。安全建议如下:
- 尽量隐藏商业系统名称和版本;
- 删除不用的功能模块;
- 及时更新商业厂商提供的漏洞补丁。
5)开源软件系统漏洞:开源软件由于其便利性和经济性,广受开 发厂商和开发者欢迎,IT系统复杂的单位都或多或少使用了开源软 件。由于其开源性,攻击者可通过白盒测试审计代码中存在的安全漏 洞,如果所使用的开源系统被攻击者发现,则极有可能被攻陷。安全 建议如下:
- 尽量隐藏开源系统的指纹痕迹和版本;
- 删除不用的功能模块;
- 使用开源软件之前进行代码审计。
6)Web接口漏洞:Web接口由于具有隐蔽性,在渗透测试时很容易 被忽略。不安全的接口开放在互联网上,一旦被攻击者发现则极容易 被利用。安全建议如下:
-
参演单位安全人员需要充分掌握暴露在互联网上的Web接口,并协调安全测试人员对每个接口进行安全性测试。
-
编写Web接口安全规范,要求接口开放必须符合安全规范。
-
Web接口引用增加鉴权和身份认证。
-
加密和签名用于确保API请求与响应在传输过程中的数据保密性和完整性(未被篡改)。
-
关闭不需要的API功能(如文件上传功能)。
-
若API必须使用文件上传功能,则需要对上传文件扩展名(或
强制重命名)、内容、格式进行合规检测,同时关闭上传文件夹执行 权限。
- 管理后台(路径)及弱密码
很多单位的运维人员为了方便会把应用管理后台发布在互联网 上,这就使得网站后台容易被攻击者盯上。一旦后台密码泄露或存在 安全漏洞,攻击者可直接获得网站管理权限,部署后门。安全建议如 下:
- 禁止后台地址对外网开放;
- 限制访问后台的IP地址;
- 禁止默认密码、弱口令;
- 增加验证码功能以防止暴力破解;
- 测试用户名登录和密码参数是否存在SQL注入。
- 重要集权系统
组织内的重要集权系统(攻陷即可获得组织内大部分系统权限的 系统都可以视为重要集权系统)是攻击者在进入内网后横向拓展的重 要目标,如域控、4A、堡垒机、集中管控、集中身份认证系统、终端 管理系统。重要集权系统一定要重点防护,安全建议如下:
-
制定重要集权系统访问白名单,只有受认可的IP才可以访问管理页面或系统;
-
定期对重要集权系统进行漏洞扫描,对高危漏洞必须打补丁;
-
对重要集权系统进行渗透测试,针对漏洞进行整改;
-
在重要集权系统的主机上安装入侵防护软件和杀毒软件,开启审计日志;
-
清理不用的、过期的权限账号。
安全设备自身安全
安全设备自身的安全性同样重要,一旦安全设备存在安全漏洞, 那么它可能就会成为攻击者逃避检测、收集信息、监控防护人员举 动、修改安全策略等的“帮凶”,使部分或全部防护和监控手段形同 虚设。安全设备自身安全的建议如下:
- 为安全设备管理入口单独划分安全域;
- 为管理入口配置白名单访问;
- 对安全设备进行安全检测,如渗透测试、安全加固、漏洞扫描;
- 禁止安全设备管理入口暴露在互联网上;
- 安全设备自身开启日志审计。
App客户端安全
由于移动互联网的普及,很多单位应用系统都会有Web和App两种 访问方式,所以App安全也应该重点考虑。如果App存在安全漏洞,攻 击者同样可以成功入侵目标单位。App安全测试目前主要分为App客户 端安全测试和App组件安全测试。
如果App客户端可以被反编译、DLL注入,配置文件存在敏感信 息,攻击者可通过App的漏洞获取App后台服务器敏感信息,从而攻击 App后台服务器并进一步进行内网渗透。
- App客户端安全
攻击者得到目标App后,利用反编译工具可以很方便地得到App代 码,进而对App代码进行逆向分析、修改、重打包。若没有采用任何加 固保护措施,App的逻辑将完完整整地暴露给攻击者。App客户端安全 需要注意的检测点如下:
- App组件安全
安卓App在前端运行时会调用各种不同组件,如果开发者发生疏 忽,组件安全也会造成安全隐患。App组件安全检查点如下:
- Activity组件越权;
- BroadcastReceiver组件越权;
- Service组件越权;
- Content Provider SQL注入;
- WebView远程代码执行。
- App其他安全
建议聘请专业的App安全检测人员对App进行安全检测。除了上述 两点外,还需要对如下安全点进行检测:
- App通信安全检测,如是否采用HTTPS、关键信息是否加密;
- 运行环境安全检测,如反越狱检测、ROOT环境检测等;
- 安全策略设置检测,如键盘记录保护、界面切换保护检测等;
- 基于业务安全的常规渗透测试检测。
参考资料
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)