应用软件安全基础.ppt

上传人:sh****n 文档编号:11490193 上传时间:2020-04-25 格式:PPT 页数:49 大小:2.94MB
返回 下载 相关 举报
应用软件安全基础.ppt_第1页
第1页 / 共49页
应用软件安全基础.ppt_第2页
第2页 / 共49页
应用软件安全基础.ppt_第3页
第3页 / 共49页
点击查看更多>>
资源描述
软件安全基础 DevelopSecuritySoftware 主讲人 王宏 主题 基本概念 软件安全的重要性 分析软件安全越来越严重的原因和根源 解决软件安全问题的措施和方法 基本概念 软件安全的定义 在软件受到恶意的攻击下 软件能够正常运行 功能 性能 软件安全课题 了解产生软件安全的风险并怎样去管理他们 Buildingsecuresoftware designingsoftwaretobesecure makesurethatsoftwareissecure educatingsoftwaredevelopers architectsandusersabouthowtobuildsecurityin 软件安全的重要性 信息安全的期望信息安全的现状软件安全漏洞的发展趋势传统解决信息安全的努力和投资方向软件安全在信息安全中的重要地位 信息安全的期望 在原理上 我们花更多钱去降低的安全事件和安全利用 以此来帮助我们 保护我们的业务不会被恶义的家伙破坏 限制责任和义务 满足法规和标准避免对公司品牌和声誉造成破坏 info secspending incidents exploits 然而在事实上 我们每年都花了数百万的资金在信息安全上 但是效果并不如意 我们遭遇的安全问题越来越多 breachesgrowdramatically seriouslyimpacting uptime regulatorycompliance liability brandandreputation 信息安全的现状 分析机构的最近统计 In2004 averagetimefromvulnerabilityannouncementto1stattack 5 8days 99days 2003 532 increaseinCERTincidentsreported 2000 2003 43 reportanincreaseine crimesandintrusionsversuspreviousyearOnaverage 48newvulnerabilitiesperweekweredisclosedin1H04ThesefourfactoidsarejustasamplingofresultsfoundbytheFBI CarnegieMellon sSEICERTCoordinationCenter anindustrybodythatfocusesonalertingcorporationsofsecurityvulnerabilities andSymantecinits5thInternetSecurityThreatReport Jan June2004 软件安全漏洞的发展趋势 CERT2006年的报告 我们的钱花在哪儿去了 为什么我们的安全工作毫无效果 Why 传统信息安全的方法和投资方向 Theexpertsaretellingus wehaveaSOFTWAREproblem Over70 ofsecurityvulnerabilitiesexistattheapplicationlayer notthenetworklayer It snotjustoperatingsystemsorwebbrowsers butalltypesofapplications particularlyapplicationsthatautomatekeybusinessprocesses GartnerGroup2004 软件安全在信息安全中的重要地位 结论 目前我们信息安全的主要问题是 应用软件安全问题 软件安全越来越严重的原因 为什么软件安全问题日益增长黑客攻击方式的进化传统的分层保护方案减轻系统的风险为什么传统的基于网络的方案不工作黑客可直接利用软件的弱点达到攻击系统演示如何通过攻击软件达到窃取商业信息和破坏应用系统 软件必须保护它们自己传统学校关于安全技术的教育软件补丁和软件安全攻击的关系软件安全的根源问题 为什么软件安全问题增长 Connectivity 互联性 Extensibility 延展性 Complexity 复杂性 为什么软件安全问题变得如此困难 ConnectivityTheInternetiseverywhereandmostsoftwareisonitComplexityNetworked distributed mobilecodeishardExtensibilitySystemsevolveinunexpectedwaysandarechangedonthefly Thissimpleinterface isthiscomplexprogram NET 1980 1985 1990 1995 2000 黑客攻击方式的进化 PasswordGuessing Self ReplicatingCode PasswordCracking ExploitingKnownVulnerabilities Burglaries HijackingSessions NetworkedManagementDiagnosis GUI AutomatedProbes Scans wwwAttacks DistributedAttackTools StagedAttack AttackSophistication IntruderKnowledge LOW HIGH 1980 1985 1990 1995 2000 DisablingAudits BackDoors Sweepers Sniffers PacketSpoofing DenialofService Stealth AdvancedScanningTechniques Cross SiteScripting 传统的 加层 保护方案 Hackers Worms Viruses MaliciousInsiders 软件的应用因为业务和功能的需要必须打破传统的保护层 直接与外面的系统交互 WebFacingApplications LegacyAppIntegration Connectivityw Partners Suppliers Outsourcing EmployeeSelf Service 为什么传统的基于网络方案不工作 KeyNetworkWebRestrictAccessFirewallEveryonehasaccessAuthenticateusersWindows UnixauthHTTPhasWEAKauthentication MonitorforattacksIDS IPSCriticaltrafficisinSSLTunnelTrackusers state UserofTCP IPconnectionsHTTPisstatelessBlockknownattacksIPS Self defendingnetworks Webattacksareextremelyhardtodistinguishfromnormalactivity Internet DMZ TrustedInside CorporateInside HTTP S IMAPFTPSSHTELNETPOP3 FirewallonlyallowsPORT80 or443SSL trafficfromtheInternettothewebserver Any WebServer 80 Firewallonlyallowsapplicationsonthewebservertotalktoapplicationserver Firewallonlyallowsapplicationservertotalktodatabaseserver IISSunOneApache ASP NETWebSphereJava SQLOracleDB2 软件易于遭受的安全弱点 SQLInjectionsBufferOverflowsInformationLeakageOtherCategories软件安全弱点的底线 Operations AvailabilityComplianceCredibility Reputation 黑客直接利用软件的弱点攻击我们的系统 演示如何通过攻击应用系统达到窃取商业信息和破坏应用系统 使用的攻击方式 SQLInjectionCross SiteScriptingPrivacyViolationForcefulBrowsing 演示攻击 软件必须自我保护 Outside SourceIPDestinationIPFragmenteddataHTTPrequests Inside UsersessionsSQLqueriesApplicationvariablesHistoricalpatterns Inside 软件必须自我保护 Outside 传统学校关于安全技术的教育的原则 用防火墙来定义系统的 边界 把软件与外界隔离 过分依赖加密技术SSLsecurelockonapaperbag 当产品要发布的时候才去审查产品在这个阶段所做的都是 Whydidwedothislikethis 我们将以补丁 patch 的方式修复它 我们已经了解到这个问题 不允许高级技术使用 如果它是新的 肯定有问题 让我们等 直到这种技术成熟了 保险了 我们才使用 想尽一切办法去否定使用新技术的想法 学校传统的安全技术教育 渗透测试和打补丁都不是最好的消除软件安全问题的方式 PenetrateandPatchisBad AverageCurveofNumberofIntrusionsforaSecurityBugOverTime asReportedbyArbaugh FithenandMcHugh 2000 传统的安全模式 保护 边界 网络安全安全负责的人是IT MIS CISSP等部门被动式新的安全模式 构建安全的系统设计安全的软件软件开发人员和设计人员对安全负责主动式 COTS Commercialofftheshelf 学校传统的安全技术教育 软件安全的根源问题 软件安全的问题是软件自身的缺陷问题 其主要在软件设计和软件实现的过程中产生 具体表现在软件设计的架构问题和实现上的错误 开发软件 造房子实现上的错误 软件代码错误 砖的问题架构问题 软件架构风险 墙问题在软件安全问题上 架构上的风险往往比实现上的分析更重要 更难理解 解决软件安全问题 软件安全涉及软件工程 编程语言 安全工程 根据GaryMcGraw的建议 解决软件安全主要要从如下几个方面下手 AppliedRiskManagementSoftwareSecurityBestpracticesKnowledge 什么是风险管理 Riskmanagement 预先去识别 分析和修复那些对商业有负面影响的软件缺陷 决定花多少成本去修复它 软件安全其实就是风险管理 AppliedRiskManagement 在软件设计的时候就风险模型分析或者安全设计分析 并在软件的全生命开发周期去跟踪和消除风险 分成如下六个阶段 UnderstandtheBusinessContext 了解业务需求 IdentifytheBusinessandTechnicalRisk 确认业务 技术风险 SynthesizeandRanktheRisks 综合分析风险并划分级别 DefinetheRiskMitigationStrategy 定制降低风险的策略 CarryOutFixesandValidate 实施修复并验证结果 MeasuringandReportingOnRisk 测量并报告风险 并利用风险管理框架 RMF 风险管理框架 软件安全最佳实践 Securityrequirements 安全需求 Abusecase 不好的测试用例 Architectureriskanalysis 软件架构风险分析 Risk basedsecuritytests 基于风险的安全测试 Codereview 代码审查 Penetrationtesting 渗透测试 Securityoperations 安全操作 安全需求 需求阶段识别和维护那些是安全的需求 那些是不安全的需求 从而从需求中除去威胁 一些安全的需求可以帮助清理需求分析 敏感数据需要加密用户识别机制调整方针 安全是一个突发的需求 黑客仅需一个漏洞 bufferoverflows 要消除 Makeitsecure 是模糊的 不好的测试用例 需求分析和用例 UseCases 阶段 用例来描述系统的行为 1 正式的 标准的测试用例 描述正确行为2 非正式的 非标准的测试用例 描述攻击时的行为作用 使设计人员了解更多信息文档化说明非法使用的情况 架构风险分析 在系统设计和构造系统框架时 设计者 构架师和分析人员都要非常清晰地文档化所有的假定的和已经识别的风险 在基于特定架构设计阶段和不同的类的设计阶段 风险分析非常必要 并且在整个开发生命周期中采用一致的风险管理进行软件的风险登记 修改 跟踪 设计人员那些不能做描绘出设计的模型UsehypothesistestingtocategorizerisksThreatmodeling AttackpatternsRankrisksTietobusinesscontextSuggestfixesRepeat 估计和理解风险需要准备的问题 1 每个攻击的可能性有多大 2 软件应用系统用什么来完成任务 3 是否灾难的恢复计划 4 系统瘫痪的影响有多大 5 可以接受的系统瘫痪时间是多少 架构风险分析 基于风险的安全测试 测试两种策略 1 测试安全功能以标准的功能测试2 基于风险的安全测试是以攻击模式换句话说 1 是确保好的事情发生 2 安全测试是确保坏的事情不发生在系统中具有潜在风险的产物是 1 需求2 设计3 架构 代码审查 在代码级关注代码实现上带来的软件安全漏洞 代码标准 CodeStandard 是特定语言相关的编程规则 它主要用于减少应用代码产生错误的可能性 它来源于一些专家的研究 他们分析代码在编写的时候 Bug是怎么产生的 然后用一些特定的代码实践去纠正这些bug 他们分析特定的代码实践和bug之间的关系 整理出一系列的规则 然后用这些规则去预防代码错误的发生 Fortify主要关注在代码安全方面的代码标准 渗透测试 系统在真实的环境下的时候 由结构风险分析去通知和驱动渗透测试 是指安全工程师尽可能完整地模拟黑客使用的漏洞发现技术和攻击手段 对目标网络 系统 主机 应用的安全性作深入的探测 发现系统最脆弱的环节的过程 渗透测试能够直观的让管理人员知道自己网络所面临的问题 软件要与环境相绑定才可以做好的渗透测试 结合网络的所以安全机制 防火墙应用系统的加密技术 安全操作指南 系统的应用阶段 软件安全受益于网络安全的操作 没有足够的日志信息去起诉已经知道的攻击 集成软件安全实践到软件开发生命周期 AboutblackHatandwhitehat Destructiveactivities asthoseaboutAttacks exploits breakingsoftware Constructiveactivities asthoseaboutdesigndefenseandfunctionality ExternalAnalysisWhyonlyseven 安全知识 软件安全的最大的挑战是我们缺乏在软件安全方面的知识和经验 因此我们需要 也非常有必要给我们的开发人员设计人员 分析人员更多的有关软件安全的知识的培训 以期他们具备丰富的软件安全的知识 安全知识 Attacksarecomplexandfollowpatterns MaketheClientInvisibleTargetProgramsThatWritetoPrivilegedOSResourcesUseaUser SuppliedConfigurationFiletoRunCommandsThatElevatePrivilegeMakeUseofConfigurationFileSearchPathsDirectAccesstoExecutableFilesEmbeddingScriptswithinScriptsLeverageExecutableCodeinNonexecutableFilesArgumentInjectionCommandDelimitersMultipleParsersandDoubleEscapesUser SuppliedVariablePassedtoFileSystemCallsPostfixNULLTerminatorPostfix NullTerminate andBackslashRelativePathTraversalClient ControlledEnvironmentVariablesUser SuppliedGlobalVariables DEBUG 1 PHPGlobals andSoForth SessionID ResourceID andBlindTrustAnalogIn BandSwitchingSignals aka BlueBoxing AttackPatternFragment ManipulatingTerminalDevicesSimpleScriptInjectionEmbeddingScriptinNonscriptElementsXSSinHTTPHeadersHTTPQueryStrings User ControlledFilenamePassingLocalFilenamestoFunctionsThatExpectaURLMeta charactersinE mailHeaderFileSystemFunctionInjection ContentBasedClient sideInjection BufferOverflowCauseWebServerMisclassificationAlternateEncodingtheLeadingGhostCharactersUsingSlashesinAlternateEncodingUsingEscapedSlashesinAlternateEncodingUnicodeEncodingUTF 8EncodingURLEncodingAlternativeIPAddressesSlashesandURLEncodingCombinedWebLogsOverflowBinaryResourceFileOverflowVariablesandTagsOverflowSymbolicLinksMIMEConversionHTTPCookiesFilterFailurethroughBufferOverflowBufferOverflowwithEnvironmentVariablesBufferOverflowinanAPICallBufferOverflowinLocalCommand LineUtilitiesParameterExpansionStringFormatOverflowinsyslog
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!