cisp-14-安全编程new

cisp-14-安全编程new

ID:34512244

大小:664.12 KB

页数:79页

时间:2019-03-07

cisp-14-安全编程new_第1页
cisp-14-安全编程new_第2页
cisp-14-安全编程new_第3页
cisp-14-安全编程new_第4页
cisp-14-安全编程new_第5页
资源描述:

《cisp-14-安全编程new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、CISP-14-安全编程中国信息安全测评中心2008年11月课程内容•安全编程概述•Windows安全编程•Unix安全编程•脚本安全编程安全编程概述•安全编程基本概念•安全编程基本原则•测试程序安全方法•不安全编程方法•如何编写安全的程序安全编程基本概念什么是一个安全的程序?•简单的说,无论使用何种破坏手段,都可以正确执行自己的既定任务,这样的程序就是安全的程序。•安全程序不应当损害它运行系统的本地安全策略。•程序员职责就是保证程序可以正常执行任务。锁匠与锁,屋主与关门Solaris‘login’的安全问题

2、什么是安全漏洞?•程序中存在的危害本地安全策略的问题或弱点•大多数是指那些会导致程序强制执行一些不同于作者本来意图的行为常见安全漏洞类型•缓冲区溢出•竞争条件•输入检查错误•访问控制错误•设计错误通用安全编程原则•程序只实现你指定的功能•永远不要信任用户输入,对用户输入数据做有效性检查•必须考虑意外情况并进行处理•不要试图在发现错误之后继续执行•尽可能使用安全函数进行编程•小心、认真、细致地编程测试程序安全方法•尝试使程序里的所有缓存溢出•尝试使用任意的命令行选项•尝试建立可能的racecondition•设计者做

3、代码重阅和测试•读所有的代码,象cracker一样思维来找漏洞不安全编程方法•防止使用在处理字符串时不检查buffer边界的函数,如gets(),strcpy(),strcat(),sprintf(),fscanf(),scanf(),vsprintf(),realpath(),getopt(),getpass(),streadd(),strecpy(),和strtrns()•避免使用execlp()和execvp()永远不要用system()和popen()系统调用•不要将文件创建文件在全部人可写的目录里通常,不要

4、设置setuid或者setgid的shellscripts•不要假想端口号码,应该用getservbyname()函数不安全编程方法•假设来自小数字的端口号的连接是合法和可信任的•相信任何IP地址,如果要验证,用密码算法•用明文方式验证信息•尝试从严重的错误中恢复,要输出详细信息然后中断如何编写安全的程序<一>•检查所有的命令行参数•检查所有的系统调用参数和返回代码•检查环境参数,不要依靠Unix环境变量•确定所有的缓存都被检查过•在变量的内容被拷贝到本地缓存之前对变量进行边界检查•如果创建一个新文件,使用O_EXC

5、L和O_CREATE标志来确定文件没有已经存在•使用lstat()来确定文件不是一个符号连接使用下面的这些库调用:fgets(),strncpy(),strncat(),snprintf()而不是其它类似的函数,可以说,只使用检查了长度的函数.如何编写安全的程序<二>•同样的,小心的使用execve(),如果你必须衍生一个进程•在程序开始时显式的更改目录(chdir())到适当的地方•限制当程序失败时产生的core文件,core文件里有可能含有密码和其它内存状态信息.•如果使用临时文件,考虑使用系统调用tmpfile

6、()或mktemp()来创建它们(虽然很多mktemp()库调用可能有racecondition的情况)•内部有做完整性检查的代码如何编写安全的程序<三>•做大量的日志记录,包括日期,时间,uid和effectiveuid,gid和effectivegid,终端信息,pid,命令行参数,错误和主机名•使程序的核心尽可能小和简单•永远用全路径名做文件参数•检查用户的输入,确保只有“好”的字符•使用好的工具如lint理解raceconditions,包括死锁状态和顺序状态•在网络读请求的程序里设置timeouts和负荷级

7、别的限制.•在网络写请求里放置timeouts如何编写安全的程序<四>•使用会话加密来避免会话抢劫和隐藏验证信息•尽可能使用chroot()设置程序环境•如果可能,静态连接安全程序•当需要主机名时使用DNS逆向解释•在网络服务程序里分散和限制过多的负载在网络的读和写里放置适当的timeout限制如果合适,防止服务程序运行超过一个以上的拷贝课程内容•安全编程概述•Windows安全编程•Unix安全编程•脚本安全编程Windows内部机制•Windows是一个“基于事件的,消息驱动的”操作系统。在Windows下执行一

8、个程序,只要用户进行了影响窗口的动作(如改变窗口大小或移动、单击鼠标等)该动作就会触发一个相应的“事件”。•系统每次检测到一个事件时,就会给程序发送一个“消息”,从而使程序可以处理该事件。•每次检测到一个用户事件,程序就对该事件做出响应,处理完以后,再等待下一个事件的发生。八个基本概念•与Windows系统密切相关的八个基本概念分别是:窗口、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。