OWASP AppSec Research 2010 - Stockholm, Sweden

Invitation
Ladies and Gentlemen,

In June 21-24, 2010 let's all meet in beautiful Stockholm, Sweden. The OWASP chapters in Sweden, Norway, and Denmark hereby invite you to OWASP AppSec Research 2010.

If you have any questions, please email the conference chair: john.wilander at owasp.org



Sponsors
Diamond sponsor: Position open

Gold sponsors:

Silver sponsors (1 taken, 7 open):

Lunch sponsors (1 taken, 1 open):

Coffee break sponsors (1 taken, 3 open):

For full sponsoring program see the Sponsoring tab above.

"AppSec Research".equals("AppSec Europe")
This conference was formerly known as OWASP AppSec Europe. We have added 'Research' to highlight that we invite both industry and academia. All the regular AppSec Europe visitors and topics are welcome along with contributions from universities and research institutes.

This will be the European conference for anyone interested in or working with application security. Co-host is the Department of Computer and Systems Science at Stockholm University, offering a great venue in the fabulous Aula Magna.

Countdown Challenges -- Free Tickets to Win!
There will be a challenge posted on the conference wiki page the 21st every month up until the event. The winner will get free entrance to the conference. What are you waiting for? Go to the Challenges tab and have fun!

Organizing Committee
• John Wilander, chapter leader Sweden (chair) • Mattias Bergling (vice chair) • Alan Davidson, Stockholm University/Royal Institute of Technology (co-host) • Ulf Munkedal, chapter leader Denmark • Kåre Presttun, chapter leader Norway • Stefan Pettersson (sponsoring coordinator) • Carl-Johan Bostorp (schedule and event coordinator) • Martin Holst Swende (coffee/lunch/dinner) • Predrag Mitrovic, OWASP Sweden Board • Kate Hartmann, OWASP • Sebastien Deleersnyder, OWASP Board

Welcome to Stockholm next year! Regards, John Wilander

Invited Talks


Abstract: The web browser, and associated machinery, is on the front line of attacks. We will first look at design-level problems with the traditional browser in terms of monolithic architecture and fundamental problems with the same-origin policy. We will then look at the types of solution that are starting to appear in browsers such as Google Chrome and Internet Explorer. We will look at other important browser-based defenses such as Safe Browsing. We will detail what a future browser might look like that has a much more secure design, but is still usable on the wide variety of web sites that people use daily.

Call for Papers and Proposals


1. Publish or Perish. Peer-reviewed 12 page papers to be published in formal proceedings by Springer-Verlag (Lecture Notes in Computer Science, LNCS). Presentation slides and video takes will be posted on the OWASP wiki after the conference. 2. Demo or Die. A demo proposal should consist of a pdf with a 1 page abstract summarizing the matter proposed by the speaker(s) and 1 page containing demo screenshot(s). Demos will have ordinary speaker slots but the speakers are expected to run a demo during the talk (live coding counts as a demo), not just a slideshow. Presentation slides and video takes will be posted on the OWASP wiki after the conference. 3. Present or Repent. A presentation proposal should consist of a 2 page extended abstract representing the essential matter proposed by the speaker(s). Presentation slides and video takes will be posted on the OWASP wiki after the conference.

If you have any questions regarding submissions etc, please email john.wilander@owasp.org.

Topics of Interest
We encourage the publication and presentation of new tools, new methods, empirical data, novel ideas, and lessons learned in the following areas:

•   Web application security •    Security aspects of new/emerging web technologies/paradigms (mashups, web 2.0,  offline support, etc) •    Security in web services, REST, and service oriented architectures •    Security in cloud-based services •    Security of frameworks (Struts, Spring, ASP.Net MVC etc) •    New security features in platforms or languages •    Next-generation browser security •    Security for the mobile web •    Secure application development (methods, processes etc) •    Threat modeling of applications •    Vulnerability analysis (code review, pentest, static analysis etc) •    Countermeasures for application vulnerabilities •    Metrics for application security •    Application security awareness and education

Submission Deadline and Instructions
Update: Submission deadline for full-papers ("Publish or Perish") has been extended to March 7th 23:59 (Apia, Samoa time) due to numerous requests. Submit your paper to AppSec Research 2010 (EasyChair).

Full-paper submissions should be at most 12 pages long and must be in the Springer LNCS style for "Proceedings and Other Multiauthor Volumes". Templates for preparing papers in this style for LaTeX, Word, etc can be downloaded from: http://www.springer.com/computer/lncs?SGWID=0-164-7-72376-0. Full papers must be submitted in a form suitable for anonymous review: remove author names and affiliations from the title page, and avoid explicit self-referencing in the text.

Submission for "Demo or Die" and "Present or Repent" closed on February 7th.

Decision notification: April 7th

Program Committee (for review of full-papers)
• John Wilander, Omegapoint and Linköping University (chair) • Alan Davidson, Stockholm University/Royal Institute of Technology (co-host) • Lieven Desmet, Katholieke Universiteit Leuven • Úlfar Erlingsson, Reykjavík University and Microsoft Research • Martin Johns, University of Passau • Christoph Kern, Google • Engin Kirda, Institute Eurecom • Ulf Lindqvist, SRI International • Benjamin Livshits, Microsoft Research • Sergio Maffeis, Imperial College London • John Mitchell, Stanford University • William Robertson, UC Berkeley • Andrei Sabelfeld, Chalmers UT

Call for Training
OWASP is currently soliciting training proposals for the OWASP AppSec Research 2010 Conference which will take place at Stockholm University in Sweden, on June 21st through June 24th 2010. There will be training courses on June 21st and 22nd followed by plenary sessions on the 23rd and 24th with three tracks per day.

We are seeking training proposals on the following topics (in no particular order):


 * Security in Web 2.0, Web Services/XML
 * Advanced penetration testing
 * Static analysis for security
 * Threat modeling of applications
 * Secure coding practices
 * Security in J2EE/.NET patterns and frameworks
 * Application security with ESAPI
 * OWASP tools in practice

We will look favourably on laboration-based/hands-on training.

Submission Deadline and Instructions
Submission deadline is Sunday February 7th 23:59 (Apia, Samoa time). To submit your training proposal please fill out the and email it to john.wilander@owasp.org with subject "AppSec Research 2010: Training proposal".

Upon acceptance you'll be requested to fill out the Training Instructor Agreement where you'll find details on revenue split etc. The agreement will be reworked but the previous one is here:.

Upcoming List of Trainers on OWASP Wiki
As part of the OWASP Education Project, OWASP is starting an official list of trainers on the OWASP web site. This list (mentioning the trainer - course and contact details) will cover all trainers that performed training at OWASP conferences, together with their aggregated scores on the course feedback forms. Of course, this is opt-in. Please let us know if you are interested to participate in this program (tick the check-box on the application form).

Stay Informed ... and Tell Others
Subscribe to the conference mailing list. This is the official information channel and you'll be the first to know about the program, invited speakers, opening of registration for training etc.

Add the event to your LinkedIn profle to tell all your business contacts that AppSec Research 2010 is the place to be.

Then get on the Twitter stream by using the tags #OWASP and #AppSecEU.

Conference Fees

 * Early Bird registration, February 7 - April 7: €300
 * Regular registration, April 8 and onwards: €350
 * OWASP individual members (not just chapter member): €300
 * Full-time students*: €225

* We need some kind of proof of your full-time student status. Either ask your local OWASP chapter leader to vouch for you by email to Kate.Hartmann@owasp.org, or email Kate a scanned image of your student ID (please compress the file size :).

Registration is now OPEN
Click Here To Register

Note: To save on processing expenses, all fees paid for the OWASP conference are non-refundable. OWASP can accommodate transfers of registrations from one person to another, if such an adjustment becomes necessary.

Accommodation
We are in the midst of negotiating discounted prices on accommodation in Stockholm. There will be a limited number of Stockholm's best hostel rooms (single, double, or triple). They cost €35-€55 ($50-$80) per night and person. These will be offered to full-time students firsthand. Check with john.wilander@owasp.org for availability.

Four star hotels in Stockholm typically cost €95/$130 per night for a single room. We will provide links and information on preferred hotels shortly.

Travel
Stockholm's foremost international airport is Arlanda (ARN). Clean and convenient speed trains will take you between Arlanda and Stockholm Central in 20 minutes. You can also fly to Stockholm Skavsta (NYO) or Stockholm Västerås (VST) where coaches take you to Stockholm Central in 1 h 20 min.

Sponsoring
We are now welcoming sponsors for OWASP AppSec Research 2010. Take the opportunity to support next year's major appsec event in Europe! The full sponsoring program is available as pdfs:

Sponsoring program in English:

Sponsoring program in Swedish:



Countdown Challenges -- Free Tickets to Win!
There will be a challenge posted on the conference wiki page the 21st every month up until the event. The winner will get free entrance to the conference. Be sure to sign up for the conference mailing list to get a monthly reminder.

AppSec Research Challenge 9: Crack 'Em Hashes
February's AppSec Research 2010 challenge is about breaking hashed passwords. It starts off easy with the old LM hash and ends with SHA256 and GOST3411.



How To Win The first one to publish each broken password gets points according to the table below but at the same time helps the others since the password is the salt of the next hash. So you have to decide -- should you publish your cracked password and collect your points before the others or should you keep it a secret to get a head start cracking the next one? Deadline it March 21st.

To collect points for a password you must be the first one to publish that broken password on this sla.ckers.org thread. Please send an email to john.wilander@owasp.org at the same time so we can correct any misunderstandings. For instance we can happen to run into hash collisions, where someone finds another mixed alpha password of max 5 characters that concatenated with the right salt produces the same hash. In such a case we will publish the real password and give points to the one who found the collision.

The one with the most points on March 21st wins a free ticket to the conference!

Points to Earn
 * pwd1 (LM) => 1 point
 * pwd2 (MD2) => 3 points
 * pwd3 (MD4) => 5 points
 * pwd4 (MD5) => 9 points
 * pwd5 (RIPEMD160) => 15 points
 * pwd6 (SHA1) => 25 points
 * pwd7 (SHA256) => 50 points
 * pwd8 (GOST3411) => 100 points

The Hashes Each password comprises of a-zA-Z (mixed alpha) and is max 5 characters long. With salt that means max 10 mixed alpha characters as input to the hash function. All hashes here are in hex format. The Java source code has all the details. The plus operator means string concatenation.


 * LM(pwd1)       0C04DACA901299DBAAD3B435B51404EE
 * MD2(pwd2 + pwd1)       16189F5462BF906E9D88CF6F152DE86F
 * MD4(pwd3 + pwd2)       FA8F46A6D347087D6980C3FA77DD4DE9
 * MD5(pwd4 + pwd3)       425B33D6F60394C897B8413B5C185845
 * RIPEMD160(pwd5 + pwd4) 35F34671D30472D403937820DCABC1C78C837071
 * SHA1(pwd6 + pwd5)      AE81A30510B2931921934218636B26A803330EB1
 * SHA256(pwd7 + pwd6)    B2FF0269E927C6559804A37590A0688C45DF143F85CEE0E3F239F846B65C9644
 * GOST3411(pwd8 + pwd7)  16CC9F1FF65688E040F5ADA82A41A258FF948769CDA4C4A17D85228A6F358971

Example: Given that pwd1 is "Win" and pwd2 is "You", the hash 16189F5462BF906E9D88CF6F152DE86F is the result of MD2("YouWin"). Now pwd2 will be the salt when you crack pwd3.

The Source Code The source code we've used to produce the hashes is available here zip. It's Java and all but the LM hash is done with Bouncy Castle 1.4.5.

AppSec Research Challenge 8: Construct an OWASP Polyglot
January's AppSec Research Challenge is to construct an OWASP polyglot, more specifically an OWASP logo that also can be run as JavaScript:

Show image: &lt;img src="owasp_logo.gif"&gt; Run script: &lt;script src="owasp_logo.gif"&gt;&lt;/script&gt;

Wikipedia says: "a polyglot is a computer program or script written in a valid form of multiple programming languages". This is about as cool as it gets :).

Rules


 * Make your polyglot out of the regular OWASP logo in the upper left corner of this wiki (circle with the wasp).
 * The file size must not grow.
 * Pixel colors in the gif must not differ more than 5 in red, green, or blue. Ex: If a pixel originally had rgb 100,100,100 then 104,95,96 is OK.
 * No malicious stuff of course
 * When your polyglot is run as JavaScript it should execute as many of the following features as possible, starting from the top:


 * 1) alert(all cookies belonging to the current domain);
 * 2) alert(the last keystrokes on the keyboard every ten keystrokes);
 * 3) alert(the current time in Stockholm, once every minute);
 * 4) A quine. The polyglot outputs its own source code on the HTML page.

How to get started

Jasvir Nagra gave a talk on these kind of polyglots and published a gif/JavaScript polyglot on his blog. A good starting point is his gif file. Jasvir has also written an extensive article on gif/perl polyglots which explains how to get code into the gif file. Check out his guide.

How to win

Submit your entries in this sla.ckers.org thread. Either the first complete polyglot or the most complete polyglot wins. We will most probably provide you with a gif checker that validates the color differences. Check the thread.

AppSec Research Challenge 7: X-Mas Capture the Flag
Merry Christmas everyone!

It's the 21st and a new AppSec Research Challenge is posted.

Setting up the AppSec Research 2010 X-mas Challenge was a cooperative effort by the winner of AppSec Research Challenge 3, Mario Heiderich, and Martin Holst Swende. It is a multi-step challenge which involves finding a vulnerability in a web application and locating a hidden message. The winner gets free entrance to next year's conference. Start by subscribing to the conference mailing list. Then check the simple rules below and get going.

Rules:


 * Please do not perform any resource-intensive tests, as the machine is pretty low-end and can be DoS:ed without much effort.
 * The computer at the given IP address is the only system involved in this challenge, so please do not perform any tests of neighboring systems.
 * Otherwise, you are free to hack away!

Challenge-page: 66.249.7.26

Discussions, QnA and reports about how far you have made it is welcome at the official sla.ckers thread.

Good luck and happy holidays! (And don't forget the submission deadline for the conference -- February 7)

AppSec Research Challenge 6: Design the Conference Logo
Note: This challenge is re-opened. Submit by February 21st.

November's AppSec Research 2010 Challenge asks you to design the conference logotype. So far we have used this:



... but would like something less "word processor-like".

How to win


 * The logo should be suitable for both large printing and small web banners
 * If you make a color logo, please submit a b/w version too
 * "OWASP AppSec Research 2010" should in some way be part of the logo :)

Copyright? By submitting your logo you agree to share it according to Creative Commons Attributions and that we credit you in the conference brochure and on the conference wiki but not in all places where we use the logo (i e we will not credit you on banners, sponsoring program, powerpoint presentations etc).

How to submit Email jpg + svg to john.wilander [at] owasp.org before Monday December 14th 23:59 UTC. The creator of the best logo wins a free ticket to the AppSec Research 2010 conference!

AppSec Research Challenge 5: Graphical Effects
The October OWASP AppSec Research 2010 challenge is over. The winner of a free entrance ticket to next year's AppSec conference in Stockholm is "sirdarckcat" with FireworksIsNotABrowser_v4 (although we like the slightly oversized v6 better).

The challenge was about writing the coolest graphical effect in a 2010 character script.

An Example
As an example, copy the script below and paste the script over the URL in the URL bar.

javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.getElementsByTagName("img"); DIL=DI.length; function A{for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=(Math.sin(R*x1+i*x2+x3)*x4+x5)+"px"; DIS.top=(Math.cos(R*y1+i*y2+y3)*y4+y5)+"px"}R++}setInterval('A',5); void(0)

As a simple teaser we give these png letters for the script to play with.



Rules

 * The script should work in Firefox 3.5 (yeah, that means HTML5 and CSS3 :)
 * Any resource, linked document, script, or image defined on the AppSec Research 2010 wiki page may be loaded/accessed/used
 * No requests to any other location is allowed
 * No obfuscation is allowed
 * The script may only use ASCII
 * Max length of the script is 2010 characters
 * You have to give your effect an id and a version number (further explanation below)
 * Any form of malicious code is of course banned ;)

How to Compete
There's an official thread on sla.ckers were you share your code and thoughts (Worried someone will steal you code? Check the originality bullet below). You can enter as many effects as you like but each effect has to have an id and a version number, e.g. JohnWobbler_v1.3 for version 1.3 of John's Wobbler effect. Deadline is November 14th, 23:59 UTC.

Choosing the Winner
Since this is a creative challenge the OC will choose the winner based on the following:


 * Originality (tweaking someone's code is cool and encouraged but changing a few magic numbers or inverting a function won't make you the winner)
 * Coolness (yeah, you need to convince a few Scandinavian people + Seba and Kate that your script is the coolest)

Either the OC will choose a winner by ourselves or we choose the top effects and let you guys vote for the winner.

AppSec Research Challenge 4: Who's Who in Security?
September's AppSec Research 2010 Challenge was to identify a number of people that are, in one way or another, known in the security business, by their picture. There were thirteen photos in total, portraiting thirteen different individuals.

The winner of a free ticket to the OWASP AppSec Research conference in 2010 was Thomas Vollstädt who submitted the correct solution just one day after the challenge was posted.

The Names
Dinis Cruz, Gordon "Fyodor" Lyon, David Litchfield, Dave Aitel, Bruce Schneier, Dave Wichers, Gene Spafford, MafiaBoy, MySpace Samy, Tom Brennan, Halvar Flake, Alex Sotirov, Jeff Williams, Jennifer Granick, Kate Hartmann, Mudge, Lance Spitzner, Dan Kaminsky, Brian Chess, Joanna Rutkowska, Crispin Cowan, Michael Howard, Jay Beale, Ross Anderson, Dawn Song, Robert "rsnake" Hansen, and Solar Designer.

The Pictures
If you'd like to see the original pictures without the names, here's the link:

AppSec Research Challenge 3: Non-Alphanumeric JavaScript
The August AppSec Research 2010 Challenge was to create a JavaScript alert("owasp") that pops up the word 'owasp', case-insensitive, without using any alphanumeric characters (0-9a-zA-Z). There was a tremendous activity and we want to thank everyone who participated. The size of the final result was almost a third of the first entry (see chart below). '''Want to check out the winning snippet by .mario? Enter the following in the Firebug console': ω=[[Ṫ,Ŕ,,É,,Á,Ĺ,Ś,,,Ó,Ḃ]=!+[!{}]+{}][Ś+Ó+Ŕ+Ṫ],ω[Á+Ĺ+É+Ŕ+Ṫ](Ó+ω[Ḃ+Ṫ+Ó+Á]('Á«)'))

It is based on a few different ideas. First of all, a variable assignment on the form

[a,b,c,,e]="abcde" // a="a", c="c",e="e"

Which is performed on the string "truefalse[object Object]"

[Ṫ,Ŕ,,É,,Á,Ĺ,Ś,,,Ó,Ḃ]=!''+[!{}]+{}] // right-hand side is "truefalse[object Object]"

Also, the following construction obtains the window.sort-function, which leaks the window-object when called without arguments :

ω=[]["sort"] //ω is now window.sort

Therefore, calling ω["alert"] invokes window.alert. To generate the string "owasp", the string "wasp" can be obtained by calling btoa on the characters "Á«)".

This was really a great team effort, and I think a lot of us learned some new tricks. The final winner was .mario. Congratulations!



JavaScript Without Alphanumeric Characters?
It is possible to write valid javascript completely without alphannumeric characters (0-9a-zA-Z). To produce a number, you can instead use for example an empty string, , interpret it as a boolean with a bang: ! -- which leads to the boolean object true. true, interpreted as a numeric value, equals one. Thus,

$ = +!''; // $ === 1

$++;$++; // $ === 3

In a similar fashion, strings can be created from strings embedded in the language. The boolean object true can be converted to string by concatenation, and then accessed by numeric index to, for example, produce the letter 'e' :

â = (!+)[$] // â[$] === "true"[3] === e

Previous Similar Contest
These two techniques are behind a previous contest at the forum "sla.ckers.org", where the contest was to create alert(1) with as few non-alphanumeric characters as possible. Currently, the code actually being executed was:

([],"sort")["alert"](1) // since ([],"sort") leaks window object in FF, ==&gt; window["alert"](1) is called, which is another form of window.alert(1)

The winner, or at least current leading entry is 84 bytes long, and looks like this:

(Å='',[Į=!(ĩ=!Å+Å)+{}][Į[Š=ĩ[++Å]+ĩ[Å-Å],Č=Å-~Å]+Į[Č+Č]+Š])[Į[Å]+Į[Å+Å]+ĩ[Č]+Š](Å)

The Challenge
August's challenge was to, in a similar fashion, create an alert("owasp"), case-insensitive, not using any alphanumeric characters. The shortest working code snippet submitted by September 18th 23:59:59 UTC won a free ticket. By "working" we meant JavaScript that executes in Firefox/Firebug, not depending on any Firebug DOM variables for execution.

Submissions were made as comments to the challenge 3 blogpost on Owasp Sweden. Check it out.

AppSec Research Challenge 2: OWASP Crossword Puzzle
July's crossword challenge is over. Many permutations arrived in our inbox but it was tricky to get it completely right. Congratulations to Johannes Dahse and Johan Nilsson who in the end were allowed to join forces to be able to find the correct solution. They win a 50 % conference ticket discount each.

You find the solution below.



AppSec Research Challenge 1: Input Validation and Regular Expressions
This challenge is over. The winner was Partik Nordlén. To see the solution(s), please visit the appsec_eu_2010 mailing list archive.

Some people, when confronted with a problem, think “I know, I'll use regular expressions.” Now they have two problems.        --Jamie Zawinski, in comp.emacs.xemacs

The 21st of each month up until the conference in June 2010 we'll have a countdown challenge posted here. The winner each month will get a free entrance ticket worth about €300/$400. Be sure to sign up for the conference mailing list to get a monthly reminder.

The Challenge
A community is hosted on a very large domain, yahoogle.com. The users of that community all have profiles, where they are allowed to use basic HTML for customization, as well as JavaScript files hosted on the domain.

All the code for the profile pages are filtered on the server side, and whenever a piece of code containing "&lt;script..." is encountered, the following regular expression is used to validate that the script loaded is hosted on a subdomain of yahoogle.com:

.*(&lt;script){1}([^&gt;]+)src=('http:\/\/[a-zA-Z]+.yahoogle.com\/scripts\/[0-9A-Za-z]+\.js').*\/&gt;

Capture group 3 is then also checked against a whitelist of allowed scripts on that domain. The whitelist consists of "http://secure.yahoogle.com" and "http://scripts.yahoogle.com".

Your task is to formulate a snippet of HTML that goes correctly through the filter and the whitelist, but loads the script "http://insecure.com/evil.js" instead. Also, rework the regular expression to defend against your "attack".

Email your solution to Martin Holst Swende &lt;martin.holst_swende@owasp.org&gt;. The first correct answer wins a free ticket to the conference. The free ticket is personal and the judgement of the organizing committee can not be overruled :).