UNIX安全问题
发布日期: 1999-9-27
概要:
作为设计可靠软件的四月的安全专栏的继续,Peter将必须做的可靠编程技术的快速指南和一些方法上的建议放在一起. 他也包括了很多有价值的联机资源. (3,600词) 在四月份, 我写了一个关于可靠软件设计的专栏,在那里面我批评了SUN和其他的操作系统和软件供应商.事实是,大多数供应商没有一个为适当地创建和再检查代码服务的标准的安全系统. 他们不对那些将在安全上有影响的程序进行代码再检查. 他们也不强有力地坚持那些将避免我们今天看到的许多安全问题的准则. 结果是造成业界今天的现状——太多的安全漏洞, 忠告和补丁. 由于可靠程序设计的重要性,以及牵涉到读者的巨大利益,我们重新回到这个主题. 这个月,我们将在安全专家Spafford 和Matt Bishop提供的资料的基础上进一步扩展四月的专栏.这个专栏尝试搜集当前关于完整的UNIX程序设计FAQ的真知灼见.
我们希望你将发现它有用,它将使你写安全的代码的任务更加轻松. 所有的FAQs, 注解, 建议和校正都会受到欢迎.我们将应要求定期出版更新.
0. 概述
1. 这些方法应该何时使用?
2. 安全性设计原则
3. 可靠的程序设计方法
4. 不可靠的程序设计方法
5. 测试程序安全性
0. 概述
太多的程序有安全上的漏洞. 在目前的业界, 发布代码只经过很少的测试,很少或根本没有可靠编程技术. 这个FAQ 力图成为程序员的工具, 使编写可靠程序的过程更轻松. 应用好程序设计技术是重要的, 即使你的代码只在有限的情形或有限的时间内使用. 许多程序的使用都超出了他们的原来的计划范围.Ivan Krsul 在Purdue大学做他的博士论文时发现, 历史上的大部分的安全性缺陷都是程序运行于和他们的设计者所知道或所想象的不同环境的结果.例如,程序员可能认为某个系统调用永远不会失败,或程序永远不会调用非文本的参数.因此,一个程序员所能做的确保代码可靠的最好的事情之一就是质疑假设,仔细地想它们是否有效并且设想它们失效的条件。 这个FAQ试图编纂将被用在能影响系统安全性的任何程序中的思想, 技术,步骤, 和系统调用.
1. 这些方法应该何时使用?
如果这些可靠的程序设计方法在所有的程序上使用了, 那将是最好不过的. 毕竟它们大多数是简单良好的程序设计技术, 不管程序是否相应的安全. 然而, 在每个程序中实现所有这些技术将比不用他们付出更多的时间和努力. 因此, 如果这些方法无法每