it-swarm-es.com

¿Existe algún beneficio en el uso de WRAP de Oracle para ofuscar el código PL / SQL?

Las unidades de programa almacenadas de Oracle (procedimientos, funciones, paquetes y tipos) se pueden ofuscar usando la funcionalidad WRAP .

Aparte de los argumentos genéricos sobre 'seguridad a través de la oscuridad', ¿existen problemas específicos al usar la funcionalidad de envoltura?

10
Gary

Hay desenvolvedores disponibles para código empaquetado con el mecanismo Oracle 10g y 11g. Estos incluyen tanto un 'desenvolvedor' en línea como el código fuente de un desenvolvedor escrito en Python.

Como tal, el empaquetado hará poco para evitar que alguien con ese nivel de acceso obtenga el código fuente.

Se pueden obtener indicadores adicionales de la naturaleza del código usando las vistas * _DEPENDENCIES, a través de una traza SQL o el uso de DBMS_TRACE.

Las vistas de dependencia mostrarán qué tablas y otros objetos se pueden llamar desde el programa, ya sea directa o indirectamente. El rastreo de SQL mostrará los SQL ejecutados como resultado de una llamada en particular a un procedimiento. Esto puede incluir 'vincular variables', por ejemplo, mostrar la sal utilizada en una llamada de cifrado. El DBMS_TRACE generalmente no se instala, pero cuando se instala y habilita, se puede usar para rastrear la ruta tomada a través del código, en términos de números de línea y llamadas a procedimientos/funciones.

Para evitar que el código sea analizado, el primer recurso debería ser utilizar paquetes. Con los procedimientos y funciones, la totalidad del código está disponible para cualquier usuario de la base de datos que tenga permiso para ejecutar el programa. Con los paquetes, solo la especificación (nombre del programa y nombres de argumentos/tipos de datos) está disponible y el código real en el cuerpo solo es visible para el propietario del programa y aquellos con altos privilegios de base de datos (normalmente DBA).

8
Gary

Parecería que el ajuste del texto fuente PL/SQL no es útil para eliminar los medios técnicos para leer el código PL/SQL, sino más bien para lograr uno o más de los siguientes objetivos.

  1. Para disuadir a los desarrolladores de software novatos de confiar en implementaciones en lugar de interfaces para paquetes y tipos. Por lo tanto, el ajuste del texto fuente podría tender a evitar problemas de compatibilidad con versiones anteriores si se revisan esas implementaciones.
  2. Para respaldar una afirmación de que si alguien leyera esas implementaciones, esa persona transgrediría la ley DMCA en los Estados Unidos, o al menos demostraría una intención de leer esas implementaciones frente a medidas que claramente tienen la intención de hacerlas difíciles de entender. leer.
  3. Para evitar que las personas que son bastante informales sobre la tarea y tienen recursos limitados obtengan el texto del programa.
2
minopret