专栏首页信安之路聊一聊应用安全那点事

聊一聊应用安全那点事

从我最开始学习安全接触的就是 web 安全相关,当时的自己完全不明白学习的意义是什么,只知道学习了 web 安全可以去网络上寻找存在漏洞的应用,拿到 webshell、然后提升权限到系统最高权限,这一个流程下来基本就达到了顶峰,在突破的时候是最有成就感的,我相信有非常多的同行是在这样的情况下入行的。web 安全就是应用安全中的一部分。

说到应用,什么是应用?百度百科上说的一句 适应需要,以供使用 ,在现在的互联网时代,所有的软件都可以叫应用,他们的产生是为了满足我们的日常需求,方便我们的衣食住行,多年前是 PC 互联网的时代,近几年进入了移动互联网时代,未来会是物联网时代、人工智能的时代 等等,随着科技的进步,安全的需求也在不断发生着变化,近几年做渗透的朋友越来越感觉到难做,web 的安全漏洞越来越少,这可以说是时代的进步、安全意识的提升、代码安全性增加、应用主战场的变化 等等一系列因素的结果,这对于安全行业来说是好事,整体安全性在不断提升,侧面说明我们安全从业人员的价值体现。

对于应用产生的整个生命周期来讲,考虑安全越早越好,早期的应用主要是为了实现功能、快速上线,互联网行业迭代更新非常快,时间就是竞争力,只有在业务因为安全问题而出现重大损失的时候才专门去招人或者购买安全服务进行及时止损,在上线之前没有考虑安全,带洞上线,从而导致大量的用户隐私泄漏,最终的受害者还是使用应用的用户,经过多年安全人员的努力,企业对于安全也慢慢重视起来,那么如何做好应用安全呢?

SDLC 大家都听过,翻译过来就是软件开发生命周期,是为了规范开发的流程、提升开发效率、增强代码质量,做到闭环,SDLC 包含五个阶段:需求分析、设计、编码、测试、发布,如图:

但这里并没有把安全考虑进去,我们是否可以将安全贯穿到整个软件开发的生命周期呢?如何做?请看下图:

1、在需求阶段做风险评估,提前将风险识别出来,作为安全的需求提交给研发,不只是功能上的,还包括一些架构不合理的地方,这对安全人员对能力要求是非常高的;

2、在设计阶段做威胁建模、安全参与进行设计 review,指出设计存在的安全威胁,共同完成安全的设计方案;

3、在开发阶段,要进行代码 review,提前做代码审计通过人工或者自动化的方式,这里对安全专业人才的需求也很高;

4、在测试阶段进行安全评估,也就是安全测试或者渗透测试,通过黑盒的方式找出安全 bug,在上线之前解决掉,可以用功能测试的小伙伴进行合作或者其他的方式;

5、在发布阶段要对主机进行安全检查,升级最新补丁、关闭无用端口等,将攻击面降到最低;

6、上线之后,通过开始 SRC 平台接收来自白帽子的漏洞提交,补充安全测试不足,做到闭环;

经过上面的一系列操作之后,可以将大部分的安全问题扼杀在上线之前,从而大大降低应用的安全风险,但是完全这么做是需要大量的人力和时间的,对于大部分企业来说是不可能完全做到的,因为可能因为流程的复杂度或者人员的能力问题,造成项目的延期、错事商机,具体做不做以及怎么做,需要上层领导的支持,不同公司的情况不同,需要制定的流程也不一样,落地情况也不同。

理想的情况下是完全按照上面的流程做每一个项目,这是多少安全负责人的理想,可是往往投入产出比不那么好看,得不到领导的支持,参与流程的同事也很抵触这么做,毕竟增加工作量多事,不是所有人都愿意做的,所以作为安全人员并不能强迫大家都按照你的要求来做,就需要平衡我们与开发人员之间的关系,在不增加别人工作量的同时,提升软件安全性,在规范流程的同时,提升自动化能力,将研发当作我们的用户,我们是为业务服务的,而不是监管机构。

今天就聊到这里吧,想要落地这个并没有那么容易,也不是每一家公司都能做到,在自身人力不足的情况下还是不要做这个,做好渗透测试,在恶意攻击之前发现安全问题,推动开发尽快修复安全问题,如果业务系统比较多,自身无法覆盖全面的渗透测试,可以开设 SRC 集白帽子之力来帮助企业发现安全问题,然后自研扫描器,将历史安全问题集成到扫描器中,保证历史安全问题不再出现,我们的价值也就能够很好的体现了,安全无止境,共勉!

本文分享自微信公众号 - 信安之路(xazlsec)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 学习Moco接口框架

    Moco框架是Github上的一个开源项目,可以模拟一些http、https、socket协议。

    用户5521279
  • Nginx location匹配规则

    上述配置,默认访问/会重定向到/my-module, 然后直接返回/data/my-module/dist下的html等静态文件。

    Ryan-Miao
  • 解决云服务器1M带宽建站速度慢的问题 优先优化网站速度后升级配置

    目前,我们在国内云服务器/VPS主机商家中,我们看到大陆机房、中国香港机房,以及其他亚洲机房的带宽大部分都是1M起步,有些是可以看到2M或者3M之类的,反正给予...

  • Spring Boot使用Shiro实现登录授权认证

    1、Shiro是Apache下的一个开源项目,我们称之为Apache Shiro。它是一个很易用与Java项目的的安全框架,提供了认证、授权、加密、会话管理,与...

    朝雨忆轻尘
  • Spring Boot 整合 Shiro ,两种方式全总结!

    虽然 Shiro 功能简单,但是也能满足大部分的业务场景。所以在传统的 SSM 项目中,一般来说,可以整合 Shiro。

    江南一点雨
  • 开发小程序中,微信支付如何设置?

    Ø MCHID:指的是微信支付商户号,可以登录微信支付商户后台(pay.weixin.qq.com),在【账户设置->账户信息】中查看

    网博资源
  • 教你避雷!网页设计中常见的17个UI设计错误集锦(附赠设计技巧)

    以下内容由摹客团队翻译整理,仅供学习交流,摹客iDoc是支持智能标注和切图的产品协作设计神器。

    奔跑的小鹿
  • 这几个前端开发奇技淫巧,你都知道吗?

    今天,就简单跟大家分享一下,之前我在 Twitter 和 GitHub 上看到的几个比较有意思的前端开发技巧,希望能给你耳目一新的感觉。

    GitHubDaily
  • Spring Boot + Spring Cloud 实现权限管理系统 后端篇

    登录验证是一般系统都会有的功能,验证的方式也多种多样,比如输入式验证码,拖动式验证条,拖动式验证拼图等等。

    朝雨忆轻尘
  • 新人自学前端,如何快速打好前端开发基础?

    怎么样能快速的打好前端开发的基础,然后让自己的技术尽快的提高一个层次?相信这是每一个前端新人都在思考的问题。而这个问题也不止一个同学问过我,怎么样能快速学好前端...

    web前端教室

扫码关注云+社区

领取腾讯云代金券