DevSecOps开启安全意识新高度

生成式人工智能在编写代码方面非常“聪明”,可以快速实现很多复杂的功能,可是在安全性方面,除了善意的提醒之外,往往存在很多疏漏,甚至埋下地雷。对此,昆明亭长朗然科技有限公司信息安全专员董志军表示:DevSecOps相关的从业者应该留意,在使用人工智能获得高效率的同时,避免被其拖累甚至“陷害”。

什么是DevSecOps?

DevSecOps是将安全实践无缝集成到开发和运维流程中的一种理念。其核心目标是通过自动化、安全测试、监控等手段,确保软件在开发、交付和运维的每个软件开发生命周期阶段都具备高水平的安全性。与传统的开发模式相比,DevSecOps强调“安全左移”,即尽早在开发生命周期中引入安全考虑,从而减少漏洞和安全问题的产生。

为什么需要DevSecOps?

在现代软件开发中,速度和效率至关重要。然而,快速的开发和部署往往会忽略安全问题,从而增加了安全风险。传统的安全检查通常在开发结束后进行,这不仅耗时,还会延误项目进度。而DevSecOps通过在整个开发流程中持续进行安全测试和审核,能够及早发现并修复安全问题,避免漏洞在生产环境中暴露。

为什么说安全意识很重要?

在 DevSecOps 中,安全意识至关重要。这意味着每个参与软件开发过程的人员都必须了解安全风险并采取措施降低这些风险。开发人员需要编写安全的代码,安全团队需要测试代码以查找漏洞,运营团队需要部署和管理软件以减轻攻击风险。

DevSecOps的核心原则

  1. 协作文化:DevSecOps提倡开发、运维和安全团队之间的紧密合作,打破传统的孤岛效应。各团队共享信息和责任,共同确保系统的安全性和稳定性。
  2. 自动化:通过自动化工具和脚本,实现持续集成、持续交付(CI/CD)管道中的安全测试。例如,自动化代码扫描、漏洞检测和安全配置检查等。
  3. 持续监控与反馈:实时监控系统和应用的运行状态,及时发现和响应安全事件。通过反馈机制,持续改进安全措施和策略。
  4. 安全左移:在开发的早期阶段就引入安全测试和审查,如代码审查、静态代码分析和威胁建模等,避免后期发现重大安全问题。

DevSecOps 安全意识的好处

  • 降低安全风险: 通过尽早识别和修复安全漏洞,您可以降低安全风险。
  • 提高软件质量: 安全的软件更有可能可靠且易于维护。
  • 降低成本: 修复安全漏洞的成本通常比事后修复要低得多。
  • 提高客户满意度: 安全的软件可以提高客户满意度并建立客户信任。

实现DevSecOps的关键技术

  1. 静态应用安全测试(SAST):在代码编写阶段,使用静态分析工具扫描代码中的潜在漏洞。SAST工具能够识别常见的编程错误和安全漏洞,如SQL注入、跨站脚本攻击等。
  2. 动态应用安全测试(DAST):在应用运行时进行安全测试,模拟攻击者行为,检测潜在的安全漏洞。DAST工具能够发现运行时的安全问题,如未授权访问、数据泄露等。
  3. 依赖管理:管理和监控第三方库和依赖项的安全性。自动化工具可以扫描依赖项,检测已知的安全漏洞并提供修复建议。
  4. 容器安全:在容器化应用中,确保镜像的安全性和容器运行环境的隔离性。工具如Clair和Aqua可以扫描容器镜像中的漏洞,并提供修复建议。
  5. 基础设施即代码(IaC)安全:使用代码定义和管理基础设施,通过自动化工具检测和修复IaC配置中的安全问题。例如,Terraform和Ansible等工具的安全扫描插件。

提高安全意识的技巧

  • 教育和培训: 确保所有参与软件开发过程的人员都接受过安全方面的培训。这包括开发人员、安全团队和运营团队。
  • 文化培养: 营造一种重视安全的文化。这意味着将安全视为优先事项,并鼓励每个人提出安全问题。
  • 自动化: 使用自动化工具来识别和修复安全漏洞。这可以帮助您节省时间并减少人为错误的风险。
  • 持续监控: 持续监控您的软件以查找安全漏洞。这将帮助您尽早发现问题并采取纠正措施。
  • 沟通与协作: 确保开发人员、安全团队和运营团队之间进行有效沟通和协作。这将有助于您打破孤岛并创建更安全的软件。

DevSecOps的实施挑战

尽管DevSecOps带来了诸多优势,但其实施也面临一些挑战:

  1. 文化转变:传统的开发和安全团队习惯于各自为战,DevSecOps需要团队在文化上进行转变,实现真正的协作和责任共担。
  2. 工具整合:选择和整合适合的自动化工具,需要考虑工具的兼容性、性能和易用性,避免工具过多导致管理复杂。
  3. 技能提升:团队成员需要掌握新的安全工具和技术,进行持续的技能提升和培训,确保能够有效应对新出现的安全威胁。
  4. 持续改进:安全威胁不断演变,DevSecOps实施过程中需要不断审视和改进安全策略和措施,保持对新威胁的敏感性和应对能力。

结语

DevSecOps是现代软件开发中不可或缺的一部分,通过将安全无缝集成到开发和运维流程中,显著提升了系统的安全性和稳定性。尽管面临诸多挑战,但通过正确的文化引导、工具选型和技能提升,企业能够成功实现DevSecOps,构建更安全、更可靠的软件系统。在日益复杂的网络安全环境中,DevSecOps为企业提供了一条持续改进和应对安全威胁的有效路径。虽然DevSecOps 是一种强大的工具,可用于构建更安全的软件,但是它只有在每个人都意识到安全风险并采取措施降低这些风险的情况下才能有效。通过提高 DevSecOps 安全意识,您可以创建更安全、更可靠、更易于维护的软件。

昆明亭长朗然科技有限公司专注于帮助各类型人员提升安全意识,其中便包括针对软件开发人员的安全理念课程,特别针对DevSecOps以及泛IT行业的入门从业人员。课程内容形式以视频讲解和互动测试为主,通过分享相关的安全理念和方法,帮助企业级客户营造一个重视安全的文化,进而帮助创建更安全的软件。欢迎有兴趣的客户及伙伴联系我们,预览课程内容并洽谈商业合作。

昆明亭长朗然科技有限公司

  • 电话:0871-67122372
  • 手机:18206751343
  • 微信:18206751343
  • 邮箱:[email protected]
  • QQ:1767022898

开发者的安全意识

计算机安全,随着历史的进程,曾被称过系统安全、开发安全、软件安全、信息安全等等,最近被称为网络安全,是计算机系统的属性。系统构建者关注的主要属性是正确性,他们希望他们的系统表现如预期的情况一样。

如果我正在开发一个银行网站,我所关心的是,当客户从她的一个账户中转出一笔1000块钱的资金时,如果资金余额足够,那么1000块钱就能转出成功。如果我正在开发一个文字处理器,我关心的是,当一个文件被保存并重新加载时,我上次离开时保存的数据能够被成功开启……等等诸如此类。

安全的计算机系统是在较宽范围的环境下防止特定的不良行为。虽然正确性在很大程度上是关于系统应该做什么的,但安全性是关于不应该做什么的。即使有对手居心叵测地试图规避任何可能实施的保护措施。昆明亭长朗然科技有限公司IT安全专员董志军说:通常有三个经典的安全属性需要系统来努力满足。这些是广为人知的属性,这些属性的破坏会导致不良的行为。根据系统的不同,它们将具有这些属性的某些特别实例。

  • 第一个属性是保密性。如果攻击者能够操纵系统以窃取个人信息或公司秘密等信息资源,那么他就破坏了机密性。
  • 第二个属性是完整性。如果攻击者能够修改或破坏系统所保留的信息,或者能够滥用系统功能,那么他就破坏了系统的完整性。破坏行为包括损毁记录、修改系统日志、安装不受欢迎的程序如间谍软件等。
  • 最后一个属性是可用性。如果攻击者侵入一个系统,以便使系统拒绝对合法用户提供服务,被拒绝服务的例子包括线上购物或网络银行访问,那么攻击者就破坏了系统的可用性。

今天,很少有系统是绝对安全的,如同您可能在新闻中看到的的一样,安全漏洞不断涌现。例如,在2011年,美国RSA公司被入侵,我在稍后将详谈。入侵者能够窃取与RSA SecureID设备相关的敏感令牌。然后,这些令牌被用来侵入使用了SecureID的公司。2013年底,美国Adobe公司遭到入侵,被盗的不仅有源代码,还有客户记录。几乎在同一个时期,攻击者入侵了美国零售业者Target的销售终端,部分门店内的客户信用卡和借记卡资料被盗。董志军表示:即使在标榜言论自由媒体自由的美国,典型的安全事故案例也都是尽可能被捂着的,如上这些只是一些影响较大且被媒体披露的例子,其实只是冰山一角。

攻击者是如何侵入这些系统的呢?许多入侵行为首先是利用了相关系统中的漏洞(也称弱点)。一项漏洞就是一项缺陷,入侵者可以利用精心构建的交互来使系统运行的不安全。一般来说,缺陷是系统在设计或实施时就已经产生了,这就使得它在后期无法避免出现问题。换句话说,它的运行就不安全。

缺陷是设计中的欠缺,而错误是实施中的欠缺。一个漏洞是一个影响安全相关行为的缺陷,而不是简单的正确性。让我们说回到RSA在2011年被入侵的案例,这种入侵行为取决于Adobe Flash播放器的执行缺陷。Flash播放器本来应该顺利地拒绝格式错误的输入文件,但是事实上,它的这个缺陷让攻击者成功利用了一个精心构建的输入文件,该文件可以操纵程序来运行攻击者编定的代码。该输入文件可以嵌入到微软Excel电子表格中,以便在电子表格在被打开时自动调用Flash播放器。

在实际的攻击中,入侵者将这样的电子表格发送给目标公司的执行官。由于电子邮件被伪装成来自于同事,所以执行官被误导而开启了该文件。这种伪造电子邮件的方法被称为鱼叉式网络钓鱼攻击,这种攻击方式是很常见的。一但电子表格被打开,攻击者就能够在该执行官的机器上悄悄安装恶意软件,并从那里发起进一步的渗透攻击。这个例子突出了通过正确性和通过安全性两个不同的视角来查看软件时的重要区别。

从正确性的角度来说,Flash漏洞只是一个错误而已,除了非常简单的小程序之外,其它所有的软件不可避免会出现错误。软件公司通常在认可他们的软件有已知错误的情况下出售软件,因为要解决这些错误花费过于昂贵。相反,开发人员主要关心在通常情况下会出现的错误。剩下的错误,比如Flash漏洞,很少会出现,用户们也习惯于自己处理它们。如果做某些事情导致了软件的崩溃,用户们很快就会了解到,这不算什么大不了的事情,重试一下或者换种方式就好了。最终,只有当大量用户的遭遇到同样的错误时,软件公司才会解决这个问题。

另一方面,从安全性的角度来看,仅仅针对常规典型的用例来判断错误的重要性是不够的。开发者必须考虑非常规非典型的滥用情况,因为这正是入侵者所处心积虑的地方。

正常用户可能会跳过软件错误,然后导致软件崩溃,但是入侵者则会尝试让该崩溃情景重现,以便了解其为什么发生,然后操纵交互将该崩溃转化为利用方式。简而言之,为了确保系统达到其安全目标,我们必须努力消除错误和设计缺陷。我们必须仔细思考哪些安全属性是我们要牢牢掌握的,并确保我们在设计和实施时不会出现危害安全的缺陷。我们还必须设计系统,使得任何不可避免的缺陷都难以被入侵者恶意利用。

而软件特别是互联网创新的市场竞争那么激烈,时间就是效率,在争分夺秒增加系统功能的时候,别指望开发者或测试人员能主动解决危害安全的缺陷。昆明亭长朗然科技有限公司董志军表示:入侵者不断发现和利用这些缺陷,或者在找出缺陷之后立即在地下市场当天出售(零天漏洞)。要防范入侵者利用零天漏洞借助用户的失误造成破坏,提升用户安全意识是较为有效的途径。在上述RSA被入侵的案例中,如果执行官有足够的信息安全防范意识,不去开启被黑客伪造的电子表格,直接删除那封钓鱼邮件,则至少可以在Flash漏洞被厂商修复之前,保护住自己。

说到底,对安全管理者来讲,安全是一整套解决方案,立体防御、多重防御无疑是正确的安全战略;开发者的安全意识是软件产品和服务是否稳健与安全的关键;用户的信息安全防范意识,也是整体安全管理体系中的不可或缺的重要一环。

在针对用户的网络信息安全意识方面,昆明亭长朗然科技有限公司创作了几十部安全教程模块、互动小游戏,以及三百来部信息安全动画视频、宣传画和培训系统等等。有多种沟通方式和展示渠道来灵活地使用它们,学员也可以通过电脑、平板和智能手机随时随地参与信息安全学习。如果您有兴趣预览,欢迎您通过如下方式快速联系到我们。

昆明亭长朗然科技有限公司

电话:0871-67122372

手机:18206751343

微信:18206751343

邮箱:[email protected]

QQ:1767022898