UNIX SECURITY and COMPUTER FORINSICS ’s New York Institute of Technology- Amman

advertisement
UNIX SECURITY and
COMPUTER FORINSICS
PRESENTED TO
DR.LOA’I AL TAWALBEH
New York Institute of Technology- Amman’s
campus-2007
MOHAMMED HUSSAIN
An operating system




The OS is a program that acts as an
intermediary between the user (application
programs) and the hardware resources
OS interacts with hardware and manages
programs.
Programs not expected to know which
hardware they will run on. Thus they can’t
manage their self
OS provides a safe environment for
programs to run.
What is an Operating
System?
Unix architecture
kernel




Program always resides in memory.
Has direct access to the hardware.
Manages processes, memory, and
performs all housekeeping.
Only one copy shared by all users.
Shell



A program or command invoked
only when the user logs in. so it’s
called function from the kernel by
command or graphical interface.
At least one shell is invoked by
every user, so a system may have
several different shells running
simultaneously.
Interface between the user and the
UNIX Architecture
User
Shell which executes the binary:
-cp, mv, grep, tar, who, ps
Kernel
Hardware
Interacting with the Shell


The shell prints a prompt and waits for
you to type in a command.
The shell can deal with a couple of
types of commands:
– shell internals - commands that the shell
handles directly.
– External programs - the shell runs a
program for you.
Types of commands

External program on disk which could
be:
– a binary executable (written in C, C++).
– a script file (like a shell or perl script).

Internal command of the shell which
could be
– a builtin (like cd, pwd, etc.)
– an alias defined by the user that invokes
the disk or internal version in a specific

Why security?
– Availability
– Confidentiality
– Integrity (system files)


We need to identify the capabilities
that UNIX OS handled to perform the
levels of security at the low and high
level of operating system.
files and directories and the
permission are the main compoundant
for such a system
Ordinary step in any
secure OS

PROPLEM
– Secure the OS from un wanted users
– And to secure the internal processes from
each other

SOLUTION
– Define specific domain that each
user/process can access
Domain implementation

Two domain groups
– User
– Superuser (can do everything, UID=0)

User domain group
– Domain = user-id (UID)
– Domain switch accomplished via file system.


Each file has associated with it a domain bit (setuid bit
= SUID bit).
When file is executed and setuid = on, then effective
user-id is set to owner of the file being executed.
When execution completes user-id is reset (exit() for
child process ).
Basic Unix Security Model

User authenticated on logon
– User ID associated with process
– Default Group ID associated with process
– Default Process listed in passwd file

Groups defined in /etc/groups
– Set of users listed with each group
definition
– User can be member of multiple groups
Users and permissions

Three types of users
– Root super users
– Privileged users
– Another users


We assign access permissions to such
files and directories
ACL
Unix Access Control

Three permission octets associated
with each file and directory
– Owner, group, and other
– Read, write, execute

For each file/directory
– Can specify RWX permissions for one
owner, one group, and one other
Other Bits

Set UID and Set GUID bits
– When set, the process created by executing file
takes on user ID or group ID associated with file

Secure shell (SSH)
– Accessing remotely securely.

Sticky bit
– On directories, prevents anyone but owner of file
removing file in directory
– Sys daemon (log files access)
Directories
Under UNIX directories are special (OS writable
only) files. The directory file is an unsorted linked
list of filenames to file-inode (attributes and
location of file on hard disk) Directory size will
always increase to be large enough to hold all the
file entries. If the number of files latter shrinks
the directory size WILL NOT!
> ls -l foo
-rw-rw---1 hollingd grads 13 Jan 10 23:05 foo
permissions
size
owner
name
group
time
Files

Regular Files
– binary

GIF, JPEG, Executable etc.
– text

scripts, program source code, documentation
Files (cont.)

Directory
– Can contain ANY kind of files
. (Dot) The special name for the current directory.
.. (Dot) (Dot) The special name for the directory
above the current directory.

Device File
– Allows programs to communicate with
hardware.
– Kernel modules handle device
management.
File Time Attributes

Time Attributes:
– when the file was last changed
ls l
– when the file was created*
ls lc
– when the file was last read (accessed) ls ul
*actually it’s the time the file status in the directory
last changed (e.g. file renamed).
File permissions
File type
- : plain file
d : directory
c : character device (tty, printer)
b : block device (disk, CD-ROM)
l : symbolic link
s : socket
=, p : FIFO
Access granted to
others
-rwxr--r-Access granted to owner
r : read / w : write / x : execute
Access granted to
group member
File Protection




Given the following output from ls –l
-rwxr-xr-x jason research ...
test.exe
----rwxr–- jason research ...
example.exe
jason has full access to test.exe
jason has no access to example.exe even
if he belongs to the research group
Any member of the research group (except
jason) has full access to example.exe
Unix Accounts


To access a Unix system you need to
have an account.
Unix account includes:
– username and password
– userid and groupid
– home directory
– shell
Users accounts
1-User name:
a username is (typically) a sequence
of alphanumeric characters of length
no more than 8.
2-Password:
is a secret string that only the user
knows, not less that 8 characters.
but userID: is a number of 16 bit
integer that identifies a user account,
and the user don’t know this number
but it used to secure the shell.
Users and Ownership: /etc/passwd


Every File is owned by one of the system’s users – identity is
represented by the user-id (UID)
Password file assoicate UID with system users.
gates:x:65:20:B. Gates:/home/gates:/bin/ksh
command interpreter
home directory
“real” name
group ID
user ID
[encrypted password]
login name
SUID/SGID/sticky bits

SUID (set uid)
– Processes are granted access to system resources
based on user who owns the file.

SGID (set gid)
– (For file) Same with SUID except group is affected.
– (For directory) Files created in that directory will
have their group set to the directory's group.

sticky bit
– If set on a directory, then a user may only delete
files that he owns or for which he has explicit write
permission granted, even when he has write access
to the directory. (e.g. /tmp )
Advanced: Access Control
Lists
The permissions defined by ACLs are a superset of the permissions specified by the file
permission bits. The permissions defined for the file owner correspond to the permissions
of the ACL_USER_OBJ entry. The permissions defined for the file group correspond to
the permissions of the ACL_GROUP_OBJ entry, if the ACL has no ACL_MASK entry. If
the ACL has an ACL_MASK entry, then the permissions defined for the file group
correspond to the permissions of the ACL_MASK entry. The permissions defined for the
other class correspond to the permissions of the ACL_OTHER_OBJ entry.
Modification of the file permission bits results in the modification of the permissions in
the associated ACL entries. Modification of the permissions in the ACL entries results in
the modification of the file permission bits.
Example:
user::rwuser:lisa:rwgroup::r-group:toolies:rwmask::r-other::r--
Log files




Log files are normally kept in /var/log
Read them
Syslog logs the system and what is
happening on it
Logcheck is a handy utility which
checks the contents of logs and mails
anything unusual

http://www.psionic.com/abacus/logcheck/
Advanced: TCP/IP
Firewalls
UNIX and Forensics
Privacy Through Media
Mutilation
or
or
or
degausser
forensically-secure
file deletion
software
(but make sure it works!)
Basic enabler: Data is very hard to kill




Digital evidences are every were in the
intended area of work.
It’s in side out side the used space, or
impeded into other strings.
Or even on the cell phones
Temp files, print spools, Zipped files,
windows registry.

But the anti-forensics can play an
negative role in the investigation
process.
Hiding Data in Slack Space
w/ bmap: File carving won’t
help!
Dear Mom, Dropp ed the hamster. D idn’t mean to kill He rbie! pa
To Whom It May C oncern: … Best,
Fred ssword is frid
#include <stdio.h>
void zapQ(void); ay
#include <io.h>
bmap: tools for creating a simple filesystem in slack space
1
Lsof
version 4.63
Vic Abell
ftp://vic.cc.purdue.edu/pub/tools/unix/ls
of
FUNCTIONS

List open files
– regular files
– directories
– device files
– executing text file
– library (for dynamic load libraries)
– network file (socket, NFS file)
– stream
What Has a Process
Opened?
% lsof -p 78957
COMMAND
PID
USER
FD
dc
78957 bishop cwd
/usr/home/bishop
dc
78957 bishop rtd
dc
78957 bishop txt
dc
78957 bishop txt
/usr/libexec/ld-elf.so.1
dc
78957 bishop txt
/usr/lib/libm.so.2
dc
78957 bishop txt
/usr/lib/libc.so.4
dc
78957 bishop
0u
dc
78957 bishop
1u
dc
78957 bishop
2u
TYPE
DEVICE SIZE/OFF
VDIR 3,131077
2560
VDIR 3,131072
VREG 3,131077
VREG 3,131077
NODE NAME
8482
512
2 /
27452
7953 /usr/bin/dc
71976 992435
VREG 3,131077
116092 286210
VREG 3,131077
531444 287065
VCHR
VCHR
VCHR
You can also use –c cmdbegin
5,2
5,2
5,2
0t735
0t735
0t735
8176 /dev/ttyp2
8176 /dev/ttyp2
8176 /dev/ttyp2
What Has a User Opened?
# lsof +M -u daemon
COMMAND PID
USER
portmap 84 daemon
portmap 84 daemon
portmap 84 daemon
portmap 84 daemon
elf.so.1
portmap 84 daemon
portmap 84 daemon
portmap 84 daemon
portmap 84 daemon
portmap 84 daemon
portmap 84 daemon
portmap 84 daemon
(LISTEN)
FD
cwd
rtd
txt
txt
TYPE
VDIR
VDIR
VREG
VREG
DEVICE SIZE/OFF
NODE
3,131072
512
2
3,131072
512
2
3,131077
11088 64023
3,131077
71976 992435
txt
txt
0u
1u
2u
3u
4u
VREG
3,131077
VREG
3,131077
VCHR
2,2
VCHR
2,2
VCHR
2,2
IPv4 0xc7c6dc00
IPv4 0xc7c9ed80
NAME
/
/
/usr/sbin/portmap
/usr/libexec/ld-
24776 287069 /usr/lib/libwrap.so.3
531444 287065 /usr/lib/libc.so.4
0t0
7828 /dev/null
0t0
7828 /dev/null
0t0
7828 /dev/null
0t0
UDP *:sunrpc[portmapper]
0t0
TCP *:sunrpc[portmapper]
portmapper registration name/number
(+M gives this)
2
NMAP
Version 3.00
by fyodor@dhp.com
http://www.insecure.org/nmap/
TO

To scan hosts looking for open ports
–
–
–
–
–
–
–
–
–
TCP connect
TYP SYN (a.k.a. half-open)
TCP FIN (a.k.a. stealth)
TCP SYN/FIN using IP fragments
TCP ftp proxy (a.k.a. bounce attack)
UCP raw ICMP port unreachable
RPC scan
ACK/WIN scan
Ping scan
2
Sleuthkit
Linux toolkit for forensics written by
Brian Carrier
http://www.sleuthkit.org/
Command line tools for forensic analysis
under UNIX
Graphical interface: Autopsy Forensic
Browser
–
–
–
–
Timestamps are often crucial in forensics analysis
Determining who was using a system
Determining if a system has been compromised
Determining when files were downloaded, modified,
organized
– Establish whether a person could have actually
committed a computer crime
– Establish validity of alibis
– Sleuthkit MAC tools “light up the filesystem”
– Idea:
– Create a timeline that begins with the date of creation
for the first file of interest…
– …traces all subsequent file access, modification and
creation dates…
– Good news: Deleting a file counts as a “modification”
and often the deletion dates of files can be retrieved
Popular Commercial
Unix versions



Solaris (Sun Microsystems)
MacOS X (Apple Computer)
AIX (IBM)
Windows vs. Unix



Many beginner users find Windows
easer to use than other operating
systems
Linux has been primary used by
advanced computer users –
programmers and developers
One fundamental difference between
the two systems is the fact that Linux
is "open source".



Linux requires 386 architecture to run.
Thus, it is compatible with any improved
architecture such as 486, Pentium, Pentium
Pro, etc
There are drivers available for much many
types of hardware devices
Linux program installation seems to be
easier since it only requires a restart when
hardware device has been changed
Security




UNIX seems to be more prepared for protecting
itself because of the beginning developments of
Linux, UNIX, and FreeBSD which were aimed at top
notch security
UNIX allows does not create registry keys in a way
Windows does allowing a user to browse installed
components registry keys, which contain important
information
UNIX is more virus proof since viruses – malicious
programs either cannot be run automatically on the
Linux machine, or simply are not capable of being
executed on a 386 architecture
Windows is often known for a large amount of loop
holes
References







http://www.faqs.org/rfcs/rfc2350.html,
http://www.securityfocus.com/infocus/1769
http://sleuthkit.sourceforge.net/informer/sleuthkit-informer-11.html
http://www.cs.uno.edu/~golden/teach.html
CERT (Computer Emergency Response Team)
– http://www.cert.org/
SysAdmin, Audit, Network, Security (SANS) Institute
– http://www.sans.org/
Security Tracker
– http://www.securitytracker.com/
Download