Sunteți pe pagina 1din 17

digital investigation 3 (2006) 211–226

available at www.sciencedirect.com

journal homepage: www.elsevier.com/locate/diin

Data hiding in the NTFS file system

Ewa Huebnera, Derek Bema,*, Cheong Kai Weeb


a
University of Western Sydney, Australia
b
Edith Cowan University, Perth, Western Australia, Australia

article info abstract

Article history: In this paper we examine the methods of hiding data in the NTFS file system. Further we
Received 15 May 2006 discuss the analysis techniques which can be applied to detect and recover data hidden
Revised 20 October 2006 using each of these methods. We focus on sophisticated data hiding where the goal is to
Accepted 23 October 2006 prevent detection by forensic analysis. Obvious data hiding techniques, for example setting
the hidden attribute of a file, will not be included. Hidden data can be further obfuscated by
Keywords: file system independent approaches like data encryption and steganography. This paper is
Data hiding only concerned with the methods which are made possible by the structure of the NTFS file
Analysis techniques system, and with the recovery of hidden data, not its interpretation.
NTFS ª 2006 Elsevier Ltd. All rights reserved.
ADS

1. Introduction A method which fails to meet any one of the above criteria
is not effective in the long term. If data can be easily detected
This paper discusses the file system dependent methods that with standard utilities by a normal user then it is not hidden
can be used to hide data in the NTFS file system, and the anal- properly. And if the data can be overwritten by unrelated file
ysis techniques that can be applied to detect and recover this system activities, it can never be retrieved by the hiding party
hidden data. Target readers for this paper are computer foren- or the forensic examiner.
sic analysts and examiners, but the content may also be useful To order our discussion, we classify the effective hiding
for system administrators and managers. methods into two main categories:
We restrict the discussion to those methods of data hiding
techniques in NTFS file system which meet the criteria of se-  Specific methods based on unique NTFS data
curity and capacity as specified in Provos and Honeyman: structures.
 Generic slack space based methods in relation to NTFS.
 Standard file system check with a utility such as chkdsk
should not return any errors. We further explore how NTFS specific methods can exploit
 Hidden data will not be overwritten or the possibility of data the metadata structures and user data and directories in
being overwritten is low. NTFS. For the sake of completeness we will also briefly discuss
 Hidden data will not be revealed when using standard GUI some methods which we would not under general circum-
file system interface. stances consider effective according to the definition given
 A reasonable amount of hidden data can be stored. above.

* Corresponding author.
E-mail addresses: e.huebner@scm.uws.edu.au (E. Huebner), d.bem@scm.uws.edu.au (D. Bem), ckw214@yahoo.com (C.K. Wee).

1742-2876/$ – see front matter ª 2006 Elsevier Ltd. All rights reserved.
doi:10.1016/j.diin.2006.10.005
212 digital investigation 3 (2006) 211–226

the external clusters. In such case the list of clusters used is


2. Methodology and tools stored as a cluster run in the attribute MFT entry.
A data unit in NTFS is called a cluster; it is the smallest disk
We used a number of software tools to first hide data using space allocation unit. Every cluster in NTFS has a Logical Clus-
each of the discussed methods, and then recover these data ter Number (LCN), starting with 0 for the first cluster of the file
and restore its original format. Runtime’s DiskExplorer for system (Svensson, 2005). Clusters which belong to a file are also
NTFS v2.31 (DiskExplorer) was used to manually create the assigned a Virtual Cluster Number (VCN). For example, if a file
hidden data for testing purposes for all but one of the consists of six clusters, the first cluster of the file will have VCN
methods. The only exception was hidden data for alternate 0 and the last cluster – VCN 5. The cluster runs present in non-
data streams (ADS) which was created by a standard DOS resident attributes provide mapping between VCNs and LCNs.
command. The test data were created on a system with Metadata files are files that describe the structure of the file
Windows XP version 5.1.2600. Throughout this paper, ‘‘/case1/ system itself. Table 1 lists the NTFS metadata files and their de-
image1’’ file will be used in examples as the acquired image of scription. Microsoft defined 16 standard MFT records (file num-
the NTFS undergoing the analysis. bers 0–15), some of them currently unused (reserved for future
The following tools were used to detect and analyse hidden use). Additional metadata files are stored in the extensions
data: Windows XP chkdsk and Fsutil, Windows OEM Sup- metadata directory, as shown in the table. File numbers for ex-
port Tools Nfi (Microsoft OEM), Sleuth Kit 2.02 (Carrier), Fore- tensions metadata files start with 24, and all following num-
most 0.69 (Foremost), comeforth 1.00, dd, hexedit and bers are available for user files. The range of file numbers
strings. It should be noted that many other tools exist both from 16 to 23 is not allocated, and it is reasonable to assume
for creation and detection of hidden data. The software and that Microsoft reserves these numbers for some future use.
hardware tools used here serve to illustrate the topics The data hiding methods discussed in this paper, espe-
described, and it should not be implied that these tools are cially the NTFS structure based methods, rely on specific
best for the tasks described. features and structures of NTFS, and we will refer to the
names in the table throughout this paper without further
explanations.
3. NTFS background

In the NTFS file system, every object is a file, and as such it in- 4. NTFS specific data hiding methods
herits all the characteristics of a file. This includes file system
metadata which defines the structure of the file system itself. As stated before any object in NTFS is a file, and as such can
NTFS organizes structures on a disk volume in four logical have any file attribute. Some attributes, for example $DATA,
blocks (How NTFS Works) as shown in Fig. 1. $INDEX_ROOT or $INDEX_ALLOCATION may legitimately ap-
The most important feature of NTFS is the Master File pear multiple times in a single file, and in such case they are
Table (MFT), which is implemented as an array of records given unique names. Naturally depending on the file type, cer-
(Russinovich and Solomon, 2005). Every file and every direc- tain attributes are required and expected, but it appears that
tory has at least one entry in MFT, including the MFT itself. NTFS is not sensitive to a file including attributes which are
Each entry in MFT is called a file record and has a default fixed unnecessary. This feature can be exploited for hiding data in
size of 1024 B (Mikhailov). The first 42 bytes in a file record are such way that correct functioning of the system is not af-
reserved for the MFT entry header, and the remaining bytes fected. It should be noted that each attribute in NTFS has its
are used to store the so called attributes as shown in Fig. 2. unique numeric type identifier, and attributes are always
An attribute is a small data structure with a specific purpose, ordered according to these values.
for example $STANDARD_INFORMATION, $FILE_NAME or Except for $DATA attribute, most of the other attributes
$DATA (How NTFS Works). Two attributes, $STANDARD_IN- have specific formats so that they can serve their intended
FORMATION and $FILE_NAME are present in every file record, purpose. Any manipulation of the content of these attributes
independently of the file type. Some attributes are specific to may affect the integrity of the system, so they are not suitable
file types, for example $DATA for data files and $INDEX_ROOT for hiding data. There are certain exception, when an attribute
for directory files. It is important to note that apart from the is provided purely for backward compatibility and no longer
attributes required by the system, a file may have any other used, for example $SECURITY_DESCRIPTOR or extended attri-
attribute, even if it is not used by the system. butes $EA and $EA_INFORMATION. In theory it could be possi-
The content of an attribute can be either resident or non- ble to use such attributes for hiding data, assuming that
resident. A resident attribute stores its content directly in a software tool is available for adding these attributes to files.
the MFT entry. A non-resident attribute stores its content in In practice such approach does not appear effective, especially

NTFS Boot Sector MFT File System Data MFT Copy

Fig. 1 – NTFS volume structure. NTFS Boot Sector, layout of the volume, the file system structures and the boot code; MFT,
Master File Table; File System Data, storage for data that is not contained within the Master File Table; MFT Copy, Master
File Table copy.
digital investigation 3 (2006) 211–226 213

Standard File or Directory Data or Index Unused Space


Information Name

Fig. 2 – MFT entry with a resident record (How NTFS Works).

that there is no certainty that the backward compatibility will one of the following two ways is used (Schindler et al., 2002):
be maintained in future versions of NTFS. slipping (modifying Logical Block Number (LBN) to physical
The most effective hiding methods are based on the $DATA mapping to skip the defective sector) or remapping (reallocat-
attribute of files. This attribute is the only one without an im- ing LBN from defective area to a spare sector). In addition the
plied format, so its content can be arbitrary, it can have any volume managers included with Windows are capable of
size without raising suspicion, and it is reasonable to assume remapping bad sectors, so called sector sparring, and even
that it will always remain a feature of NTFS. recovering data on fault tolerant systems (Russinovich and
Solomon, 2005).
4.1. Metadata files based methods For older hard disks that do not have this capability, oper-
ating systems and file systems have to retain the ability to de-
The complete structure of the NTFS file system is defined by tect and mark defective sectors and clusters as damaged. This
its metadata files as shown in Table 1. All attributes of these ability may be used to exclude undamaged clusters from the
files are well defined, and even the $DATA attribute, where normal file system activities, and use them to hide data in
it is present, has a defined internal format to support the any system.
NTFS operations. There is one metadata file where the content In NTFS, bad clusters are marked in the metadata file $Bad-
of $DATA attribute is of no interest to the file system, namely Clus, which is the standard MFT entry 8. Initially, $BadClus is
$BadClus file, which will be discussed separately. a sparse file with the size set to the size of the entire file sys-
Despite this there is potential for hiding some data in the tem. When bad clusters are detected, they are allocated to
metadata files in such way that the functionality of the system this file. The size of data that can be hidden with this tech-
is not affected. The difficulty is that there is no guarantee that nique is equal to the capacity of the entire file system. Any
NTFS will remain insensitive to the additions in its future ver- number of clusters can be allocated to $BadClus and used to
sions, and that specialised software tools are required to ma- store data.
nipulate the metadata files. The very presence of such tools in To create the test data, clusters were added to the clus-
the file system is an indication that the investigator should di- ter run list of the standard named $DATA $Bad attribute of
rect some effort in this direction. $BadClus file. The size of the $DATA $Bad attribute and the
size of its MFT file record were modified appropriately.
4.1.1. Hiding data in $BadClus file Then the allocation status of clusters used to hide data
Modern hard disk controllers handle bad sectors themselves was set to 1 in $Bitmap, and the hidden data were pasted
without any involvement of the operating system. Typically onto the clusters. The details of the manual procedure for
hiding data in faked bad clusters are shown in Appendix
A. Fig. 3 shows the flowchart for detection of hidden data
in faked bad clusters.
Table 1 – Metadata files in NTFS (Russinovich and
Solomon, 2005)
File no. Metadata file Description

0 $MFT MFT record


1 $MFTMirr Partial backup of MFT
2 $LogFile Transaction logging file check for cluster allocated to
3 $Volume Volume information such as label, $Bad atribute in $BadClus
identifier and version
4 $AttrDef Attribute definition
5 . (dot) Root directory of file system clusters No no hidden data
allocated? in bad clusters
6 $Bitmap Allocation status of all clusters
7 $Boot Boot record Yes
8 $BadClus List of bad clusters
9 $Secure Security and access control check the content of
clusters marked as bad
information
10 $Upcase Converts lowercase characters to
matching Unicode uppercase
characters extract the clusters
11 $Extend Optional extensions directory
12–15 Unnamed Reserved for future use
24 $Extend\$Quota Quota file
analyse with data
$Extend\$ObjId Object identifier file
carving tools
$Extend\$Reparse Reparse point file
$Extend\$UsnJrnl Change journal file
Fig. 3 – Detection of hidden data in faked bad clusters.
214 digital investigation 3 (2006) 211–226

To check for clusters allocated to the $DATA $Bad attribute performed, the error message as shown in Fig. 5 will be
of the $BadClus file we use the Sleuth Kit istat command: displayed.
To discover whether there is any data hidden in this man-
istat /case1/image1 –f ntfs 8 ner the investigator should check the number of clusters allo-
cated to each $DATA attribute using NTFS File Sector
The very presence of clusters allocated to the $DATA $Bad Information Utility Nfi (Microsoft OEM). If the number of clus-
attribute is an indication of an unusual activity as it is rare for ters in the cluster run is larger than expected or there is more
the operating system to handle bad sectors. If the physical than one cluster run per attribute the data in allocated clusters
hard disk used to store the file system is still available, a surface should be extracted and analysed, as described in Appendix B.
scan should be performed to verify whether there are any dam- This method is obviously ineffective for those metadata
aged sectors on the disk. Even if bad sectors are discovered on files where $DATA attribute is written by various utilities of
a disk, all $DATA $Bad clusters must be inspected thoroughly. NTFS while the system is active, like $Mtf, $MtfMirr, $LogFile,
The content of the clusters marked as bad can be analysed $Secure and all extension metadata files.
using the technique described in Appendix B.
4.1.3. Hiding data in $Boot file
4.1.2. Hiding data in $DATA attribute In NTFS the boot record is stored in a metadata file called
Most of the metadata files, except the directories and the ex- $Boot. This is the only file with a fixed location; it always starts
tension metadata files already contain the $DATA attribute. at the first cluster of the file system. Windows allocates 16 sec-
Except for $BadClus, already discussed, NTFS uses the content tors to this file but typically only half of these sectors contain
of this data in its operation, so the format of the existing data non-zero bits (Carrier).
is defined and depends on the role the metadata file fulfils in According to the NTFS documentation at the Linux NTFS
the file system. It is possible to append some hidden data to project (Provos and Honeyman), there are certain unused
these $DATA attributes without disturbing the data already bytes in the boot sector. However, Windows will not mount
present. In most cases the $DATA attribute is both read and the file system if there are any non-zero values in these un-
written by NTFS, so the appended data could be overwritten used bytes (Carrier). As a result, this space cannot be used to
by the normal activity of the system, but some of the $DATA hide data.
attributes are static, for example in $AtrDef, $Bitmap, $Boot, However, the bytes allocated to boot code in the $Boot file
and $UpCase. The size of data that can be hidden in this man- of NTFS file system can be used to hide data. Boot code is
ner is only limited by the size of the file system as more clus- only essential for a bootable file system to locate files required
ters can be allocated to the $DATA attribute of any of the listed to boot up Windows (Carrier). For a non-bootable file system, it
metadata files to hide data. is used to store the error message that is displayed if an at-
We applied this method to the $Boot file, but it is equally tempt is made to boot from this partition. The size of data
applicable to all others. The following procedure was used to that can be hidden in this manner is limited by the number
create test data: of non-zero bytes in the $Boot file. Fig. 6 shows the analysis
flowchart for detection of hidden data in the $Boot file and
1. Cluster run list of the $DATA attribute of the $Boot file is the backup boot sector.
modified. The analysis of hidden data in the $Boot file should start by
2. The last VCN value of the $DATA attribute of the $Boot file comparing the boot sector and the backup boot sector. Let’s as-
is modified. sume that there are 6,136,830 sectors in the partition. In such
3. The real size, allocated size and compressed size of the case the following sequence of commands should be used,
$DATA attribute of the $Boot file is modified. the same as for checking the integrity of the backup boot sec-
4. The allocation status of the additional clusters allocated to tor in volume slack analysis, which will be discussed later:
$Boot is set to 1.
5. Hidden data is pasted to the allocated clusters. dd if¼/case1/image1 bs¼512 count¼1 skip¼6136829
of¼/case1/backupbootsector
If the steps listed in creating the test data are not followed dd if¼/case1/image1 bs¼512 count¼1 of¼/case1/
exactly, the chkdsk command may return an error. For exam- bootsector
ple, if any of the first three steps is not completed, the error md5sum /case1/backupbootsector
message as shown in Fig. 4 will be displayed. If step 4 is not md5sum /case1/bootsector

Fig. 4 – File error message displayed by the chkdsk command.


digital investigation 3 (2006) 211–226 215

Fig. 5 – File system error message displayed by the chkdsk command.

This consistency check would only give an indication of file and it is not certain whether they can be made non-resident
system manipulation if the checksums differ from each other. for the sake of allocating additional clusters using the
If they are the same, there is still a possibility that the modi- methods applied to $DATA attribute.
fied boot sector was copied to its backup to avoid detection. It seems that hiding data in user data files or directories
For this reason the extracted content should still be analysed carries with it a much lesser risk of accidental discovery,
with a hex editor, foremost and comeforth as shown in and does not rely on current insensitivity of NTFS to manipu-
Appendix B. lation of its metadata. This does not mean that metadata files
should not be analysed carefully whenever an NTFS image is
4.1.4. Summary subject to forensic examination. The NTFS File Sector Infor-
NTFS is a very complex system, and its full documentation is mation Utility Nfi (Microsoft OEM) is a good tool to start the ex-
not available from Microsoft, therefore, any manipulation of amination, as it will provide the clues for all data hiding
the metadata files for hiding data always carries some risk techniques discussed above.
of breaking the file system structure. The only exception is
the $BadClus file where no interpretation of data is ever
attempted by the system. Some small amount of data can be 4.2. Data files based methods
hidden in the $Boot file, but even that can be accidentally dis-
covered if anyone attempts to boot the system using this file. As stated before each file and each directory in NTFS has at
Except for $DATA attribute, other attributes of metadata files least one entry (a file record) in Master File Table. A typical
are resident, so they do not offer much in terms of capacity, GUI interface for the file system assumes that each data file
has a single unnamed $DATA attribute and each directory –
a single $INDEX_ROOT attribute. It is the $DATA attribute
which provides most scope for hiding data, both in terms
run chkdsk command
in Windows of capacity and longevity of hidden data. We will examine
three methods of data hiding in $DATA attribute: in alternate
data streams in data files, in alternate data streams in
directories and in extension of the existing unnamed
perform consistency check $DATA attribute.

4.2.1. Alternate Data Streams (ADSs)


Alternate Data Streams (ADSs) are a unique feature of NTFS
extract $Boot file and file systems introduced with Windows NT 3.1 in the early
the backup boot sector
1990s to provide compatibility between Windows NT servers
and Macintosh clients which use Hierarchical File System
(HFS). HFS uses streams named ‘‘resource fork’’ and ‘‘data
check their content fork’’. Both streams (or forks) are linked to one name in the
Macintosh file system. Resource forks are used to store appli-
cation metadata (icons, sounds, fonts, etc.) (The Data Fork,
1996).
analyse with data In NTFS an MFT file record may have more than one $DATA
carving tools attribute; the additional named $DATA attributes are alternate
data streams. NTFS ADSs can be used to provide additional de-
Fig. 6 – Analysis of hidden data in $Boot file and the backup scriptions for folders or files (creator, keywords, thumbnail
boot sector. preview, etc.), to attach independent named data streams to
216 digital investigation 3 (2006) 211–226

an NTFS file or folder, or to store the summary data and vol- Additionally, most commercial computer forensics soft-
ume change tracking (Means, 2003). ADSs can also be used to ware tools also provide a facility to scan specifically for
hide data in NTFS file system as most of the system utilities ADSs, though only some of them allow this to be done in
only examine the first unnamed $DATA attribute. a fast and elegant way (X-Ways). However, we need to keep
Fig. 7 shows a main unnamed stream has2ads.txt with in mind that since there are legitimate applications of ADSs,
two files cf.pdf and infoday.doc attached to the main file as it cannot be assumed that every single ADS encountered is
two Alternate Data Streams. The ADS does not show up in di- used to hide data. No tools distinguish between ADSs used
rectory listing and the recorded file size of the original file for legitimate purpose and ADSs used to hide data, thus
(here: has2ads.txt) does not change by adding ADSs (Bem each ADS should be examined to verify its purpose. It is rec-
and Huebner, 2006). ommended to investigate the content of each ADS since
The size of data that can be hidden in ADSs is only lim- a common ADS name used by a legitimate program may be
ited by the size of the NTFS media used. One major differ- chosen to avoid detection. Due to the above limitation of
ence between this data hiding technique and others open source as well as commercial tools, examining ADSs in
discussed in this paper is that an ADS is relatively easy a specific disk image may turn out to be a very time consum-
to create (Zadjmool, 2004). Other data hiding techniques ing, possibly even impractical task.
we examined require specific programs or low level file sys-
tem manipulation tools such as a hex editor. ADSs can be 4.2.2. $DATA attribute in a directory
created easily with a DOS command as shown below. For The $DATA attribute is typically used to store the content of
example, the type command can be used to hide the file a file or other specific information such as allocation status.
‘‘slacker.exe’’ in an ADS called ‘‘hahaha’’ of ‘‘abcd.txt’’ as It is a common attribute for all data files and some metadata
follows: files but not directories. Although the $DATA attribute is un-
necessary for a directory, validation checking with chkdsk
type slacker.exe > h:\abcd.txt:hahaha or any other standard utility does not return an error when
a directory contains a $DATA attribute. As a result, the
For testing purposes all ADSs were created by issuing the $DATA attribute in a directory can be used to hide data
same DOS command as the one shown above. (Carrier, 2005). In addition, alternate data streams (named
Detecting data hidden with ADSs is relatively easy, as there $DATA attributes) can also be created with directories, not
are many well developed tools that can be used to scan a drive just data files, to hide data. The size of data that can be hidden
for ADS. Some examples of such tools are lads and streams, as with this technique is only limited by the capacity of the file
shown below: system.
The following procedure was used to create the test data:
lads /sv h:
streams –s h:  A directory is created.
 The $DATA attribute is inserted in the directory. This attri-
The following Sleuth Kit command can be used to get the bute is inserted before $INDEX_ROOT, $INDEX_ALLOCA
MFT address and attribute identifier of the ADS called TION and $BITMAP because the type identifier of $DATA is
‘‘h:\abcd.txt:hahaha’’ which will be revealed by the lads or smaller than these attributes.
streams command above:  The allocated size of MFT entry is modified to appropriate
size.
fls –rf ntfs /case1/image1 j grep abcd.txt:hahaha  The attribute identifier of the other attributes might need to
be changed to avoid the newly created $DATA attribute hav-
The commands above provide the MFT address, attribute ing the same identifier as existing attributes.
type and attribute identifier. Let’s assume that 59-128-4 is  The allocation status of clusters for the $DATA attribute is
returned. The following commands can be used to inspect set to 1.
the content of ADSs:  The file content is pasted to the clusters allocated to the
$DATA attribute.
icat –f ntfs /case1/image1 59-128-4 > /case1/ADS1
file /case1/ADS1 Fig. 8 shows the analysis flowchart to detect hidden data in
hexedit /case1/ADS1 the $DATA attribute of a directory.

Fig. 7 – ADS visibility in NTFS and non-NTFS environments.


digital investigation 3 (2006) 211–226 217

retrieve the first directory

check whether there is $DATA retrieve next directory


attribute in the directory
No
No Yes
$DATA found? all directories analysis completed
checked?
Yes

check the contents of


$DATA attribute

Fig. 8 – Analysis of hidden data in $DATA attribute of directory.

The first step in the analysis is to list the directory entry in-  Allocated size of the file is modified to the appropriate value.
formation of all directories, as follows:  Allocation status of the added clusters is set to 1 in $Bitmap.

fls –rDf ntfs /case1/image1 j grep 128 Fig. 10 shows the flowchart for the analysis of hidden data
in additional clusters allocated to a file.
Fig. 9 shows that the ‘‘r/r 40-128-3’’ is a $DATA attribute If any of the steps listed above were omitted when adding
which might contain hidden data. clusters, then a standard disk analysis tool like chkdsk will de-
If any $DATA attributes were discovered, their content can tect errors in the file system. Fig. 11 shows errors which will
be checked with the following commands: occur if any of the first three steps were not performed, i.e.
modification of the cluster run list, modification of the last
icat –f ntfs /case1/image1 40-128-3 > /case1/ VCN or modification of the file size. The error message shown
dataindirectory1 in Fig. 12 will be displayed if the first three steps were per-
file /case1/dataindirectory1 formed correctly, but the added clusters were not marked as
hexedit /case1/dataindirectory1 allocated. Errors of this nature are an indication of file system
manipulation, and warrant further investigation.
Analysis techniques used to detect ADSs in files detect The data hidden in additional clusters can still be discov-
ADSs in directories at the same time. The process has been ered even if the procedure was followed without any omis-
explained in the previous section and is not repeated here. sions, and no errors were reported by chkdsk. In such case
a recursive directory listing of the file system has to be per-
4.2.3. Data hiding in added clusters formed to identify all files:
This hiding technique is based on the ability to allocate addi-
tional clusters to an NTFS file. If there is an existing file with fls –rFf ntfs /case1/image1
some clusters already allocated by NTFS, more clusters can
be allocated to this file manually, and data can be hidden in The analysis is based on retrieving the files one by one and
these clusters. comparing the allocated size and the real size for each file.
With this method, the size of hidden data is only limited by These values are stored in the header of $DATA attribute of
the capacity of the file system as owners are free to allocate as the file, and it would be most efficient to obtain them directly.
many additional clusters as they wish. One disadvantage of When using existing tools, the real size of the file can be
this hiding technique is that whenever the original file in- obtained by running the istat command of Sleuth Kit but
creases in size, the hidden data could be overwritten and not the allocated size. To obtain the allocated size the MFT
lost. For this reason stable files are preferable targets of this file record can be processed manually to retrieve the value
technique. This is not a real hindrance, as the original file is (which is time consuming). Other tools, for example Dis-
owned by the hiding party, and other users can be denied kExplorer, can be used, or the allocated size can be calculated
write access to this file. by multiplying the cluster size and total clusters allocated to
We used the following procedure to create the test data: the file.
The number of allocated clusters and the real size of the file
 Cluster run list information of the file is modified to allocate can be retrieved with the Sleuth Kit istat command:
more clusters.
 Last VCN of the file is modified to the appropriate value. istat /case1/image1 29

Fig. 9 – Output of the fls command checking for $DATA attributes in directories.
218 digital investigation 3 (2006) 211–226

run chkdsk command


in Windows

retrieve the first file

check the real size of the file in the retrieve next file
$DATA header of the file

check the allocated size of the file in the


No
$DATA header of the file

No Yes
sizes: alloc-real> all files analysis completed
cluster size? checked?

Yes

extract the clusters detected

check the contents of


these clusters

analyse with data


carving tools

Fig. 10 – Analysis of hidden data in additional clusters allocated to a file.

The cluster size of the file system can be obtained by run- clusters should be extracted and analysed as described in
ning the Sleuth Kit fsstat command: Appendix B.
To detect and retrieve hidden data in additional clusters
fsstat –f ntfs /case1/image1 each file has to be analysed individually, and this process is
time consuming if performed manually. However, to the
Then the additional space of the file can be calculated as best of our knowledge there is no specific tool available that
follows: automates this process.

Allocated size ¼ number of clusters  cluster size


Additional space ¼ allocated size  real size 5. Slack space based hiding methods
in NTFS
If the additional space is larger than the cluster size, un-
necessary clusters have been allocated to that file. This is Slack space relates to all the areas on disk surface which can-
uncommon and should be considered as an indication not be utilised by the file system because of discrete nature of
that the file may contain hidden data. The additional space allocation. Existence of slack space is characteristic of

Fig. 11 – File error message displayed by chkdsk command.


digital investigation 3 (2006) 211–226 219

Fig. 12 – File system error message displayed by chkdsk command.

all file systems, not just NTFS. The discussion of data hiding command or with Windows utility fsutil. In this example,
methods in NTFS would not be complete without discussing fsstat shows that 6,136,782 sectors are allocated to the file
slack space, and we will highlight those aspects of the system:
methods which are specific to NTFS.
fsstat /case1/image1 –f ntfs
5.1. Volume slack
For Windows NT 4.0, 2000 and XP, if there are N sectors in
Volume slack is the unused space between the end of the file the partition, N-1 sectors are allocated to NTFS and the last
system and the end of the partition where the file system re- sector is used to store the backup boot sector (Carrier, 2005).
sides. The size of the hidden data in volume slack is only lim- As a result, it is uncommon to have more than one sector of
ited by the space on the hard disk available for a partition as volume slack, and if more sectors are discovered all of the vol-
the size of partition can be changed in relation to the size of ume slack space should be investigated.
volume to hide more data, or the size of volume can be Even if only one sector of volume slack is present, it should
changed in relation to the size of partition. The procedure be extracted and compared with the boot sector to check that it
for creating test data was as follows: contains the backup boot sector, as discussed in Section 4.1.3.
Because the volume slack has no cluster numbers, the
 The $Boot file is modified to reduce the number of sectors Sleuth Kit dcat command cannot be used to view its content.
allocated to file system. The dd command can be used to extract volume slack, and
 The $Bitmap file is reduced to remove the bits used for set- a hex editor can be used to view the content. The volume slack
ting the allocation status of clusters no longer in the file can then be analysed as described in Appendix B.
system.
 Data to be hidden is pasted to the volume slack and file sys- 5.2. File system slack
tem slack.
File system slack is the unused space at the end of the file sys-
Fig. 13 shows the analysis flowchart for detection of hidden tem that is not allocated to any cluster. This happens because
data in volume slack. the partition size may not be the multiple of the cluster size
The forensic analysis in Windows should always start with (Carrier, 2005). For example, if there are 10,001 sectors in the
chkdsk command to check the integrity of the file system. partition, the first 10,000 sectors are allocated to 2500 clusters
With manual modification of the file system it is easy to with the cluster size of 4 sectors and the last sector becomes
miss some of the needed steps, and errors may be generated file system slack. The size of data that can be hidden in file sys-
by chkdsk giving some indication of the possibility of hidden tem slack depends on the size of a cluster. For example, for
data. For example, if the number of sectors allocated to the file a standard NTFS cluster size of 8 sectors, the maximum size
system is changed in the $Boot file without an appropriate of the file system slack is 7 sectors. For testing purposes the
change in the $Bitmap file, a message ‘‘Correcting errors in data to be hidden was simply pasted over the file system slack.
the Volume Bitmap’’ would appear when running the chkdsk Fig. 14 shows the analysis flowchart for the detection of
command. hidden data in file system slack.
The next step is to check the number of sectors allocated to The number of sectors allocated to the NTFS file system (A)
the partition using the Sleuth Kit mmls command. In this ex- and the number of sectors per cluster (B) can be obtained by
ample, the mmls command returns 6,136,830 as total sectors running the fsstat command or Windows utility Fsutil:
in /case1/wholeimage:
fsstat /case1/image1 –f ntfs
mmls /case1/wholeimage –t dos
If the remainder of the division A/B is 0, then there is no file
Then the number of sectors allocated to the NTFS file sys- system slack. Otherwise, the file system slack has to be ana-
tem in that partition has to be checked with the fsstat lysed in a similar way to the volume slack.
220 digital investigation 3 (2006) 211–226

run chkdsk command


in Windows

check number of sectors allocated


to the partition (A)

check number of sectors allocated


to the NTFS file system (B)

compare backup copy of boot sector


with the boot sector

Yes no hidden data


A=B+1 and bootsector
copies match? in volume slack

No

extract the sectors found in


the volume slack

Fig. 13 – Analysis of hidden data in volume slack.

5.3. File slack This unused space can be used to hide data (Chuvakin,
2002).
File slack is the unused space between the end of a file and There are two types of file slack, the RAM slack and the
the end of the last allocated cluster. The file slack appears drive slack. The RAM slack is the space from the end of a file
because a cluster is the smallest unit of disk space alloca- to the end of the last partially used sector in the last allocated
tion in NTFS and a whole cluster has to be used even if cluster. The drive slack spans the space from the start of the
the file does not fill the whole cluster (Mallery, 2001). next sector to the end of the last allocated cluster (NTI). For

run chkdsk command


in Windows

check number of sectors allocated


to the NTFS file system (A)

calculate the remainder of


A / (number of sectors per cluster)

Yes
the reminder = 0? no file system slack

No

extract the sectors of the


file system slack

Fig. 14 – Analysis of hidden data in file system slack.


digital investigation 3 (2006) 211–226 221

Fig. 15 – Slack space of a 600 B file with 2048-B cluster (Carrier, 2005).

example, let’s consider a 600 B file is stored in NTFS with In the example below we extract the slack space of a file
a 2048-B cluster and a 512-B sector as shown in Fig. 15. RAM with the MFT number 28. To obtain the file size we run the
slack stretches from the end of file to the end of sector 2, Sleuth Kit istat command:
and drive slack is composed of sectors 3 and 4.
The analysis of hidden data in slack space depends on the istat –f ntfs /case1/image1 28
operating system as it is the operating system that decides
how to handle file slack, and not the file system. For example, The size of the RAM slack and drive slack in bytes is calcu-
Microsoft Windows fills the RAM slack with zeros, and ignores lated as follows:
the drive slack when storing a file (Carrier, 2005). For this rea-
son any non-zero bit in the RAM slack of a file is suspicious file slack ¼ allocated size  real size
and worth further analysis. drive slack ¼ int(file slack/512)  512
The size of data that can be hidden in the slack space of RAM slack ¼ file slack  drive slack
a single file depends on the cluster size (Incident Handling).
The amount of data hidden in a single file is always less To extract the entire file with MFT number 28 including its
than the size of the cluster. The potential size of hidden data file slack we run the Sleuth Kit icat command:
in file slack is actually very large as data can be hidden in slack
space of multiple files, not just a single file. icat –sf ntfs /case1/image1 28 > /case1/file28
The procedure to create test cases for hidden data in RAM
slack, drive slack and both is as follows: Let’s assume that the file size is 119,875 B and the RAM
slack is 445 B. To extract the RAM slack we run the dd com-
 locate the suitable file or files with sufficient slack space to mand with the following parameters:
hide data,
 paste the data to slack space of the files. dd if¼/case1/file28 of¼/case1/file28RAMslack bs¼1
skip¼119875 count¼445
Fig. 16 shows the analysis flowchart for the detection of
hidden data in the file slack. The analysis begins by checking The dd command is also used to extract the drive slack as
the RAM slack space for each file. If there are any non-zero bit follows:
in the RAM slack, both RAM slack and drive slack of the file are
extracted for further analysis. Otherwise, only the drive slack dd if¼/case1/file28 of¼/case1/file28driveslack
space is extracted. bs¼512 skip¼235 count¼1

check the RAM slack

non zero bit No


in RAM slack

Yes

extract both RAM slack and


extract drive slack of all files
drive slack of all files

check their content

Fig. 16 – Analysis of hidden data in file slack.


222 digital investigation 3 (2006) 211–226

This process should be repeated to extract the slack space cluster size. However, it may be modified in such a way that
of each file for analysis. The extracted data is then analysed as more hidden data can be stored. For example, with a larger
described in Appendix B. cluster size, more hidden data can be stored in the file slack
A command line tool, Slacker (Metasploit, 2006), has been of a file. An NTFS system with a cluster size that does not
made available recently, which allows reading and writing match its file system size is suspicious.
data in file slack space automatically. Slacker provides differ- The next step is to examine metadata files with Microsoft
ent hiding strategies based on using slack space in a mix of OEM tool Nfi with a view of detecting any abnormalities in
consecutive and randomly selected files. The manual terms of the length of cluster runs in $DATA attributes, pres-
methods of detection and extraction described above can be ence of names $DATA attributes, or any other sign that the
used against data hidden with Slacker. metadata files are different than expected.
Next the system should be searched for the presence of
data hiding tools. Attention should also be paid to both digital
6. Ineffective data hiding methods and physical files that contain a record of numbers that might
be the cluster addresses where hidden data is stored. All such
As stated in the introduction, effective data hiding techniques files could themselves be hidden using manual methods.
in a file system should meet the goals of security and capacity Depending on the result of the steps above, any combina-
(Provos and Honeyman). Below we list some uncommon and tion of places for hidden data should be thoroughly examined,
ineffective techniques possible with NTFS which do not sat- potential hidden data extracted and investigated further.
isfy all of these goals.

 Set the allocation bit of certain unallocated clusters to 1 and 8. Conclusion


hide data in these clusters: a simple chkdsk validation
would detect this. In general, the analysis of hidden data in NTFS file system is
 Hide data in unallocated clusters: there is a high possibility divided into three phases. The first phase is to determine
of the hidden data being erased unless certain countermea- whether any data is hidden. This process can either system-
sures are implemented such as setting the hard disk to read atically check for all hiding methods discussed in this paper,
only access. or search the system for anomalies. For example, it is abnor-
 Hide data in unallocated MFT entries: as above, hidden data mal for an operating system to detect bad sectors before
are likely to be erased. a hard disk does, so the very presence of any bad clusters
 Hide data in unused space in an MFT file record: hidden data is suspicious and worth further analysis. Similarly, if the in-
is erased if more attributes are added to the MFT file record tegrity of the system is under suspicion because the default
or the size of an attribute increases. cluster size is changed, the file slack is likely to contain hid-
den data.
There are certain environments where these hiding tech- There are no specific forensic analysis tools that check for
niques may be effective. Let’s consider data hiding in unallo- hidden data in NTFS file system except small collection of lim-
cated clusters as an example. If the hard disk is write ited tools that check for alternate data streams. While the
protected or a rootkit installed (Carvey, 2004) in the system analysis techniques that we discussed may be helpful in de-
that will never write to certain unallocated location, the hid- tection and recovery of the hidden data, the process is time
den data would not be erased. Another possibility is the consuming without automated tools, and requires in depth
scheme proposed by Eckstein and Jahnke (2005) for journaling knowledge of NTFS structures.
file systems like Ext3, where traditional consistency checks on The second phase is to extract the hidden data, and the
restart are not performed. As a result, a thorough investiga- third phase is to recover the hidden files. This may be difficult
tion of the system and the physical environment is important because hidden information may be stored in the file system
and may give some clues about the likely data hiding tech- without any structure or metadata. The recovery is particu-
niques used. larly challenging if data are stored in a random order and
the file signature is removed. Additionally, there may be cryp-
tographic or steganographic techniques used which will pre-
7. NTFS integrity vent complete data recovery.
One of the difficulties of analysing NTFS file system for hid-
A check of general integrity should be performed on NTFS be- den data is that it is very flexible and supports many options,
fore any analysis starts. The chkdsk command should be run, some not commonly used, some only partially documented.
and if it returns any error, this is an indication that the file sys- As a result, there are many possible ways to hide data, espe-
tem could have been manipulated and left in an unstable cially when NTFS specific data structures are used for this
state. Next the standard Windows utility Fsutil or the Sleuth purpose. The additional difficulty is that the complete docu-
Kit command fsstat should be run to obtain general infor- mentation for the NTFS system is not published, and it is
mation about NTFS system under investigation. not always possible to determine which value combinations
The cluster size of the system should be checked against in system data structures are valid and which are not (Carrier,
the default size matching the file system size. The default 2005). A good example is the ability to add a $DATA attribute to
cluster size in NTFS depends on the size of file system (Svensson, a directory, which is ignored by system utilities although it
2005). It is uncommon for a normal user to modify the default does not fit the logical structure of the file system. Other
digital investigation 3 (2006) 211–226 223

Fig. 17 – $DATA attribute of $Bitmap.

similar options of adding hidden data may already exist, or automate this task to become available. This tool is used
may yet be created by new versions of NTFS. here to demonstrate how NTFS file system can be manipu-
Probably the best and most comprehensive documentation lated to hide data.
of NTFS comes not from Microsoft, but from the Linux com- To prepare a test file system for analysis we used the fol-
munity projects which work on providing NTFS drivers for lowing procedure:
Linux operating systems. This documentation is the result of
years of back-engineering and many experiments (Russon (1) Identify the clusters where $DATA of $Bitmap file is
and Fledel). This means that the number of methods for hid- stored. As shown in Fig. 17, it starts at x0005DA4C and it
ing data will inevitably grow in the future, and to match this is allocated 24 clusters.
growth new forensic analysis tools and methodology will be (2) Inspect the clusters that are allocated to $Bitmap.
created. (3) Identify unallocated clusters. In this example, 12 clusters
(from 383,624 to 383,635) would be marked as bad clusters
to store hidden data as shown in Fig. 18. Calculation of
Appendix A. the cluster number represented by a bit in $Bitmap is
Detailed process of hiding data in faked bad shown below:
clusters
Cluster number ¼ ððA  BÞCDÞ þ ðEFDÞ þ ðGDÞ þ H  1

The tool used in this example is Runtime’s DiskExplorer for


NTFS v2.31. While using this tool to edit the NTFS might A ¼ sector address of current sector;
seem awkward and too complicated for ‘‘script kiddies’’ level B ¼ starting sector for $Data attribute of $Bitmap;
suspects, it may just be a matter of time for a tool that can C ¼ number of bytes in a sector;

Fig. 18 – Allocation status of faked bad clusters is set to 1.


224 digital investigation 3 (2006) 211–226

Fig. 19 – Modification of the $Bad attribute of $BadClus file to create faked bad clusters.

D ¼ number of bits per byte; processor with little-endian ordering, so the least signifi-
E ¼ number of rows before the targeted bit; cant byte of a number is in the first storage byte (Li, 1999).
F ¼ number of bytes per row; For example, 383,624 (05dA88) is stored as 88DA05.
G ¼ number of bytes before the byte for that bit; (5) Modify the size of the $Bad attribute to 0  58.
H ¼ location of the bit in that particular byte. For example, (6) Modify the size of the MFT to 0  180.
H ¼ 1 for 01 and H ¼ 4 for 08. (7) Hide data into cluster 383,624 using the ‘‘paste from file
command’’ in DiskExplorer.
For example, the calculation for the bit that represents clus- (8) Run chkdsk in Windows XP to ensure there were no
ter address 383,524 in $Bitmap is shown below: structure error introduced.
Starting sector for $DATA attribute of $Bitmap: 029FE8D6 (9) The system is tested using Sleuth Kit before data are hid-
Current sector: 029FE933 den. The dstat command is run to ensure the target clus-
Cluster number ¼ ðð029FE933  029FE8D6Þ512  8Þ ters are unallocated and the istat command to ensure
that no cluster is assigned to $BadClus. For example:
þ ð21  16  8Þ þ ð1  8Þ þ 1  1
dstat /dev/sda2 –f ntfs 383624, repeat this for all
¼ 380; 928 þ 2688 þ 8 targeted clusters
istat /dev/sda2 –f ntfs 8
¼ 383; 624 (10) After the data are hidden, the same commands are used to
ensure the clusters are allocated to $BadClus properly. Be-
sides the dstat and istat commands, the dcat com-
(4) Add clusters 383,624–383,635 to the run list of $BAD attri- mand is run to check the content of hidden data. It is
bute as shown in Fig. 19. Note that we are using an Intel also recommended to extract the hidden clusters with

Table 2 – Result of hidden data detection/recovery attempts for cluster-based hiding techniques
Hidden file Hiding technique Result of foremost

A Microsoft document file Sequential Successful detection and recovery


and an html file
A Microsoft document file Reversed order Successful detection of the files but unable
and an html file of clusters to open or meaningless data displayed
A Microsoft document file Header removed Failed to detect the files
and a jpg file
digital investigation 3 (2006) 211–226 225

first sector of second sector of third sector of


hidden file hidden file hidden file
sic
Foren

drive slack of first file drive slack of second file drive slack of third file

sector that contains


hidden file

sector that does not


contain hidden file

Fig. 20 – Separation of a word across sectors.

the dd command under Linux and to open the extracted impossible to recover the file. During this research, we carried
file. For example: out tests to recover files hidden using the above techniques in
dstat /dev/sda2 –f ntfs 383624 (repeat this for all tar- faked bad clusters; the results are shown in Table 2.
geted clusters) Comeforth, an add-on of Sleuth Kit, is more useful in recov-
istat /dev/sda2 –f ntfs 8 ering data if a file is not stored in sequence. Comeforth is sim-
dcat /dev/sda2 –af ntfs 383624 ilar to lazarus (Farmer and Venema, 2005); it divides file into
dd if¼/dev/sda2 bs¼4096 skip¼383624 count¼12 of¼/ blocks and runs the file command on every block (Carrier).
mnt/usb/recoverfile Users can then view each block separately and select blocks
to be recovered as a file.
A keyword search can also be performed with hexedit,
Appendix B.
strings or other tools if part of the content of the hidden file
Analysis of extracted data
is known, for example:

Once the hidden data are located in the file system, its content
strings /case1/image1 j grep keyword
should be analysed. One way to check the content of the clus-
ters is to use the Sleuth Kit dcat command. However, this will
However, if a keyword is separated across two non-consec-
only reveal hidden data stored in ASCII encoding. For exam-
utive clusters, the keyword search will fail. For example, if
ple, if we assume that 12 clusters of the image 383,624–
data are hidden only in the first sector but extraction is done
383,635 are suspected to contain hidden data, the command
on the cluster, a word might be separated as shown in
format is as follows:
Fig. 20, and the keyword search fails.
The most challenging step in detecting and recovering hid-
dcat /case1/image1 –f ntfs 383624 12
den data is to guess how data are stored. For example, data
can be hidden only in the first sector of the drive slack of
For further analysis, we can extract the clusters and use
each file. Or data can be hidden only in the drive slack of the
data carving tools such as foremost and comeforth to recover
first file in each of the five directories created for this purpose.
data with the following commands:
Any number of combinations is possible. Detection and recov-
ery is hard, if not impossible, without knowing the method of
dd if¼/case1/image1 bs¼4096 skip¼383624 count¼12
storage. On the other hand it is unlikely that the storage algo-
of¼/case1/badclusters
rithm has been applied manually, and it is recommended to
foremost –c /etc/foremost.conf –v –o /forensic/
search for data hiding tools in the system (Kruse and Heiser,
recover/case1/badclusters
2002). The algorithm used to hide data can then be analysed
to decide on appropriate ways to extract file slack.
This analysis technique works if the files are stored se-
The hidden files can be scrambled and obfuscated using
quentially in the extracted clusters. However, a file can be seg-
many techniques including steganography and cryptography.
mented and stored in a non-sequential way or even randomly
It is unlikely that such process was conducted manually, so it
(Carvey, 2004). For example, if a Microsoft Word file is stored
is likely that software tools exist in the analysed file system
with 383,629 as the starting cluster, moving backward and
which were used to modify the hidden file. These software
storing the last portion of file in cluster 383,624, foremost is
tools may either be present as an executable image in the
unable to recover the file correctly. This technique does not
file system, or they may themselves be hidden.
prevent the owner from retrieving the files as they can record
the correct order of clusters used to hide the file.
To make the forensic analysis even harder, the owner may references
also remove the signature of a file to avoid detection by data
carving tools (Carvey, 2004). Data carving tools such as foremost
recover files based on their data structures such as the header Bem D, Huebner EZ. Alternate data streams in forensic investi-
and the footer (Foremost), and without these structures, it is gations of file systems backups. Athens, Greece: ATINER.
226 digital investigation 3 (2006) 211–226

Available from: http://www.cit.uws.edu.au/compsci/ Means RL. Alternate data streams: out of the shadows and into
computerforensics/Technical%20Reports/index.php; 2006. the light, http://www.giac.com/; 2003. p. 45.
Carrier B. File system forensic analysis. Upper Saddle River, NJ: Metasploit Anti-forensics Project Slacker; 2006. Available from:
Addison-Wesley; 2005. http://www.metasploit.com/projects/antiforensics/.
Carrier B. The Sleuth Kit. Available from: http://www.sleuthkit. Microsoft OEM support tools. <http://support/microsoft/com/
org/sleuthkit/desc.php. support/kb/articles>.
Carvey H. Data hiding on a live system. Seattle, WA, USA: Black- Mikhailov D. NTFS file system. Available from: http://www.digit-
Hat Windows Security. Available from: http://www.blackhat. life.com/articles/ntfs/.
com/html/win-usa-04/bh-win-04-speakers.html; 2004. NTI. File slack defined. <http://www.forensics-intl.com/def6.html>.
Carvey H. Windows forensics and incident recovery. Boston, MA: Provos N, Honeyman P. Detecting steganographic content on the
Addison-Wesley; 2004. internet. p. 13.
Chuvakin A. LinuxSecurity.com. Abailable from: http://www. Runtime’s DiskExplorer for NTFS. <http://www.runtime.org/dis
linuxsecurity.com/content/view/117638/49/; 2002. kexpl.htm>.
Eckstein K, Jahnke M. Data hiding in journaling file systems. In: Russinovich ME, Solomon DA. Microsoft Windows internals.
5th annual digital forensic research workshop. New Orleans: Redmond: Microsoft Press; 2005.
Louisiana. Available from: http://www.dfrws.org/2005/ Russon R, Fledel Y. NTFS documentation. Available from: http://
proceedings/; 2005. www.linux-ntfs.org/content/view/103/42/. p. 138.
Farmer D, Venema W. Forensic discovery. Upper Sadle River, NJ: Schindler J, Griffin JL, Lumb CR, Ganger GR. Track-aligned extents:
Addison-Wesley; 2005. matching access patterns to disk drive characteristics. In:
Foremost, <http://foremost.sourceforge.net/>. Conference on file and storage technologies (FAST). Monterey,
How NTFS Works, Windows Server 2003 Technical Reference. CA, USA; 2002. p. 16.
Available from: http://www.microsoft.com/technet/prodtech Svensson A. Computer forensics applied to Windows NTFS
nol/windowsserver2003/library/TechRef/8cc5891d-bf8e-4164- computers, Information and communication system security.
862d-dac5418c5948.mspx. Stockholm’s University/Royal Institute of Technology, http://
Incident handling/forensics FAQs. <http://www.paladion.net/ www.dsv.su.se/research/seclab/; 2005. p. 64.
papers/ihfaq.htm#hidden_data>. The data fork and the resource fork, inside macintosh: more
Kruse II WG, Heiser JG. Computer forensics: incident response macintosh toolbox; 1996. Available from: http://developer.
essentials. Addison Wesley Professional; 2002. apple.com/documentation/mac/MoreToolbox/MoreToolbox-
Li K. A guide to programming Intel IA32 PC architecture. Available 11.html.
from: http://www.cs.princeton.edu/courses/archive/fall04/ X-Ways Forensics. <http://www.x-ways.net/forensics/>.
cos318/docs/pc-arch.html; 1999. Zadjmool R. Hidden threat: alternate data streams, WindowSe
Mallery JR. Secure file deletion, fact or fiction? Available from: curity.com. Available from: http://www.windowsecurity.com/
http://www.sans.org/; 2001. articles/Alternate_Data_Streams.html; 2004.
ID Title Pages

458270 Data hiding in the NTFS file system 16

http://fulltext.study/journal/491

http://FullText.Study

S-ar putea să vă placă și