Ciberseguridad
Salesforce

El código Apex inseguro afecta a muchas implementaciones de Salesforce

Las vulnerabilidades creadas por código inseguro podrían provocar fugas o corrupción de datos, y la carga de mitigarlas recae en los clientes.

oficinas de salesforce

Investigadores de seguridad de Varonis han advertido que muchas organizaciones tienen instancias de código Apex inseguro en sus implementaciones de Salesforce que abren vulnerabilidades graves que ponen en riesgo sus datos y flujos de trabajo comerciales. Los expertos dicen haber encontrado brechas de gravedad alta y crítica en el código Apex utilizado por múltiples firmas de Fortune 500 y agencias gubernamentales, pero advierten de que prácticas inseguras similares probablemente sean comunes dentro de organizaciones de todos los tamaños y sectores.

“Si se explotan, pueden provocar fugas de datos, y daños en las funciones comerciales de Salesforce”, aseguran en un informe. “Por eso, es vital realizar un seguimiento de las clases de Apex y sus propiedades, quién puede ejecutarlas y cómo se utilizan”.

 

Las clases de Apex insuficientemente restringidas pueden provocar fallos

Apex es un lenguaje de programación orientado a objetos cuya sintaxis es similar a Java que los desarrolladores pueden usar para ejecutar declaraciones de flujo y control en servidores de Salesforce junto con llamadas a través de la API de Salesforce. Apex permite a los usuarios personalizar sus instancias de Salesforce agregando lógica empresarial adicional a los eventos del sistema, incluidos clics en botones, actualizaciones de registros relacionados y páginas de Visualforce.

Según la documentación de Salesforce, el código Apex puede realizar llamadas al lenguaje de manipulación de datos (DML), realizar consultas del lenguaje de consulta de objetos de Salesforce (SOQL) y del lenguaje de búsqueda de objetos de Salesforce (SOSL) para devolver listas de registros de sObject, realizar procesamiento masivo de múltiples registros al mismo tiempo. tiempo, utilizarse para crear llamadas API públicas personalizadas a partir de métodos almacenados de Apex y mucho más.

"Una clase de Apex es una plantilla o modelo que se utiliza para crear objetos de Apex", dijeron los investigadores de Varonis. "Las clases incluyen otras clases, métodos definidos por el usuario, variables, tipos de excepción y código de inicialización estático".

Esto hace que las clases de Apex sean una herramienta poderosa para los desarrolladores, pero también muy importante para revisar cuidadosamente sus capacidades y restringir quién puede acceder a ellas. El código de Apex se puede ejecutar en dos modos: "sin compartir", donde el código de Apex ignora los permisos del usuario y puede acceder a cualquier registro y confirmar cambios, y "con compartir", donde el código respeta los permisos a nivel de registro del usuario pero ignora los permisos a nivel de objeto. y permisos a nivel de campo.

A veces se requieren clases de Apex configuradas para ejecutarse en modo "sin compartir" para implementar funciones importantes, pero pueden convertirse en un riesgo grave, especialmente cuando están disponibles para invitados o usuarios externos. Algunos de los tipos de problemas más comunes que pueden derivarse de las clases de Apex son las referencias directas a objetos inseguras (IDOR), que pueden permitir a un atacante leer, manipular o eliminar tablas completas de datos a las que de otro modo no debería tener acceso, o la inyección SOQL.; e inyección SOSL donde el código tiene fallas que permiten a los atacantes manipular las consultas realizadas por la clase para filtrar datos o cambiar el flujo de proceso previsto.



TE PUEDE INTERESAR...

Accede a la cobertura de nuestros encuentros
 
Lee aquí nuestra revista digital de canal

DealerWorld Digital

 

Forma parte de nuestra comunidad
 
¿Interesado en nuestros foros? 

 

Whitepaper

Documento Pure Storage y Kyndryl INFRAESTRUCTURAS