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. Common ERP systems are SAP, Oracle E-Business Suite, Microsoft Dynamics.

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.

Causes for vulnerabilities in ERP systems

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 
 Absence of data encryption
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.
 Sending password in cleartext (SAP J2EE Telnet / Oracle listener old versions)
In the SAP ERP system, it is possible to perform administering functions via Telnet protocol, which encrypts passwords.

Vulnerabilities in encryption or authentication protocols 
 Authentication by hash
 XOR password encryption (SAP DIAG) 
 Imposing the use of outdated authentication protocols
 Incorrect authentication protocolsVulnerabilities 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.
The examples of Segregation of Duties software: 
 Appsian Security Platform for Oracle E-Business Suite and SAP ECC/S4HANA

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.
The examples of scanners:
 SecurityBridge Holistic Cybersecurity Platform for SAP ERP
 ERPScan for SAP ERP 
 Onapsis for SAP ERP
Safe O'Clock for SAP ERP
 AppSentry for Oracle E-Business Suite 
 Appsian Security Platform for Oracle E-Business Suite and Oracle PeopleSoft
 MaxPatrol for SAP ERP

ERP Data Security  
ERP Data Security is software intended to provide fine-grained access controls and visibility to specific transactions and data fields within an ERP application. The intention of ERP Data Security is to ensure that access to data is dynamically enforced based on the context of a user's access versus pre-defined roles and privileges. Both of which can be corrupted or exploited. ERP Data Security software is intended to work in conjunction with an organizations' existing ERP security and identity & access management controls, but provides granular, fine-grained levels of protection for particularly sensitive financial and PII data fields.

ERP Data Security Use Cases:
 Securing remote users
 Enforcing zero trust and least privilege
 Preventing data exfiltration
 Privileged access management
 Segregation of Duties
 Limiting risk exposure in financial transactions
 Threat detection, response & forensics
 Custom code vulnerability detection

The examples of ERP data security software: 
 Appsian Security Platform for Oracle E-Business Suite, Oracle PeopleSoft, and SAP ECC/S4HANA

References

ERP Security 

Computer security