lunes, 23 de septiembre de 2013

Cobol: ¿una alternativa para la seguridad informática?

Por: Raúl Ruíz
Toda información que esté en soporte digital tiene la posibilidad de ser copiada o hurtada, por lo que
generar acciones que reduzcan este grado de inseguridad han cobrado cada día mayor relevancia. En este sentido, considero que Cobol es uno de los lenguajes más seguros para afrontar estas situaciones de riesgo.

¿Qué sucede con la programación de los sistemas?

El programa Cobol ejecutable, es decir el que funciona en cualquier ordenador, es un programa compilado. ¿Qué quiere decir esto? Que las instrucciones para que el ordenador realice cualquier función se encuentran en lenguaje binario o máquina, lo que dificulta la intercepción de datos.

Claro que existe siempre la posibilidad de hacer ingeniería inversa, pero aún así hay que saber Cobol para entenderlo, además del hecho de que un programa compilado se ejecuta mucho más rápido que los no compilados (como por ejemplo Java). La explicación simple de esto es que en un programa compilado, ejecutable (*.exe) el computador lo ejecuta directamente, en cambio un programa interpretado debe ser “traducido” por el computador y luego ejecutado.

Por otro lado, desde siempre los fabricantes de compiladores Cobol han cifrado los datos de sus archivos, de manera que sólo puedan ser interpretados por los programas que los crearon salvo que se manejen archivos de sólo texto, acción poco frecuente, ya que son más ineficientes y ocupan un mayor espacio de almacenamiento.

Según cifras publicadas por Addictware, a diario se mueven datos de más de 70 mil contenedores de unos 60 millones de pacientes (datos clínicos de hospitales y empresas prestadoras de salud); también 500 millones de comunicaciones de teléfonos móviles (encauzamiento de voz, datos, SMS, etcétera); además, más del 80 por ciento de los POS o puntos de ventas, así como la gran mayoría de transacciones de cajeros automáticos y de tarjetas de crédito utilizan, desarrollan y mantienen su programación en Cobol. Esto no es casualidad, sino confianza de la gran mayoría de las empresas e industrias, de hecho se calcula que entre un 60 y 80 por ciento de ellas (bancos, financieras, aseguradoras, navieras, industrias, almacenes de cadena, comercios, entre otras), continúan fieles a esta tecnología.

Subrayo que no es invulnerable una base de datos o archivos Cobol, ningún dato o programa que esté en un ordenador lo es, pero sí le hacemos más difícil la tarea a quienes están detrás de conseguir beneficios de manera no lícita.

Otro punto a favor, si bien no es por el Cobol exclusivamente, es que la mayoría de los datos y programas de este lenguaje se encuentran ejecutando sobre los llamados “Mainframes”, y estos mismos cuentan con sistemas de seguridad que han sido reforzados con el tiempo y la experiencia ganada, lo que en gran manera impide el acceso fácil a los intrusos desde el exterior. En tanto que la mayoría de los robos o fraudes descubiertos se han fraguado desde el interior de las empresas.

Un colega me comentó, que es una batalla que no podemos ganar ¿por qué? Porque el perfil de un hacker es el de una persona joven que no percibe sueldo y sí muchas ganas de saberse capaz de vulnerar un sistema, dedicando a ello si es posible las 24 horas del día, todos los días. En cambio un Jefe de Seguridad de cualquier empresa, le dedica 8 horas de su vida como máximo 6 días a la semana, a intentar defender su sistema a cambio de un sueldo fijo, vacaciones, etcétera.

Conclusión del autor
Ante la interrogante de si es seguro tener los datos generados en ambiente Cobol, podemos decir que es un poco más seguro que otros sistemas e insistimos en la necesidad de formar nuevos profesionales en Cobol, ya que la demanda es alta aún por gente que desarrolle y mantenga la gran cantidad de programas que siguen funcionando en este siglo XXI, bajo Cobol.

Artículo original en Reclu-IT

Coincido en que lo más probable es que un "ataque" a un sistema mainframe/cobol es más común que llegue desde dentro. Muchos de los que somos desarrolladores en estos entornos sabemos que no en todas las empresas hay un control exhaustivo del código que se sube al entorno de producción o "real".
Lo cierto es que si este mundo funciona, es porque el 99,99% de los informáticos son gente muy honrada que solo hace su trabajo
: )

lunes, 16 de septiembre de 2013

Wait en JCL

Este artículo surge de un problema que se nos presentó en el trabajo cuando montábamos un proceso batch de mantenimiento de tablas:

Cuando dentro de un job ejecutamos un programa que modifica la base de datos, el commit que guarda los cambios se realiza al finalizar el job.
Si un paso posterior diese error, los cambios no se quedaría grabados (haría un rollback).

Existe también la opción de realizar commit dentro del programa. Esto es habitual en los procesos rearrancables, que hacen commit cada n registros tratados (que es nuestro caso).

Incluso así, puede que los cambios no se guarden inmediatamente. En mi caso, el problema venía porque se trabaja contra vistas de las tablas, y tarda X minutos hasta que se carga sobre la tabla en sí.

¿Qué ocurre si quiero hacerme una descarga de la tabla justo después de haberla modificado? Que la descarga no contiene los cambios.

Para solventar este problemilla hemos añadido un paso de espera, que mantiene el job "esperando" el tiempo que le indiquemos. Así damos margen al DB2 para que actualice nuestra tabla.
En nuestro caso existía ya un programa para hacer el wait (desconozco su contenido), pero hemos montado el ejemplo para uso general en cualquier instalación.

El paso de "wait" consiste en ejecutar un programa REXX que recorre un bucle hasta que transcurre el tiempo que le indiquemos por parámetro (en segundos).

Código REXX:
/* rexx */                      
parse upper arg tiempowait          
   etime = time(R)              
   do while etime < tiempowait      
      nop                        
      etime = time(E)            
   end                          
exit

Y aquí va un ejemplo de job
Código JCL:
//*****************************************************************
//* PASO QUE EJECUTA UN PROGRAMA QUE MODIFICA BBDD                *
//*****************************************************************
//PASO01 EXEC PGM=IKJEFT01,DYNAMNBR=20
//SYSTSIN DD *
  DSN SYSTEM(DSN1)
  RUN PROGRAM(PRUEBA5) PLAN(PRUEBA5)
//SYSOUT  DD SYSOUT=*
//SYSIN   DD *
/*
//*****************************************************************
//* RETARDAMOS LA EJECUCION 3 MINUTOS PARA QUE SE CONSOLIDEN LOS  *
//* CAMBIOS EN BBDD                                               *
//*****************************************************************
//REXWAIT EXEC PGM=IKJEFT01             
//*-------                              
//SYSPROC DD DISP=SHR,DSN=LIBRERIA.CONTU.REXX 
//SYSLIST DD SYSOUT=*                   
//SYSOUT DD SYSOUT=*                    
//SYSTSPRT DD SYSOUT=*                  
//SYSTSIN DD *                          
 PGMWAIT 180                               
/*                                      
//*
//*****************************************************************
//* PASO QUE REALIZA LA DESCARGA DE LA BBDD                       *
//*****************************************************************
//UNLOAD EXEC PGM=IKJEFT01,DYNAMNBR=20
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
  DSN SYSTEM(DSN1)
  RUN PROGRAM(DSNTIAUL) PLAN(DSNTIAUL)
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSPUNCH DD SYSOUT=*
//SYSREC00 DD DSN=XXXX.UNLOAD.TBPRU00,
//            DISP=(NEW,CATLG,DELETE),UNIT=SYSDA,
//            SPACE=(CYL,(100,50),RLSE)
//SYSIN    DD *
   SELECT * FROM DSN1.TBPRU00
//

Ojo con poner el parámetro TIME en la cabecera del job!!! Hay que darle tiempo :P
Esperamos que os sirva de ayuda.

En este caso han sido los compañeros de MVSFORUMS los que nos han dado la idea. Muchas gracias!

jueves, 12 de septiembre de 2013

EMPLEO: desarrolladores COBOL México DF

Ya tenemos la primera oferta desde Reclu-it : )


Importante empresa líder a nivel mundial busca:

Desarrolladores COBOL
Experiencia: 2 a 5 años de experiencia
Herramientas: Cobol, DB2, CICS
Ubicación: México Distrito Federal

Contrataciones por tiempo indefinido con esquema atractivo de pago.

Si estás interesado en esta posición, por favor contacta a Natalia Medina

Email: natalia.medina@reclu-it.com

Teléfono: (55) 5393-4085

miércoles, 11 de septiembre de 2013

Colaboración con Reclu-IT

Hace unos meses, comenzaron las conversaciones con uno de los responsables de la empresa mexicana de rrhh especializada en TI Reclu-IT.

Ayer por fin salió a la luz su web de estilo editorial en la que se publicarán artículos que generen valor a la industria de TI, específicamente en el área de Recursos Humanos (tendencias de la industria, proyecciones en los lenguajes de programación, etc).

Nuestro blog colaborará en este sentido aportando artículos de nuestro sector.

Periódicamente iremos publicando en el Consultorio las ofertas que nos vayan llegando desde Reclu-IT. Además crearemos un enlace permanente con las ofertas de empleo abiertas.

Podéis ver en el menú de la derecha un enlace a su web con su logo y justo debajo irá el enlace permanente a las ofertas publicadas en el Consultorio.

Esperamos que esto sea de ayuda a todos nuestros lectores "del otro lado del charco", aunque nos han comentado que aceptan candidatos españoles :P

Los que trabajamos en el sector sabemos que es de agradecer una especialización de la gente de rrhh, ya que muchas veces nos vemos impotentes al no poder hacer entender al entervistador el valor de nuestra experiencia en una u otra tecnología.

Desde Consultorio Cobol les deseamos mucha suerte a todo el equipo de Reclu-IT y a los futuros candidatos : )