摘要
2023年07月,我所在的单位承接了某市全域智慧旅ing台的建设任务。该项目旨在提升服务指与游客体验。在该项目中,我担任系统架构师,负责该项目的架构设计工作。
本文结合我在该项目中的实践,详细论述了DEVSECOS的具体应用:编码阶段通过自动化静态代码分析来检测代码,依赖库中的安全漏洞;测试阶段通过模拟真实攻击来验证系统安全控制措施的有效性:部署阶段通过容器扫描确保部署环境安全。通过上述措施,安全缺陷逃逸率从32%降到了1.5%以下,有效保障了系统的安全运行。
该项目历时12个月开发完成,并于2024年07月正式上线,台成功整合了200多个旅游资源,实现了一机在手畅游全程的服务目标。
项目背景
某市拥有丰富的自然和人文旅游资源为促进旅游产业升级,提升服务质与游客体验,决定建设一个全域智慧旅游服务台。我所在的单位成功中标该项目,并于2023年07月正式启动该项目的建设工作。我被任命为系统架构设计师。负责该项目的假设与演进工作。
该项目的建设的内容主要包括智慧服务/智慧景区管理和智慧监管子系统。智慧服务子系统面向游客,涵盖行程规划,们预定,导游预定停车服务ard导览服务等功能,为游客提供全周期智能服务体验;智慧景区管理子系统面向景区,涵盖指挥调度,安全防范,客流管理,景区资源管理,经营分析等功能,智慧监管子系统面向旅游主管部门,涵盖旅游服务质量ia,行业监管,决策支持等功能,以保障行业安全,规范市场秩序,优化游客服务。
该项目以JAVA和ython作为主要开发语言,整体操i用基于ASRING Cloud的微服务架构。此外,还采用了RFID,MQTT等技术实现设备设施的智能管理和管控,采用了KAFKA,flink,doris等大数据技术为景区提供决策支持,采用VR技术为游客提供成精神的体验以增强景点的吸引力。
devsecos 的重要性
该台承载了大量敏感数据,如用户身份信息,支付交易记录,游客行为数据,因此需要满足《网络安全法》《数据安全法》M《个人信息保护法》以及等包三级合规要求。然而,在传统开发模式下,安全通常在软件开发周期的末期才介入,这种事后补救的方式,导致漏洞的成本极高,严重影响项目进度和交付质量。
为了解决这个问题,我们决定引入Devsecos,践行安全左移的历年,尽可能在软件开发早期阶段就考虑安全实践。devsecos是一种将安全实践无缝集成流程的方法论,旨在通过在软件开发生命周期的每个阶段自动化嵌入安全措施,实现开发,运维和安全一体化管理。
在该项目中,devsecos的实施主要包括计划阶段,编码接单,测试阶段,部署阶段和运维阶段。计划阶段的主要任务包括威胁建模,安全需求分析,风险古语合规分析,编码阶段的主要任务是通过静态代码分析识别安全漏洞。测试阶段的主要任务是通过模拟真实攻击来发现安全漏洞。部署阶段的主要任务是通过容器扫描,基础设施即代码扫描和加固,确保部署环境安全。运维阶段的主要任务包括持续安全监控,漏洞补丁管理事件的响应语调查。
限于i按章,本文着重祭扫DEVSECOS在编码阶段,测试阶段和部署阶段中的具体应用。
编码阶段
在编码阶段,我们通过自动化静态代码分析来发现源代码,依赖库中的安全漏洞,在编码阶段修复漏洞的成本员低于生产环境中的修复成本。
我们部署了somaeqube静态代码分析台,并继承了githab ci/cd流程中当开发人员提交代码合并请求时,会自动触发SomarQUBEJ进行静态代码请求, 会自动触发进行静态代码分析,我们还设置了严格的质量门禁。任何试图引入新的,中高危安全漏洞的代码请求,都会被自动阻止,同时,会将问题只改该代码的工程式,并附上详尽的漏洞说明和修复建议。
例如,以为开发人员在实现游客ing论的功能式,将用户提交的令直接嵌入到网页中,立刻识别出这式典型的XSS漏洞;如果攻击者发布了包含恶意脚本的令,当其他正常用户浏览这条论式,恶意脚本就会在他们的浏览器中静默哦执行,可能导致他们的登录状态被劫持,个人信息被截取,该代码合并请求被拦截。收到即使反馈的工程师,根据提供的修复指引,迅速重构了代码,对所有用户输入内容进行了严格的输出编码,有效阻止了一个高为漏洞进入生产环境。
另一位开发人员在实现消息通知wei师,为了本地调试方便,将云服务商的访问密钥临时写入了文件,当他试图提交这段代码师,立即弹出了警告inng阻止了提交,同时提示它正确的密钥管理方式。
测试阶段
在测试阶段,我们通过模拟真实攻击来验证系统的啊暖控制措施是否按预期生效。
在该项目中,我们尤其重视访问控制策略,因为ing他涉及游客,景区管理 员和监管人员等多种角色,每个角色具有不同的权限级别,确保数据安全和合规性至关重要。因此,我们重点进行了访问控制策略测试,师用自动ua工具模拟不同用户长衫访问未授权资源,验证权限控制的有效性。
例如,在一次测试中,测试人员在QA环境中,模拟了两个游客登录会话。测试人员首先使用游客A和游客c的登录会话。测试人员先使用游客A的身份证不正常登录并查询自己的定点信息,获取到查询au接口地址,该地址包含了订单ID参数。接着,测试人员保持了A的登录状态,但手动修改请求中订单ID为游客c中的的订单ID,然后发送请求。测试发现了一个严重的安全漏洞;当游客A尝试通过修改URL中的订单ID来查询游客C的订单详情师,虽然无法看到顶订单的文本信息,但系统接口错误的返回了属于游客c的电子二维码图。
攻击者可以利用该漏洞遍历订单ID,量获取台所有电子二维码,进而可能导致他人冒名入园,资产被盗用等严重后果。在定位到问题后,开发团队立即对该接口进行额修复。修复的核心逻辑师在后台处理订单查询请求时,增加了一到严格的资源归属全按段,记载执行数据库查询钱,先校验URL中传入的ORDERID所对应的订单,其所数的userid时否语当前请求对话中的USERID完全一致。如果不一致,则直接拒绝访问呢。
部署阶段
在部署阶段,我们通过容器扫描确保部署环境安全。
容器作为应用运行的载体,其安全性直接关系到整个系统的稳定性和数据保护。如果容器镜像包含漏洞或错误欸子,部署到生产环境后可能被攻击者利用,导致数据泄露,服务中断或合规性违规。为了能在部署前及时发现并修复这些问题,避免风险进入运行时环境,我们采取了容器扫描措施。我们在容器经此昂仓库中集成了扫描器,任何镜像被推送到生产环境的仓库时,都会自动促发进行扫描。我们设置了情难全策略:禁止部署任何包含高危或严重级别漏洞的镜像。例如,在一次游客en'g体验违反因为的更新中,扫描发现其基础镜像存在一个新喽的缓冲区溢出漏洞,部署流程被自动中止,直到我们更新了其安全基础镜像为之。
总结与感悟
通过DEVSECOS实践,安全缺陷逃逸率从32%降到了1.5%以下,在保障业务高速发展的同时,实现了安全风险的精准防控。该项目历时12个月完成,并于2024年07y月正式上线,台成功整合了200多个旅游资源,实现了一机在手畅游全球的服务目标。
通过上述实践,我对安全左移的理念有了更深层次的理解;安全不再是安全团队的专力,而是每一位产经理,架构师开发者和运维工程师的共同责任。展望未来,我们将继续神户的应用,探索人工智能在威胁预测,自动化响应等方面的潜力,以构建更智能,自适应的安全体系