3_Linux_UNIX
Download
Report
Transcript 3_Linux_UNIX
Linux and UNIX Overview
Linux and UNIX Overview
1
Linux and UNIX
Linux
and UNIX OSs are…
o Often targets for attacks
o Often used for launching attacks
So
we need to understand basics
Linux and UNIX Overview
2
UNIX
A
“beautiful but strange beast”
o Developed as research project by AT&T
o More than 35 years old
o Internet was built on UNIX
o Recently, popular for desktops, etc.
Linux and UNIX Overview
3
UNIX
It’s
beautiful because…
o It’s powerful
o
o
o
o
Millions of people have worked on it
Huge numbers of useful tools
“Been around the block” more than once
Closely associated with open source
Admins can find lots of useful tools
Linux and UNIX Overview
4
UNIX
Strange because so many UNIX OSs
Popular variants include
o
o
o
o
o
o
o
Solaris by Sun
MacOS by Apple
HP-UX by HP
IRIX by sgi
AIX by IBM
FreeBSD, free open source
OpenBSD, “the #1 most secure” OS
Linux and UNIX Overview
5
UNIX
Differences
between UNIX variants
o File systems organization
o System calls, commands, command
options, etc.
Two
main “lines” of UNIX
o AT&T and BSD
But
some UNIXs are combinations
Linux and UNIX Overview
6
Linux
Developed by Linus Torvalds
o Technically, not a variant of UNIX
o Created without using any of the underlying
UNIX code
o A “UNIX-like environment”
o Strictly speaking, “Linux” is just the kernel
o Many Linux “distros”: Debian, Gentoo,
Mandrake, Red Hat, Slackware, SuSE, etc.
Linux and UNIX Overview
7
UNIX
Here, generic UNIX/Linux concepts
o Things that apply to most UNIX/Linux
UNIX also strange because
o Not designed for ease of use
o Think command line, not GUI
o Ironically, much simpler than Windows…
If you think Windows is easier, you don’t
know Linux…
…and you don’t know Windows
Linux and UNIX Overview
8
UNIX
Here, we focus on generic “UNIX”
o Things that apply to most variants
Book use “UNIX”, “Linux” interchangeably
Here, we only scratch the surface
For more info
o Linux Administration Handbook, by Nemeth
o Man pages
Linux and UNIX Overview
9
Architecture
File
system
o Like traveling thru a city…
o Directories are like signs leading you to
“buildings” (files)
Many
things treated as files
o Devices, elements of processes, files
Linux and UNIX Overview
10
File System
Top
is root directory: / == “slash”
o “cd /” takes you to root
o For example: /home/fred/hack.txt
File hack.txt in directory /home/fred
Linux and UNIX Overview
11
Important Directories
/
== root (top level), called “slash”
/bin, /sbin == critical system exe’s
/dev == devices, terminal, CD, etc.
/etc == system config files
o Accounts, pwds, network addresses, etc.
/home
== user directories
Linux and UNIX Overview
12
Important Directories
/lib == shared libraries for programs
/mnt == exported file systems temporarily mounted,
removable devices (e.g., USB)
/proc == images/data of current processes
o Not on hard drive---can see what kernel is doing
/tmp == temporary files
/usr == critical system files (utilities, man pages, …)
/var == stores various types of files, often for
administration (log files)
Linux and UNIX Overview
13
Important Directories
“.”
is current directory
“..” is parent directory
o One level up
“ls”
lists all files in directory
“ls -a” lists “.” and “..” too
Linux and UNIX Overview
14
Kernel
UNIX
and Linux are modular
The core is the kernel
o Heart and brains of OS
o Deals with critical system functions
o E.g., hardware interactions, resource
allocation, …
o Programs call on kernel for these things
Linux and UNIX Overview
15
Processes
For program, kernel starts a process
o Process is like a “bubble that contains the guts
of a running program”
o Kernel creates bubble, inflates it and tries to
keep bubbles from popping each other
User programs, admin tools, services (e.g.,
Web, email) are processes
o May be 100s to 1000s of active processes
o Kernel juggles these into CPU, manages memory
Linux and UNIX Overview
16
Processes
High
level
view of
architecture
Linux and UNIX Overview
17
Processes
Many
processes run in background
Perform system-critical functions
o Printing, network activity, etc.
Known
as “daemons”
o Pronounced “day-muns” or “dee-muns”
o Named based on their function
o E.g., SSH daemon is sshd
Linux and UNIX Overview
18
Automatic Processes
Booting:
kernel starts init daemon
o Finishes boot process
Init
o
o
o
o
starts many network processes
Httpd --- Web server, for http/https
Sshd --- SSH service
Sendmail --- common UNIX email server
NFS --- Network File System for
sharing files between UNIX systems
Linux and UNIX Overview
19
Network Services
Network
service listens to network
o Web server listens on TCP port 80
o Email server listens on TCP port 25
Wait
for incoming traffic
Lots of email/Web traffic, so they
listen constantly
What about, say, FTP?
Linux and UNIX Overview
20
Network Services
To improve efficiency…
“Internet daemon” listens for uncommon
services
o inetd (“I-Net-D”) or xinetd
When traffic arrives, inetd activates
appropriate service
Uncommon services: echo, chargen, ftpd,
telnetd, rsh, rlogin, TFTP, …
Linux and UNIX Overview
21
inetd
File /etc/inetd.conf tells inted what
services to listen for: must specify
o Service name --- e.g., telnet (defined in
o
o
o
o
o
/etc/services)
Socket type --- type of connection?
Protocol --- usually tcp or udp
Wait status --- process handles multiple
connection or not
User Name --- name services should run as
Server program and arguments
inetd.conf is target of attacks
Linux and UNIX Overview
22
inetd
Relationship
between inetd
and other
daemons
Linux and UNIX Overview
23
cron
Cron
daemon
o Schedule programs to run at
predetermined times
o For example, backup files at 3am
Attackers
also like cron
o E.g., shut down critical service at a
particular time as part of back door
Linux and UNIX Overview
24
Processes
Can
also start processes manually
“path” is searched for command
To see path: echo $path
o Dangerous to have “.” in path
o Why?
Linux and UNIX Overview
25
Interacting with Processes
Each
process has process ID (PID)
To get info on current processes
o “ps -aux” (all running processes)
o “lsof” (list of open files)
Can
send a signal to a process
o TERM to terminate, HUP to “hang up”
(often rereads config), kill, killall, etc.
Linux and UNIX Overview
26
Accounts
Need
an account to log in
A process runs with permissions of a
given account
/etc/passwd file
o One line for every account, e.g.,
o sshd:*:75:75:sshd Privilege separation:/var/empty:/usr/bin/false
Linux and UNIX Overview
27
Passwd File
Each line contains
o Login name
o Hashed/encrypted password
o UID number --- number assigned to account,
o
o
o
o
used to determine permissions of processes
Default GID --- default group number
GECOS info --- not used by system, names, etc.
Home directory --- directory after login
Login shell --- sh, bash, csh, ksh, or another
program
Linux and UNIX Overview
28
Passwd File
Passwd file is world readable
o Attackers like to know hashed passwords
o Used for password guessing
Most modern UNIX systems do not include
hashed passwords in passwd file
o Instead, in “shadow” passwd file, /etc/shadow
o Requires super-user privilege to access
So passwd file contains no passwords…
Linux and UNIX Overview
29
Password File
After
much searching…
Found my OS X hashed password is
o 0x3BBC2A94D59EB1D5D3452EA6FA47399B2A25664C
Where
SHA1 hash is used, with salt
o 0x8429A223
Extra
credit: Find my password!
Linux and UNIX Overview
30
Groups
Group users together
Assign permission to the group
Stored in file /etc/group, format is
o Group name
o Hashed group password --- never used
o GID number --- used by the system instead of
group name
o Group members --- by login names
Linux and UNIX Overview
31
Root
Root account is all-powerful user
Maximum privilege --- can read, write any file
Root == superuser or “God”
UID == 0
o “root” could be called anything, provided UID is 0
o Can be multiple root accounts
Linux and UNIX Overview
32
Permissions
Every file has an owner and group
Owner (or root) sets permissions
o Permissions: owner, group, everybody
o For each of the 3, read, write, execute
o Use “ls -l” to see permissions
-rw-r--r-- 1 markstam markstam 767 Feb 6 19:31 cs286.txt
drwxr-xr-x 40 markstam markstam 1360 Jan 25 17:33 docs
Linux and UNIX Overview
33
Permissions
Linux and UNIX Overview
34
Permissions
Change
permissions using chmod
o “change modes”
Give
new permissions in octal
o For example: chmod 745 foo
o This corresponds to: rwxr--r-x
Linux and UNIX Overview
35
SetUID
Sometimes user needs to access file and
they do not have permissions
o Example: to change password (assuming hashes
stored in shadow file)
SetUID == Set User ID
Use this so program will execute with
permission of it’s owner
o As opposed to permission of user executing it
o Password changing program: SetUID root
Linux and UNIX Overview
36
SetUID
Gives “common” users lots of power
o OK if used in controlled way for specific tasks
SetUID permissions appear before 9 standard
permission bits
In fact, 3 additional bits
SetUID, SetGID, “sticky bit”
For example: chmod 4745 foo
Shows up in “ls -l” as an s:
-r-sr-xr-x 1 root wheel 75636 Jan 11 2007
/usr/bin/passwd
o
o
o
o
Linux and UNIX Overview
37
SetUID
Attackers
like SetUID programs
o May be possible to exploit flaws in code
(buffer overflow) to elevate privilege
New/modified
SetUID programs may
be evidence of attack
Linux and UNIX Overview
38
Trust Relationships
That
is, trust between machines
o Can specify which machines to trust
Bob
trusts
Alice
Linux and UNIX Overview
39
Trust Relationships
Unauthenticated access by users from
trusted machine
o Since trusted machine (presumably) already
authenticated the user
If trusted, the r-commands (rlogin, rsh,
rcp) require no password
o Also, r-commands do not encrypt
How does Bob know trusted Alice is Alice?
Linux and UNIX Overview
40
Logs and Audit
Created
by syslog daemon (syslogd)
Typical log files
o Secure --- logins, successful and failed
o Message --- catch-all system log
o Individual app logs --- for specific apps
Linux and UNIX Overview
41
Logs and Audit
Forensic
info also logged
Attackers like to cover their tracks
To do so, may need to manipulate…
o utmp --- who is logged in
o wtmp --- record of all logins and logouts
o lastlog --- time and location of each
user’s most recent login
Linux and UNIX Overview
42
Common Network Services
Telnet --- command line remote access
o No encryption, session can be hijacked, …
FTP --- file transfer
o Insecure, like telnet
SSH --- encrypted “tunnel”
o Then safe to use unsafe services
o SSH version 1 insecure, version 2 is good
Linux and UNIX Overview
43
Common Network Services
HTTP --- Web
o Source of many attacks
Email --- sendmail, several security issues
r-commands --- rlogin, rsh, rcp
o Considered very insecure
DNS --- domain names to IP addresses
o Critical service, good one for attackers…
Linux and UNIX Overview
44
Common Network Services
NFS --- transparently access files across network
o NFS server “exports” directory info
o Local machine can “mount” these, so files appear to be
locally accessible
o Like FTP without all of the trouble of FTP-ing
o Of course, exporting too much may be bad
X-Window System --- X11 (or just “X”)
o The underlying GUI service in UNIX
o X server controls screen, provides service
o Must limit who can display/access your screen
Linux and UNIX Overview
45
Conclusion
UNIX/Linux
Popular OSs
More than 30 years old
Fundamental part of Internet
Widely used OSs
Platform of choice for many attackers
Linux and UNIX Overview
46
Summary
Linux and UNIX Overview
47