一、说明

1.1 背景说明

之前在N市,面试的是“IT系统安全工程师”的岗位但合同上签的是“集成工程师”的名头(前阵子找之前的邮件offer才注意到的),工作内容现在看来还是和当时离职时表述一样基本一半是系统集成的工作一半是安全的工作。其好处是一方面对数据库、中间件、大数据平台等技术有比较深入的了解,另一方面对4A、SoC、安全基线等安全概念也有一定程度的认识。

来到S市,司职是正经的安全岗位“渗透测试工程师”,渗透能力逐渐形成了比较完整的知识体系,最后又演变成了当前的SDLC认识。

之所以说“不成熟”,一是因为从自己感觉上没有很完善,二是因为没有大量的实践证明其可靠性和可行性;而之所以要“强行描绘”,一是为了做个阶段总结,二是感觉后边去T公司后短时间内也没机会实践SDLC全流程。

其实感觉企业安全体系核心包括两方面,一是以SDLC为核心的单个应用的从设计到上线全流程,二是以SoC为核心的所有安全设备、安全系统的统筹管理。但对于后者一是自己概念就更模糊了,二是感觉即便在业界也未形成统一的认识,如果以后有更深的理解再说了。

1.2 安全行业一些不成熟预测

出身:即便到现在网上还可以经常听到某某黑客大佬不是信息安全专业出身、不是计算机学院出身、没读过大学、小学没毕业之类的说法。但就趋势而言,以后科班出身的比例会越来越高,专业知识掌握得越深的人走得越远。

入行:现在进入安全行业,主流途径一般是学校课上学计算机/信息安全的知识、课余自己找环境实操打打CTF,毕业后进入安全乙方安全公司、安全岗,积累一定程度后转入甲方安全岗。

归宿:在职业前中期更多要求技术深度,在职业中后期更要求知识广度;公司越大技术深度的存活度就越久。其实就和程序员类似,更多的出路就是管理岗,更多的公司要的就是你能给公司架起安全体系。

二、SDLC概念理解

2.1 关于SDLC名词来历

最开始听到的应该不是SDLC而是SDL,而最早开始听到SDL应该是在软件工程课上讲的微软的SDL;因为软件工程讲的是软件开发生命周期,所以我一直以为讲课一笔带过的微软SDL是“Software Development Lifecycle”。

近几个月听到很多公司很多安全岗位都讲SDLC,感觉虽然意思可以理解但安全直接占用开发的名词不太好吧,但回头一看其实出自微软的SDL并不是“Software Development Lifecycle”而是“Security Development Lifecycle”,确实本身就是一个安全名词。

一方面,可能安全人员之间说SDL或SDLC不会有歧义但与开发等交流就会有问题;另一方面,当下安全所谓的SDL就是指安全人员要介入到软件开发生命周期的整个流程中,在开发框架大体不变基础上建设安全。所以现在书面形式上更多使用S-SDLC(Secure Software Development Lifecycle)的说法(比如OWASP)。

2.2 SDLC的含义

我们前面说,当下在安全行业中,SDL、SDLC、S-SDLC都是一个意思,都是指介入到“Software Development Lifecycle”中建设安全,那具体怎么个建设法呢。

我们知道软件开发生命周期可以分为可行性分析、需求分析、设计、编码、测试、上线、运维几个阶段。在最开始的时候,软件一般是都不做安全的基本都是在运维阶段发现安全漏洞后再去进行修复;在开始做安全后发现很多漏洞完全可以在上线时自我检测发现(很多公司现在都是做到这一步在上线时设置安全关卡);在积累到一定程度后人们又发现,检测出的很多安全问题要么都是同类原因引起的(比如SQL注入都是因为使用拼接形式)要么就是因为软件架构原因修改工作量相当大(比如原来没有水平越权防护数据库的所有资源都没有权限标识),如果安全部门在编码等更早阶段介入那就可以更多避免”翻工“的情况。

总而言之,安全中的SDLC就是指将原来集中在软件开发生命周期后期进行的工作,散布到软件开发生命周期各个阶段去,在每个阶段做安全该做能做的事。

三、SDLC各阶段安全可做的事情

3.1 软件开发开始前

安全培训:主要是告诉开发安全是什么、安全要做什么、安全怎么做的。可选的一些主题,如”渗透测试方法“、”渗透测试工具使用“、”某种语言的安全编码规范“等。

3.2 可行性分析阶段

法律法规可行性分析----针对要开发的系统,衡量其是否违背法律法规,或者有哪些需要注意的点。

3.3 需求分析阶段

安全编码规范----参与需求分析会议,了解需求,针对需求拟定相应的安全编码规范。

3.4 设计阶段

各方案数据流图----要求开发提供数据流图、设计文档,对各方案进行安全评审。

3.5 编码阶段

静态代码审计(SAST)----使用Fortify、Sonarqube等工具对代码进行扫描,一方面理解代码是否按设计实现,另一方面看是否有存在问题的地方。注意静态代码扫描误报一般会比较大要注意先自己确认,而不要一把就给开发。

3.6 测试阶段

第三方组件列表----要求开发整理使用到的的第三方组件列表,作为运维阶段的输入。主要包括组件名称、组件官网、当前使用组件版本等列。

端口矩阵列表----要求开发整理端口矩阵列表。主要包括进程名、运行用户、监听IP、监听端口等列。

手工渗透----对系统进行手工渗透测试。可参考“渗透测试思路总结”。

3.7 上线阶段

基线扫描----自行编写基线规范检测程序,在上线时要保证主机和服务都符合基线规范。可参考“安全基线自动化扫描、生成报告、加固的实现(以Tomcat为例)”。

网络扫描----使用Nessus等网络扫描器对主机进行扫描,确保服务器上运行的服务软件没有什么重大漏洞。

web扫描----使用AWVS等扫描器对web进行扫描,确保别人使用这些通用工具也扫不出什么问题。

3.8 运维阶段

第三方组件最新版本跟踪----在提供的第三方组件列中中添加最新版本一列,编写自动追踪脚本每次运行就可以在“最新版本”列显示最新版本。可参考“Python3第三方组件最新版本追踪实现”。

第三方组件CVE跟踪----编写脚本,每天爬取更新的CVE并筛选出产品使用的所有第三方组件的CVE。可参考“最强半自动化抓鸡工具打造思路”。

应急响应中心----包括SRC邮箱、SRC网站。

企业SDLC建设不成熟设想的更多相关文章

  1. 企业安全建设之搭建开源SIEM平台

    https://www.freebuf.com/special/127172.html https://www.freebuf.com/special/127264.html https://www. ...

  2. VI设计对于企业文化建设的重要性

    VI设计对于企业文化建设非常重要,包括企业品牌形象塑造.企业价值提炼.企业文化建设等有着非常重要的作用.VI设计的发展趋势是什么? 第一 从静态到动态 中国过去一段时间以来的VI设计,也是以一种静止和 ...

  3. 安全管理中心(SOC)引导企业信息安全建设的思路

    SOC即企业安全管理中心,该模型可帮助企业信息安全人员在进行安全建设方面提供整体性的参考.如下所示,以下模型分为数据采集部分收集了各类设备及日志等数据,这些数据收集到了以后提供给SOC安全管理中心,而 ...

  4. 企业高并发的成熟解决方案(一)video(笔记&知识点)

    知识点 答案 什么是高可用(HA) 高并发发生在哪两处 app服务器会出现什么问题,有哪些解决方案? 数据库并发有什么要求? hadoop集群的作用 负载均衡的功能有哪些 负载均衡的分类 哪种负载均衡 ...

  5. 企业高并发的成熟解决方案(一)----搭建LVS负载均衡

    企业整个架构分析 1. App服务器上边部署应用,如果是java的话,一般是tomcat: 2. 负载均衡服务器负责转发请求,这种既有主机又有备机的负载均衡成为高可用(HA): 3. 一般web服务器 ...

  6. 企业安全建设之搭建开源SIEM平台(上)

    前言 SIEM(security information and event management),顾名思义就是针对安全信息和事件的管理系统,针对大多数企业是不便宜的安全系统,本文结合作者的经验介绍 ...

  7. 企业架构研究总结(38)——TOGAF架构能力框架之架构能力建设和架构治理

    为了确保架构功能在企业中能够被成功地运用,企业需要通过建立适当的组织结构.流程.角色.责任和技能来实现其自身的企业架构能力,而这也正是TOGAF的架构能力框架(Architecture Capabil ...

  8. 从身份证管理系统思考企业CMDB的建设

    关注嘉为科技,获取运维新知 对大部分中大型的企业来说,CMDB建设对于整个IT服务和IT运维管理的重要性不言而喻,但是目前仍然有非常多的企业无法建设好CMDB. 我最近刚好接触了一个公安系统的朋友,他 ...

  9. 企业架构研究总结(37)——TOGAF企业连续体和工具之架构资源库及架构工具的选择

    3. 架构资源库 在一个企业,尤其是在一个大型企业中,建设一个成熟的架构往往会产生大量的工作产品.为了很好地管理和利用这些工作产品,企业需要制定一个正式的针对不同类型架构资产的分类方法,并且还需要专门 ...

随机推荐

  1. Redis缓存数据库基础

    思维导图xmind文件:https://files-cdn.cnblogs.com/files/benjieming/Redis.zip

  2. 2019-09-11 redis命令【转载】

    redis中添加key value元素:set key value;       获取元素:get key ;   redis中添加集合:lpush key value1 value2 value3. ...

  3. 把JSON数据格式转换为Python的类对象

    JOSN字符串转换为自定义类实例对象 有时候我们有这种需求就是把一个JSON字符串转换为一个具体的Python类的实例,比如你接收到这样一个JSON字符串如下: {"Name": ...

  4. 写css注意的事项

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Spring Cloud入门

    Spring Cloud为开发者开发分布式应用提供了便捷工具(包括配置管理.服务发现.断路器.智能路由.微服务代理.控制总线.一次性令牌.全局锁.领导者选举.分布式会话.集群状态等).为开发分布式应用 ...

  6. oracle高级部分

    回顾 多表关联查询的方式 内连接 根据AB表关联的条件进行过滤查询,只保留满足条件数据 Select * from a,b where a.xxx=b.xxx; Select * from a inn ...

  7. 理解AMD ,CMD,CommonJS规范

    https://blog.csdn.net/xcymorningsun/article/details/52709608 理解AMD ,CMD,CommonJS规范 2016年09月30日 10:33 ...

  8. windows下查看webp格式图片

    关于webp 时下webp格式日渐势起,主流浏览器(IE: ???)已经开始支持webp,诸多互联网企业(Facebook 和 ebay,国内的有淘宝.腾讯和美团等)都已经在不遗余力的将webp应用到 ...

  9. JavaScript正则表达式进阶指南

    摘要:正则表达式是程序员的必备技能,想不想多学几招呢? 本文用JavaScript的exec方法来测试正则表达式. 例如,正则表达式**/F.*g/会匹配"以F开头,以g结尾的字符串&quo ...

  10. Ubuntu18.04启动后一个光标在左上角闪动

    1.在实验室服务器上安装Ubuntu18.04后,启动后能够进入grub,但选择Ubuntu后出现只有左上角一个光标在闪但是进不去系统的现象. 2.重新启动选择进入recovery mode,出现如下 ...