Documentación

Este documento se ha migrado desde el original: Documentación/5 Manuales y documentación técnica/Documentación técnica/Guías y ayudas/SGM_2012_10_Antivirus.pdf en https://github.com/e-admin/alsigm/releases/download/Documentacion/Documentacion_ALSIGM_3.0.rar

Introducción

Visión general del sistema

AL SIGM es la plataforma de Tramitación Electrónica del MINETUR, solución integral para la tramitación electrónica de los procedimientos administrativos, que fomenta la interoperabilidad entre administraciones mediante su adaptación a estándares de comunicación así como la reutilización de recursos e información pública.

Finalidad del documento

Este documento tiene por objeto explicar la funcionalidad de Antivirus ofrecida por el módulo de Registro Telemático para escanear los documentos entregados por un ciudadano durante un trámite electrónico

Definiciones y Abreviaturas

A continuación se expone una tabla con los diferentes acrónimos y abreviaturas utilizados a lo largo del documento, con su correspondiente definición.

Acrónimo / Abreviatura Definición
MINETUR Ministerio de Industria, Energía y Turismo
IECISA Informática El Corte Inglés S.A.
SIGM Sistema Integrado de Gestión de Expedientes Modular
AL Administración Local

Funcionamiento

La funcionalidad de Antivirus permite que los documentos presentados por registro telemático sean chequeados a través de una clase conectora encargada de comunicarse con un software antivirus para detectar si un documento se encuentra infectado.

En caso de que dicha funcionalidad se encuentre activada cuando un trámite telemático es presentado, en el XML que contiene la información del registro se recoge como ha sido el resultado del chequeo del documento:

El documento no presenta infección:

<Documento>
...
  <Antivirus>OK</Antivirus>
</Documento>

El documento se encuentra infectado:

<Documento>
...
  <Antivirus>VIRUS</Antivirus>
</Documento>

Aquellos documentos en los que se detecte infección no serán almacenados en el sistema.

El funcionamiento anterior no es configurable, el sistema siempre trabajará del mismo modo ante la aparición de un documento con virus. Sin embargo es posible indicar si se debe de iniciar un expediente en el módulo de tramitación de expedientes aún cuando algún documento tenga virus. Esto es posible desde el fichero struts-config.xml

<set-property property="iniciarExpedienteConVirus" value="true" />

Configuración de la funcionalidad Antivirus

La clase conectora que se utiliza para comunicarse con el software antivirus se configura en el fichero SIGEM_spring.xml que se encuentra dentro del fichero sigem_core.jar utilizado por las aplicaciones de Registro Telemático:

  • SIGEM_RegistroTelematicoWeb.war
  • SIGEM_RegistroTelematicoWS.war

La configuración por defecto mantiene la funcionalidad antivirus desactivada:

<!-- ************************************************************* -->
<!-- ********* SERVICIO DE ANTIVIRUS ****************************** -->
<!-- ************************************************************* -->
<alias name="&ANTIVIRUS;.&SIGEM;.&API;"
       alias="ANTIVIRUS_SERVICE_DEFAULT_IMPL"/>

<bean abstract="true" id="&ANTIVIRUS;"
      class="ieci.tecdoc.sgm.core.services.antivirus.ServicioAntivirus">
</bean>

<bean id="&ANTIVIRUS;.&SIGEM;.&API;"
      class="ieci.tecdoc.sgm.antivirus.NoAntivirus" parent="&ANTIVIRUS;" lazyinit="true">
  <property name="rutaAntivirus" value=""/>
  <property name="parametros" value=""/>
  <property name="rutaTemporal" value=""/>
</bean>

La activación de la funcionalidad de antivirus supone la implementación de una clase conectora y la modificación del XML anterior.

Con la distribución de SIGEM se suministra un conector de ejemplo para comunicarse con el software McAFee bajo un entorno Windows.

A continuación se muestra la configuración necesaria para utilizar el conector implementado en la clase ieci.tecdoc.sgm.antivirus.mcafee.AntivirusMcAFee

<!-- ************************************************************* -->
<!-- ********* SERVICIO DE ANTIVIRUS ****************************** -->
<!-- ************************************************************* -->
<alias name="&ANTIVIRUS;.&SIGEM;.&API;"
       alias="ANTIVIRUS_SERVICE_DEFAULT_IMPL"/>

<bean abstract="true" id="&ANTIVIRUS;"
      class="ieci.tecdoc.sgm.core.services.antivirus.ServicioAntivirus">
</bean>

<bean id="&ANTIVIRUS;.&SIGEM;.&API;"
      class="ieci.tecdoc.sgm.antivirus.mcafee.AntivirusMcAFee"
      parent="&ANTIVIRUS;" lazy-init="true">
  <property name="rutaAntivirus" value="c:/Archivos de Programa/McAfee/VirusScan Enterprise/scan32.exe"/>
  <property name="parametros" value="/UINONE /ARCHIVE"/>
  <property name="rutaTemporal" value="c:/Compartido/Antivirus Prueba/"/>
</bean>

Los conectores tienen tres parámetros de configuración:

  • rutaAntivirus: Ruta hacia el fichero ejecutable del software antivirus.
  • parámetros: Parámetros a pasar al fichero ejecutable para indicarle que debe escáner un fichero en línea de comandos.
  • rutaTemporal: Carpeta temporal

Creación de un conector con Antivirus

La implementación de una clase conectora de antivirus debe extender la clase ieci.tecdoc.sgm.antivirus.Antivirus e implementar el interface ieci.tecdoc.sgm.core.services.antivirus.ServicioAntivirus.

Un ejemplo sería:

public class AntivirusMcAFee extends Antivirus implements ServicioAntivirus {

  protected boolean comprobarFichero(String rutaFichero) throws AntivirusException {
    File f = new File(rutaFichero);

    if (f.exists()) {
      f = null;

      //preparación de la linea de comandos
      cmd = new String[3];
      cmd[0] = getRutaAnivirus();
      cmd[1] = getParametros();
      cmd[2] = "\"" + rutaFichero + "\"";

      //ejecución de la linea de comandos:retorna 0 si la ejecución ha sido correcta(tenga virus o no)
      int retorno = ejecucionAntivirus();
      switch (retorno) {
        case 0:
          //si el fichero existe es q no lo movio o borro=> NO TIENE VIRUS
          f = new File(rutaFichero);
          if (f.exists()) {
             return true;
          } else {
             return false;
          }
        default:
          throw new AntivirusException(AntivirusException.EXC_EJECUCION_NO_VALIDA);
      }
    } else {
      throw new AntivirusException(AntivirusException.EXC_FICHERO_NO_ENCONTRADO);
    }
  }
}

El método comprobarFichero deberá retornar un booleano con valor TRUE si el fichero no tiene virus y valor FALSE en caso contrario.

Durante la ejecución del método es posible lanzar una excepción ieci.tecdoc.sgm.core.services.antivirus.AntivirusException, en ese caso se considera que el chequeo del fichero no ha podido realizarse y el sistema trabajará como si la funcionalidad de antivirus estuviese desactivada.