腾讯代码安全指南旨在梳理API层面的风险点并提供详实可操作的编码指引,是我们开展DevSecOps安全左移实践探索过程中,梳理沉淀面向开发人员的代码安全参考材料。

本次开源涉及C/C++、JavaScript、Node、Go、Java、Python六门编程语言的安全指南。

(点击查看大图)

????项目主页:

https://github.com/Tencent/secguide

一、项目背景

近年来,无论是DevSecOps,还是Google SRE的可靠和安全性理念,都提倡“安全需要每个工程师的参与”。其中涉及的“安全左移”理念也再次被推向前台,获得关注。

除安全团队建设一系列安全机制和工具外,每位开发者也可以身体力行地参与进来——编写安全的代码,从源头杜绝漏洞。

基于此,腾讯各BG安全团队和热心开发人员,从业务角度梳理了代码安全指南。它提供了详实的参考材料和行动大纲,分功能、语言整理了编码的最佳安全实践,可作为一线开发者的权威参考,有助于开发黑、白盒漏洞扫描工具和策略。

二、设计理念

代码安全指南的内容呈树状结构展开,共分5层,如下:

(点击查看大图)

2.1 语言

每种语言面临安全的风险种类不同,需要分别开展详述。如:go和javascript对比,go就不存在原型链污染的问题。同时,由于公司内的代码风格规范亦分语言展开,安全规范采取相同的分语言方式能保持整体的连贯性。

2.2 端

这里的端是指不同的终端,如:Web、安卓客户端、iOS客户端、PC客户端。实践过程中,将内容按端区分的原因有:

1、同一门编程语言,用在不同的终端应用开发,其面临的风险类型和数量有着天壤之别。例如:JavaScript应用于前端页面开发时,面临的主要风险是DOM XSS;但JavaScript亦可依托Node.js进行Web后端接口开发,如果编码不当,则存在命令注入、SQL注入等风险。

2、大型互联网公司内,项目开发采取“流水线”化作业,分工往往精细明确,将不同端的场景作为主干目录,更便于开发人员检索、快速了解编码安全知识。

2.3 场景

通过复盘历史漏洞,安全风险可按成因粗略归为两类:

1、代码漏洞,是指代码编写时,因不安全的API使用和逻辑编写产生的安全风险。

2、运维漏洞,是指代码的运行环境、配置和依赖等系统运维相关的问题。如腾讯蓝军分享的《浅析软件供应链攻击之包抢注低成本钓鱼》一文,涉及的安全风险本质上是:部分语言依赖包管理,当部分企业私有软件包仅在公司内部软件源注册时,攻击者就可以在外部公共软件源上抢注。如果公司内员工使用包管理软件拉取时,未配置公司镜像源时,就会拉取到攻击者抢注的恶意包。

2.4 功能

在对内、外部发现的漏洞进行复盘过程中,我们发现安全风险与业务场景高度相关,例如:

(点击查看大图)

由于代码安全指南的目标受众是开发人员看的。在撰写指南过程中,我们尝试将漏洞转化为功能场景,以此作为主干目录。由于与具体的业务场景关联,在开发时能更容易想起相关的注意事项,由此可降低认知、学习成本。

2.5 内容

指南内容核心围绕编程语言和框架的API/sink点展开。对开发人员来说,API是实现业务逻辑时,高频接触对象。而通常,安全漏洞往往可归因为API的错误使用。对安全工程师来说,sink点是编写安全策略、组件是非常重要的一部分,直接决定了安全系统的扫描能力。

编写代码安全指引时,采取了以下方法来提升内容的完善性:

● 聚合各语言、组件、框架文档中的最佳安全实践;

● 充分调研CWE、OWASP等现有规范,采用更方便开发者记忆的编排和阐述方式;

● 编码模式基于丰富的公司内外已知漏洞案例,不断补充先前未考虑到的风险规避建议;

● 举一反三,结合各类开发文档和提炼的漏洞产生原因,挖掘鲜有提及的风险点加入规范中。

三、开源交流

我们希望通过将代码安全指南开源,帮助有DevSecOps和安全左移建设的企业机构解决实际问题。同时,安全指引需要随着新发现的漏洞、编程语言&框架的迭代不断完善。希望能和社区携手,一道维护完善。如果你觉得帮助,欢迎给项目Star、提交Issue和PR。

https://github.com/Tencent 

(点击文末阅读原文直接访问)

请给项目 一个 Star !

欢迎提出你的 issue 和 PR!

国内镜像地址:

https://git.code.tencent.com/Tencent_Open_Source

(登录后才能访问公开项目)

腾讯工蜂源码系统为开源开发者提供完整、最新的腾讯开源项目国内镜像

开源公告|腾讯代码安全指南开源,涉及C/C++、Go等六门编程语言相关推荐

  1. 腾讯代码安全指南开源,涉及 C/C++、Go 等六门编程语言

    腾讯代码安全指南旨在梳理 API 层面的风险点并提供详实可操作的编码指引,是我们开展 DevSecOps 安全左移实践探索过程中,梳理沉淀面向开发人员的代码安全参考材料. 本次开源涉及 C/C++.J ...

  2. 牛逼大了!腾讯官方的代码安全指南免费公开

    ????????关注后回复 "进群" ,拉你进程序员交流群???????? 程序员书库(ID:CodingBook) 猿妹整编 综合自:https://github.com/Ten ...

  3. 腾讯荣获OSCAR尖峰开源企业奖 参与国内首个开源治理白皮书编写

    3月21日至22日,中国云计算开源领域最专业.最高端.最具规模的行业盛会"OSCAR云计算开源产业大会"在国家会议中心召开,该会议由工业和信息化部指导.中国信息通信研究院主办.腾讯 ...

  4. 腾讯优图:开源 YOLO 系列代码(含 YOLOv3 以及各种 Backbone)

    Summary:腾讯优图:开源YOLO系列代码(含YOLOv3以及各种backbone) Author:Amusi Date:2019-01-017 微信公众号:CVer https://github ...

  5. 金山开源安全卫士全套代码编译指南–湘勇整理版

    金山开源安全卫士全套代码编译指南–湘勇整理版 要从金山开源安全卫士的代码里学习,首先当然是最好能把全套代码编译出来进行调试.在开发湘勇网络医生的过程中,我一直关注金山开源安全卫士代码的更新动态,第一时 ...

  6. 谈谈开源的利弊和国内的开源 ——《新程序员005:开源深度指南 新金融背后的科技力量》书评

    感谢CSDN的送测 <新程序员005:开源深度指南 & 新金融背后的科技力量> 是一本以计算机编程和金融科技为主题的杂志书,由中国最大的开源社区之一的开源社主办,内容丰富多样,包括 ...

  7. 发布开源框架到CocoaPods入坑指南

    个人原文博客地址: 发布开源框架到CocoaPods入坑指南 在开发过程中一定会用到一些第三方框架, 只要安装了CocoaPods, 然后通过pod install命令, 就可以集成框架到项目中了 可 ...

  8. 腾讯第100个开源项目:微信开源推理加速工具TurboTransformers

    出品 | AI科技大本营(ID:rgznai100) 4月24日,腾讯正式宣布开源Transformer推理加速工具TurboTransformers.该工具面向自然语言处理领域中Transforme ...

  9. 首次!腾讯全面公开整体开源路线图

    6月25日,由Cloud Native Computing Foundation (CNCF) 主办的云原生技术大会在上海举办,腾讯开源联盟主席.腾讯开源管理办公室委员.Apache Member堵俊 ...

  10. 太牛了!30 年开源老兵,10 年躬耕 OpenStack,开源 1000 万行核心代码!

    受访者 | Jonathan Bryce 记者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 万物互联时代下,我们的一切都在依赖计算基础设施,科学.金融.政府.教育.通信和医疗保健依赖现代 ...

最新文章

  1. Docker常用基础命令汇总
  2. python tab符号_Python3 expandtabs()方法
  3. 【大牛系列教学】java面试常考的编程题
  4. 1716. 计算力扣银行的钱
  5. 4.2)深度卷积网络:实例研究
  6. ubuntu 安装yar和使用
  7. 花两个小时,做了个分页控件
  8. Linux学习笔记---使用BusyBox创建根文件系统(一)
  9. nginx下apk下载,ie9的问题
  10. 2022年6月25日PMP考试通关宝典-2
  11. android sonar 简书,Sonar使用指南
  12. 实用干货:电放提单详解,与海运单、一般提单到底有什么区别?
  13. Activision解散《吉他英雄》,取消《真实犯罪》
  14. 内网计算机安全使用规则,局域网网络安全注意事项
  15. 专升本高数学习总结——无穷级数
  16. 数学建模理论自制笔记1:微分方程及其模型
  17. 2021无人配送三大场景之争
  18. SaaS是什么?企业为什么要有SaaS系统?
  19. win10电脑添加惠普打印机,实现远程打印。
  20. 工具推荐|不用任何软件,如何成为P图大师?

热门文章

  1. 逆变器LCL滤波器参数设计(一)
  2. Google Earth Engine简介
  3. Swift --- 下标(subscript)
  4. pta森森快递(线段树 + 贪心 + 区间修改)
  5. 爬虫练习网站 -http://quotes.toscrape.com的爬虫练习
  6. Combating Web Spam with TrustRank的实验
  7. 哈哈哈……~好敷衍的第一篇博客标题~
  8. 为什么要处理自然语言? | NLP基础
  9. Team Tic Tac Toe 题解
  10. Excel学习笔记(1)——数据类型,自动填充,数据有效性,美化