CHAOS (operating system)


CHAOS is a small Linux distribution designed for creating ad hoc computer clusters. CHAOS is a Live CD which fits on a single business-card-sized CD-ROM. This tiny disc will boot any I586 class PC into a working OpenMosix node, without disturbing or touching the contents of any local hard disk.
Designed for large-scale ad hoc clusters, once booted, CHAOS runs from memory allowing the CD to be used on the next node. CHAOS to be a compact, secure and straightforward OpenMosix cluster platform.
Note that the operating system described here is not related to the
Clairemont High School Advanced Operating System which ran on a
MITS Altair 8800 modified using a custom bank-switched memory controller to allow
time sharing.

About

What it is

CHAOS is built around the open-source project OpenMosix created by Moshe Bar. OpenMosix itself is a piece of software that is added to the Linux kernel, to allow many Linux computers to work together as a Single System Image type cluster.
CHAOS creates a basic node in an OpenMosix cluster and is typically not deployed on its own; cluster builders will use feature-rich Linux distributions as a “head node“ in a cluster to provide their application software, while the CHAOS distribution runs on “drone nodes“ to provide “dumb power“ to the cluster.
While this deployment model suits the typical cluster builder, OpenMosix is a peer-based cluster, consisting of only one type of node. All OpenMosix nodes are inherently equal and each can be, simultaneously, parent and child.

How it works

As each new node is booted it will locate one cluster node, then negotiate its entry into the cluster. If the IP address of a node is not supplied to the booting node, it will multicast for one. The first responding node will be used as the point of negotiation. The local CHAOS node initiates an IPsec tunnel to the elected negotiation node using a pre-shared key. If the tunnel fails to establish, the new node is unable to join the cluster. With the tunnel established the new node requests a copy of the OpenMosix cluster map from the negotiating cluster node. The new node then repeats this process with every node in the cluster map; establishing an IPsec tunnel, validating the cluster map, then moving on. In this way, every node is interconnected with every other node by "n-1" IPsec tunnel connections. All OpenMosix cluster communications are then said to be authenticated and encrypted via the CHAOS platform.
Once an OpenMosix cluster is established on the CHAOS platform, OpenMosix can operate as if it were on any Linux platform. Any node can launch a process and have that process migrate to the node with the best performance characteristics for executing that particular process. The OpenMosix environment has the "mosmon" utility to display the performance of the entire cluster, from any node. The image series on the right shows a six node OpenMosix cluster running on the CHAOS platform.

Why it was built

CHAOS was developed to utilise idle desktop computer resources to perform pro-active brute-force cryptanalysis against given password hashes. A brute-force attack, as its name suggests, requires an adversary to employ a mammoth work effort into the resolution of a cryptographic problem. Typically, this is an exhaustive search of a particular key space. For example, resolving the password for three upper-case alpha characters would require exploring the key-space for: AAA, AAB, AAC... ZZX, ZZY, ZZZ.
In order to reduce the time required to search the key-space, portions of the work effort can be farmed out idle resources. As opposed to rainbow tables, this technique allows for brute-force attacks to be performed against irregular or salted algorithms.

Security assessed by

The tool used to provide the cryptographic tests was John the Ripper. JtR was scaled by using named pipes to funnel a controlled dictionary into an arbitrary number of JtR clients. Each client would take one key, encrypt it, and test it against a local copy of the hash. John the Ripper on CHAOS differed from Cisillia as it facilitated dictionary based brute-force attacks across a large number of algorithms, rather than an entire key-space driven brute-force attack across one or two algorithms.

Security provided by

CHAOS was the first OpenMosix distribution to provide IPsec and IP packet filtering to the cluster node, enabling authentication and encryption for inter-node communications, and enabling packet filtering to prevent non-cluster devices from accessing the vulnerable OpenMosix communications ports. These security controls allowed the cluster builder to utilise desktop computers in semi-trusted networks with minimal risk to cluster integrity, thus increasing the number of resources available for inclusion within the cluster.

History

2003: The creation of CHAOS

The project started as tool development work for the IT Security group at Macquarie University in 2003, with an initial team that included Rob Dartnell, Ian Latter and Ty Miller. There was a need to demonstrate the weakness in one particular application's security via its one hashed, network transmitted, password. The OpenMosix cluster software, at that time, was available via a number of Linux distributions, but these were neither secure nor dynamic enough to support the campus PC environment that the cluster software was to be deployed into.
The CHAOS distribution was created to fill this need, and was developed under the GNU General Public License to allow the OpenMosix community members to benefit from the security enhancements employed around the OpenMosix software. Security improvements made by the team included IPsec tunnels for all cluster communications, state aware packet filtering for each node, a tiny operating system image which allowed for Preboot Execution Environment booting to remote PC memory, zero-touch cluster creation, etc.
The original CHAOS project page was at https://web.archive.org/web/20050615021558/http://itsecurity.mq.edu.au/chaos/ - the original page is no longer available.

2004: CHAOS, CoSMoS and team departure

A presentation was made to the Australian Unix Users Group Security Symposium in February 2004 at about two thirds of the way through CHAOS' initial two year development cycle.
In mid to late 2004 CHAOS was adapted to the coLinux|Cooperative Linux framework, allowing OpenMosix to run as a node on a Microsoft Windows PC for the first time. This was significant as there was now the ability to run ad-hoc clusters 24x7, and not just out of business hours. The version of CHAOS created for coLinux was dubbed CosMos and was also released under the GPL, complete with Windows installer software.
Later that year work stalled on CHAOS and CosMos when the IT Security team broke up to work for various organisations. Development was halted for most of the six months beginning Q4 2004.

2005: Relocation and public dissemination

There was renewed interest in CHAOS development when both Ian and Ty began work at Pure Hacking in Q2 2005. Pure Hacking could identify a need with the resource that CHAOS provided and offered to sponsor further CHAOS development so that it could remain under the GPL. A package updated version of CHAOS was released at that stage, but Pure Hacking provided no additional development time, leaving the project to grind to a halt again. CHAOS was "Slashdotted" during this time, due to the press that came from Pure Hacking's sponsorship announcement. Unfortunately, Pure Hacking were unable to provide the time needed to develop or maintain CHAOS. Version 1.6 of CHAOS, the only version released in Q1-3 of 2005, was released from development work performed in private time.
In Q4 2005 Ian added CHAOS to the midnightcode.org web site - in the hope of better maintaining the project. Improvements desperately needed include code and protocol clean ups, better enterprise management support, operational documentation, and simpler integration with the supporting OpenMosix distributions.

2006-2007: Redevelopment

Many of the code clean-up issues will be resolved with the integration of the Midnight Code libraries. While currently being developed these libraries already provide better program execution, configuration control, network interface manipulation and status management than those currently in CHAOS.