网络安全中API常见漏洞

专注IP定位
• 阅读 424

据Bleeping Computer 网站披露,近20 家汽车制造商和服务机构存API安全漏洞,这些漏洞允许黑客进行远程解锁、启动车辆、跟踪汽车行踪,窃取车主个人信息的恶意攻击活动。 据悉,出现API漏洞的品牌包括但不限于宝马、罗尔斯、奔驰、法拉利、保时捷、捷豹、路虎、福特、起亚、本田、英菲尼迪、日产、讴歌、现代、丰田和创世纪等其知名汽车品牌。此外,漏洞还影响汽车技术品牌 Spireon 和 Reviver 以及流媒体服务 SiriusXM。 这些API漏洞是被Sam Curry领导研究小组发现,更详细的漏洞报告可以参考他们发布的博客文章(Web Hackers vs. The Auto Industry: Critical Vulnerabilities in Ferrari, BMW, Rolls Royce, Porsche, and More)。 现如今API的应用随处可见,API之所以能在现代软件开发过程中被广泛使用,是因为随着物联网极其软件规模扩大,公开的API数量巨大,开发人员通过调用API快速构建项目,节省了大量的时间。 例如:GEF(graphical editing framework)作为一个常用的Eclipse的图形类库,就涉及6万多个API方法。但是随着API的大规模使用,API网络安全漏洞问题也在逐步攀升。 一、什么是API及API的广泛运用 API是软件库提供的一组可访问的接口,软件库通过API向外提供服务,开发人员通过使用API实现代码复用,提高生产效率。 网络安全中API常见漏洞 1968年,在NATO软件工程会议上,Mcllroy首次提出了软件复用的概念,软件开发人员开始有意识地使用标准化组件设计并构建程序。 1972年,Parnas的经典论文探索了使用模块化编程的标准。1992年,Plauger 提出了关于C语言15个接口的完整定义和详细说明。随着面向对象技术以及互联网技术的快速发展,为软件复用提供了更全面的技术支持,API技术快速发展,被视为解决软件危机、提高软件生产效率和质量的现实可行的途径。 API被广泛使用有以下原因: ①API提供了一种代码复用机制,开发人员直接复用已有的程序,节省了大量的时间。 ②API提供了一种信息隐藏的机制,用户不需要知道具体的实现细节,直接调用API完成相应的功能。 ③API提供了访问某些资源的接口,用户只有通过设备驱动、操作系统API等接口才能够访问到某类资源。不同的组织或者开发人员使用了不同的术语来表示API,并没有形成统一的标准: (1)类库,如C语言的标准库,Math库等 (2)框架,如.Net框架,Eclipse框架等 (3)工具包,如Google Web Toolkit,GIMP Toolkit等 (4) API,如Win32 APIs,Google Maps APIs等 二、网络安全中API常见的漏洞 API对应着的是操作系统的某些底层功能,一个API函数要满足上层应用程序的各种各样的要求,必然会带来某些特殊的制约因素,为系统带来潜在的风险,在特定条件下就成为系统的安全漏洞。具体来说有以下几种情况: 1.API本身存在的缺陷 ①缺少必要的约束检查。在执行某个操作之前,系统必须保证该操作能够分配到所需的资源如需要访问的地址、文件等等。 最常见的情况就是程序设计时忽略了完整性检查与边界检查,从而存在缓冲区溢出漏洞错误,不仅会导致系统崩溃,甚至可以使攻击者执行任意代码,获得系统的最高权限。 网络安全中API常见漏洞 例如“CodeRcdII”蠕虫病毒利用的“微软Index Servcr(.ida/idq)ISAPI扩展远程溢出漏洞(MS01-033)”,就是因为ISAPI在处理某些URI,请求时存在一个未经检查的缓冲区。当攻击者提供一个精心构造的特殊格式的URL时,引发缓冲区溢出,使得攻击者可以改变程序执行流程,执行任意代码远程获取“Local Systcm”权限。 ②缺少输入的有效性检查:对运行程序的任何直接俞入,如参数的类型和数量等等,都必须对其进行有效性检查。 常见的情况就是API在使用诸如syslem(). popen().xeclp(). cxeevp()等函数的过程中,只要求给出文件名,而不要求指定文件路径,使得入侵者可以欺骗系统去执行不同的文件。 例如“尼姆达”病毒传播时利用的Microsoft IIS 5.0系统文件列表权限提升漏洞”,就是利用这类缺陷,使得病毒能够在IIS进程空间中以父进程通常是系统权限)的权限被执行。 2.底层API的功能没有被公开或不被编程人所知 底层API的功能没有被公开或不被编程人所知的API接口在设计调试过程中往往会为测试时留下一些临时性代码,这些代码不会公开,但它们会产生什么影响,则很难预测。 另一种情况就是操作系统设计时故意留下了一些用户不可知的接口或“后门”,使设计者通过某种手段就可能拥有电脑的控制权。如有可能在特殊条件下通过这种手段远程控制电脑、窃取用户数据等等。更严重的是,一旦这些后门被攻击者预先知道,那么用户的电脑无疑是对攻击者敞开了大门,这种威胁尤其对于政府组织等重要部门是非常危险的。 3.API设计与实际使用的环境不同 API一般都会经过各种各样的测试,然后发布。然而,有时候测试通过的API,在实际使用的过程中会出现与调试时不一样的情况。当API没能正确处理具体运行环境时,这些事先没有考虑到的特殊情况往往就会导致 系统缺陷的产生。 例如在Solaris系统中,SSH 1版中客户端的安全RPC的特点是使用系统给定的密码来加密SSH的私钥文件,而不是要求用户提供一个独立的密码。 当用户使用这一特性时,SSH使用名叫key_encryptsession的API函数来根据用户的公钥和私钥计算出一个“加密密钥”,并用它来加密用户的私钥文件。 安全RPC的密钥由名叫keuserv的进程管理,该进程在用户通过安全RPC认证之后,将用户的公钥保存在内存中。如果用户没能通过认证,那么key_encryptsession并不能得到他的私钥。 但如果keyscrv启动时使用了参数“-d”,key_encryptsession函数将试图使用“无人私钥”来取代用户的私钥并计算"加密密钥”。这样该“加密密钥”就很可能被攻破,并用来恢复出SSH的私钥。而运行在非Solaris系统的其他版本的SSH客户端没有此类漏洞。 4.多个API联合使用 不同API采用不同的机制实现不同的系统功能,一个API单独使用时不会出现问题,然而多个API联合使用时便会因为各自的机制不同而产生安全问题。 例如: Lolus Noles中允许用户在数据库中建立文档和对象之间的连接。虽然这些对象看起来是文档的一部分,但实际上它们是作为单独的文件存储的。 数据库的ACL控制着对文档和对象的访问,Lotus Notes中使用R&A(Reader and Author)列表还可以对个人文档做进一步的访问限制。但是R&A列表仅仅修改对文档的访问限制,而不限制文档所连接的对象,因此一个没有文档访问权限的入侵者一旦知道文档的ID,就可以通过NotesAPI打开未授权访问文档中关联的对象。 当然对于这些情况也是常见的,但发现及解决的难度更大。因为这种情况发生后产生的异常情况的报警往往并不能真正地显示出错位置。而且一般的调试只能够针对某一系统程序,而这种出错一般都会涉及多个程序。如何发现及解决这种错误,还有待解决。 结论: API是应用程序的基础,自然也就成为网络安全中个最基础的部分,全面的了解系统API及API对网络系统安全的影响将有助于在实际应用中正确合理地使用API进而开发出更安全、有效的API应用程序。

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Linux应急响应(三):挖矿病毒
0x00前言随着虚拟货币的疯狂炒作,利用挖矿脚本来实现流量变现,使得挖矿病毒成为不法分子利用最为频繁的攻击方式。新的挖矿攻击展现出了类似蠕虫的行为,并结合了高级攻击技术,以增加对目标服务器感染的成功率,通过利用永恒之蓝(EternalBlue)、web攻击多种漏洞(如Tomcat弱口令攻击、WeblogicWLS组件漏洞、Jboss
Stella981 Stella981
3年前
Spring Boot XSS 攻击过滤插件使用
XSS是什么XSS(CrossSiteScripting)攻击全称跨站脚本攻击,为了不与CSS(CascadingStyleSheets)名词混淆,故将跨站脚本攻击简称为XSS,XSS是一种常见web安全漏洞,它允许恶意代码植入到提供给其它用户使用的页面中。xss攻击流程!(https:
Wesley13 Wesley13
3年前
JAVA 反序列化攻击
Java反序列化攻击漏洞由FoxGlove的最近的一篇博文爆出,该漏洞可以被黑客利用向服务器上传恶意脚本,或者远程执行命令。由于目前发现该漏洞存在于Apachecommonscollections,Apachexalan和Groovy包中,也就意味着使用了这些包的服务器(目前发现有WebSphere,WebLogic,
专注IP定位 专注IP定位
3年前
网络安全—如何预防常见的API漏洞
跟随着互联网的全面发展,API这一词频繁出现在大家的视线之中,什么是API呢?API全称ApplicationProgrammingInterface,翻译出来叫做“应用程序接口”,是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部
Stella981 Stella981
3年前
Django自身安全机制
XSS攻击什么是XSS攻击XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(https://www.oschina.net/action/GoT
新支点小玉 新支点小玉
11个月前
系统安全漏洞检测
企业在委托诸如软件测评中心这样的第三方检测机构进行系统安全漏洞检测工作之时起,我们的工作人员就会接着了解漏洞都有可能在哪里,有什么特性,以及如何修补它们,这都是漏洞检测的基本工作内容。系统安全漏洞检测:漏洞的三个特性1、漏洞的隐蔽性系统安全漏洞是指可以用来
新支点小玉 新支点小玉
11个月前
CNAS中兴新支点——源代码审计对企业有哪些好处
源代码扫描,对应用程序进行静态漏洞扫描,分析源代码中存在的安全风险,运行应用于模拟器中对应用进行实时漏洞攻击检测。你是否了解源代码扫描对企业的好处?一、源代码扫描,通常能够帮助企业解决这些问题:1、软件代码中安全漏洞和未声明功能的存在是信息安全事件频繁发生
京东云开发者 京东云开发者
5个月前
从CVE-2024-6387 OpenSSH Server 漏洞谈谈企业安全运营与应急响应
在当今数字化时代,网络安全已成为企业运营中不可忽视的重要一环。随着技术的不断发展,黑客攻击手段也在不断升级,其中0day漏洞的利用更是让企业防不胜防。0day漏洞是指在厂商尚未发布补丁修复的情况下,黑客已经发现并利用的安全漏洞。这类漏洞的危害极大,往往会给
h4ckb0ss h4ckb0ss
5个月前
文件上传(一):PortSwigger靶场通关笔记
文件上传漏洞通常指应用对用户上传的文件没有完善的检验,允许攻击者通过Web应用程序上传恶意文件到服务器,然后通过这些恶意文件来进行执行任意代码,在客户端影响用户等攻击