Archive for Fuzzing

Fuzzing SCADA Programmable Logic Controllers

PLC’s for short, are used extensively in SCADA networks for meter readings and equipment status reports, which are then sent over an IP network (using IEC61850, DNP3, MODBUS, etc) to the Supervisory Station. PLC’s run both a piece of software to report back up to the station while simultaneously controlling physical entities like electric motors, pneumatic or hydraulic cylinders, magnetic relays, etc. You can see where I’m going with this: There are two alternate universes here and they should not affect each other. On the measurement/controlling side, responses have to be sent back within certain time bounds or things will break leading to physical and collateral damage. On the IP side, the inherent unreliability of IP networks has to be handled. This is very similar to how routing vendors [try and] isolate the control and forwarding planes, except the forwarding plane here controls and measures physical entities.

Full Post »

Bookmark and Share

IPv6 Fuzzing and Testing

At Mu, we take testing IPv6 pretty seriously, especially since the IPv4 address space is vanishing faster than you say all octets of an IPv6 address. We released our first version of IPv6 test suite for fuzzing 3 years ago which includes coverage for fragmentation, various extension headers and and options. Most of the fun in fuzzing IPv6 happens with the extension headers which are much like IPv4 options, except it’s a chained linked-list like IKE payloads. In the one of the IPv6 test suites, we have more than 100,000 test cases that exercise various parts of the IPv6 capabilities!

Full Post »

Bookmark and Share

Rock climbing software problems

This one goes to Brian who got me back to climbing after all these years.

I used to rock climb a lot. It’s one of the few sports I cherished for the longest time before I ran out of time to focus on it. There are striking similarities between rock climbing and writing software and analytical thinking to reduce problems to its bare essence. Yes, I’ve climbed the Cathedral Peak and Royal Arches with lots of unexpected happenings, inspite of the training.

Full Post »

Bookmark and Share

Fuzzing in JavaScript, an exercise in monadic computation

As I mentioned in a previous post, following is an introduction to monadic computation in JavaScript. The intent of this post is to demonstrate many advantages of monadic abstraction by implementing a concrete example from ground up. The theory behind monads I will leave to other online tutorials.
Full Post »

Bookmark and Share