服务器安全讨论_第1页
服务器安全讨论_第2页
服务器安全讨论_第3页
服务器安全讨论_第4页
服务器安全讨论_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、服务器安全讨论Contents诊断方法及其解决办法SQL注入式攻击及预防DDOS攻击及预防服务器攻击手段服务器的配置服务器配置服务器配置基本配置:基本配置:安装服务器补丁安装服务器补丁安装杀毒软件安装杀毒软件设置端口保护和防火墙、删除默认共享设置端口保护和防火墙、删除默认共享权限设置权限设置NTFS权限设置,请记住分区的时候把所有的硬盘权限设置,请记住分区的时候把所有的硬盘都分为都分为NTFS分区,然后我们可以确定每个分区对分区,然后我们可以确定每个分区对每个用户开放的权限每个用户开放的权限 每个每个IIS站点或者虚拟目录,都可以设置一个匿名站点或者虚拟目录,都可以设置一个匿名访问用户访问用户

2、 禁用不必要的服务禁用不必要的服务 开始开始-运行运行-services.msc 修改注册表,让系统更强壮修改注册表,让系统更强壮 服务器攻击手段服务器攻击手段vDOS攻击与攻击与DDOS攻击攻击vDDOS是英文是英文Distributed Denial of Service的缩写,意即的缩写,意即“分布式拒绝服务分布式拒绝服务”, vDOS攻击是攻击是Denial of Service的简称,即的简称,即拒绝服务,造成拒绝服务,造成DoS的攻击行为,其目的的攻击行为,其目的是使计算机或网络无法提供正常的服务。是使计算机或网络无法提供正常的服务。最常见的最常见的DoS攻击有计算机网络带宽攻击攻

3、击有计算机网络带宽攻击和连通性攻击。和连通性攻击。 v区别:区别:DOS侧重于系统漏洞的攻击,侧重于系统漏洞的攻击,DDOS最常见的是洪水攻击,就是阻塞系最常见的是洪水攻击,就是阻塞系统与外面的正常通信统与外面的正常通信DDOS攻击攻击vSYN/ACK Flood攻击:这种攻击方法是经典最有攻击:这种攻击方法是经典最有效的效的DDOS方法,可通杀各种系统的网络服务,方法,可通杀各种系统的网络服务,主要是通过向受害主机发送大量伪造源主要是通过向受害主机发送大量伪造源IP和源端和源端口的口的SYN或或ACK包包 。v判断方法:服务器无法访问,会导致判断方法:服务器无法访问,会导致Ping失败、失败

4、、TCP/IP栈失效,不响应键盘和鼠标。栈失效,不响应键盘和鼠标。vTCP全连接攻击:这种攻击是为了绕过常规防火全连接攻击:这种攻击是为了绕过常规防火墙的检查而设计的,墙的检查而设计的, 导致服务器资源被耗尽。导致服务器资源被耗尽。vScript脚本攻击脚本攻击 :服务器建立正常的:服务器建立正常的TCP连接,连接,并不断的向脚本程序提交查询、列表等大量耗费并不断的向脚本程序提交查询、列表等大量耗费数据库资源的调用。轻松找一些数据库资源的调用。轻松找一些Proxy代理就可代理就可实施攻击。实施攻击。 SQL注入式攻击注入式攻击v 注入式攻击是指利用设计上的漏洞注入式攻击是指利用设计上的漏洞,

5、,在目标服务器上运行在目标服务器上运行sqlsql命令以及进行其他方式的攻击命令以及进行其他方式的攻击, ,动态生成动态生成sqlsql命令是没命令是没有对用户输入的数据进行验证有对用户输入的数据进行验证, ,这是注入式攻击原理这是注入式攻击原理. . v 最常见的也就是在查询字符串中直接输入最常见的也就是在查询字符串中直接输入SQL攻击字符串攻击字符串 v 例如:例如:page.asp?id=Num and exists (select * from admin) v 其次就是在其次就是在FORM表单中提交的表单中提交的SQL注入攻击字段。注入攻击字段。 v 通过通过COOKIE绕过一些放注

6、入的脚本程序绕过一些放注入的脚本程序 例例如如:javascript:alert(document.cookie=id=+escape(这就是这就是asp? id=xx后面后面xx代表的数值代表的数值) and (这里是注入这里是注入攻击代码攻击代码); v 还有就是上面几种的攻击通过还有就是上面几种的攻击通过16进制编码后,绕过进制编码后,绕过SQL注注入检测的脚本程序入检测的脚本程序 SQL注入式预防注入式预防v 对于构造对于构造SQL查询的技术,可以使用下面的技术:查询的技术,可以使用下面的技术:v 替换单引号,即把所有单独出现的单引号改成两个单引号,替换单引号,即把所有单独出现的单引号

7、改成两个单引号,防止攻击者修改防止攻击者修改SQL命令的含义。命令的含义。 v 删除用户输入内容中的所有连字符,防止攻击者构造出类删除用户输入内容中的所有连字符,防止攻击者构造出类如如“SELECT * from Users WHERE login = mas AND password =”之类的查询,因为这类查询的后半部之类的查询,因为这类查询的后半部分已经被注释掉,不再有效,攻击者只要知道一个合法的分已经被注释掉,不再有效,攻击者只要知道一个合法的用户登录名称,根本不需要知道用户的密码就可以顺利获用户登录名称,根本不需要知道用户的密码就可以顺利获得访问权限。得访问权限。v 对于用来执行查询

8、的数据库帐户,限制其权限。用不同的对于用来执行查询的数据库帐户,限制其权限。用不同的用户帐户执行查询、插入、更新、删除操作。由于隔离了用户帐户执行查询、插入、更新、删除操作。由于隔离了不同帐户可执行的操作,因而也就防止了原本用于执行不同帐户可执行的操作,因而也就防止了原本用于执行SELECT命令的地方却被用于执行命令的地方却被用于执行INSERT、UPDATE或或DELETE命令命令 。预防预防SQL注入式攻击注入式攻击v 限制表单或查询字符串输入的长度限制表单或查询字符串输入的长度v 用存储过程来执行所有的查询用存储过程来执行所有的查询 。SQL参数的传递方式将防止攻击者参数的传递方式将防止

9、攻击者利用单引号和连字符实施攻击。此外,它还使得数据库权限可以限制利用单引号和连字符实施攻击。此外,它还使得数据库权限可以限制到只允许特定的存储过程执行,所有的用户输入必须遵从被调用的存到只允许特定的存储过程执行,所有的用户输入必须遵从被调用的存储过程的安全上下文,这样就很难再发生注入式攻击了储过程的安全上下文,这样就很难再发生注入式攻击了v 普通用户与系统管理员用户的权限要有严格的区分普通用户与系统管理员用户的权限要有严格的区分v 如果一个普通用户在使用查询语句中嵌入另一个如果一个普通用户在使用查询语句中嵌入另一个Drop Table语句,那语句,那么是否允许执行呢?由于么是否允许执行呢?由

10、于Drop语句关系到数据库的基本对象,故要语句关系到数据库的基本对象,故要操作这个语句用户必须有相关的权限。在权限设计中,对于终端用户,操作这个语句用户必须有相关的权限。在权限设计中,对于终端用户,即应用软件的使用者,没有必要给他们数据库对象的建立、删除等权即应用软件的使用者,没有必要给他们数据库对象的建立、删除等权限。那么即使在他们使用限。那么即使在他们使用SQL语句中带有嵌入式的恶意代码,由于其语句中带有嵌入式的恶意代码,由于其用户权限的限制,这些代码也将无法被执行。故应用程序在设计的时用户权限的限制,这些代码也将无法被执行。故应用程序在设计的时候,最好把系统管理员的用户与普通用户区分开来

11、。如此可以最大限候,最好把系统管理员的用户与普通用户区分开来。如此可以最大限度的减少注入式攻击对数据库带来的危害度的减少注入式攻击对数据库带来的危害 SQL注入式预防注入式预防v 强迫使用参数化语句强迫使用参数化语句v 在编写在编写SQL语句的时候,用户输入的变量不是直接嵌入到语句的时候,用户输入的变量不是直接嵌入到SQL语句。而是通过参数来传递这个变量的话,那么就可语句。而是通过参数来传递这个变量的话,那么就可以有效的防治以有效的防治SQL注入式攻击。也就是说,用户的输入绝注入式攻击。也就是说,用户的输入绝对不能够直接被嵌入到对不能够直接被嵌入到SQL语句中。与此相反,用户的输语句中。与此相

12、反,用户的输入的内容必须进行过滤,或者使用参数化的语句来传递用入的内容必须进行过滤,或者使用参数化的语句来传递用户输入的变量。参数化的语句使用参数而不是将用户输入户输入的变量。参数化的语句使用参数而不是将用户输入变量嵌入到变量嵌入到SQL语句中。采用这种措施,可以杜绝大部分语句中。采用这种措施,可以杜绝大部分的的SQL注入式攻击。使用注入式攻击。使用SQL的参数方式的参数方式.参数参数(Parameters)集合提供类型检测和长度检测集合提供类型检测和长度检测.如果你使用如果你使用参数集合参数集合,输入的内容将被当作文本值来对待输入的内容将被当作文本值来对待,数据库不会数据库不会执行包含在其中

13、的代码执行包含在其中的代码.使用参数集方式的一个额外的好使用参数集方式的一个额外的好处是处是,你可以严格限定输入的类型和长度你可以严格限定输入的类型和长度.如果输入型超出如果输入型超出范围将会触发异常范围将会触发异常.Webconfig文件配置文件配置v 验证验证ASP.NET的错误信息没有被返回到客户端的错误信息没有被返回到客户端 v 你可以使用你可以使用元素来配置客户端元素来配置客户端,一般的错一般的错误信息应该被程序错误检测机制返回到客户端误信息应该被程序错误检测机制返回到客户端.v 请确认已经更改请确认已经更改web.config中的中的mode属性为属性为remoteOnly,下面是

14、示例下面是示例.v v 安在装了一个安在装了一个ASP.NET 的程序之后,你可以按照如下设的程序之后,你可以按照如下设定指定客户端的错误信息页面。定指定客户端的错误信息页面。v v On指定启用自定义错误。如果未指定指定启用自定义错误。如果未指定 defaultRedirect,用户将看到一般性错误。用户将看到一般性错误。Off指定禁用自定义错误。这允指定禁用自定义错误。这允许显示标准的详细错误。许显示标准的详细错误。RemoteOnly指定仅向远程客户指定仅向远程客户端显示自定义错误并且向本地主机显示端显示自定义错误并且向本地主机显示 ASP.NET 错误。错误。win2003整体配置整理

15、整体配置整理v 1) 隐藏重要文件隐藏重要文件/目录可以修改注册表实现完全隐藏目录可以修改注册表实现完全隐藏 v HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows Current-VersionExplorerAdvancedFolderHi-ddenSHOWALL”,鼠标右击鼠标右击 “CheckedValue”,选择修改,把数值由,选择修改,把数值由1改为改为0 v 2) 防止防止SYN洪水攻击洪水攻击 v HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters 新建新建DWORD

16、值,名为值,名为SynAttackProtect,值为,值为2 新建新建EnablePMTUDiscovery REG_DWORD 0 新建新建NoNameReleaseOnDemand REG_DWORD 1 新建新建EnableDeadGWDetect REG_DWORD 0 新建新建KeepAliveTime REG_DWORD 300,000 新建新建PerformRouterDiscovery REG_DWORD 0 新建新建EnableICMPRedirects REG_DWORD 0 win2003整体配置整理整体配置整理v 3) 禁止响应禁止响应ICMP路由通告报文路由通告报文

17、 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfacesinterface 新建新建DWORD值,名为值,名为PerformRouterDiscovery 值为值为0 v 4) 防止防止ICMP重定向报文的攻击重定向报文的攻击 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters 将将EnableICMPRedirects 值设为值设为0 v 5) 不支持不支持IGMP协议协议 HKEY_LOCAL_MACHINESYSTEM

18、CurrentControlSetServicesTcpipParameters 新建新建DWORD值,名为值,名为IGMPLevel 值为值为0Win2003整体配置整理整体配置整理Your TextYour Textv 6) 禁止禁止IPC空连接:空连接:cracker可以利用可以利用net use命令建立空连接,进而入侵,还有命令建立空连接,进而入侵,还有net view,nbtstat这些都是基于空连接的,禁止空连接就好了。这些都是基于空连接的,禁止空连接就好了。Local_MachineSystemCurrentControlSetControlLSA-RestrictAnonymo

19、us 把这个值改成把这个值改成”1”即可。即可。v 7) 更改更改TTL值值cracker可以根据可以根据ping回的回的TTL值来大致判断你的操作系统,如:值来大致判断你的操作系统,如: TTL=107(WINNT); TTL=108(win2000); TTL=127或或128(win9x); TTL=240或或241(linux); TTL=252(solaris); TTL=240(Irix); v 8) 禁止建立空连接禁止建立空连接 默认情况下,任何用户通过通过空连接连上服务器,进而枚举出帐号,默认情况下,任何用户通过通过空连接连上服务器,进而枚举出帐号,猜测密码。我们可以通过修改注

20、册表来禁止建立空连接:猜测密码。我们可以通过修改注册表来禁止建立空连接: Local_MachineSystemCurrentControlSetControlLSA-RestrictAnonymous 的值改成的值改成”1”即可。即可。 杜绝基于杜绝基于Guest账户的入侵账户的入侵 v Guest账户即所谓的来宾账户,它可以访问计算机,但受到限制。不账户即所谓的来宾账户,它可以访问计算机,但受到限制。不幸的是,幸的是,Guest也为黑客入侵打开了方便之门!网上有很多文章中都也为黑客入侵打开了方便之门!网上有很多文章中都介绍过如何利用介绍过如何利用Guest用户得到管理员权限的方法,所以要杜

21、绝基于用户得到管理员权限的方法,所以要杜绝基于Guest账户的系统入侵。账户的系统入侵。 v 禁用或彻底删除禁用或彻底删除Guest账户是最好的办法,但在某些必须使用到账户是最好的办法,但在某些必须使用到Guest账户的情况下,就需要通过其它途径来做好防御工作了。账户的情况下,就需要通过其它途径来做好防御工作了。 v 首先首先 要给要给Guest设一个密码,然后详细设置设一个密码,然后详细设置Guest账户对物理路径的账户对物理路径的访问权限。举例来说,如果你要防止访问权限。举例来说,如果你要防止Guest用户可以访问用户可以访问tool文件夹,文件夹,可以可以 右击该文件夹,在弹出菜单中选择

22、右击该文件夹,在弹出菜单中选择“安全安全”标签,从中可看到标签,从中可看到可以访问此文件夹的所有用户。删除管理员之外的所有用户即可。或可以访问此文件夹的所有用户。删除管理员之外的所有用户即可。或者在权限中为相应的用户设定权者在权限中为相应的用户设定权 限,比方说只能限,比方说只能“列出文件夹目录列出文件夹目录”和和“读取读取”等,这样就安全多了。等,这样就安全多了。v 只给只给Guest读取的权限,只有读取的权限,只有administrator读取和修改的权限。读取和修改的权限。Win2003整体配置整理整体配置整理Add Your Titlev 9) 建议使用建议使用W3C扩充日志文件格式,

23、每天记录客户扩充日志文件格式,每天记录客户IP地地址,用户名,服务器端口,方法,址,用户名,服务器端口,方法,URI字根,字根,HTTP状态,状态,用户代理,而且每天均要审查日志。(最好用户代理,而且每天均要审查日志。(最好 不要使用缺不要使用缺省的目录,建议更换一个记日志的路径,同时设置日志的省的目录,建议更换一个记日志的路径,同时设置日志的访问权限,只允许管理员和访问权限,只允许管理员和system为为Full Control)。)。 10) 程序安全程序安全:A. 涉及用户名与口令的程序最好封装在服务器端,尽量涉及用户名与口令的程序最好封装在服务器端,尽量少的在少的在ASP文件里出现,涉及到与数据库连接地用户名与文件里出现,涉及到与数据库连接地用户名与口令应给予最小的权限口令应给予最小的权限;B. 需要经过验证的需要经过验证的ASP页面,可跟踪上一个页面的文件页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面名,只有从上一页面转进来的会话才能读取这个页面;C. 防止防止ASP主页主页.inc文件泄露问题文件泄露问题;D. 防止防止UE等编辑器生成等编辑器生成some.asp.bak文件泄露问题。文件泄露问题。 v 检测方法:检测方法:v 如果系统的安全性日志在某段时间段内不存在(这段时间服务器处于如果系统的安全性日志在某段时间段内不存在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论