当前位置:文档之家› 安全代码规则编写指南

安全代码规则编写指南

安全代码规则编写指南
安全代码规则编写指南

Rules Builder

用户手册

版本 4.5

2007年9月

Copyright ? 2004-2007 Fortify Software, Inc.9/7/07

All Rights Reserved. Printed in the United States of America.

Fortify Software, Inc.

2300 Geng Road, Suite 102

Palo Alto, California 94303

Fortify Software, Inc. (以下简称"Fortify")和许可证颁布者保留对此文档 (以下简称"文档")的一切所有权。对此文档的使用受适当的版权法支配。Fortify 可以在没有预先通知的情况下随时修改该文档。

此文档在没有任何类型保证的情况下被原样提供。对于从此文档中发现的任何错误所引起的直接的、故意的、巧合的或导致严重后果的损害, FORTIFY绝不会对此负责,包括在限制范围之外的任何损失或者对商业、利益、使用或数据造成的麻烦。 FORTIFY可以在没有预先通知的情况下保留对此最终产品得出的此文档中的任何细节和元素进行修改和删除的权力。

Fortify 是Fortify Software, Inc.的注册商标

在此文档中商品和产品名称是他们的各自拥有者的商标。

Rules Builder User’s Guide

目录

Preface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

第一章: 理解安全编码规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3什么是安全编码规则? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3什么是安全编码规则包?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3什么是自定义规则? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4什么是漏洞类别?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5什么是规则类型?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Fortify Source Code Analyzers的相关规则. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

用于Code Modeling的规则形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

语义规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

数据流规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

控制流规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

配置规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

结构化规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Code Modeling 规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9第二章: 使用Rules Builder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Rules Builder界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

File选项. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Filter选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

编辑和删除选项. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

栏目. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12创建, 打开和浏览自定义规则包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13创建自定义规则包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

打开现存的自定义规则包. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

浏览自定义规则包信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14创建规则. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14搜索, 编辑和删除规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14搜索规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

编辑规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

删除规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15设置污染标记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15配置规则参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15通用规则信息. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

函数标识符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

条件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

规则定义信息. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22编写规则描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Abstract(概要). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Rules Builder User’s Guide iii

Explanation(说明). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Recommendations(建议) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Audit Tips(审计小提示). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44编写结构规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44总览. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

类型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

属性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Null解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

关系. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

结果报告 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

到达调用图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

EBNF语法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

属性引用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51自定义规则范例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58在第三方代码中给简单的数据流属性建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

把所有包含一个通用名称元素的函数作为传递口. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

排除扫描分析结果中的有效数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

使用 #ifblock Directive以匹配条件分支. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

结构规则范例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61编写ColdFusion 规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62标准特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

标记符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

数据库访问. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

未被处理的异常. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

额外的范例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66在XML中编写规则. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68挑战. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

成功的通用技术. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

在XML中创建规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

在XML中自定义规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

举例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Semantic规则举例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Data Flow Source规则举例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Data Flow Pass-Through规则举例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Data Flow Sink规则举例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Configuration规则举例 (Properties 文件). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Configuration规则举例 (XML 文件) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Control Flow规则举例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Structural规则举例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73第三章: 故障排除和支持. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75故障排除和支持. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

iv Rules Builder User’s Guide

Preface

本文档写给使用 Secure Coding Plug-in for WebSphere Application Developer 在Eclipse开发环境

中进行安全扫描和分析的开发者们.

如果您对本文档的任何内容有疑问或者建议,请联系Fortify Software:

客户支持

650.213.5679

techsupport@https://www.doczj.com/doc/ae16471161.html,

公司所在地

2300 Geng Road

Suite 102

Palo Alto, CA 94303

650.213.5600

contact@https://www.doczj.com/doc/ae16471161.html,

网址

https://www.doczj.com/doc/ae16471161.html,

Rules Builder User’s Guide 1

Chapter 1: 理解安全编码规则

这章节包括以下标题:

?什么是安全编码规则?

?什么是Secure Coding Rulepacks?

?什么是自定义规则?

?什么是漏洞类别?

?什么是规则类型

什么是安全编码规则?

黑客们利用软件中的安全漏洞来盗取隐私数据,中断服务或强制进入非预期的执行状态,以更进一

步的利用漏洞造成威胁。

Fortify Source Code Analyzer (Fortify SCA)定义了范围广泛的安全漏洞和源代码中的不良编码。当

Fortify SCA 在代码分析时侦察到一个问题,它呈现给用户一个特定威胁或被发现的不良编码的描

述,并给出一个如何安全化这些威胁和修正不良编码的推荐做法。

规则是对确定源代码中可能导致安全威胁或其他危险元素的定义。以它们的不同形式,规则包含潜

在不安全数据进入到一个程序的信息,和一旦进入了在函数间数据流的动向,这样,程序中的函数

或特定的顺序也变得不安全。

Fortify Software 提供了预先封装的 Secure Coding Rulepacks,它是基于 Fortify Software Security

研究组所收集来的资料和外部来源的一些相关信息。然而,你能修改 Fortify SCA 的功能和由用

Rules Builder 创建自定义规则的 Secure Coding Rulepacks 。

相关信息如下:

?自定义规则, 见第4页“什么是自定义规则”

?用规则编辑器创建自定义规则,见第13页“创建、打开和浏览自定义规则包”

?用XML语言编写规则,见第68页“在XML中编写规则”

什么是 Secure Coding Rulepacks?

Secure Coding Rulepacks 呈现了历年软件安全中的经验,是 Fortify Software Security 研究组正在

进行的重点对象,储存了大量通常用于软件开发中有关图书库和编程实践的安全知识,并且在不断

的被Fortify Software Security研究组扩展和改善。每个 Secure Coding Rulepacks 都包括了大量的

规则,每个规则定义了一个被源代码分析器检查出的特定的异常。

一旦安全问题被检测出, Secure Coding Rulepacks 会提供有关问题的目标信息让开发人员能够有时

间设计和实施修复,这样比研究问题的安全细节更有效。包括了关于问题类别的具体信息,如何被

攻击者利用,开发人员该如何确保代码不受此漏洞威胁。

Secure Coding Rulepacks 支持大量编程语言,也支持许多扩展的和第三方的库与配置文件。

有关 Secure Coding Rulepacks最新的信息,请见 Fortify Secure Coding Rulepack User’s Guide.

什么是自定义规则?

你可以通过编写你自己的自定义规则来扩展 Fortify SCA和 Secure Coding Rulepacks 的功能。

比如,你可能需要去加强属性安全向导,或者去分析一个通过还未被Secure Coding Rulepacks覆盖的由第三方库或其他预编译的二进制项目。

如果一个项目使用了在编码期间不可用的资源,项目分析会得到成功,但很有可能不完整,除非自定义规则编写完后给Fortify SCA注入有关这些资源的安全知识。这是一个相对简单的编写规则,以便更准确的分析某一特定项目,即使是利用没有被Secure Coding Rulepacks包含进去的多代码下的资源。

编写有效的自定义规则,熟悉所知的安全漏洞类别和通常与它们相关的函数形式是非常重要的。应该加深对各类经常出现在特定类型漏洞的函数理解,这方便了对自定义规则编写安全相关功能的过程。因为决定安全相关函数的任务证明了有足够的挑战,花费在学习函数类型与漏洞类别的关系上的时间毫无疑问的不会白费。

你必须检查每个安全相关函数的个体行为,通过复查源代码,也可以借助API文挡,去决定代表具体行为和漏洞类别结合各个规则的正确规则形式。一旦你决定了这种做法, 那就成了一个相对简单的实际用Rules Builder去创建规则的过程。

相关信息:

?漏洞类别和他们相关的功能类型,请见第5页“什么是漏洞类别”

?安全漏洞被 Fortify SCA检查出,请见Fortify Secure Coding Rulepack User’s Guide

?决定正确的规则形式,请见第5页“什么是规则类型”

?自定义规则举例,请见第58页“自定义规则范例”

什么是漏洞类别?

Fortify SCA, 和 Secure Coding Rulepacks 一起,包含有大范围的漏洞类别。以下表格中描述了类别样例:

Secure Coding Rulepacks 的简要信息和 Fortify 漏洞类别,请见 Fortify Secure Coding Rulepack User’s Guide 。

有关 Fortify 漏洞类别的额外信息,请见:https://www.doczj.com/doc/ae16471161.html,/vulncat

Audit Workbench 中Details panel 中可以获取详细的推荐做法,提示,和参考文献,这些在 Audit Workbench User’s Guide 已加以描述。

什么是规则类型?

Fortify SCA 运用了以下Fortify Security 研究小组开发的规则类型去分析安全漏洞中的源代码: ?Fortify Source Code Analyzers 的相关规则?

用于Code Modeling 的规则形式

Fortify Source Code Analyzers 的相关规则

Fortify source code analyzers 的相关规则有:?语意规则?

数据流规则

Table 1: 漏洞类别范例类别

源代码描述

Buffer Overflow C/C++在分配的内存的边界以外写入数据,可以污染数据, 程序崩溃,或执行恶意代码。Cross-Site Scripting

.NET,

ColdFusion, Java, SQL 发送无效数据到网页浏览器可以使得浏览器执行恶意代码。

Log Forging C/C+, .NET, Java 编写无效用户到日志文件可以允许黑客建立日志或注入恶意内容到日志中。Memory Leak C/C++内存得到分配但从未释放.

Process Control:Data Flow C/C++, .NET, Java 从一个不可信的来源或者环境加载库可以导致应用程序以黑客身份进行恶意代码的执行。 .Process Control:Semantic C/C++, .NET, Java

在没有指明一个绝对路径的情况下加载一个库,可以导致程序使用黑客提供的恶意库。

SQL Injection C/C++, .NET, and Java 使用用户输入来构建动态SQL 语句,可以允许黑客修改此语意或随心所欲地执行SQL 语句。

System Information Leak

C/C++, .NET, and Java

揭示系统数据或排错信息可以帮助对方学到相关系统信息从而形成攻击计划。

?控制流规则

?配置规则

?结构化规则

注意: Rules Builder 允许你修改除了结构化规则之外的所有规则类型。有关创建和编辑结构化规则的信息,请见第44页“编写结构规则”。

每一种不同的规则类型都是专门为相应分析人员分析漏洞提供所需信息的。数据流和语意规则更进一步地被分成包含了不同含义信息的规则类别。

用于Code Modeling的规则形式

C ode modeling 规则是独立于 Fortify 源代码进行操作的,提供了有关运行代码模型的相关信息:

C ode modeling规则, 在第9页“Code Modeling 规则”中有更进一步的描述,他们是:

?Alias rules

?Allocation rules

?Buffer Copy rules

?Non-Returning rules

?String Length rules

语意规则

语意分析器检测了在程序内部,使用函数和API时可能有的潜在危险。它有专门的逻辑去检查 buffer overflow, format string,和漏洞执行路径形式,另外,还有其他依赖于更多通用分析的问题形式。比如,任何潜在危险函数的作用可以用语意分析器标记,这类函数能通过考虑诸如函数签名和多态关系来灵活地定义。

语意分析器利用以下规则去提供检查各种漏洞的信息。有关配置语义规则参数的信息,请见第15页“规则定义信息”。

Table 2: 语意规则

语意规则类型描述

Buffer Overflow定义一个通常复制或设置数据块的函数,可能导致一个缓存溢出

漏洞。如果源参数和/或控制点被确定为运行时常量,则Fortify

SCA 不标记为漏洞.

Default定义了一个在调用时无论其参数和所在上下文怎么样都是不安全

的函数。除非对规则指明了一个额外的表达式,规则下匹配的函

数通常会被Fortify SCA 报告。

Format String Print通过在一个格式化的字符串中控制嵌入的字符,定义了一个类似

printf函数,在调用指定函数时,Fortify SCA会报告缓存溢出

和格式化字符串控制漏洞。

Format String Scan通过在一个格式化的字符串中控制嵌入的字符,定义了一个类似

scan函数,在调用指定函数时,Fortify SCA会报告缓存溢出和

格式化字符串控制漏洞。

Memory定义一个可能被编译器优化的内存操作函数,内存中可能会留下

一个私有信息让他人取得。

Table 2: 语意规则

语意规则类型描述

Process Control定义一个执行由外部程序提供的执行路径参数,如果传递给这个

函数的参数不是一个绝对路径,那会被Fortify SCA 以允许黑客通

过改变路径变量去操纵程序的理由报告。

Unchecked Return Value定义一个返回值应该总是被检查的函数。如果此函数调用的返回

值没有被分配到变量或被用于预言更改程序流,调用会被Fortify

SCA报告。

数据流规则

数据流分析器分析进入程序的,由用户控制的输入数据,并跟踪其在函数和变量之间的传递,由对安全相关函数的不安全使用来定义漏洞。数据流定义了起不同作用的函数,使得 Fortify SCA去进行准确的数据流分析。每一个描述都简要说明了什么时候、为什么相应的规则类型可以应用,它对Fortify SCA提供的分析结果起有什么影响。

数据流分析器利用全局的、程序间的差错衍生去检查一个源点 (用户输入站点) 和一个汇点(危险函数调用或操作)之间的数据流。数据流规则的表现通常依靠于函数的输入和输出参数;规则描述了数据流,并且是一个由具体函数正在使用或产生的数据的逻辑。

例子包括了一个正被复制进一个静态缓冲区,并且不限字符串长度限制的用户控制字符串,和一个被用来构建SQL 查询的用户控制字符串。

以下表描述了数据流规则

有关配置数据流规则参数的信息,请见第15页“规则定义信息”。

Table 3: 数据流规则

数据流规则类型描述

Cleanse定义一个不会被Fortify SCA认为其输出的参被污染的函数,清除

规则经常被用来编写用户输入中的有效函数。

Entry Point定义一个输入参数被污染了的函数。通过Fortify SCA对函数主体

的分析,函数界限内的参数与被认为是有差错的。切入点规则经常

为直接接受用户输入的函接所编写,比如main(…).

Pass-Through定义一个其输入参数会和输出参数交互的函数。如果一个错误值通

过输入参数被输入进函数,它会通过被指定的输出参数存在于此函

数。

如果 Fortify SCA 定义了一个错误值,作为一个输入参数传递给这

个函数,它也考虑了出差错的输出参数。Pass-through规则会为

不同函数构建出错数据和对数据流分析至关重要的的函数而编写,

因为这些规则提供了一个为了由具体函数映射差错流的机制。

注意:当一个函数的源代码不可取的时候你仅仅需要一个Pass-

Through规则,比如当函数被第三方库所定义时。

注意:你也可以以Pass-through规则作为更精准的清除规则。这

样做是为了移除Pass-through规则中漏洞类型差错源领域里的差

错标记,结合有效函数下编写完pass-through规则的漏洞形式。

注意:如果有多个输入参数被指定,如果任何输入参数被污染了,

所有的输出论据都会被标记为被污染的.

Table 3: 数据流规则

数据流规则类型描述

Sink定义一个输入参数必须为不被污染的函数。如果污染到达了此函

数的输入参数, Fortify SCA 会报告漏洞类别和其他相关相应的

sink规则。 Sink 规则是帮助编写对于差错数据来达到和被数据流

分析器侦察到的代表漏洞不安全性的函数。

Source确立一个污染源的函数。此函数的输出论据被Fortify SCA认为是

被污染的的。Source规则是帮助编写注射用户输入到一个程序的

函数。

控制流规则

控制流分析器利用此规则来定义机器不安全运作的原因,并把它们运用到源代码中去发现漏洞。用单一的方法或功能来检测运行顺序的潜在危险。

通过分析程序中的控制流路径,控制流分析器可以决定是否该执行这套在特定次序里违反安全约束的程序。

除了确定函数调用的危险顺序,控制流分析器可以从一些特定的顺序中检查出必须的调用函数的缺省。

控制流分析器的工作内容包括定位使用 (TOC/TOU)攻击系统弱点的时间,鉴别未初始化变量,以及确定哪些效率程序,比如XML,被配置使用。

有关配置控制流规则的信息,请见第15页“规则定义信息”。

配置规则

配置分析器检查因不恰当地配置web应用和应用服务器导致的漏洞,配置规则支持 XML 和属性配置文件的分析。 XML文件的规则使用 XPath 1.0 公式来描述被检查出的漏洞。属性文件的规则表明了具体主键或键值的缺少和存在,这可以通过普通表达式来完成。

比如,配置分析器可以用来检验用户超时情况下 web 应用配置是否合理。.

有关配置规则参数的信息,请见第15页“规则定义信息”。

结构化规则

结构化分析器检查有问题的代码构建。 Rules Builder 目前并不提供定制的结构化规则。但是加强版的 Fortify SCA提供这个功能。有关编写自定义结构化规则,请见第44页“编写结构规则”。

Code Modeling 规则

C ode modeling规则在以下表中进行了描述,提供了有关应用通用结构的相关信息。

Table 4: Code Modeling规则

Code Modeling 规则语言描述

Alias所有确立一个表现得像另一个函数的函数。比如,如果你有

自己malloc的实施,你可以创建一个you can create an

alias规则去把函数成为你自己版本的malloc具体化。有

关信息请参阅alias 规则参数, 见第22页“别名规则”

.

Allocation C/C++确立一个内存配置的函数。分析器使用信息化了的规则

来帮助计算被分配的实际内存大小。

有关配置allocation规则参数的信息,请见第23页

“分配规则”.

Buffer Copy C/C++确立一个实行复制操作的函数。这是个信息化的规则目

的是去帮助分析器去决定目的缓冲区里是否有足够的空

间来进行具体的复制操作。

有关配置缓冲复制参数的信息,请见第24页“缓存复

制规则”.

Non-Returning All确立一个从没有返回值的函数,主要被控制流分析器用

来决定一个终止于一个特定函数的控制流路径。这是个

支持分析器而不是一个显示漏洞是否存在的规则的信息

化的规则类型。

有关配置规则参数的信息,请见第39页“无返回规

则”。

String Length C/C++确立一个计算字符串长度的函数。这是个被分析器用来

帮助计算缓冲大小的信息化规则类型。因此更好的决定

源代码中是否真的存在一个缓冲溢出的问题。

有关配置字符串长度规则参数的信息,请见第42页

“字符串长度规则”。

Chapter 2: 使用 Rules Builder

这一章节讲述了如何使用Rules Builder,并包括了以下这些主题:

?Rules Builder界面

?创建,打开和浏览自定义规则包

?创建规则

?搜索,编辑,和删除规则

?设置污染标记

?配置规则参数

?编写规则描述

?编写结构规则

?自定义规则范例

?在XML中编写规则

Rules Builder界面

当你第一次开始使用Rules Builder,会显示下面这个窗口:

Figure 1: Rules Builder初始窗口

要创建一个新的自定义规则包,查看第13页“创建,打开和浏览自定义规则包”。

要打开现存的一个自定义规则包,查看第13页“打开现存的自定义规则包”。

当你在File菜单中选择了New或者Open之后,Rules Builder菜单栏就会显示出来。

Figure 2: Rules Builder菜单栏

这一部分描述了Rules Builder菜单栏中的下面这些元素:

?File 选项

?Filter 选项

?编辑和删除选项

?栏目

File选项

File菜单提供了创建新规则包;打开、关闭和保存规则包,退出当前Rules Builder的选项。

当打开一个项目以后,它同时提供了项目菜单,允许你设置规则包所有范围的污染标记声明。要得知设置污染标记声明的具体信息,请查看第15页“设置污染标记”。

Filter选项

Filter下拉菜单能将那些按照下面某一条显示的规则列表进行过滤:

?语言

?规则类型

?类别

?Namespace

?类名

?函数

过滤字段允许你输入一个用来在所选栏目中进行搜索的短语。

区分大小写的复选框可以指定搜索是否要区分大小写。

编辑和删除选项

编辑和删除选项可以被以下功能键访问:

?Details可以打开规 Rules Details Editor中所选的规则

?Delete可以删除所选的规则

?Create可以创建并显示 Rules Details Editor中新的规则

?Copy可以创建并显示 Rules Details Editor中一条所选新规则的副本。

?Rulepack info可以显示并允许编辑以下的和当前规则包相关联的信息内容:?ID

?名字

?版本

?描述

?节点

栏目

每一条规则都被描绘成图表中一条单一的行,这张表包含了的Rules Builder的主要接口。这些栏目提供了下面的这些规则细节特定信息:

?语言:用来表述规则的语言

?规则类型:规则的类型

?类别:和规则相关联的漏洞类别

?Namespace (Package): 规则匹配(可以表述作一个字符串或者一个规则的表达式)的Namespace或包(如果有)

?类名:规则匹配(可以表述作一个字符串或者一个规则的表达式)的类(如果有)

?函数(方法):规则所匹配(可以表述作一个字符串或者一个规则的表达式)的函数或者方法

创建,打开和浏览自定义规则包

这一部分包含了以下的主题:

?创建自定义规则包

?打开现存的自定义规则包

?浏览自定义规则包

创建自定义规则包

要创建一个自定义规则包:

1.打开Rules Builder。出现一个窗口,引导你去:

在文件菜单中打开一个现存的自定义规则包或者创建一个新的自定义规则包。

2.选择File - New。规则包信息窗口会出现,显示唯一的规则包ID,这是自动指定给新的规则包

的。

3.在规则包名字段中,为新的规则包输入一个带有描述性的名字。

4.在规则包版本的字段中,输入规则包的版本号。版本号必须按照下面的某一格式:

number1

number1.number2

number1.number2.number3

number1.number2.number3.number4

注意:规则包版本的字段不支持双字节的数字。

5.点击OK。Select Rule Type对话框会显示出来。

6.在下拉框中选择规则类型。

要得知规则的各种类型,请查阅第5页“什么是规则类型”。

7.点击OK。 Rules Details Editor就会出现,包含两种标签:

a. 选择Rule Parameters制表符来设定新规则的函数明细。

要得知设置规则参数的具体信息,请参阅第15页“配置规则参数”。

b. 选择Rule Description制表符来输入新规则的具体描述,在分析的时候如果和规则匹配,则

会在输出中显示。

要得知规则描述的具体信息,请参阅第43页“编写规则描述”。

8.当你设置了规则参数并编写了规则描述之后,点击Save New Rule和Close。

打开现存的自定义规则包

要打开一个现存的自定义规则包:

1.打开Rules Builder。出现一个窗口,引导你去:

从文件菜单中打开一个现存的自定义规则包或者创建一个新的自定义规则包

2.在文件菜单中选择File - Open。

文件对话框会显示出来。

3.定位并选中合适的规则包,然后点击Open。

Rules Builder的用户界面会打开,显示你所选择的规则包的内容。

浏览自定义规则包信息

要查看一个自定义规则包的信息内容:

点击Rulepack Info来打开规则包信息对话框,这显示了当前规则包的信息内容。

创建规则

这部分讲述了如何创建一个新的规则,并包含了基于现存的规则来创建规则的说明。

要创建一个新的规则:

1.点击Create。出现Select Rule Type对话框。

2.在下拉框中选择一个规则类型,并点击OK。要得知不同类型的规则的信息,请查看第5页“什

么是规则类型”。

出现 Rules Details Editor,包含Rule Parameters和Rule Description面板。

使用规则参数来设置你所选择的规则类型的参数,以便适用于新的规则,如第15页“配置规则

参数”中所描述的。

使用规则描述来输入形容新规则的信息,如第43页“编写规则描述”中所描述的。

3.点击Save New Rule和Close。

你同样可以使用Rules Builder能够复制的特征来创建一个新的规则,这个新规则其实就是一个现有

规则额外的副本。这样你就可以按照要求修改这个规则。

要创建一个基于现有规则的规则:

1.选择你想用来作为新规则基础的规则。

2.点击Copy。

3.执行之前操作的步骤2和3。

搜索,编辑,和删除规则

这以部分描述了如何搜索规则,编辑规则和删除规则。

搜索规则

要搜索特定的规则:

1.在Filter框中输入一个搜索短语。

2.选择区分大小写复选框来指定是否区分大小写搜索。

3.在下拉菜单中选择一个类别。有以下这些选择:

?语言 - 规则就是为这种编程语言制定的

?规则类型 - 规则的类型,如别名或者数据流

?类别 - 漏洞的类别

?Namespace - 在Java中是包的名字;在C++或者.NET中,是Namespace的名字

?类名 - 类的名字

?函数名 - 函数或者方法的名字

编辑规则

要编辑规则:

1.选择你想要编辑的规则。

2.点击Details。出现 Rules Details Editor。

3.修改在Rule Parameters和Rule Description面板中要求的信息。

4.点击Apply Change和Close。

删除规则

要删除规则:

1.选择你想要删除的规则。

2.点击Delete。会显示一个确认信息并询问你是否要真的删除这个规则。

3.点击Yes来删除规则,或点击No来取消删除步骤。

设置污染标记

污染标记是Fortify SCA用来指示特定数据的出处和鉴别在它之上运行的特定操作。在默认的情况

下,污染标记会产生而不需要特别说明。要制造某个明确的污染标记,你就必须清楚地声明这个标

记。

要清楚地声明一个特定的污染标记:

1.打开规则包。

2.在文件菜单中选择Project - Configure Taint Flags。出现一个对话框。

注意:当一个项目被打开的时候,项目选项仅仅出现在文件菜单中。

3.输入污染标记名并指定污染标记是否要产生或特别处理。

查看第34页“数据流规则定义信息”以便得到Secure Coding Rulepacks所使用到的污染标记的具

体描述。

配置规则参数

这一部分描述了配置规则参数。

当你创建一个规则,你看到的配置面板会根据规则类型而变换。这些面板是:

?通用规则信息

?函数标识符

?条件

?规则定义信息

注意:函数标识符并不适用于配置规则类型,而且当定义别名规则参数的时候,面板会被标记为

Alias To Information和 Alias From Information,而不是Rule-Specific和Function Identifier。

通用规则信息

对于大多数规则类型,General Rule Information面板会显示唯一的ID,每一个新的规则都会自动地

产生这个ID,和一个注释字段,允许你输入任何关于新规则的相关信息。

Figure 3: General Rule Information面板l

对于下面的规则类型,General Rule Information面板包含了附加的字段:

?配置

?控制流

?数据流汇点

?语意

详细的General Rule Information面板显示在下面的图形中。

Figure 4: General Rule Information面板l

附加的字段是:

领域:漏洞属于的领域。

漏洞类别:对漏洞的分类和分级,如缓存溢出或者SQL注入。

注意:漏洞的列表可以通过这样编辑来修改:

install_directory/Core/config/rulebuilder.config

子类别:漏洞类别的子类别。

重要性:值的范围,表示了漏洞重要级别: Critical, High, Medium, Low, or Info。

函数标识符

除了配置以外所有的规则类型都在规则定义中包含函数标识符。函数标识符在Function Identifier面板中定义。

注意:对于别名规则来说,函数标识符在 Alias To Information和From Alias面板中指定。同样的,控制流规则具有附加的参数,如第27页“控制流规则”中所描述的。

Figure 5: Function Identifier 面板l

函数标识符包括:

?函数、方法名

?包

?类名

?签名

?应用于

?修改器

函数/方法名

能够触发当前规则的函数或方法的名称。

如果你选择了Regular Expression框,那么字段的值就会被作为一个Java风格的来解释。

能够触发当前规则的函数被定义的Namespace或者包。

在包字段中的变量被Fortify SCA这样解释:

?如果你没有选择Regular Expression 框,一个输入的字符串变量直接和包的名字匹配。

如果没有输入任何变量,这就表明函数在包中没有定义。

?如果你选择了Regular Expression 框,输入的值就被作为一个Java风格的正则表达式来解释。

“.*”表明函数没有被定义或者在任意的包中都有定义。这是最低限制的规格,并匹配绝大多数可能的所指定函数的定义。

“.+”表明函数在任意的包中都有定义。这是第二低限制的规格,并匹配所有在默认的

Namespace之外的所指定函数的定义。

类名

能够触发当前规则的函数被定义的类。

在 Class Name字段中的值被Fortify SCA这样解释:

?如果你没有选择Regular Expression 框,一个输入字符串变量直接和Namespace或者包名匹配。

如果没有变量输入,函数在类中就没有定义。这符合C语言风格的方法和其它在特定类之外定义的函数。

?如果你选择Regular Expression 框,输入的值就被作为一个Java风格的正则表达式来解释。

“.*”表明函数没有在类中定义,或者任意的包中都有定义。这是最低限制的规格,并匹配绝大多数可能的所指定函数的定义。

“.+”表明函数在任意的类中都有定义。这是第二低限制的规格,并匹配出现在一个类中的所指定函数的任意定义。

签名

允许存在这样的限制,规则只能够应用于那些和特定变量匹配并符合某一个函数签名(参数列表)的函数。函数基于它们的签名而触发一条规则的限制在编程语言中特别有用,允许具有相同名字的函数定义能够重载来接受不同的参量。

签名应该是一张按照顺序的逗号分割的列表,如下所示:

?字符串和那些在特定函数中定义的参量类型相对应。

?“…”,它象征那些了接受变量型参数,并使得规则和它匹配的函数。“…”的声明可以被用在和其它签名元素的结合中。

?“{WildCard n1-n2}”, 其中n1和n2都是数字型变量,在特定函数的签名的最后,代表用来匹配的任意类型参量的最小和最大数字,WildCard的声明通常表明紧跟在其它任意签名元素之后的输入的参量,而且不能先于这种元素出现。

?“NO_ARGS”,表明一个不存在参数的函数。一个NO_ARGS的声明必须要给出,作为输入的唯一一个变量。

?一段空格,它指引Fortify SCA去匹配所有的方法或者函数签名,而没有任何限制。

举例来说,考虑一下下面的C++方法:

MyFunc (char* s, int i)

MyFunc (char* s)

MyFunc (char* s, int i, char* s)

在这个例子中,“char*, int, {WildCard 0-1}”可以匹配第一个和第三个签名,但不匹配第二个。

应用于

和Apply To字段相关联的复选框影响着类之间的规则模型的多变关系。

?Implements定义了在规则中指定的函数在一个接口中定义,而且规则应该通过在执行指定接口的任意的类中,某个特定函数的使用而触发。

?Overrides定义了除了匹配特定的函数之外,规则也应该匹配从那些指定类中继承而来的类中函数的覆盖定义。

?Extends定义了虽然指定函数没有在指定的类中定义,但是规则也应该匹配继承于指定类的那些类中执行的等价函数。

修改器

和Modifiers字段相关联的复选框允许规则受到这样的限制,只匹配指定的函数,如果某种语言的修改器被应用于函数的定义。

制定安全操作规程制度.docx

制定安全操作规程制度 1、本文所有内容文字图片和音视频资料,版权均属作者所有,任何媒体网站或个人未经 作者协议授权不得转载、转贴、链接或以其他方式复制发布发表。已经作者协议授权的媒体、网站,在下载使用时必须注明来源,违者作者将依法追究责任。 2、转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目的的合理、善意 引用,不得对本文内容原意进行曲解、修改。 3、个人付费下载本文后依法享有使用权和二次创作权,但禁止擅自同意他人继续转载、 引用本文内容。 一.编制目的 为进一步规范各工种行为,实现规范化操作,提高施工效率和工程质量,减少人员事故和 财产损失,保障安全生产,根据有关法律、法规和文件规定制定本管理制度。 二.适用范围 云南云岭高速公路建设集团有限公司云南小龙高速公路土建一标项目部制定安全操作规程。 三、制度内容 1、项目部所制定的安全操作规程必须涵盖涉及到所有工种、设备、工序。 2、各类岗位的安全操作规程制定应根据施工作业的工序开展,具体相关负责人负责起草,项目安全部门审核,总工程师审定签字后执行。可张挂的张挂在岗位明显位置。 3、安全操作规程必须在项目限定时间内完成制定,并整齐张挂,不按时完成的责任人予 以经济处罚,由此造成的损失由责任人负责。 4、安全操作规程制订工作完成,报项目部安全科存档和汇总备案。属保密范围的有关人 员必须做好保密工作,如有失窃,由责任人承担一切后果。 5、项目部要定期不定期的对职民工进行安全操作规程的学习、宣传,落实工作由项目部 安全科负责,并负责考核,对有不符合要求的人员按项目的相关制度规定进行处理。 6、各级安全操作规程的修订程序与制定程序相同。 7、安全操作规程的执行检查由项目安全管理人员进行定期和不定期检查。由项目施工队 安全管理人员进行经常性检查)。发现违章现象按员工守则处理。由于违反安全操作规程 发生事故时,一律作责任事故从严处理。 8、项目每次检查,出现安全操作规程牌乱丢乱放、甚至的情况,按照相关规定处以每一块、每一样2000元罚款。 10、安全操作规程应确保有效性,即随着施工进度的推进,出现新的作业工种和人员时, 安全操作规程应对应的随之增加,并进行评审后执行。

安全操作规程编写要点

安全操作规程编写要点 1、操作规程是对生产经营企业各岗位如何遵守有关规定,是安全完成本岗位工 作任务的具体做法与必须遵循的操作步骤。由于各经营单位的生产经营方式、生产经营条件、生产经营范围、工艺方法、生产经营场所及工作程序千差万别,因此本要点仅列出生产经营企业的部分操作规程的种类及要点。各单位应当根据自身实际情况确定相应的岗位,在此基础上制定和完善相应的岗位安全操作规程。保证本单位安全生产责任制中涉及到的所有岗位均有相应的岗位操作规程。 2、岗位安全操作规程(岗位操作法)的编制,应根据生产产品的原辅料性质、 生产工艺技术、生产流程、生产设备、危险特性、风险分析、安全措施等基本要求编写该产品生产岗位安全操作规程(岗位安全操作法),作为产品安全生产的安全操作依据。 3、岗位安全操作规程至少包括以下内容: 1)本岗位工作职责、权力和义务。 2)工艺过程中的危险因素、潜在事故、控制失效、设备设施故障、人的不安全行为等风险分析内容,有针对风险分析结果所制定的安全防护及应急处置措施。 3)工艺参数的设计值、控制范围与连锁报警值,标出带有控制点的生产工艺流程图。 4)正常开、停车操作程序,注意事项及安全措施。 5)紧急(含事故)停车操作程序和处置方法。注意事项及安全防护措施。 6)正常运行操作、维护(含设备、设施),巡回检查方法。 7)岗位紧急及异常情况时应急处理措施和上报程序。 8) 巡回检查频次、路线、内容、方法与要求。 9) 装置运行中跑、冒、滴、漏的安全处理的要求。 10) 安全防护装置(安全附件、连锁及报警装置)保养及维护的要求。 11) 消防及应急救援器材配备及正确使用的要求。 12)劳动防护用品的个体防护要求。

标准编写规则

标准编写规则第1部分:术语 1范围 GB/T2001的本部分规定了术语标准的制定程序和编写要求。 本部分适用于编写术语标准和标准中的“术语和定义”一章,其他术语工作也可参照使用。 2规范性引用文件 下列文件中的条款通过GB/T2001的本部分的引用而成为本部分的条款。凡是注日期的引用文件,随后所有的修改单(不包括勘误的内容)或修订均不适用于本部分,然而,鼓励根本本部分达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本部分。 GB/T1.1—2000标准化工作导则第1部分:标准的结构和编写规则(ISO/IEC Directives,part 3,1997,Rules for the structure and drafting of Intemational Standards,NEQ) GB 3101 有关量、单位和符号的一般原则(eqv ISO 31-0) GB 3102 (所有部分)量和单位[eqv ISO 31(所有部分)] GB/T 4880 语种名称代码(eqv ISO 639) GB/T 10112-1999 术语工作原则与方法 GB/T 13418-1992 文字条目通用排序规则 GB/T 15237-××××术语学基本词汇(neq ISO 1087—1:2000) GB/T 16785-1997 术语工作概念与术语的协调(eqv ISO 860:1996) 3术语和定义 GB/T 15237-××××中确立的术语和定义适用于GB/T2001的本部分。 4术语标准化 制定术语标准的目标是获得一种标准化的术语集,其中概念和术语一一对应,以避免歧义和误解。因此,在术语标准化中: a)应为每个术语标准建立相应的概念体系; b)概念的定义应能在语境中替代同该概念相对应的术语(替代原则); c)概念的定义应使用汉语或国家规定的少数民族文字表述; d)使用不同语种表述的同一个定义应在内容上等同,并尽可能使用类似结构; e)应指出国家标准的概念体系与国际标准的概念体系之间的差异以及不同民族语言的概念体系与国家标准的概念体系之间的差异。 5术语标准的制定 5.1准备工作 5.2需求分析 当某个领域内由于概念和(和)术语含义不明确而造成交流困难时,应通过制定术语标准,或在其他标准中专设一章“术语和定义”加以解决。 5.1.2 用户 应明确所制定标准的用户,用户的确定将关系到: a)所涉及的领域或子领域的界定;

MHWJW16-代码编写安全规范-V1.1-ok

文档信息 制度编号: 生效日期: 分发范围: 解释部门: 版次:Ver1.1 页数: 4 制定人: 审核人: 批准人: 传阅阅后执行并存档保密保密等级内部公开 版本记录 XX单位 代码编写安全规范 1.安全编码 1.1.通用编码原则 (一)不要信任外部的用户输入或系统。 应用程序应该彻底验证所有用户输入,然后再根据用户输入执行操作。 验证可能包括筛选特殊字符。针对用户意外地错误使用和某些人通过在系统中注入恶意命令蓄意进行攻击的情况,这种预防性措施对应用程序起到了保护作用。常见的例子包括SQL 注入攻击、脚本注入和缓冲区溢出。此外,对于任何非受控的外部系统,都不要假定其安全性。 (二)不要通过隐藏来保障安全。 尝试使用让人迷惑的变量名来隐藏机密信息或将它们存储在不常用的文件位置,这些方法都不能提供安全保障,最好使用平台功能或使用已被证实可行的技术来保护数据。 (三)以安全的方式处理失效 如果应用程序失效(如发生严重错误等),要恰当的进行处理,一定

要保护好机密数据。同时,在向最终用户返回错误消息时,不要公开任何不需要公开的信息。也就是不要提供任何有助于攻击者发现应用程序漏洞的详细信息。 1.2.防范常见安全编码问题 在实现应用软件的编码阶段,也较容易因缺乏严谨思考或不好的编程习惯而引入安全问题,而且这些安全问题产生的危害作用非常大,因其产生的漏洞常常会造成应用程序中其他部分构筑的安全控制措施完全失效.目前存在的相当数量系统漏洞都是由编码问题造成的.因此要想保证应用软件的安全性,必须在编码阶段继续高度贯彻安全性原则. 在编码阶段,避免安全问题的基本原则如下: 程序只实现指定的功能 永远不要信任用户输入,对用户输入数据做有效性检查 必须考虑意外情况并进行处理 不要试图在发现错误之后继续执行 尽可能使用安全函数进行编程 小心、认真、细致地编程 目前在各种应用软件中常见的安全漏洞如下所示,应对这些常见问题进行有针对性的防范。 6.2.1.缓冲区溢出 如果对输入参数(字符串、整数等)处理时长度检查不严格,或对指针和数组越界访问不进行保护,就容易产生缓冲区溢出(Buffer Overflow)问题,这种问题主要出现在主要出现在C/C++ 语言编写的系统中,它造成的漏洞是当今绝大多数安全漏洞的主要根源。在Java / .NET 等利用虚拟机的(托管)平台上不会产生此问题。 要避免此问题,则必须对系统输入数据进行严格的长度检查,废弃或截断超长的越界数据,同时利用基础库函数中的一些更为安全的字符串处理函数来处理数据,也可以利用编译器或代码复查工具提供的检查功能来尽早发现可能会产生问题的程序。 6.2.2.输入非法数据

操作规程安全技术措施编制审核制度

操作规程、安全技术措施编制审核制度1、大型设备必须逐台有专门的操作规程,采掘设备及各种重要设备 如行车、井下各类开关、绞车等必须各型号有自己对应的专门操作 规程。其它设备可依据类别编写通用操作规程。 2、机电重大工程或异于普通操作、安全系数降低的运行操作必须有 针对性地编写安全技术措施。 3、设备操作规程必须由使用该设备的队机电技术员编写,要求在使 用前一星期必须编写完毕;安全技术措施由施工队机电技术员编写,必须在施工或操作三天前编写完毕。 4、编写设备操作规程必须仔细阅读说明书和各类资料,熟悉该设备 的各种技术参数并且能进行正确操作。 5、编写操作规程必须按该设备操作的全过程仔细编写,从对各类司 机的操作人员的要求、开机前的准备、运转启动程序、操作中同时 检查的项目、应立即停机的情况、正常停机顺序、常见故障分析处

理等各方面仔细推敲,主通风机必须有反风操作,采煤机必须有冷却、喷雾水及使用油脂的规定参数等。 6、操作规程必须符合《煤矿安全规程》、《电业安全规程》的有关 规定,结合《工种操作规程》的相关内容,文字简明扼要,条理清晰,不准用含糊及模棱两可的文字。 7、编写安全技术措施时技术人员必须深入现场了解情况,在经过严 密精确地计算后拿出可行性方案,在“三大规程”的指导下本着 “安全第一、技术为主”的方针仔细编制。 8、技术员在编制过程中,要征求队长、书记及有经验的工人技师的 意见,编制后要经队长、审查签字后再报有关领导、单位审批。 9、设备操作规程的审核程序先由安全科、机电科部门审批,最后由 机电矿长、总工程师组织审批后生效。对大型设备、采掘设备如跨 年度使用,必须在每年由机电矿长、总工程师组织相关单位技术负 责人,使用队组技术员进行操作规程会审,使用队技术员根据会审 意见重新编制审批方能生效。

源代码安全管理制度V

技术部源代码控制管理制度V1.0 一、总则 1、目的: 为保障公司源代码安全不至于泄露,保证源代码的完整,明确源代码控制管理流程,特制定此管理办法。 2、使用范围: 本办法适用于所有涉及接触源代码的各部门各岗位,所涉及部门都必须严格执行本管理办法。 3、责权: 源代码直接控制管理部门为技术部。本办法管理重点在于控制管理源代码的完整性,不被非授权获取,不被非授权复制和传播。本办法所指源代码不仅限于公司开发人员自行编写实现功能的程序代码,而且还包括相应的开发设计文档及用于支撑整个平台系统运行所必须具备的第三方软件、控件和其它支撑库等文件。 二、管理内容及要求(根据部门工作情况撰写) 1、源代码完整性保障 所有系统的源代码及相应的开发设计文档均必须及时加入到指定的源代码服务器中的指定SVN库中。

我们研发的平台系统运行所必须的第三方软件、控件和其它支撑库等文件也必须及时加入源代码服务器中指定的SVN库中。 功能开始编写或者调整代码之前,其相应的设计文档必须签入SVN库(由测试组文档管理员负责检查)。 系统编码或代码调整优化结束后,提交技术测试组功能测试之前,相应的源代码必须提交到SVN库。 测试组对功能进行测试时必须从源代码服务器上的SVN库中获取代码,包括必须的第三方软件、控件和其它支撑库等文件,然后进行测试。 所有提交到SVN上的代码必须保证编译通过,而且提交的时候不会影响主干其它程序的正常运行. 2、源代码的授权访问 源代码服务器对于共享的SVN库的访问建立操作系统级的,基于身份和口令的访问授权。(由SVN管理员进行管理和设置) 在SVN库中设置用户,为不同用户分配不同的、适合工作的最小访问权限。要求连接SVN库时必须校验SVN中用户身份及其口令。在SVN库中要求区别对待不同用户的可访问权、可创建权、可编辑权、可删除权、可销毁权。每个用户切实保证自己的用户身份和口令不泄露,用户要经常更换自己在SVN库中账号的口令。同时,工作任务变化或岗位调整后SVN管理员要实时回收用户的相关权限。要获取不属于自己范围内的文件,例如:代码、数据库,需求文档等,需经项目经理和技术部经理审批同意后由SVN管理员授权。

安全操作规程编写注意事项

?安全操作规程编写注意事项: ? 一.制定安全操作规程的要求 (1)要做到“三全”。安全操作规程要全面覆盖生产经营单位的全体从业人员干的全部生产操作以及操作的全过程(作业前、中、异常情况),不能有死角或漏洞。 (2)要先对操作的全过程进行危险辨识(物料、设备、工艺、环境、防护、法规),再制定防止事故的措施,然后把防止事故的措施中有关规范、约束操作者行为的措施整理成为安全操作规程。 (3)要吸取事故教训(包括本单位曾发生的事故和尽可能搜集到的同行业、同类型单位曾发生的事故),把防止重复性事故的措施中有关规范、约束操作者行为的措施写进规程。 (4)安全操作规程不能只明确“不准干什么、不准怎样干”,还要明确“应怎样干”;不能留有让从业人员“想当然、自由发挥”的余地;应该明确操作中必须的操作、禁止的操作、必须的操作步骤、操作方法、操作注意事项和正确使用劳动防护用品的要求以及出现异常时的应急措施等。(5)涉及设备操作的安全操作规程应包括如何正确操纵设备,防止设备损坏事故的规定。 二。安全操作规程分类 (1)各种生产设备的技术操作规程。 (2)各工种、各岗位的安全操作规程。 三.安全操作规程的内容(至少应包括以下内容): 1、开车操作规程。 2、正常停车操作规程。

3、正常操作条件。 4、低负荷操作条件。 5、备用装置启动条件(单元全循环或全回流)。 6、超负荷操作条件。 7、短时间停车后再开车规程。 8、检修后重新开车。 9、检修程序(批准手续、清除污物、隔离、系统清扫等)。 10、紧急停车操作程序。 11、发生故障时的紧急方案。 12、化学品泄露事故应急处置装置操作规程。 四.部分案例 研磨机安全操作规程 一、开机前准备工作 1.1仔细检查研磨机各部件是否正常,特别是冷却循环水上是否正常。 1.2清理周围环境,清除一切有碍操作的物料。 二、试机 2.1先打开冷却循环水,接通料管,启动气泵机,打开进料阀门。 2.2打开电源开关,按主机启动按钮,点动试运转,确认运转是否正 常。 三、开机 3.1接通料管,打开电源开关及进料阀门,启动气泵机,将气泵机的气 压调到浆料进入研磨筒内,再按主机钮启动将泵机调至需要流出 气压的料量。 3.2取浆料检测细度,视细度情况再调查整泵机的气压流量。 四、停机 4.1研磨停止操作时,必须将浆料流完后,取溶剂将进出料管及研磨筒

施工现场安全管理资料编写指南

施工现场安全管理资料编写指南 一、安全生产责任制(以安全生产责任制为中心的各项安全生产、文明施工的管理规定、办法和各工种安全技术操作规程等)。 二、安全目标管理。 配合表式:《安全责任目标考核记录表》(<表一>)。 三、施工组织设计(施工方案)和专项安全施工组织设计。 四、安全技术交底。 配合表式:《安全技术交底》(表<二>) 五、安全检查。 配合表式:1、《安全检查记录表》(表<三>—1); 2、《事故隐患整改通知书》(表<三>—2); 3、《事故隐患整改反馈报告单》(表<三>—3)。 六、安全教育。 配合表式:1、《安全教育记录表》(表<四>—1); 2、《三级安全教育登记卡》(表<四>—2); 3、《变换工种工人安全教育登记表》(表<四>—3); 4、《施工现场管理人员及安全培训情况登记表》(表<四>—4)。 七、班前安全活动。 配合表式:《班组班前安全活动记录表》(表<五>)。 八、特种作业持证上岗。 配合表式:《特种作业人员花名册》(表<六>)。 九、工伤事故。 配合表式:1、《工伤事故快报表》(表<七>—1); 2、《工伤事故月报表》(表<七>—2)。 十、安全标志。 配合表式:1、《施工现场安全标志牌一览表》(表<八>)。 十一、各类设备、设施验收、检测。 配合表式:1、基坑支护、脚手架、模板工程、洞口与临边防护设施、密目式安全网挂设、临时用电、物料提升机、外用电梯、塔式起重机、施工机具、文明施工等验收表(表<九>-1至表<九>—11); 2、接地电阻、漏电保护器、绝缘电阻等测试记录表(表<十>—1至表<十>—3); 3、《施工现场安全防护用品使用登记表》(表<十一>)。 十二、施工现场三级动火申请审批。 配合表式:《施工现场三级动火申请审批表》(表<十二>)。 施工现场安全管理资料应分别按上述十二项内容分类建档。 第二章安全生产责任制 第一节安全生产规章制度的分类及主要内容 第2.1.1条企业要建立健全安全生产规章制度,并根据生产发展的需要随时进行修改和补充。主要包括以下制度:(1)各级各部门安全生产责任制;(2)安全教育培训制度;(3)安全生产检查制度;(4)安全生产技术交底制度;(5)职工伤亡事故统计报告制度;(6)防护用品使用管理制度;(7)安全生产责任考核奖惩制度;(8)易燃易爆、有毒有害物品保管制度;(9)现场消防管理制度;(10)班组班前安全活动制度;(11)各工种安全技术操作规程。

企业标准编写规则.doc

杭州X X装饰有限公司 Q/HXXG 00.01-2013 企业标准编写规则(试行) 版次第一版批准人 有效期限6个月审核部门负责人 会签 起草部门人事行政部起草人 发布日期实施日期

杭州XX装饰有限公司企业标准 企业标准编写规则(试行) 1 目的 为推进企业标准化工作,提升企业精细化水平和制度创新水平,规范企业管理标准编制规则、编号、结构、格式、要求,依据标准化工作要求,特制定本规则。 2 适用范围 适用于杭州XX装饰有限公司企业管理标准的编写及审核。 3 引用标准 GB/T 1.1 标准化工作导则:标准的结构和编写原则 GB/T 1.2 标准化工作导则:标准中规范性技术要素内容的确定方法 GB/T 13016 企业标准体系表编制原则和要求 GB/T 13017 企业标准体系表编制指南 GB/T 15497-2003 企业标准体系技术标准体系的构成和要求 GB/T 15498-2003 企业标准体系管理标准工作标准的构成和要求 4 术语解释 4.1 标准:是对重复性事项和概念所作的统一规定,按其性质分为技术、管理、工作三大标准。 4.2 企业标准:在标准化领域中,需要协调统一企业生产经营活动事项而制定的标准。包括:技术标准、管理标准和工作标准 4.3 企业标准化:是以制定、修订标准,贯彻执行标准,达到统一为主要内容的全部活动过程。为企业生产、经营、管理范围内获得最佳秩序,对实际的或潜在的问题制定共同的和重复使用的规则的规范性活动。 4.4 技术标准:对标准化领域内的需要协调统一的技术事项所制定的标准。是从事生产、建设、商品流通的共同技术依据,是对生产对象、生产条件、生产方法等所做的规定,包括:基础标准、产品标准、方法标准、安全标准等等。其形式可以是标准,也可以是规程、规范、定额和作业指导书、说明书等; 4.5 技术标准体系:企业范围内技术标准按其内在联系形成科学的有机整体,他是企业标准体系的重要组成部分。

北京市企业岗位安全操作规程编写指南

北京市企业岗位安全操作规程 编写指南 北京市安全生产监督管理局 二〇一六年三月

前言 为认真贯彻《北京市人民政府关于加强安全生产隐患排查治理体系建设的意见》以及《北京市生产安全事故隐患排查治理办法》(北京市人民政府266号令),进一步落实企业安全生产主体责任,促进企业建立隐患排查治理机制,北京市安全生产监督管理局组织编制了《北京市企业岗位安全操作规程编写指南》。 企业最基本的生产单元是作业岗位,岗位活动的规范化、标准化是实现企业安全运行的基础。制定和实施岗位安全操作规程,是规范岗位安全作业行为、开展岗位隐患排查治理、建立岗位安全隐患清单的有效途径。本指南结合各类企业的不同规模和不同岗位特点,明确了岗位安全操作规程的编制流程、编制要求和编制方法,规范了岗位安全操作规程的基本结构和内容,并提供了岗位安全操作规程的范例。本指南是《北京市企业事故隐患排查治理实施导则》的配套规范,可供各企业编制岗位安全操作规程使用,也可以为各有关单位组织开展隐患排查治理、建立“一企一标准,一岗一清单”提供借鉴。 本指南由北京市安全生产监督管理局组织编写,北京启迪智信注册安全工程师事务所有限责任公司的专家参加了编制工作。 2016年3月

目录 第一章总则 (3) 第一节岗位安全操作规程的概念和基本要求 (3) 一.岗位安全操作规程的基本概念和作用 (3) 二.岗位安全操作规程的基本内容和培训教育 (3) 三.岗位安全操作规程的更新 (3) 第二节岗位安全操作规程的编制范围 (3) 一.需编制安全操作规程的岗位 (3) 二.岗位安全操作规程编制单元和形式 (4) 第二章岗位安全操作规程编制流程和总体策划 (4) 第一节岗位安全操作规程编制的流程 (4) 一.岗位安全操作规程编制的基本要求 (4) 二.岗位安全操作规程编制的步骤 (4) 第二节岗位安全操作规程总体策划 (5) 一.岗位安全操作规程编制的调研 (5) 二.岗位安全操作规程架构总体策划的要求 (5) 三.岗位安全操作规程架构总体策划的方法和要点 (6) 四.岗位安全操作规程编制计划 (6) 第三章岗位安全操作规程的编制 (7) 第一节岗位安全操作规程的基本结构六要素 (7) 一.岗位安全操作规程的基本要素之一:适用范围 (7) 二.岗位安全操作规程的基本要素之二:岗位安全作业职责 (7) 三.岗位安全操作规程的基本要素之三:岗位主要危险有害因素 (7) 四.岗位安全操作规程的基本要素之四:岗位劳动防护用品佩戴要求 (8) 五.岗位安全操作规程的基本要素之五:岗位作业安全要求 (8) 六.岗位安全操作规程的基本要素之六:岗位应急要求 (8) 第二节岗位安全操作规程的编写要求和方法 (9) 一.岗位安全操作规程的版本格式 (9) 二.岗位安全操作规程结构、内容的确定和编写 (9) 附件: (11) 附件1通用车床作业岗位安全操作规程范例 (11) 附件2打磨作业岗位安全操作规程范例 (14) 附件3叉车作业岗位安全操作规程范例 (17) 附件4小型企业机加工作业岗位安全操作规程范例 (19) 附件5小型宾馆客房服务作业岗位安全操作规程范例 (22)

代码编写安全规范

代码编写安全规范 一、本总则提供编码的总体要求与遵循原则。 二、本总则制订是为了规范程序的编码风格,使项目开发过程中所有开发人员的编码有一个良好的、规范的、统一的编码风格,确保在开发成员或开发团队之间的工作可以顺利交接,同时不必花费大力气便能理解已编写的代码,以便继续维护和改进以前的工作。 三、本总则对所有技术开发部编码人有效。 四、本总则对所有开发语言有效,凡任何开发规范与本总则相冲突,以本总则为准。 五、本总则提供各种语言的编码规范,编码人员开发(编码)前应选取相应的语言编码规范进行编码。具体的“开发语言编码规范”请参见附件。 六、若总则附件中无所规范的开发语言规范,请先制订出(一般由项目经理制订)该语言的编码规范后再进行编码。 七、编码命名准则: 1、使用可以准确说明变量/字段/类的完整的英文描述符。例如,采用类似firstName,grandTotal 或CorporateCustomer 这样的名字。禁止使用一些象x1,y1 或fn 这样的名字很简短,输入起来容易,辨别含义困难的命名,使得代码难以理解、维护和改进。 2、采用领域的术语命名。如果用户称他们的“客户”(clients) 为“顾客”(customers),那么就采用术语Customer 来命名这个类,而不用Client。保证命名使用行业或领域里已经存在着很完美的术语,避免生造词汇。

3、采用大小写混合,提高名字的可读性。一般应该采用小写字母,但类名、接口名以及任何非初始单词的第一个字母要大写,一些特殊场合以具体规范为准。 4、尽量少用缩写,但如果一定要使用,必须使用一个统一遵守的缩写,并且在使用时保持一致。例如,如果要对单词“number”采用缩写,那么可从nbr,no 或者num 中选取一个,采用其中一个(具体是哪个倒无所谓),并且只使用这一种形式。 5、避免使用长名字(最好不超过20 个字母)。避免类似如PhysicalOrVirtualProductOrService 之类的超长命名。 6、避免使用相似或者仅在大小写上有区别的名字。例如,不应同时使用变量名persistentObject 和persistentObjects,以及anSqlDatabase 和anSQLDatabase。 7、避免使用下划线作为名字的首末字母。以下划线为首末字母的名字通常为系统保留,除预处理定义之外,一般不用作用户命名。 八、编码注释准则: 1、必须明确注释的重要性。如果你的程序不值得注释,那么它也不值得运行。 2、注释应该增加代码的清晰度。代码注释的目的是要使代码更易于被同时参与程序设计的开发人员以及其他后继开发人员理解。如果不能被他人所理解,则代码的注释是失败的注释,等同于无注释。 3、避免使用装饰性内容,不要使用象广告横幅那样的注释语句。

安全操作规程编制办法

安全操作规程编制办法 安全操作规程是员工操作机器设备、调整仪器仪表和其它作业过程中,必须遵守的程序和注意事项。操作规程规定了操作过程应该做什么,不该做什么,设施或者环境应该处于什么状态,是员工安全操作的行为规范。 一安全操作规程的编制 1、安全操作规程编制的依据 (1)现行的国家、行为安全技术标准和规范、安全规程等。 (2)设备的使用说明书、工作原理资料,以及设计、制造资料。 (3)曾经出现过的危险、事故案例及与本项操作有关的其他不安全因素。 (4)作业环境条件、工作制度、安全生产责任制等。 2、安全操作规程的内容 安全操作规程的内容应该简练、易懂、易记。条目的先后顺序力求与操作顺序一致。 安全操作规程一般包括以下几项内容: (1)操作前的准备,包括:操作前做哪些检查,机器设备和环境应该处于什么状态,应做哪些调查,准备哪些工具等等。 (2)劳动防护用品的穿戴要求,应该和禁止穿戴的防护用品种类,以及如何穿戴等。 (3)操作的先后顺序、方式。

(4)操作过程中机器设备的状态,如:手柄、开关所处的位置等。 (5)操作过程需要进行哪些测试和调整,如何进行。 (6)操作人员所处的位置和操作时的规范姿势。 (7)操作过程中有哪些必须禁止的行为。 (8)一些特殊要求。 (9)异常情况如何处理。 (10)其他要求。 二、安全操作规程的撰写 安全操作规程的格式一般可分为“全式”和“简式”。全式一般由总则或适用范围、引用标准、名词说明、操作安全要求构成,通常用于范围较广的规程,如行业性的规程。简式的内容一般由操作安全要求构成,针对性强,企业内部制定的通常采用简式。为了使操作者更好地掌握、记住操作规程,发生事故时的既定程序处理,也可以将安全操作规程图表化、流程化。采用流程图表化的规程,可一目了然,便于应用。 安全操作规程编写完成后,应广泛征求设备管理部门和使用部门意见,进一步修改完善,经过审批,作为企业内部标准严格执行。随着生产工艺的变化、新设备的使用、新材料和新技术的应用,操作的方式和方法也会发生变化,因此操作规程编制完成后,要根据以上情况的变化及时修订。

工艺安全操作规程编写指南

操作规程目录第一章工艺技术规程 1.1装置概况 1.1.1装置简介 1.1.2工艺原理 1.1.3工艺流程说明 1.1.4工艺流程图 1.2工艺指标 1.2.1原料指标 1.2.2半成品、成品指标 1.2.3公用工程指标 1.2.4主要操作条件 1.2.5原材料消耗、公用工程消耗及能耗指标 第二章操作指南 第三章开车规程 3.1开工统筹图(开车方案) 3.2开工纲要(A级) 3.3开操作(B级) 3.4说明(C级) 第四章停工规程 4.1停工统筹图(停车方案) 4.2停工纲要

4.3停工操作 4.4停工说明 4.5紧急停工说明 第五章专用设备操作规程 第六章基础操作规程 6.1机泵的开、停与切换操作 6.1.1离心泵的开、停与切换操作6.1.2计量泵的开、停与切换操作6.1.3××泵的开、停与切换操作6.1.4××泵的开、停与切换操作 6.2冷换设备的投用与切除 6.2.1水冷换热器的投用与切除6.2.2空气冷却器的投用与切除6.3加热炉的开停与操作 6.4关键部位取样操作程序及注意6.5其他单体设备操作规程

第七章事故处理预案 7.1事故处理原则 7.2紧急停工方法 7.3事故处理预案 7.4事故处理预案演练规定 第八章仪表控制系统操作法8.1DCS系统概述 8.2主要工艺操作仪表逻辑控制说明及工艺控制流程图 8.3装置自保的逻辑控制说明 8.3.1装置自保的逻辑控制图 8.3.2装置自保的逻辑控制说明 8.3.3机组自保的逻辑控制说明 第九章安全生产及环境保护 9.1安全知识 9.2安全规定 9.3装置防冻凝措施 9.4本装置历史上发生的主要事故、处理方法及经验教训 9.5本装置易燃、易爆物的安全性质,**范围、闪点、自燃点9.6本装置主要有害物、介质的有关参数

最新安全操作规程培训试卷说课讲解

安全操作规程培训试卷 姓名: 分数: 一.填空题(50分) 1.上班必须穿戴好本工种所发放的。特种作业人员在作业时,必须正确使用本工种作业配备的。 2.在任何旋转部位作业和使用锤子时,禁止作业。 3.班前小时内禁止喝酒,工作中严禁打闹、开玩笑或做其他不利于安全生产的事。 4.严禁使用具有升降功能的非载人设备设施,进行升降作业。 5.作业时,作业者必须,严禁作业者与他人边操作边闲谈分散注意力。 6.多人共同作业时,必须有,号令一致,行动统一,

相互照顾,不得冒险作业和无指挥作业。 7.各类压力容器、锅炉及其输送管道,严禁在下进行检修。 8.检修施工完毕,必须做到,所有因检修施工拆除的安全防护设备设施必须恢复到能正常使用的状态后,设备方可正常运行。分 9.职工不得顶替上岗,任何人不得随意找人顶替上岗,严禁带未成年人进入工作现场,严禁在工作现场。 10.我厂特种作业范围:;锅炉司炉;;起重机械作业;爆破作业;;机动车辆驾驶;建筑登高架设作业;有关部门强制管理的其它作业。 11.人体对带电部分的最小距离为6千伏及以下厘米;10千伏厘米。 12.工作负责人(监护人)应向全体工作人员交待清楚任务、工作范围、应注意

事项、带电的部位。工作负责人必须始终在现场工作,对工作人员的安全认真监护及时纠正违反的行为。 13.氧气瓶应远离高温、明火和熔融金属飞溅物,安全规则规定应相距以上。 14.乙炔瓶体表面温度不得超过。 15.液化气瓶解冻时,严禁用加热,不得靠近炉火和暖气片等热源。 16.空压机在正常运转时,应检查循环油系统的油压不得低于或高于规定值,油温不得超过,注油器内油面不得低于;各级排气温度:水冷式不得超过℃,风冷式不得超过,其它类型的空压机应遵守其规定;各级操作压力不得超过额定值。 17.清库前,必须召集全体参加清库的人员开会研究,根据库内实际情况,制定临时,使每位作业者,提高其随机应变的能力。

安全合规-软件安全开发过程规范

安全开发过程规范 一、SDL简介 SDL security development lifecycle(安全开发生命周期),是微软提出的从安全角度指导软件开发过程的管理模式。SDL是一个安全保证的过程,起重点是软件开发,它在开发的所有阶段都引入了安全和隐私的原则。自2004年起,SDL一直都是微软在全公司实施的强制性策略。 二、SDL步骤图 SDL中的方法,试图从安全漏洞产生的根源上解决问题,通过对软件工程的控制,保证产品的安全性。 美国国家标准与技术研究所(NIST)估计,如果是在项目发布后在执行漏洞修复计划,其修复成本相当于在设计阶段执行修复的30倍 三、SDL的步骤包括: 阶段1:培训 开发团队的所有成员都必须接受适当的安全培训,了解相关的安全知识,培训对象包括开发人员、测试人员、项目经理、产品经理等。 阶段2:安全要求 在项目确立之前,需要提前与项目经理或者产品owner进行沟通,确定安全的要求和需要做的事情。确认项目计划和里程碑,尽量避免因为安全问题而导致项目延期发布。 阶段3:质量门/bug栏 质量门和bug栏用于确定安全和隐私质量的最低可接受级别。 Bug栏是应用于整个开发项目的质量门,用于定义安全漏洞的严重性阈值。例如,应用程序在发布时不得包含具有“关键”或“重要”评级的已知漏洞。Bug栏一经设定,便绝不能放松。 阶段4:安全和隐私风险评估 安全风险评估(SRA)和隐私风险评估(PRA)是一个必需的过程,必须包括以下信息: 1、(安全)项目的哪些部分在发布前需要威胁模型? 2、(安全)项目的哪些部分在发布前需要进行安全设计评析? 3、(安全)项目的哪些部分需要并不食欲项目团队且双方认可的小组进行渗透测试? 4、(安全)是否存在安全顾问认为有必要增加的测试或分析要求已缓解安全风险? 5、(安全)模糊测试要求的具体范围是什么? 6、(安全)隐私影响评级如何? 阶段5:设计要求 在设计阶段应仔细考虑安全和隐私问题,在项目初期确定好安全需求,尽可能避免安全引起的需求变更。 阶段6:减小攻击面 减小攻击面与威胁建模紧密相关,不过它解决安全问题的角度稍有不同。减小攻击面通过减小攻击者利用潜在弱点或漏洞的机会来降低风险,减小攻击面包括:关闭或限制对系统服务的访问,应用“最小权限原则”,以及尽可能进行分层防御。 阶段7:威胁建模 为项目或产品面临的威胁建立模型,明确可能来自的攻击有哪些方面。

岗位安全操作规程的编写要求和方法

岗位安全操作规程的编写要求和方法 一. 岗位安全操作规程的版本格式 编制岗位安全操作规程,首先应确定岗位安全操作规程的版本格式。大型企业通常按企业标准编制岗位安全操作规程,将其纳入企业技术标准或工作标准;其他企业可根据本单位文件编制的格式要求,确定岗位安全操作规程版本格式,小微企业的岗位安全操作规程版本应尽量简洁。 二. 岗位安全操作规程结构、内容的确定和编写 1. 在基本结构六要素的基础上,确定各个岗位安全操作的结构和内容,并参照本指南提供的范例编写;岗位安全操作规程的结构和内容通常可选择以下方式: (1)岗位从事单一作业活动,或使用单一设备及简单的辅助设备、工具时,可按六个必备要素进行编制;编制方法可参照本指南附件1、附件2、附件3提供的范例; (2)作业活动简单的小微企业作业岗位、小型单位的服务岗位等,可以对基本结构进行适当合并简化,以求岗位安全操作规程更加实用、可行;如:适用范围和岗位安全作业职责可以合并为一个因素,岗位作业安全要求和岗位劳动防护用品佩戴要求、岗位应急要求的基本内容不得删减,但要素可适当合并;编制方法可参照本指南附件3、附件4提供的范例; (3)岗位涉及的设备设施和作业活动较复杂时,如机械维修、餐饮后厨、电焊气焊等作业岗位均需操作不同的设备、从事不同的作业活动,岗位安全操作规程的“岗位作业职责要素”内应具体规定该岗位从事不同的作业活动、使用不同设备设施时负责的相关作业职责。同时,应根据实际情况灵活确定其他要素的结构和内容,如:可在“主要危险危害因素”内分别描述操作不同设备、从事不同作业活动的风险;可按不同设备、不同的作业活动分别描述“岗位劳动防护用品佩戴要求”、“岗位作业安全要求”(含作业前、作业过程和作业后)、“岗位应急要求”;岗位需建立填写保存相关记录的,可将记录格式作为附件;编写方法可参照本指南附件6、附件7、附件8提供的范例; (4)岗位涉及巡查、检测等作业活动,需规定频次和指标,需填写并保存记录,如空压机作业岗位,需定时对设备压力等进行检查,变配电运行和检修岗位需按管理制度要求填写并保存运行记录时,通常在基本结构六要素基上增加相应要素,提出规范要求,或将相应的要求指标、记录表格作为岗位安全操作规程的附件;编写方法可参照本指南附件9、附件10提供的范例; (5)岗位需掌握的安全知识,岗位涉及的管理要求和技术规范,岗位涉及的安全装置清单等,通常不在岗位安全操作规程内具体描述;大中型企业推行岗位安全规范的,也可将这些内容纳入安全操作规程,如危化品库房保管员岗位需掌握的危化品储存间距要求、危化品特性及其禁忌知识等,可在基本结构六要素基础上,将这些知识、管理和技术要求形成摘要作为岗位安全操作规程的增加要素或附件;编写方法可参照本指南附件11提供的范例; (6)岗位涉及的某些作业环节涉及多个作业流程步骤,且风险较大时,可按作业流程分解法编制岗位安全操作规程;如:锅炉作业岗位,先将作业活动分解为不同的作业流程步骤,除“适用范围”、“岗位作业职责”要素外,针对作业活动的各个流程步骤,编制各步骤

安全操作规程管理规定

安全操作规程管理规定文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]

安全操作规程管理制度 安全操作规程是职工从事岗位作业,进行生产活动的技术规范,是保障生产安全的基础。为规范安全操作规程的编制、审核、贯彻与执行、落实、监督中的实施,特制定本制度。 第一条从事生产、生活的岗位工种必须制定安全操作规程。由各分管领导组织本系统的单位部门负责人对本单位部门所有岗位工种需编制安全操作规程,并审核通过,认真贯彻执行。 第二条安全操作规程必须符合国家有关法律、法规的规定,必须符合本企业现场的条件,体现专业工种特点,具有指导性、安全性,使于标准规范化操作。 第三条安全操作规程应涵属如下内容:1、各工种岗位对操作人员的基本要求;2、各工种岗位对操作人员操作程序和标准;3、岗位环节全过程控制,要涵盖从进入操作现场操作准备到操作结束和离开操作现场全过程的各个操作环节;4、违反操作程序和标准可能导致的 危险和危害。 第四条安全操作规程必须经单位技术负责人组织审核,安全生产第一责任者批准发布实施。 第五条职工上岗前必须经过岗位工种安全操作规程培训,掌握工种安全操作规程,经考试合格后持证方可上岗,特殊工种必须按规定经具有资质的安全培训机构进行培训,经考试合格持证上岗。

第六条工区(车间)必须经常对职工进行安全操作规程培训,培训形式多样化、每半年组织一次考试。 第七条职能部门负责对安全操作规程的贯彻实施情况进行监督检查。违反安全操作规程的,都均断定为“三违”,对违反安全操作规程的人员要按有关规定予以处罚。 第八条安全技术操作规程,是提高职工素质,保证安全生产的一项长期基础工作,各单位部门要根据各自职责和分工、认真组织开展好此项工作。否则,因操作规程编制审核贯彻执行不力的,给予责任人 100—500元的处罚,因无操作规程施工造成事故的,要追究相关 人员责任。 第九条根据公司实际情况,可分为十个区域为安全操作规程必须健全建立的岗位:

安全代码编写规范

安全代码编写规范 一、编写目的 为加强武汉楚烟信息技术有限公司在软件开发中的安全规范要求,减少应用上线后带来潜在的安全风险,特拟定安全代码编写规范。二、使用范围 本规范适用于武汉楚烟信息技术有限公司承建的各类开发类的软件类项目。 三、应用安全设计 在总体架构设计阶段,需明确与客户方沟通确认甲方对于软件安全的相关要求,对于有明确安全要求的(例如授权管理要求、用户认证要求、日志审计要求等),须在设计文档中予以详细说明。对于互联网应用,务必明确网络安全、应用安全、数据安全相关的安全防护手段。 在技术架构上,应采用表现层、服务层、持久层分类的架构,实现对底层业务逻辑进行有效隔离,避免将底层实现细节暴露给最终用户。 在部署架构上,应采用应用服务器、数据库服务器的分离部署模式,在应用服务器被攻击时,不会导致核心应用数据的丢失。如软件产品具备有条件时,应优先采用加密数据传输方式(例如https协议)。 在外部接口设计方面,应采用最小接口暴露的原则,避免开发不必要的服务方法带来相关安全隐患,同时对于第三方接口,应共同商定第三方接入的身份认证方式和手段。

四、应用安全编码 4.1. 输入验证 对于用户输入项进行数据验证,除常见的数据格式、数据长度外,还需要对特殊的危险字符进行处理。特殊字符包括<> " ' % ( ) & + \ \' \"等 对于核心业务功能,除在客户端或浏览器进行数据验证外,还必须在服务器端对数据进行合法性检验,规避用户跳过客户端校验,直接将不合规的数据保存到应用中。 对于浏览器重定向地址的数据,需要进行验证核实,确认重定向地址是否在可信,并且需要对换行符(\r或\n)进行移除或者替换。 4.2. 数据输出 对需要输出到用户浏览器的任何由用户创造的内容,应在输出到浏览器之前或持久化存储之前进行转义(至少对<>转义为< >)以防止跨站攻击脚本(XSS)。对于无法规避的HTML片段提交,需对