Capítulo 10. Auditoria
Importante
Importante
Procedimento 10.1. Ativação do recurso de auditoria de segurança
Abra o arquivo de configuração log4j
Navegue ao$JBOSS_HOME/server/$PROFILE/conf/
Abra o arquivojboss-log4j.xml
usando um editor de texto.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 arquivojboss-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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Descomente o anexo de auditoria
Por padrão, a definição AUDITORIA é comentada no arquivojboss-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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Salve e reinicie o servidor
Você ativou o serviço de auditoria para sua implantação, conforme configurado no arquivojboss-log4j.xml
.Reinicie o servidor para garantir que a nova política de segurança seja aplicada.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 arquivoaudit.log
está localizado no diretóriojboss-as/server/$PROFILE/log/
.Uma invocação EJB processada com êxito parece-se com o seguinte resultadoaudit.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:=;
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 Copied! Toggle word wrap Toggle overflow Uma invocação EJB processada sem êxito parece-se ao seguinte resultadoaudit.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: ;
[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 Copied! Toggle word wrap Toggle overflow
Procedimento 10.2. Ativação da auditoria de segurança para recipientes da Web
Ative a auditoria da segurança EJB
Você deve ativar a segurança descrita no Procedimento 10.1, “Ativação do recurso de auditoria de segurança”.Ative a auditoria no realm do servidor
A auditoria do recipiente deve ser primeiramente ativada no realm do servidor do arquivoserver.xml
.O arquivoserver.xml
está localizado no diretóriojboss-as/server/$PROFILE/deploy/jbossweb.sar/
.O elemento<Realm>
deve possuir o atributoenableAudit="
configurado, conforme o Exemplo 10.5, “server.xml audit activation”.true
"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"/>
<Realm className="org.jboss.web.tomcat.security.JBossWebRealm" certificatePrincipal="org.jboss.security.auth.certs.SubjectDNMapping" allRolesMode="authOnly" enableAudit="true"/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 scriptrun.bat
(Microsoft Windows) ourun.sh
(Linux).Alternativamente, você pode especificar a propriedade de sistema no arquivojboss-as/server/$PROFILE/deploy/properties-service.xml
.Linux
Adicione a propriedade de sistema no arquivojboss-as/bin/run.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Microsoft Windows
Adicione a propriedade de sistema ao arquivojboss-as/bin/run.bat
Copy to Clipboard Copied! Toggle word wrap Toggle overflow properties-service.xml
Atualize o MBean de classeSystemPropertiesService
no arquivojboss-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.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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 arquivoaudit.log
está localizado no diretóriojboss-as/server/$PROFILE/log/
.Uma invocação da Web procedida com êxito parece-se com o seguinte resultadoaudit.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:=;
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 Copied! Toggle word wrap Toggle overflow Uma invocação EJB processada sem êxito parece-se ao seguinte resultadoaudit.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]:)
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 Copied! Toggle word wrap Toggle overflow