• No results found

chapter23_linux_security.pdf

N/A
N/A
Protected

Academic year: 2020

Share "chapter23_linux_security.pdf"

Copied!
41
0
0

Loading.... (view fulltext now)

Full text

(1)

Computer Security:

Computer Security:

Principles and Practice

Principles and Practice

First Edition First Edition

by William Stallings and Lawrie Brown by William Stallings and Lawrie Brown

Lecture slides by Lawrie Brown Lecture slides by Lawrie Brown

Chapter 23 –

(2)

Linux Security

Linux Security

Linux has evolved into one of the most

Linux has evolved into one of the most

popular and versatile operating systems

popular and versatile operating systems

many features mean broad attack surface

many features mean broad attack surface

can create highly secure Linux systems

can create highly secure Linux systems

will review:

will review:

 Discretionary Access ControlsDiscretionary Access Controls

(3)

Linux Security Model

Linux Security Model

Linux’s traditional security model is:

Linux’s traditional security model is:

 people or proceses with “root” privileges can people or proceses with “root” privileges can

do anything do anything

 other accounts can do much lessother accounts can do much less 

hence attacker’s want to get root

hence attacker’s want to get root

privileges

privileges

can run robust, secure Linux systems

can run robust, secure Linux systems

(4)
(5)

File System Security

File System Security

in Linux

in Linux

everything

everything

as a file

as a file

 e.g. memory, device-drivers, named pipes, e.g. memory, device-drivers, named pipes,

and other system resources and other system resources

 hence why filesystem security is so importanthence why filesystem security is so important 

I/O to devices is via a “special” file

I/O to devices is via a “special” file

 e.g. e.g. /dev/cdrom/dev/cdrom

have other special files like named pipes

have other special files like named pipes

(6)

Users and Groups

Users and Groups

a user-account (user)

a user-account (user)

 represents someone capable of using filesrepresents someone capable of using files

 associated both with humans and processesassociated both with humans and processes 

a group-account (group)

a group-account (group)

 is a list of user-accountsis a list of user-accounts

 users have a main group users have a main group

(7)

Users and Groups

Users and Groups

user's details are kept in

user's details are kept in

/etc/password

/etc/password

maestro:x:200:100:Maestro Edward

maestro:x:200:100:Maestro Edward

Hizzersands:/home/maestro:/bin/bash

Hizzersands:/home/maestro:/bin/bash

additional group details in

additional group details in

/etc/group

/etc/group

conductors:x:100:

conductors:x:100:

pianists:x:102:maestro,volodya

pianists:x:102:maestro,volodya

(8)

File Permissions

File Permissions

files have two owners: a user & a group

files have two owners: a user & a group

each with its own set of permissions

each with its own set of permissions

with a third set of permissions for other

with a third set of permissions for other

permissions are to read/write/execute in

permissions are to read/write/execute in

order user/group/other, cf.

order user/group/other, cf.

-rw-rw-r-- 1 maestro user

-rw-rw-r-- 1 maestro user

35414 Mar 25 01:38 baton.txt

35414 Mar 25 01:38 baton.txt

(9)

Directory Permissions

Directory Permissions

read = list contents

read = list contents

write = create or delete files in directory

write = create or delete files in directory

execute = use anything in or change

execute = use anything in or change

working directory to this directory

working directory to this directory

e.g.

e.g.

$ chmod g+rx extreme_casseroles

$ chmod g+rx extreme_casseroles

$ ls -l extreme_casseroles

$ ls -l extreme_casseroles

drwxr-x--- 8 biff drummers

drwxr-x--- 8 biff drummers

288 Mar 25 01:38

(10)

Sticky Bit

Sticky Bit

 originally used to lock file in memoryoriginally used to lock file in memory  now used on directories to limit deletenow used on directories to limit delete

 if set must own file or dir to deleteif set must own file or dir to delete

 other users cannot delete even if have writeother users cannot delete even if have write

set using chmod command with +t flag, e.g.set using chmod command with +t flag, e.g.

chmod +t extreme_casseroles

chmod +t extreme_casseroles

 directory listing includes t or T flagdirectory listing includes t or T flag

drwxrwx--T 8 biff drummers 288 Mar

drwxrwx--T 8 biff drummers 288 Mar

25 01:38 extreme_casseroles

25 01:38 extreme_casseroles

(11)

SetUID and SetGID

SetUID and SetGID

setuid bit means program "runs as" owner

setuid bit means program "runs as" owner

 no matter who executes itno matter who executes it

setgid bit means run as a member of the

setgid bit means run as a member of the

group which owns it

group which owns it

 again regardless of who executes itagain regardless of who executes it

"run as" = "run with same privileges as”

"run as" = "run with same privileges as”

are very dangerous

are very dangerous

if set on file owned by

if set on file owned by

root or other privileged account or group

root or other privileged account or group

(12)

SetGID and Directories

SetGID and Directories

setuid has no effect on directories

setuid has no effect on directories

setgid does and causes any file created in

setgid does and causes any file created in

a directory to inherit the directory's group

a directory to inherit the directory's group

useful if users belong to other groups and

useful if users belong to other groups and

routinely create files to be shared with

routinely create files to be shared with

other members of those groups

other members of those groups

(13)
(14)

Kernel vs User Space

Kernel vs User Space

Kernel space

Kernel space

 refers to memory used by the Linux kernel refers to memory used by the Linux kernel

and its loadable modules (e.g., device drivers) and its loadable modules (e.g., device drivers)

User space

User space

 refers to memory used by all other processesrefers to memory used by all other processes 

since kernel enforces Linux DAC and

since kernel enforces Linux DAC and

security critical to isolate kernel from user

security critical to isolate kernel from user

 so kernel space never swapped to diskso kernel space never swapped to disk

(15)

setuid root Vulnerabilities

setuid root Vulnerabilities

 a a setuid rootsetuid root program runs as root program runs as rootno matter who executes itno matter who executes it

 used to provide unprivileged users with access used to provide unprivileged users with access

to privileged resources to privileged resources

 must be very carefully programmedmust be very carefully programmed

 if can be exploited due to a software bugif can be exploited due to a software bug

 may allow otherwise-unprivileged users to use it to may allow otherwise-unprivileged users to use it to

wield unauthorized root privileges wield unauthorized root privileges

(16)

Web Vulnerabilities

Web Vulnerabilities

a very broad category of vulnerabilitiesa very broad category of vulnerabilities

 because of ubiquity of world wide web have big and because of ubiquity of world wide web have big and

visible attack surfaces visible attack surfaces

when written in scripting languageswhen written in scripting languages

 not as prone to classic buffer overflowsnot as prone to classic buffer overflows  can suffer from poor input-handlingcan suffer from poor input-handling

few “enabled-by-default” web applicationsfew “enabled-by-default” web applications

but users install vulnerable web applicationsbut users install vulnerable web applications

or write custom web applications having easily-or write custom web applications having

(17)

Rootkits

Rootkits

 allow attacker to cover their tracksallow attacker to cover their tracks

 if successfully installed before detection, all is if successfully installed before detection, all is

very nearly lost very nearly lost

 originally collections of hacked commandsoriginally collections of hacked commands  hiding attacker’s files, directories, processeshiding attacker’s files, directories, processes  now use loadable kernel modulesnow use loadable kernel modules

 intercepting system calls in kernel-spaceintercepting system calls in kernel-space  hiding attacker from standard commandshiding attacker from standard commands  may be able to detect with chkrootkitmay be able to detect with chkrootkit

(18)

Linux System Hardening

Linux System Hardening

consider how to mitigate Linux security

consider how to mitigate Linux security

risks at system and application levels

risks at system and application levels

first look at OS-level security tools and

first look at OS-level security tools and

techniques that protect the entire system

(19)

OS Installation

OS Installation

 security begins with O/S installationsecurity begins with O/S installation  especially what software is runespecially what software is run

 since unused applications liable to be left in default, since unused applications liable to be left in default,

un-hardened and un-patched state un-hardened and un-patched state

generally should not run:generally should not run:

 X Window system, RPC services, R-services, inetd, X Window system, RPC services, R-services, inetd,

SMTP daemons, telnet etc SMTP daemons, telnet etc

 also have some initial system s/w configuration:also have some initial system s/w configuration:

 setting root passwordsetting root password

 creating a non-root user accountcreating a non-root user account

 setting an overall system security level setting an overall system security level

(20)

Patch Management

Patch Management

installed server applications must be:

installed server applications must be:

 configured securelyconfigured securely

 kept up to date with security patcheskept up to date with security patches

patching can never win “patch rat-race”

patching can never win “patch rat-race”

have tools to automatically download and

have tools to automatically download and

install security updates

install security updates

 e.g. up2date, YaST, apt-gete.g. up2date, YaST, apt-get

 note should not run automatic updates on note should not run automatic updates on

(21)

Network Access Controls

Network Access Controls

network a key attack vector to secure

network a key attack vector to secure

TCP wrappers a key tool to check access

TCP wrappers a key tool to check access

 originally tcpd inetd wrapper daemonoriginally tcpd inetd wrapper daemon

 before allowing connection to service checksbefore allowing connection to service checks

• if requesting host explicitly in hosts.allow is okif requesting host explicitly in hosts.allow is ok

• if requesting host explicitly in hosts.deny is blockedif requesting host explicitly in hosts.deny is blocked

• if not in either is okif not in either is ok

 checks on service, source IP, usernamechecks on service, source IP, username

(22)

Network Access Controls

Network Access Controls

 also have the very powerful also have the very powerful netfilternetfilter Linux Linux

kernel native firewall mechanism kernel native firewall mechanism

 and and iptablesiptables user-space front end user-space front end

 as useful on firewalls, servers, desktopsas useful on firewalls, servers, desktops  direct config tricky, steep learning curvedirect config tricky, steep learning curve  do have automated rule generatorsdo have automated rule generators

typically for “personnal” firewall use will:typically for “personnal” firewall use will:  allow incoming requests to specified servicesallow incoming requests to specified services  block all other inbound service requestsblock all other inbound service requests

(23)

Antivirus Software

Antivirus Software

historically Linux not as vulnerable to viruses

historically Linux not as vulnerable to viruses

more to lesser popularity than security

more to lesser popularity than security

prompt patching was effective for worms

prompt patching was effective for worms

but viruses abuse users privileges

but viruses abuse users privileges

non-root users have less scope to exploit

non-root users have less scope to exploit

 but can still consume resourcesbut can still consume resources

growing Linux popularity mean exploits

growing Linux popularity mean exploits

(24)

User Management

User Management

guiding principles in user-account security:

guiding principles in user-account security:

 need care setting file / directory permissionsneed care setting file / directory permissions  use groups to differentiate between roles use groups to differentiate between roles

 use extreme care in granting / using root privsuse extreme care in granting / using root privs 

commands: chmod, useradd/mod/del,

commands: chmod, useradd/mod/del,

groupadd/mod/del, passwd, chage

groupadd/mod/del, passwd, chage

(25)

Root Delegation

Root Delegation

have "root can to anything, users do little” issuehave "root can to anything, users do little” issue

 “su” command allows users to run as rootsu” command allows users to run as root

 either root shell or single commandeither root shell or single command  must supply root passwordmust supply root password

 means likely too many people know thismeans likely too many people know this

SELinux RBAC can limit root authority, complexSELinux RBAC can limit root authority, complex

sudo” allows users to run as rootsudo” allows users to run as root

(26)

Logging

Logging

effective logging a key resource

effective logging a key resource

Linux logs using syslogd or Syslog-NG

Linux logs using syslogd or Syslog-NG

 receive log data from a variety of sourcesreceive log data from a variety of sources  sorts by sorts by facilityfacility (category) and (category) and severityseverity

 writes log messages to local/remote log fileswrites log messages to local/remote log files 

Syslog-NG preferable because it has:

Syslog-NG preferable because it has:

 variety of log-data sources / destinationsvariety of log-data sources / destinations

 much more flexible “rules engine” to configuremuch more flexible “rules engine” to configure  can log via TCP which can be encryptedcan log via TCP which can be encrypted

(27)

Log Management

Log Management

balance number of log files used

balance number of log files used

 size of few to finding info in manysize of few to finding info in many 

manage size of log files

manage size of log files

 must rotate log files and delete old copiesmust rotate log files and delete old copies

 typically use logrotate utility run by crontypically use logrotate utility run by cron

(28)

Application Security

Application Security

this is a large topic

this is a large topic

many security features are implemented in

many security features are implemented in

similar ways across different applications

similar ways across different applications

will review issues such as:

will review issues such as:

 running as unprivileged user/grouprunning as unprivileged user/group  running in chroot jailrunning in chroot jail

(29)

Running As Unprivileged

Running As Unprivileged

User/Group

User/Group

every process “runs as” some user

every process “runs as” some user

extremely important this user is not root

extremely important this user is not root

 since any bug can compromise entire systemsince any bug can compromise entire system 

may need root privileges, e.g. bind port

may need root privileges, e.g. bind port

 have root parent perform privileged functionhave root parent perform privileged function

 but main service from unprivileged childbut main service from unprivileged child 

user/group used should be dedicated

user/group used should be dedicated

(30)

Running in chroot Jail

Running in chroot Jail

chroot confines a process to a subset of /

chroot confines a process to a subset of /

 maps a virtual “/” to some other directorymaps a virtual “/” to some other directory

 useful if have a daemon that should only useful if have a daemon that should only

access a portion of the file system, e.g. FTP access a portion of the file system, e.g. FTP

 directories outside the chroot jail aren’t visible directories outside the chroot jail aren’t visible

or reachable at all or reachable at all

contains effects of compromised daemon

contains effects of compromised daemon

complex to configure and troubleshoot

complex to configure and troubleshoot

(31)

Modularity

Modularity

applications running as a single, large,

applications running as a single, large,

multipurpose process can be:

multipurpose process can be:

 more difficult to run as an unprivileged usermore difficult to run as an unprivileged user

 harder to locate / fix security bugs in source harder to locate / fix security bugs in source

 harder to disable unnecessary functionalityharder to disable unnecessary functionality 

hence modularity a highly prized feature

hence modularity a highly prized feature

 providing a much smaller attack surfaceproviding a much smaller attack surface

(32)

Encryption

Encryption

sending logins & passwords or application

sending logins & passwords or application

data over networks in clear text exposes

data over networks in clear text exposes

them to network eavesdropping attacks

them to network eavesdropping attacks

hence many network applications now

hence many network applications now

support encryption to protect such data

support encryption to protect such data

 often using OpenSSL libraryoften using OpenSSL library

may need own X.509 certificates to use

may need own X.509 certificates to use

 can generate/sign using openssl commandcan generate/sign using openssl command

(33)

Logging

Logging

applications can usually be configured to

applications can usually be configured to

log to any level of detail (debug to none)

log to any level of detail (debug to none)

need appropriate setting

need appropriate setting

must decide if use dedicated file or system

must decide if use dedicated file or system

logging facility (e.g. syslog)

logging facility (e.g. syslog)

(34)

Mandatory Access Controls

Mandatory Access Controls

Linux uses a DAC security modelLinux uses a DAC security model

 but Mandatory Access Controls (MAC) impose a but Mandatory Access Controls (MAC) impose a

global security policy on all users global security policy on all users

 users may not set controls weaker than policyusers may not set controls weaker than policy

 normal admin done with accounts without authority to normal admin done with accounts without authority to

change the global security policy change the global security policy

 but MAC systems have been hard to managebut MAC systems have been hard to manage  Novell’s SuSE Linux has AppArmorNovell’s SuSE Linux has AppArmor

 RedHat Enterprise Linux has SELinuxRedHat Enterprise Linux has SELinux

(35)

SELinux

SELinux

 is NSA's powerful implementation of mandatory is NSA's powerful implementation of mandatory

access controls for Linux access controls for Linux

Linux DACs still applies, but if it allows the action Linux DACs still applies, but if it allows the action

SELinux then evaluates it against its own SELinux then evaluates it against its own

security policies security policies

 "subjects" are processes (run user cmds)"subjects" are processes (run user cmds)actions are "permissions”actions are "permissions”

objects not just files & dirsobjects not just files & dirs

 to manage complexity SELinux has:to manage complexity SELinux has:

(36)

Security Contexts

Security Contexts

 each individual subject & object in SELinux is each individual subject & object in SELinux is

governed by a

governed by a security contextsecurity context being a: being a:

 user - individual user (human or daemon)user - individual user (human or daemon)

• SELinux maintains its own list of usersSELinux maintains its own list of users

• user labels on subjects specify account's privileges user labels on subjects specify account's privileges

• user labels on objects specify its owneruser labels on objects specify its owner

 role - like a group, assumed by usersrole - like a group, assumed by users

• a user may only assume one role at a time, a user may only assume one role at a time,

• may only switch roles if and when authorized to do somay only switch roles if and when authorized to do so

 domain (type) - a sandbox being a combination of domain (type) - a sandbox being a combination of

subjects and objects that may interact with each other subjects and objects that may interact with each other

(37)

Decision Making in SELinux

Decision Making in SELinux

two types of decisions: two types of decisions:

accessaccess decisions decisions

 when subjects do things to objects that already exist, when subjects do things to objects that already exist,

or create new things in expected domain or create new things in expected domain

transitiontransition decisions decisions

 invocation of processes in different domains than the invocation of processes in different domains than the

one in which the subject-process is running one in which the subject-process is running

 creation of objects in different types (domains) than creation of objects in different types (domains) than

their parent directories their parent directories

(38)

RBAC and MLS Controls

RBAC and MLS Controls

have

have

Role Based Access Control

Role Based Access Control

(RBAC)

(RBAC)

 rules specify rules specify roles roles a user may assumea user may assume

 other rules specify circumstances when a user other rules specify circumstances when a user

may

may transitiontransition from one role to another from one role to another

and

and

Multi Level Security

Multi Level Security

(MLS)

(MLS)

 concerns handling of classified dataconcerns handling of classified data

• “no read up, no write down”no read up, no write down”

(39)

SELinux Policy Management

SELinux Policy Management

creating and maintaining SELinux policies

creating and maintaining SELinux policies

is complicated and time-consuming

is complicated and time-consuming

a single SELinux policy may consist of

a single SELinux policy may consist of

hundreds of lines of text

hundreds of lines of text

RHEL has a default “targeted” policy

RHEL has a default “targeted” policy

 defines types for selected network appsdefines types for selected network apps

(40)

Novell AppArmor

Novell AppArmor

Novell’s MAC for SuSE Linux

Novell’s MAC for SuSE Linux

 enforced at kernel levelenforced at kernel level

 using Linux Security Modulesusing Linux Security Modules

restricts behavior of selected applications

restricts behavior of selected applications

in a very granular but targeted way

in a very granular but targeted way

 hence a compromised root application's hence a compromised root application's

access will be contained access will be contained

 has no controls addressing data classificationhas no controls addressing data classification  hence only a partial MAC implementationhence only a partial MAC implementation

(41)

Summary

Summary

reviewed Linux security model and DAC

reviewed Linux security model and DAC

vulnerabilities

vulnerabilities

O/S and application hardening

O/S and application hardening

References

Related documents

Chapter 21: Understanding Linux Users and File Permissions 443. Understanding User and Group

Service Account: SMOP will use an Active Directory account to reset user passwords and unlock accounts.. This account will need the right level

The NTFS Permissions Settings table specifies the NTFS file and directory permissions that can be set for the MapInfo Discovery™ Server-related files.... Key to

Only users who are members of a special sharing group are allowed access to a common sharing directory, and any user may read, write, and modify the permissions or any file created

• File systems generally allow some level of permissions to be assigned to each file/directory to control access • User accounts are most vulnerable to weak passwords • Checksums

• Create a .k5login file in a user’s home directory: This policy creates a .k5login file in the home directory of a user account on Linux and Unix computers that log on the

 Learn about Linux file permissions and set the owner of your website root directory to the apache user and assign permissions 700 – when you need to upload anything over FTP,

Workstation Security (R) Dragon Medical relies on standard Windows workstations security features (e.g. user login, password protected screensaver) and directory/file permissions