【资安周报第70期】OWASP释出新十大资安风险,API风险是新威胁

OWASP公布2017年最新的十大资安风险候选版,两个新增的风险都与使用API带来的风险相关。
iThome
不管是政府或民间企业,如果要验证各种网络服务(Web)的资安风险时,都会直接参考OWASP(The Open Web Application Security Project ,开放网络应用程序安全专案)归纳出的前十大网络资安风险(OWASP Top 10),在今年4月下旬,OWASP释出2017年OWASP前十大资安风险候选版(Release Candidate)并对外公开征询意见,预计在今年七月或八月,将会释出正式版。
面对2017年版的OWASP前十大资安风险,两个新上榜的资安风险都与API的安全性相关。资安业者戴夫寇尔首席执行官翁浩正表示,目前有许多企业开发时,经常使用各种开发框架(Framework),或者是让前后端分离、加速团队研发速度,甚至是许多手机App也都是呼叫各种API的情况下,都大量使用各种API,但API相关的安全措施却没有因为使用量大而作的更好、有更多关注,反而让这些没有受到完善保护的API成为骇客攻击的目标。
翁浩正指出,从台湾许多网站受骇的案例中也发现,API服务器一直是资安防护措施相当脆弱的环节,但是从OWASP释出最新版的前十大资安风险中可以判断,未来API面临的各种风险都是需要关注的新兴威胁。
OWASP强调,API安全性是未来应该关注的资安风险之一
OWASP是一个由全球超过4万名义工共同参与的非营利组织,主要是针对各种网页安全漏洞提出各种研究成果。最早的前十大网络资安风险是在2003年释出,并在2004年及2007年陆续做小幅度的修正改版。一直到2010年推出OWASP前十大资安风险的正式版本,才真正从风险的角度归纳最严重的网络漏洞,当时这种以风险为角度的漏洞归纳方式仍不普及,但这种以风险为出发点的作法,则一直延续到2013年版以及今年释出的2017年候选版。
各种不安全的软件潜藏于金融产业、医疗产业、国防产业、能源产业及各种关键基础设施中,而各种现代快速的软件开发方式,也再加上现在有许多新兴技术的采用,不论是云端运算、容器技术(Container)或者是API的介接使用等,或者是新兴的软件开发流程,像是DevOps或者是敏捷开发(Agile)等,甚至是大量使用第三方函式库或开发框架使用等,都使得开发者更难以快速且精准的发现相关的软件资安风险。
因此,在2017年新版OWASP释出的十大资安风险中,其中两项新增的风险,包括应用程序与API攻击防护不足(Insufficient Attack Protection)以及API未受防护(Underprotected APIs),则都特别强调除了网页应用程序之外,许多开发者经常使用的API的安全性,也都是未来需要持续关注的资安风险之一。
API使用频率高,但相对应的安全保护措施不足
翁浩正表示,从他观察到许多网站遭到骇客入侵时候,许多使用者所拥有的API服务器,其实相关的安全防护措施都是非常脆弱的,加上现在许多开发者为了加速开发速度,已经习惯采用各种开发框架,也有许多手机App的开发,后端就是呼叫许多已经开发的API使用,这也使得API使用的量比以往大很多。但问题在于,“API使用的量虽然增多,但相对应的资安防护措施却没有随之加强,也使得API经常成为骇客的攻击目标。”他说。
翁浩正进一步解释,以常见的手机App开发过程中,许多App开发业者会选择将App加壳以确保App的安全性,但有趣的是,App背后所使用的各种API却没有任何保护措施,这也使得手机App的加壳一点意义都没有,因此,他也建议,许多开发者都应该要明确知道自己的需求,有助于进一步防护。
至于骇客如何入侵API服务器,翁浩正归纳指出,通常骇客会攻击分析App或者是侧录相关的网络封包,了解API的呼叫进入点,接下来,骇客就可以透过各种攻击手法,例如SQL Injection或者是RCE(远端执行控制)等方式,直接取得API服务器甚至是数据库的权限,这些都是骇客经常用于攻击API服务器的方式。
也因此,翁浩正认为,对API服务器的保护其实和一般的网站保护措施都是一样的,重点在于相关的防护措施能否真正落实,例如,是否可以针对所有输入值做相关的保护、检查或过滤,甚至于是否可以确认呼叫API的使用者(或App)都是获得许可的合法使用者等,这些作法都可以进一步避免未知来源恶意呼叫API。
以目前来看,翁浩正指出,API安全大致可以分成两类,第一类是API滥用,第二类是API攻击。所谓的API滥用指的就是,使用者(或App)可以去呼叫API大量取得资料(例如客户的电子邮件);而API攻击就是塞入像是SQL Injection的攻击语法去攻击API服务器,借此取得相关的主机权限。
以OWASP新上榜的API攻击防护不足(Insufficient Attack Protection)或者是API未受防护(Underprotected APIs)的资安风险为例,其实讲的就是,当服务器遇到攻击行为的时候,能否侦测并且有效应对,例如,当发现外部有人正在扫描攻击时,使用者是否可以针对这些攻击“感知”并且做到“阻挡”。
翁浩正也坦言,过去在协助许多客户在进行网站安全防护时,就经常发现,骇客就是利用许多API服务器的漏洞入侵使用者的网站。但他认为,严格说来,API服务器也是网站安全重要的一环,资安风险和一般网站一样高,都不应该忽略。
OWASP前三名是老调重弹,多年资安老问题
从这次OWASP点出的十大资安风险可以看到,前三大资安风险和2013年版的前三名是一模一样,分别是:Injection(注入攻击)、无效身份认证和Session管理(Broken Authentication and Session Management )和跨站脚本攻击( Cross-Site Scripting,XSS)。
翁浩正表示,这是的前三项资安风险其实都是老调重弹,但他认为,像是SQL Injection的资安风险,当越来越多人直接采用框架开发时,就得进一步分析,为什么还有这么高的比例是SQL Injection呢?他进一步解释,除了框架本身有漏洞外,其他的问题还包括:有修补程式但使用者却没有立即更新;第三方套件或者是插件(Plugin)有漏洞,例如Wordpress的外挂;另外就是使用错误的写法拼凑SQL语法等,都可能造成SQL Injection的风险。
他也认同OWASP这次把2013年版中,很容易被误解的 Insecure Direct Object References 和 Missing Function Level Access Control,合并成为2017年版的无效的存取控管(Broken Access Control)。他表示,从OWASP的调整可以发现,未来的资安风险更强调攻击的应对和感知能力,已经不试过往单纯的漏洞修补而已,“毕竟,漏洞是找不完的,企业的重点永远在于如何快速感知、快速应变。”他说。
至于,强调设定必须注意安全的“不安全的组态设定”(Security Misconfiguration),和开发习惯不好所导致的“敏感资料外泄”(Sensitive Data Exposure ),在在都表示使用者针对主机端的操作系统控管和开发习惯不好,翁浩正解释,这也意味着,开发者重视应用程序开发的安全性,也必须进一步兼顾系统面的设定安全性,才能够更全面的降低资安风险。
另外,像是跨站请求伪造(Cross-Site Request Forgery,CSRF)也是老问题,翁浩正认为,这也表示使用者并没有采用一些更新技术去做攻击防御;使用已有漏洞的元件(Using Components with Known Vulnerabilities) 表示大家使用套件、框架的习惯不好,并没有做到即时更新。
翁浩正表示,从OWASP归纳的十大资安风险中可以发现,许多使用者对于安全的认知还是太表面,例如,知道跨站脚本攻击(XSS)会跳出警告讯息(Alert),但更多人反而是去过滤这些警告讯息,倒因为果,并没有去探究漏洞本质后再提出相对应的防御措施的作法是没有用的;当然,加上黑箱的渗透测试方式,也有助于提高安全性。当然,他也同意,导入安全的软件开发生命周期(SSDLC)有助于强化好的开发习惯,有些人也会在SSDLC纳入主机部署管理原则,关键在于,主机安全也是重要的安全议题,不可以忽略。
