~/talk

The Code Behind The Vulnerability

Talkat NDC Sydney 2017 · 2017-08-14..08-18· [security]
slides:none on file

Covers four real Microsoft security bulletins and live demos: a 2011 hash collision DoS fixed by per-process randomized string hashing; a padding oracle against ScriptResource.axd that exposes web.config and machineKey leading to cookie forgery, fixed by HMAC signing; viewstate binary deserialization that deletes files and allows RCE, fixed by mandatory signatures; and catastrophic regex backtracking causing infinite CPU. Includes concrete fixes: use HMACs, unique IVs, avoid BinaryFormatter/unsafe JSON settings, set regex timeouts, treat encoding as context specific, and never publish signing keys.

AI-written summary · about

  1. 0:00Start
  2. 5:52Hash Dos (MS11-100) A Denial of Service caused by parsing FORM inputs. Caused by Hash Table and Dictionary using a predictable hash algorithm for string keys. Fixed by switching hash functions to one that is unpredictable or limiting dictionary size.
  3. 12:00DIY Hash Dos Dictionary fix only applies to string keys. If you allow user input into a hash based collection which has a key which isn't string and your GetHashcode() algorithm for the key class is predictable then you are vulnerable...
  4. 13:12Padding Oracle (MS10-070) Information disclosure via cryptographic attack An endocint was exposed which validated if a string was encrypted correctly The attacker could use the yes or no result to buid properly encrypted strings without knowing the key
  5. 42:44Mass assignments MVC & WebApi use binders. Binders take input and map to object properties
  6. 54:40In summary Sign your data, even when it's encrypted Don't use regular expressions Opt-in to new protections Don't opt out of protections Strictly limit your inputs
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.