Category Archives: Training

The Complete Cuckoo’s Egg Online Course Available for Free

If you’ve been following along with my blog, you know that I’ve been teaching a free online course on Thursday evenings for the past few months. I’ve decided to release those recordings and supplementary material for free.

The Cuckoo’s Egg Decompiled is an online course designed to provide an introduction to information security, as told through the lens of Cliff Stoll’s “The Cuckoo’s Egg” book.

The course was recorded live online from Nov 2017 through Jan 2018. The course videos, slides, and lecture notes are freely available under the terms of the Creative Commons CC BY-NC 4.0 license. That means you are free to use, share, and adapt this content. However, you must give appropriate credit/citations and you may not use it for commercial purposes. However, if you are a college professor or high school teacher you may adapt it for your classes.


You can access the download links for this course here:

Cuckoo’s Egg – Week 8 Notes

Session Recording:

This week, we finished the book to include chapters 47-56.

The attacker had dialed in for brief moments during the few weeks that followed but didn’t do anything notable. They also ignored the new SDINET files. At one point Cliff notices someone login through a new account belonging to a professor. He verifies that the login was not done by the professor. Cliff uses the power of deduction to figure out that the attacker must have cracked the professor’s password from the stolen password file by using a dictionary attack. Cliff is stunned to talk to Bob Morris (who he met previously at NSA) and find that dictionary attacks are “child’s play” and have been in existence for 5-10 years.

Cliff visits DC again and gives a talk to the NSA X-1 team and several high ranking flag officers. He is asked to visit Teejay at the CIA and is introduced to the deputy director. It turns out they’ve been following this case daily. They present Cliff with a certificate of appreciation.

Cliff receives a letter in the mail addressed to Barbara Sherwin, the fake administrator name he made up in the SDINET files. It is a nearly exact copy of the template form he placed with the files to request more information. It is postmarked with a return address from Pittsburgh and uses the name Laszlo J, Balogh. Cliff informs the FBI about this who request he handle it very carefully and send it to them. An OSI investigator also shows up to inspect it, and Teejay at the CIA is informed as well. The FBI asks cliff for a copy of the LBL letterhead. It sounds like they are going to send a reply back to the attacker.

Evidence Collection

When Cliff receives this letter he doesn’t do a great job of preserving it as evidence. Anything that might result in litigation must be treated carefully so that the investigating team can get the most value out of the facet of reality it represents. This means handling things with care and preserving a chain of custody. These concerns don’t only apply to physical evidence however, they apply to computer evidence too.

With this in mind, I provided a brief overview of concerns related to preservation of digital evidence. This included discussions about permission, volatility and whether you should shut computers off, pollution of evidence that happens when installing software or interacting with a system, and chain of custody. I also discussed the practicality of treating systems as evidence and when that doens’t necessarily happen in practice.

More Reading:



The attacker breaks into a few more networks via LBL including Unisys and NASA. Cliff continues tracking these and initiating traces while also creating SDINET files that serve the purpose of keeping the attacker on the network longer.

Finally, on June 21st, Cliff observes the attacker login for the last time. Shortly after that, he gets a note from the FBI that the Germans were positioning officers outside the attacker’s location and would arrest him the next time he connected to LBL. Cliff was to monitor and call when this occurred. Cliff monitored for a few days but the attacker never connected back. He received a call from the FBI that the investigation was over. An arrest warrant had been issued, and the attacker would not be back. No more information was provided but Cliff was told to keep this to himself and he would learn more in time once the case was mostly closed.

Cliff eventually gets tired of waiting around and submits an article about these events to the ACM. Before it is published, a German magazine publishes a story about it citing his log book. The only person who had a copy of his log book was the FBI, who must have sent it to the German legal attache, and now who knows where it has been. LBL conducts a press conference for Cliff to talk about the events that have transpired since the cat is out of the bag.

Oddly enough, it’s the press who expose the name of the attacker: Markus Hess. Cliff eventually pieces together the full story of what happened. In short, a group of five young German hackers got together and used their skills to find vulnerabilities and compromise networks. They did it for many reasons: the thrill of success, financial gain, and even to support drug habits. Eventually, this led them to sell information to the KGB. It was the KGB who were responsible for requesting information by mail to LBL via a Hungarian criminal in Pittsburgh. All five hackers were eventually prosecuted, although they had very different stories.

Questions to Consider

What has changed about computer security since the 1980s? What hasn’t?

Has our ability to secure information been outpaced by our reliance on it?



Cuckoo’s Egg – Week 7 Notes

Session Recording: (Available 1/26-2/2)

Next Sessions Registration:

This week, we reviewed chapters 38-46.

Cliff hears that the FBI is working with the German attache to get the warrant sorted out but it is taking some time due to internal issues. Meanwhile, he discovers the computer responsible for the Bevatron, a cancer research device, has been compromised. This is a sensitive system whose data integrity is paramount, as it directly relates to cancer treatment. Incorrect numbers could kill someone. He works with the system owner to reset all the passwords and kick the attacker out. He laments over the fact that he can’t do anything to stop the attacker, he can only watch and kick them out when he spots them. 

Industrial Control Systems (ICS)

The attack on the computer that controls the Bevatron is an example of how machines can be attacked in such a way as to cause a kinetic impact. Although the attacker didn’t succeed in doing this and likely had no idea what they were interacting with, the computer they were accessing could control this physical device. Much of the world around us now is controlled by devices that are network and internet-connected, which brings about unique concerns. 

With this in mind, I provided an overview of ICS devices and how they interact with normal computer networks. I highlighted the segmentation that normally exists and spent time “mythbusting” some common misconceptions about the nature of the threat to ICS networks and how likely that is. Along the way I highlighted examples ICS malware and specified attacks to ICS networks where additional study is helpful for those interested in this topic.  

More Reading:

Dig Deeper Exercises:

  • Level 1
    • Research at least one family of ICS targeting malware in depth. Clearly define the function and impact of the malware when executed.
  • Level 2
    • Research the Shamoon attack at Saudi Aramco and compare it to what happened in Iran with Stuxnet. Can you clearly define what makes one different than the others?



Cliff gets a call from the FBI telling him they are calling off the case. He persists but to no avail. He eventually calls TeeJay with the CIA and explains the scenario. TeeJay gets back with him in a couple of days and lets him know the CIA made a “grandstand play” and that the investigation is back on, which he confirms with Mike at the FBI.

Shortly after that, the attacker comes back. He is traced back through Datex, then to Bremen, and finally to Hannover again. The Bundespost reiterates they need a warrant or they will drop the whole case. The University of Bremen also reiterates they need to move forward or they are going to plug their holes. Cliff confirms that to trace the call in Hannover requires someone with feet on the ground in the switching station, and the actual trace could take as long as two hours.

While Cliff is describing his plight to his girlfriend, Martha, she comes up with a brilliant idea. Cliff needs to keep the hacker on the network for a long time to complete the trace, and the hacker is interested in specific types of information. So, why not give it to him? They devise a plan to create fake documents related to something called “SDINET” to lure the attacker in. They spend a lot of time making them official and even setup a detail request form that has to be mailed in with the hopes that the attacker does so and leaves a return address. This is one of the earliest mentions of a honeypot.


With some help, Cliff devises a plan to use what is one of the earliest recorded forms of a honeypot to attract the attacker and keep them connected while traces could be made. Honeypots have been used for a long time, but more traditionally for research purposes, to track scanning and worm activity, and to gather malware. I provided an overview of the evolution of honeypots, culminating in the modern use of tactical honeypots for detection and network security monitoring. I demoed a few simple honeypots like the Cowrie SSH honeypot and Tom’s Honeypot. I also discussed non-traditional honeypots and demonstrated a HoneyDoc.

More Reading:

Dig Deeper Exercises:

  • Level 1
    • Download and install Cowrie on a VM or test system. Configure it so that it perfectly mirrors the SSH login of a specific Linux distribution.
  • Level 2
    • Use netcat to create a simple honeypot that listens on one or more ports and logs the data it receives to a file.
  • Level 3
    • Create and Word document and figure out how to embed a tracking link that phones home when opened.



Cliff spends some time talking with the various agencies to get approval for his project. He doesn’t get it, but he doesn’t find anyone who tells him not to do it either, so he moves forward. The attacker comes back and falls for the bait by enumerating and downloading the files. Concurrently, a trace is made that gets as far as a specific exchange in downtown Hannover. They know the connection is coming from a local line and they’ve traced it to a block of 50 numbers, but they’ll have to wait for the next call to go any further.

It took two more traces, but then it happened. The folks at Hannover were able to trace the call to an individual number which was tied to a computer at a business while the attacker was enumerating Cliff’s files and breaking into a military base in Okinawa via LBL. Hannover said they would give the number over to the FBI. The attacks had been traced to their source.

Cliff repeats a few more traces as the attacker comes back, but then enters a holding pattern now as the Bundespost and German authorities are still waiting for a warrant from the FBI and their legal attache. During this time, Cliff is invited up to a meeting with all the interested parties in DC. He meets the cast of characters he’s been talking to. He’s also invited to speak at the NSA and brief the Deputy NSA Director. During this exchange he meets Bob Morris, whose son later becomes famous for creating the Morris Worm, the first ever worm observed on the internet.



Questions to Consider

Honeypots are one of best forms of detection in terms of signal:noise ratio. Take what I discussed this week and try to answer the following:

  • Should honeypots be a required detection tool for all organizations? Where do they not make sense?
  • What are a few unique ways you could build honeypots for detection in your home or work network?


Next Session

February 1st 7:30PM ET — The Last One!

Read Chapters 57-56

Register/Attend Here:


Cuckoo’s Egg – Week 6 Notes

Session Recording: (Available 1/12-1/19)

Next Sessions Registration:

This week, we reviewed chapters 31-37.

Sventek comes back again, this time through another link traced back to Germany. He tries to copy the telnet and rlogin programs back to his computer. This is probably to introduce password stealing functionality, so Cliff halts this by physically introducing noise on the line and messing up the transfers. The attacker also continues to search for specific terms on milnet.

Cliff makes his calls to let his stakeholders know what is going on. He reaches Greg Fennel at the CIA who tells him “Just tell me what happened. Don’t embellish, don’t interpret.”

Cognitive Bias and Estimative Probability

The statement from the CIA’s Greg Fennel is interesting and valuable because it elicits a neutral evidence-based response. This is something we should strive for in information security. After all, a conclusion without supporting evidence is an opinion. We have to inject opinions sometimes to fill in where evidence doesn’t exist, but it should be done sparingly and only when necessary.

In relation to this, I spent time discussing cognitive bias and how it can affect the interpretation and acquisition of facts. I listed and described a few of the more common biases that persist in security. I also discussed the importance of using measuring language of estimative probability and the class went through an exercise to practice.

More Reading:

Dig Deeper Exercises:

  • Level 1
    • Review the words of estimative probability. Look through the last few things you’ve written. Should you make any adjustments?
  • Level 2
    • Review the list of cognitive biases and research one of them. Can you think of a time you’ve been subject to that bias?
  • Level 3
    • Pair up with a friend and review the list of biases. Can you identify biases in each other?

Cliff spends time searching Usenet for news about hackers that might be related. He comes into contact with Bob at the University of Toronto. Bob tells Cliff that attackers from the German Chaos Computer Club broke into his network through CERN, and they had also been in the Fermilab computers as well. They went by the aliases Hagbard and Pengo. It turns out these same usernames were observed during a Stanford breach. 

Open Source Intelligence and the Diamond Model

Cliff’s examination of Usenet threads related to the breach he was investigating is an example of open source intelligence (OSINT) investigation. The power of collective intelligence is vast and is something many security practitioners rely on when conducting investigations. I discussed sources of OSINT and demonstrated pivoting based on indicators from a real investigation. I also discussed the Diamond Model as a method of assimilating and characterizing collected information to form a clear picture of events that have transpired.

More Reading:

Dig Deeper Exercises:

  • Level 1
    • Sign up for an Alienvault OTX account and familiarize yourself with the interface. Read a few of the blog posts and explore the available information.
  • Level 2
    • Find one of the file hashes from and search for it on VirusTotal. Review the output.
  • Level 3
    • Go to and pick a blog post. Search for an IP and Domain on Alienvault OTX and see if you can find related malicious infrastructure.


Cliff discovers additional victims of the attackers. This includes the Ballistic Research Laboratory and TRW, a company developing US keyhole spy satellites.

Meanwhile, the Bundespost gets back in touch and shares that the source of the call is a VAX computer at the University of Bremen. They discovered an account that appears to be compromised and are going to start monitoring it for the next time the attacker comes back.

Cliff’s boss comes in and tells him that it is time to end the investigation. Cliff fails to convince him otherwise and begins a plan to change the password for all 1200 users in the network. Fortunately, the FBI got involved and convinced his boss to keep the investigation open for a little while longer.


When Cliff believes the investigation is over he starts to think about the incident response process. While the PICERL model didn’t exist in Cliff’s time, he was actually thinking about the transition from identification to containment. The standard incident response model is called PICERL: Preparation, Identification, Containment, Eradication, Recovery, and Lessons Learned. I briefly provided an overview of this process as an introduction to incident response.

More Reading:

Not long after this, Cliff hears that the DOE is filing a complaint about LBL for not reporting this incident when it happened. Of course, Cliff did do that! He has it recorded in his log book. Good thing he saved that.

Meanwhile, the attacker comes back and pivots through LBL to access the Optimis Army Database to search for specific keywords related to military data. Cliff informs the network operator who plugs the hole.

After this, Cliff observes the attacker breaking into Space Command. Using a default password, they are actually able to get SYSTEM privileges. However, he screwed up. He lost his connection because he tried to list too much data at once. Then, he didn’t realize that the password on the account had expired and he hadn’t set a new one. This means he couldn’t get back into the account. He was locked out. Sadly, some system operator resets the account to the same password and the attacker gets back in and creates his own account. Cliff informs them of the issue so they can remediate.

While all this is going on the attacker is traced to a few different locations in Germany while the University of Bremen is closed for the holidays. Eventually, they call is traced to a local exchange in Hannover where they finally believe the attacker to be. Two barriers now exist. First, to trace this any further Cliff needs a German warrant and that can only be requested from a high-level government official. Second, the antiquated phone exchange requires someone physically present to trace the call while it is active.

Questions to Consider

Zeke at the NSA asks Cliff, “If [the attacker] is so methodological, how can you prove you’re not just following some computer program?”

What characteristics of an attacker can indicate a human at the other end instead of an automated process?


Next Session

January 25th 7:30PM ET

Read Chapters 38-46

Register/Attend Here:


Cuckoo’s Egg – Week 5 Notes

Session Recording: (Available 1/5-1/12)

Next Sessions Registration:

This week, we reviewed chapters 24-30.

Cliff arrives at the lab and talks with his boss who wants him to discuss an ongoing attack being dealt with at Stanford. Dan from Stanford calls Cliff and mentions that he would have e-mailed Cliff about the details, but he is concerned that someone else might be reading it so he chose to discuss in person. They had been relying on the phone more in light of this.

Stanford had a similar monitoring system and saw the attacker (also traced to McClean, VA) uploaded a homework problem to their server complete with this name, Knute Sears, and the name of his teacher, Mr. Maher. Due to the nature of the homework, they believed it to be associated with a high school kid. In an effort to help and potentially connect the LBL and Stanford breaches Cliff worked with his sister to look for schools that might have a Mr. Maher. They only found one, but he was a history teacher, not math. There was also no Knute Sears enrolled there. This was a dead end.

Operational Security for Infosec Practitioners

We provide general security advice to users all the time, but we also must consider the security of our operational tasking. OPSEC is unique to the operations of an individual role and the security role is no different. We often research potentially malicious sites and files and have to protect ourselves from the inherent nature of that work using special precautions just like someone dealing with biological weapons might need to take extra opsec precautions to protect themselves to a greater degree than someone in the general public would.

To this end, we discussed OPSEC concerns related to browsing specifically. I discussed information available to the browser by just visiting a website and how people take advantage of that. I also discussed the modern advertising ecosystem and how it makes a perfect platform for the distribution of malicious code. We played a game where I showed ads and students guessed whether they were legit or led to malware. The conclusion? It’s often impossible to tell, even for those with a trained eye. This compounds the problem ad networks present. I provided several practical steps practitioners can take to strengthen their OPSEC including running ad and script blockers, disabling password manager autofill, disabling browser prefetch, and browsing from a VM to reduce attack surface.

More Reading:

Dig Deeper Exercises:

  • Level 1
    • Implement the “safify” alias and test it out a few times.
  • Level 2
    • Install an ad blocker like uBlock Origin or AdBlock Plus. Visit two sites you frequent and view the logs generated by your ad blocker. How many ad networks did you find?
  • Level 3
    • Take the same page and find the HTML/Javascript that delivered the ad. Analyze its function and consider what would need to be changed in order for malicious content to be delivered here.

Cliff receives a call from Mike Gibbons at the Virginia FBI office. He is much more interested in the case than the California FBI and agrees with Cliff’s plan to have MITRE trace the call the next time the attacker shows up. This event soon took place and MITRE was able to confirm that someone was connecting to LBL from their network but they were unable to trace the source of the call due to the complexity of their network. 
Cliff formulates the hypothesis that MITRE might be serving as a hop point for many different attackers. For this to be true, three things would have to occur. 

  1. There would have to be a way for anyone to connect to MITRE’s network
  2. A MITRE system would have to allow strangers to authenticate to it
  3. They would have to provide unaudited outgoing long distance telephone service

Cliff knew that the third thing was already true. He wanted to test the first two, but to do that he would have to assume the role of an attacker and conduct a pseudo-penetration test. He connects to Tymnet and uses a MITRE account and finds at least one system called AEROVAX left wide open that he can dial out from. This confirms his hypothesis. 

While poking around the MITRE network he also discovers that the AEROVAX system has been infected for at least six months with a trojan horse that is stealing passwords at login. He informs MITRE about this issue and in exchange for this information they agree to send him a copy of their outgoing phone bill so he can assess the movement of the attacker.

Cliff receives the phone bill information and writes correlation software to analyze it. He highlights the calls he knows are from the attacker and flags calls before and after them. Eventually, he comes up with a list of probable calls made by the attacker. It includes several familiar entities like Anniston, along with others like Oak Ridge, San Diego, and Norfolk. He also discovers a bunch of short 1 minute phone calls to military bases and ponders the reason behind them. 

Attacker Pivoting

At this point we’ve seen the attacker pivot through all sorts of networks to reach their goal. This is done to keep people from finding the true identity of the attacker. It protects them from prosecution and relaliation while also providing resiliiency to their attack infrastructure. I discussed and demonstrate some very simple techniques attackers can use for pivoting. This included a demonstration of “living off the land” with SSH and using netcat to shovel command line access back to an attacker through an intermediary host. I also discussed purpose built malware like HTRAN. Finally, I discussed some realities of attribution in the modern landscape and its limitations.


More Reading:

Dig Deeper Exercises:

  • Level 1
    • Create a simple chat client by using a netcat relay between two hosts. Try implementing this in TCP and UDP.
  • Level 2
    • Expand your chat client to go through an intermediate jump host as to conceal your originating IP from the victim.
  • Level 3
    • TCP Spoofing is a technique that attackers can theoretically use to send data to a network indirectly, but it is challenging in practice. Research this technique to understand how it works and its limitations.


MITRE decides to shut down it’s outbound modems basically eliminating the pathway the attacker was taking into the LBL network. At this point Cliff thinks the investigation might be over. He ties up a few loose ends by notifying network owners at Navy Regional Automated Data Center and an unmentioned Georgia college about potential breaches on their network. Through these discussions he confirms activity similar to what he has observed, as well as a similar compromise on the JPL network in California.

Cliff also refines his profile of the attacker he is tracing. The attacker is fluent in Unix and VMS which means it is unlikely they are a high school student akin to what the Stanford breach had revealed. Meanwhile, Teejay from the CIA calls and asks Cliff to send an updated copy of his logbook.

Cliff also builds another statistical analysis tool to calculate the attacker’s average login time. This turned out to be from 12-3PM on weekdays, and as early as 6 AM on weekends. This supported the notion that if the attacker was in Europe they would only break in during the evening during the week day but were more flexible during the weekend.

Sventek comes back and this time Cliff initiates a trace via his Tymnet contacts. They find the call is coming from a new location. It’s coming from International Telephone and Telegraph company (which means it is international) and traced to the Westar 3 satellite. This means the call is coming from Spain, France, Germany, or Britain but at first they can’t definitively say where until they get more information. Cliff gets a call from Ron Vivier later and finds that the call has been traced to the German Datex Network in West Germany.

There are now two possibilities. Either the hacker is indeed dialing in from Germany, or they are using the Datex network as a hop point in a similar fashion to how someone would use Tymnet. Either way, the next step would be to request information from German Bundespost, the government monopoly that runs the communication network.

Cliff starts piecing together more of the puzzle and confirms that local times in Germany sync up with his weekday after-hours theory on call times. He also remembers that a username used by the attacker one was Jaeger, which is German for Hunter. Cliff isn’t ready to fully accept this conclusion, but some of his data points seemed to fit.


Questions to Consider

What OPSEC failures by attackers can lead to attribution by defenders?


  • Use of public tools
  • Custom malware
  • Attack sourcing
  • Shared infrastructure
  • Multiple victims


Next Session

January 11th 7:30PM ET

Read Chapters 30-37

Register/Attend Here: