ossf/wg-best-practices-os-developers

GitHub: ossf/wg-best-practices-os-developers

OpenSSF 开源开发者最佳实践工作组,为开源社区提供系统化的安全开发指南、培训资源和自动化评估工具。

Stars: 1050 | Forks: 204

# 开源开发者最佳实践 [![GitHub Super-Linter](https://static.pigsec.cn/wp-content/uploads/repos/cas/73/73677837dcbb82164812dbe8b9f73b6d06b697db49fc8b57a49ec7ffcdcf3d50.svg)](https://github.com/marketplace/actions/super-linter) 欢迎任何人加入我们的公开讨论,探讨与本组的使命和章程相关的话题。BEST 工作组是 OpenSSF 内部正式的[毕业级(Graduated-level)](https://github.com/ossf/tac/blob/main/process/working-group-lifecycle.md)工作组 ## 使命 我们的使命是为开源开发者提供安全最佳实践建议,以及学习和应用这些实践的简便方法。 我们致力于通过倡导和植入最佳安全实践来巩固开源生态系统,从而创造一个让开发者和用户都能毫不犹豫地信任和依赖开源解决方案的数字环境。 ## 愿景 - 我们设想这样一个世界:软件开发者能够轻松地识别出有助于他们创建和维护世界级安全软件的良好实践、要求和工具,从而帮助培育一个分享和扩大安全知识的社区。 - 我们寻求提供各种途径,使用最适合各类学习者的方法,让大家学习编写和识别安全软件的技术。 - 我们希望提供工具,帮助开发者将这些良好实践无缝地采纳到他们的日常工作中。 ## 范围 开发者最佳实践小组希望帮助识别和整理一份易于访问的最佳实践[清单](https://github.com/ossf/wg-best-practices-os-developers/blob/main/docs/inventory.md) - 根据开源开发者的投资回报率 (ROI) 确定优先级 - 按技术、语言、框架进行分类 - 由社区策划 ## 战略 为了实现我们的使命和愿景,BEST 工作组将执行以下战略: - 与安全专家合作,为开源项目起草一套全面的量身定制的最佳实践。 - 找出工具和资源方面的差距,从而为促进和实施安全开发实践提供机会。 - 通过社区外联和有针对性的维护者互动,推广并推动大家采用我们的产出物(例如:指南、培训、工具)。 - 与其他 OpenSSF 和开源项目合作,为软件开发者和开源软件消费者提供全面的指导、建议和工具,以便他们使用、实施和评估软件的安全特性。 ## 路线图 为了落实我们的战略,BEST 工作组将执行以下工作: - 通过博客、播客、会议演讲等方式推广 OpenSSF “最佳实践”和工具。 - 为我们的工作体系创建速成学习班:工作组介绍、SCM BP 指南、C/C++ 指南、Scorecard/徽章、简明指南。 - 为成员组织创建“最佳实践成员徽章”。 - 通过贡献和反馈来支持并推广我们的子项目 - Scorecard、BP Badges、OpenSSF - SkillFoundry、培训班和指南、安全软件指导原则 (SSGP)。 - 举办 W3C 风格的内存安全研讨会,召集开发领域的领导者,探讨如何将内存安全语言和技术更深入地整合到 oss 生态系统中。 - 扩展 BEAR(归属感、赋能、盟友关系和代表性)工作组的办公时间,更广泛地吸引刚接触 oss 的新人,并在他们开启和拓展职业生涯时提供指导和交流的平台。 - 识别、策划、制作和交付新的安全开发教育内容,例如开发者经理培训、实施/集成 OSSF 工具(如 Scorecard、Badges、OSV、OpenVEX 等)、高级安全开发技术等。 - 在 OpenSSF 技术倡议中推广并植入我们所有的指南,并了解哪些内容适合整合到 Scorecard 中。 ## 当前工作 ### 活跃的 SIG 和倡议 下表列出了最佳实践工作组的活跃倡议和工作。会议时间可能会有变动,因此请查看[OpenSSF 公共日历](https://openssf.org/getinvolved/)以获取有关所有社区会议的最新信息。 | 工作项 | 描述 | 会议时间 | 会议笔记/议程 | Git 仓库 | Slack 频道 | 邮件列表 | | :-------------------------------- |:----------------------------------------------------------------------| :------------------------------------------------------- | :------------------------- | :-------------------- | :------------ | :----------- | | 全体工作组 (Full WG) | 安全软件开发最佳实践 | 每两周一次,周二 上午 7:00 PT/10:00 ET/1600 CET | [会议笔记](https://docs.google.com/document/d/1b2yGx6sVONsxMW8bdHhfBFCX2WbmaqvIDuWmKfiLgRo/) | [Git 仓库](https://github.com/ossf/wg-best-practices-os-developers) | [Slack](https://openssf.slack.com/archives/C01AHCRP8BT) | [邮件列表](https://lists.openssf.org/g/openssf-wg-best-practices) | | 学术联系 SIG | 与学术界合作以支持教育。(与 EDU.SIG 共同进行)| 每两周一次,周三 上午 6:00 PT/9:00 ET/1500 CET | [会议笔记](https://docs.google.com/document/d/1th8joOtmQa3y9KNlH-QBcYADMEHtCynSYwRR1r_WB6Q/) | [Git 仓库](https://github.com/ossf/education) | [Slack](https://openssf.slack.com/archives/C0A2A44TSDD) | [邮件列表](https://lists.openssf.org/g/openssf-sig-education) | | Allstar | 监控 GitHub 仓库以确保遵循安全最佳实践 | 每两周一次,周四 下午 1:00 PT/4:00 ET/2200 CET | 参见 Scorecard 笔记 | [Git 仓库](https://github.com/ossf/allstar) | [Slack](https://openssf.slack.com/archives/C02UQ2RL0HM) | | | C/C++ 编译器指南 | C/C++ 编译器加固最佳实践指南 | 全体 SIG 通话 | 参见全体 SIG 笔记 | [Git 仓库](https://github.com/ossf/wg-best-practices-os-developers/tree/main/docs/Compiler-Hardening-Guides) | [Slack](https://openssf.slack.com/archives/C058E884WN7) | [邮件列表](https://lists.openssf.org/g/openssf-wg-best-practices) | | EDU.SIG | 提供行业标准的安全软件开发培训。 | 每两周一次,周三 上午 6:00 PT/9:00 ET/1500 CET | [会议笔记](https://docs.google.com/document/d/1th8joOtmQa3y9KNlH-QBcYADMEHtCynSYwRR1r_WB6Q/) | [Git 仓库](https://github.com/ossf/education) | [Slack](https://openssf.slack.com/archives/C03FW3YGXH9) | [邮件列表](https://lists.openssf.org/g/openssf-sig-education) | | 内存安全 SIG | 消除内存安全漏洞 | 每两周一次,周四 上午 10:00 PT/下午 1:00 ET/1900 CET | [会议笔记](https://docs.google.com/document/d/1HyfvC3FuEn6xrueQJrCIUokuRT0c8Pk-IkpW_MfqJaM/) | [Git 仓库](https://github.com/ossf/Memory-Safety) | [Slack](https://openssf.slack.com/archives/C03G8NZH58R) | [邮件列表](https://lists.openssf.org/g/openssf-sig-memory-safety) | | OpenSSF 最佳实践徽章 | 识别 FLOSS 最佳实践并实现徽章系统 | 全体 SIG 通话 | 参见全体 SIG 笔记 | [OpenSSF 最佳实践徽章](https://www.bestpractices.dev/) | | | | Python 加固指南 SIG | 包含代码示例的 Python 安全编码指南 | 每两周一次,周一 上午 8:00 PT/凌晨 12:00 ET/1700 CET | 参见全体 SIG 笔记 | [Git 仓库](https://github.com/ossf/wg-best-practices-os-developers/tree/main/docs/Secure-Coding-Guide-for-Python) | [Slack](https://openssf.slack.com/archives/C07LH7RH8MT) | | | Scorecard | 自动化分析开源项目的安全态势。 | 每两周一次,周四 下午 1:00 PT/4:00 ET/2200 CET | [会议笔记](https://docs.google.com/document/d/1b6d3CVJLsl7YnTE7ZaZQHdkdYIvuOQ8rzAmvVdypOWM/) | [Git 仓库](https://github.com/ossf/scorecard) | [Slack](https://openssf.slack.com/archives/C0235AR8N2C) | | | Web 开发者安全指南 | 专门针对 Web 开发者的安全指南 | 参见全体 SIG 笔记 | 参见全体 SIG 笔记 | [Git 仓库](https://github.com/w3c-cg/swag) | [Slack](https://w3ccommunity.slack.com/archives/C079JKV32RX) | | ## 工作项、产出物和交付物 我们在 GitHub 上开发我们的材料,并在 上发布指南的渲染版本。 我们目前使用[最简流程 (SPP)](https://best.openssf.org/spp/Simplest-Possible-Process) 进行发布。 如果您对此有疑问,请参阅 [SPP 文档](https://best.openssf.org/spp/Simplest-Possible-Process)。 ### 最佳实践指南 关于实施特定安全技术的较长参考文档 - [C 和 C++ 的编译器注解(孵化中)](https://best.openssf.org/Compiler-Hardening-Guides/Compiler-Annotations-for-C-and-C++.html) - [C 和 C++ 的编译器选项加固指南](https://best.openssf.org/Compiler-Hardening-Guides/Compiler-Options-Hardening-Guide-for-C-and-C++) - [正确使用正则表达式进行安全输入验证](https://best.openssf.org/Correctly-Using-Regular-Expressions) - [面向开源软件 (OSS) 开发者的网络弹性法案 (CRA) 简明指南](https://best.openssf.org/CRA-Brief-Guide-for-OSS-Developers) - [开发与分发安全软件的现有指南](https://github.com/ossf/wg-best-practices-os-developers/blob/main/docs/Existing%20Guidelines%20for%20Developing%20and%20Distributing%20Secure%20Software.md) - [npm 最佳实践指南](https://github.com/ossf/package-manager-best-practices/blob/main/published/npm.md) - [包管理器最佳实践(已归档)](https://github.com/ossf/package-manager-best-practices) - [Python 安全编码指南](https://github.com/ossf/wg-best-practices-os-developers/tree/main/docs/Secure-Coding-Guide-for-Python) - [针对 AI 代码助手指令的安全指南](https://best.openssf.org/Security-Focused-Guide-for-AI-Code-Assistant-Instructions) - [简化软件组件更新](https://best.openssf.org/Simplifying-Software-Component-Updates) - [源代码管理平台配置最佳实践](docs/SCM-BestPractices/README.md) - [内存安全连续体](https://memorysafety.openssf.org/memory-safety-continuum) ### 简明指南 关于开源软件开发良好实践的快速指南 - [开发更安全软件的简明指南](https://best.openssf.org/Concise-Guide-for-Developing-More-Secure-Software) - [评估开源软件的简明指南](https://best.openssf.org/Concise-Guide-for-Evaluating-Open-Source-Software) ### 教育资料和培训课程 教育 SIG 提供行业标准的安全软件开发培训材料,旨在教育各个水平和背景的学习者,了解如何使用网络和应用安全的最佳实践来安全地创建、组合、部署和维护软件。 - [开发安全软件 (LFD121)](https://openssf.org/training/courses/) - [“安全软件开发简介”演示文稿](https://docs.google.com/presentation/d/12b7Wm6KRp9kd1oV3QVrJpiCWVDexxF8doYZOFOfLy2Y/edit)总结了其内容 - [软件开发经理的安全培训 (LFD125)](https://training.linuxfoundation.org/training/security-for-software-development-managers-lfd125)。感谢 Intel 为本课程提供了起步材料。 - 如果您想提出修改建议或将其用于特殊目的 (CC-BY-4.0),可以使用 [LFD125 的演示文稿](https://docs.google.com/presentation/d/19lolYrumwUa7qHV65OW0IJ-oTpLV0l2KqEVGzjf0FSI/edit) - [理解欧盟网络弹性法案 (CRA) (LFEL1001)](https://training.linuxfoundation.org/express-learning/understanding-the-eu-cyber-resilience-act-cra-lfel1001)。与 OpenSSF 全球网络政策工作组共同开发。 - 如果您想提出修改建议或将其用于特殊目的 (CC-BY-4.0),可以使用 [LFEL1001 的演示文稿](https://docs.google.com/presentation/d/1j3OlNz2k5rk9KRD8ZZz8xvsM_hyxqOioK4UUkJTWee8/edit) - [安全的 AI/ML 驱动的软件开发 (LFEL1012)](https://training.linuxfoundation.org/express-learning/secure-ai-ml-driven-software-development-lfel1012),预计于 2025-10-16 发布。与 OpenSSF AI/ML 工作组共同开发。 - 如果您想提出修改建议或将其用于特殊目的 (CC-BY-4.0),可以使用 [LFEL1012 的演示文稿](https://docs.google.com/presentation/d/1SONjRe6mdtqNuUqVE9s5kLC6tUwtuw-XTAG23MjXIFI/edit) ### 相关资源 - [安全软件开发简介(简短演示文稿)](https://docs.google.com/presentation/d/12b7Wm6KRp9kd1oV3QVrJpiCWVDexxF8doYZOFOfLy2Y/edit) ## 过去的工作 - [OpenSSF 安全基线](https://github.com/ossf/security-baseline) - 已剥离 - 基线现在是 ORBIT 工作组的一部分 - [互动式图表](https://github.com/blabla1337/wg-best-practices-os-developers/tree/main/infinity2) - 已归档 - 我们希望在这个页面指导开发者在不同阶段可以使用哪种类型的工具或方法。我们有大量出色的工具和材料,但开发者很难找到它们;通过这个页面和互动循环,我们希望引导他们找到合适的内容。 - [大型 MFA 分发项目](https://github.com/ossf/great-mfa-project) - 已完成 - 向 OSS 开发者分发 MFA token 以及如何轻松使用它们的最佳实践 - [推荐的 C/C++ 程序编译器选项标志](https://docs.google.com/document/d/1SslnJuqbFUyTFnhzkhC_Q3PPGZ1zrG89COrS6LV6pz4/edit#heading=h.b3casmpemf1b) - 已剥离 - 这份早期草案启发了该小组在 C/C++ 编译器加固指南方面的工作。 - [安全工具带 (Security Toolbelt)](https://github.com/ossf/toolbelt) - 目前暂停 - 组建一个“高质量”的能力集合(**软件框架、规范以及人工和自动化流程**),这些能力协同工作,能够**自动列出、扫描、修复和保护在软件编写、构建、部署、消费和维护过程中流经软件供应链的组件**,并最终汇聚成软件。该集合中的每一部分都将代表该供应链中一个**可互操作的**环节,从而能够适应并集成到主要的上游语言工具链、开发者环境以及 CI/CD 系统中。 ## 翻译 我们感到非常高兴,有人愿意帮助我们翻译成其他语言。请确保所有添加或修改翻译的 pull request 都标明了其对应的语言。 此类 pull request (PR) 必须首先经过受信任的翻译人员的审查和批准。 具体详情请参见[翻译](docs/translations)。 ## 会议笔记 我们为每次会议做笔记。请参阅[会议笔记](meeting-minutes.md)以获取文档链接。 ## 治理 ### 章程 [CHARTER.md](CHARTER.md) 概述了我们小组活动的范围和治理。与所有 OpenSSF 工作组一样,该工作组向 [OpenSSF 技术顾问委员会 (TAC)](https://github.com/ossf/tac) 汇报。有关更多组织信息,请参阅 [OpenSSF 章程](https://openssf.org/about/charter/)。 ### 项目负责人 - 联合主席 - [Avishay Balter, Microsoft](https://github.com/balteravishay) - 联合主席 - [Georg Kunz, Ericsson]() - “*”表示项目/SIG 负责人 ### 项目维护者 - [Christopher "CRob" Robinson*, OpenSSF](https://github.com/SecurityCRob) - [David A Wheeler, LF/OSSF](https://github.com/david-a-wheeler) - [Dave Russo*, Red Hat](https://github.com/drusso-rh) - [Georg Kunz, Ericsson](https://github.com/gkunz) - [Avishay Balter, Microsoft](https://github.com/balteravishay) ### 项目协作者 - [Christine Abernathy*, F5](https://github.com/caabernathy) - [Daniel Applequist*, Snyk](https://github.com/Torgo) - [Marta Rybczynska, Syslinbit](https://github.com/mrybczyn) - [Thomas Nyman*, Ericsson](https://github.com/thomasnyman) - Yotam Perkal, Rezilion - [Chris de Almeida, IBM](https://github.com/ctcpip) ### 项目贡献者 - [Arnaud J Le Hors, IBM](https://github.com/lehors) - [Jeffrey Borek, IBM](https://github.com/jtborek) - Ixchel Ruiz, jfrog - Laurent Simon*, Google/Scorecard - [Matt Rutkowski, IBM](https://github.com/mrutkows) - Riccardo ten Cate, SKF - Spyros Gasteratos*, OWASP/CRE - [Glenn ten Cate*, OWASP/SKF](https://github.com/) - [Jay White, Microsoft](https://github.com/camaleon2016) - Jonathan Leitschuh*, Dan Kaminsky Fellowship @ Human Security - [Judy Kelly, Red Hat](https://github.com/judyobrienie) - [Roberth Strand, Amesto Fortytwo / Cloud Native Norway](https://github.com/roberthstrand) - [Sal Kimmich, EscherCloud](https://github.com/salkimmich) - [Helge Wehder, Ericsson](https://github.com/myteron) - Noam Dotan, Legit Security - [Eddie Knight, Sonatype](https://github.com/eddie-knight) - [Randall T. Vasquez*, The Linux Foundation](https://github.com/ran-dall) 我们当前及往期小组[成员](https://github.com/ossf/wg-best-practices-os-developers/blob/main/members.md)名单。 ## 许可协议 除非另有特别说明,本工作组发布的软件均依据 [Apache 2.0 许可协议](LICENSES/Apache-2.0.txt) 发布,文档依据 [CC-BY-4.0 许可协议](LICENSES/CC-BY-4.0.txt) 发布。正式规范将依据[社区规范许可协议](https://github.com/CommunitySpecification/1.0)获得许可 (尽管目前我们还没有这方面的任何例子)。 ## 反垄断政策声明 Linux Foundation 的会议涉及行业竞争对手的参与,Linux Foundation 旨在根据适用的反垄断和竞争法开展其所有活动。因此,与会者严格遵守会议议程,并意识到且不参与任何适用的美国州、联邦或外国反垄断和竞争法所禁止的活动,这一点至关重要。 在 Linux Foundation 会议及与 Linux Foundation 活动相关的场合被禁止的行为类型示例,可在 获取的 Linux Foundation 反垄断政策中查阅。如果您对此类事宜有疑问,请联系贵公司的法律顾问;如果您是 Linux Foundation 的成员,欢迎联系 Gesmer Updegrove LLP 律师事务所的 Andrew Updegrove,该事务所为 Linux Foundation 提供法律咨询。
标签:OpenSSF, UML, 安全指南, 安全最佳实践, 自定义脚本, 逆向工具, 防御加固