首先,把要说的重点总结下,时间就是金钱,剩下的都是废话围绕这些去说的。(PS。本文所说的甲方安全,所有指一个或者两三个普通人的小团队,非大佬团队,非互联网航母企业)mysql
安全必定要由上往下去推进ios
不制定奖惩措施的制度是很难推行落地的git
外部机构的检查远远比本身找出来的问题更有影响力github
做为甲方安全,你要以主人翁的角度去思考和推进,不要把开发当作敌人web
不要任何事都本身造轮子,在现有的基础上加以改造sql
不要一直作救火队员,要推行有利于安全的流程数据库
把安全作得有声音,最好有产出物(P神总结的)安全
好了,开始废话了。服务器
之因此把一我的加引号,是由于在甲方作安全,真的不能靠一我的来作,而是须要周围一切能够借助的资源去作,才可以作起来,不然不少事情举步难行,到头来树敌万千,工做也没法顺利进行。网络
接下来是我作过的事情时间点
2015年一套合规各种检查的管理体系,熟悉基础架构、初步了解业务。
2016年救火的一年,发现问题修复问题,同时规范流程(基础建设)
2017年把一些开源项目加入到环境中,弥补某些方面空缺(逐渐完善)
今年618买了本书,《互联网企业安全高级指南》,神级的甲方建设指导的书,覆盖很全面,思路很清晰。
三张表,1组织架构图,2产品和负责人对应表,3全网拓扑、逻辑架构、物理图、各系统间调用关系、数据关系流等,后面还有各种技术介绍,讲的很全面。
很庆幸本身没有走弯路,大致方向还对,不幸的是都是摸索的去作,会耽误时间,有些客观因素不能实现,好比团队。。。
8月入职,一家具备支付牌照的互联网金融公司,网络运维部下。正好遇上支付牌照的认证,互金企业的监管机构太多了,等级保护,PCI DSS,ADSS,中金认证,人民银行……
因而,为了应对检测,先把现有制度熟悉了一遍,长远考虑,打算从新搞一套符合各位大爷的制度,在原有不熟悉的制度上改造不如从新作。
管理制度制定的思路是依据ISO27001创建框架,分级制定“制度流程–操做手册–记录”。结合等级保护(许多人说等保只是应付,其实等保结合了各类标准,造成了一个安全基本要求,挺全面的)、ITIL(流程上可参考)、BS25999(业务连续性可参考)、NIST SP800-53 和ISO27005(风险评估可参考),管理专业人士请教育,毕竟我也不太懂…
由于金融业的合规要求不少,仅仅27001的覆盖面是不够的,所以结合多一些彻底覆盖各种合规检测。
其实我国的GB系列标准,已经引进了多个ISO标准,并且全中文看着很方便。下面是推荐参考的内容,彻底足够。
ISO/IEC 27001:2013信息技术 安全技术 信息安全管理体系要求
ISO/IEC 27002:2013信息技术 安全技术 信息安全控制实用规则
GB/T 22239-2008 信息安全技术 信息系统安全等级保护基本要求
JR/T 0122-2014 非金融机构支付业务设施技术要求
GB/T 20271-2006 信息安全技术 信息系统通用安全技术要求
GB/T 18336-2008 信息技术 安全技术 信息技术安全性评估准则
GB/T 20984-2007 信息安全技术 信息安全风险评估规范
GB/T 20269-2006 信息安全技术 信息系统安全管理要求
GB/T 27910-2011 金融服务 信息安全指南
GA/T 708-2007 信息安全技术 信息系统安全等级保护体系框架
ISO 22301:2012 公共安全-业务连续性管理体系-要求
GB/T 20988—2007 信息安全技术-信息系统灾难恢复规范
GB/Z 20985-2007 信息技术 安全技术 信息安全事件管理指南
GB/Z 20986-2007 信息安全技术 信息安全事件分类分级指南
GB/T 24363-2009 信息安全技术 信息安全应急响应计划规范
制度的制定并不只仅是应对检查,最终仍是要落实,因此制度的细节必定要切合公司自身状况,尽可能简单易于执行。虽然落实比较难,但流程的东西必定要落实,好比系统上线、变动要规范其安全标准化。通常安全是挂在运维下……就算不是也要和运维打好关系,把基础安全这层打牢,能够在运维推行部分流程,前面提到的4级文件形式,作过的事情要记录,记录尽可能电子化,便于查阅,一是检查的时候真的有,不必再造假了 – -!二是记录也可便于过后的总结、追溯,有一天会帮助到你的。等你们适应了流程,再一点点细化、增长,若是一口气推下去全部制度,很难落实。不想要一口吃成胖子,有了部分框架标准和流程,对于安全很重要了,你不会再浪费时间去查看对外开放端口、以前的struts漏洞新上的系统是否存在等等。
安全必定要由上往下去推进
不制定奖惩措施的制度是很难推行落地的
这是两条制度落地的关键,说多了都是泪,本身体会吧。最理想的状态是造成PDCA闭环,不断完善改进。
ps,互金企业更重视结果的记录,所以在作相似系统变动、补丁修复这样的操做时候要有记录,不管纸质或者电子的。
这一年公司业务发展迅速,上线的系统也多了,起初还有时间挖挖漏洞,后来就是疲于上线扫描、按期扫描、漏洞修复,然而可怕的是一样的漏洞会再次出现,开发小伙伴们忙于进度是不会太注意安全的,立场不一样。还好当时的CTO重视安全,运维领导极其重视安全,对于新公开的高危漏洞,群发邮件后,都会把各个技术负责人召集起来开会,本身评估是否影响并肯定整改期限,领导的强势会有助于工做的进行。
这一年与某大互联网公司合做,签了安全服务,包括培训、渗透、抗D等等。他们挖出来的漏洞会被更重视(同类型问题本身找出来不会很受重视 > <)。因此啊安全开发、上线安全检测流程是必要存在的。
外部机构的检查远远比本身找出来的问题更有影响力
除了救火,其实另外一半的工做是把基础安全作好,不要想一口气作好全部,一步一步来,让你们有个“温水煮青蛙”的过程,渐渐的都会适应。
我的感受初期建设流程2个步骤足够了:
1. 发现目前不足
2. 针对不足加以完善
不要任何事都本身造轮子,在现有的基础上加以改造
具体工做以下
1. 确认开放端口,nmap或masscan扫下,而后和防火墙策略对照下。只提供必要服务的端口,SSH这样的坚定不对外提供。
2. 交换机路由器基线配置,好比snmp配置不能用public
3. 网段的从新划分,访问控制策略的从新制定(起初提过但改动太大,后来外部渗透服务,拿到内网权限后坚定整改,事件驱动)。根据重要性划分网段,网段间严格访问策略(经过路由或ACL都行,目的达到便可),可作部分mac绑定,好比网关、重要网段,办公区wifi只容许链接互联网。
4. 堡垒机,全部设备、服务器均经过堡垒机访问
5. IPS和WAF设备的规则优化,每周的攻击日志分析
其实运维团队基本都会有本身的一套标准,包括自动化部署、监控、日志收集等。所以要作的就是熟悉现有方法,加以完善。
若是在没有任何监控、安全措施的环境下,能够本身搭建一套SIEM,可是拿咱们的环境来讲,目前已经有了nagios、cacti监控网络、性能、进程,服务器文件完整性检测、puppet配置同步,定制的加固过的系统镜像,时间同步、日志收集措施,我以为覆盖面已经足够了,不如在现有基础上进行优化。
欢迎大佬指教还欠缺哪些方面。
实现安全目标的方式有不少种,只要达到目的,最切合企业自身利益便好。
数据库真心不太懂,并且咱们有oracle、mysql、SQLserver、mongoDB,核查下安全基线关注下漏洞动态…好比启动数据库的帐号权限,数据库内的默认帐号,生产库帐号限制,访问权限限制。数据库审计我见到的基本没人开的,影响效率。可是对于数据安全,互金企业对其要求极高,数据的存储、加密、传输、备份恢复都有严格要求,按照监管机构的要求去作就行了╮(╯▽╰)╭
ps,做为互金企业,对灾备切换极其重视,所以每一年的灾备演练要确实去作。
应用安全,其实本质仍是要提升代码安全,请了外部培训、外部渗透测试,也没有搞好这方面,这也是甲方安全的一个痛点。其实人与人之间的交流都同样的,与开发交流,要用“我们”,不要挑开发的问题,要说成那些讨厌的人会不正常的去输入内容,绕过web界面直接修改数据包等等,原则上是找共同利益点,多赞美,人性所在啊。换个角度去想,做为开发任务挺紧的,实现功能、赶进度、改bug,忽然来了我的和我说你的代码不安全,这样不行,WTF,你丫哪根葱你来写啊。因此互相理解吧。
1. 做为甲方安全,你要以主人翁的角度去思考和推进,不要把开发当作敌人
题目是带引号的一我的,所以咱们要借助能够利用的各类资源去作安全。好比DDOS防护,咱们是把服务器托管到IDC机房,对于DDOS防护确定要借助外部力量,机房的流量清洗以及安全公司提供的抗D服务。再好比咱们本身的DNS服务器,天天不少的攻击流量,因而采用外部的DNS服务,本身再也不作DNS解析。
把本身没法作到的事情和非关键业务又浪费精力资源的事情,转交给专业的外部服务团队,性价比更高。
2. 做为甲方安全,其实起初在技术深度上下功夫,并不能给总体企业安全带来太多显著提高,反而流程上安全优化会有显著提高。先作纬度,再作深度。
好比你的开发同窗将源码传到git上公开…
不要一直作救火队员,要推行有利于安全的流程
因而在频频救火的过程当中,即便领导再重视,你依旧处于救火中。流程制定好,处理事情有条理,总体的企业安全会有显著提升。
最关心的流程我以为就是安全事件,那么安全事件发生后第一时间得知,就须要一个监控汇上报过程,包括技术上的监控系统,非技术层面的运营人员发现系统故障。向谁上报,上报哪些内容,如何处理,由谁处理,处理优先级,处理方法,总结积累。
从这个流程能够看到,咱们须要业务连续性分析(处理优先级),应急手册(处理方法),可能这些东西太虚,但起码你要了解本身公司的哪些业务重要,遇到不一样安全事件如何处理,须要外部资源联系谁。
每年能够集中对这些事件进行分析总结,而后根据结果进一步优化代码也好,架构也好,进一步提高安全能力。
总之,我以为重要的2个流程:
1. 安全事件处理流程
2. 系统上下线流程(资产信息变动、基线确认、安全测试等,最有效的把系统安全提高到及格分数)
这一年还肯定了安全预警流程、漏洞修复流程以及下图中运维相关的流程。
制定流程要切合实际,便于落地执行,精简。至因而否彻底合理,在从此的工做中逐渐微调,总之先有一个流程先让你们适应。其次,要把权限责任分散出去,流程能够是本身制定或者和同事一块儿,但至于流程的执行负责人分开管理,让你们知道谁负责哪些,该有什么流程,既起到了规范做用,又减小了出现坑的机率了。
这一年,平常的安全日志分析、漏洞预警、季度扫描、上线测试、漏洞修复、安全事件处理、合规检查已经轻车熟路了,再在原有基础上优化流程,就能够腾出来时间搞些开源的东西。当年作计划的时候写了威胁感知,那时候概念很火,后来给了本身一个大嘴巴,没有大数据根本搞不了这玩意。
目前环境中,没有源代码扫描、日志分析系统,ips和waf都是商业化产品,有时发现一些细节问题没法定制化,资产的管理系统是人工录入,存在延迟更新、失误致使的错误数据风险。因而应用了下面这些开源项目
1. 巡风扫描,感受最好用的是资产管理,能够查看哪些IP开放了什么端口,开放了某端口有哪些IP…能够比咱们的监控系统更简单更全面搜索(毕竟服务器多了人为操做不免会有遗漏加监控等等),还能够本身尝试写写漏洞检测脚本。
2. Nginx-lua-waf,很实用,基于openresty,能够本身写规则防护某些有针对性的攻击,然而老是与时代慢了一步,AI联动waf的时代已经来临了,尤为兜哥出了AI安全三部曲之后…
3. Yasca,源代码扫描,几年前的东西了,支持Java, C/C++, HTML, JavaScript, ASP, ColdFusion, PHP, COBOL, .NET…支持挺多的还免费…并且集成了PMD,JLint等不少经常使用源代码检测工具,建议在git下载,版本较新。若是是PHP大神还能够定制更改。
4. ELK,日志分析,后来公司买了套相似产品…而后我就再也不花费精力研究这个了。
推荐些经常使用的吧,小伙伴们都说好的,不少我都没用过。
网络入侵检测snort的时代过去了,如今基本用suricata。主机入侵检测ossec。Siem产品ossim,跳板机jumpserver,蜜罐t-pot、Awesome Honeypots。
还有个安全思惟导图大全:https://github.com/SecWiki/sec-chart?files=1
当基础安全作好,纬度够了,接下来就是要作深度的事情了。
安全开发知识库:对应各种威胁,不断积累的一个代码库。
蜜罐系统:知己知彼,百战不殆。
AI:先看书学习吧 > <
业务安全:互金行业对业务的功能要求蛮多的,而做为互金企业,风控是一个重点工做,我不清楚大的互联网公司风控和业务安全是如何归属,可是业务安全作得好,防止企业利益受损,是看的见的收益。
产出物这个问题,不少人总要搭建一个乌云知识库,一个XSS平台等等,我心想有哪一个公司的开发会有时间去玩他,乌云知识库网上有,公司资源紧张我不必再搞了。如今我终于清楚为何要搭建了。
把安全作得有声音,最好有产出物(P神总结的)
甲方安全的痛点,在于话语权,公司是以业务为重,安全只是个辅助。所以前面提到的从根本上提升代码安全,推行制度落地流程,都是一个长期的缓慢工做。大的互联网公司安全都很强势,安全不达标系统不能上线,漏洞未按时修复直接影响绩效考核,但有能力作到流程化的基础安全后,才有精力去作业务安全,总之感受路还很长……