1 Update on the Vulnerability Assessment Effort Elisa Heymann Computer Architecture and Operating Systems Department Universitat Autònoma de Barcelona.

Post on 24-Dec-2015

214 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

1

Update on the Vulnerability Assessment Effort

Elisa HeymannComputer Architecture and

Operating Systems DepartmentUniversitat Autònoma de Barcelona

Elisa.Heymann@uab.es

2

EMI: Software to Assess

› gLite– Argus 1.2– gLexec 0.8– VOMS Core– CREAM: Computing Resource

Execution And Management– WMS: Workload Management System

3

EMI: Software to Assess

› Unicore– TSI: The Target System Interface– Gateway

4

Current Status

› VOMS Admin 2.0.18: done!

› Java, JSP y javascript› 38 KLOC› 2.5 months of work

5

Current Status› VOMS Admin 2.0.18: done

› 2 Critical vulnerabilities› Cross Site Request Forgery attacks => an

attacker will be able to execute arbitrary VOMS Admin actions.

› Persistent Cross Site Scripting vulnerabilities => non-privileged users can store javascript code in the database, which will be executed by other users.

› 2 Non-critical vulnerabilities› Fields of the web interface that display

information about the users certificates are vulnerable to Persistent Cross Site Scripting vulnerabilities.

› Reflected Cross Site Scripting vulnerabilities => non-privileged users can submit javascript code to VOMS Admin, and this code is reflected back to the user browser.

6

Current Status

› gLexec 0.8: done!› C› 13 KLOC› 5 months of work

7

Current Status

› gLexec 0.8: done!› 3 Critical vulnerabilities

› Lack of cleanup of jobs => allows a prior user of the uid to attack the current user's jobs and files.

› Reuse of local uids => attack another job running later.

› 1 Non-critical vulnerabilities› A job can prevent the job completed log record

from being written to the glexec log.

8

Current Status

› Argus 1.2: done!› Java, C, scripting languages› 42 KLOC› 5 months of work

› No vulnerabilities found.› Report on what was assessed and why

Argus worked fine.

9

Were are we now

› VOMS Core 2.0.2: Just started– Vincenzo Ciaschini & Valerio Venturi– C:     30753 – C++:     10138– exp:         7955 – java:         7754

› Started: May 2011› Expected duration: 6 months

10

Vulnerability Assessment@EMI

Apply FPVA to relevant EMI Middleware– Assess the SW– Generate vulnerability reports

A vulnerability is considered only when we produce an exploit for it.

First Principles Vulnerability AssessmentUnderstanding the System

Step 1: Architectural Analysis – Functionality and structure of the system,

major components (modules, threads, processes), communication channels

– Interactions among components and with users

CE Host

authZ service Host

PDP

WN Host

PEP ServerWN job

gLExec

PAP Admin Tool (Edit Policy)

Administrator

2

3

4

56

9

10a

LRMS

WMS

CREAM

User (UI)

1a

RB Host

1b

Argus 1.2 Architecture

PAP

7 8

D’ E’

PAP (Policy Administration Point) → Manage Policies.PDP (Policy Decision Point) → Evaluate Authorization Requests.PEP (Policy Enforcement Point) → Process Client Requests and Responses.

B

A

C’

Admin data-flowUser data-flow

F’

Dt

HTT

PS

PEP Client (Lib)

Communications among PAP, PDP, and PEP Server via HTTPS

CLI

Et

/etc/init.d/pdp reloadpolicy

/etc/init.d/pepd clearcache

Ft

10b

Run job Exit gLExec

OS privileges user batch user

External Component

Administrator & rootroot

First Principles Vulnerability AssessmentUnderstanding the System

Step 2: Resource Identification – Key resources accessed by each component– Operations allowed on those resources

Step 3: Trust & Privilege Analysis – How components are protected and who can

access them– Privilege level at which each component

runs– Trust delegation

authZ service Host (PAP Component)

conf lib logsTRUSTED_CA etc/grid_security

pap_ configuration.ini

pap_ authorization.ini

hostcert .pem

hosthas key

signed,

hostkey.pem

Argus 1.2 Resources

Readable

OwnerWorld

certificates

PAP

logging

bin

pap-admin

repository sbin

pap-standalone.sh

pap- deploy.sh

XML Policies

OS privileges user batch user

External Component

Administrator & rootroot

authZ service Host (PDP Component)

conf lib logsTRUSTED_CA etc/grid_security

pdp.ini hostcert.pem

hosthas key

signed,

hostkey.pem

Argus 1.2 Resources

certificates

sbin

env.sh logging.xml

Readable

OwnerWorld

pdpctl.sh

PDP Repository

policy

OS privileges user batch user

External Component

Administrator & rootroot

authZ service Host (PEP Server Component)

conf lib logsTRUSTED_CA etc/grid_security

pepd.ini

Argus 1.2 Resources

sbin

env.sh logging.xml

Readable

OwnerWorld

pepdctl.sh

hostcert .pem

hosthas key

signed,

hostkey.pem

certificates grid-mapfile groupmapfile

gridmapdir vomsdir

PEP Server Cached Policies

OS privileges user batch user

External Component

Administrator & rootroot

First Principles Vulnerability Assessment Search for Vulnerabilities

Step 4: Component Evaluation– Examine critical components in depth– Guide search using:

Diagrams from steps 1-3Knowledge of vulnerabilities

– Helped by Automated scanning tools

First Principles Vulnerability Assessment Taking Actions

Step 5: Dissemination of Results– Report vulnerabilities– Interaction with developers– Disclosure of vulnerabilities

20

Vulnerability Report

› One report per vulnerability› Provide enough information for

developers to reproduce and suggest mitigations

› Written so that a few sections can be removed and the abstracted report is still useful to users without revealing too much information to easily create an attack.

21

Categories of Vulnerabilities

› Design Flaws– Problems inherent in the design– Hard to automate discovery

› Implementation Bugs– Improper use of the programming language,

or of a library API– Localized in the code

› Operational vulnerabilities– Configuration or environment

› Social Engineering– Valid users tricked into attacking

Occur about equally

22

How do You Respond?› Identify a team member to handle vulnerability

reports.› Develop a remediation strategy:

– Study the vulnerability report.– Use your knowledge of the system to try to identify other

places in the code where this might exist.– Study the suggested remdiation and formulate your

response.– Get feedback from the assessment team on your fix –

very important for the first few vulnerabilities.› Develop a security patch release mechanism.

– This mechanism must be separate from your release feature/upgrade releases.

– You may have to target patches for more than one version.

23

How do You Respond?Develop a notification strategy:› What will you tell and when?› Users are nervous during the first reports, but

then become your biggest fans.› Often a staged process:

1. Announce the vulnerability, without details at the time you release the patch.

2. Release full details after the user community has had a chance to update, perhaps 6-12 months later.

› Open source makes this more complicated! The first release of the patch reveals the details of the

vulnerability.

top related