Monday, September 17, 2007

Is Acegi een J2EE security framework?

Ik ben voor OWASP druk bezig met het OWASP Java Project waar ik probeer om de OWASP Top 10 2007 te herschrijven naar Java. Natuurlijk heb ik nu een paar bemerkingen die ik wil delen.

Spring maakt gebruik van Acegi en dus noemt Acegi nu Spring Security. Veel informatie is er niet te vinden, maar Acegi is eigenlijk een authorisatie-filter die toegang geeft tot URLs of niet. Acegi kijkt dus of je een geauthenticeerde sessie hebt en of je de toelating hebt om een bepaalde URL te openen. Hmmmm.... De ervaring leert mij dat ontwikkelaars en beheerders niet de gewoonte hebben om 2 verschillende applicaties en URLs te gebruiken voor hetzelfde doel. Dit betekent dat meestal een gebruiker en een beheerder inloggen op dezelfde applicatie en site. Dus dan wordt het moeilijk om granulaire authorisatie regels te definiëren. Hiermee moet men dus van in het begin rekening houden.

Maar wat ik mis in een dergelijk "security framework" is een rudimentaire beveiliging tegen typische aanvallen.
Voor mij moet een security framework (J2EE, PHP of .NET of ...) tot volgende zaken bevatten:
- authenticatie, liefst met sterke authenticatie
- authorisatie, op URL en objectniveau en eenvoudig te configureren en niet programmeren
- input validatie geïntegreerd met een deftige audit logging
- output encoding
- audit trail
- positieve security
- encapsulation van identiteit en propagation van identiteit

Ik ben nog altijd op zoek naar een J2EE applicatie die 3 van bovenstaande punten bevat!

Commentaar is meer dan welkom

3 comments:

Marinus J. Kuivenhoven said...

Ben je bekend met HDIV? Versie 2.0 is net uit.

http://www.hdiv.org/index.htm

"We can briefly define HDIV as a Java Web Application Security Framework. HDIV extends web applications’ behaviour by adding Security functionalities, maintaining the API and the framework specification"

Erwin Geirnaert said...

Heel toevallig kreeg ik dezelfde dag een e-mail vanop de OWASP Java mailing list.
HDIV ziet er interessant uit, voornamelijk de tamper-beveiliging.
Jammer genoeg moet je die integreren met het applicatie MVC(Spring, Struts en JSF) en kan je die niet integreren met de web container (wat het leven wat eenvoudiger maakt)

arnold said...

Heb je inmiddels een java oplossing gevonden die wel aansluit bij je lijst van wensen?