电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

安全软件开发入门

安全软件开发入门_第1页
1/14
安全软件开发入门_第2页
2/14
安全软件开发入门_第3页
3/14
软件安全问题的根源:内因:软件有错误 * 脆弱点 * 缺陷(设计层) * Bug(实现层) * 软件开发方法存在问题外因:软件的运行环境 * 网络对软件的进展产生了巨大的影响(负面居多)外部环境:黑客、恶意代码内部环境:误操作、报复、经济犯罪7+1 的软件安全问题领域:1.输入验证和表示法2.滥用 API3.安全特性4.时间和状态5.错误处理6.代码质量7.封装*.环境1.输入验证和表示法输入验证和表示问题由元字符、替换编码、数字表示法引起。假如选择使用输入验证,那么就要使用白列表、而不是黑列表。由于轻信输入而造成的大问题包括:缓冲区溢出、跨站脚本攻击、SQL 注入、缓存毒药和其它脚本小子们非常轻易吃到的“低挂的果实”(这里只安全性较低的软件设计)。2.滥用 APIAPI 规定了调用者和被调用程序之间的使用约定。滥用 API 的常见模式是由调用者错误地信任被调用方造成的。例如,调用者希望从被调用程序那里返回猎取用户信息,而被调用程序并没有任何的安全性保证其信息的可靠性。于是调用者就假定了调用程序返回数据的正确性和安全性。当然,也存在“坏人”有意破坏调用者-调用程序之间约定的行为。3.安全特性软件安全不是安全软件。世界上所有的加密算法都不能满足真正的安全需要。尽管使用 SSL 保护网络流量的手段,而认证、访问控制、机密性保障、加密算法、权限管理等都可能存在着安全缺陷。4.时间与状态分布式计算与时间和状态相关。为了使多个组件进行通信,状态必须在组件之间共享,而所有这些都需要花费时间。因此在时间和状态之间可能存在着巨大的、未发现的天然攻击资源。多数开发者人格化了他们的工作(将程序看作“它”的单体)。他们自以为单一、全能的控制线程能够孜孜不倦地日夜工作,以同一种方式支撑整个应用。而现代计算机在任务之间切换速度与日俱增,并且多核、多 CPU 或者分布式系统的应用使两件事情完全可以在同一时间发生。因此缺陷便出现在开发者所设想的程序执行模型和实际情况之间的差异中。这些缺陷与在线程、进程、时间和信息之间的无法预期的交互相关。而这些交互往往通过共享状态发生:信号、变量、文件系统、全局信息等。5.错误处理假如想破坏软件,那么就让它抛出一下垃圾数据,并看看你导致了哪些错误。在现代面对对系统中,异常的想法取代了被禁止的 goto 概念。与错误处理相关的安全缺陷在开发中很常见。在 API 被滥用的情况下,安全缺陷主要存在于两种方式:第一,开发者忘记处理错误...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

安全软件开发入门

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部