onsdag 24 september 2008

John om Enterprise Security API


Ett av de stora OWASP-projekten är ESAPI, Enterprise Security Application Programming Interface. Det är Jeff Williams och hans Aspect Security som har utvecklat api:et och sen har en grupp av granskare kritiserat och utvärderat. Det hela är skrivet i Java med projekt i andra språk på gång.

Vad är det då? Jo, ett api på ca 5000 rader kod som löser det mesta under OWASP topp tio. Det är skrivet i Java 1.4 pga kundkrav men Java 6-version på gång.

Det har t.ex. färdiga klasser för validering av indata inklusive kanonikalisering. Och då snackar vi inte validering/kanonikalisering med vaniljsmak utan med alla upptänkliga kodningar och varianter.

Det har en hierarki av säkerhetsundantag, färdiga loggare, gränssnitt för säkra kakor, sessioner och objektreferenser via hashtabeller (motverkar direct object reference). Därtill löser de det typiska ramverkproblemet med att sessions-id:t inte sätts om efter autentisering.

Api:et används idag av bl.a. Oracle och förstås av en massa kunder som Jeff inte får nämna. Det hela finns under BSD-licens.

Framtiden för api:et är dels att expandera mot webbtjänster, dels att integrera med ramverk, främst Struts som ju har egna funktioner för t.ex. indatavalidering.

Jag frågade Jeff om api:et har ett någorlunda stabilt gränssnitt - viktigt om man ska våga jacka in det i sina projekt utan att få problem med underhåll så fort man uppdaterar det. Hans svar var ja, men utan att lova att inget ändras mellan versioner. Deras främsta mål är att bygga säkerhet vilket är överordnat gränssnittsstabiltitet.

Jag har tittat en del på ESAPI och måste säga att det ser förbaskat bra ut. Det är bra grejer helt enkelt. Om jag lyckas övertyga mina projektkollegor kanske vi kan integrera med ESAPI vilket i förlängningen möjliggör en konkret presentation på en av OWASP Swedens seminariekvällar.

Inga kommentarer: