本文来自微信公众号“twt企业IT社区”,作者/Yilanzhu,某医院系统架构设计师、信息系统项目管理师,作为核心人员,全程参与医院系统设计、管理开发、项目协调。
一、API接口安全需求分析
(一)现状
在医院PC网络和移动互联网络上大量使用API接口,就会将医院内部业务系统和数据暴露在互联网上,建设互联网医院的过程中所提供的对外API接口,成为网络攻击者从外部攻击医院内部网络的通道,对内部系统和数据造成了很大的安全风险。
目前,医院一般通过Web网站、微信公众号、微信小程序、支付宝等方式开展互联网+医疗服务,通常在医院外网区部署Web应用服务器提供基本的信息发布、预约挂号等服务。为了与内网的业务应用系统交互,一般医院机构会部署代理服务器,将内网业务应用发布的API接口代理给外部用户或外部系统访问。
根据等保2.0基本要求和扩展要求,医院也会在外网区出口处部署下一代防火墙、WEB防火墙(WAF)等安全防护设备,在内外网之间部署网闸等安全隔离设备,在应用服务器上部署安全加固系统,构成从安全区域边界到安全计算环境的纵深防御体系。
(二)存在的问题
1、网络边界安全设备的不足
由于API接口调用与Web应用访问在方式上有很大差异,内外网应用系统的API接口连接会话对网络边界安全设备来说是一个封闭的管道。无法检查、无法防护、无法监测、无法审计,而目前的NGFW、WAF和隔离网闸等网络边界设备无法对API接口进行有效的管控和安全保护。
因为这些网络边界安全设备对API接口的管控能力不足,使得安全管理人员无法方便地获得对外发布的API接口清单,无法清楚地掌握所有对外开的接口,不能检查是否存在不必要的对外接口,也就无法对本院对外发布的API接口进行有效管控。
因为这些网络边界安全设备对API接口的安全防护能力不足,边界安全设备检查和校验API接口调用中的请求和数据,无法阻断包含攻击行为的API接口调用,使得内部API接口直面网络攻击。失去了网络边界安全设备的保护,只能依赖发布该接口的内部系统自身的安全性来抵御攻击。
2、API接口自身安全问题
(1)功能开发,一些软件开发人员为了减少工作量,未对API接口进行安全功能开发,导致API接口缺少认证、授权和访问控制等基本安全功能,只要知道API接口的访问点就可以调用该接口。
(2)访问控制能力不足。一些系统对API接口调用缺乏细度的访问控制功能,导致普通用户可以访问管理员功能,或一个用户可以访间其他用户的数据,造成越权访问。
(3)存在编码漏洞。由于安全知识不足,一般情况下,软件开发人员未进行安全编码,使得API接口程序存在编码缺陷,导致接口存在溢出、注入等各种安全漏洞,这些漏洞若被外部攻击者利用。内部系统就会遭到外部攻击。
(4)缺乏速率限制。很多API接口缺乏调用速率限制,若在短时间内大量外部用户使用接口提供服务,或外部攻击者发起大量的连接请求,会直接影响发布该接口的内部系统的正常运行,进而影响医院正常的业务开展。
(5)配置失误。由于内部API接口对外意外暴露,或内部API接口功能对外过度暴露,导致内部系统对外暴露了更多的攻击面,而很多意外暴露的测试接口和旧版本接口存在安全漏洞,会带来直接的安全问题。
(6)开发者后门。怀有恶意的软件开发人员留有后门,在API接口对外发布后,攻击者就可以利用后门,从外部进入内部系统。
3、对API接口安全的管控问题
由于现有网络边界安全设备对API接口的管控能力不足,安全管理人员只能从发布接口的应用系统中查看对外发布的API接口,当存在多个对外发布接口的应用系统时,无法对所有对外发布的接口进行集中管控,从而带来以下安全隐患。
(1)底数不清,安全管理人员无法方便地获得对外发布的API接口清单,无法清楚地掌握所有对外开放的接口,无法检查是否存在不必要的对外接口。
(2)风险不明。由于难以获得API接口清单,安全管理人员无法对所有接口存在的安全漏洞进行检查,致使API接口“带病”运行。
(3)接口意外暴露。一些API接口在升级后老版本接口未下线,一些开发测试接口在完成测试后忘记关闭,都会带来API接口对外服务意外暴露。
(4)功能过度暴露。当一个API接口中包含多个功能,而需对外开放的只是其中几个功能。这时,若无有效的边界安全控制措施,接口中所有功能都会对外暴露,造成对外API接口功能过度暴露。
(5)监测能力不足。安全管理人员不能对所有API接口进行集中监测、分析与审计。无法做到对攻击行为的早期发现和主动响应,导致一些安全事件是在系统被攻破并造成了损害后才发现的。
(6)外置能力不足。当发现API接口中存在安全漏洞时,只能通过修改相关API接口程序代码来修复漏洞,而当发现存在漏洞的接口受到攻击时,安全管理人员并无手段在API接口代码修改期间对存在漏洞的接口进行即时的安全保护。
二、合规性问题
在等保2.0定义的第三级安全要求,8.1.3.2访问控制(c)要求:对进出网络的数据流实现基于应用协议和应用内容的访问控制。
日前的GFW和隔离网闸只能实现基于应用端口访问控制,WAF只能实现Web应用的访问控制,均无法实现对API接口的基于应用协议和应用内容的访问制。故采用NGFW、WAF和隔离网闸的解决方案作为安全边界防护措施来保护AP落口的安全,无法达到等保2.0的防护要求,从而无法满足医院互联网业务应用系统的安全合规性要求。
三、解决API接口安全管控的思路
为了保障医院内部核心系统和内部敏感数据的安全,一种思路是对所有业务应用系统可能存在的安全进行修补,但这种解决方案将耗费大量的时间,另一种思路是依靠修复业务系统自身的“免疫力”,但又能对所有对外发布的API接口集中式边界防护和集约化安全管控。
将医院内外网边界隔离措施从隔离网闸升级到具有增强API安全防护和管控实践中,是现阶段相对可行的解决方法。
这个内外网数据安全交换系统,可定义为“API接口安全管控系统”,该系统保证医院内外网强隔离的前提下,对连通内外网的API接口实施有效的管控和防护,从而保障医院内部系统的正常运行,保护医院及患者个人敏感数据的安全,为医院跨网、跨机构的业务协同和数据共享交换提供“底线”安全保护和依法合规的保证。
架构图如图所示: