【仅供内部供应商使用,不提供对外解答和培训】

Page tree

【仅供内部供应商使用,不提供对外解答和培训】

Skip to end of metadata
Go to start of metadata

面向人群:所有开发者

发布日期:2021年12月07日

目标:提高交付整体安全

第一章:总则

  • 第一条:为维护生态秩序,保障产品及生态安全,保护用户的合法权益,规范和保障帆软生态委员会依规履行安全管理职责,制定本规。

  • 第二条:恶意破坏帆软产品安全,侵犯用户合法权益,对帆软公司造成重大损失的,依照中华人民共和国相关法律规定构成犯罪的,依法交由公安机关追究责任;造成重大权益损失的将向人民法院提起诉讼;尚不够成违法犯罪的,由帆软生态委员会依照本规定相关条例进行处罚

  • 第三条:安全违规处罚的流程,适用本规的规定;本规没有规定的,适用帆软生态有关的规定。

  • 第四条:在通过帆软市场、帆软生态系统上架或接受完成的所有项目、产品、插件的调研、设计、开发、测试、维护周期内发生的违反安全规定的行为,除相关合同特别规定以外,适用本规

  • 第五条:安全违规处罚必须以事实为依据,与违反安全要求的性质、情节以及危害程度相当。实施违规处罚,应当公开、公正,尊重和保障人权,保护干系人的人格尊严。处理违规事件应当坚持教育与处罚相结合的原则。

  • 第六条:各级供应商,渠道商应加强自身安全管理,采取有效措施,维护生态稳定。

第二章:安全要求细则

  • 第七条:禁止非法监听,保护通信自由

    • (一)、禁止在标准帆软产品监听的端口之外,开放新的监听端口。

    • (二)、禁止通过开接口的方式调用操作系统命令及命令脚本。

    • (三)、禁止在用户未签署任何授权协议或不知情的情况下以任何名义采集用户敏感信息

  • 第八条:禁止未公开接口,防止后门

    • (一)、所有新增的涉及数据、用户信息、系统环境、配置信息及新增、更改、删除数据或配置的接口必须使用与产品安全控制程序相同或安全性相当或更好的安全控制程序进行权限控制

    • (二)、不得以任何形式或名义提供绕过产品安全控制程序的产品或解决方案。不扩散、讨论绕过产品安全控制程序的BUG和缺陷。

    • (三)、禁止在产品、项目、方案中提供用户不知道或不可显式管理的账号、密码等敏感信息

    • (四)、禁止开发存在隐藏账号、口令、接口、组合键等方式操作和访问系统数据和资源的产品和方案

    • (五)、开发的产品或方案、所增加的所有有请求接口、命令、服务,监听端口必须提供与接口实际功能和用法一致的使用说明文档

    • (六)、禁止在开发的产品或方案中存留可能具有安全隐患的组件或功能,包括但不仅限于 网络嗅探、调试工具、编译工具、调试脚本、仅用于测试的账户或密钥

    • (七)、禁止在开发的产品或方案中出现未在交付资料中注明用途的 网址、IP、域名、邮箱信息

  • 第九条:禁止恶意软件、恶意行为,保护用户权益

    • (一)、开发的产品、软件、方案禁止存在发送恶意广告、吸费、恶意消耗流量的行为。

    • (二)、开发的产品、软件、方案必须提供可靠简单的卸载方案,禁止出现卸载后残留可自启动或随其他软件启动的脚本或可执行功能

  • 第十条:保护隐私,防止隐私泄露

    • (一)、禁止在未经用户授权(任何纸质、聊天记录、音视频材料均可证明)情况下对包含用户隐私的数据进行转移,对于用户授权的隐私数据转移,在使用前应当进行脱敏处理,确保隐私信息不能再次转移。

    • (二)、开发的产品或方案在采集用户隐私信息之前必须向用户说明采集信息的范围和用途,并在用户允许的情况下进行采集,用户不允许的情况下也不得进行非技术不可行的用户的正常功能使用的禁止和阻碍,采集数据的范围和用途不得超出用户的授权范围和用途。

    • (三)、开发的产品或方案中提供的隐私信息采集功能必须提供显式的关闭功能,允许用户在任何时刻关闭采集。

    • (四)、对于移动终端,对系统或软件进行升级时必须通过界面或者资料的形式让用户知情且可控。

  • 第十一条:权限最小化,防止非授权访问

    • 提供的产品或方案如涉及数据、用户信息、系统环境、配置信息及新增、更改、删除数据或配置的接口,对于新增的访问用户(任何认证方式下的访问账户),不得获得这些接口的访问权限,必须由管理员人工管理权限。

  • 第十二条:正确加密,保护敏感数据

    • (一)、禁止使用私有(完全自己设计)的加密算法(使用安全加密算法【见附录】组合或演变的新算法不算私有算法)

    • (二)、用于数据加解密的工作密钥不能硬编码在代码中

    • (三)、禁止认证凭据明文存储在系统中,必须使用安全的加密算法进行加密保护

    • (四)、在不需要还原明文的场景,必须使用不可逆算法加密

  • 第十三条:审计管理操作,保证可追溯

    • (一)、所有对系统产生影响的用户活动、操作指令必须记录审计日志

    • (二)、审计日志内容必须具备防篡改的安全校验

    • (三)、审计日志保护期最少不低于三个月,保护期内的审计日志无法删除(人为直接通过硬件删除文件的不管),不得提供任何可删除三个月内审计日志的功能或接口

    • (四)、审计日志信息至少包含用户ID(在无法提供用户ID的场景中必须提供能确定唯一终端身份的标识+终端类型)、时间、操作类型、被访问资源的名称、客户端IP、访问结果

  • 第十四条:安全设计

    • (一)、使用非用户提供的第三方软件或JAR包存在外部公开漏洞,若第三方官方已提供修复方案的,不论是否调用,必须按照是第三方官方提供的修复方案进行修复

    • (二)、用到的所有非用户提供的第三方软件或JAR包必须在交付材料中提供完整的清单和用途说明。

    • (三)、涉及生成会话标识(一般比如ticket、code之类)的,该标识必须绑定客户端IP且具备随机性。该标识只能使用一次。

    • (四)、密码算法中使用到的随机数必须是密码学意义上的安全随机数【见附录】

    • (五)、对敏感数据的访问要有认证、授权、或加密机制。

    • (六)、禁止在系统中存储的日志、调试信息、错误提示中明文打印认证凭据。

    • (七)、若包含创建用户的功能时,创建用户初始化的访问密钥必须具备足够的强度要求,禁止使用统一的缺省密钥(固定密钥)

    • (八)、若包含非产品认证入口之外的认证入口时,所有创建的用户首次登录时,必须要求修改初始密钥

    • (九)、交付资料中必须提供与交付方案所涉及的安全设计一致且完整的文档清单说明

  • 第十五条:安全开发

    • (一)、使用安全函数替换不安全函数,禁止不正确的重定义安全函数或不正确的封装安全函数。

    • (二)、如果使用c/c++等编写本地库,需要开启安全编译选项。

    • (三)、使用的开源和三方件组件要求使用最新版本,禁止使用老旧的三方组件

  • 第十六条:安全运营运维

    • 禁止存在病毒、木马,以及发送恶意广告、吸费、恶意消耗流量等恶意行为

第三章:处罚的方式和适用

  • 第十七条:对于违反第七到第十六条规定任意细则或条款的供应商/渠道商,但不涉及违法犯罪且未造成重大权益损失的,处罚方式包括如下几类

    • 一类处罚:永久终止合作,并在所有合作渠媒体道中公示终止合作的原因申明。并取消所有帆软市场收益分成,通报所有帆软旗下组织、机构以及与帆软达成战略合作的组织、机构永久不予合作。

    • 二类处罚:处以不超过违规事件涉及项目的合同总金额100%的罚款

    • 三类处罚:暂停合作、勒令自查整顿,并处以不超过违规事件涉及项目的合同总金额40%的罚款

    • 四类处罚:事故公开通报、并处以不超过过违规事件涉及项目的合同总金额10%的罚款

    • 五类处罚:勒令对有问题的交付产品和方案限期整改,直到满足安全需要

  • 第十八条:对于违反第七、八、九、十、十六条规定任意细则或条款的供应商/渠道商,视已造成的后果影响和违背安全原则的主观性大小,适用第一、二、三类处罚

  • 第十九条:对于违反第十一、十二、十三条规定任意细则或条款的供应商/渠道商,视已造成的后果影响和违背安全原则的主观性大小,适用第三、四、五类处罚

  • 第二十条:对于违反第十四、十五条规定任意细则或条款的供应商/渠道商,视已造成的后果影响和违背安全原则的主观性大小,适用第四、五类处罚

  • 第二十一条:对于第十八、十九、二十条处罚认定的结果有异议的,可在认定结果下达次日起三个工作日内,向sevn(sevn@fanruan.com)申请复核,复核结果为最终认定结果。超过三个工作日未申请复核,则按原始认定结果处罚。

  • 第二十二条:对于处罚结果执行过程中拒不配合执行的,由sevn与hugh复核批准后,可逐级加重处罚力度,直至一类处罚。

  • 第二十三条:对于涉嫌安全违法犯罪的供应商/渠道商将交由公安机关处置,对于造成帆软公司重大权益损失的将向人民法院起诉。

第四章:附则

  • 第二十四条:本规自2022年1月1日起施行。

第五章:附录

名词

解读

安全随机函数安全随机函数生成,如:
1) OpenSSL库的RAND_bytes;
2) OpenSSL FIPS模块中实现的DRBG;
3)  JDK的java.security.SecureRandom;
4)类Unix平台的/dev/random文件;
5)Windows平台的CryptGenRandom。
不安全的密码算法MD5/DES/3DES(加密传输协议TLS/SSH密码协议中必须禁止使用3DES,非密码协议场景必须保证密钥K1≠K2≠K3)/HMAC-SHA2-256-96/HMAC-SHA1-96/HMAC-MD5/HMAC-MD5-96/SSH服务所有带CBC模式的算法/匿名算法套件/DH512/DH1024/SKIPJACK/RC2/RSA(1024位及以下)/MD2/MD4。
说明:
1)禁止MD5应用在密码学安全场景,包括“数字签名/hash-only/HMAC/密钥派生/随机数产生”。
2)禁止SHA1应用在参与生成“数字签名/hash-only”的场景;可用于“HMAC/密钥派生/随机数产生”场景;
推荐使用的密码算法

1)分组密码算法:AES(密钥长度在128位及以上)
2)流密码算法:AES(密钥长度在128位及以上)(OFB或CTR模式)
3)非对称加密算法:RSA(密钥长度在2048位及以上,推荐3072位)
4)哈希算法:SHA2(256位及以上)
5)密钥交换算法:DH(2048位及以上,推荐3072位)
6)HMAC(基于哈希的消息验证码)算法:HMAC-SHA2

认证凭据不需要还原的场景(例如认证服务端保存的用户登录口令),须使用PBKDF2或更强的算法加密,对于性能极其敏感且安全性要求不高的场景(如业务面终端用户场景)允许使用HMAC(认证凭据,盐值)(注:认证凭据、盐值位置可以互换)。
1、认证凭据使用PBKDF2算法计算口令单向哈希时,对性能有要求的场景迭代次数最低10000次,有特殊性能要求时最低1000次。
2、盐值Salt为密码学意义上的安全随机数,由系统随机生成,盐值salt至少16字节,并按用户区分。
3、禁止使用HASH(用户名||口令)、HMAC(用户名,口令)、HASH(口令 XOR salt)。

  • No labels