前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何学习这么多的安全文章(实践篇)

如何学习这么多的安全文章(实践篇)

作者头像
aerfa
发布2022-05-11 11:29:02
5100
发布2022-05-11 11:29:02
举报
文章被收录于专栏:我的安全视界观

本篇文章为理论的应用案例,有实践之后资料包的打包归纳,也有SDL先关的一些建设思路,读者可以根据大纲择取所需:

1

关于SDL实践案例

在诸多的学习效率提升方法中,令我印象最深刻与最受益的就是:“拆书”式学习方法和“关联”实际情况的应用方法。本文内容延续上一篇理论深入,以学习SDL相关的文章为例,分为以下四个环节阐述如何实践。

1.1 整合SDL资源

聚焦主题是SDL,包括目标设置、测试工具、流程设计、实践经验、效果度量等诸多方面。在整合同类资源之前,要有不错的资料源。通常有以下渠道可以获取:

  • 大众做法:直接在浏览器上根据关键词进行搜索,但是比较花时间,或者被引导向需要付费的平台。投入较多的成本,不过也能有所收获。
  • 官方文档:先考虑原厂商,SDL最早是微软提出来的,所以要先找微软相关的资料(虽然投入巨大,内容繁杂难落地,但用于借鉴和学习是没问题的)。国内做的比较好的有华为和腾讯等巨头公司,前者是效仿微软模式,资源投入巨大,实际也做得比较好,另外也通过对供应商进行可信认证,推动了行业安全水位的发展;后者是贴合业务快速迭代的节奏,产生的新开发安全模型,投入也不小但流程不会那么重。
  • 高效方法:从效率上考虑,建议直接在安全媒介或者微信聊天记录上找,能发现对外公开的大部分资料。找同领域的老师傅“有偿”要资料(别耽误大牛太多时间,有礼貌的发个红包请喝杯咖啡,表示感谢更佳),或者在专门的微信群中搜历史记录,都是比较高效的做法。(此处更多的是指自己搜资料,公司很可能没有相关的预算找厂商,不过也可以尝试联系考虑后期合作)。下图以威胁建模为例,搜到很多群都有相关资料或相关话题:

其次就是要确定搜索的关键字,越明确越容易搜,搜出来的内容也越符合期望,避免做大量的筛选工作。SDL(软件开发安全)本身涉及到的内容非常多,随着微服务、容器等技术的广泛应用,开发安全的定义已经扩张到基础设施安全、部署安全、开发安全技术运营,因此大家常将SDL与DevSecOps混为一谈(本质是取决于开发模式而生的安全活动)。关于SDL的搜索关键字,常见的有:

  • 直接意义上的关键字:SDL、SDLC、开发安全、软件安全、安全左移
  • 其包含内容的关键字:安全培训、安全设计、威胁建模、安全测试、安全运营、漏洞预警、漏洞复盘、架构安全评审、编码安全规范、渗透测试
  • 其相关技术的关键字:IAST、DAST、SCA、SAST、RASP、STRIDE

1.2 借鉴建设思路

比较好的资料,应该是包括企业安全现状、项目背景及需要解决的问题、整体解决方案。无论是厂商还是大厂自研实践,单纯的谈效果、成绩,意义不大。尤其是在做整体方案设计上,需要知道动作之后的背景才比较有借鉴意义。

比如SDL建设的先后顺序及全流程:一般都是先“救火”,即:在业务上线前进行卡点及上线之后的安全运营,安全测试通过后才允许上线。先从安全测试和运营做起,不断找业务试点新安全活动(SCA、SAST等)- -> 试点跑通推向其他产线- -> 再找试点尝试新的安全活动进行试点- -> 再将新活动推广到其他产线,一步步地向左移动。

对于其他资料(非上述觉得好的情况),也是有所借鉴之处,可能会带来整体方案的细节与深度上的补充。除了经典思路摘抄外,还应该关注自己知识领域之外的内容、没想到的点、极大概率上会遇到的问题及解法等。

在线上运营阶段,针对线上漏洞的发现途径,可以从入侵检测的角度来看,如运营NTA、HIDS等安全产品的告警信息,捕捉攻击者对现有产品进行攻击时使用的漏洞。

1.3 关联实际情况

关联当前公司的SDL建设情况,有哪些可以借鉴、有哪些差距、可以制定哪些计划?

借鉴常规的思路,先从“右“往“左”开始做起,即先完成产品上线前的安全测试、发布时的安全审核和上线后的运营。在实际业务场景中,这相对靠后的三个阶段的安全活动均已覆盖,尤其是线上运营的工作做得比较好:

  • 运营阶段常见的安全活动:包括SRC运营对外有偿收取公司漏洞,通过资产管理对公司使用到的开源软件、商业软件进行漏洞预警监控,产品安全事件进行应急响应;
  • 根据产品形态增加的安全活动:公司主流产品为硬件盒子,在解决应用层面的漏洞时,也重视在客户侧部署时系统层面的漏洞,故会有交付手册安全审计和加固手册安全审计两个安全活动。比如通过配置操作系统层面的防火墙(Firewalls or iptables)收敛对外暴露面时,需要注意系统防火墙的持久化,别在主机意外重启后,把高危端口暴露出去;在产品部署后,应该立即修改产品的默认账户密码等。

但继续向“左“的话,在编码阶段与业界大厂存在较大差距。说直白,就是没有完整的静态代码扫描和开源组件检测能力,仅在部分产线上进行使用。安全也要谈ROI,通过分析诸多的实践案例发现:在编码阶段引入代码层面的安全检测是比较合理的,越早发现漏洞修复的成本越小,故应该在该阶段继续想办法,使安全活动嵌入开发流程,安全检查变为常态化。(2020年的现状)

1.4 制定年度计划

在2021年的开发安全BP中,特意加入了静态代码和开源组件检测常态化检测两大指标。此外,还准备冲刺设计阶段,对基础组件、公共平台和部分产品的高危功能进行架构安全评审与威胁建模分析,同时也要不断完善现有阶段的安全活动并持续优化。故在去年的基本上,覆盖了安全编码和安全设计两个阶段,基本在做或做成了以下这些事儿:

安全有时候就是需要靠契机来推动,否则很难单独发起并出色达标。契机可以是不愿发生的安全事件,也可能是公司的重大保障项目。在去年,我们就是托后者的福,在公司主流产品中跑通静态代码扫描和开源组件检测,其中最难的就是:

  • 静态代码扫描的误报调优:精简规则,别想一口吃个大胖子,否则就是落不了地;
  • 制定可运营的开源组件合格红线:开源组件扫出来的漏洞特别多,有的程序不一定使用了存在漏洞的组件,有的程序看似使用了漏洞组件但是并没有进行错误配置,…

然而在今年,继续将“左“移进行到底,准备重点翻过威胁建模大山,并提升安全编码、安全测试的自动化程度。把重心逐步从安全漏洞挖掘,转向安全漏洞预防。

2

通过学习引导兴趣

前面部分主要是用SDL流程建设来举例,对于各环节使用到的技术并未涉及。但最吸引人的可能就是这些技术,究竟哪个好?最初接触的是DAST,到了编码阶段是SAST,后来又遇到不太懂的IAST。

(每个人都会有知识盲区,在每一篇文章中都可能遇到不懂的点,先记录下来,空闲了一定要翻资料弄清楚。一棵知识树,就会以此为枝干,不断扩张生长。)

2.1 IAST知识盲区

看了一些厂商的方案介绍,知道了IAST更加适合SDL,柔和嵌入到研发流程中做漏洞检测。这时候就去找IAST的资料,了解到IAST的分类及优缺点如下:

2.2 寻找测试兴趣

当知识盲区变为熟悉的知识点,甚至会对此产生兴趣,就会产生要了解更多一些的想法,比如:IAST与其他的安全测试方法,有什么优缺点呢?

3

SDL学习记录模板

每阅读一篇文章都需要不少的时间和精力,还得去理解和吸收,花销成本较大,所以应该做到好记性不如烂笔头,适时的进行不同详细程度的记录,以便后续快速进行查阅。

3.1 通用模板设计

一个有用的学习模板,至少要记录:摘抄和思考。摘抄是对已经看过的资料的提炼,讲得好的、遇到不清楚的、感兴趣的都记录下来,并标明出处以备不时之需;思考是当读到的文字产生思维火花碰撞时,与场景相结合的、十分宝贵的想法和思绪,对后续的行动计划会产生指导意义,对后续遇到问题的解决也能有所帮助。

3.2 SDL模板示例

除了以上两点之外,个人还在记录表中加入了原文地址、阅读状态、原文存储状态等列名,进一步丰富记录下来的内容。记得是在2019年进行的系统性收集和学习,取名:“软件安全开发生命周期-整合计划”。

  • READ:代表是否已经完成阅读,有时候做专题收集,文章太多会来不及消化,设置这个状态进行标记,不会担心时间久了忘记。
  • SAVE:如果是比较好的文章,在阅读后就保存下来。比较推荐印象笔记的浏览器插件,保留原格式。
  • GAIN:主要指突破现有知识体系,单纯从文章的内容来看有新的收获,提炼记录下来后续可以借鉴。
  • THINK:涵盖对文章内容的质疑、提问,以及对后续工作的指导。现在沟通十分便利,当遇到问题时联系作者讨教,与高手联机也是提升的快速方法。

4

SDL文章资源打包

为了方便同行学习及感谢长期以来对《我的安全视界观》的关注,现将收集到的一些SDL资料进行打包分享。请在公众号后台回复:SDL文章资料集锦,获取下载地址。

Excel中,比较好的有:

  • 安全功能表:用于设计阶段,提供给业务线进行安全设计自查;
  • SAMM实施前评估:开发安全的成熟度评估体系,可用于回答领导关心做得怎么样等问题,不过现在使用BSSIM来评估的比较多;
  • VIPKID产品设计与开发安全红线:如名字所述是开发安全红线,内容实则和安全设计有所相似。

Word中,比较好的是:

  • 华为产品安全基线:当前已经更新了很多,但是作为安全基线还是有很多适用的内容;
  • JAVA代码审计字典:JAVA常见框架及web漏洞示例,很适合代码审计初学者使用;
  • SDL各项指标参考截图:一些指标的截图,主要是来自安全大会的分享材料,可参考其制定开发安全指标。

更多格式的资料就不再逐一推荐,部分可参照以下截图,更多内容还是移步到分享链接。

5

后续内容提前知道

从事开发安全方向已经五年有余,遇到并解决了很多问题,早期在空闲时间写过《SDL最初实践》。后来想促进同行交流,于是发起并主理“SDL专属交流群”三年有余。本着能为行业做出一点点贡献的心态,从去年开始着手整理后期的一些实践内容,并基于自己的理解将微信群中的内容梳理成章。在接下来,将计划逐步分享这部分内容,姑且给该专题取名叫:【SDL 100问】

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我的安全视界观 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1
  • 关于SDL实践案例
    • 1.1 整合SDL资源
      • 1.2 借鉴建设思路
        • 1.3 关联实际情况
          • 1.4 制定年度计划
          • 2
          • 通过学习引导兴趣
            • 2.1 IAST知识盲区
              • 2.2 寻找测试兴趣
              • 3
              • SDL学习记录模板
                • 3.1 通用模板设计
                  • 3.2 SDL模板示例
                  • 4
                  • SDL文章资源打包
                  • 5
                  • 后续内容提前知道
                  相关产品与服务
                  手游安全测试
                  手游安全测试(Security Radar,SR)为企业提供私密的安全测试服务,通过主动挖掘游戏业务安全漏洞(如钻石盗刷、服务器宕机、无敌秒杀等40多种漏洞),提前暴露游戏潜在安全风险,提供解决方案及时修复,最大程度降低事后外挂危害与外挂打击成本。该服务为腾讯游戏开放的手游安全漏洞挖掘技术,杜绝游戏外挂损失。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档