Event om DOMinator och OWASP Hatkit

Jag är delaktig i OWASP Göteborg.

Den 3 november arrangerar vi vårt andra event.
Vi har lyckats locka hit både Stefano Di Paula (skaparen av DOMinator) och Martin Holst Swende (talare på DEFCON). Det kommer att bli en mycket intressant kväll.

Boka din plats på eventbrite.

Hela eventet hålls på engelska.

Annonser

Kommentering av

OWASP startar i Göteborg

OWASP (Open Web Appliaction Security Project), en ideell global organisation, som fokuserar på att öka säkerheten i mjukvara, startar nu igång verksamhet i Göteborg. Det innebär att alla i Västsverige kan komma och lyssna på intressanta seminarier om säkerhet några gånger per år.

Den första träffen är den 25 Augusti, anmälan sker via eventbrite.
http://owaspgbg-aug2011.eventbrite.com

Den första träffen innehåller
Presentation av OWASP Göteborg
Genomgång av OWASP Top 10, inklusive demo
Språkbaserad säkerhet

Kommentering av

Ninite – installerar många program vid datorinstallation

När man installerar en dator är det vissa program man alltid vill installera, såsom (för min del) firefox, chrome, opera, vlc, paint.net, flash, adobe reader, winrar, winscp, notepad++ och putty. I bästa fall har man alla program på en annan hårddisk eller på nätverket, men vill man ha den senaste versionen så måste man besöka respektive hemsida och installera. Det är mängder av dialogrutor och ett ganska mödosamt arbete.

Jag har använt ninite ett tag nu och tycker att det är ett helt suveränt program.
Du besöker ninite.com, väljer vilka program du vill ha (just nu finns det omkring 80-90 program) och laddar ner en installationsfil på ca 200kB. Sedan startar du din personliga installationsfil och helt automatiskt börjar programmet ladda ner (sena versioner) av programmen, för att efter nedladdning – helt utan dialogrutor – installera alla de program man har valt. Det är extremt smidigt. Programmet finns även för linux.

Programmet finns även i en pro-version för företag som då kostar pengar. Gratisversionen för personlig användning är helt gratis.

Deras slogan ”No toolbars or junk. No clicking Next. Just the apps you want, fast.” är helt rätt.

Kommentering av

SQL-Server 2008 R2 hänger sig var fjärde minut

Jag satt och slet mitt hår med symptomen att sql-server slutade svara på frågor var fjärde minut. Problemet varade mellan 20-60 sekunder. Därför vill jag gärna dela med mig av hur det löstes.

Systemet körde på Windows Server Enterprise Edition 2008 R2 x64 med SQL Server Enterprise Edition 2008 R2 x64. Disksystemet var 8st Samsung 100GB SSD SLC. 512MB cache i diskkontroller och 128GB ram. Processorn var två Intel X7550 med åtta kärnor.

Vi flyttade våra databaser från SQL-Server 2005 standard edition x64 med en betydligt äldre hårdvara. Alla mätningar vi gjort (med IOMeter) innan det nya systemet driftsattes pekade på att vi kunde få ut mer än dubbelt så mycket IO, jämfört med det gamla systemet.

När det nya systemet sattes igång såg allt väldigt bra ut. Låg CPU-last, låga köer på disksystemen och inga minnesproblem. Efter ett tag i takt med att det blev mer och mer last såg vi dock en tendens till att systemet hängde sig. Detta blev mer och mer allvarligt eftersom dessa hängningar gjorde att alla frågor köades upp och efter ett tag blev kön så full att databasen inte kunde ta emot fler anrop och därför fick klienterna fel.

Frågor som normalt tog 2-5 ms tog istället 10-15 sekunder.
Jag hade efter uppgraderingen byggt om alla index, uppdaterat statistiken och kompilerat om alla lagrade procedurer.

Jag körde igång flera trace mot databasen för att försöka hitta om problemet låg på någon enskild fråga som inte passade sql-server 2008 lika bra, men jag hittade inga sådana samband. Jag tittade med performance monitor för att se diskköer och se om checkpoints från databasservern kanske var orsaken till hängningarna. Men det visade sig att checkpointsen inte alls kördes samtidigt som hängningarna uppstod.

Jag visste att vi hade de senaste drivrutinerna och vi använde servertillverkarens drivrutiner. På raid-kontrollerkortet var write cache aktiverat.
Innan systemet driftsattes hade vi lagt på senaste CU till sql-server 2008 R2, samt kört windows update. Även SQL-Server Server 2008 best practice analyzer hade vi kört för att verkligen säkerställa att vi konfigurerat allt rätt.

Som start hade jag satt att SQL-Server maximalt fick utnyttja 126GB av de tillgängliga 128GB. Jag provade att sänka detta, så SQL-Server bara fick 96GB tillgängligt, för att säkerställa att det inte var windows som hade för lite resurser. Jag satte även ner max degree of parallelism till 8 för att säkerställa att det inte var enskilda processer som tog mycket CPU. Nu hade visserligen inte mina mätningar på CPU med performance monitor visat detta, men jag ville ändå dubbelkolla.

Jag kontrollerade alla inställningar när det gäller energisparläge. Allt sattes till ”maximum performance” för att säkerställa att systemet skulle leverera så mycket som möjligt.

Jag körde sp_who2 och who is active som tydligt visade att systemet hade problem (när hängningarna skedde), bland annat genom att flera hundra processer fanns i listan, jämfört med bara några få annars. Mellanperioden var det inga som helst problem. Det svåra i felsökningen var att då hängningarna inträffade så visade dessa verktyg att mycket enkla frågor skapade låsningar och deadlocks.

Slutligen visade det sig att det hela rörde sig om en bugg i windows som microsoft ännu inte har valt att släppa ut på windows update.

Buggfixen hittar ni här. Där kan man bland annat läsa ”A computer that is running Windows 7 or Windows Server 2008 R2 becomes unresponsive when you run a large application” och att hotfixen var släppt den 14 april 2010.

Jag kan inte annat än att säga att jag helt klart trodde att windows server 2008 r2 var byggt för just ”large applications”. Det är naturligtvis förödande när man lägger flera hundra tusen på licenser och trots det får man enorma problem. Som dessutom beror på en känd bugg men som de av någon anledning inte valt att lägga ut på windows update.

Jag vill också säga att vi givetvis skapade ett supportärende mot microsoft, men att de inte hade hittat någon lösning innan vi fick hjälp av Jason Massie på msdn-forumen som hade råkat ut för samma sak och därför kunde peka i rätt riktning ganska omgående.

Jag hoppas att detta inlägg kan hjälpa andra som är på väg att gå över till windows server 2008 r2 och där planerar att köra ”större applikationer”.

Kommentering av

Enterprise library långsam med ExecuteSprocAccessor

När man använder det nya verktyget i enterprise library för att automatiskt mappa properties till objekten så har jag upplevt att det blir ungefär 5 gånger långsammare jämfört med det gamla sättet med GetStoredProcCommand och ExecuteReader.

Såhär kan det exempelvis se ut:

var db = EnterpriseLibraryContainer.Current.GetInstance<Database>("connectionstring") as SqlDatabase;
var myObject = db.ExecuteSprocAccessor<MyObject>("mySP", new object[] { param1, param2 }).SingleOrDefault();

Enterprise library-teamet har dock själva insett detta och skapat möjligheter för att slippa skapa upp stored-procedure-accessorn varje gång. Det gör man med CreateSprocAccessor.

Då kan det se ut såhär:

var db = EnterpriseLibraryContainer.Current.GetInstance<Database>("connectionstring") as SqlDatabase;
if (accessor == null)
    accessor = db.CreateSprocAccessor<MyObject>("mySP");
var myObject = accessor.Execute(new object[] { param1, param2 }).SingleOrDefault();

Tänk dock på att om du ändrar antalet parametrar i din SP så måste du ladda om accessorn eftersom den är cachad.

Kommentering av

Visual studio 2010 hänger sig vid debug med iis

Jag hade problem med att debuga med visual studio 2010. Visual studio hänger sig när den byggt färdigt sajten och skall dra igång debuggern. Inget felmeddelande från visual studio eller i event loggen. Det var en riktigt tråkig hängning dessutom där den enda lösningen var att stänga av processen.

Problemet beror på att jag hade impersonation aktiverat tillsammans med integrated mode i iis 7.5.
Detta skall givetvis normalt fungera, men vi får vänta på en buggfix från microsoft. Till dess finns det tre lösningar.

  • Stäng av impersonation, när du skall debugga
  • Byt till classic mode för den aktuella application pool:en i iis
  • Anslut till processen (webbläsaren) manuellt (attach to processes via debug-menyn)

Kommentering av

Application warm-up för iis 7.5

Jag vill tipsa om ett plugin till iis 7.5 som heter application warm-up.

Comments (1)

« Newer Posts · Older Posts »