Cover image for Forensic discovery
Title:
Forensic discovery
Personal Author:
Series:
Addison-Wesley professional computing series
Publication Information:
Upper Saddle River, NJ : Addison-Wesley, 2005
ISBN:
9780201634976
Added Author:

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000004988923 QA76.9.A25 F37 2005 Open Access Book Book
Searching...
Searching...
30000010184216 QA76.9.A25 F37 2005 Open Access Book Book
Searching...
Searching...
30000010185916 QA76.9.A25 F37 2005 Open Access Book Book
Searching...

On Order

Summary

Summary

Don't look now, but your fingerprints are all over the cover of this book. Simply picking it up off the shelf to read the cover has left a trail of evidence that you were here.


Author Notes

Dan Farmer is chief technical officer of Elemental Security, a computer security software company.


Excerpts

Excerpts

Today, only minutes pass between plugging in to the Internet and being attacked by some other machine--and that's only the background noise level of nontargeted attacks. There was a time when a computer could tick away year after year without coming under attack. For examples of Internet background radiation studies, see CAIDA 2003, Cymru 2004, or IMS 2004. With this book, we summarize experiences in post-mortem intrusion analysis that we accumulated over a decade. During this period, the Internet grew explosively, from less than a hundred thousand connected hosts to more than a hundred million (ISC 2004). This increase in the number of connected hosts led to an even more dramatic--if less surprising--increase in the frequency of computer and network intrusions. As the network changed character and scope, so did the character and scope of the intrusions that we faced. We're pleased to share some of these learning opportunities with our readers. In that same decade, however, little changed in the way that computer systems handle information. In fact, we feel that it is safe to claim that computer systems haven't changed fundamentally in the last 35 years--the entire lifetime of the Internet and of many operating systems that are in use today, including Linux, Windows, and many others. Although our observations are derived from today's systems, we optimistically expect that at least some of our insights will remain valid for another decade. What You Can Expect to Learn from This Book The premise of the book is that forensic information can be found everywhere you look. With this guiding principle in mind, we develop tools to collect information from obvious and not-so-obvious sources, we walk through analyses of real intrusions in detail, and we discuss the limitations of our approach. Although we illustrate our approach with particular forensic tools in specific system environments, we do not provide cookbooks for how to use those tools, nor do we offer checklists for step-by-step investigation. Instead, we present a background on how information persists, how information about past events may be recovered, and how the trustworthiness of that information may be affected by deliberate or accidental processes. In our case studies and examples, we deviate from traditional computer forensics and head toward the study of system dynamics. Volatility and the persistence of file systems and memory are pervasive topics in our book. And while the majority of our examples are from Solaris, FreeBSD, and Linux systems, Microsoft's Windows shows up on occasion as well. Our emphasis is on the underlying principles that these systems have in common: we look for inherent properties of computer systems, rather than accidental differences or superficial features. Our global themes are problem solving, analysis, and discovery, with a focus on reconstruction of past events. This approach may help you to discover why events transpired, but that is generally outside the scope of this work. Knowing what happened will leave you better prepared the next time something bad is about to occur, even when that knowledge is not sufficient to prevent future problems. We should note up front, however, that we do not cover the detection or prevention of intrusions. We do show that traces from one intrusion can lead to the discovery of other intrusions, and we point out how forensic information may be affected by system-protection mechanisms, and by the failures of those mechanisms. Our Intended Audience We wrote this book for readers who want to deepen their understanding of how computer systems work, as well as for those who are likely to become involved with the technical aspects of computer intrusion or system analysis. System administrators, incident responders, other computer security professionals, and forensic analysts will benefit from reading this book, but so will anyone who is concerned about the impact of computer forensics on privacy. Although we have worked hard to make the material accessible to nonexpert readers, we definitely do not target the novice computer user. As a minimal requirement, we assume strong familiarity with the basic concepts of UNIX or Windows file systems, networking, and processes. Organization of This Book The book has three parts: we present foundations first, proceed with analysis of processes, systems, and files, and end the book with discovery. We do not expect you to read everything in the order presented. Nevertheless, we suggest that you start with the first chapter, as it introduces all the major themes that return throughout the book. In Part I, "Basic Concepts," we introduce general high-level ideas, as well as basic techniques that we rely on in later chapters. Chapter 1, "The Spirit of Forensic Discovery," shows how general properties of computer architecture can impact post-mortem analysis. Many of the limitations and surprises that we encounter later in the book can already be anticipated by reading this chapter. Chapter 2, "Time Machines," introduces the concept of timelining, using examples of host-based and network-based information, including information from the domain name system. We look at an intrusion that stretches out over an entire year, and we show examples of finding time information in non-obvious places. In Part II, "Exploring System Abstractions," we delve into the abstractions of file systems, processes, and operating systems. The focus of these chapters is on analysis: making sense of information found on a computer system and judging the trustworthiness of our findings. Chapter 3, "File System Basics," introduces fundamental file system concepts, as well as forensic tools and techniques that we will use in subsequent chapters. Chapter 4, "File System Analysis," unravels an intrusion by examining the file system of a compromised machine in detail. We look at both existing files and deleted information. As in Chapter 2, we use correlation to connect different observations, and to determine their consistency. Chapter 5, "Systems and Subversion," is about the environment in which user processes and operating systems execute. We look at subversion of observations, ranging from straightforward changes to system utilities to almost undetectable malicious kernel modules, and detection of such subversion. Chapter 6, "Malware Analysis Basics," presents techniques to discover the purpose of a process or a program file that was left behind after an intrusion. We also discuss safeguards to prevent malware from escaping, and their limitations. In Part III, "Beyond the Abstractions," we look beyond the constraints of the file, process, and operating system abstractions. The focus of this part is on discovery, as we study the effects of system architecture on the decay of information. Chapter 7, "The Persistence of Deleted File Information," shows that large amounts of deleted file information can survive intact for extended periods. We find half-lives on the order of two to four weeks on actively used file systems. Chapter 8, "Beyond Processes," shows examples of persistence of information in main memory, including the decrypted contents of encrypted files. We find large variations in persistence, and we correlate these variations to operating system architecture properties. The appendices present background material: Appendix A is an introduction to the Coroner's Toolkit and related software. Appendix B presents our current insights with respect to the order of volatility and its ramifications when capturing forensic information from a computer system. Conventions Used in This Book In the examples, we use constant-width font for program code, command names, and command input/output. User input is shown in bold constant-width font . We use $ as the shell command prompt for unprivileged users, and we reserve # for super-user shells. Capitalized names, such as Argus, are used when we write about a system instead of individual commands. Whenever we write "UNIX," we implicitly refer to Solaris, FreeBSD, and Linux. In some examples we include the operating system name in the command prompt. For example, we use solaris$ to indicate that an example is specific to Solaris systems. As hinted at earlier, many examples in this book are taken from real-life intrusions. To protect privacy, we anonymize information about systems that are not our own. For example, we replace real network addresses with private network addresses such as 10.0.0.1 or 192.168.0.1, and we replace host names or user names. Where appropriate, we even replace the time and time zone. Web Sites The examples in this book feature several small programs that were written for the purpose of discovery and analysis. Often we were unable to include the entire code listing because the additional detail would only detract from the purpose of the book. The complete source code for these and other programs is made available online at these Web sites: http://www.fish.com/forensics/ http://www.porcupine.org/forensics/ On the same Web sites, you will also find bonus material, such as case studies that were not included in the book and pointers to other resources. Excerpted from Forensic Discovery by Dan Farmer, Wietse Venema All rights reserved by the original copyright owners. Excerpts are provided for display purposes only and may not be reproduced, reprinted or distributed without the written permission of the publisher.

Table of Contents

Preface
About the Authors
I Basic Concepts
1 The Spirit of Forensic Discovery
Introduction
Unusual Activity Stands Out
The Order of Volatility (OOV)
Layers and Illusions
The Trustworthiness of Information
The Fossilization of Deleted Information
Archaeology vs. Geology
2 Time Machines
Introduction
The First Signs of Trouble
What's Up, MAC? An Introduction to MACtimes
Limitations of MACtimes
Argus: Shedding Additional Light on the Situation
Panning for Gold: Looking for Time in Unusual Places
DNS and Time
Journaling File Systems and MACtimes
The Foibles of Time
Conclusion
II Exploring System Abstractions
3 File System Basics
Introduction
An Alphabet Soup of File Systems
UNIX File Organization
UNIX File Names
UNIX Pathnames
UNIX File Types
A First Look Under the Hood: File System Internals
UNIX File System Layout
I've Got You Under My Skin: Delving into the File System
The Twilight Zone, or Dangers Below the File System Interface
Conclusion
4 File System Analysis
Introduction
First Contact
Preparing the Victim's File System for Analysis
Capturing the Victim's File System Information
Sending a Disk Image Across the Network
Mounting Disk Images on an Analysis Machine
Existing File MACtimes
Detailed Analysis of Existing Files
Wrapping Up the Existing File Analysis
Intermezzo: What Happens When a File Is Deleted?
Deleted File MACtimes
Detailed Analysis of Deleted Files
Exposing Out-of-Place Files by Their Inode Number
Tracing a Deleted File Back to Its Original Location
Tracing a Deleted File Back by Its Inode Number
Another Lost Son Comes Back Home
Loss of Innocence
Conclusion
5 Systems and Subversion
Introduction
The Standard Computer System Architecture
The UNIX System Life Cycle, from Start-up to Shutdown
Case Study: System Start-up Complexity
Kernel Configuration Mechanisms
Protecting Forensic Information with Kernel Security Levels
Typical Process and System Status Tools
How Process and System Status Tools Work
Limitations of Process and System Status Tools
Subversion with Rootkit Software
Command-Level Subversion
Command-Level Evasion and Detection
Library-Level Subversion
Kernel-Level Subversion
Kernel Rootkit Installation
Kernel Rootkit Operation
Kernel Rootkit Detection and Evasion
Conclusion
6 Malware Analysis Basics
Introduction
The Dangers of Dynamic Program Analysis
Program Confinement with Hard Virtual Machines
Program Confinement with Soft Virtual Machines
The Dangers of Confinement with Soft Virtual Machines
Program Confinement with Jails and chroot()
Dynamic Analysis with System-Call Monitors
Program Confinement with System-Call Censors
Program Confinement with System-Call Spoofing
The Dangers of Confinement with System Calls
Dynamic Analysis with Library-Call Monitors
Program Confinement with Library Calls
The Dangers of Confinement with Library Calls
Dynamic Analysis at the Machine-Instruction Level
Static Analysis and Reverse Engineering
Small Programs Can Have Many Problems
Malware Analysis Countermeasures
Conclusion
III Beyond The Abstractions
7 The Persistence of Deleted File Information
Introduction
Examples of Deleted Information Persistence
Measuring the Persistence of