来自 防护 2021-10-12 02:17 的文章

云盾_高防男士手表推荐_免费测试

云盾_高防男士手表推荐_免费测试

Swift是苹果公司为iOS和OSX开发开发的一种新语言。在苹果开发者大会WWDC 2014上引入的语言最终被设计成最终取代Objective-C,并提供了几个重要的好处,其中之一是更大的抗错误代码能力。本研究,最初发表于Dobb医生s,cc流量攻击防御,从安全角度介绍了Swift与Objective-C的比较。 Checkmarx研究人员基于对苹果安全编码指南的比较,一次ddos防御,检查文档中所述的各种漏洞,并检查它们是否可以在Swift中得到利用。重要的是,只有在目标C中存在的漏洞才被探索出来,而不是在Swift中可能存在的新漏洞。在每种情况下,都使用了典型分类,包括类别、严重程度和开采可能性。 整数溢出严重性:高;利用可能性:中等 当用户提供的输入用于计算要分配的内存量时,可以利用整数溢出漏洞。当用户输入未验证时,恶意用户可能输入一个整数数据类型过大的数字,这可能会导致程序崩溃等问题。在二次补算法中,一个负数表示为反转二进制数的所有位并添加1。当最有效位中的数字为1时,表示负数。因此,在目标C中:  如果恶意用户在预期无符号数字时指定负数,则可能会将其解释为非常大的数字。然后,程序可能尝试分配一个大小为该大小的缓冲区,如果分配错误未得到正确处理,则会导致堆溢出。例如,在SafariWeb浏览器的早期版本中,将对象存储到一个分配为负值的JavaScript数组中可能会覆盖记忆。在Swift、integer溢出不能用于安全利用。与Objective-C的行为相反,溢出会在Swift中导致运行时错误,从而使攻击者无法利用此漏洞进行攻击。例如,在Swift中:  Swift显示了全面改进,并且不受整数溢出漏洞的影响,与旧的Objective-C不同。 缓冲区溢出严重性:非常高;开发可能性:高到极高 当应用程序试图通过缓冲区的末尾写入数据时,DDOS攻击防御本科生论文,会发生缓冲区溢出。这些溢出可能导致应用程序崩溃、破坏数据,并为进一步提升权限提供攻击向量。关于软件安全的书籍总是提到缓冲区溢出是漏洞的主要来源。美国计算机应急准备小组(US-CERT)公布的2012年攻击中,约26%涉及缓冲区溢出。在Objective-C中,缓冲区溢出可能是由于指针操作不正确、堆内存分配错误或C字符串操作不正确引起的。例如:  令人惊讶的是,同样的堆溢出可以在Swift中复制。虽然Swift没有指针,这是缓冲区溢出错误的原因,但它有调用C函数的能力。为了使这个C函数调用成为可能,Swift提供了一些类似指针的构造,例如不安全的指针。通过使用这些构造,最终可以复制完全相同的堆溢出:  堆栈溢出也可能通过这种C兼容性机制实现。这里我们演示通过指针操作更改本地常量的值:  总之,由于缺少指针,Swift中缓冲区溢出的风险低于Objective-C,尽管仍然可能错误地创建漏洞。幸运的是,Swift的术语"不安全指针"提醒人们注意到了这个特性的危险性。 格式化字符串攻击严重性:高;利用可能性:非常高 如果显示来自不可信源的输入,开发人员需要小心,不要使用接收到的字符串进行格式处理。例如,下面的代码显示了如何使用syslog标准C库函数向系统日志写入接收的HTTP请求。由于syslog函数处理格式字符串,因此它将处理输入包中包含的任何格式字符串:  许多格式字符串可能会导致应用程序出现问题。例如,假设攻击者在输入数据包中传递以下字符串:  假设格式字符串本身存储在堆栈中,则该字符串从堆栈中检索8个项目。这可能会有效地将堆栈指针移回格式字符串的开头。然后%n令牌将导致print函数获取迄今为止写入的字节数,并将该值写入存储在下一个参数中的内存地址,该参数恰好是格式字符串。因此,假设是32位结构,格式字符串本身中的AAAA将被视为指针值0x41414141,并且该地址处的值将被数字76覆盖。这种情况可以使攻击者将任意数据写入任何位置。为了防止格式字符串攻击,输入数据不应用作格式字符串。例如,以下代码易受攻击:  但是,如果写这样,它是安全的:  补救办法是使用字符串文本来格式化字符串,并将所有输入路由到替换参数。Swift有一个新的语言特性,叫做字符串插值。这是一种从常量、变量、文字和表达式的混合中构造新字符串值的方法,方法是将它们的值包含在字符串文本中。插入字符串文字的每个项目都用一对括号包装,前缀为反斜杠:  因为插值仅适用于字符串文字,cdn及cdn加速原理高防cdn,因此不受信任的输入不会被处理以进行插值。总之,Swift继承了Objective-C中的格式字符串漏洞,但是Swift引入了新的字符串插值功能,它可以避免格式字符串攻击。 其余的我们发现,Swift在Apple安全编码指南中描述的其余漏洞方面的行为与Objective-C没有任何不同。这些包括:无效输入种族条件进程间通信文件操作不安全访问控制问题安全存储和加密社会工程跨站点脚本(XSS)和注入攻击这是因为这些漏洞与语言无关,防火墙防御cc,而是源于Swift从旧目标C继承的库。结论考虑到上述参数,我们可以看到Swift中的安全标准只比Objective-C中的安全标准好一些。这是因为Swift类中存在许多漏洞,这些漏洞能够调用Objective-C接口。这意味着,即使是迅速的发展也需要牢记安全。遵循安全编码实践并使用安全解决方案对目标C和Swift都是强制性的。静态应用程序安全测试解决方案,如Checkmarx的源代码分析(SCA)或Sonar,是识别和消除本文中提到的漏洞的好方法。渗透测试也是测试软件鲁棒性的有效手段。本文中提到的漏洞评级取自OWASP门户。AppleBuffer OverflowFormat字符串AttackInteger OverflowiOS应用程序安全目标COS XStack overflowSwiftWWDC 2014生物最新帖子沙龙所罗门沙龙·所罗门的最新帖子物联网(物联网)–黑客我的军队-2016年3月14日静态代码分析工具–AppSec检查表-2016年3月3日您想知道的关于HTML5安全的所有信息-2016年2月15日