A. 如何检测Web系统里的安全漏洞
Internet的开放性使得Web系统面临入侵攻击的威胁,而建立一个安全的Web系统一直是人们的目标。一个实用的方法是,建立比较容易实现的相对安全的系统,同时按照一定的安全策略建立相应的安全辅助系统,漏洞扫描器就是这样一类安全辅助系统。 漏洞扫描就是对计算机系统或者其他网络设备进行安全相关的检测,以找出安全隐患和可被黑客利用的漏洞。作为一种保证Web信息系统和网络安全必不可少的手段,我们有必要仔细研究利用。值得注意的是,漏洞扫描软件是把双刃剑,黑客利用它入侵系统,而系统管理员掌握它以后又可以有效的防范黑客入侵。 四种漏洞扫描技术 漏洞扫描通常采用两种策略,第一种是被动式策略,第二种是主动式策略。所谓被动式策略就是基于主机之上,对系统中不合适的设置、脆弱的口令以及其他与安全规则抵触的对象进行检查;而主动式策略是基于网络的,它通过执行一些脚本文件模拟对系统进行攻击的行为并记录系统的反应,从而发现其中的漏洞。利用被动式策略的扫描称为系统安全扫描,利用主动式的策略扫描称为网络安全扫描。 漏洞扫描有以下四种检测技术: 1.基于应用的检测技术。它采用被动的、非破坏性的办法检查应用软件包的设置,发现安全漏洞。 2.基于主机的检测技术。它采用被动的、非破坏性的办法对系统进行检测。通常,它涉及到系统的内核、文件的属性、操作系统的补丁等。这种技术还包括口令解密、把一些简单的口令剔除。因此,这种技术可以非常准确地定位系统的问题,发现系统的漏洞。它的缺点是与平台相关,升级复杂。 3.基于目标的漏洞检测技术。它采用被动的、非破坏性的办法检查系统属性和文件属性,如数据库、注册号等。通过消息文摘算法,对文件的加密数进行检验。这种技术的实现是运行在一个闭环上,不断地处理文件、系统目标、系统目标属性,然后产生检验数,把这些检验数同原来的检验数相比较。一旦发现改变就通知管理员。 4. 基于网络的检测技术。它采用积极的、非破坏性的办法来检验系统是否有可能被攻击崩溃。它利用了一系列的脚本模拟对系统进行攻击的行为,然后对结果进行分析。它还针对已知的网络漏洞进行检验。网络检测技术常被用来进行穿透实验和安全审记。这种技术可以发现一系列平台的漏洞,也容易安装。但是,它可能会影响网络的性能。 网络漏洞扫描 在上述四种方式当中,网络漏洞扫描最为适合我们的Web信息系统的风险评估工作,其扫描原理和工作原理为:通过远程检测目标主机TCP/IP不同端口的服务,记录目标的回答。通过这种方法,可以搜集到很多目标主机的各种信息(例如:是否能用匿名登录,是否有可写的FTP目录,是否能用Telnet,httpd是否是用root在运行)。 在获得目标主机TCP/IP端口和其对应的网络访问服务的相关信息后,与网络漏洞扫描系统提供的漏洞库进行匹配,如果满足匹配条件,则视为漏洞存在。此外,通过模拟黑客的进攻手法,对目标主机系统进行攻击性的安全漏洞扫描,如测试弱势口令等,也是扫描模块的实现方法之一。如果模拟攻击成功,则视为漏洞存在。 在匹配原理上,网络漏洞扫描器采用的是基于规则的匹配技术,即根据安全专家对网络系统安全漏洞、黑客攻击案例的分析和系统管理员关于网络系统安全配置的实际经验,形成一套标准的系统漏洞库,然后再在此基础之上构成相应的匹配规则,由程序自动进行系统漏洞扫描的分析工作。 所谓基于规则是基于一套由专家经验事先定义的规则的匹配系统。例如,在对TCP80端口的扫描中,如果发现/cgi-bin/phf/cgi-bin/Count.cgi,根据专家经验以及CGI程序的共享性和标准化,可以推知该WWW服务存在两个CGI漏洞。同时应当说明的是,基于规则的匹配系统有其局限性,因为作为这类系统的基础的推理规则一般都是根据已知的安全漏洞进行安排和策划的,而对网络系统的很多危险的威胁是来自未知的安全漏洞,这一点和PC杀毒很相似。 这种漏洞扫描器是基于浏览器/服务器(B/S)结构。它的工作原理是:当用户通过控制平台发出了扫描命令之后,控制平台即向扫描模块发出相应的扫描请求,扫描模块在接到请求之后立即启动相应的子功能模块,对被扫描主机进行扫描。通过分析被扫描主机返回的信息进行判断,扫描模块将扫描结果返回给控制平台,再由控制平台最终呈现给用户。 另一种结构的扫描器是采用插件程序结构。可以针对某一具体漏洞,编写对应的外部测试脚本。通过调用服务检测插件,检测目标主机TCP/IP不同端口的服务,并将结果保存在信息库中,然后调用相应的插件程序,向远程主机发送构造好的数据,检测结果同样保存于信息库,以给其他的脚本运行提供所需的信息,这样可提高检测效率。如,在针对某FTP服务的攻击中,可以首先查看服务检测插件的返回结果,只有在确认目标主机服务器开启FTP服务时,对应的针对某FTP服务的攻击脚本才能被执行。采用这种插件结构的扫描器,可以让任何人构造自己的攻击测试脚本,而不用去了解太多扫描器的原理。这种扫描器也可以用做模拟黑客攻击的平台。采用这种结构的扫描器具有很强的生命力,如着名的Nessus就是采用这种结构。这种网络漏洞扫描器的结构如图2所示,它是基于客户端/服务器(C/S)结构,其中客户端主要设置服务器端的扫描参数及收集扫描信息。具体扫描工作由服务器来完成。
记得采纳啊
B. WEB系统问题排查
当问题出现,第一反应是估计影响范围。如当有用户反馈页面白屏,打不开时。需第一时间确认影响范围。具体操作流程如下:
当问题是局部发生的时候。则需进行排查。首先查看服务器各个集群的状态:
日志的排查不能是漫无目的的,需要根据问题的情况及对业务的了解,先后的去排查可能相关的日志。
问题一般在如上的流程中都能定位出来。如果定位不出来:
==让自己冷静下来,停下来一分钟,想一想问题,千万不要慌乱,并在没有思路的情况下操作,避免二次事故==
试试以下方案:
当影响范围或这错误已经找到或者没找到的情况下。需要在最短的时间内恢复系统(不一定是100%恢复,但要保持基本可用),如:
如等级系统异常导致的整站异常,则可下掉等级系统,所有用户等级全部默认1级,以保持系统基本功能可用
从上面的处理过程会得到一个提醒:
==线上系统的备用方案非常重要,系统需要有演戏,有紧急情况下的备用方案==
上面的排查过程,需要在一系列工具的配合下才能准确,快速的定位问题,以下列一下可能需要用的工具。
==linux命令是最好用的工具==
业务的访问情况分析,如pv,可以用网络统计等第三方统计平台(对于上述的情况,这种第三方统计平台是足够使用的)。
接口的访问情况,可能看起来比较麻烦。一般接口的访问情况,可以根据入口服务器(如nginx或apache)的访问日志来做一个简单的估计和查看。但是如果是分布式的机器的情况下,就比较麻烦。建议搭建ELK日志平台,通过对日志的聚合统计就可以做到接口访问情况的分析。
zabbix:是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。可以监控到各种服务器信息。
当然目前运维届有各种监控工具,如单独监控mysql集群的工具,redis的集群监控工具等都是可以用的。各个公司需要根据自己的情况,选用不同的工具。毕竟如果只需要监控mysql,那用zabbix就太重了。
业界目前比较流行的有ELK Stack。用于一站式的日志采集,存储,查看和分析。可以集中,方便的观察到各台服务器的日志情况,又不需要每个人都开通线上机器的权限,也方便日志的查询和搜索
在一般情况下(业务系统较简单,机器不多)。linux的命令是最方便快捷的方法。配合shell的sed或awt语法,可以做很多事情。
下面列一下一些常用的命令或工具:
C. “/WebUI”应用程序中的服务器错误。 ----------------------------------------------------------------
应用程序错误的原因和解决方法
内存条坏了--更换内存条
双内存不兼容--使用同品牌的内存或只用一条内存
散热问题--加强机箱内部的散热
驱动问题--重装驱动。如果是新系统,要先安装主板驱动
软件损坏--重装软件 软件有BUG--打补丁或用最新的版本。
软件和系统不兼容--给软件打上补丁或者试试系统的兼容模式
软件和软件之间有冲突--如果最近安装了什么新软件,卸载了试试 软件要使用到其它相关的软件有问题--重装相关软件。
病毒问题--杀毒软件与系统或软件冲突--由于杀毒软件是进入底层监控系统的,可能与一些软件冲突,卸载了换用兼容性好的杀毒软件(比如金山金山毒霸2011版sp6)。
这个问题,经常出现在windows2000和XP系统上,Windows 2000/XP对硬件的要求是很苛刻的,一旦遇到资源死锁、溢出或者类似Windows 98里的非法操作,系统为保持稳定,就会出现上述情况。
D. web服务器可能会存在那些问题应如何防范
(1)服务器向公众提供了不应该提供的服务。
(2)服务器把本应私有的数据放到了可公开访问的区域。用户Web应用需要保存一些私有的、不能从Web访问的数据,则根本无法找到满足要求的位置。
(3)服务器信赖了来自不可信赖数据源的数据。常见的安全问题是CGI程序或PHP脚本的质量低下,它们信任了来源不可靠的参数,未经严格的检查就立即使用CGI参数。
防范措施:
(1)提供不应该提供的服务的防范措施:只开放必需的端口,关闭其余的端口,关闭在自己的系统上运行那么多的服务,而这些服务原本无需在正式提供Web服务的机器上运行,或者这些服务原本无需面向公众开放。对于所有向公众开放的服务,应该密切关注其程序的最新版本和安全信息,应该做好一旦发现与这些程序有关的安全问题就立即升级软件的准备。
(2)服务器公用目录下的私有数据安全性的防范措施:设置Web服务器,使它既提供私有数据存储又提供公用页面目录。
(3)数据源的可靠性防范措施:通常,来自外面的数据(比如表单变量的数据)应该先传入检验其合法性的函数。只有当检验函数表示表单提供的数据是安全的,才可以把表单数据复制到会话变量。Web应用应该把这种检查集中到一起进行,应用的所有其余部分永远不应该直接接触表单变量,而是应该使用经过检查且确认安全的会话数据。
E. web服务器可能存在的安全问题有哪些
1、来自服务器本身及网络环境的安全,这包括服务器系统漏洞,系统权限,网络环境(如ARP等)专、网属络端口管理等,这个是基础。
2、来自WEB服务器应用的安全,IIS或者Apache等,本身的配置、权限等,这个直接影响访问网站的效率和结果。
3、网站程序的安全,这可能程序漏洞,程序的权限审核,以及执行的效率,这个是WEB安全中占比例非常高的一部分。
4、WEB Server周边应用的安全,一台WEB服务器通常不是独立存在的,可能其它的应用服务器会影响到WEB服务器的安全,如数据库服务、FTP服务等。
F. DMZ区域中WEB服务器统计访问IP问题!!
你目前做的应该是一个双向NAT,也就是说,内网、DMZ出去时作了NAT,外网访问DMZ时也作了NAT,所以才出现这种状况。就决办法:
1、制作单向NAT,内网、DMZ到Internet出口作NAT,对DMZ内需要提供Internet服务的主机作静态NAT映射;
2、内网访问DMZ时不做NAT,外网进入内网和DMZ时不需要做NAT,这样,DMZ内服务器收到的公网的访问时,源地址就是公网的地址,不再是防火墙上的地址,而且内部的地址还是内部的地址,这就可以把地址分开;
也就是说,由防火墙到DMZ主机的端口不能使用NAT功能,由内部、DMZ到外部时才使用NAT,这个问题就可以解决了。我不知道你使用的是哪个厂家的防火墙,一般都可以做到这么定义。