Linux Security

Download Report

Transcript Linux Security

Secure Operating Systems
Lesson C: Linux Security Features
Where are we?



Multics is beautiful, Multics is beautiful,
Multics is beautiful…
And also, we’ve looked at some of the ways
operating systems get broken
Let’s look at a well known OS today: Linux
Linux: Overview







Accounts, authentication
File permissions
Secure Access
Encrypted storage
Logging
Resource usage controls…
It’s a long list. Let’s take a look.
User Accounts



The Unix model is pretty straightforward
An entity has a user account; this account can
be associated with groups
Usually, there is one superuser, root – this
account has complete control of the system
PAM: Authentication

User accounts don’t help if you can’t authenticate, so
Linux provides PAM


Pluggable Authentication Module
PAM allows us fine grained support on logins and
authentication




Account modules: auth is valid under current conditions
(time of day, phase of moon…)
Authentication modules: authenticates the user
Password modules: Updating passwords, and measuring
password strength
Session modules: things to do at the start and end of every
session
Protection: Files




Files can be protected at the user, group,
world, level
Valid permissions are read, write, execute
umask provides default permissions for a user
on files and directories
Setuid bit – is this a vuln or a feature? Let’s
discuss…
Secure Access




None of the above matters if we can’t log in
to the box securely
Linux has a few features.
Most notably, we can restrict the places root
can log in from – perhaps to a local physical
console
All remote connections come in through sshd
– compare to telnet
Encrypted storage



First, let’s be clear… what are we protecting
from?
With that said, we can create an encrypted
bootload and encrypted storage in Linux
Protecting the boot sequence is pretty
important – we’ll revisit that when we look at
Windows 8
Logging


Or even audit…there’s syslog and auditing
In more up to date Linii, there’s auditd





Very flexible auditing system, that provides very
granular logging of events
Configured by audit rules
Tampering?
At the less granular level, there’s syslog etc.
In essence: you have the ability to see, if you
choose to look
Resource control


Linux can control how much of a resource a
particular user uses, too
Quota can also provide hard limits
Non-Executable Memory



Linux has supported the NX bit for almost
TEN years (!!!)
You do need to check your distribution and
kernel configuration though
Remind me: what does this achieve?
ASLR

Yes, Linux has address space layout
randomization as a kernel option
GCC assistance


Pointer encryption
-Wformat –Wformat-security





Not much use if you don’t pay attention
-D_FORTIFY_SOURCE=2 –O2 – put in runtime
and compile time checks on buffers
Built in stack canaries
Position Independent Executables (PIE)
ELF hardening (mark segments r/o before
execution
Things to Do

Take a look at the little Linux machine you
installed earlier in the semester. What security
features are available? What areas can you
harden the configuration. Tell me what you
did to try and harden the OS…
Questions & Comments

What do you want to know?