onsdag 30 mars 2011

USA/NIST släpper 59.000 sårbara kodexempel i Java och C/C++

Jeff Williams, ordförande i OWASP har lyckats övertyga mydigheter i USA att tillgängliggöra de sårbara kodexempel de använder för att utvärdera analys- och skanningsverktyg.

13.782 testfall i Java som täcker 106 CWE:er
45.309 testfall i C/C++ som täcker 116 CWE:er

Kodexemplen hittar ni här.

lördag 26 mars 2011

Intervju om Firefox 4 och webbläsarsäkerhet

Chaouki Bekrar, VD och forskningschef för Vupen, och jag intervjuades av SecurityVibes gällande nya säkerhetsfeatures i Firefox 4 och hur Firefox står sig säkerhetsmässigt jämfört med andra webbläsare. Intervjun finns här.

torsdag 24 mars 2011

Allt går att hacka (RSA, Comodo, TripAdvisor)

De senaste två veckorna har varit bedrövliga ur säkerhetssynpunkt.

RSA
Först var det RSA-hacket som Schneier kommenterade med att "Security is all about trust, and when trust is lost there is no security. User's of SecurID trusted RSA Data Security, Inc. to protect the secrets necessary to secure that system. To the extent they did not, the company has lost its customers' trust."

RSA själva har mest ägnat sig åt allmänna råd och vaga uttalanden. Därtill definierar de attacken med "... the attack is in the category of an Advanced Persistent Threat (APT)."

Comodo
Sen var det Comodo, en av våra betrodda CAs för SSL-certifikat som blev hackade. Jacob Applebaum upptäckte det genom svartlistade cert i en Chromium-uppdatering och förövarna hade skapat fullt legitima cert för:
  • login.live.com
  • mail.google.com
  • www.google.com
  • login.yahoo.com (3 certifikat)
  • login.skype.com
  • addons.mozilla.org
  • "Global Trustee"
Media och en del säkerhetsfolk har benämnt dessa certifikat som fejkade. Det är inga fejkade certifikat. Det är fullt korrekta certifikat signerade av en betrodd CA. Enligt Comodo själva finns tecken på att attacken kom från Iran: "The IP address of the initial attack was recorded and has been determined to be assigned to an ISP in Iran".

Comodo kommenterar attacken med "The perpetrator has executed its attacks with clinical accuracy."

TripAdvisor
Nu senast var det TripAdvisor som drabbats av intrång och i ett mejl till alla användare så berättar de lite grann.

Slutsatser
Dessa hack får mig att tänka på två saker:

1) Allt går att hacka. Särskilt om det är kopplat till Internet. När ska vi våga prata om det offentligt? Hur länge håller argumentet att "vanligt folk fattar inte, låt oss inte skrämma upp dem"?

2) Vi lever fortfarande i en tid då mörkläggning och dimridåer anses vara rimliga alternativ när ett intrång har skett. Därtill har man nu lagt möjligheten att säga att intrånget var så pass avancerat att man inte kunde skydda sig. Undrar hur länge vi kommer acceptera sådana förklaringar utan bevis?

onsdag 9 mars 2011

Material från Mario Heiderichs föredrag

Mario Heiderich gav två väldigt uppskattade föredrag på OWASP Sweden-kvällen 7/3:
  1. The Image That Called Me (pdf) – om SVG-säkerhet
  2. Locking the Throneroom (pdf) – om att låsa ner DOM:en för att motverka XSS-attacker
Han använde också ett trevligt litet markupverktyg för att dema olika XSS-brister i webbläsare. Det är bara två textfält – i det övre matar du in din markup och i det nedre visas hur webbläsaren tolkar det, dvs det som faktiskt kommer att renderas.

Verktyget är nedanstående HTML. Bara att spara i en lokal fil och köra.

<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=utf-8" />
</head>
<body>
<textarea id="html" style="width:100%;height:190px;"></textarea>
<div id="canvas"></div>
<textarea id="log" style="width:100%;height:190px;"></textarea>
<div id="canvas2"></div>
<script>
var html = document.getElementById('html');
var log = document.getElementById('log');
var canvas = document.getElementById('canvas');
var canvas2 = document.getElementById('canvas2');
var updateCanvas = function(){
    canvas.innerHTML=html.value
    log.value=canvas.innerHTML;
    canvas2.innerHTML=canvas.innerHTML;
};
html.onkeyup = updateCanvas;
window.onload = updateCanvas;
</script>
</body>
</html>