网络技术是从1990年代中期发展起来的新技术,它把互联网上分散的资源融为有机整体,实现资源的全面共享和有机协作,使人们能够透明地使用资源的整体能力并按需获取信息。资源包括高性能计算机、存储资源、数据资源、信息资源、知识资源、专家资源、大型数据库、网络、传感器等。 当前的互联网只限于信息共享,网络则被认为是互联网发展的第三阶段。
一、前期准备,建立安全模型;
1、熟悉软件功能、功能实现,配置等;
如:IIS的虚拟目录、
脚本映射;
2、根据功能,分析安全需求,建立安全模型;
IIS外挂,文件类型识别,目录正确识别;目录限制;
外挂的特点;权限不是在文件对象上,需要自己识别文件,所以需要识别出同一个文件的所有文件名;
3、根据安全需求,分析
编程应注意的地方,重点检查。
IIS要对"../"进行检测,连接文件的处理,识别出正确的目录、文件名;
编程接口完全按接口实现;
二、原代码分析;
1、通读原代码;
2、安全需求里面重点需要检测的地方;
3、搜索容易有问题的函数调用,如strcpy、strcat、*printf、free、strncpy等;
4、常见一些编程问题;一些变量类型,如长度变量用int,注意一些函数非直接返回赋值问题等,一些边界条件,记数从0开始还是从1开始。
5、分析缓冲区使用的代码;
6、输入输出合法检测;
7、编程接口调用;了解
操作系统、基本文件、进程调用等的特性;
8、数据结构;
9、安全领域的最小原则;
三、二进制代码分析;
1、测试;
(1)、熟悉输入输出;
(2)、根据需要编写测试程序;
(3)、输入输出各种特殊情况测试,特殊字符、长串;
(4)、安全需求需要检测的一些条件测试;
2、
反汇编分析;
(1)、阅读理解反汇编代码;
(2)、安全需求检测的代码分析;
(3)、调用接口代码分析;
(4)、sub esp,xxx 代码分析缓冲;
(5)、strcpy、strcat、*printf、free、strncpy等调用分析;
(6)、输入输出检测;
3、跟踪调试;
(1)、异常的拦截分析;
(2)、一些字符串的流向,读写断点; 四、总结提高;
1、分析总结各种漏洞、漏洞原因、编程问题,补丁修补方法,编程怎么避免。
2、对漏洞归纳分类,全面考虑;
一些漏洞研究成果:
1. IIS ISM.DLL文件名截断漏洞泄漏文件内容漏洞;
http://www.microsoft.com/technet/security/bulletin/ms00-044.asp
2. Microsoft
Windows 9x共享密码校验漏洞;
http://www.microsoft.com/technet/security/bulletin/ms00-072.asp
3. Microsoft IIS Unicode解码目录遍历漏洞;
http://www.microsoft.com/technet/security/bulletin/ms00-078.asp
4. Microsoft IIS CGI文件名检查漏洞;
http://www.microsoft.com/technet/security/bulletin/ms00-086.asp
5. Microsoft IIS远东版泄漏文件内容漏洞;
http://www.nsfocus.com/english/homepage/sa_08.htm ;
6. Microsoft IIS CGI文件名错误解码漏洞;
http://www.microsoft.com/technet/security/bulletin/ms01-026.asp ;
7. Microsoft FrontPage 2000服务器扩展缓冲区溢出漏洞;
http://www.microsoft.com/technet/security/bulletin/ms01-035.asp ;
8. Microsoft IIS ssinc.dll缓冲区溢出漏洞;
http://www.microsoft.com/technet/security/bulletin/ms01-044.asp ;
9. WebDav 拒绝服务漏洞;
10. WebDav 泄露文件源代码漏洞;
11. WebDav 缓冲区溢出漏洞;
12. asp.dll 缓冲区溢出漏洞;
13. shtml.dll 泄露文件源代码漏洞;
14. IIS CGI 拒绝服务漏洞;
15. IIS CGI 泄露源代码漏洞;
16. winlogon.exe 缓冲区溢出漏洞;
17.
WINDOWS API 缓冲溢出漏洞;
18.
Windows mup.sys 缓冲溢出漏洞;
19. apache for win32 可搜索文件漏洞;
20. apache for win32 执行任意命令漏洞;
21. php4.0 缓冲溢出漏洞;
网络的神奇作用吸引着越来越多的用户加入其中,正因如此,网络的承受能力也面临着越来越严峻的考验―从硬件上、软件上、所用标准上......,各项技术都需要适时应势,对应发展,这正是网络迅速走向进步的催化剂。