Archive - August, 2006

Halberd 0.2.1 is out!

Halberd

I just released the next revision (0.2.1) of halberd, my load balancer detection tool. If you’re curious about the way the program works, you can read this part of the user’s guide.

Halberd has been tested in real world scenarios for quite some time and it seems to be solid. I hope the wider audience it is gaining now will uncover some bugs and after fixing those I’ll think of it as stable software. Future work could happen in the following areas:

  • Clustering algorithm
    • The module Halberd.clues.analysis currently implements an ad-hoc hierarchical clustering algorithm to isolate possible real servers. I would like halberd to report to the user the degree of trust he should place in its conclusions.
    • I think the way to go would be to test some algorithms in R (fuzzy clustering comes to mind) using real world data and see what works best before implementing anything.
  • SSL session reuse
    • When an SSL/TLS session begins, the server issues an SSL session ID to the client. This ID will be used to resume transactions between client and server (remember the stateless nature of HTTP).
    • Some load balancers can keep track of which real server dealt with which SSL session and direct the client to the right server (the one having the client’s session ID in its cache). This could be used by halberd as an extra technique to enumerate real servers.
  • Test suite improvements
    • The test harness is tied to my own development environment. This should change.
    • More tests never hurt.

Introduction to the lambda calculus

A Brave New Hope briefly reviews an interesting text on the lambda calculus. This reminded me of one of the books that got me started in functional programming: An introduction to functional programming through lambda calculus by Greg Michaelson. It is an enjoyable and fast-paced text which I’d recommend if you’re looking for a good introduction to the subject.

First public release of halberd

Halberd is a tool I wrote two years ago to detect HTTP load balancers. I recently decided I should polish it, write some documentation and release it.

You can be use halberd as a stand-alone command or as a Python module to be imported by other software.

Here it is for your enjoyment.