企业安全体系建设的实践指南:策略制定与实施细节

在网络安全行业,安全Web漏洞挖掘工程师已经层出不穷,然而拥有甲方安全建设经验的工程师相对较为稀缺。在企业招聘安全工程师时,除了对安全漏洞挖掘能力的重视,更加关注是否具备甲方安全体系建设方面的思维。

本次分享聚焦于甲方安全体系建设,提供实用的规划和实施方案,以帮助安全工程师在企业环境中更好地履行其职责。重点关注甲方安全建设的战略性和实际操作层面,让大家能够全面了解并掌握这一关键领域。

一、企业网络安全架构设计

企业网络安全架构设计有三个部分:第一部分是防御层面,第二部分是安全监控,第三部分是应用加固,减少漏洞。

1. 防御层面

接下来,我们深入探讨防御层面的关键措施。首要任务是明确我们当前暴露的资产情况。资产表涵盖了公网IP总量以及这些IP上开放的端口。通过建立详细的资产表,我们能够更加清晰地了解自身的暴露面。紧接着,我们需要优化这些资产的管理,关闭非必要端口,从而增强安全性。

其次,部署流量防护墙是至关重要的。它能有效抵御DDoS等流量攻击。此外,在应用层实施防御措施同样不可或缺。例如,针对网站可能面临的扫描性攻击,我们需要采用WAF防御,这些策略不同于传统的流量防御。

除了上述防御措施,网络阻断技术也扮演着重要角色。它能够以更精细的粒度进行限制,例如,当对我们的特定业务发起攻击时,我们可能不希望完全封锁整个IP,这时就可以使用网络阻断设备,仅针对该IP或目的地进行封锁。

最后,蜜罐技术为我们提供了一种主动防御的手段。通过部署蜜罐,我们可以吸引攻击者的注意力,从而保护真正的关键资产。例如,我们可以设置伪装成内部系统的蜜罐,如禅道系统或财务系统。当攻击者尝试入侵这些蜜罐时,我们能够提前预警并采取相应的预防措施。

2. 安全监控

安全监控是保障信息安全的关键环节,它不仅能帮助我们及时发现攻击行为,还能追踪攻击者的行动路径。我们需要从网络和主机两个层面进行监控。

网络监控方面,我们可以采取多种措施,如识别资产、发现漏洞、监控服务响应等。通过网络监控,我们能够及时发现异常行为,形成告警,并及时通知相关人员。此外,对于攻击行为的识别也至关重要,例如内网探测等,我们需要构建拓扑图并进行实时监控。

主机监控同样不容忽视。攻击者打入系统后,可能会利用漏洞、留存病毒文件等。因此,我们的HIDS(主机入侵检测系统)需要具备病毒文件检测、漏洞扫描等能力。同时,对于主机的异常行为,如未及时更新补丁、异常流量等,我们也应实时监控并报警。此外,主机监控还需满足合规基线要求,确保系统安全。

通过网络和主机两个层面的监控,我们能够全面了解系统的健康状况。

3. 应用加固

仅仅依靠防御和监控是远远不够的,我们还需要进行应用加固,以从根本上解决问题。应用加固是安全建设中的一项重要任务,也是最具挑战性的部分。因此,我们需要在防御、监控和应用加固三个方面共同努力,确保系统的安全性。

与业务线的合作之所以困难,是因为安全工作往往需要与具体的业务场景和需求相结合。例如,在产品设计阶段,安全团队需要介入,评估可能存在的安全风险,如越权漏洞、用户密码找回漏洞等。这要求安全团队不仅要了解安全技术,还要对业务有深入地了解。

此外,安全团队还需要与业务线紧密合作,推动安全意识的提升。这可能包括为业务团队提供安全培训,以及为公司全员进行网络安全培训。通过这些培训,安全团队可以帮助业务团队了解安全的重要性,以及如何在日常工作中防范安全风险。

在应用架构层面,安全团队与业务线的合作更加紧密。安全团队需要评估业务线的需求,并提供相应的安全解决方案。例如,当业务线推出新产品或功能时,安全团队需要评估其安全性,并提供必要的安全建议和支持。

同时,前面提到的安全监控也会转化为安全工单。例如,当HIDS系统发现系统中存在漏洞时,安全团队会将这些漏洞以安全工单的形式推送给业务线。业务线需要根据这些工单进行修复和改进,以确保系统的安全性。

最后,安全团队还需要在业务上线之前进行安全测试,以及在代码审计中提供支持和帮助。这些功能和服务旨在确保业务线的安全性和稳定性,同时提高整体的安全水平。

图片

上图这个目录为我们提供了整体框架,接下来我们将深入探讨这些安全实践的具体实施方法。我们的重点不在于理论阐述,而是聚焦于如何将这些安全策略落地执行。接下来我们一起探索如何在现实中实施这些安全策略,从而切实提升我们的安全防护能力。

安全防御:

图片

监控层面:

图片

漏洞减少:

图片

二、漏洞管理流程

在甲方环境中,漏洞管理是一项至关重要的任务。当安全团队发现漏洞后,必须有效地将这些漏洞信息传递给业务团队,以便他们及时进行修复。业务团队完成修复后,还需要向安全团队反馈,以便进行复测。这个流程必须形成一个闭环,以确保漏洞得到妥善处理。

图片

1. 漏洞管理背景

  • 建设企业安全体系中,安全团队不仅要发现漏洞,还需要推进业务团队修复漏洞;

  • 当企业业务线过多时,漏洞数量也会随之增加,此时需要有一套完善的漏洞管理机制;

  • 漏洞管理体系建设的目的是保证漏洞能第一时间发现,并且被及时修复。

2. 漏洞发现

2.1 漏洞发现

我系统地梳理了漏洞发现的各个环节。要发现漏洞,首先需要建立一个有效的发现机制。这一机制可以通过多种渠道实现。例如,在IAST应用上线前的运行时进行检测,这是一种常见的方法。此外,黑客扫描也是一种常用的手段,我们可以利用Xray等工具进行扫描。代码审计也是关键的一环,通过仔细检查代码,可以发现潜在的安全问题。

除了以上方法,与外部的SRC合作也是非常有益的。SRC(安全漏洞奖励平台)可以为我们提供大量的安全资源。市场上一些知名的SRC平台,如火线360和漏洞盒子,都为我们提供了与白帽子交流的机会,他们经常能为我们提供宝贵的漏洞信息。当然,我们也可以自建SRC平台,通过社区的力量来共同发现漏洞。

另外,NIDS(网络入侵检测系统)也是一个重要的工具。NIDS系统中包含大量的指纹信息,这些指纹与漏洞库相对应,可以帮助我们发现系统中的漏洞。

此外,HIDS(主机入侵检测系统)也是一个值得关注的方面。例如,如果你的系统组件较为老旧,那么可能存在“脏牛”等漏洞。因此,我们需要定期检查和更新系统组件,以避免这些漏洞被利用。

总的来说,漏洞的发现需要多方面的努力和合作。通过综合运用各种方法和工具,我们可以更有效地发现和应对系统中的漏洞,确保系统的安全稳定运行。

详情可以参照下表:

图片

2.2 漏洞审核

通过上述渠道的努力,每天会发现大量的漏洞。然而,并非所有漏洞都需要人工审核,部分漏洞可以通过自动化审核进行处理。

需要人工审核的漏洞主要包括:从外部SRC平台接收的漏洞报告,因为其中可能包含虚假或误导性的信息;以及那些可能对业务运营产生实际影响的漏洞,需要人工判断其真实性和潜在风险。

而自动化审核则适用于一些明确且易于识别的漏洞类型。例如,HIDS系统检测到的“脏牛”这类提权漏洞,由于它们通常具有明确的特征和检测标准,因此可以通过自动化流程迅速进行确认和处理。

通过人工和自动化审核的结合,我们可以更加高效和准确地处理这些漏洞,确保系统的安全性和稳定性。

漏洞审核三原则可以参照下面表格:

图片

2.3 漏洞定级

当发现漏洞后,可以直接进行漏洞定级。为了准确评估,需要考虑多个维度。首先是利用难度。例如,某个SQL注入漏洞可能需要经过多重绕过才能被利用,尤其是在内部办公网络中,外部攻击者很难轻易突破。

除了利用难度,业务重要性也是一个关键因素。某些漏洞可能仅影响边缘业务,而其他漏洞则直接威胁核心业务,如订单处理或敏感数据的安全。此外,我们还要考虑漏洞是否涉及个人隐私信息以及影响范围。

为了更全面地评估漏洞,我们需要结合多个维度进行综合考虑。同时,制定自己的漏洞定级标准至关重要。例如我可能会将SRC平台上标记为高危的漏洞定为高危,而代码审计中发现的、尚未发布的漏洞,由于其隐蔽性和利用难度,我可能会将其定为中低危。

值得注意的是,我们不能仅依赖工具或单一维度来评估漏洞级别。例如,尽管某些工具可能将SQL注入和命令执行视为高危漏洞,但在实际业务环境中,我们需要从多个维度进行综合评估,以确定漏洞的真实风险和影响。因此,这种综合评估的方法是无法被工具完全替代的。通过综合考虑利用难度、业务重要性、数据敏感性以及影响范围等多个维度,我们可以更准确地为漏洞定级,并采取相应的措施来确保系统的安全性。

漏洞定级可以参考下图:

图片

2.4 派发工单

完成漏洞定级后,应当通过专门的派发工单系统向相关业务团队发送工单,以确保他们及时收到并处理漏洞信息。仅仅通过IM通知是不够的,因为工单机制能够提供更正式、更可追踪的记录。在派发工单时,应利用IM、邮件和电话等多种方式通知相关团队,确保他们及时收到工单并了解漏洞情况。

收到工单后,业务团队应尽快认领工单,并着手修复工作。在准备修复环境时,他们需要参考一些通用的修复方案和咨询资料。为了确保能够迅速响应和解决问题,建议提前整理这些资料,形成一个易于查阅的知识库。这样,在团队成员遇到问题时,可以快速找到解决方案,而不是浪费时间去搜索或咨询。

对应步骤如下:

图片

2.5 业务修复

业务线在认领工单后,可能会根据自己的排期来安排修复工作,这可能导致修复时长无法满足安全团队的需求。因此,安全团队需要不定时地督促业务线加快修复进度,确保漏洞得到及时处理。

为了更有效地管理漏洞修复工作,建议制定一个制度性规定,对不同级别的漏洞设定相应的修复时长。例如,对于高危漏洞,可以要求业务线在24小时内完成修复。这将有助于确保高危漏洞得到优先处理,降低安全风险。

如果业务线未能按时完成漏洞修复,系统应自动发送逾期提醒,并辅以人工提醒,以确保业务线意识到逾期情况并尽快采取行动。如果逾期情况严重,可能需要升级事件处理级别,以便更快速地解决问题。

当业务线完成漏洞修复后,安全团队需要进行安全复测以验证修复效果。如果复测不通过,安全团队需要将工单状态改回“修复中”,并再次向业务线提供修复建议,指导他们重新进行修复工作。这一轮复测和修复建议的过程有助于确保漏洞得到彻底修复,提高系统的安全性。

业务修复参考如下:

图片

漏洞复验参考如下:

图片

2.6 漏洞复盘

完成漏洞修复后,对漏洞进行归类和总结是至关重要的。例如,我们可以发现某些业务系统频繁出现越权漏洞,而另一些系统则经常遭受SQL注入攻击。为了应对这种情况,我们需要建立一个复盘机制。

这个复盘机制的主要目的是深入分析漏洞类型、业务线及其特征,并从中汲取教训。通过整理和归纳这些信息,我们可以直观地展示漏洞情况和修复成果。

在完成复盘后,我们可以根据漏洞特征进行专项测试,以验证系统是否还存在类似的安全隐患。同时,针对业务团队在安全方面可能存在的短板,我们可以组织相应的安全培训,提升团队的安全意识和防护能力。

总之,通过对漏洞的归类、总结和培训,我们可以全面提升系统的安全性,并降低未来遭受类似攻击的风险。

漏洞复盘参考如下:

图片

三、安全开发生命周期

最后一点,是SDL(Security Development Lifecycle,软件安全开发生命周期)的应用。SDL是一个在软件开发全过程中嵌入安全考虑的框架。这意味着,从项目的立项阶段开始,我们就需要开始介入并考虑安全问题。

在立项阶段,我们会与团队一起评估项目的安全风险,制定相应的安全策略和措施。随着项目的推进,我们会持续跟踪和监督安全实践的执行情况,确保开发过程中的安全性。

此外,SDL还涵盖了软件开发的各个阶段,包括设计、编码、测试和维护等。在每个阶段,我们都会结合SDL的指导原则和要求,确保软件的安全性和质量。

SDL的相关流程如下:

图片

1. 规划和需求阶段

在安全规划需求阶段,我们会根据项目的实际情况和所使用的技术栈,对潜在的安全风险进行预测和提醒。例如,如果项目在规划阶段确定使用MySQL数据库,我们会特别提醒团队注意SQL注入、数据加密不足以及权限管理不当等风险。同样,当使用订单功能时,我们也会指出相关的安全风险点。

为了实现这一目的,我们需要建立一个完善的安全风险提醒系统。当团队在系统中勾选某个功能或技术时,系统能够自动展示该功能或技术可能带来的安全风险,并提供相应的防范建议。这样,团队在开发过程中就能够更加清晰地了解潜在的安全风险,并采取相应的措施进行防范。

通过这样的安全风险提醒系统,我们能够在需求阶段就为项目的安全性打下坚实的基础,确保后续开发过程中的安全性和稳定性。

详情可参考下图:

图片

2. 开发

在开发阶段,确保遵循适当的编码规范至关重要。对于不同的编程语言,如PHP和iOS,都存在各自的安全编码规范。这些规范提供了关于如何安全地编写代码的指导原则和建议。

为了确保开发团队了解并遵循这些规范,我们需要准备相应的培训材料,并关注与业务逻辑相关的安全漏洞。这将有助于提升开发团队的安全意识和技能,从而确保软件的安全性。

可参考下述编码规范:

图片

3. 黑盒测试

在黑盒测试阶段,我们需要利用一些专业的工具来辅助我们进行测试。这些工具包括AWVS、Xray、APPscan以及Burp Suite等。你可以选择其中的一些工具来对目标进行扫描和检测。

以AWVS为例,它是一款功能强大的网络扫描工具,你可以使用它来对目标进行扫描,以发现可能存在的安全漏洞。AWVS的官方图展示了其扫描的一些关键功能和特点。

除了使用这些工具进行自动扫描外,人工测试也是非常重要的一环。人工测试可以发现一些工具可能无法检测到的漏洞,或者对特定业务逻辑进行深入地分析。

4. 白盒测试

对于白盒审计,我们有多种工具可供选择,如Fortify、CheckMax、Semgrep和Xcheck等。这些工具在代码审计中都发挥着重要作用。然而,从实际效果和效率来看,SQL注入和命令执行等漏洞类型通常是审计的重点。

当团队人力充足时,建议对各类高危漏洞进行全面审计,以确保系统的安全性。但在实际情况中,甲方团队的规模往往有限。因此,在资源有限的情况下,建议将核心精力集中在SQL注入和命令执行等高危漏洞的审计上。这些漏洞往往具有较高的风险,且审计起来相对直接和高效。

5. 安全部署

在安全部署环节,当我们将应用程序发布到生产服务器时,确保这台服务器的安全性至关重要。为了实现这一目标,我们需要部署HIDS(主机入侵检测系统)。HIDS能够实时监控和分析服务器的活动,以发现潜在的安全威胁。

在选择HIDS工具时,有多个不错的选择可供考虑。例如,Elkeid是一个开源的HIDS工具,它功能强大且表现优秀。除此之外,还有青藤云等其他优秀的HIDS工具可供选择。

6. 安全培训

安全培训的具体内容,可以参考如下表格:

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/786681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyCharm中配置PyQt5并添加外部工具

Qt Designer、PyUIC和PyRcc是Qt框架下的三个重要工具,总的来说,这三个工具各司其职,相辅相成,能显著提升Qt开发的速度与效率。 Qt Designer:是一个用于创建图形用户界面的工具,可轻松构建复杂的用户界面。…

面试智力题

面试智力题 二进位bit1. 题目:一千杯水,一杯水有毒,怎么用10只老鼠,把这杯水找出来(1)解法1:常规法(2)bit法(位数法) (3) 时间法三级目录 二进位b…

pygame的搭建

pygame的介绍与环境搭建 Pygame模块 安装 WindowsR打开命令窗口,输入: pip install pygame 或者安装指定版本 pip install pygame 2.3.0常用模块 在Pygame框架中有很多模块,官方网址pygame news 。 其中最常用模块的具体说明如下表所示…

Java 操作 Hadoop 集群之 HDFS 的应用案例详解

Java 操作 Hadoop 注意:本文内容基于 Hadoop 集群搭建完成基础上: Linux 系统 CentOS7 上搭建 Hadoop HDFS集群详细步骤 本文的内容是基于下面前提: Hadoop 集群搭建完成并能正常启动和访问Idea 和 Maven 分别安装完成需要有 JavaSE 基础和熟悉操作hadoop 的 hdfs dfs 命令…

【C语言基础】:自定义类型(二) -->联合和枚举

文章目录 一、联合体1.1 联合体类型的声明1.2 联合体的特点1.3 相同成员的结构体和联合体对比1.4 联合体大小的计算1.5 联合体练习 二、枚举类型2.1 枚举类型的声明2.2 枚举的优点 书山有路勤为径,学海无涯苦作舟。 创作不易,宝子们!如果这篇…

计算机网络: 点对点协议 PPP

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

单片机简介(一)

51单片机 一台能够运行的计算机需要CPU做运算和控制,RAM做数据存储,ROM做程序存储,还有输入/输出设备(串行口、并行输出口等),这些被分为若干块芯片,安装在主板(印刷线路板&#xf…

websocketpp上手笔记-Windows安装

WebSocketpp是什么 最近手上有一个c项目,需要用websocket从服务器端收内容。于是网上找了圈,发现WebSocketpp库可以做websocket的客户端。 WebSocketpp也叫WebSocket,github地址是:https://github.com/zaphoyd/websocketpp&…

vuepress-theme-hope 添加谷歌统计代码

最近做了个网站,从 cloudflare 来看访问量,过去 30 天访问量竟然有 1.32k 给我整懵逼了,我寻思不应该呀,毕竟这个网站内容还在慢慢补充中,也没告诉别人,怎么就这么多访问?搜索了下, cloudflare 还会把爬虫的请求也就算进来,所以数据相对来说就不是很准确 想到了把 Google An…

远控桌面多任务并发文件保密传输

远程桌面文件传输是一个重要的功能,大多数远控都是用的桌面程序模式,利用系统自带复制粘贴拖拽文件拷贝功能,做一个ole调用对接,可以将很多控制权交给操作系统。 但我做的是浏览器版,浏览器是沙盒原理,为了…

【2024系统架构设计】案例分析- 5 Web应用

目录 一 基础知识 二 真题 一 基础知识 1 Web应用技术分类 大型网站系统架构的演化:高性能、高可用、可维护、应变、安全。 从架构来看:MVC,MVP,MVVM,REST,Webservice,微服务。

Intel FPGA (6):dac tlv5618a

Intel FPGA (6):dac tlv5618a 前提摘要 个人说明: 限于时间紧迫以及作者水平有限,本文错误、疏漏之处恐不在少数,恳请读者批评指正。意见请留言或者发送邮件至:“Email:noahpanzzzgmail.com”。本博客的工程文件均存放…

Cesium 批量种树

1、准备树种建模 分各种级别建模LOD1-LODN 其中meta.json长这样: Gltf再3Dmax中导出Obj,再通过ObjToGltf的工具转换,参考 https://editor.csdn.net/md/?articleId96484597 2、准备shp点数据。(shp中的点位就是种树的位置) 3、准…

R语言技能 | 不同数据类型的转换

原文链接:R语言技能 | 不同数据类型的转换 本期教程 写在前面 今天是4月份的第一天,再过2天后再一次迎来清明小假期。木鸡大家是否正常放假呢? 我们在使用R语言做数据分析时,会一直对数据进行不同类型的转换,有时候…

String Encryptor custom Bean not found with name ‘jasyptStringEncryptor‘...

项目采用 spring boot 2.6.13 jasypt-spring-boot-starter 3.0.5 apollo-client 1.6.0 自定义jasyptStringEncryptor,服务器上启动死活报找不到bean jasyptStringEncryptor,采用默认的,密文配置项自然解密失败导致服务无法启动。 经过一…

海康Ehome2.0与5.0设备接入EasyCVR视频汇聚平台时的配置区别

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

plasmo内容UI组件层级过高导致页面展示错乱

我使用plasmo写了一个行内样式的UI组件,但是放到页面上之后,会和下拉组件出现层级错乱,看了一下样式,吓我一跳:层级竟然设置的如此之高 所以就需要将层级设置低一点: #plasmo-shadow-container {z-index: …

【计算机网络】select/poll

多路转接 - select/poll 一、I/O 多路转接之 select1. select 接口2. select 的使用3. select 的优缺点 二、I/O 多路转接之 poll1. poll 接口2. poll 的使用3. poll 与 select 的对比 一、I/O 多路转接之 select 多路转接属于 IO 复用方式的一种。系统提供 select() 函数来实…

R语言,数据类型转换

原文链接:R语言技能 | 不同数据类型的转换 本期教程 写在前面 今天是4月份的第一天,再过2天后再一次迎来清明小假期。木鸡大家是否正常放假呢? 我们在使用R语言做数据分析时,会一直对数据进行不同类型的转换,有时候…