一线工程师的经验之谈:ERP安全的部署和实现

【.com 独家特稿】来自于维基的解释说:ERP是企业资源规划的英文缩写,是基于计算机的资源管理系统,包括对有形资产、资金、材料、人力资源的企业管理软件。广义上的ERP涵盖了很多内容,CRM、人力资源管理,财务管理、生产制造管理等等很多内容。不管是ERP、CRM、SRM或者是其他一些类似的商业应用管理软件,都涉及到安全问题,因为他们存储了非常重要的业务数据,这些应用如果存在漏洞的话,都会对企业造成重大的经济损失。

创新互联建站是一家网站设计公司,集创意、互联网应用、软件技术为一体的创意网站建设服务商,主营产品:响应式网站建设、品牌网站建设成都全网营销推广。我们专注企业品牌在网站中的整体树立,网络互动的体验,以及在手机等移动端的优质呈现。做网站、网站设计、移动互联产品、网络运营、VI设计、云产品.运维为核心业务。为用户提供一站式解决方案,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏析悦目的作品,网站的价值服务。

一、ERP是安全的吗?

关于ERP的安全,一直以来都缺少足够的关注。在我接触的客户中,通常他们会对ERP安全持有三个态度:

1、第一个观点:ERP的业务应用程序都在内部网络里,因此是可信的。持有这种观点的人绝大多数是业务层面的高管,而非IT部门的主管。实际情况是,除非你还在大型机时代,不然的话你一定需要和别人互联。分支办事处、客户和供应商,以及银行、银联都会在你的网络里有接口,而且很多员工的办公电脑都可以连接到互联网,这就又多了一个高风险的互联网通道。我们在google上输入inrul:sap,就可以看到很多使用sap的内部页面。再比如图1,我们在一个shado的搜索引擎上,输入erp,可以轻易的搜索到很多国家的erp服务器,包括他们的ip,中间件,开发语言等信息。

图1 利用搜索引擎得到的ERP服务器信息

2、第二个观点:ERP是开发商的问题。持有这种观点的人认为,ERP的安全问题,开发商应该在设计之初就充分考虑到,并且确保了安全,持有这种观点的人一般都是对安全不太了解的IT主管。从技术的角度来说,开发商应该对他程序的错误和架构负责。但是,默认/不安全的配置、人为因素、补丁管理、策略和过程则是用户自己的问题。换句话说,即使代码是百分百安全的,在实施部署、日常运维中,你还是有很多机会可以犯错。

3、第三个观点:业务应用是内部的,而且非常具体,黑客不可能了解结构和用途。持有这种观点的人一般认为,系统都在公司内部运行,而且使用的平台也不是windows这种黑客所熟知的,因此他是封闭、隐藏的世界,因此可以高枕无忧。

真的可以高枕无忧吗?第一,越热门的产品越容易被黑客研究,从而招致更多的攻击,因为一旦攻击得手,其可复制性很大,可以获得更多战果。大家熟知的windows就是在这种攻防对抗中慢慢健壮起来的。国内现在的ERP市场,几个大型厂商的占用率非常高,这就提供了研究攻击的土壤。其二,ERP在过去几年的发展中,我们可以清楚的看到,企业发展壮大之后,不可避免的具有地域扩张的需要。所以它越来越依赖于互联网运行,即使现在没有,将来也会有,等到那个时候再来考虑安全问题,已经积重难返了,整改的代价会非常高。第三,不管是供应商还是用户,对安全的防御能力还停留在3-5年前的水平,买个防火墙,装个杀毒软件。他们不知道攻击早已经从2-4层转移到应用层攻击上了。

那么,ERP的主要安全问题是什么呢?根本原因有三个,第一就是ERP具有复杂的结构,系统越复杂,安全问题越难处理。也就是安全界常说的complexity kills security ,复杂性杀死安全。第二,安全层次覆盖网络、应用等各个层面。第三,管理员担心打补丁,会造成系统出问题,所以绝大多数ERP系统里都存在着很多漏洞。所以,从erp的安全生命周期来上来说,想要保证整体安全,要从两个方面来考虑,开发安全,实施部署的安全。

图2 ERP安全生命周期框架#p#

二、开发安全

图3 开发安全框架

这个图,实际上是针对程序员来说的,开发的安全。中间是最重要的数据。开发安全分两块,一个是代码漏洞,一个是前端漏洞。所谓前端漏洞,就是整个erp的前台,与用户交互的地方。

1、代码安全

在代码的漏洞上,根据常见的ERP安全问题,我们做了一个TOP10的排名。

图4 开发代码漏洞TOP10

例一:跨站。sap有很多跨站问题,最新发现的一个是在5月份,在RequestParts.htm页面上,有漏洞的变量是sap-ffield,这个页面是sap和互联网的接口交互的地方,通过这个跨站漏洞,可以绕过sap的跨站过滤,获取管理员的cookie。

 
 
 
 
  1. 提交:/sap(bD1lbiZjPTAwMA==)/bc/bsp/sap/icf/RequestParts.htm?sap-ffield=aaa= 

例子中使用简单的onerror,一个标准的事件属性,就可以绕过sap的过滤机制,由此可见sap的跨站过滤,应该是非常脆弱的。而且这个页面比较关键,它是互联网交互的,所以如果你google去搜这种页面,就有机会跨站,拿到管理员cookie,也就是说,你完全可以远程渗透sap。#p#

例二:信息泄露问题。

在Oracle财务软件的/pls/DAD/find_web.ping和/OA_HTML/jsp/fnd/fndping.jsp这两个页面上都有这个问题,这两个页面记录了连接的错误信息,而且错误信息非常详细,几点几分,Oracle的http服务器Apache某某版本,与某IP的连接出现问题,在Apache的日志中记录了这个问题,Apache的日志路径是什么,可以使用哪些debug命令来调试确认等等一系列信息。

例三:错误的访问控制/遍历

这个问题是NETWAVER里的,NETWAVER是sap的基本平台,sap所有的新产品都搭建在这个平台上。在NETWAVER里有个rfc库,库里有很多函数可以被调用,但是谁可以调用这些函数,只有几个账户可以调用。其中一个账户是SAPCPIC,他有个默认密码是admin。这个账户不是在线用户,就是说他不能直接登录,它就是用来执行rfc兼容命令的,可以做远程函数调用。使用这个权限你就可以获得共享内容。然后你还可以写idoc,这个idoc是sap的数据交换码,比方说你的商品价格,我就可以通过这个权限,把你的商品价格取出来,或者把你的商品价格改掉放进去。这个攻击就是利用这个账户,因为这个账户一般人根本不会用到,甚至都不知道密码是什么。

图5 NETWAVER中的错误访问控制/遍历漏洞

2、前端安全

图6 开发中的前端安全漏洞TOP10

这里都是和用户交互的地方,比如BS结构的浏览器页面,信息的传递都在这里。所以这里的风险级别都比较高,也是很多都可以远程去做的。#p#

例一:缓冲区溢出

该例参见宇文先生在09年的《大型企业之患!SAP安全之攻击客户端》这篇文章。http://netsecurity./art/200909/150135.htm,在第二段里,他提到了缓冲区溢出攻击的一个实例。

例二:默认密码

erp里因为账户、权限很多,也记不住,就有个很坏的习惯,把密码写在程序里,而且大多数也不怎么加密,嗅探就可以,而且呢,这种写法的还大多数都是连接数据库,你可以很容易成为他的dba。关于这点,我们在后面会详细提到。

三、安全的部署和实现

图7 安全的部署、实现框架图

在这一部分,是比较通用的:底层的网络,然后上面跑的系统,数据库、应用,在这里,他也有前端的漏洞问题,这就比开发安全要复杂一些。

1、网络层漏洞

图8 网络层漏洞TOP10

网络漏洞,这个大家都见的多了,一般的安全加固也在做这方面的事情。

例:监听SAP未加密的通信

在SAP网络中,使用

tcpdump -n -i eth0 'tcp[13] & 3 != 0 and (( tcp[2:2] >= 3200

tcp[2:2] < 3300) > or 5 ( tcp[2:2] >= 3600 tcp[2:2] < > 3700))'

进行监听,这个例子是监听tcp的3200,3600几个高端端口,这是NETWAVER的默认专用端口,在这个例子里,我们发现了HR系统的连接密码,权限是最大权限,可以获得hr系统的所有数据。#p#

2、操作系统漏洞

图9 操作系统层漏洞TOP10

在erp里面有个很大的问题就是默认密码,那在这一层上,实际上也有很多可利用的地方。这里列出了存储各类密码的不同路径,这是从sap手册上找到的,我相信大多数人不会改这些东西,你只要能够访问这些文件,你就可以拿到相关密码。虽然有的密码是加密的,但是他们的加密机制比较弱。

例:默认敏感文件

数据库文件(数据,加密的Oracle、SAP密码)

路径:/oracle/ /sapdata/system_1/system.data1

SAP配置文件(加密的密码)

/usr/sap/ / /sec/*

/usr/sap/ / /sec/sapsys.pse

Configtool配置文件(加密的数据库密码)

\usr\sap\DM0\SYS\global\security\data\SecStope.properties

\usr\sap\DM0\SYS\global\security\data\SecStope.key

J2EE Trace文件(明文密码)

/usr/sap/ / /j2ee/cluster/dispatcher/log/defaultTrace.0.trc

图10,在这个文件里抓到的用户名和密码

ICM(加密密码)

\usr\sap\DM0\SYS\exe\uc\NTI386\icmauth.txt #p#

3、数据库漏洞

图11 数据库漏洞TOP10

例一:Oracle开启不必要的服务

UTL_HTTP:UTL_HTTP可以读取Oracle里面的网页源码,这个参数比较危险,如果你学过oracle注入的话,这个参数是很常见的Oracle注入测试点,后来Oracle发现了这个问题,在11的版本里头,开始提供针对这个参数的访问控制,但是有多少人知道呢?又有多少人知道,而且会去进行访问控制呢?我看了很多的安全加固手册,对这个完全没有提及。

UTL_TCP:看名字你就知道,它是建立tcpip连接的,可以跨越数据库领域对外通信。他的出名是因为Voyager这个蠕虫,这个蠕虫会把dba的权限授给public,然后利用UTL_TCP去网上下载其他病毒,再然后把数据库的密码发送邮件给一个指定邮箱,06年1月份的时候,这个病毒大规模爆发,直到6月份,Oracle才发布了补丁。这些默认安装的服务,都是可以利用的。

例二:MSSQL的Master..xp_dirtree _\\fakesmb\sharee'

这是列目录,找共享,是常见的攻击命令,也是sql注入的常见用法,可以列出你根目录,再然后找到你的数据库,把它down下来慢慢破解。

例三:使用低权限 Oracle 数据库账户得到 OS 访问权限

这个例子在互联网上广为流传,文章名字就叫做《使用低权限 Oracle 数据库账户得到 OS 访问权限》。其原理:一般情况下,你去连接Oracle的SMB控制台,都需要DBA权限,但是还是有办法来获得权限的,那么这里就利用了Oracle的一个漏洞,在Oracle里面,任何用户都可以创建一个文本索引,并且发送文本查询。这就是这个漏洞的利用基础,然后你就能读到服务器上的远程共享,再通过远程共享,窃取你这台服务器的账户。

4、应用漏洞

图12 应用漏洞TOP10

应用漏洞实际上就和日常运维有很大关系了,比较危险的也是前3名,补丁,默认密码,权限设置。#p#

例一:默认密码

图13  默认密码

这里的SAP和DDIC是超级管理员,TMSADM是用来做通信管理的,SAPCPIC这个说过了,是rfc远程调用的,EARLYWATCH类似与日志审计账户。他们都有自己的初始密码,除了超级管理员的密码可能被改,其他被改的可能性不大。

5、前端漏洞

图14 前端漏洞TOP10

例:未加密

图15 缺少加密

sap怎么传输密码的呢,他有一个自己的协议叫DIAG,把数据包走diag传过去,因为他觉得diag是私有格式,所以认为很安全,密码就是简单的压缩一下传过去,但是这是可以被解压的,数据加密也是这样。那怎么解决呢?SNC,sap的一个身份验证机制,4.0版本以上开始提供。

webgui,这个对密码用了base64编码,简单的说,base64根本就不能算是个加密,它的主要作用也不是用来加密,它只能说,把密码变成人类不可直接读的文件,base64很容易破解。现在只有电子邮件才用它,因为它能保证数据在很多传递过程中不会出错。所以这个密码很容易就破解了,而且网上有很多工具。

RFC,这个我们说过了,远程调用的函数库,他的密码加密是异或运算一个已知的值,你知道知道这个值,你就非常轻松的运算出来明文,就算你不知道这个已知的值,如果他的密钥空间不够大,出现重复,仍然可被破解。无线的密码破解,其实也是和这个原理差不多,就是不断抓包,抓到一定数量时候,他就会有重复,然后破解。

Visual admin的控制台密码加密,用的是自己的专有算法,不过这个算法在08年前被破了,但是不好利用。

mobile的admin控制台:无加密。

【.com独家特稿,非经授权谢绝转载!合作媒体转载请注明原文出处及出处!】

【编辑推荐】

  1. 对项目管理在ERP实施中的应用描述
  2. 中小企业ERP系统选型四个标准分析精简版
  3. 项目管理在ERP实施中的应用 哪些方面需注意
  4. 选择制造业ERP软件哪些问题你最好询问一下?

本文题目:一线工程师的经验之谈:ERP安全的部署和实现
当前网址:http://www.36103.cn/qtweb/news48/15898.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联