your first guide to "secure linux"

86
Your First Guide to ”secure Linux” August 12, 2010 Toshiharu Harada [email protected] NTT DATA CORPORATION

Upload: toshiharu-harada-phd

Post on 12-May-2015

3.803 views

Category:

Technology


0 download

DESCRIPTION

LinuxCon 2010 presentation slides

TRANSCRIPT

Page 1: Your First Guide to "secure Linux"

Your First Guide to”secure Linux”

August 12, 2010Toshiharu Harada

[email protected] DATA CORPORATION

Page 2: Your First Guide to "secure Linux"

Abstract

There  are  two  types  of  people  in  the  world.  Those  who  are  security  experts,  and  the  remainder  of  the  world.  In  most  cases,  security  experts  are  willing  to  provide  technical  assistance  to  people,  but  this  does  not  always  work  as  the  information  can  be  highly  technical  and  confusing  if  you  are  not  comfortable  with  the  fundamentals  of  Linux  security.

Toshiharu  Harada,  Project  Manager  for  TOMOYO  Linux  at  NTT  DATA  CORPORATION  will  share  the  fundamental  concepts  of  "secure  Linux"  for  managers  and  end  users  who  have  little  or  no  familiarity  with  security.  This  session  does  not  require  any  special  skills  or  knowledge,  and  is  *not*  designed  for  security  experts.

Page 3: Your First Guide to "secure Linux"

Hey!I just found a

terrible vulnerability!

Excuse me,why you look so

happy?

Page 4: Your First Guide to "secure Linux"

Deadly wrong, everything is just

for you

Aren’t you having fun?

Page 5: Your First Guide to "secure Linux"

Prologue"Whenever people agree with me, I always feel I must be wrong”

-- Oscar Wilde

Page 6: Your First Guide to "secure Linux"

“secure Linux” is a Linux version of“OS with enhanced security”

Page 7: Your First Guide to "secure Linux"

What is “OS with enhanced security”?

Page 8: Your First Guide to "secure Linux"

You can Google it as always, but what you get will be

much more than you want(and hard to understand)

Page 9: Your First Guide to "secure Linux"

If you ask “security people” ...

You’ll get the same results in 3D

Page 10: Your First Guide to "secure Linux"

• Tons of information on the net ...

• Open source implementations available ...

• Active and friendly community ...

What’s the missing link?

Page 11: Your First Guide to "secure Linux"

Maybe the missing link is the “concept” of “secure Linux”

So, here I am

Page 12: Your First Guide to "secure Linux"

Who Am I?

• Project manager of TOMOYO Linux, one of the “secure Linux” extensions part of the upstream

• When I launched TOMOYO project in 2003, I started investing of the existing projects

• Thanks to many people, TOMOYO has been incorporated in the mainline Linux kernel

Page 13: Your First Guide to "secure Linux"

This presentation is

intended to provide you the fundamental concepts of

• what “secure OS” is

• why it has to be developed

Page 14: Your First Guide to "secure Linux"

What You Get

Understanding the underlying concepts of “secure Linux” should help you

• to enlarge your administrative knowledge and experience

• to make a good decision on when and how you need it

• to protect your system (someday)

Page 15: Your First Guide to "secure Linux"

“secure Linux” is

• a name for Linux version of “secure OS (operating system)”

• Linux has three “secure Linux” extensions: SELinux, SMACK and TOMOYO currently, and AppArmor (to be merged for 2.6.36)

Page 16: Your First Guide to "secure Linux"

Pros of “secure Linux”

• It can reduce the potential damages to your Linux system when it gets exploited

• So, let’s start with “exploits”

Page 17: Your First Guide to "secure Linux"

Chap. 1Exploits"Give me a place to stand on, and I will move the Earth.”

-- Archimedes

Page 19: Your First Guide to "secure Linux"

Law #1

“If a bad guy can persuade you to run his program on your computer, it’s not your computer anymore”

• Actually, a bad guy can run his program on your computer without persuading “you”

• That’s what we call an “exploit”

Page 20: Your First Guide to "secure Linux"

What is an “exploit”?From Wikipedia (as of July 15th, 2010)

• An exploit is a piece of software, a chunk of data, or sequence of commands that take advantage of a bug, glitch or vulnerability in order to cause unintended or unanticipated behavior to occur on computer software, hardware, or something electronic (usually computerised).

• This frequently includes such things as gaining control of a computer system or allowing privilege escalation or a denial of service attack.

Page 21: Your First Guide to "secure Linux"

Bad luck aspect of computer science

From “10 Immutable Laws of Security by Microsoft” Law #1

• “It’s an unfortunate fact of computer science: when a computer program runs, it will do what it’s programmed to do, even if it’s programmed to be harmful.”

Page 22: Your First Guide to "secure Linux"

Exploits Demo

• Understanding the meaning of “exploit” helps you to understand what “secure OS” is

• Let’s see three examples

Page 26: Your First Guide to "secure Linux"

Know Thy Enemy

• Typical procedures of exploits

1. Connect to a server pretending a normal client

2. Check to see if a server is a vulnerable one

3. Cause “misbehavior” by buffer overflow and other technique

• Their goal is gaining the root privilege

Page 27: Your First Guide to "secure Linux"

Chap.1 Summary

• Exploits are based on vulnerabilities

• Vulnerabilities are common and your systems is exposed to many risks

• Exploits aim to obtain root privilege of your system in the most cases

Page 28: Your First Guide to "secure Linux"

Chap. 2Linux

Security

“With great power, comes great responsibility”

-- Peter Parker

Page 29: Your First Guide to "secure Linux"

Reviewing Good Old Linux Security

• Linux had got “security”, of course

• it’s called Discretionary Access Control (DAC, for short)

• “Owners” (and root) can define access permissions through “chmod” command

• Any problem with that?

• Yes, unfortunately

Page 30: Your First Guide to "secure Linux"

Problem with DAC

• Root user can violate DAC settings

• DAC cannot help when ...

• your server is exploited

• a bad guy manages to login your server as root

• It’s useless against exploits

Page 31: Your First Guide to "secure Linux"

What about Firewalls and IDS?

Can they compensate DAC shortage?

Page 32: Your First Guide to "secure Linux"

Firewall and IDS

• Firewall

• Exploits pretend to be good clients and try to connect through opened ports

• IDS

• IDS can’t recognize unknown/future attacks and vulnerabilities

Page 34: Your First Guide to "secure Linux"

Buffer Overflow

• We learned that DAC and other traditional Linux security are not quite dependable

• Suppose “buffer overflow” is a typical approach of attacks, can we prevent them causing “buffer overflow”?

Page 36: Your First Guide to "secure Linux"

Buffer Overflow

• What is it?

• Intentionally cause overflow of “buffer” to gain control and execute /bin/sh

• How to protect?

• Various tools and technologies have been invented, but not guarantee safe

Page 37: Your First Guide to "secure Linux"

Chap. 3MAC

"Although the world is full of suffering, it is full also of the overcoming of it.“

-- Helen Keller

Page 38: Your First Guide to "secure Linux"

Origins of secure OS

• In ‘80s, research has been made in the USA, to define evaluation criteria for trusted computer systems

• DoD unveiled “Trusted Computer Systems Evaluation Criteria” (TCSEC, aka “Orange Book”) in 1985

Page 40: Your First Guide to "secure Linux"

Amiga 1000 was released in 1985

Page 41: Your First Guide to "secure Linux"

TCSEC(TRUSTED COMPUTER SYSTEM EVALUATION CRITERIA)

“Discretionary Protection”

and “Mandatory Protection”

and “Verified Protection”

Trusted Computer Systemsshould have ...

Division A

Division B

Division C

Division D “Minimal Protection”

Page 42: Your First Guide to "secure Linux"

DAC defined by TCSEC

• “The TCB* shall define and control access between named users and named objects in the ADP* system.”

• “The enforcement mechanism shall allow users to specify and control sharing of those objects by named individuals or defined groups or both.”

• TCB: Trusted Computing Base, ADP: automatic data processing ( you don’t have to remember these terms, I think)

Page 43: Your First Guide to "secure Linux"

DAC

object

user(self)

othersgroup

execute

readwrite

Page 44: Your First Guide to "secure Linux"

DAC

object

user(self)

othersgroup

execute

% chmod 600 my_file

readwrite

Page 45: Your First Guide to "secure Linux"

MAC

• MAC (Mandatory Access Control) can improve the situation which DAC cannot solve

Page 46: Your First Guide to "secure Linux"

MAC defined by TCSEC

• “The TCB shall enforce a mandatory access control policy over all subjects and storage objects under its control.”

• “These subjects and objects shall be assigned sensitivity labels that are a combination of hierarchical classification levels and non-hierarchical categories, and the labels shall be used as the basis for mandatory access control decisions.”

Page 47: Your First Guide to "secure Linux"

MAC

subjectA

objectB

label forA

label forB

grant or reject

Page 48: Your First Guide to "secure Linux"

NSA SELinux FAQ

Security of Linux system depends ...

1. Unmodified Linux system

2. Linux system with MAC

Page 49: Your First Guide to "secure Linux"

Security of“Unmodified Linux System”

security

correctness of the kernel

privileged applications

Page 50: Your First Guide to "secure Linux"

MAC

Security of“Linux System with MAC”

security

correctness of the kernel

security policy

Page 52: Your First Guide to "secure Linux"

Differences

Unchanged (Things you cannot change)

• exploit has occurred

• a bad guy obtained “root” shell without logging in

Changed (Things you can change with MAC)

• some commands failed despite of “root” privilege (MAC introduced a new layer of security)

Page 54: Your First Guide to "secure Linux"

Chap. 4“Policy”God, give us grace to accept with serenitythe things that cannot be changed,Courage to change the thingswhich should be changed,and the Wisdom to distinguishthe one from the other.

-- Reinhold Niebuhr

Page 55: Your First Guide to "secure Linux"

“secure Linux” needs “policy”

• MAC is an “instrument” to restrict invalid accesses, not a “brain”

• You (security admin) do instruct MAC system about good and bad accesses by defining a “policy” (AppArmor calls it “profile”)

Page 56: Your First Guide to "secure Linux"

Importance of “policy”

The goal is very simple

• Grant access if it’s correct (or needed)

• Reject everything else

If you make mistakes in your policy

• system might fail to work properly

• system might not be protected

Page 57: Your First Guide to "secure Linux"

The Serenity Prayer

O God, give us

grace to accept with serenity the things that cannot be changed,

Courage to change the things which should be changed,

and the Wisdom to distinguish the one from the other

Page 58: Your First Guide to "secure Linux"

The Security Prayer(with my deepest respects for Reinhold Niebuhr)

O God, give us

grace to accept with serenity the things that are needed,

Courage to reject the things which are not necessary,

and the Wisdom to distinguish the one from the other

Page 59: Your First Guide to "secure Linux"

Where to find the wisdom?

SELinux has a “reference policy”

• “that embodies the built-up knowledge over the years about what accesses are in fact required for a large body of software”

• novice users can start with “Boolean” and power users can maintain their own foundation

TOMOYO and SMACK

• “Do it yourself”

Page 60: Your First Guide to "secure Linux"

“Domain”

• No program is always good or always bad

• Therefore, security policies are the set of security contexts (conditions)

• SELinux and TOMOYO call them “domains” (AppArmor call them “profiles”)

Page 61: Your First Guide to "secure Linux"

“Domain”

“Granularity” of MAC policy is determined by two factors

• “domain” granularity

• access control granularity for each domain

Both live in the kernel space, not in the userspace

Page 62: Your First Guide to "secure Linux"

kernel

userspace

Page 63: Your First Guide to "secure Linux"

Managing Policy

What and When

• Give permissions only when they are needed

• Delete permissions if they turned out to be unnecessary

How

• Carefully monitor the logs

Page 64: Your First Guide to "secure Linux"

Managing PolicyCautions

• a policy “error” is detected/defined when a access occurs but its definition is missing among policy rules

• you can add such an error definition to the policy, in fact transforming it into policy rule, so that the same error will not occur anymore

• if you repeat this step thoughtlessly, you will lose control

Page 65: Your First Guide to "secure Linux"

“Policy Auto Learning”

What is it?

• Feature available with AppArmor and TOMOYO

How it works?

• Observing executions of system call

• Transform results into the policy rule (like audit2allow does for SELinux)

Page 66: Your First Guide to "secure Linux"

Results of policy auto learning

• can never be perfect

• has no logics

• should be considered as a starting point

Auto learning feature can be used as an analysis tool or an educational tool

Page 67: Your First Guide to "secure Linux"

ReferencesLive as if you were to die tomorrow. Learn as if you were to live forever.

-- Mahatma Gandhi

Page 68: Your First Guide to "secure Linux"

For Comprehensive Understanding of Linux Security

Ideal reference by James Morris, who is the Linux kernel security subsystem maintainer; author of the kernel cryptographic API; and a leading contributor to the SELinux, Linux Security Module, Netfilter and IPsec projects.

Page 72: Your First Guide to "secure Linux"

TCSEC to ISO/IEC 15408

• TCSEC has expired and the current standard is ISO/IEC 15408

• Functional requirements have been described as “protection profile”

• LSPP (Labeled Security Protection Profile) succeeds MAC in TCSEC

Page 75: Your First Guide to "secure Linux"

Other Topics

Page 76: Your First Guide to "secure Linux"

Secure Embedded Linux

Characteristics of embedded devices

• Dedicated for usages and built with minimum resources

• Mass production affects cost (recall for millions, for instance)

• Network/HD/Updates might not always be available

Linux has been spreading for embedded devices

Page 79: Your First Guide to "secure Linux"

“Cloud”

• Guest OS runs as a process from host OS / hypervisor

• Internal activities of guest OS are translated, so host OS can hardly monitor and confine them

• Guest OS share the NIC, HD and other devices, so physically reachable each other

Page 80: Your First Guide to "secure Linux"

“Cloud”Commonly used virtualization library “libvirt” has been incorporated the results of “sVirt (secure virtualization)”

Page 81: Your First Guide to "secure Linux"

Congratulations

• You’ve just learned the most difficult part of Linux security, “understanding the concept”

• Everything else is waiting for you to begin

• If you understand “secure Linux”, you will find it as an invaluable tool

Page 82: Your First Guide to "secure Linux"

“Loving can cost a lot, but not loving always costs more.”

-- Merle Shain

Page 83: Your First Guide to "secure Linux"

Why not starting today?

Page 84: Your First Guide to "secure Linux"

The Serenity Prayerby Reinhold Niebuhr (1892-1971)

God, give us grace to accept with serenity the things that cannot be changed,

Courage to change the things which should be changed, and the Wisdom to distinguish the one from the other.

Living one day at a time, Enjoying one moment at a time, Accepting hardship as a pathway to peace,

Taking, as Jesus did, This sinful world as it is, Not as I would have it,

Trusting that You will make all things right, If I surrender to Your will,

So that I may be reasonably happy in this life, And supremely happy with you forever in the next.

Amen

Page 86: Your First Guide to "secure Linux"

The latest version of these slides can be found at SlideShare

Acknowledgements

Special thanks to Giuseppe La Tona, Tetsuo Handa for reviewing and Stephen Smalley for correcting SELinux related information

Trademarks

Linux is a registered trademark of Linus Torvalds in the United States and other countries

TOMOYO is a registered trademark of NTT DATA CORPORATION in Japan