本文首发自河南CISP,安全内参转载。
阅读说明:本篇谈一谈业务网安全。很多传统行业的应用服务都是由业务网提供的,如医疗行业、互联网企业等。所以,业务网事关重大。我们可以通过一些手段加固业务网,从而规避安全风险及提升攻击者的攻击成本。我们从医院业务网入手,介绍几种常用的加固方法,作为引玉之砖。
什么是业务网安全?
我们这里谈的业务网,通俗地讲:就是企业内部组成业务支持的网络,也可以理解为企业内网。业务网安全工作内容包括:安全区域划分、主机加固、安全资产管理等。
对于传统大多数医院业务网而言,有如下几个特点:
- 内网划分混乱,通常没有域控或单一子网,子网可互访;
- HIS系统、电子病历、子网主机等核心关键设备缺失补丁策略;
- 安全设备无配置,也就是被配置了 any to any;
- 自上而下安全意识薄弱,或无安全意识;
- 医疗设备厂商混杂,缺失安全监管;
- 应急设备(如:灾备)缺乏检修,也无应急预案,无法处理应急事故。
安全工作是业务网发展的保障,并非阻碍。但实际情况通常惨不忍睹。我们时常会听到,某某医院中勒索了,某某医院系统瘫痪了。面对紧急安全事故时,无应对措施,工作陷入被动,只能停滞。
细数医院业务网存在的问题
问题如果没有暴露出来,会一直存在,这本来就是可怕的事。
我们罗列出下列16条医院业务网常见问题,看看你家占了几条:
1、内外网不能实现完全隔离,特殊人群和特殊岗位难以剥离;
2、存在大量的网络边界,且未对这些网络边界进行安全控制和防护,如医保、农合、区域平台、银行、运营商等;
3、伴随业务系统的扩展和部门机构变动,网络结构也随之变动,但未进行合理规划和纳入管控;
4、重业务轻安全,对安全认识不到位;
5、或者安全设备众多,对安全设备的策略设置和管理不足,不能够发挥其应有的作用;
6、终端用户水平参差不齐,对于终端管理的妥协,采用过时老旧的操作系统(如XP);
7、应用供应商、系统供应商和安全供应商提供服务不到位,不能够及时提供应急响应;
8、业务应用系统更新不及时,操作系统、数据库系统采用数年前产品(厂商已停止安全更新),应用系统版本不能满足安全管理要求;
9、专业人员缺失,日常的网络系统维护、操作系统维护、数据库维护以及安全设备维护依赖供应商;
10、管理不规范,日常巡检、分析汇总工作缺失,不能及时发现安全问题,造成后续产生更为严重的后果;
11、安全设备、备份容灾设备成为摆设,关键安全设备零配置或者直接bypass部署,备份容灾设备从未进行有效性验证,备份数据不完整或者不能够恢复;
12、由于业务系统特殊性,需要专用的医疗设备终端接入医院内网,但未将此类设备纳入管理或者加以控制;
13、网络设备、主机系统自身的安全策略、审核策略配置为空,而实际工作又存在大量的共享帐户,监管和追责能力不足;
14、专业分配不合理,机房基础建设多部门管理,如消防由保安部门管理,结果部署了淋水喷头和干粉灭火器,空调由采购部门管理,结果采购了家用空调;
15、综合运维管理控制中心缺失,仅凭人工查看,手工汇总,各方面的信息不能有效汇总和结合,进行综合分析,得出事态曲线和事前预警;
16、医院内网的独立性,部分安全系统,如杀毒、入侵防御、入侵检测、漏洞扫描等系统不能够及时进行版本的更新和病毒库、特征库、漏洞库的更新,导致不能对抗新病毒、新的入侵行为以及发现新的漏洞;
以上任何一条,对医院网络来说,都将带来严重的灾难。
安全建设如何入手?
着手做安全之前,我们首先要做的是划分安全域。
安全域是边界防护的基础,是否划分为同一安全域有两个要素:
- 相同安全级别,比如不同科室的护士站权限相似,可以为同一安全域;
- 可以利用统一的边界访问策略控制,比如医院的科室内使用的pc与收费终端,采用不同的访问策略。
十分典型的医院业务网安全域划分为:医疗区、收费区、办公区、测试设备区、服务器区、外网。
通常,我们见到的大多数医院则为:
内网和外网,这本身就是极大的风险!
医疗区:传统的医疗区包括了医护工作人员使用的PC终端,虽然很多医院将其设置为不联网,但是极容易成为勒索病毒,挖矿病毒的温床;
收费区: 该区域包括了医院收费窗口工作人员使用收费终端,在某些情况下需要外联VPN接入税控系统,但多数未做访问策略,极容易成为攻击者入侵的跳板;
办公区:包括了非医疗科室办公使用的终端设备,比如典型的后勤科,办公室、公卫科等,因未做限制,也容易成为攻击者入侵的跳板;
测试设备区: 有些医院并没有对进入医院的医疗设备进行检测,比如:相关厂商放一台终端设备在医院内,但通常可以直接接入医院内网,成为病毒源头;
服务器区:包括了HIS服务器、电子病历服务器、灾备、防火墙等等,这是典型的传统医院。通常,即便是买了防火墙也没有开启规则,导致被任意入侵,轻易被攻击者带走数据库,留下勒索病毒;
外网:基本上就是攻击者和一些业务使用者,在医疗互联网化大规模展开之前,这个区域以攻击者为主。
整体的简要划分,应该是这个样子:
下面我就展开来讲每个区域应当如何来设置边界规则。
先从服务器区入手,这是最关键的一环,典型的医院信息系统有:
那么,这里还应当引入灾备系统。按照等级保护的要求,灾备机房与业务机房相互独立。这个区域最主要的数据为:药品数据,患者数据,销售数据。通常这也是攻击者最关注的业务数据。
在服务器区中,相同业务的关键服务器至少要大于2台,通过防火墙设置边界隔离,只开放需要提供的业务端口,其他端口一律关闭,切记!!!不要问我为什么需要这么做,总之做就是了!服务器区业务如果需要使用外网访问,则同样需要在外网区搭建代理,并记录相关访问日志,以便审查。
医疗区:医疗区包括了医护人员日常工作使用的主机、网络打印机、检验报告查询机等设备构成,通常情况下,这些主机只能访问医院内部业务提供的服务,并不能访问互联网,但这些主机需要关闭开放端口(原则上不提供网络服务,网络打印机除外)。如果需要使用文件共享服务,则需要在服务器区搭建NAS系统,服务权限集中控制。另外,还需要主机与主机之间做相互隔离,使其仅能够访问需要的业务服务器,目的是杜绝该区域勒索病毒泛滥。
办公区:该区域由非医护人员的职能部门构成,这里终端通常可以访问外网。需要对其访问行为进行监控。因安全意识薄弱,通常会成为攻击者的入口,反弹各种奇怪的权限。同样需要使用外网区的代理服务来监控网络访问日志,出现事故时,便于排查及追责。
收费区:收费区是医院的重要的业务端口,与外网连接属无奈之举。通常连接外网的需求只是使用VPN与税控业务系统连接,实际情况则出其不意。工作人员基本没有安全意识,工作时间上QQ以及各种奇怪的网站屡见不鲜。可以透露的是,某个医院的勒索病毒事件,这个区域就是源头。攻击者社工该区域工作人员,并将勒索病毒注入该区域主机。
测试设备区:通常,相关医疗设备厂商会将一些设备放到医院中,并直接接入内网进行"试用"。但医院信息科作为职能部门,对这些设备并无管控权限(太尴尬了)。从职能上来讲,实属相关负责人失职。我们见到过某厂商的设备使用XP系统,并自带全套MS17010利用工具,一直向内网渗透的事。但是,该区域主机应做单独隔离,不直接与业务系统连接,降低安全风险。
至于外网区,则是一些行为监控。比如可以搭建代理服务,并对不同区域的外网访问需求做单独的规则。
如:服务器区的linux源,只能从指定的地址订阅;收费区需要连接税控的VPN,也需要在这里做策略限制等等。
某些医院还提供了公共Wifi,我们仍要将公共Wifi与医院自有业务隔离。否则就会成为攻击者的入口。
除医疗区和服务器区之外的安全域,主机之间可以相互信任,跨域则不信任。要严格限制访问,我们基本假设每个区域都可能被入侵。划分区域则是为了提高入侵者进一步入侵的成本,为入侵检测与应急响应争取时间。
再谈谈主机加固
在安全区域划分好了之后,我们再着手主机加固。与主机加固相关的文章一搜一箩筐,各家医院的实际情况又各不相同,这里只列举最重要的几项。
首先要做的第一件事就是补丁与更新
linux可以通过自建更新源来实现内网隔离业务的更新,自建更新源放置在服务器区,并由外网区的代理服务提供访问限制。
Windows可以通过自建WSUS服务,非常方便的订阅官方更新。
linux更新源与WSUS相关的设置文章,网上太多了,这里就不再粘贴了。
需要更新的主机在防火墙以白名单的形式来连入更新主机,获取更新。
可以这样讲,凡是中勒索病毒的医院,主机绝无补丁更新。
然后,我们在主机的操作系统层做加固设置
- linux主机必须需要禁止 root 登陆,检查业务是否由root运行,如果是,则要降权执行,禁用LKM以禁止 rootkit执行,开启 ASLR,并将其设置为2;
- Windows主机在设置好自动更新之后,还需要关闭自动共享(cmd-- net share 查看),即在注册表编辑器,打开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters 分支,并在该分支下增加两项,分别为AutoShareServer [DOWRD值] 设置为 0AutoShareWKs [DOWRD值] 设置为 0如果不使用 IPC$ 空共享,我们再打开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 分支,并设置restrictanonymous [DOWRD值] 设置为 1如果你的注册表中没有以上几项,则手动添加即可。设置好了之后,导出注册表,在其他主机上执行导入操作就可以了。
另外,实际场景中还存在一个天大的漏洞,就是空口令或无口令。这无疑是给攻击者提供了便利。我们曾为某医院做安全检查,发现设备口令均为有据可循的如
xxxx123,xxxx1234,x1x2x3等等,攻击者利用猜解出来的弱口令生成相关字典,利用该手段攻击,则口令验证形同虚设。
我个人的常用口令,通常不是用来记的(因为根本记不住),48位字母大小写+数字+符号。在使用复杂口令的同时,我们还可以增加其他的验证设备,以降低复杂口令造成的使用上的不便。如:服务器区可以通过堡垒机进行连接,工作区域可以采取如:指纹,UKEY等相关设备来进行身份验证。这里不建议使用刷脸,前阵子某个做刷脸识别的公司数据被盗的事件提醒我们:密码可以改,脸丢了可怎么办呀?
对于没有共享需求的Windows主机,务必要关闭 Server 服务。对使用没有影响,只会省不少心。
做完上述几项,我们还要做主机级安全资产管理,重点是关注进程、网络连接、账户等主机层面,或者说操作系统级别的信息。 有两个目的:
- 事中的入侵检测;
- 事后的审计与事故排查。
如果你有的是时间,乐意挑战开源未知的坑,并具有一定的开发能力,可以使用osquery。
https://github.com/facebook/osquery
这是fackbook放出的一款开源软件,基于SQL的操作系统检测和监控框架。它只是实现了本地数据搜集以及SQL查询,没有实现数据的同一上传和集中存储分析,所以需要基于它来开发一些功能。
如果你没有足够的开发能力,则还是建议购买相关的安全工具,可以联系下面的企业,不只是安全加固,还可以帮助您进行 计算机信息安全等级保护 方面的建设,从而将信息安全工作做到实处!
声明:本文来自河南CISP,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。