甲方安全工作二三事

观点:保证基础设施安全的情况下,甲方安全是需要围绕着业务开展的,一切需要为业务服务,脱离业务去做安全是脱离企业竞争原则的,安全越贴近业务越好。

熟悉组织架构

1、熟悉组织架构,因为在甲方大多数工作是需要业务方配合的。了解一个业务线适合的安全接口人,最好对安全感兴趣并且对该业务线产品非常熟悉的人。快速了解公司的一些安全产品,每个产品提供怎么样场景的安全服务,向业务推广。

2、熟悉安全管理体系,大公司内部安全需要给各个业务做一些安全认证,也要建设集团公司层面安全体系。和一些行业法律合规方面的安全建设。也和要关注核心业务,在核心业务投入更多的经历。

PCI DSS

一般涉及信用卡支付的公司都要过PCI DSS安全标准,才能开展金融支付业务

ISO27001

我了解比如Ctrip的商旅,Kingdee的云之家、友商网、金蝶金融、58同城、腾讯云等都做了ISO27001认证。

ITIL

ITIL为企业的IT服务管理实践提供了一个客观、严谨、可量化的标准和规范。

3、大致熟悉公司战略方向

为什么要研究公司的大致方向,因为有一些技术是需要预研,而不是临时拍脑袋。

比如小米公司出一些智能硬件方面的产品,那么需要提前投入到智能硬件的安全研究 。

比如百度公司出一些无人驾驶汽车,那么他们提前严一些相关的法律法规以技术上问题。

再比如阿里云,他们就要研究云服务安全的问题,云平台上面很多SAAS产品,当然也要研究SAAS安全问题。

比如某些公司把自己的服务搬到云上去,是不是要考虑云安全问题?

安全测试

Web安全:xss csrf xxe jsonp sqli clickhijack owasp top ten etc..

关于XSS当时学习的时候看的evilcos那边web前端黑客,很荣幸当时还得到了evilcos本人的指点。后面就改造了evilcos的xssproble增加了包括内网端口扫描等功能,还有evilcos的xssor工具新增xxe、jsonp劫持。对这些黑客工具改改用用对漏洞理解就加深了一些,在这里不得不感谢evilcos。


甲方安全工作二三事_第1张图片
甲方安全工作二三事_第2张图片

SQL注入漏洞属于Server端的安全问题SQL注入漏洞已经20来年但从没有消失过,因为很多新手devs对安全理解有限所以很容易写出漏洞代码。可能一开始学习union联合注入各种盲注技巧,后面就是绕过各种waf。再后面就要研究各种老外的paper来面对各种奇葩环境。后面就是需要有自己独特的思路才能检测出更多的安全漏洞,最近看到AK48师傅的payload。

1、Another way for regex error based on MariaDB-

id=1 rlike repeat(0x5b,substr(hex(hex(version())),1,8));

MySQL 5.7.X Error based injection:

2、?id=JSON_ARRAY_APPEND(concat(0x414b3438,0x09,@@version,0x09,user(),0x09,database()),1,1)

3、MySQL 5.7.X Error based injection:

?id='%26ST_AsText(ST_LongFromGeoHash(concat(0x414b3438,0x09,@@character_sets_dir,0x09,@@log_bin_index)))%26' 

适用于扫描器, 可绕过Waf探测基于显错型注入。

关注一下各大安全厂商对外开放的安全议题,里面可以反映出一些安全方面的趋势,当然很多内容都是反反复复。

安全评审

安全评审要根据现有的规章制度来给出接受评审方安全意见解决方案,所以首先要制定标准的安全规范,并且要得到个业务部门的认可才行。

1)、安全产品设计开发红线

--前端开发安全规范

--web安全开发规范

--app安全开发规范

--webservice安全开发规范

--网络管理安全规范

--企业数据安全使用规范

--信息系统账户密码规范

--操作系统安全基线规范

--源代码安全管理规范

--开放框架使用安全规范

--网络运维安全规范

--业务安全相关规范·

通过百度你可以找到 阿里 华为 百度的安全编码规范,和其他的安全规范,内容都挺不错的,有些这些规范我们才能顺利开展评审等工作。随着评审项目的越多对一些常见的业务场景也应该总结出来最优的解决方案。当然在工作生活中遇到的一些产品功能点,也可以从自己的角度给出一些安全安全,比如一些在线预订机票环节,微信钱包改密、某某金融放贷的安全策略是什么样的,要用专业的眼光看周围的世界。当然个人的理解可能是片面的,公司可以成立专门的安全设计委员会等形式组织。

上面的安全规范都是N年前的玩法,最好在关键的系统里面实现自动化确保设置安全规范不是摆设可以落地执行,比如:

--前端开发安全规范

安全机制实现在公司框架里面,实在不行提供jar、dll给业务调用。

--app安全开发规范

android的授权能否做在framework层,在bulid项目的是否自动化检测,发版的apk能否立即发现高危问题。

--信息系统账户密码规范

账号体系中的登录、改密有安全提供统一安全模型/密码规则/业务逻辑,然后跟业务风控适配。经常看到很复杂的防护逻辑被黑客的一个小trick给bypass了,这很尴尬。

--企业数据安全使用规范

很多事件告诉内鬼是可怕的,所以数据的使用严格的审批机制是必须的,再就是做好安全审计,及时发现问题。

--操作系统安全基线规范

在系统初始化的时候关闭掉不需要的服务,设置好webserver的启动权限,在server上定期基线安全检测脚本,那些不符合的即时发现处理,再有可以安装一些HIDS,比如OSSEC。安全是动态的,这些安全配置需要定期review,把最新的安全属性add到里面。

--安全开发规范

内否把安全机制内嵌在框架层面,如果不能从框架层面解决,能否以Lib形式提供devs使用。我感觉企业应该在设立安全架构部,在公司的核心系统设计之初加入安全属性。比如阿里的Druid实现了SQL注入检测,在框架层面解决了防注入问题比如百度的前段框架tangram;

信息安全团队的人数一般相对于研发有较少的人数,所以推动问题需要从整体考量,而不是点对点解决问题,否则永远都擦屁股。用统一收口,用户自治思路来解决问题。

--网络运维安全规范

想在好多互联网公司推行devops,可以在关键节点加入关键的安全控制。比如在发布代码环节灰度发布。在代码构建环节集成安全扫描,踢掉不合规的代码。

应急响应:·

1)、应急响应标准流程

--网站被挂马

--服务器遭受DDOS攻击、CC攻击等

--钓鱼邮件

--数据灾备DR

为什么要强调应急流程,因为这样尽最大可能缩减排查时间。说到应急响应需要总结公司核心系统的安全接口人,否则真正的出现问题时候找不到人干着急。

举几个例子,两年前的事件了。

案例一:公司出一款理财产品在论坛发布一些营销方面的帖子,不料活动才不到一周,就招到了竞争对手的cc攻击。

案例二:公司某重要业务2,网络层面的攻击,分析数据包发现sync洪泛攻击。

每一次入侵攻击都应该做出总结,以抵御下一次攻击的到来。

开发知识

1)运维知识和开发知识有助于出促进安全工作,因为大多数安全问题是由于运维和开发引起的,开发是做安全的基础中的基础没必要多说,最好学习一门保值的语言(java c python javascript),长期打磨

时间管理和工作方式

1)、学会观察牛人的做事方式,比如公司某些大牛在infoq或者一些国际会议上讲的知识,我们可以查阅他的工作履历,发表过那些文章,学序渐进的学习。

2)、PPT要规范,在Kingdee的时候总是因为PPT和邮件书写不规范被领导批,自从那以后每次写邮件或者PPT一般都检查两次或者以上。写邮件或者PPT要适当的站在对方角度以使其理解。

研究前沿的安全技术

1、漏洞预警,当漏洞来的时候搭建环境复现,即使不能复现也能加深一下印象,自从2014年到现在只要是高危的漏洞我都是持续跟进的。当时还有一个好的习惯,每周周一都会花费1个小时左右到exploit wooyun freebu等网站看下有没有最新的安全漏洞爆出。

2、你会发现随着时间推移devs会自然而然接触到很多企业核心的技术,而我们部分搞安全的还是停留在"救火阶段",这个我认为是甲方安全比较蛋的事,当然只要是做对公司有意义的事情就是值得的。所以为了自己不可替代性就要不断的自己学习。

长期专注一个比较感觉兴趣的领域,比如java安全:

http://wouter.coekaerts.be/

http://www.pwntester.com/

http://blog.diniscruz.com/

http://wouter.coekaerts.be/

http://blog.csdn.net/ajaxuser/

http://www.angelwhu.com/blog/

个人比较看好的方向大数据安全分析。

开发属于自己创新的产品

安全是需要创新的,自己的工作不能停留在凭经验上面,经验的东西不必要花太多时间摸索,可以相互交流探讨,大家应该争取更多的时间去做创新的事情。

携程云安全:https://security.ctrip.com/

腾讯安全响应:https://security.tencent.com/

阿里云聚安全:http://jaq.alibaba.com/


以上内容仅自己安全观点的简单总结,不一定正确。如有不同看法,欢迎探讨。


之前整理的各大SRC、安全峰会的议题:

https://github.com/0xwindows/SecurityPaper

 

你可能感兴趣的:(Web安全)