next up previous contents
Next: Proxy Servers Up: Investigations Previous: Sixth Event   Contents


Attack Chains

Finding attacks in a large amount of snort alerts turned out to be a real challenge. Almost all the events investigated seemed to be a side-effect of some sort of benign (or at least quite harmless) traffic. However, we have one more idea which seems to be interesting to pursue: Assume we are not interested in users in the internal network attacking other users on the inside. This assumption seems legitimate because the deployment of the snort sensor already excludes the monitoring of this type of activity. The chosen deployment of snort only reveals attacks either entering or leaving the internal networks (see also Section 2.4). To identify an attack, we use the following hypothesis: An attacker triggers a snort alert while he tries to break into a machine on the internal network. This alert does not necessarily have to be an attack. It might simply be reconnaissance activity. Recording the time of this inbound attack, we can search the rest of the snort alerts for alerts showing up at a later time originating from the machine that was targeted in the first alert. This method reveals internal machines that were either compromised or an attack response triggered an alert (e.g., id check returned root). We hope to find activity where an external machine attacks an internal one, compromises it and launches some follow-up activity from that machine. A disadvantage of this method is that using the data captures given, this method will not return a great amount of activity. The reasons for that are twofold:

  1. An attacker might compromise an internal machine and not use that machine to issue any further attacks; therefore leaving no traces after the initial attack.
  2. If an external attacker compromises an internal system and never launches an attack targeting an outside machine the snort logs will not reveal anything.

Despite the limitations of this approach, it seemed worthwhile generating some graphs. Figure 3.3 shows the output of a script we wrote to detect attack-chains[14]. It turns out to be quite difficult to analyze the findings:



Figure 3.4 shows a sanitized version of the attack-chain graph, where all the nodes identified to be unimportant or even false positives, were removed.

Figure 3.4: Attack-chain graph with false positives and other unimportant nodes removed.
Image attackchain2

There are three different initial attack events: SCAN nmap TCP, ISS header field buffer overflow attempt and SHELLCODE x86 setgid 0. All of these events represent quite aggressive attacks and seem to be good indicators for a successful compromise of an internal system. To finish an analysis of all events in Figure 3.4, we need some more information about the topology and the role of the single machines. As an immediate remedial step, we recommend having a look at the two remaining stepping stone machines: ``32.245.166.236'' and ``32.245.166.119''. Especially because it is not the first time that we tripped over them during our analysis.


next up previous contents
Next: Proxy Servers Up: Investigations Previous: Sixth Event   Contents
Raffy 2004-12-20