研讨会回顾|AI驱动的DevOps云端转型:Atlassian Cloud + AI 实战指南

400-666-7732

研讨会回顾

AI驱动的DevOps云端转型:Atlassian Cloud + AI 实战指南

如何防止恶意代码

如今,网络安全风险无处不在,网络攻击的威胁很高。有许多形式的网络攻击。其中许多可能是由恶意代码引起的。

什么是恶意代码?

恶意代码(malcode)是导致风险的任何代码。

这段代码可以:

  • 访问私人数据。

  • 更改系统的行为。

  • 防止系统运行。

恶意代码是如何产生的?

        故意将恶意代码写入系统。例如,心怀不轨的开发人员可能会故意编写恶意代码。或者可以在开发后注入恶意代码。例如,恶意软件,间谍软件或勒索软件在部署后进入系统并造成伤害。这是一个非常现实的问题,特别是对于开发安全关键系统的团队而言。最好在恶意代码损坏程序之前阻止它们。应在开发过程的早期采用安全最佳实践。这是保护您的软件免受恶意代码漏洞攻击的最佳方法。

如何防止恶意代码漏洞(示例)

您可以保护您的软件通过确保它没有安全漏洞免受恶意代码的侵害 。

1.使用安全编码标准

安全编码标准 – 例如CERT C / C ++ – 旨在防止安全漏洞。

例如,CERT以具有未定义行为的可能导致安全风险的代码为目标。

示例1:缓冲区溢出

        缓冲区溢出是一个众所周知的安全漏洞。当程序将数据写入其分配的内存边界之外时,就会发生这种情况。

        这会危及软件的安全性,因为可能会将恶意代码注入运行时内存。

        即使是常用的库函数(如gets()或fscanf()) – 如果不小心使用也会导致缓冲区溢出。

  1. 缓冲区溢出为何导致代码易受攻击

  2. 缓冲区溢出使您的代码易受攻击

这是一个例子。

        如果程序正在接收数据- 而且没有检查以确保输入缓冲区不会溢出- 那么此时就可以设计包含恶意代码的输入或“有效负载”。此输入可能会溢出输入缓冲区。

        因此,它会使用恶意代码的地址覆盖函数的返回地址。当函数返回时,程序从恶意代码处开始执行。

如何防止缓冲区溢出

        CERT ARR30-C是有助于防止缓冲区溢出的C编码规则的示例。此规则也适用于CERT C ++。

         “不要形成或使用越界指针或数组下标。”

        通过应用此规则,您将避免写入超出范围的指针或数组下标。这可以防止执行任意代码。

        MISRA C也有这样的规则- 而且CWE也注意到类似的情况。

示例2:不受控制的字符串格式

        不受控制的字符串格式是另一个安全漏洞。

        当使用格式化字符串调用格式化的I / O函数时,该格式字符串包含来自不受信任的外部源的未过滤数据。这通常被称为“污染”数据。

        为什么不受控制的格式字符串使代码易受攻击

        不受控制的格式字符串使您的代码容易受到攻击。

        它可以允许攻击者通过以下方式启用执行恶意代码:

  1. 崩溃的程序。

  2. 查看内存内容。

  3. 写入任意内存位置。

        如何防止不受控制的字符串格式

        使用以格式字符串作为参数的函数时要小心。示例函数包括fprintf(),sprintf()和snprintf()。

        CERT FIO30-C是防止格式字符串攻击的C编码规则的示例。此规则也适用于CERT C ++。

        “从字符串格式中排除用户输入。”

         确保不受信任的输入不用作格式字符串的一部分。

示例3:签名的整数溢出

        有符号整数溢出是另一种常见的安全漏洞。当算术运算的结果太大而不能存储在整数中时,会发生溢出。

        在C和C ++编程中,如果未检测到整数溢出,则可能导致缓冲区溢出。 

        为什么签名整数溢出会使您的代码易受攻击

        整数溢出会导致未定义的行为,因此确保对整数的操作不会导致溢出非常重要。

        在最坏的情况下,整数溢出可能导致缓冲区溢出- 以及攻击者执行恶意代码。

如何防止有符号整数溢出

        CERT INT32-C是防止整数溢出的编码规则的示例。此规则也适用于CERT C ++。

“确保对有符号整数的操作不会导致溢出。”

        可以防止整数溢出。您可以通过对传入的函数参数执行适当的范围检查来完成此操作

2.使用静态代码分析器实施安全编码规则

        实施安全编码规则的最佳方法是使用静态分析器。

        静态代码分析器会根据一组编码规则(例如CERT C / C ++中的编码规则)自动检查代码。最好的静态分析仪- 如Helix QAC -包含额外的规则以确保最佳实践编码。

        例如,Helix QAC可以根据上面提到的CERT编码规则轻松检查代码。它还可以在测试开始之前提供数千种诊断来改进您的代码- 并且在安全漏洞可能危及您的软件之前。

        通过确保遵循这些规则,您将避免严重的编码错误- 以及潜在的恶意代码漏洞。

分享到:
关于龙智

龙智DevSecOps解决方案

龙智深耕DevSecOps相关领域近十年,集成DevOps、ITSM、Agile管理思路及该领域的优秀工具,提供软件研发生命周期管理解决方案,以及实施、培训、升级、数据迁移、定制开发、运维等服务。

龙智致力于帮助企业实现软件开发运营一体化,并确保安全防护融入软件研发的整个生命周期中。龙智提供从产品规划与需求管理、开发,到测试、部署以及运维全生命周期的解决方案与管理工具,帮助企业科学、高效、安全地管理软件开发,更快、更好地交付软件产品。

近年来,龙智团队潜心开发,先后帮助金融、通信、互联网、汽车、芯片、游戏、医疗等行业的1000多家企业促进开发安全运营的一体化的实践。 秉承着打造开放式DevSecOps的理念,龙智与国外其他多家DevOps工具顶级厂商如Atlassian、Perforce、Mend(原WhiteSource)、CloudBees、SmartBear等合作,将国际市场上先进的工具引入中国市场,帮助企业打造量身定制的DevSecOps解决方案、ITSM解决方案,助力企业高效开发与运维。

我们的自研产品包括Confluence水印插件,Timewise-Jira计划及实际工时管理插件,Jira服务台企业微信应用插件等;我们还与全球DevOps领域领先的企业建立了合作伙伴关系,我们是:

· Atlassian全球白金合作伙伴

· Perforce中国授权合作伙伴

· Mend (原WhiteSource)中国授权合作伙伴

· CloudBees中国授权合作伙伴

· SmartBear中国授权合作伙伴