安全测试
- 74 次浏览
【DevSecOps】实施DevSecOps策略以促进开发和安全团队之间的合作
DevOps和DevSecOps是应用程序开发和安全团队在过去几年中非常熟悉的术语,特别是当因特网连接用户需要不断更新和改进应用程序时。
事实上,DevOps正在被更多组织使用,最近的一项调查发现,49%的公司已经采用或计划采用DevOps策略。即使在尚未实施DevOps的人中,另有33%的人正在考虑这一点。
并且有充分的理由;有用。
同样的调查发现,几乎所有实施DevSecOps(97%)的人都看到了一些改进,包括更好的协作和生产力,减少编码错误,以及内部团队成员更好的士气。
仔细研究DevOps和DevSecOps之间的区别 - 以及DevSecOps的优势和最佳实践 - 演示了这种理念如何帮助开发和安全团队更好地协同工作,同时为应用程序开发过程提供额外的好处。
什么名字? DevOps与DevSecOps
这个名字说明了一切。 DevOps是软件应用程序设计和开发的开发方和操作方(服务器,网络,存储等的安装和配置)的组合。随着在云中构建和管理更多应用程序,这种混搭自然而然地发展,这为敏捷应用程序提供了更高的更新频率。
但是高频更新需要两件事:1)您的开发团队有一些值得更新的东西; 2)您的IT运营团队能够在不破坏应用程序的情况下实施这些更新。这只有在传统上将开发和运营团队分离的墙壁崩溃,创造一个真正的协作环境时才能实现 - 这正是DevOps所完成的。它打破了存在的传统孤岛,并将用户置于应用程序开发过程的中心。
但后来提出了一个重要问题:“安全性怎么样?”在开发结束时解决应用程序安全性的传统模型没有与DevOps的高频更新模型相匹配。安全性也需要成为流程中不可或缺的一部分,确保快速发布不会危及应用程序的安全性。
DevOps和安全性的结合导致了DevSecOps。这种理念维护着DevOps的一切,并将安全团队添加到流程中。它承认整个软件开发生命周期中安全的重要性,并注意开发过程中每个步骤的安全性。
这确实有其挑战。从历史上看,安全团队被视为反对障碍,阻碍发展并使得在确定问题并需要修复问题时更难以达到最后期限。
很多时候,开发人员试图忽视安全对手,开拓进取。开发人员有时会保持改变代码的意图,以防止可能存在的漏洞。不幸的是,安全性不容忽视,或者您的应用程序容易受到攻击者的攻击。
必须在开发和安全之间创建协作和沟通的环境,并考虑两个目标:
- 快速部署。
- 识别并纠正问题。
DevSecOps的好处
- 改进协作与合作 - DevSecOps宣言的第一行完美地总结了这一优势:“通过安全作为代码,我们已经并将了解到,像我们这样的安全从业者有更好的方式来运营并以更少的摩擦贡献价值“DevSecOps理念汇集了开发,运营和安全的目标,因此这三个领域都朝着快速安全部署的目标迈进。当安全团队从一开始就参与其中时,就不再被视为阻挠者;他们在团队中,而不是有意见的观众。
- 更好的应用程序安全性 - 通过将安全性集成到整个开发过程中,可以更快地识别问题并立即解决。应用程序不易受到攻击,增加了应用程序的成功率并提高了声誉。
- 提高了上市速度 - 这适用于初始版本和所有应用程序更新。 DevSecOps的灵活性不仅可以让您的应用程序更快地进入市场,而且还可以实现快速更新。由统一的DevSecOps团队支持的应用程序可以快速协调新功能和特性,从而延长应用程序的使用寿命。长期不断改进和扩展的应用程序有更长的有效窗口来赚取收入,因此您的应用程序更具竞争力,并保持这种状态。
- 节省成本 - 当涉及的代码较少时,在开发过程早期修复问题的成本更低。等到你的整个源代码完成是一个耗费更多的努力,耗尽资源。部署后修复错误是一个更大的麻烦,因为您还冒着失去客户和玷污您声誉的风险。
成功实施DevSecOps的最佳实践
- 在他们的环境中工作 - 安全团队应该熟悉开发人员正在使用的工具。这些工具应该用于在发现安全问题后立即进行通信。当安全团队在开发人员首选环境中工作时,问题更有可能得到解决。它使开发人员可以轻松查看需要修复的内容并跟踪修复的进度。
- 创建文化 - DevSecOps是一种文化。企业领导者需要灌输流程,程序和思维方式的转变,即安全性与开发一样重要。双方都需要了解对方的重要性,因此安全性了解保持开发的优先顺序,并且开发人员明白发布不安全的应用程序更新不是一种选择。
其目的是建立一种文化,在这种文化中,开发人员不会因安全问题而放慢速度;理想情况下,这也是安全专家采取措施加速应用程序安全测试过程并提高其效率的环境。整个公司必须理解这个概念并接受它,并使开发和运营的双方有效地协同工作。
但创造这种文化在很大程度上依赖于管理者和管理层。他们需要了解需要根据安全性和开发来管理最后期限。销售和营销还需要适当地设定客户的期望,以确定应用程序或更新何时准备就绪。
- 不断教育和培训员工 - 如果开发人员和安全团队成员对另一方正在发生的事情有充分的了解,他们将会更好地相互理解。围绕安全性的定期教育和培训可以帮助开发人员理解其重要性,甚至可以帮助减少首先要解决的错误。安全团队的一些基础发展教育(特别是开发人员用于跟踪进度的工具)有助于安全团队了解开发过程。安全性还可以使用开发人员首选的工具来记录问题。这是一个双赢的局面。
- 自动化 - 高效的DevSecOps方法可在开发,操作和安全性之间自动执行尽可能多的流程。这有助于团队更快地构建,测试和发布应用程序和更新。自动化在很大程度上依赖于DevSecOps安全工具和应用程序安全测试工具的使用,这些工具将在下面讨论。
DevSecOps安全测试和工具
DevSecOps要求在整个开发过程中持续执行应用程序安全性测试,以便立即解决问题。 DevSecOps方法还要求使用多种类型的应用程序安全性测试工具,以便您的应用程序在整个开发过程中获得全面的安全性。
使用的工具类型包括:
- 静态应用程序安全性测试(SAST)工具
- 动态应用程序安全性测试(DAST)工具
- 交互式应用程序安全性测试(IAST)工具
- 威胁建模工具
有关这些工具的详细信息,请参阅我们最近的博客文章。
以下是有关如何在DevSecOps环境中提高应用程序安全性测试效率的一些提示:
- 创建应用程序安全性测试级别 - 每个版本都可以进行更一般的测试,并在设定的时间表上进行更深入的测试。这样可以始终保持流程中的安全性,同时保持更新快速移动。
- 使用聊天工具促进沟通 - 诸如Slack之类的即时消息传递工具可以帮助开发,运营和安全团队成员在工作完成时进行通信。可以交换想法,并且通信线路始终是开放的。请务必在正式的问题跟踪工具(如Jira)中记录任何重要信息或决策。
- 使用应用程序漏洞管理器 - 这是一个管理应用程序安全测试工具结果并简化应用程序安全测试过程的工具。应用程序漏洞管理器具有以下优点:
- 重复使用多个工具的结果,大大减少了调查结果的数量,使安全团队更易于管理,以确定哪些威胁是最重要的,应首先解决。
- 可以自动检查代码是否符合规定,例如HIPAA,DISA-STIG和PCI DSS。标记违反的代码行,使修复更容易。
- 报告选项可以轻松地对结果进行排序和组织。报告还可用于跟踪补救进度,因此您可以确保您的开发团队始终处于安全问题之上。
- 标记包含错误的代码行,可以从一个中央控制台轻松分配和跟踪问题。
- 与开发工作流程集成允许您的安全团队在开发人员习惯的环境中工作。例如,一个好的工具将与Eclipse和Jira集成,因此开发人员可以轻松跟踪问题,而无需离开他们喜欢的开发环境。
- 有些工具提供混合分析,它可以比较SAST工具和DAST工具的结果,以快速确定哪些漏洞实际可利用。这样可以自动完成冗长且昂贵的确认过程,并提供一系列高优先级漏洞。
DevSecOps是创建有竞争力的创收应用程序的理想方法。在DevSecOps文化中,所有方面都有效地协同工作,因此应用程序和未来的更新是安全的并且可以快速发布。创建一个有效的DevSecOps文化确实需要一些工作,但是如果有正确的态度和正确的工具,它就可以实现。
原文:https://codedx.com/how-devsecops-boosts-cooperation-on-your-team/
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 29 次浏览
【安全测试】 6 DevSecOps最佳实践:尽早并经常自动化
希望将安全性集成到其DevOps管道中的组织应采用将应用程序开发,IT操作和安全团队统一在一个共同的DevSecOps规则下的工具和实践。
目标是使安全性成为软件开发工作流程的一部分,而不是像在瀑布式开发模型中那样在循环的后期使用它。
这种转变正在颠覆传统观念,即安全控制应该如何,何时以及在何处集成到软件中,并且正在挑战曾经孤立的群体,以寻找合作的方式来提供快速但安全的代码发布。
“DevSecOps的受欢迎程度稳步上升,”WhiteHat Security首席安全研究官Ryan O'Leary表示。近年来在DevOps模型下结合开发和运营团队的公司通常以更快的速度成功发布代码。
但是,这种趋势加剧了将安全性集成到流程中的需求,因为您发布代码的速度越快,也可以释放更快的漏洞,他说。
以下是寻求实施DevSecOps的组织的关键最佳实践。
1.让自动化成为你的朋友
速度是DevOps的主要原则之一。在持续集成和持续部署(CI / CD)环境中,您可以多快地将代码输出门并进入生产阶段,几乎可以胜过其他任何事情。安全旅程的首席执行官,首席顾问兼联合创始人克里斯罗密欧说,为了使安全性成为这个工作流程的一部分,它需要实现自动化。
安全控制和测试需要在开发生命周期的早期和任何地方进行嵌入,并且需要以自动化方式进行,因为组织正在为单个应用程序每天将新版本的代码推向生产50次,他说。
“使用DevOps,你必须超级快速地移动。在这个过程中没有'手动'。如果你没有自动化,你将永远不会成功。”
-Chris Romeo
在具有高度成熟的DevOps实践的组织中,自动化已成为DevSecOps的关键特征。在今年早些时候对近2,300名IT专业人员进行的Sonatype调查中,大约40%的受访者在整个开发生命周期中都进行了自动安全测试。当自动安全测试在生产之前运行时,这不是瀑布式开发模型所发生的情况。
从源代码分析到集成和部署后监控,越来越多的具有一系列功能的工具可用于在整个软件开发生命周期中进行安全性分析和测试。这些包括Checkmarx,Splunk,Contrast Security,Sonatype,Tanium,InSpec,FireEye和Metasploit。
思想自动化
罗密欧表示,在进行安全测试自动化时,请谨慎行事。例如,如果您对夜间构建执行静态应用程序安全性测试(SAST),请确保仅扫描当天为代码所做的更改中感兴趣的内容。
尝试每天对整个应用程序源代码运行自动扫描可能会耗费大量时间并且会破坏您跟上日常更改的能力。
还要考虑将自动化动态应用程序安全性测试(DAST)嵌入到软件开发生命周期中。与静态分析(侧重于在代码本身中发现潜在的安全性问题)不同,DAST在应用程序运行时实时查找漏洞。
自动执行DAST扫描并针对最近或新的代码更改运行这些扫描,以捕获Open Web Application Security Project(OWASP)列表中列出的最常见缺陷(例如SQL注入错误)中列出的安全漏洞,您可能在静态分析期间错过了这些漏洞罗密欧说,你的应用程序代码。您需要以自动化方式,因为您只需要通过一组测试就不会知道您可能会错过什么。
ShiftLeft的联合创始人兼首席执行官Manish Gupta表示,在CI平台中添加自动安全分析可以限制软件开发生命周期早期的易受攻击代码的引入。
自动化可与轻量级嵌入式代理结合使用,以提供有关从自动安全分析中检测到的问题的相关运行时分析。 Gupta表示,采用这些方法可以使开发人员更容易确定需要修复的代码问题的优先级。
2.检查代码依赖性
尽管人们越来越担心使用第三方软件组件的风险,但企业在应用程序中使用的开源软件更多,而不是更少,根据Black Duck Software在2017年初进行的一项调查。
该公司对1,000多个商业应用程序进行的单独审计显示,其中96%包括开源组件。超过六分之一的应用程序包含这些组件中已知的安全漏洞,有些已经存在长达四年。尽管如此,只有27%的受访者表示他们拥有自动识别和补救跟踪功能,可以解决开源软件中的已知缺陷。
Gupta说,了解开源使用是更广泛采用DevSecOps实践的关键。 “云以前所未有的方式推动了创新,使公司能够更快地满足客户需求。这种创新步伐也促使开源软件越来越多地用于组装应用程序,而不是从头开始开发。”
Gupta说,开发人员通常没有时间审查其开源库中的代码或阅读文档,因此管理开源和第三方组件的自动化流程是DevSecOps的基本要求。您需要知道您的开源使用是否导致代码中的上下文和其他漏洞,以及这些漏洞可能对依赖代码产生的影响。
代码相关性检查是DevSecOps的基础,而诸如OWASP Dependency-Check之类的实用程序可以帮助确保您不使用软件中已知漏洞的代码,Security Journey的Romeo说。
OWASP实用程序通过扫描您的代码和相关的开源组件库来工作,以查看它们是否包含任何关键的OWASP缺陷。它适用于开源软件中所有已知漏洞的不断更新的数据库。
3.不要咬人比别人咬的更多
SAST工具允许开发人员在编写代码时扫描代码,以便他们可以收到有关可能导致安全问题的问题的即时反馈。这些工具可帮助开发人员识别和修复潜在的安全漏洞,这是正常工作流程的一部分,因此应该是DevSecOps实践的重要组成部分。
然而,引入这些工具时的关键是要小心思考。罗密欧说,通常情况下,当安全团队在CI / CD链中实施静态测试工具时,团队倾向于检查一大堆安全问题,最终只会给开发人员带来问题。
相反,最好一次打开一个或两个安全检查,让开发人员习惯于将安全规则合并到他们的工作流程中。
例如,在开发中引入SAST工具时,您可以首先启用捕获SQL注入错误的规则。一旦您的开发人员看到该工具如何帮助他们在编码期间捕获错误,他们就更有可能想要使用它。 “在开启越来越多的规则之前,你需要建立对工具的信任。”
构建DevSecOps功能时,将其分解为可管理的块。 “解决这个问题的最佳方法是查看DevSecOps版本中所有不同活动的整体集合,”罗密欧说。选择一个开始并证明它有效,然后再转向下一个。
他说,进入和破坏事物的安全专业人员只会放慢速度并与开发人员发生冲突。在开始时要小心思考,并在采取下一步措施之前取得一些成功。
“你在这里处理的是一种不同的文化。”
-Romeo
4.有些工具比其他工具更有用
将安全性插入敏捷DevOps所需的许多工具仍在出现,因此在购买时要记住一些关键注意事项。
例如,整合是至关重要的,WhiteHat Security的O'Leary说。 “安全产品需要能够集成到开发流程中,并使开发和安全团队能够一起工作,而不是仅仅把东西扔到篱笆上,”他说。
如果开发人员必须不遗余力地开始扫描,他们很可能会放弃扫描工具。 “安全产品需要让开发人员能够轻松快速启动扫描并获得结果,而无需离开现有工具集,”O'Leary说。
其他关键要求是速度和准确性。安全工具应该快速工作。但O'Leary告诫说,误报可能是DevOps环境中的绝对杀手。
需要开发人员或安全工程师抽出时间来验证扫描结果的工具几乎没有帮助。您的工具生成的结果需要快速,准确且立即可操作。
“误报是快速发展的死亡。”
-Ryan O'Leary
为瀑布开发模型设计的安全工具在DevSecOps世界中几乎没有用处。 ShiftLeft的Gupta表示,您需要的工具可以帮助您的开发人员在编写软件时识别漏洞并确定其优先级。代码漏洞的识别需要基于对软件本身的理解,而不是将其与签名进行匹配。
Gupta对于购买此类工具时组织需要考虑的内容提出了一些建议。您选择的任何工具都应该可以保护您免受已知漏洞的影响,但不会受到未知威胁和关键OWASP十大风险的影响。
这些工具还可以帮助您识别和解决您使用的开源软件组件中的风险,并以帮助您缩短平均解决时间的方式识别问题。
“广泛采用DevSecOps的挑战是提出不会对发布和部署周期造成拖累的工具和流程。”
-Manish Gupta
5.威胁建模很难,但无论如何都要做
SANS Institute建议您在转移到DevSecOps之前进行威胁建模和风险评估。威胁建模练习可以帮助您的安全组织更好地了解您的资产受到的威胁,资产的类型和敏感性,现有的保护这些资产的控制措施以及需要解决的控制措施中的任何差距。
此类评估有助于识别其他安全方法可能遗漏的应用程序架构和设计中的缺陷。
罗密欧说,在DevOps环境中进行威胁建模可能具有挑战性,因为它可以减缓CI / CD环境的速度。
“DevOps更多的是关于动态设计。实际上,有些DevOps人员根本不做任何设计并说代码就是他们的设计。这很危险。”
-Romeo
您无法以与DevOps几乎所有其他方面相同的方式自动化威胁建模过程。但罗密欧表示,威胁建模对于DevOps工作的整体成功仍然至关重要,因为它可以让您的开发人员从攻击者的角度考虑他们的软件。
6.培训开发人员进行安全编码
采用DevSecOps时,您将面临多重挑战。其中最大的问题就是从利益相关者那里获得支持。 O'Leary说,开发,安全和运营团队经常在自己的孤岛中运营,并有自己的议程和任务。 “向公司提出这些组织可以合并的案例有时候会有点困难。”
获得培训开发团队进行安全编码所需的投资和时间是另一项重大挑战。 “开发人员通常不知道他们是以不安全的方式编码。它仍然没有经常教授,并且不是开发团队的优先考虑,”O'Leary说。他说,必须在培训开发人员的安全方面进行投资。
“防止漏洞的最佳方法是永远不要编写代码。”
-O'Leary
许多DevSecOps实践和工具仍在不断涌现,目前对DevSecOps的定义仍未达成共识。但很明显,在持续集成和快速发布周期的世界中,您不能再忽视应用程序安全性。 Gupta说,安全是另一个共同的主题。
“它越来越成为一种共同的责任,建立在软件开发生命周期中的每个人都对其负责的理念之上。”
原文:https://techbeacon.com/security/6-devsecops-best-practices-automate-early-often
本文:
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 105 次浏览
【安全测试】Web应用程序的渗透测试和漏洞评估的重要性
Trustwave的2018年全球安全报告发现,所有Web应用程序都容易受到攻击。是的,你没有看错。所有应用程序至少有一个漏洞,每个应用程序发现的平均漏洞数量为11个。
该报告还发现2017年报告的漏洞数量急剧增加。这主要是由于使用Web应用程序的人数和市场上的Web应用程序数量急剧增加。
为了保护您的Web应用程序免受攻击者的侵害,您的Web应用程序测试必须全面,从多个角度分析您的应用程序。一个“完成”的方法是不够的。适当的方法包括渗透测试,漏洞评估和应用程序漏洞相关性。
Web应用程序渗透测试:它确实非常重要
渗透测试或笔测试是针对您的Web应用程序的模拟攻击。以前,渗透测试主要在网络上执行,而不是在这些网络上运行的应用程序。
笔测试的目的是识别可从外部攻击者利用的应用程序中的漏洞。可以针对应用程序中使用的各种类型的代码和系统(如API和服务器)执行渗透测试。
由于引入了安全软件开发生命周期(SSDL),在应用程序级别的渗透测试变得更加普遍。 SSDL在应用程序开发和维护的所有阶段都赋予安全性更大的重要性。
最佳实践要求Web应用程序应每季度进行一次渗透测试。但现实却截然不同。最近的一项研究发现,大多数组织都没有遵循这一建议,其中约三分之一的受访者每年仅对其应用程序进行一次笔试。
笔测试通常涉及五个阶段:
- 规划和数据收集 - 定义渗透测试的目标。将包括哪些系统?将使用哪些测试方法?例如,收集攻击目标上的数据,可能包括网络或域名。
- 扫描工具用于收集目标上的更多数据和信息。示例包括漏洞扫描程序和DAST工具,将在下一节中详细讨论。
- 获取访问权限 - Web应用程序攻击(如跨站点脚本或SQL注入)将启动以暴露漏洞。笔测试者试图通过窃取数据或增加权限来暴露这些漏洞。目标是了解可以造成多大的伤害。
- 维护访问权限 - 确定是否可以使用公开的漏洞在应用程序中实现持久存在。换句话说,攻击者可以深入了解Web应用程序,访问敏感数据并造成更多伤害吗?
- 覆盖追踪 - 攻击者注意保持未被发现。必须将对系统所做的更改返回到不会引发红旗的状态。
渗透测试会生成一份正式报告,详细说明被利用的漏洞,测试人员能够保持多久未被发现以及暴露的敏感数据。此信息用于修复漏洞并提高Web应用程序的安全性,以帮助防止将来发生真正的攻击。
渗透测试方法包括:
- 外部测试 - 仅针对互联网上可见的系统和资产(例如Web应用程序本身)。测试的目标是获得对应用程序及其数据的访问权限。
- 内部测试 - 笔式测试仪可以访问防火墙后面的应用程序。潜在的情况可能是流氓员工或员工的失窃凭证。
- 盲测 - 笔测试器给出了公司的名称,但没有别的。这可以实时模拟实际的应用程序攻击。
- 双盲测试 - 这类似于盲测,但安全团队并未了解模拟。他们没有时间为袭击做准备。
- 有针对性的测试 - 渗透测试人员和安全团队协同工作,相互通知攻击应用程序和防御攻击所采取的步骤。这可以作为一种训练练习,在攻击期间提供实时反馈。
渗透测试在很大程度上是一个手动过程。人类测试人员需要应用更高级别的技能来正确识别Web应用程序中的所有可利用漏洞。但是有一些工具可以帮助进行渗透测试:
- OWASP ZAP-OWASP Zed攻击代理(ZAP)是一种免费的安全工具,由全球数百名志愿者维护。它是笔测试人员帮助识别Web应用程序中的安全漏洞的绝佳资源。
- Burp Suite-Burp Suite是一个用于Web应用程序安全测试的图形工具。您可以购买免费版和升级版。免费版本非常有限,但高级版本可以对Web应用程序执行自动攻击。该工具可以检测SQL注入,跨站点脚本和其他漏洞。反馈驱动的扫描逻辑模仿人类测试人员。
- Code Pulse-Code Pulse是一种开源工具,可在笔测试期间自动检测覆盖信息。在执行代码时,应用程序攻击面的可视化表示会实时更新,通知笔测试人员应用程序的哪些部分已经过测试。
漏洞测试:您真的需要做多少?
漏洞评估可识别Web应用程序中的安全漏洞。这是通过应用程序漏洞测试完成的。
市场上有许多工具可以帮助进行威胁和漏洞评估。确保您的应用程序不会让您的用户(和您的公司)向攻击者开放的唯一方法是使用工具组合。
为什么?因为不同的工具识别不同的问题工具组合提供全面的Web应用程序安全性。应该使用的工具包括:
- 静态应用程序安全性测试(SAST)工具 - 这些工具检查安全漏洞的源代码,字节代码或应用程序二进制文件。示例包括Fortify SCA,CodeSonar和Veracode。他们寻找开发人员可能不知道的已知漏洞模式。它们具有可扩展性,可通过扫描代码而无需手动操作来自动执行部分测试过程。但是,SAST工具往往会识别大量的误报,需要对结果进行分析和优先排序,这需要时间和资源。
- 动态应用程序安全性测试(DAST)工具-DAST工具在运行时从外部接近应用程序,模拟真正的攻击者。示例包括Burp Suite,HP WebInspect和Appscan。由于DAST工具需要正在运行的应用程序,因此在开发达到某个阶段之前无法使用它们,并且它们无法在早期发现问题。
- 交互式应用程序安全性测试(IAST)工具 - 这些工具结合了SAST和DAST工具,使用检测技术在应用程序运行时使用信息来查找漏洞。一些为IAST测试提供集成解决方案的公司是Acunetix,HPE和IBM。 IAST工具识别较少的误报并提供更全面的代码覆盖。但这些工具背后的技术可能会对应用程序性能产生负面影响。由于这些性能问题,测试体验可能与实际用户体验不同。
- 软件组合分析(SCA)工具 - 第三方组件(如开源库和框架)通常用于Web应用程序开发,以加快开发过程。这是一种很好的方法,但是这些第三方组件需要保持最新并扫描漏洞。假设其他人已采取必要措施确保给定的库或框架是安全的,则会使您的应用程序面临安全风险。这相当于邀请陌生人进入你的家。 SCA工具分析应用程序中使用的源代码,库和框架,以在部署应用程序之前识别安全漏洞或许可问题。这里唯一需要注意的是,您需要准确的第三方组件库存,以确保检查所有外部部件。例子包括Black Duck和Sonatype。
这些类型的工具中的每一种都有优点和缺点,使混合方法最佳。这为您的应用程序提供了理想的覆盖范围,并降低了面临威胁和漏洞的风险。有关这些工具的更多详细信息,请访问我们的博客
应用程序漏洞关联:它是什么以及它如何帮助您?
所有这些工具和测试对于开发安全应用程序都很重要。但是,这些工具的管理和它们产生的报告量(以及每个报告中的调查结果量)可能是一个挑战。
应用程序漏洞关联(AVC)工具是Gartner确定的新策略,用于优先处理代码中的缺陷并简化应用程序安全性和漏洞管理流程。基本上,AVC工具解决了管理多个工具及其报告的难题。
好处包括:
- 重复数据删除 - 自动删除大量报告的重复结果。您将收到一份包含一组结果的报告。该工具适用于多种测试技术,包括SAST,DAST,IAST,SCA,威胁建模和人工审核。也可以手动输入渗透测试结果,或者可以通过插件自动输入笔测试工具的结果。
- SAST和DAST结果的相关性 - SAST工具可识别潜在的漏洞,而DAST工具可识别哪些漏洞实际可利用。通过称为“混合分析”的过程将所有这些结果组合在一起,可以让您了解哪些威胁是真实的并且具有最高优先级。
- 补救管理-AVC工具可识别存在漏洞的特定代码行以及相邻的漏洞和漏洞。通过集中控制台,您可以分配,跟踪和监控修复进度。
- 工作流集成 - 与Eclipse等流行环境集成,使开发人员可以轻松解决问题。嵌入持续集成环境的工具和Jira问题跟踪工具提供了额外的简化。与Jenkins构建服务器集成允许您在Jenkins中启动分析。
- 报告 - 各种报告可以轻松地对测试结果进行排序并有效跟踪补救措施。例如,报告修复问题所需的时间可帮助您确保快速进行补救。
- 合规性检查 - 根据HIPAA,DISA-STIG和PCI-DSS等法规自动检查您的代码库。标记违规行代码,并识别特定违规行为。建议遵守法规。
显然,您希望使用提供强大功能和可靠技术的工具。 Gartner将Code Dx确定为AVC类别的领导者,同时也是Application Security Testing Orchestration类别的领导者。
处理渗透测试和漏洞测试结果的想法可以使您的开发和安全团队在山上奔跑。但是,如果您想要创建一个不会让您的用户和您的声誉暴露的安全应用程序,则必须进行全面测试。应用程序漏洞关联工具简化了笔和漏洞测试的管理,使您的团队无法隐藏。全面和高效与AVC齐头并进。
本文:
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 142 次浏览
【安全测试】如何以正确的方式测试加密的应用程序
你如何测试数亿行代码或数百亿个晶体管?这很难。但是当你实施加密时,它会更难。
今天的加密技术并不容易理解。它经常对数千位值进行复杂的计算。并且它经常使用随机数进行某些计算。
例如,当您生成加密密钥时,您需要生成大量随机(实际上是伪随机)位。如果某个键看起来不像随机位,则攻击者可能更容易猜测它。这意味着您的加密技术不能提供尽可能多的安全性,这很糟糕。
这就是为什么它如此复杂,以及一些简化测试加密软件测试的技巧。
已知与随机值
如果您正在测试实现加密的硬件,则使用随机值会使测试更加困难。测试复杂的东西很难,如果你不能用很多已知的输入输出对进行测试,那就更难了。如果您的输入在每次进行测试时都会发生变化,就像您使用随机数一样,测试可能几乎是不可能的。
要解决此问题,大多数(可能是所有)实现加密的硬件都有办法绕过其随机数生成器的输出并在测试中使用已知值。
这种未记录的特征在硬件中令人惊讶地普遍。从1996年5月到1998年8月,Dobb博士的杂志甚至还有“未记载的角落”,这是一个描述其中一些内容的专栏。
最近的例子包括rosenbridge后门,其中微处理器的未记录功能可以让任何应用程序获得操作系统的root访问权限。另一个备受瞩目的问题是使用英特尔的内部信号架构可视化(VISA)来监控其他芯片正在做什么,实质上是为黑客提供了一个逻辑分析仪,可用于探测其他芯片的运行。
这些未记录的功能(可称为“后门”)可能存在于实现使用随机数的加密技术的所有硬件中。这基本上就是全部。
可以使硬件在其中断开或禁用绕过随机数使用的方式,但聪明的黑客可能能够找到重新启用后门的方法。或者在发货之前它可能不会被禁用。
这是一个可能无法避免的权衡:如果你想测试你的硬件,你可能还需要在其中引入一个后门,这意味着它可能不像你想要的那样安全。 。
情况正在恶化
假设你可以穿越时间,也许正如H.G. Wells在The Time Machine中描述的那样。如果我们可以跳到22世纪并与那些使用当时流行的技术的工程师交谈,那么他们很可能会熟悉我们今天如何测试硬件和软件。
不幸的是,这可能是因为我们测试技术的能力跟不上我们构建技术的能力,我们的许多失败可能最终会成为22世纪教科书中的案例研究。
回到网络时代,我工作的公司每三个开发工程师就有一个测试工程师。今天,这个比例更像是每个开发工程师的一名测试工程师。在过去的20年里,测试肯定变得更加困难和昂贵,并且它看起来不会很快变得容易。
在过去的几十年中,软件中使用的代码行数急剧增加。当我离开研究生院并获得我在科技行业的第一份工作时,有传说中的应用程序的故事使用了100万行代码。
这些可能是杜撰的。我从来没有见过任何与这些怪物一起工作过的人。可能情况是,100万行代码与标记为“rex quondam rexque futurus”(“曾经和未来的国王”)的墓碑一样神秘,并且只是为了吓唬新工程师。
百万俱乐部
今天,拥有一百万行代码的应用程序真的不那么令人兴奋。大约12年前,当我们在我曾经工作过的初创公司进行第一次安全源代码审查时,我有点惊讶地发现我们用来解析XML的第三方库之一的源代码包含超过100万行。
很容易找到目前使用数亿行代码的情况。在2016年国际消费电子展上,福特汽车公司指出,目前已有超过1.5亿行代码进入其F-150皮卡。高端汽车可能拥有更多,几乎肯定超过2亿线。如今拥有数百万行代码并不是什么大不了的事。
硬件变得越来越复杂。在互联网泡沫破灭之前,我记得英特尔如何能够制造包含310万个晶体管的奔腾处理器。
今天,制造了包括数百亿个晶体管的集成电路。如果你想到这一点,那就太惊人了:数十亿的组件,所有这些组件的工作方式大致与他们应该的一样。这是科幻小说作家亚瑟·C·克拉克告诉我们的那种足够先进的技术,与魔术无法区分。
为什么测试软件更容易
在某些方面,软件比硬件更容易测试。在调试模式下编译代码使测试更容易,一旦完成调试,在发布模式下编译相对容易。
但要确保正确实施加密仍然非常困难。加密算法的中间结果和输出通常看起来像数百甚至数千个随机位,这使得调试实现它们的代码变得棘手。
你永远不会得到像“This String”这样的东西作为加密算法的中间结果。相反,你会得到更像:
"0x7649abac8119b246cee98e9b12e9197d8964e0b149c10b7b682e6e39aaeb731c."
啊。
简化测试的方法
幸运的是,这个问题有一个简单的解决方案:不要编写自己的加密软件!如果你现在参加大学课程大致是Crypto 101,你将学习加密算法如何工作以及为什么它们是安全的。然后你会被告知永远不要自己尝试这个,因为做错事的可能性太大了。
相反,请使用已经验证过标准的现有加密库,例如美国政府的 FIPS 140-2, "Security Requirements for Cryptographic Modules."。这不一定很难或很昂贵。例如,OpenSSL的一个版本已经获得了FIPS 140-2验证。
不幸的是,很多人没有使用Crypto 101类,最终试图实现他们自己的加密算法版本。这很难做对。尝试这样做真的不是一个好主意。
因此,要注意实现加密的硬件,因为可测试性可能会在其中加入后门。从来没有,永远不会实现加密,因为有一个可以使用的已知良好的解决方案。
原文:https://techbeacon.com/security/how-test-encrypted-apps-right-way
本文:
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 32 次浏览
【安全测试】应用程序漏洞测试软件 - 帮助保护软件安全的工具
您已经接受了应用程序漏洞测试的重要性,以确保软件的安全性。非常好。在应用程序漏洞测试软件方面有很多选择,因此知道哪些工具是正确的工具可能会让人感到困惑。在应用程序漏洞测试方面,不同的工具可以识别不同的问题,因此您需要考虑使用多个问题。这使得对不同类型的工具及其重要性的一般理解非常重要。
您可以使用许多工具,包括开源和商业产品。开源工具是免费的,任何人都可以下载。这使它们成为一种方便且低成本的测试方法 - 并且是一种开始使用的好方法。另一方面,商业工具是许可的,使用受到限制,当然,它们必须付费。但是,使用商业工具获得的部分功能是技术支持和更高的安全性。商业工具通常也更先进,具有更多功能。开源和商业应用程序漏洞测试工具都有其价值和地位,但统计数据表明,许多组织没有充分利用这些工具。
SANS最近的一项调查发现,10%的企业根本没有测试他们的安全应用程序,另外24%的企业每年测试一次或更少。此外,只有12%的人会定期进行测试。
应用程序漏洞测试中的这些漏洞使组织容易受到可轻松避免的安全威胁。企业需要在应用程序漏洞测试中更加全面。虽然开源和商业测试工具都可以提供帮助,但工具可以进一步细分为特定类型,帮助组织了解每种工具带来的内容。然后可以制定和部署适当的应用程序漏洞测试策略。
静态应用程序安全性测试(SAST)工具
我们将讨论的第一类应用程序漏洞测试工具是静态应用程序安全测试(SAST)工具。 SAST工具也称为源代码分析工具或白盒测试。这些工具检查安全漏洞的源代码,字节代码或应用程序二进制文件。
由于多种原因,SAST工具对于应用程序漏洞测试很有价值。具体而言,它们具有以下优点:
- 他们发现理论问题,寻找开发人员可能不知道的已知漏洞模式
- 您可以自动执行测试过程,因为您无需人工干预即可扫描代码
- 它们是可扩展的
- 它们非常适合可以自信地自动发现的问题,例如SQL注入缺陷。这里需要注意的是,虽然有一些工具和技术可以帮助防止SQL注入攻击,但它们并不总是正确实现,如果有的话,这使得它成为数据库驱动应用程序的主要攻击媒介之一。
- 开发人员很容易消化输出,因为这些工具可以识别存在问题的代码中的确切位置
但是,要记住SAST工具存在一些缺点。要注意的主要问题是:
- SAST倾向于识别大量的误报
- 结果需要进行分类,需要时间来分析并优先考虑结果
- 许多漏洞(例如身份验证问题)都不容易自动发现。很难证明发现的“问题”是否是可验证的安全威胁
- 许多SAST工具在分析无法编译的代码方面做得很差,因此您需要完整且可构建的源代码包
- SAST可能非常耗时,并且可能对敏捷开发及其相关的快速开发周期产生负面影响
当您探索SAST工具的市场时,您将遇到的一些大牌是Fortify SCA(静态代码分析器),CodeSonar,Veracode和Checkmarx。这些都是市场上声誉良好的名称,在您根据测试需求评估这些工具时,应考虑上面讨论的利弊。
动态应用程序安全性测试(DAST)工具
下一个主要类型的应用程序漏洞测试工具是动态应用程序安全测试(DAST)工具。 DAST工具也称为漏洞扫描工具或黑盒测试,从外部接近应用程序,如“机器人黑客”,搜索漏洞。 DAST工具对于应用程序漏洞测试很重要,因为它们:
- 在应用程序运行时检查它,尝试以意想不到的方式对其进行操作以暴露潜在的漏洞
- 模仿攻击者对应用程序知之甚少,模拟外部黑客
- 提供自动化测试流程,因为它们独立于人工协助运行
- 提供可扩展性
DAST工具的缺点包括:
- 它们需要运行的应用程序,因此在应用程序达到完成级别之前,您无法使用它们
- 在开发周期的后期使用它们使得它们不太适合在开发过程早期识别和纠正问题
- 识别威胁可能需要更长时间,因为您可能需要操纵工具以使其尽可能多地覆盖应用程序的代码
- 它们可能无法充分模仿具有应用程序内部知识的人员的攻击,而高级黑客可能能够实现
DAST领域的大牌包括商业和开源工具,如BurpSuite,HP WebInspect,OWASP ZAP和Appscan。与SAST工具一样,在选择哪种DAST工具最适合您的应用时,必须考虑优缺点。
交互式应用程序安全性测试(IAST)工具
随着我们在复杂性方面的提升,我们开始使用交互式应用程序安全测试(IAST)工具,它结合了SAST和DAST。 IAST工具 - 也称为Glass Box测试 - 使用工具技术在应用程序运行时利用其中的信息来查找漏洞。
IAST工具为应用程序漏洞测试带来了诸多好处,使测试人员能够:
- 更准确地查找漏洞,从而减少误报
- 提供更全面的应用程序代码覆盖
- 根据需要进行规模测试
- 为开发人员提供即时反馈,以便及时解决问题
- 将测试轻松纳入开发过程
IAST工具的缺点是:
- 仪器可能会对应用程序性能产生负面影响,因此您的测试体验可能与实际用户体验不同
- 它们代表了相对较新的技术,因此可能出现其他潜在的问题或缺点
一些供应商为这两种方法提供了工具,但它们通常作为两个单独的工具提供。现在有一些提供集成解决方案的厂商,如Acunetix,HPE和IBM,使它们成为应用安全测试的优秀工具。
威胁建模工具
威胁建模工具是应用程序漏洞测试的另一种资源。威胁建模是识别,评估和确定优先级的潜在漏洞的过程。可以采用许多方法,这些方法将在下面详述,并且从潜在攻击者的角度进行测试。威胁建模通过识别应该受到最多关注的威胁和漏洞,并找到最容易受到攻击的区域来节省时间和资源。
一些最常见的威胁建模工具包括:
- STRIDE - 根据攻击者可能具有的各种动机对已知威胁进行分类,例如篡改数据或身份欺骗。
- DREAD - 比较与每个已知威胁相关的风险等级并确定其优先级。
- Trike - 使用基于风险的方法的框架。
- AS / NZS 4360 - 澳大利亚/新西兰标准,是第一个(也是唯一一个)风险记录和管理标准。
- 常见漏洞评分系统(CVSS) - 评估威胁和漏洞严重程度的行业标准。
- OCTAVE - 一种专注于组织风险而非技术风险的模型。
- ThreatModel SDK - 一个Java库,使供应商能够分析来自最常见的威胁建模工具的报告。
所采用的特定威胁建模方法并不像确保在测试过程中选择和仔细执行至少一种方法那样重要。
手动测试
如果不提及手动测试,就不会讨论应用程序漏洞测试:良好的,老式的代码审查。优秀的开发团队应该将代码审查作为标准开发流程来确保质量代码,但应该将安全思维纳入其中。在您的代码流程中添加安全检查(可能涉及对问题有特定了解的其他人员)可能会使您的敏捷开发工作流程保持运转,同时仍在寻找安全威胁和潜在漏洞。
手动代码审查通常从安全测试人员开始接收开发人员对应用程序的简报开始。然后根据时间,资源和预算制定计划。目标应该是根据他们的专业领域使用测试人员,让他们测试他们最了解的领域。必须审查所有发现的误报,并与开发团队分享真实的积极因素。
手动测试可以减少误报,并可以识别自动化工具遗漏的问题。然而,考虑到所需的(人类)资源,这种测试也难以扩展。
混合方法是最好的
不同应用程序漏洞测试工具的概述可以快速演示每种类型的工具都有优点和缺点。这就是为什么只使用一种工具或一种工具进行测试会使您的应用程序面临更大的风险。利用来自多个类别的工具的混合方法可提供最佳覆盖率并降低应用程序的风险。随着您的前进并为应用程序安全性测试创建正式的策略,OWASP Benchmark是评估各种类型的测试工具的宝贵资源。这将帮助您为您的应用和业务选择最好的。
原文:https://codedx.com/application-vulnerability-testing-software-tools-help-secure-software-2/
本文:http://pub.intelligentx.net/node/479
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 46 次浏览
【安全测试】数据,数据随处可见:如何有效管理SAST和DAST结果的泛滥
应用程序安全性测试是开发过程中不可或缺的一部分。适当的测试方法使用多种工具(和工具类型),并将应用程序安全性测试结合到应用程序开发生命周期的设计,开发和生产阶段。但是你可能会发现自己被所有这些测试工具的结果所淹没所淹没。
您如何对各种来源的结果和报告进行排序?哪些应用程序漏洞是合法且可利用的?哪些需要您立即关注?而且 - 最重要的问题之一 - 在进入下一个开发阶段之前,如何让开发人员关注这些威胁并修复它们?
在这篇文章中,我们简要介绍了应用程序安全性对敏捷软件开发的重要性以及为什么需要使用多个测试工具。我们还承认使用多种工具带来的挑战,并向您展示如何克服这些问题以快速有效地修复代码。
DevOps与DevSecOps
大多数应用程序开发人员都熟悉敏捷过程。重点是创建一个协作的工作环境,逐步完成工作。
这通常通过集成开发环境(IDE)完成,该环境可能包含源代码编辑器,编译器和解释器,以及调试器和构建自动化工具。
敏捷开发依赖于持续集成(CI)和持续开发(CD) - 这些方法要求开发人员经常将代码检入共享存储库。每次签入都由自动构建验证,可以及早发现错误并立即修复。
DevOps和DevSecOps已经成为两种密切相关的方式来遵循敏捷流程。 DevOps打破了开发和IT运营团队之间存在的传统孤岛。重点是用户体验。创建协作和沟通的环境有两个目标:
- 快速部署。
- 识别并纠正问题。
DevSecOps通过在整个软件开发生命周期中确认安全性的重要性,更进一步。从DevOps工作流程的最初阶段开始,注意开发过程的每个步骤的安全性。
应用程序安全性测试在整个开发过程中持续执行,并且问题在找到时得到修复。 DevSecOps方法与Agile软件开发一致,并提供以下几个好处:
- 一旦找到问题就更容易解决问题,而且花费更少。
- 每次迭代都为商业部署做好了准备。
- 软件可以更快地更新和部署,使您能够比竞争对手更快地满足客户和市场需求 - 使用安全的产品。
组织能够更好地满足用户需求,并以更及时有效的方式交付高价值产品。联邦机构是拥有这种方法的领先组织之一。
DevSecOps的优势 - 包括降低成本,提高客户价值和增加代码覆盖率 - 在DevSecCon的白皮书中有更详细的讨论。
但DevSecOps方法需要使用多种测试工具和工具类型,以便在整个过程中为应用程序安全提供应有的关注。让我们看看两种最常见的类型 - SAST和DAST。
SAST和DAST:为什么你需要两者
两种最常见的应用程序漏洞测试工具类型是静态应用程序安全测试(SAST)和动态应用程序安全测试(DAST)工具。
SAST工具从内部检查应用程序,查看源代码,字节代码或应用程序二进制文件以查找安全漏洞。另一方面,DAST工具从外部接近应用程序,模仿“机器人黑客”来发现漏洞。
有关SAST和DAST工具的优缺点,请查看我们最近关于应用程序漏洞测试软件的博客文章。
安全的软件开发生命周期需要全面的应用程序安全测试因此,您需要同时使用SAST和DAST工具 - 以及每种类型的多个工具。
市场上的每种工具都有其优点和缺点。您需要使用多种工具来确保从各个角度创建安全的应用程序。
有许多开源工具可以用很少甚至免费的方式来全面覆盖您的应用程序。但是多个工具可能难以管理。
数据过载以及如何有效地管理它
使用许多工具和不同类型的工具是在应用程序开发中产生某些挑战的必要之处。
每个工具都会生成一个充满潜在漏洞的报告(格式不同)。结果需要交叉引用以删除重复项,您需要确定哪些潜在威胁是真正可利用的漏洞。此外,您需要知道哪些是最大的威胁,以便您可以先解决它们。
然后是让开发人员关注这些问题的问题。开发人员不希望超出他们首选的工具包或停止修复潜在问题。只要代码有效(无论潜在威胁如何),他们只想继续构建。您如何跟踪是否有人正在处理某个问题以及是否/何时修复了问题?
有一种方法可以管理所有这些工具及其脱节结果,因此您可以简化应用程序安全测试过程 - 应用程序漏洞管理器。
Code Dx Enterprise就是这种工具的一个例子。它不是另一种测试工具 - 但它释放了您正在使用的测试工具的真正力量,并提供了从结果中获得真正价值的方法。您可以获得更好的漏洞覆盖率和更少的误报。
无成本和低成本开源工具的价值得以实现,因为这些工具的结果可以快速相关。这消除了手动清除这些结果的耗时,繁琐且容易出错的过程。
全面的应用程序安全测试过程变得可以实现。以下是应用程序漏洞管理器中要查找的一些功能:
- 重复数据删除 - 自动删除来自无数报告的重复结果。您将收到一份包含一组结果的报告。该工具适用于多种测试技术,包括SAST,DAST,IAST,第三方组件分析,威胁建模和人工审核。
- 补救管理 - 识别存在漏洞的特定代码行,并识别相邻的漏洞和漏洞。通过集中控制台,您可以分配,跟踪和监控修复进度。
- 工作流程集成 - 让开发人员关注安全威胁的好方法是什么,而不是让它成为开发环境的一部分?与Eclipse等流行环境集成使开发人员可以轻松解决问题。嵌入到持续集成环境中并与Jira问题跟踪工具集成的工具提供了额外的简化。与Jenkins构建服务器集成允许您在Jenkins中启动分析。
- 报告 - 各种报告可以轻松地对测试结果进行排序并跟踪补救措施的进展情况。报告修复问题所需的时间使您能够确保快速进行补救。
- 应用程序漏洞关联(AVC) - SAST工具可识别潜在漏洞,而DAST工具可识别哪些漏洞实际可利用。结合所有这些结果,您可以了解哪些威胁是真实的并且具有最高优先级
- 合规性检查 - 根据HIPAA,DISA-STIG和PCI DSS等法规自动检查您的代码库。标记违规行代码,并识别特定违规行为。建议遵守法规。
应用程序漏洞管理器不再使用各种工具和技术进行安全测试。您可以获得全面的安全保障,但不必浪费时间和资源对结果进行分类,识别真实威胁,并跟踪它们是否已修复。
安全性受到DevSecOps的关注。你保持敏捷,而不是淹没在结果的海洋中。
原文:https://codedx.com/how-to-manage-sast-and-dast-results-code-dx-blog/
本文:
讨论:加入知识星球或者小红圈【首席架构师圈】
- 40 次浏览
【安全运营】IAST,RASP和现在的HAST如何增强应用程序安全性
信息安全漏洞继续成为头条新闻。 2017年和2018年初,Equifax甚至IRS等几个主要组织成为利用安全漏洞的黑客的牺牲品。
攻击速度很快,从发布常见漏洞和暴露(CVE)的一天开始。有时,零天。你如何保护自己?
应用程序安全性测试至关重要,必须正确完成。这意味着遵守推荐的应用程序安全准则,并使用最新的工具和技术。
到目前为止,您很可能熟悉应用程序安全性的两种最突出的技术方法,其中包括引人注目的首字母缩略词:SAST,用于静态应用程序安全测试,检查应用程序的已知编码缺陷实例的源代码;动态应用程序安全测试(DAST)会在您的应用程序运行时探索它,以寻找黑客可以从外部找到的相同缺陷。
在这里,我们仔细研究三种新兴的应用程序安全工具,通过在代码中引入工具来进一步实现这一点 - 交互式应用程序安全测试(IAST),运行时应用程序自我保护(RASP)以及Code Dx产品独有的新技术我们称之为混合应用安全测试(HAST)。
每个人都使用类似的技术在您的应用程序中插入特殊代码 - 我们称之为“检测”您的代码,宇航员的工具监控方式以监控他们的健康状况 - 为应用程序安全测试提供非常不同的好处。您需要了解每个之间的差异,以便您可以正确利用它们并创建一个合理的应用程序安全策略。
互动应用安全测试(IAST)的兴起
IAST结合了检查代码的SAST理念和正在运行的应用程序的DAST视图,但它们在应用程序运行时同时执行。虽然SAST工具谈到从“内部”测试应用程序和从“外部”测试DAST工具,但IAST工具谈到“从内到外”进行测试。
IAST工具将应用程序代码(称为“代理”)安装到应用程序中,以便在应用程序运行时监视应用程序,扫描安全漏洞。代理收集应用程序中的数据,可以识别SAST和DAST工具遗漏的安全漏洞。
IAST工具的好处包括:
- 报告的误报较少
- 提供更全面的应用程序代码覆盖,因为它在应用程序中工作。它涵盖:
- 整个应用程序源代码
- 运行时控件
- 配置信息
- 第三方库和框架
- HTTP请求
- 数据库查询
- 后端连接信息
- 很容易融入开发过程
- 提供可扩展性
- 为开发人员提供即时反馈,以便立即解决问题
IAST工具的缺点是:
- 它们会对应用程序性能产生负面影响:因为它们会为代码添加工具,所以它们会改变代码的执行方式。
- 它是一种较新的技术,因此可能仍会出现其他问题或缺点。
然后是运行时应用程序自我保护(RASP)
最近的一项发展是RASP - 运行时应用程序自我保护。据预测,在2018年至2022年期间,RASP的全球市场将以近50%的复合年增长率(CAGR)增长。
顾名思义,RASP技术在应用程序运行时为其提供安全保护 - 与IAST提供的检测相反。 RASP通过在应用程序中安装代理来利用与IAST相同的技术;不同之处在于代理的使用方式。 IAST工具会查找安全漏洞,而RASP会监视应用程序是否存在攻击,并在感知到攻击发生时保护应用程序免受攻击。
RASP不会影响应用程序的设计。它为部署中的应用程序添加了一层保护,检查正在执行的每条指令,并确定任何给定的指令是否实际上是攻击。
它可用于简单诊断或自我保护:
- 诊断使用意味着发现攻击时会发出警报或警报。
- 自我保护意味着它实际上会停止导致攻击的执行。
RASP的优点是:
- 在应用程序运行时为您的应用程序提供额外的保护层。它被许多人视为比旧的Web应用程序防火墙(WAF)更好的保护层,因为RASP存在于应用程序内而不是外部。
- 适合更快的开发周期。
- 允许您巡视意外输入。
- 如果发生攻击,提供有关攻击的更详细信息 - 这意味着您可以更快地解决问题。
这种新兴技术的缺点是:
- RASP工具位于应用程序服务器上,从而降低了应用程序性能。
- 由于法规或内部策略阻止安装其他软件或锁定的基础架构(如平台即服务(PaaS)),并不总是可以在生产中部署RASP代理。
- 使用RASP会导致错误的安全感。您可能会想,“我们不需要担心应用程序安全性,因为我们的运行时应用程序自我保护会让我们保持安全。”事实并非如此。如果RASP确实发现问题,则仍需要修复,这可能意味着在您处理应用程序时使应用程序脱机。
RASP不会取代应用程序安全性测试。它是一种更新的技术,可以增强标准的应用程序安全测试过程,但不能防范所有漏洞。
现在,混合应用安全测试(HAST)
IAST和RASP是很有前景的技术,但正如所指出的那样,它们都会对它们在为用户运行时如何影响应用程序产生问题。为了在开发过程中获得运行时知识的安全性好处,但不会影响用户,我们设计了一种混合方法,在动态测试期间使用代理技术获取运行时代码执行洞察,并结合这些见解通过静态测试,可以更快,更轻松地找到并修复攻击者最容易访问的漏洞。
我们已经将这种混合应用程序安全测试(HAST)称为整体应用程序安全测试过程的一部分。 HAST合并并关联SAST工具和DAST工具的结果,将您的工作重点放在最重要的漏洞上,并为应用程序安全测试带来巨大好处。
SAST工具可识别潜在的漏洞。结果需要与DAST工具发现的问题交叉引用,以确定潜在的漏洞是否是可利用的威胁。
HAST实现了这一点,结合并关联了两种工具的结果。您可以确定哪些漏洞真正可以被利用,并且应该位于补救列表的顶部。
通过在应用程序中安装代理,HAST再次使用与IAST和RASP相同的技术。在进行DAST渗透测试时,代理在正在运行的应用程序中工作,并确定哪些DAST发现与哪些SAST结果相关联。
最新版本的Code Dx Enterprise现在提供HAST。有关这项新功能的更多信息即将推出。
这些新的应用程序安全测试工具可以更好地进行应用程序安但它们并不能取代SAST和DAST工具。
正确的应用程序安全测试策略使用SAST,DAST,IAST,RASP和HAST来识别漏洞,确定漏洞的优先级,并提供额外的防御层保护。
但您仍需要修复找到的问题,这需要修复过程。使用正确的工具可以为您提供全面的覆盖,并通过自动关联结果来简化整个过程,以帮助您识别需要立即关注的结果。
随着新工具和技术的出现,您需要自学,了解如何确保应用程序的安全。
原文:https://codedx.com/how-iast-rasp-and-hast-enhance-appsec-code-dx-blog/
本文:
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 211 次浏览
【安全运营】完美结合:漏洞评估和渗透测试(VAPT)
百分之百 - 所有由Positive Technologies测试的应用程序都存在某种漏洞。您可能会想,“是的,但其中有多少是真正的,关键的漏洞?”嗯,94%的Web应用程序测试包含高严重性的软件漏洞。这些相同应用程序中有85%包含至少一个已确认的可利用漏洞。
这些并不令人鼓舞 - 实际上,它们非常令人恐惧。这些应用程序对我们有多少数据?但这些数字也表明应用程序漏洞中的一个重要区别 - 潜在威胁与可利用威胁。
你如何轻松区分这两者?答案很简单 - 漏洞评估和渗透测试(VAPT)。
简介:VAPT的背景故事
漏洞评估和渗透测试(VAPT)起初可能听起来像AppSec场景的新术语,但实际上,它只是两个常见(非常重要)应用程序安全活动的组合。 VAPT通过渗透测试将漏洞评估测试结合在一起。
漏洞评估是使用各种工具和技术检查您的应用程序,以发现潜在的漏洞。这是通过应用程序安全测试工具(在下面的资源部分详细介绍)完成的。
威胁作为流程的一部分进行识别,分类和优先排序。不同的工具可以更好地识别不同类型的漏洞,因此重要的是不要仅依靠一种工具进行漏洞评估。
漏洞评估工具非常适合查明可能使您的应用程序受到攻击的威胁。他们确定了理论上的漏洞。
但是,您如何知道这些威胁是否真的可以利用?在现实世界中,攻击者是否可以通过这些漏洞访问您的应用程序?这是渗透测试变得非常宝贵的地方。
渗透测试(通常称为笔测试)是主动攻击您的应用程序以确定是否可以实际利用潜在漏洞的过程。通俗地说,它是针对您的应用程序的模拟攻击(通常手动完成,但我们建议使用自动选项),可以针对应用程序中的代码和系统执行,例如API和服务器。
渗透测试有几种方法可以采用:
- 外部 - 攻击主要针对外部用户和攻击者可见的系统和资产。
- 内部 - 可以从防火墙后面攻击应用程序。
- 盲目 - 这模拟了实时攻击,测试人员只使用公司名称进行武装。
- 双盲 - 类似盲目测试,但安全团队没有被告知模拟,测试他们响应实时攻击的能力。
- 针对性 - 笔测试的培训方法,其中笔测试者和安全团队通知对方,以了解攻击者如何进入应用程序以及安全可以采取哪些步骤来进行强有力的防御。
VAPT强调了重要的一点,即没有一种类型的测试可以提供全面的应用程序安全性。漏洞评估和渗透测试都是必要的。实际上,在一种类型的测试中减少或减少打开会使应用程序出现漏洞。
适当的VAPT方法有几个步骤,例如:
- 规划范围 - 确定将在测试中包含哪些系统和代码以及将使用哪些测试方法。
- 数据收集 - 收集有关攻击目标的数据。
- 漏洞检测 - 识别应用程序的潜在漏洞和威胁。使用漏洞扫描程序等工具发现目标上的其他信息。
- 获取和维护访问权限 - 笔测试人员试图访问应用程序,看看他们是否可以进入。一旦进入系统,测试人员就会确定他们可以被忽视多长时间以及他们可以造成多大的伤害。
- 覆盖轨道 - 对应用程序所做的任何更改都是隐藏的,因此攻击正在进行中并不明显。
- 报告 - 必须分析和记录VAPT测试的结果。这包括需要解决的威胁的建议和优先级。
完美结合:VAPT的好处
- 全面的应用程序安全性 - 您可以放心,您的应用程序将在内部和外部彻底检查不同类型的漏洞。
- 信誉管理 - 受损的应用程序对业务不利。恢复通常是漫长而缓慢的道路。 VAPT降低了攻击发生的可能性。
- 数据安全性 - VAPT可创建更安全的应用程序,提高数据安全性并保护您的知识产权。
- 改进的合规性 - VAPT测试可确定您的应用是否符合某些行业标准和法规,例如PCI-DSS和ISO / IEC 27002.如果您想避免昂贵的罚款,这是必要的。
- 应用程序安全性内置于流程中 - 使用VAPT在开发期间测试应用程序使安全性成为流程的一部分。这是构建安全应用程序的有效且负责任的方式。替代方案(威胁被利用后的昂贵修复)浪费资金和资源。
资源:VAPT测试工具
漏洞评估工具
- 静态应用程序安全性测试(SAST)工具 - 自动检查潜在漏洞的源代码,字节代码和应用程序二进制文件。例子包括Veracode和CodeSonar。
- 动态应用程序安全性测试(DAST)工具 - 模拟真实的攻击者,从外部接近应用程序以确定哪些威胁可被利用。正在运行的应用程序需要使用这些工具。
- 交互式应用程序安全性测试(IAST)工具 - 通过在应用程序运行时使用应用程序内部的信息来识别漏洞,从而结合SAST和DAST工具的优势。需要注意的是,这些工具会对应用程序性能产生负面影响。提供IAST工具的供应商包括Acunetix和Contrast Security。
- 软件组合分析(SCA)工具 - 分析应用程序中使用的第三方源代码,库和框架,以识别安全漏洞和许可问题。当然,这意味着您需要拥有所使用的所有第三方组件的更新和准确的列表。例子包括Black Duck和Sonatype。
渗透测试工具
- Burp Suite - 用于Web应用程序安全性测试的图形工具,可以检测SQL注入,跨站点脚本和其他漏洞。有免费版本和更强大的付费选项。
- OWASP Zed攻击代理(ZAP) - 一款免费工具,可帮助笔测试人员识别漏洞。
- 代码脉冲 - 一种开源工具,可在笔测试期间自动检测覆盖范围。在执行代码时,应用程序攻击面的可视化表示会实时更新,通知笔测试人员应用程序的哪些部分已经过测试。
- 攻击面检测器 - 一种开源工具,可自动识别所有未链接或隐藏的端点,其参数和数据类型。然后,可以使用此数据预先播种OWASP ZAP或Burp Suite(均在上面列出)。 Attack Surface Detector既是标准命令行界面,也是ZAP和Burp Suite的插件。
VAPT工具
考虑使用上述所有工具来管理漏洞评估和渗透测试可能看起来势不可挡。幸运的是,还有另一种工具可以帮助理解无数的结果。
应用程序漏洞关联(AVC)工具简化了管理多个工具结果的过程。市场上更强大的AVC工具甚至通过关联静态和动态测试结果提供支持VAPT的功能。
好处包括:
- 混合分析 - 结合SAST工具和DAST工具的结果,确定哪些潜在漏洞实际可利用。这增加了VAPT测试的全面性,并提供了潜在漏洞可利用的证据。这些是您首先需要修复的漏洞。
- 升级 - 用户可以升级发现并记录漏洞的利用方式。
- 重复数据删除 - SAST,DAST,IAST,SCA和笔测试工具的结果与一个报告相关联。删除重复项,使结果更容易消化。手动测试的结果也可以输入到系统中,因此这些结果包含在重复数据删除中。
- 补救管理 - 标记包含漏洞的特定代码行,使补救更容易。可以通过中央控制台为团队成员分配任务,并使用跟踪选项确保及时纠正问题。
- 合规性检查 - 根据HIPAA,DISA-STIG和PCI-DSS等法规自动检查您的代码库。标记违规行代码,并识别特定违规行为。
- 工作流集成 - 许多AVC工具支持集成到开发人员环境中,例如Eclipse和Jenkins。开发人员会收到当前系统中的漏洞警报,而不是引入另一个管理工具。
通过VAPT进行漏洞评估和渗透测试的结合是强大而合乎逻辑的。可能的威胁列表缩小到真正的罪魁祸首,因此您知道在哪里集中注意力以获得最大的应用程序安全性。
原文:https://codedx.com/the-perfect-union-vulnerability-assessment-and-penetration-testing-vapt/
本文:http://pub.intelligentx.net/node/472
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 305 次浏览
【应用安全测试】每个SAST工具仅发现代码中大约14%的漏洞
应用程序开发过程的一个基本要素是扫描软件以发现潜在的漏洞。静态应用程序安全性测试工具因返回大量结果(通常是数千个,甚至是相对较小的应用程序)而臭名昭着,这可能会让开发人员感到不堪重负。但无论他们对结果如何看待,软件开发人员必须明白,只运行一个应用程序安全测试工具 - 即使是市场上最好的 - 他们也缺少代码中的大多数弱点。
一个工具只涵盖了冰山一角。单个分析工具可能存在数千个缺陷,这可能导致错过严重的缺陷,可能会使有价值的数据面临被利用的风险。
一个SAST工具仅提供14%的覆盖率
根据美国国家安全局(NSA)保证软件中心(CAS)的一项研究,平均静态代码分析工具涵盖了13个弱点类别中的8个(例如缓冲区处理,文件处理,初始化和关闭以及数字处理) ,这是61.5%。该研究还发现,平均工具仅涵盖13个弱点类别中每个缺陷的22%。如果缺陷的百分比乘以所涵盖的弱点类别的百分比,则平均工具的总覆盖率仅为14%。
对于许多软件开发人员来说,这应该是一个令人大开眼界的统计数据,他们认为他们的漏洞扫描程序覆盖范围更广。缺少应用程序代码中80%以上的弱点,任何组织都不应该接受。
其他研究支持这些发现。一项研究评估了三种商业静态代码分析工具,并确定它们在检测应用程序漏洞时的性能接近或低于平均值。对九种工具的另一项评估发现平均回忆率为0.527,精度为0.7,而另一项评估的结果确定任何一种工具的最高回忆率为18.4%。
除了发现每个分析工具都未能报告所研究的大部分缺陷之外,NSA CAS和后续研究发现这些工具在各种语言和弱点类别上表现不同。
SAST弱点
鉴于这些研究的结果,我们认为必须牢固地了解静态应用程序安全测试工具的一般弱点。这些知识可用于确保为应用程序安全性测试选择正确的SAST工具组合。
SAST的弱点包括无法:
- 解释结果 - 您仍然需要确定一个发现是否是真正的积极因素以及对您的应用程序的影响。
- 认识到应用程序设计或体系结构中的缺陷。
- 识别新类型的错误。这可能通过一些自定义来实现,但这需要团队的一些额外工作。
- 证明应用程序代码没有缺陷。换句话说,仅仅因为给定的SAST工具没有发现问题,并不意味着它不存在。
这就是采用组合方法并使用多个SAST工具非常重要的原因。事实上,研究发现可以将补充工具结合起来以获得更好的结果。
两个或更多工具不仅会覆盖更大的代码区域,而且每个工具都专注于不同的弱点类和不同的语言,这消除了工具之间的大量重叠。当存在重叠时,这是一个强有力的指标,表明已识别的缺陷不是误报,开发人员可以专注于确保这些缺陷得到修复。
不仅仅依赖SAST工具也很重要。使用其他类型的工具,例如动态应用程序安全性测试(DAST)工具和交互式应用程序安全性测试(IAST)工具,以及手动代码审查,以实现全面的应用程序安全性。
如何管理多个应用程序安全测试工具
使用多个工具确实带来了挑战,即设置和运行工具所需的额外时间,比较结果以及添加更多工具所需的成本。比较结果可能是艰苦的,因为每个工具都会产生一系列具有自己的命名约定和严重等级的弱点。
这是我们开发Code Dx的原因之一:识别所使用的各种工具的重叠。无论是使用商业扫描程序,开源漏洞工具还是两者的组合,Code Dx都会显示每个工具的结果,并确定每个工具发现的漏洞(并且由多个工具发现)。
Code Dx应用程序漏洞管理器将商业和开源工具的结果进行关联和规范化,以提供一组统一的结果,从而更好地覆盖源代码中的潜在漏洞,并更好地评估组织的整体企业风险。
重复数据删除,补救管理,报告和合规性检查在一个简化的工具中处理。工作流集成选项允许您的开发人员在解决应用程序漏洞问题的同时保留其首选环境 - Eclipse,Jira,Jenkins和其他环境。
此工具最有价值的好处之一是应用程序漏洞关联(AVC),也称为混合分析。这是指SAST结果(识别潜在漏洞)与DAST结果(确定哪些威胁实际可利用)的组合。这使您可以确定代码中存在哪些威胁,并且可以被外部攻击者利用,因此您可以先解决这些威胁。
不要满足于14%的覆盖率;这会使您的应用程序和您的声誉面临严重威胁。全面的方法涉及多个SAST,DAST和其他应用程序安全测试工具,可以提供最安全的应用程序,其优势将逐渐降低到您的底线。
幸运的是,使用多个工具比看起来更容易。 Code Dx简化了应用程序安全测试过程。您的团队可以使用所有必要的工具来全面覆盖您的应用程序代码,而无需管理多个工具和他们提供的脱节结果。
原文:https://codedx.com/14-percent/
本文:
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 42 次浏览
【应用安全测试】白盒,黑盒和灰盒漏洞测试:有什么区别,为什么重要?
2017年出现了创纪录的安全漏洞数量,截至第三季度末已报告超过16,000个漏洞。这比2016年的总和还要多。虽然一些组织正在迅速解决这些应用程序安全风险,但其他组织却未能这样做。 SANS最近的一项调查发现,10%的企业根本没有测试他们的安全应用程序,另外24%的企业每年只测试一次或更少。仅有12%的组织定期执行应用程序安全测试。
为什么企业忽视应用程序安全测试?快速开发周期是一个主要因素,应用程序安全测试被视为阻碍开发和部署的障碍。 2017年关于移动和物联网应用安全测试的报告发现,高达75%的应用安全专业人员感到有压力要求以安全为代价来推迟发布。
这些统计数据之间的二分法令人震惊。企业需要更加关注应用程序安全性测试,即使这意味着放慢速度。在应用程序部署之后修复漏洞会给企业带来更多时间和资源,更不用说负面宣传,收入损失,客户数据和信任丢失,声誉受损,甚至可能采取法律行动应该利用这些漏洞。
了解可以采用的不同方法进行应用程序安全性测试可以帮助您制定可提供最大投资回报率的策略,平衡安全性的提高以及所需的额外时间和资源。
有三种应用程序安全测试,通常称为黑盒安全测试,白盒安全测试和灰盒安全测试。了解每种类型之间的差异将有助于您形成一个强大的应用程序安全性测试计划,从而降低您面临潜在威胁的可能性,并最大限度地利用资源,资金和时间。
黑匣子安全测试
黑盒安全测试模仿黑客的行为,从外部攻击应用程序。在这样做时,它会测试应用程序的功能。它是基于攻击者不了解应用程序内部工作原理的假设来执行的:它将应用程序视为“黑盒子”,其内容是您无法看到的,就像黑客无法看到您的应用程序一样。
黑盒安全测试可以模仿各种技能水平的黑客,例如:
- 脚本小子(滑动) - 未经训练的个体(“小子”)使用由其他人开发的程序或脚本来攻击应用程序,并扫描已知的漏洞。
- 中级黑客 - 拥有更多关于开发,系统和网络的知识的个人,因此可能造成更大的破坏。
- 精英黑客 - 更有可能由民族国家赞助的个人。他们有更多的时间和资源来投入黑客攻击。
此测试会查找已知漏洞,弱访问控制以及应用程序中的弱防御机制。要彻底,测试可能发挥作用的所有变量和场景非常重要。
黑盒安全测试的优点是:
- 此测试可以比白盒漏洞测试更快地完成,因为它的范围更加有限,只能从应用程序外部进行攻击。
- 虽然这取决于具体的应用和测试范围,但成本可能更低。
缺点包括:
- 它并不全面,因为它只是从外部进行测试。
- 如果没有明确指导特定测试的区域和/或漏洞,测试用例可能难以设计。
- 如果您想要彻底,可能需要花费大量时间来尝试不同的场景和用例。黑客通常比你手上的时间更多,所以你不能总是预见到他们可能会尝试的一切。
白盒安全测试
白盒安全测试是基于对应用程序的所有知识,测试应用程序的内部工作而执行的。通常可以访问完整的源代码,因此源代码扫描和评论通常作为测试过程的一部分。提供对应用程序的内部(本地)完全访问,包括登录凭据和完全身份验证。白盒安全测试应在应用程序投入生产之前完成,因此可以在部署之前识别和纠正漏洞。
白盒漏洞测试有几个优点:
- 从源代码到应用程序架构和设计,发现各处潜在的漏洞
- 提供应用程序安全性的全面测试
- 可以在开发过程的早期开始
此测试的缺点是:
- 发现的任何潜在漏洞都需要通过黑盒测试进一步测试,以确定它们是否实际可利用,这需要额外的时间。采取此步骤可帮助您确定修复工作的优先顺序。
- 这种类型的测试更长,减慢了开发过程并与快速开发生命周期相冲突。
- 由于需要时间和高技能资源,它更昂贵。白盒安全测试需要了解应用程序不安全的原因,读取代码的能力以及软件架构中的安全风险。
灰盒安全测试
顾名思义,灰盒安全测试是白盒和黑盒测试的结合。当您需要平衡时间,成本和影响时,这是最理想的方法。
根据应用和测试目标,可以以各种方式使用灰盒安全测试。例如,它可以通过测试白盒测试中发现的潜在漏洞的可利用性来执行。
此测试的基础是黑客对应用程序的内部工作方式知之甚少,包括但不限于以下方案:
- 黑客对应用程序的数据流和体系结构有着高度的了解。
- 黑客可以访问部分源代码或编译的二进制文件,并且可能知道应用程序正在使用的语言和特定技术。
- 黑客可能拥有他/她可以登录的用户或管理员帐户。
这些都不是无理的假设:经验丰富的攻击者有办法发现这样的事情。
然后创建场景以测试具有更高优先级或关注的特定区域,模仿可能对应用程序的内部工作有部分了解的真正黑客。在优势方面,灰箱安全测试:
- 以更有针对性的方式攻击应用程序的某些部分
- 提供黑盒和白盒测试的好处
- 比白盒安全测试花费更少的时间,使其更好地平衡应用程序安全测试的时间,精力和成本
- 为时间和资源提供最佳投资回报率
- 更好地表示一个确定的黑客,他可能至少对应用程序的内部工作有一些了解,并有更多的时间专注于攻击,可能会研究公司,开发人员和应用程序。
当然,灰盒安全测试有一些缺点:
- 它不会涵盖应用程序的所有方面,因为这将非常耗时。
- 它缺乏白盒测试提供的源代码的完整覆盖。
- 测试用例可能难以设计。
为什么这一切都很重要?
了解三种类型的应用程序安全性测试之间的基本差异以及每种方法在提高应用程序安全性方面的作用非常重要。拥有多个选项有助于制定最适合您项目预算和时间表的方法。
在理想的世界中,企业将采用混合方法,根据特定应用和可用资源采用某些类型的测试。
为了帮助制定应用程序安全测试策略,请记住每种测试的最佳用途:
- 黑匣子安全测试 - 模拟脚本“小子”(没有大量时间,资源或技能的攻击者)的短期黑客攻击。
- 白盒安全性测试 - 确保您的开发人员不会在应用程序中引入漏洞
- 灰盒安全测试
- 模拟具有更多知识和技能的黑客攻击
- 模拟来自内部威胁的攻击
- 测试白盒测试中发现的潜在漏洞
了解所有这三种风格并利用每种风格的优势可帮助您创建更具弹性的应用程序安全配置文件。花时间预先制定应用程序安全测试计划,并将其纳入开发过程,可以使您的应用程序无法应对当今市场中安全漏洞的增加。
原文:https://codedx.com/black-white-and-gray-box-vulnerability-testing-code-dx-blog/
本文:http://pub.intelligentx.net/node/478
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 268 次浏览
【应用程序安全测试】在应用程序安全测试中节省时间的8种方法
全面的应用程序安全测试所需的成本和时间通常会阻碍企业实施适当的漏洞测试和修复策略。当然,那是在惹麻烦。幸运的是,该流程可以简化,使您能够以更有效和及时的方式进行应用程序安全测试。
我们将回顾您可以做的八件具体事情,立即开始,这将有助于您的appsec测试更顺利,更好的结果。
应用安全测试:你在浪费时间吗?
应用程序安全性测试很重要有三个原因:
- 无论您认为代码的安全性如何,应用程序始终都存在漏洞。
- 应用程序安全性测试是在外部黑客暴露这些漏洞之前识别这些漏洞的主动方法。
- 在部署之前识别漏洞可以节省大量的时间,金钱和资源。在应用程序掌握在用户手中之前,可以解决问题;如果在发布后发现问题,您将需要向用户群发送更新,并且您可能会遭受声誉损失和/或诉讼风险。
因为测试和修复漏洞需要时间,所以效率越高越好。您希望从测试中获得最相关的结果,误报率和重叠结果的数量最少。重叠结果 - 由多个工具识别的结果 - 非常常见,因为没有一个工具可以找到所有错误。大多数开发人员使用多个工具。这会自动引入低效率,因为每个工具都有自己的用户界面和报告方法。您的开发人员必须学习如何使用多个工具,但结果和建议通常以不同方式呈现 - 并且经常重叠。
如何简化应用程序安全测试
以下是简化应用程序安全性测试过程的“最佳实践”,因此可以更轻松地集成到开发过程中。
1.利用应用程序漏洞关联(AVC)工具 -
AVC工具汇总来自多个工具的数据,对结果进行重复数据删除。您可以使用过滤器来关注最关键的区域。您可能已经定义了各种严重性级别,或者您可能会关注OWASP指南。 AVC工具确定安全范围的差距。它们还使结果和严重程度标准化。例如,Code Dx是一个AVC工具,允许开发人员使用一种通用语言,可以在组织内或从一个项目到另一个项目进行自定义。用户可以使用SQL Injection的默认描述以及引用和补救建议,或者为其组织定制指令性指南 - 可能使用内部门户链接或内部软件库来帮助解决安全问题。
2.将漏洞发现与一个有凝聚力的报告相关联 -
必须将调查结果与多种类型的测试和技术相关联,包括SAST,DAST,IAST,组件分析,手动测试,代码审查和威胁建模。这可能是一项非常耗时的工作,并且随着开发人员以各种格式和多种来源接收信息,使补救更加具有挑战性。相关工具通过编译,重复数据删除和分析各种测试方法的结果来简化这一过程。开发人员会收到一份清晰且易于理解的报告。这是对多个,重叠甚至相互冲突的报告的巨大改进。
3.使用应用程序安全性编排 -
此类工具允许您在一个位置管理多个appsec工具。您可以轻松地将一个供应商换成另一个供应商而不会中断工作流程。 Code Dx通过其REST API与Systems Development Life Cycle(SDLC),Jenkins构建服务器插件和其他构建服务器集成,使Code Dx易于在现有管道中使用。您还可以通过自动配置自动合并某些SAST工具。该程序根据正在测试的应用程序确定应运行哪些工具。
4.加快开发补救和协作 -
如果安全分析师和开发人员通过测试工具连接,他们可以就问题和进展进行沟通,测试和开发将成为一个更有效和集成的过程。这样做的一种方法是使用Code Dx之类的工具,它可以自动在Jira中输入已识别的威胁,使开发人员了解最新的潜在漏洞。 Code Dx还提供分配任务,跟踪进度和发表评论的功能。用户可以对漏洞采用一致的描述;所有工具的输出都将使用相同的术语。您还可以自定义术语以匹配组织的语言。
5.将数据存储在集中式存储库中 -
将所有应用程序安全信息存储在一个中央,安全的位置,使组织内的所有相关方都可以访问数据。用户可以搜索和排序结果,分配任务,甚至可以运行有关漏洞的报告。
6.保持合规 -
确保您的应用程序符合任何相关法规保护您的声誉,并防止您因违反任何违规行为而被罚款。使用可根据常见合规性标准自动检查漏洞的工具。 Code Dx为许多标准做到了这一点,包括OWASP Top 10 Mobile,HIPAA,DISA安全技术实施指南,NIST 800-53和支付卡行业数据安全标准。
7.与集成开发环境(IDE)集成 -
通过在开发过程中识别和解决威胁,将应用程序安全测试与IDE集成可以节省时间。例如,如果您的开发人员在Eclipse或Visual Studio中工作,他们可以解决测试期间从此界面引发的问题。他们不需要切换到其他工具。他们可以将补救措施纳入当前的工作环境。
8.提供适当的安全培训 -
应为参与开发和测试过程的所有人员提供全面培训。应明确界定角色和责任。培训应保持新鲜并不断更新,以掌握最新的威胁,确保测试和解决过程更加高效。
应用程序安全性测试不一定非常困难。使用多个工具是必要的恶魔,但有一些方法可以对结果进行排序,整理和分析。简化流程意味着您可以快速识别问题,适当地解决问题,并通过补救流程跟踪问题。所有这些都可以在预生产环境中高效完成,保护您的资产和声誉。
原文:https://codedx.com/streamlining-application-security-testing-code-dx-blog/
本文:http://pub.intelligentx.net/node/473
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 48 次浏览