软件公司的安全建设
Todd

最近公司同事做了件离谱的事,把给客户公司写的软件源代码放到GitHub上开源了。
要说光是软件源代码,对这件事儿说也不算太大,因为是他自己负责的一个小项目,本身也没太大的商业价值,只能说公司的项目随便开源了,一个招呼都不打,意识不行吧。
最大的问题是,里面他硬编码了密码到配置文件里,配置文件也给上传了,客户最近几天在做PT,一下窟窿就捅大了。

现在客户让我拿出来解决方案,以及保障后续不会出现类似情况。
我想了想,这件事儿的问题应该包括以下几个方面:

  • git 的代码管理培训

    公司有代码管理规范和自建gitlab,感觉这个同事并不清楚怎么使用。还有其他同事写了代码,没有提交git,导致代码丢失。需要加强git和代码管理的培训。

  • 安全意识

    首先,密码硬编码到配置文件中,就不是很靠谱,但是很多人都这么干,这个需要建立机制,比如代码审查,或者代码扫描,用于前期发现,代码加密,或者代码混淆等手段用于实际项目。

    其次,把密码传到GitHub上,凸显安全意识淡薄。需要加强培训。

  • 工具建立

    员工出错在所难免,我们并没有及时发现,也属于管理责任。需要建立工具库,提早发现员工把公司相关项目传到GitHub或者Gitee等其他平台上。

  • 入侵问题

    除了本次的问题,公司也出现过员工写的代码或者采用的框架不够安全,导致被入侵。

基于上面的问题,需要统一建立安全体系,囊括考虑。
具体的措施应该有:

git 相关

  1. 规划git的项目和仓库,建立Rinsys的git仓库使用规范
    • 比如product 还是个人项目,
      • 项目名称标准 必须是客户简称+项目简称
    • 比如项目必须开库管理代码,不能因为项目太小不开库
    • 比如git的readme标准
    • 不更新维护的项目及时归档
  2. 培训git和gitlab基本操作,细致到包括最基本的操作。
    • 比如创建项目、上传代码、branch 、merge 等
    • git高级操作,比如stash
    • git管理操作,比如仓库权限等
  3. CI ?
  4. 公司代码不经同意,不能私自上传其他平台,比如GitHub,Gitee等,更不可随意开源公司代码。

项目中的安全意识

  1. 所有来自用户端的数据必须进行过滤,比如sql注入,xss等
  2. 加密相关问题
    1. 项目可以使用SSO的,必须使用SSO登录。
    2. 数字签名,api调用必须使用数字签名,比如使用JWT,防止数据被篡改。
    3. 项目中所有的密码存储,没有解密需求的(一般为用户密码),必须使用不可逆加密,比如md5+salt,sha256等。
    4. 有解密需求的,使用非对称加密,比如RSA等。私钥必须严格保管,不可泄露。不可直接直接存储到项目中,需要使用环境变量或者CI工具挂载。

安全工具制作

  1. 寻找、制作扫描、爬虫工具,监控员工是否私自上传公司代码

运维安全

  1. 公司的服务器权限是否符合最小权限原则
  2. 公司的服务器操作系统是否定期更新
  3. 公司服务器目录能否定期进行安全扫描
  4. 公司服务器和业务系统是否定期进行安全漏洞扫描
  5. 公司的服务系统(Git、邮箱、企业微信、qtools等)的用户权限是否符合最小权限原则
  6. 员工的代码是否有安全性和健壮性扫描
 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
本站由 提供部署服务
总字数 76.2k 访客数 访问量