Capítulo 10. Auditoria


Certas organizações governamentais autorizam auditoria em aplicativos empresariais para garantir que os componentes de uma implantação sejam rastreáveis e operem com seus parâmetros de design. Além disso, as regulamentações e padrões governamentais requerem controles de auditoria juntamente com a auditoria do aplicativo padrão.
Os administradores de sistema podem ativar a auditoria do evento de segurança para monitorar constantemente a operação do domínio de segurança e aplicativos EJB e WEB implantados.

Importante

A auditoria do evento de segurança pode introduzir um impacto de desempenho nos servidores que gerenciam os grandes volumes de evento. A auditoria é desativada por padrão e pode ser configurada para ser disponibilizada por demanda.
A ativação da auditoria do evento de segurança difere-se entre os componentes EJB e Web. O Procedimento 10.1, “Ativação do recurso de auditoria de segurança” descreve os passos mínimos para ativação do serviço de auditoria para EJBs em sua implantação. O Procedimento 10.2, “Ativação da auditoria de segurança para recipientes da Web” descreve como ativar a auditoria de evento de segurança para recipientes da Web.

Importante

A auditoria do evento do recipiente da web pode expor a informação confidencial do usuário. Os administradores devem certificar-se que os procedimentos de proteção dos dados apropriados, tais como senha hash, são implantados quando configurando a auditoria de segurança para eventos de recipiente da Web.

Procedimento 10.1. Ativação do recurso de auditoria de segurança

  1. Abra o arquivo de configuração log4j

    Navegue ao $JBOSS_HOME/server/$PROFILE/conf/
    Abra o arquivo jboss-log4j.xml usando um editor de texto.
  2. Descomente a categoria de auditoria de segurança

    Por padrão, a definição da categoria do Provedor de Auditoria de Segurança é comentada no arquivo jboss-log4j.xml. Descomente a definição de categoria apresentada no Exemplo 10.1, “Categoria do Provedor de Auditoria de Segurança log4j”.

    Exemplo 10.1. Categoria do Provedor de Auditoria de Segurança log4j

    <?xml version="1.0" encoding="UTF-8"?>
    
    <!-- Limit the verbose MC4J EMS (lib used by admin-console) categories -->
    <category name="org.mc4j.ems">
      <priority value="WARN"/>
    </category>
       
    <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max]
    <category name="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
      <priority value="TRACE"/>
    </category>
       -->
    
    <!-- Category specifically for Security Audit Provider -->
    <category name="org.jboss.security.audit.providers.LogAuditProvider" additivity="false">
    <priority value="TRACE"/>
      <appender-ref ref="AUDIT"/>
    </category>
    
       
    <!-- Limit the org.jboss.serial (jboss-serialization) to INFO as its DEBUG is verbose -->
    <category name="org.jboss.serial">
      <priority value="INFO"/>
    </category>
    
    
    Copy to Clipboard Toggle word wrap
  3. Descomente o anexo de auditoria

    Por padrão, a definição AUDITORIA é comentada no arquivo jboss-log4j.xml. Descomente a definição do anexo apresentada no Exemplo 10.1, “Categoria do Provedor de Auditoria de Segurança log4j”.

    Exemplo 10.2. Categoria do Provedor de Auditoria de Segurança log4j

    ...
    <!--  Emit events as JMX notifications
    <appender name="JMX" class="org.jboss.monitor.services.JMXNotificationAppender">
      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
      <param name="Threshold" value="WARN"/>
      <param name="ObjectName" value="jboss.system:service=Logging,type=JMXNotificationAppender"/>
      <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d %-5p [%c] %m"/>
      </layout>
    </appender>
    -->
    
    <!-- Security AUDIT Appender -->
    <appender name="AUDIT" class="org.jboss.logging.appender.DailyRollingFileAppender">
      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
      <param name="File" value="${jboss.server.log.dir}/audit.log"/>
      <param name="Append" value="true"/>
      <param name="DatePattern" value="'.'yyyy-MM-dd"/>
      <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d %-5p [%c] (%t:%x) %m%n"/>
      </layout>
    </appender>
       
       <!-- ================ -->
       <!-- Limit categories -->
       <!-- ================ -->
    
    <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
    <category name="org.apache">
      <priority value="INFO"/>
    </category>
    ...
    
    Copy to Clipboard Toggle word wrap
  4. Salve e reinicie o servidor

    Você ativou o serviço de auditoria para sua implantação, conforme configurado no arquivo jboss-log4j.xml.
    Reinicie o servidor para garantir que a nova política de segurança seja aplicada.
  5. Verifique se a auditoria de segurança está operando corretamente

    Uma vez que o serviço de auditoria seja configurado e implantado, as entradas de log de auditoria verificarão se o serviço de auditoria e a invocação EJB foram procedidos com sucesso.
    O arquivo audit.log está localizado no diretório jboss-as/server/$PROFILE/log/.
    Uma invocação EJB processada com êxito parece-se com o seguinte resultado audit.log.

    Exemplo 10.3. Entrada de log da Invocação EJB com êxito

    2008-12-05 16:08:26,719 TRACE [org.jboss.security.audit.providers.LogAuditProvider] (http-127.0.0.1-8080-2:) [Success]policyRegistration=org.jboss.security.plugins.JBossPolicyRegistration@76ed4518; Resource:=[org.jboss.security.authorization.resources.EJBResource:contextMap={policyRegistration=org.jboss.security.plugins.JBossPolicyRegistration@76ed4518}:method=public abstract org.jboss.test.security.interfaces.RunAsServiceRemote org.jboss.test.security.interfaces.RunAsServiceRemoteHome.create() throws java.rmi.RemoteException,javax.ejb.CreateException:ejbMethodInterface=Home:ejbName=RunAs:ejbPrincipal=jduke:MethodRoles=Roles(identitySubstitutionCaller,):securityRoleReferences=null:callerSubject=Subject:
            Principal: [roles=[identitySubstitutionCaller, extraRunAsRole],principal=runAsUser]
            Principal: Roles(members:extraRunAsRole,identitySubstitutionCaller)
    :callerRunAs=[roles=[identitySubstitutionCaller, extraRunAsRole],principal=runAsUser]:callerRunAs=[roles=[identitySubstitutionCaller, extraRunAsRole],principal=runAsUser]:ejbRestrictionEnforcement=false:ejbVersion=null];Source=org.jboss.security.plugins.javaee.EJBAuthorizationHelper;Exception:=;
    Copy to Clipboard Toggle word wrap
    Uma invocação EJB processada sem êxito parece-se ao seguinte resultado audit.log.

    Exemplo 10.4. Entrada de log da Invocação EJB processada sem êxito

    [Error]policyRegistration=org.jboss.security.plugins.JBossPolicyRegistration@76ed4518;Resource:=[org.jboss.security.authorization.resources.EJBResource:contextMap={policyRegistration=org.jboss.security.plugins.JBossPolicyRegistration@76ed4518}:method=public java.security.Principal org.jboss.test.security.ejb3.SimpleStatelessSessionBean.invokeUnavailableMethod():ejbMethodInterface=Remote:ejbName=SimpleStatelessSessionBean:ejbPrincipal=UserA:MethodRoles=Roles(<NOBODY>,):securityRoleReferences=null:callerSubject=Subject:
            Principal: UserA
            Principal: Roles(members:RegularUser,Administrator)
    :callerRunAs=null:callerRunAs=null:ejbRestrictionEnforcement=false:ejbVersion=null];Source=org.jboss.security.plugins.javaee.EJBAuthorizationHelper;Exception:=Authorization Failed: ;
    Copy to Clipboard Toggle word wrap

Procedimento 10.2. Ativação da auditoria de segurança para recipientes da Web

  1. Ative a auditoria da segurança EJB

  2. Ative a auditoria no realm do servidor

    A auditoria do recipiente deve ser primeiramente ativada no realm do servidor do arquivo server.xml.
    O arquivo server.xml está localizado no diretório jboss-as/server/$PROFILE/deploy/jbossweb.sar/.
    O elemento <Realm> deve possuir o atributo enableAudit="true" configurado, conforme o Exemplo 10.5, “server.xml audit activation”.

    Exemplo 10.5. server.xml audit activation

    <Realm className="org.jboss.web.tomcat.security.JBossWebRealm" certificatePrincipal="org.jboss.security.auth.certs.SubjectDNMapping" allRolesMode="authOnly" 
    enableAudit="true"/>
    Copy to Clipboard Toggle word wrap
  3. Especifique a propriedade do sistema dos níveis de auditoria

    Os níveis de auditoria para aplicativos da Web devem ser especificados usando a propriedade do sistema org.jboss.security.web.audit no script run.bat (Microsoft Windows) ou run.sh (Linux).
    Alternativamente, você pode especificar a propriedade de sistema no arquivo jboss-as/server/$PROFILE/deploy/properties-service.xml.
    • Linux

      Adicione a propriedade de sistema no arquivo jboss-as/bin/run.sh
      ## Specify the Security Audit options
      #System Property setting to configure the web audit:
      #* off = turn it off
      #* headers = audit the headers
      #* cookies = audit the cookie
      #* parameters = audit the parameters
      #* attributes = audit the attributes
      #* headers,cookies,parameters = audit the headers,cookie and 
      #                               parameters
      #* headers,cookies = audit the headers and cookies
      JAVA_OPTS="$JAVA_OPTS -Dorg.jboss.security.web.audit=headers,cookies,parameter"
      Copy to Clipboard Toggle word wrap
    • Microsoft Windows

      Adicione a propriedade de sistema ao arquivo jboss-as/bin/run.bat
      rem Specify the Security Audit options
      rem System Property setting to configure the web audit
      rem * off = turn it off
      rem * headers = audit the headers
      rem * cookies = audit the cookie
      rem * parameters = audit the parameters
      rem * attributes = audit the attributes
      rem * headers,cookies,parameters = audit the headers,cookie and
      rem   parameters
      rem * headers,cookies = audit the headers and cookies
      set JAVA_OPTS=%JAVA_OPTS% " -Dorg.jboss.security.web.audit=headers,cookies,parameter"
      Copy to Clipboard Toggle word wrap
    • properties-service.xml

      Atualize o MBean de classe SystemPropertiesService no arquivo jboss-as/server/$PROFILE/deploy/properties-service.xml e declare a propriedade java como um <attribute>. Você pode descomentar o bloqueio do sistema de operação relevante da amostra do código abaixo.
      ...
      
      <mbean code="org.jboss.varia.property.SystemPropertiesService" 
      name="jboss:type=Service,name=SystemProperties">
      
         <!-- Linux Attribute Declaration -->
         <!--
         <attribute name="Properties">JAVA_OPTS="$JAVA_OPTS -Dorg.jboss.security.web.audit=headers,cookies,parameter"
         </attribute>
         -->
      
         <!-- Windows Attribute Declaration -->
         <!--
         <attribute name="Properties">JAVA_OPTS=%JAVA_OPTS% " -Dorg.jboss.security.web.audit=headers,cookies,parameter"
         </attribute>
         -->
      
      </mbean>
      
      ...
      Copy to Clipboard Toggle word wrap
  4. Verifique se a auditoria de segurança está operando corretamente

    Uma propriedade do sistema é especificada no arquivo, as entradas de log da auditoria verificarão se a invocação da Web foi procedida com êxito.
    O arquivo audit.log está localizado no diretório jboss-as/server/$PROFILE/log/.
    Uma invocação da Web procedida com êxito parece-se com o seguinte resultado audit.log.

    Exemplo 10.6. Entrada do log da Invocação da Web processada com êxito

    2008-12-05 16:08:38,997 TRACE [org.jboss.security.audit.providers.LogAuditProvider] (http-127.0.0.1-8080-17:) [Success]policyRegistration=org.jboss.security.plugins.JBossPolicyRegistration@76ed4518;Resource:=[org.jboss.security.authorization.resources.WebResource:contextMap={policyRegistration=org.jboss.security.plugins.JBossPolicyRegistration@76ed4518,securityConstraints=[Lorg.apache.catalina.deploy.SecurityConstraint;@6feeae6, resourcePermissionCheck=true},canonicalRequestURI=/restricted/get-only/x,request=[/web-constraints:cookies=null:headers=user-agent=Jakarta Commons-HttpClient/3.0,authorization=host=localhost:8080,][parameters=],CodeSource=null];securityConstraints=SecurityConstraint[RestrictedAccess - Get Only];Source=org.jboss.security.plugins.javaee.WebAuthorizationHelper;resourcePermissionCheck=true;Exception:=;
    Copy to Clipboard Toggle word wrap
    Uma invocação EJB processada sem êxito parece-se ao seguinte resultado audit.log.

    Exemplo 10.7. Entrada do log da Invocação da Web processada sem êxito

    2008-12-05 16:08:41,561 TRACE [org.jboss.security.audit.providers.LogAuditProvider] (http-127.0.0.1-8080-4:) [Failure]principal=anil;Source=org.jboss.web.tomcat.security.JBossWebRealm;request=[/jaspi-web-basic:cookies=null:headers=user-agent=Jakarta Commons-HttpClient/3.0,authorization=host=localhost:8080,][parameters=][attributes=];2008-12-05 16:07:30,129 TRACE [org.jboss.security.audit.providers.LogAuditProvider] (WorkerThread#1[127.0.0.1:55055]:)
    Copy to Clipboard Toggle word wrap
Voltar ao topo
Red Hat logoGithubredditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar. Explore nossas atualizações recentes.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja o Blog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

Theme

© 2025 Red Hat