fredag 8 januari 2010

Burp Suite v1.3 släppt

Http/https-proxyn Burp Suite v1.3 finns nu tillgänglig för nedladdning. Ett uppskattat verktyg bland många av mina pentestarvänner (både gratis- och betalversionen).

Så här beskriver de sina nya features:
  • A new message editor/viewer optimised for HTTP requests and responses, with colourised syntax, mouse-over decoding, and quick conversion functions.
  • Facility to add comments and highlights to the proxy history and site map.
  • Support for viewing and editing AMF-encoded messages.
  • Improved handling of SSL server certificates, to eliminate browser SSL warnings and connection problems with thick clients.
  • Copy to file / paste from file to facilitate working with binary content.
  • New display filters.
  • Greatly enhanced extensibility.
  • Configurable DNS resolution, to override your computer's own resolution, facilitating work with non-proxy-aware clients.
  • Fine-grained upstream proxy rules.
  • Exporting of HTTP messages and metadata in XML format.
Alternativ? Ja, det finns OWASP WebScarab, OWASP WebScarab Next Generation (ej klar) och Paros Proxy. Kommentera gärna om det är något verktyg som borde vara med på listan eller om ni har någon åsikt om de fyra jag nämnt.

torsdag 7 januari 2010

Säkerhet i Java EE 6, HttpServletRequest

Jag har kollat lite på HttpServletRequest-API:et i nya Java EE 6 och dess stöd för autentisering.

Fyra sorters autentisering
Man konfigurerar en autentiseringsmetod för sin servlet-kontext. Alla JEE 6-containers stödjer:
  • Basic Authentication, BASIC_AUTH
  • Formulärbaserad autentisering, FORM_AUTH
  • Autentisering med klientcertifikat (2-vägs-SSL), CLIENT_CERT_AUTH
Digest Authentication, DIGEST_AUTH, anses fortfarande vara för ovanligt och behöver därför inte stödjas. Snacka om dödlig låsning. Digest Authentication har ju hela tiden varit tänkt som steget bort från Basic Authentication och är i grund och botten inloggning med saltad MD5-hash där klient och server väljer varsitt salt. Synd att det inte blev ett krav.

HttpServletRequest 3.0 innehåller tre nya säkerhetsmetoder: authenticate(), login() och logout(). Så här fungerar de:

Autenticate
boolean authenticate(HttpServletResponse response) throws IOException, ServletException

Kollar om användaren är autentiserad. Helt enkelt ett sätt att införa accesskontroll på sin servlet. Den returerar true om getUserPrincipal(), getRemoteUser(), och getAuthType() är satta, dvs inte returnerar null. Returnerar false om autentisering misslyckades och en felsida har skapats i response-objektet.

Kastar en ServletException om autentisering misslyckades och anroparen ska hantera felet.

Login
void login(String username, String password) throws ServletException

Inloggningsmetoden. Kontrollerar användarnamn och lösenord enligt den autentiseringsmetod som konfigurerats för containern. Om den här metoden returnerar (dvs inte kastar ett undantag) så måste värden vara satta så att getUserPrincipal(), getRemoteUser(), och getAuthType() inte returnerar null.

Kastar en ServletException om den konfigurerade autentiseringen inte accepterar användarnamn/lösenord (t ex klientcertifikat), om användaren redan är inloggad, eller om inloggningen misslyckades (t ex fel lösenord).

Logout
void logout() throws ServletException

Ser till att getUserPrincipal(), getRemoteUser(), och getAuthType()returnerar null. Kastar en ServletException om utloggningen misslyckades.

Sen finns förstås de gamla metoderna som stöd:
  • String getAuthType()
  • String getRemoteUser()
  • boolean isUserInRole(String role)
  • Principal getUserPrincipal()

(Inpirationen till att skriva om det här fick jag från Ramesh Nagappan på Sun som precis har bloggat om några av säkerhetsnyheterna i Java EE 6, bl a HttpServletRequest. Ramesh har en del intressant exempelkod i sitt blogginlägg.)

onsdag 6 januari 2010

Mappning WASC Threats - OWASP Top 10

Jeremiah Grossman och Bil Corry har förtjänstfullt mappat WASC Threat Classification 2.0 till OWASP Top 10 rc1. Läs deras blogginlägg och tillhörande diskussion här.

Mappningen:

tisdag 5 januari 2010

Stämning mot RockYou efter SQL injection

Jag bloggade för ett par dagar sen om 32 miljoner stulna konton hos RockYou.

I kölvattnet stämmer nu en av användarna RockYou. Det blir med största sannolikhet USAs första stämning rörande SQL injection och okrypterad lagring av lösenord utan att kreditkortsnummer är inblandade.

Om RockYou fälls ändras villkoren för mjukvarubranschen -- det är en allvarlig försummelse att missa två av tio på OWASP Top 10. Oavsett om man lyder under PCI-DSS eller inte.

"An Indiana resident has sued application developer RockYou for an alleged security breach that exposed 32 million users' email addresses and passwords and social networking log-ins.

- While some security threats are unavoidable in a rapidly developing technological environment, RockYou recklessly and knowingly failed to take even the most basic steps to protect its users."

måndag 4 januari 2010

Säkerhet i SharePoint/MOSS

OWASP har dragit igång ett SharePoint-initiativ. Till att börja med är det en sammanfattning av länktips från diskussioner på en av OWASP-listorna. Ta del av dem och bidra gärna själva!

lördag 2 januari 2010

Framtiden här ... för SpamAssassin

Antispamfiltret SpamAssassin har råkat ut för en 2010-bugg. Filtret var satt att spammarkera mejl som skickats "... grossly in the future". Det var bara det att framtiden hade hårdkodats och började 2010.

Regeln såg ut så här:

header FH_DATE_PAST_20XX Date =~ /20[1-9][0-9]/ [if-unset: 2006]
describe FH_DATE_PAST_20XX The date is grossly in the future.

Alla mejl som skickats 2010 och framåt får 3,4 "spampoäng" extra vilket kommer skicka en hel del legitim e-post ner i skräpkorgen. En fix har kommit men fram tills den är installerad så bör ni kolla om ni förlorat något (dvs om ni kör SpamAssassin).

Fixen i sig är lite rolig den med:

header FH_DATE_PAST_20XX Date =~ /20[2-9][0-9]/ [if-unset: 2006]
describe FH_DATE_PAST_20XX The date is grossly in the future.

Hoppas de kommer ihåg att fixa det ordentligt till 2020 nu bara :).

WASC Threat Classification v2.0

WASC (The Web Application Security Consortium) har precis släppt version 2.0 av sin hot-kategorisering: WASC Threat Classification. Det är ett bra referensmaterial för säkerhetsrapporter eller presentationer och innehåller beskrivningar och exempel på hot och attacker.

Här är den övergripande kategoriseringen:

AttacksWeaknesses
Abuse of FunctionalityApplication Misconfiguration
Brute ForceDirectory Indexing
Buffer OverflowImproper Filesystem Permissions
Content SpoofingImproper Input Handling
Credential/Session PredictionImproper Output Handling
Cross-Site ScriptingInformation Leakage
Cross-Site Request ForgeryInsecure Indexing
Denial of ServiceInsufficient Anti-automation
FingerprintingInsufficient Authentication
Format StringInsufficient Authorization
HTTP Response SmugglingInsufficient Password Recovery
HTTP Response SplittingInsufficient Process Validation
HTTP Request SmugglingInsufficient Session Expiration
HTTP Request SplittingInsufficient Transport Layer Protection
Integer OverflowsServer Misconfiguration
LDAP Injection
Mail Command Injection
Null Byte Injection
OS Commanding
Path Traversal
Predictable Resource Location
Remote File Inclusion (RFI)
Routing Detour
Session Fixation
SOAP Array Abuse
SSI Injection
SQL Injection
URL Redirector Abuse
XPath Injection
XML Attribute Blowup
XML External Entities
XML Entity Expansion
XML Injection
XQuery Injection