Posts Tagged ‘SA38’

Seguridad en la ejecución de programas

Friday, June 5th, 2009

A la hora de asegurar la ejecución de actividades sobre el sistema SAP habitualmente nos acordamos de restringir el acceso a determinadas transacciones, objetos de autorización, etc.

Pero muchas veces, por necesidades incorrectamente satisfechas al momento de la implementación, o por un apresurado mantenimiento del código, entre otras posibilidades, quedan puertas abiertas que podrían permitir la ejecución de actividades no deseadas en el sistema.

Personalmente, pienso que muchas de estos permisos se dan por inconsciencia, o desconocimiento de lo que se está autorizando por parte de los dueños o responsables de los datos. Ya que ellos conocen la información que quieren restringir, pero no conocen los medios por los que se puede acceder a la misma. Cuantas veces uno habrá escuchado: “Los sueldos solo los pueden ver un grupo reducido de personas”, y por otro lado se entregan los permisos de visualización de tablas indiscriminados, el debug con modificación de variables, la ejecución libre de programas, entre tantos otros.

Hablando de estas posibilidades, una de ellas es la de permitir la ejecución directa de programas en el ambiente de producción. Para muchos puede sonar a una atrocidad, pero otros probablemente digan que ven esa posibilidad habitualmente habilitada en su sistema.

Principalmente estamos hablando de las transacciones SA38 y SE38.

A veces encontramos que los programadores pueden acceder a producción con estos permisos, otras veces los parametrizadores, e incluso otras veces hasta los usuarios finales, con el inocente fin de poder “Ejecutar un reporte”.

El primer tema a plantear a la hora de resolver estos inconvenientes es el de que todo desarrollo para ser ejecutado en un ambiente productivo debería tener asignado un código de transacción. Como adminsitradores de seguridad deberíamos exigir el cumplimiento de esto, más siendo que la tarea de utilizar la transacción SE93 para crear un código no demanda más de 1 minuto. De esta manera podríamos restringir la ejecución de cualquier programa como si una transacción estándar se tratara.

Ahora el segundo caso es cuando no podemos lograr esto, ya se por falta peso de nuestro sector, o porque las necesidades organizacionales son otras (casos puntuales, ejecución de programas estándar, pedidos ridículos pero con suficiente peso, etc). Ante esta situación lo ideal es no brindar permisos excesivos.

La ejecución de programas está restringida por el objeto S_PROGRAM, el cual tiene un “grupo de autorización de programas” y un código de acción posible (SUBMIT – Ejecutar un programa, BTCSUBMIT – Ejecutar como proceso de fondo, VARIANT – Ejecutar con una variante)

Lo primordial es la utilización de este grupo de autorizaciones, el cual puede definirse en la misma transacción SE38 a la hora de crear el programa. Pero hay que tener en cuenta que un número importante de programas estándar de SAP NO TIENEN GRUPO DE AUTORIZACION ASIGNADO, permitiendo así la ejecución de los mismos con sin chequear el campo de grupo. En este caso existe un programa estándar que permite el mantenimiento masivo de los grupos de autorización llamado SREPOAUTH.

También hay que tener en cuenta que los programas pueden ser ejecutados como proceso de fondo (de no tener las transacciones SA38/SE38) con las transacciones SM36/SM37, las cuales también hay que prever, sobre todo para quienes tienen permisos para la ejecución de procesos de fondo.

De esta manera tenemos bastante herramientas para restringir la ejecución de programas ante distintas circunstancias que se nos planten, en el trabajo cotidiano.

VN:F [1.8.2_1042]
Rating: 4.5/5 (4 votes cast)
VN:F [1.8.2_1042]
Rating: 0 (from 2 votes)

Usuarios por defecto (SAP*, DDIC, EARLYWATCH, etc)

Wednesday, February 18th, 2009

Hoy vamos a hablar de los usuarios por defecto del sistema SAP. Habitualmente estos usuarios los podemos encontrar no solo en R/3 si no que, en principio, también están presentes en los otros sistemas (BW, PI, Solution Manager, etc)

Estos usuarios existen por diversos motivos, principalmente vinculados con el propio funcionamiento del sistema, la instalación o la configuración del mismo.

DDIC

Podemos encontrar en principio el usuario DDIC, el cual es el utilizado para la gestión del diccionario de datos, modificación de estructuras de datos, upgrades del sistema, etc. Por estos motivos el usuario no debe ser eliminado del sistema si no que por el contrario debe ser modificada su contraseña de origen la cual viene por defecto definida como 19920607, ya que dejar este usuario con la contraseño por defecto nos expondría a riesgos asociados con los permisos amplios del mismo para operar con el sistema.

EARLYWATCH

Este usuario si bien no posee permisos tan amplios como DDIC permite el acceso al sistema con una contraseña por defecto: SUPPORT. Este usuario es utilizado para el proceso de revisión periódica del sistema por parte de SAP, en donde revisa la performance del equipo de manera remota, las licencias, etc a través de un acceso por SAPRouter. Es recomendable cambiar la contraseña de este usuario en el mandante 066 (al que accede SAP para estas evaluaciones)

SAPCPIC

Usuario utilizado para los procesos de comunicación entre sistemas y el cual también posee permisos amplios, la política es similar a la del usuario DDIC y es de cambiar su contraseña por defecto ADMIN

SAP*

Un caso parecido a DDIC, y tal vez el más grave ocurre con el usuario SAP*, el cual es el usuario con el que por primera vez iniciaremos el sistema después de la instalación, y que posee amplios permisos sobre la aplicación. En versiones anteriores a las ECC 5 de SAP la contraseña por defecto era 06071992, pero a partir de la misma se pregunta durante la instalación la contraseña inicial. Este usuario tampoco debe ser eliminado ya que es de utilidad en determinadas ocasiones para aplicaciones de parches, updates, upgrades y algunas tareas en particular que lamentablemente tienen este usuario hardcodeado como el único que puede ejecutarlas.

Borrar el usuario SAP*

Las precauciones con el usuario SAP* deben extremarse ya que en caso de borrarse el usuario de sistema la aplicación tiene un BUG o mecanísmo de seguridad en donde se genera un nuevo usuario SAP* con contraseña por defecto PASS. De esta manera si borramos el usuario SAP* estaremos abriendo un agujero de seguridad aún más grande ya que no podría cambiarse la contraseña por defecto.

La solución a este problema viene dado por un parámetro seteable en la transacción RZ11 de nombre (login/no_automatic_user_sapstar) el cual para no permitir este agujero de seguridad debe estar definido con el valor 1. (Ver artículo sobre parámetros)

Preventivamente es recomendable bloquear al usuario SAP* y desbloquearlo solo en caso de necesidad explícita de uso.

Recomendaciones Finales:

Cualquier usuario creado por defecto por el sistema implica un riesgo, ya que a los mismos se les conocen habitualmente varias vulnerabilidades. Lo primordial: cambiar sus contraseñas por defecto y de ser posible bloquear los usuarios sin borrarlos (caso SAP*). Una buena forma de verificar preventivamente esto es ejecutar desde la transacción SA38 el report RSUSR003, el cual nos brindará la información sobre las contraseñas por defecto de estos usuarios.

VN:F [1.8.2_1042]
Rating: 4.0/5 (1 vote cast)
VN:F [1.8.2_1042]
Rating: 0 (from 0 votes)