关于开源:腾讯代码安全指南开源涉及CCGo等六门编程语言

124次阅读

共计 1543 个字符,预计需要花费 4 分钟才能阅读完成。

腾讯代码平安指南旨在梳理 API 层面的危险点并提供详实可操作的编码指引,是腾讯在发展 DevSecOps 平安左移实际摸索过程中,梳理积淀面向开发人员的代码平安参考资料。

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

我的项目主页:

https://github.com/Tencent/se…

我的项目背景

近年来,无论是 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 点是编写安全策略、组件是十分重要的一部分,间接决定了平安零碎的扫描能力。

编写代码平安指引时, 采取了以下办法来晋升内容的欠缺性:

1、聚合各语言、组件、框架文档中的最佳平安实际;

2、充沛调研 CWE、OWASP 等现有标准,采纳更不便开发者记忆的编排和论述形式;

3、编码模式基于丰盛的公司内外已知破绽案例,一直补充先前未思考到的危险躲避倡议;

4、触类旁通,联合各类开发文档和提炼的破绽产生起因,开掘鲜有提及的危险点退出标准中。

原文链接:腾讯代码平安指南开源,波及 C /C++、Go 等六门编程语言

正文完
 0