如何保护您的ERP系统?

在上一篇文章中,我们介绍了很多有关ERP系统的安全性。 现在我们要讨论保护它们的方法。



保护ERP系统是一个挑战。 一个好的综合项目可能要花费数年才能完成,尤其是在处理大型景观时。 但是,值得投资。 以下是一些基本步骤,可以帮助您在计划阶段安全地设计SAP实施。 您还可以应用此方法来保护系统免受最常见的攻击。


1.保护免受外部攻击,禁用不安全的服务


任何或多或少复杂的应用程序都具有通常需要的大功能,但在特定情况下则不需要。 默认情况下,典型的ERP系统中几乎所有这些功能都是启用的。


与往常一样,SAP安装包括大约1500种各种Web服务,如果默认情况下启用了该服务,则代表任何注册用户可以远程使用这些服务。 此外,甚至匿名用户也可以访问大约40种服务。 一些研究论文指出了13种关键服务。 如上所述,这些只是基本服务。


我们建议您尽快应用上述指南中的建议-禁用匿名用户可访问的所有服务,分析哪些已安装的服务是必需的,并通过实施授权检查来限制访问。
SAP系统的体系结构应包括基于Web的代理(SAP Web Dispatcher),该代理将限制从外部访问所有不必要的服务,并仅允许访问必要的服务。
SAP Web调度程序位于Internet和您的SAP系统之间。 它是HTTP(s)请求进入系统的入口点,该系统由一台或多台SAP NetWeaver应用程序服务器组成。 因此,SAP Web Dispatcher有助于提高安全性并平衡SAP系统中的负载。


您可以在此处找到有关SAP Web Dispatcher的其他信息。


2.应用SoD原则


SAP解决方案具有各种功能机会,可以通过程序,交易和报告来实现。 应该根据定义允许访问的用户,方法和对象的授权值,严格控制对这些对象的访问。 对关键操作的访问(例如,修改交易或读取任何表的访问权限)使用户能够对SAP系统执行攻击,提升其特权或窃取关键数据。


职责分离(SoD)是一种防止利益冲突的安全方法,即避免同时获得的两个或多个访问权可能会导致欺诈行为(例如,创建和批准权)付款订单)。


第一步是使具有SAP_ALL配置文件或有权访问诸如SE16,SM59和SE38的关键事务的用户数量最小化。 下一步,应用SoD控件,至少是ISACA指南中提到的控件。


3.将开发与测试和漏洞检查分开


为了保护免受恶意开发人员的侵害,首先,在测试开发和生产基础结构之间进行设计分离,然后控制从开发到生产的所有传输请求。 看起来很简单; 然而,问题在于究竟应该控制什么。 为了安全地将测试开发系统与生产系统之间的架构师区分开,您应确保没有存储优先级高的系统(生产系统)与低优先级的系统(开发系统)之间存储凭证的连接。 仅允许这些连接存储技术连接配置并为每次访问验证用户身份。


如您所知,OWASP(开放Web应用程序安全性项目,致力于提高Web应用程序安全性的意识)提供了影响Web应用程序的十大最危险漏洞列表。 当我们处理企业应用程序时,了解我们需要检查哪些问题并不是一件容易的事。 幸运的是,有一个EAS-SEC(eas-sec.org)-一个非营利组织,旨在提高对企业应用程序安全空间的认识。 EAS-SEC由不同的项目组成,其中一个涵盖代码安全性。 它称为企业应用程序系统应用程序开发指南或EASAD。 本指南描述了业务语言的9个常规类别的源代码问题。


分类:


  • 注入(代码,SQL,OS)
  • 紧急呼叫(至数据库,至操作系统)
  • 缺少或错误的访问控制检查(缺少身份验证,错误)
  • 目录遍历(写,读,SMBRelay)
  • 修改显示内容(XSS,CSRF)
  • 后门(硬编码凭据)
  • 隐蔽通道(开放套接字,HTTP调用,SSRF)
  • 信息泄露(硬编码用户,密码)
  • 过时的语句(READ TABLE,内核方法)

这些类别是通用的,并且对于大多数业务应用程序(例如SAP,Oracle,Microsoft Dynamics和Infor及其自定义语言)都是相同的。


一个安全的开发过程应至少包括检查这九类代码的漏洞。


4.安全连接


由于每个系统都与其他系统连接,因此了解哪个系统可以受到攻击,SAP如何与其他企业应用程序连接,攻击者如何提升特权以及您首先应保护的资产至关重要。 我们应该分析哪个系统最重要,并开始解决该特定系统上的问题。


首先,我们需要为每种资产分配严重性。 然后分析资产之间的连接(无论它们是否安全),最后根据资产对整个景观安全的总体影响来确定资产的优先级。 例如,您拥有低风险资产,例如没有任何关键数据的测试系统。 该系统与生产系统具有连接,而该生产系统又与ICS基础结构具有连接。 考虑到所有连接,此测试系统可能会对所有环境产生重大影响,我们应该注意其安全性。


除了应用程序服务器的机制外,服务器通常还可以与许多其他机制连接。 例如,SAP解决方案可以安装在Windows服务器上,该Windows服务器是单个域的一部分,并以公共帐户的特权运行。 在这种情况下,访问一台服务器几乎总是意味着访问所有其他服务器,无论它们在应用程序级别受到的保护程度如何。 通过DBMS实现链接或受信任的连接也是可能的。 DBMS通常使用预定义的身份验证数据存储对其他数据库的引用,从而使其他DBMS可以访问。 此外,此类机制的范围还包括渗透邻居系统的任何其他可能方法,审核员通常在渗透测试中使用该方法,即,尝试在OS,DBMS和应用程序级别使用相同或相似的密码登录到邻居系统,以及在文件系统中以纯文本形式进行的各种密码搜索; 更新,集成,备份脚本等。 应该检查所有这些选项,以消除与所有系统之间存在弱链接的渗透风险。


连接不安全的另一个风险是数据泄漏。 SAP Systems应该在传输数据时对其进行加密。 很明显,HTTP流量应该由SSL保护,但是大部分流量是使用默认情况下不安全的SAP专有协议传输的,例如RFC(用于连接SAP系统的协议),DIAG(用于将SAP客户端与SAP Server连接的协议)以及Message Server协议。 不幸的是,没有办法确保Message Server通信的安全。 因此,仅将该服务置于防火墙之下将是唯一的选择。 对于DIAG和RFC协议,可以通过SNC实施加密。


所有不具有单点登录功能的SNC可供所有SAP NetWeaver客户使用SNC客户端加密的SAP GUI和SAP服务器之间的所有RFC通信使用。 基本的单点登录功能在SAP服务器和SAP GUI客户端运行Microsoft的环境中可用。


总结


ERP安全是一项复杂的任务。 但是,仅采取这4个高级步骤就可以显着提高ERP系统的安全级别。 只有在安全地实施了体系结构之后,才有必要采取进一步措施,例如漏洞管理和事件响应。

Source: https://habr.com/ru/post/zh-CN469041/


All Articles