A computer security system uses a plurality of co-operating software
agents to protect a network against attack. Individual agents at each
node the network co-operatively act to detect attacks and to share attack
signatures and solutions via a message exchange mechanism. A global
internal measurement of the overall health of the group of agents may be
used as an indicator of a possible attack. In larger networks, the agents
may be formed a plurality of separate autonomous groups, with a common
group identity being automatically maintained by the message passing
mechanism. Individual groups may be located by a system designer in
separate cells or domains within the network, so that if one cell becomes
compromised the rest of the network is not affected.