ERP security

ERP Security is a wide range of measures aimed at protecting Enterprise resource planning (ERP) systems from illicit access ensuring accessibility and integrity of system data. ERP system is a computer software that serves to unify the information intended to manage the organization including Production, Supply Chain Management, Financial Management, Human Resource Management, Customer Relationship Management, Enterprise Performance Management.

Review
ERP system integrates business processes enabling procurement, payment, transport, human resources management, product management, and financial planning. As ERP system stores confidential information, the Information Systems Audit and Control Association (ISACA) recommends to regularly conduct a comprehensive assessment of ERP system security, checking ERP servers for software vulnerabilities, configuration errors, segregation of duties conflicts, compliance with relevant standards and recommendations, and recommendations of vendors.

Complexity
ERP systems process transactions and implement procedures to ensure that users have different access privileges. There are hundreds of authorization objects in SAP permitting users to perform actions in the system. In case of 200 users of the company, there are approximately 800,000 (100*2*20*200) ways to customize security settings of ERP systems. With the growth of complexity, the possibility of errors and segregation of duties conflicts increases.

Specificity
Vendors fix vulnerabilities on the regular basis since hackers monitor business applications to find and exploit security issues. SAP releases patches monthly on Patch Tuesday, Oracle issues security fixes every quarter in Oracle Critical Patch Update. Business applications are becoming more exposed to the Internet or migrate to the cloud.

Lack of competent specialists
ERP Cybersecurity survey revealed that organizations running ERP systems "lack both awareness and actions taken towards ERP security". ISACA states that "there is a shortage of staff members trained in ERP security" and security services have the superficial understanding of risks and threats associated with ERP systems. Consequently, security vulnerabilities complicate undertakings such as detecting and subsequent fixing.

Lack of security auditing tools
ERP security audit is done manually as various tools with ERP packages do not provide means for system security auditing. Manual auditing is a complex and time-consuming process that increases the possibility of making a mistake.

Large number of customized settings
The system includes thousands of parameters and fine settings including segregation of duties for transactions and tables, and the security parameters are set for every single system. ERP system settings are customized according to customers' requirements.

Security issues in ERP systems
Security issues occur in ERP systems at different levels.

Network layer
Traffic interception and modification In 2011, Sensepost specialists analyzed DIAG protocol used in SAP ERP system for transferring data from the client to the SAP server. Two utilities were published that allowed to intercept, decrypt, and modify client-server requests containing critical information. This made attacks possible including Man-in-the-middle attack. The second utility operates like a Proxy and was created to identify new vulnerabilities. It allowed modifying requests coming to client and server. In the SAP ERP system, it is possible to perform administering functions via Telnet protocol, which encrypts passwords.
 * Absence of data encryption
 * Sending password in cleartext (SAP J2EE Telnet / Oracle listener old versions)

Vulnerabilities in encryption or authentication protocols'
 * Authentication by hash
 * XOR password encryption (SAP DIAG)
 * Imposing the use of outdated authentication protocols
 * Incorrect authentication protocols

Vulnerabilities in protocols (e.g. RFC in SAP ERP and Oracle Net in Oracle E-Business Suite). RFC protocol is used (Remote Function Call) to connect two systems by TCP/IP in SAP ERP. RFC call is a function that enables calling and running a functional module located in a system. The ABAP language that is used for writing business applications for SAP have functions to make RFC calls. Several critical vulnerabilities were found in SAP RFC Library versions 6.x and 7.x:
 * RFC function "RFC_SET_REG_SERVER_PROPERTY" allows determining an exclusive use of RFC server. Vulnerability exploits lead to a denial of access for the legitimate users. denial of service becomes possible.
 * Error in RFC function "SYSTEM_CREATE_INSTANCE". Exploiting vulnerability allows executing arbitrary code.
 * Error in RFC function "RFC_START_GUI". Exploiting vulnerability also allows executing arbitrary code.
 * Error in RFC function "RFC_START_PROGRAM". Exploiting vulnerability allows executing arbitrary code or gain information about RFC server configuration.
 * Error in RFC function "TRUSTED_SYSTEM_SECURITY". Exploiting vulnerability allows obtaining information about existing users and groups in RFC server.

Operating system level
OS software vulnerabilities
 * Any remote vulnerability in OS is used to gain access to applications

Weak OS passwords
 * Remote password brute-forcing
 * Empty passwords for remote management tools like Radmin and VNC

Insecure OS settings
 * NFS and SMB. SAP data becomes accessible to remote users via NFS an SMB
 * File access rights. Critical SAP and DBMS Oracle data files have insecure access rights such as 755 and 777
 * Insecure hosts settings. In the trusted hosts, servers can be listed and an attacker easily accesses them

Application vulnerabilities
ERP systems transfer more functionality on the web applications level with a lot of vulnerabilities:
 * Web application vulnerabilities (XSS, XSRF, SQL Injection, Response Splitting, Code Execution)
 * Buffer overflow and format string in web-servers and application-servers (SAP IGS, SAP Netweaver, Oracle BEA Weblogic)
 * Insecure privileges for access (SAP Netweaver, SAP CRM, Oracle E-Business Suite)

Role-based access control
In ERP systems, RBAC (Role-Based Access Control) model is applied for users to perform transactions and gain access to business objects. In the model, the decision to grant access to a user is made based on the functions of users, or roles. Roles are a multitude of transactions the user or a group of users performs in the company. Transaction is a procedure of transforming system data, which helps perform this transaction. For any role, there is a number of corresponding users with one or multiple roles. Roles can be hierarchical. After the roles are implemented in the system, transactions corresponding to each role rarely change. The administrator needs to add or delete users from roles. The administrator provides a new user with a membership in one or more roles. When employees leave the organization, the administrator removes them from all the roles.

Segregation of Duties
Segregation or Separation of duties, also known as SoD, is the concept according to which a user cannot make a transaction without other users (e.g. a user cannot add a new supplier, write out a cheque or pay to a supplier) and a risk of fraud is much lower. SoD can be implemented by RBAC mechanisms, and a notion of mutually exclusive roles is introduced. For instance, to pay a supplier, one user initiates payment procedure and another accepts it. In this case, initiating payment and accepting are mutually exclusive roles. Segregation of duties can be either static or dynamic. With static SoD (SSoD), a user cannot belong to two mutually exclusive roles. With dynamic SoD (DSoD), a user does but cannot perform them within one transaction. Both of them have their own advantages. SSoD is simple, while DSoD is flexible. Segregation of Duties is explained in SoD matrix. X and Y matrixes describe system roles. If the two roles are mutually exclusive, there is a flag at the interception of the corresponding rows and columns.

ERP Security scanners
ERP Security scanner is a software intended to search for vulnerabilities in ERP systems. Scanner analyzes configurations of ERP system, searches for misconfigurations, access control and encryption conflicts, insecure components, and checks for updates. The scanner checks system parameters for compliance with the manufacturer's recommendations and auditing procedures ISACA. ERP Security scanners produce reports with the vulnerabilities listed according to their criticality.