Articles
2023
2022
2021
2020
- 02 August 2020 » Orange FTTH on a custom router
- 18 June 2020 » Why is there a "V" in SIGSEGV Segmentation Fault?
- 29 March 2020 » Moral compass: In praise of openness
- 02 March 2020 » mmuniq: When Bloom filters don't bloom
2019
- 06 December 2019 » Addressing
- 06 November 2019 » Creating sockets
- 30 September 2019 » TCP Puzzles 1-2
- 20 September 2019 » When TCP sockets refuse to die
- 10 July 2019 » A gentle introduction to Linux Kernel fuzzing
- 18 May 2019 » Cloudflare architecture and how BPF eats the world
- 15 March 2019 » RFC8482 - Saying goodbye to DNS ANY
- 18 February 2019 » SOCKMAP - TCP splicing of the future
- 04 January 2019 » io_submit - The epoll alternative
2018
- 23 November 2018 » Every 7.8us your memory has a hiccup
- 12 November 2018 » The rise of multivector attacks
- 10 September 2018 » Why we are bumping the IPv6 MTU
- 06 July 2018 » How to drop 10 million packets
- 01 June 2018 » Today we mitigated the resolver
- 17 April 2018 » mmproxy - creative linux routing hack
- 12 April 2018 » Using TPROXY for Spectrum product
- 29 March 2018 » Sockets, Hop Distance and writing eBPF assembly
- 06 March 2018 » The real cause of large DDoS - IP Spoofing
- 27 February 2018 » Memcrashed - Amplification attacks from 11211/UDP
- 26 January 2018 » IP Spoofing at Packet Hacking Village
- 15 January 2018 » SYN packet handling
2017
- 22 December 2017 » 5 talks in 5 weeks
- 06 November 2017 » Perfect locality and three SystemTap scripts
- 24 October 2017 » The sad state of Linux socket blancing
- 25 September 2017 » Meet Gatebot - a bot that allows us to sleep
- 18 August 2017 » IP fragmentation is fundamentally broken
- 29 June 2017 » SSDP attack crossing 100Gbps
- 25 May 2017 » Reflections on reflection (attacks)
- 28 March 2017 » Sandboxing landscape
- 20 March 2017 » Epoll is fundamentally broken 2/2
- 23 February 2017 » Socket API thoughts
- 20 February 2017 » Epoll is fundamentally broken 1/2
- 06 January 2017 » Select is fundamentally broken
2016
- 05 December 2016 » TLD glue sticks around too long
- 01 November 2016 » A brief history of select(2)
- 12 October 2016 » Say Cheese: DDoS from IoT devices
- 20 September 2016 » Strange Loop - IP Spoofing
- 12 August 2016 » This is strictly a violation of the TCP specification
- 07 July 2016 » Why we use the Linux kernel's TCP stack
- 11 April 2016 » The curious case of slow downloads
- 05 April 2016 » The revenge of the listening sockets
- 11 March 2016 » Web archeology - itblog
- 02 March 2016 » The winter of weekend attacks
- 01 February 2016 » Enigma - Building a DoS mitigation pipeline
2015
- 19 November 2015 » A story of one latency spike
- 16 November 2015 » Black Hat EU - Defending the indefensible
- 25 September 2015 » Analysis of a browser-based DDoS
- 07 September 2015 » Kernel bypass
- 16 August 2015 » Turtles all the way down
- 30 June 2015 » How to achieve low latency
- 16 June 2015 » How to receive a million packets per second
- 11 May 2015 » CloudFlare Interview Questions
- 11 May 2015 » OARC - Dealing with DNS packet floods
- 06 March 2015 » Deprecating the DNS ANY
- 04 February 2015 » Path MTU discovery in practice
2014
- 21 May 2014 » BPF: the forgotten bytecode
- 03 April 2014 » Bind before connect
- 28 February 2014 » Improving 'container/list'
2013
- 31 December 2013 » Logging best practices
- 28 November 2013 » How to resolve a million domains
- 09 October 2013 » Visualising SipHash
- 05 September 2013 » It ain't about the callbacks...
- 15 August 2013 » FORTIFY_SOURCE
- 24 July 2013 » IR is better than assembly
- 19 July 2013 » How to sleep a million years
- 16 July 2013 » Baby steps in x86 assembly
- 11 July 2013 » Fun with The Great Firewall
- 25 March 2013 » Hardware entropy: RDRAND
- 30 January 2013 » Bitsliced SipHash
- 29 January 2013 » Stripping layer 2 in pcap
- 28 January 2013 » Counting cycles - RDTSC
- 24 January 2013 » SipHash
2012
- 11 December 2012 » Linux process states
- 09 December 2012 » lsof: can't identify protocol
- 23 November 2012 » Too much Erlang
- 13 November 2012 » How to crash gdb on OS X
- 12 November 2012 » SSL scanners
- 24 September 2012 » AES support in Westmere
- 21 September 2012 » Django with SockJS
- 12 September 2012 » Reinventing spinlocks
- 11 September 2012 » Concurrent queue in C
- 28 July 2012 » Am I a cyborg now?
- 25 July 2012 » Introduction to HAMT
- 02 July 2012 » Rethinking full text search
- 17 June 2012 » SSL fingerprinting for p0f
- 16 June 2012 » Dissecting SSL handshake
- 01 June 2012 » Hello world!