going outside the application

51
Going Outside the Application Matthew Saltzman, Security Engineer Blackboard Inc. Securing the Environment for Blackboard Learn

Upload: matthew-saltzman

Post on 26-Jul-2015

43 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Going outside the application

Going Outside the ApplicationMatthew Saltzman, Security EngineerBlackboard Inc.

Securing the Environment for Blackboard Learn

Page 2: Going outside the application

ABOUT ME

Matthew SaltzmanSecurity EngineerBlackboard [email protected]

I have been at Blackboard for over 5 years, 4 of those in Blackboard Support

Page 3: Going outside the application

INTRODUCTION

• Blackboard contains Sensitive Information• Names• Addresses• Social Security Numbers

• Should be removed if present• Grade Information for Courses

• This data must be protected• Securing the application can only be one

component in securing this information• Also need to secure the environment it runs on

Page 4: Going outside the application

COMPONENTS TO SECURE

• Application• Network • Operating System• Database• 3rd Party components external to Blackboard• Institution Policies

Page 5: Going outside the application
Page 6: Going outside the application

SSL

• Protection against network monitoring tools• Traffic Sniffing

• Protection against Man in the Middle Attacks• Easy to configure Blackboard to use SSL

• Requires an SSL certificate from a signing authority (SA)

• Configure webserver to use SSL certificate• Turn on SSL

• Through the Application• Via SSL offloading

Page 7: Going outside the application

TYPES OF CERTIFICATES

Regular SSL Certificate • single site• up to 256-bit encryption

EV Certificate • single site• up to 256-bit encryption• Much stricter issuing criteria

Wildcard Certificate • multiple sites in the same domain

• up to 256-bit encryption

Intermediary Certificate • single site• Used in conjunction with a

Wildcard Certificate to validate the identity of the individual site

Page 8: Going outside the application

ALTERNATE CONTENT DOMAIN

• Purpose: XSS Prevention from files• Creates a single-use session for downloading

the file• Prevents session stealing from main Blackboard

session• Expires as soon as the file is downloaded

• Requires separate SSL certificate for alternate domain• Otherwise SSL errors will appear

Page 9: Going outside the application

CHANGES DUE TO ALTERNATE DOMAIN

Without Alternate Domain for serving content:

With Alternate Domain for serving content:

Page 10: Going outside the application

PATCHES AND UPGRADE SCHEDULE

• Application Vulnerabilities often fixed via patches• Released via bbpatch• Publish a Security Advisory to Behind the

Blackboard• Not all vulnerabilities fixed this way

• Too complex a fix• Fixed by a new security feature

• Capturing Security Events (SP12)• Secure User Password Storage (SP12)

• Keep Blackboard version up to date as well

Page 11: Going outside the application
Page 12: Going outside the application

FIREWALL

• Helps prevent unauthorized access to the server• Limits access to allowed ports• Blocks access from devices that should not

have access• Required Ports (Defaults):

80 - HTTP port                8011 - Collab HTTP Port

443 - SSL port 8443 - Collab SSL Port

8009 - Tomcat Port number 8006 - Collab Shutdown Port

8005 - Tomcat Shutdown Port 1521 - (Oracle DB) 1433 - (SQLServer)

8010 - Collab TCP Port 8016 - BBExec Service Port

61616 – ActiveMQ Port

Page 13: Going outside the application

DEMO

• How Firewalls help prevent network penetration• Demonstration of how port scanning works

Page 14: Going outside the application

IPTABLES CONFIGURATION

Page 15: Going outside the application

NETWORK SEGMENTING

• Different types of servers should be in different network zones• DMZ – perimeter network containing external

facing servers• Most vulnerable

• Any other network zone – Should not contain external servers

• Firewall present between DMZ and rest of network

• Application servers should be in the DMZ• Database should not

Page 16: Going outside the application

NETWORK DIAGRAM

Page 17: Going outside the application

TRAFFIC SHAPER

• Device that does “Rate Limiting” on network traffic to specific devices

• Packet Shaping• Helps prevent DoS attacks

• Slows rate of traffic hitting server• Requires statistics

• Expected Incoming Traffic • Acceptable incoming traffic Rates• Traffic rate too low causes performance issues for

end users• Traffic rate too high could allow DoS attack to

succeed• Could be done through Load Balancer

Page 18: Going outside the application

TRAFFIC SHAPER GRAPH

Page 19: Going outside the application

SSL OFFLOADING

• Can use either Load Balancer or specific offloading tool (SSL Accelerator)• Cuts down cost of encryption

• Tool (Load Balancer or otherwise) much faster at encryption then Application Server

• Allows Longer SSL encryption key• Thus, helps prevent DoS due to SSL

Page 20: Going outside the application

INTRUSION DETECTION/ PREVENTION SYSTEM

• Monitors network for malicious traffic• Can take various actions when discovered:

• Send an Alert• Log malicious traffic for review• Drop malicious traffic (Prevention only)

• Can be configured using custom rules• Different types

• Network Based – prevents network attacks• Host based – prevents OS level attacks

• Some examples (Open Source):• Snort (Network IPS)• OSSEC (Host IPS)• Suricata (Network IPS)

Page 21: Going outside the application

SNORT

Page 22: Going outside the application

OSSEC

Page 23: Going outside the application

SURICATA

Page 24: Going outside the application

ALTER PORTS, REMOVE BANNERS

• Port Scans• Tells scanner which ports are open• Reports any banners associated with open ports

• Default ports describe which application is running• Therefore, do not use default ports

• Exceptions: ports 80 and 443 • Banners on ports explain what non-default

ports do• Therefore, remove any descriptions of the ports

as well

Page 25: Going outside the application

PORT SCANNER

Page 26: Going outside the application
Page 27: Going outside the application

PROTECT ANY OPERATING SYSTEM

• Keep Operating System up to Date• OS Patches• Application/Service Packs

• Dedicate Servers to specific tasks• Prevents vulnerabilities in one application or

task from affecting others• Use domain accounts for users

• Allows for simpler auditing of user activity• Require strong passwords for all accounts

• Helps prevent unwanted access to servers

Page 28: Going outside the application

DEMO

• Why dedicating servers to specific tasks is a good idea• Insecure tool running on same server as

Blackboard

Page 29: Going outside the application

INSECURE SERVER CODE

Page 30: Going outside the application

AUDITING OS ACTIVITY

• OS should be configured for auditing• Account with activity• Action this account took• Time the action was taken

Page 31: Going outside the application

AUDIT LOG RECOMMENDATIONS

• Archive and Clear audit log daily• Prevents performance issues• Easier to read and locate problems• Easier to notice tampering with the audit log

• Alerts on suspicious activity• Authentication Problems• Altering system settings• Accessing Sensitive Data

Page 32: Going outside the application

BAD AUDIT LOG

Page 33: Going outside the application

SECURING LINUX SERVERS

• Require SSH instead of Telnet• Telnet is insecure• Traffic sniffing Telnet session is possible

• Use public/private key authentication • Private Key file never leaves the client machine• Private key cannot be computed from public key

• Add a strong passphrase to the private key file• Prevents a user from using a stolen private key

Page 34: Going outside the application

PUBLIC KEY SSH AUTHENTICATION

Page 35: Going outside the application

APACHE2

• All Linux application servers should run Apache2• Added security, as is current version• Can keep up-to-date with patches and new

versions• Does not require Blackboard intervention

• Can add MOD_SECURITY • Application firewall

• Can prevent some application vulnerabilities • Not easy in Blackboard Apache, if even possible• Allows for audit logging of HTTP

• Information about potential malicious activity within the application

Page 36: Going outside the application

MOD_SECURITY FLOW DIAGRAM

Page 37: Going outside the application

RENDERED MOD_SECURITY LOG

Page 38: Going outside the application

SECURING WINDOWS SERVERS

• Group Policy• Strong password Requirements• Require password changes often• Audit log (covered earlier)

• IIS Settings• IIS User with minimal permissions to everything

except application• MOD_SECURITY for IIS possible

• SCW (Security Configuration Wizard)• Wizard for setting security configuration

Page 39: Going outside the application
Page 40: Going outside the application

UNIQUE DATABASE CONCERNS

• Contains all data from the application• Need to configure OS Security

• Access to the OS means access to the DB, usually

• Also need database specific security• DB is meant to be accessed remotely

Page 41: Going outside the application

DATABASE USER SECURITY

• Strong Database Passwords• Should not match OS

Passwords• Each Password

should be Unique• Users should not use

system accounts• sa, root, master, etc. • Allows for auditing of

individual users’ activity

Page 42: Going outside the application

DATABASE SECURITY MEASURES

• Limit DB permissions to bare minimum• Helps prevent database privilege escalation

• Limit login by IP Address• Prohibits access to Database by unauthorized

machines• Potential Solution:

• Encrypt traffic to and from Database• Please performance test this first, may not

perform well

Page 43: Going outside the application
Page 44: Going outside the application

REDIS

• 3rd Party Caching Database• Blackboard Developed

B2 to replace server caches

• See Nori’s presentation on performance impact: • 8:30 – 9:15 AM

Tuesday in Murano 3301B

Page 45: Going outside the application

REDIS SECURITY FEATURES

• Should never manually log into Redis cache• Password should be far more complex than

normal• Stored in a properties file

• Block Unused Redis commands• Prevent users who gain access from affecting

Redis in unauthorized ways• Keep Redis Application up to date

Page 46: Going outside the application

OTHER 3RD PARTY APPLICATIONS

• Understand scope of server• What needs to access it• Expected network traffic• Expected paths to and from

server• Size the application properly• Utilize all security features of

the application• Secure the server itself

Page 47: Going outside the application
Page 48: Going outside the application

INSTITUTION POLICIES

• Policies meant to encourage secure behavior by all personnel

• Help to prevent privileged user mistakes• Such as sharing security information at a bar

Page 49: Going outside the application

PASSWORD POLICIES

• Strong passwords should be encouraged• Require minimum password strength• Require users to change passwords often• Do not re-use passwords• Do not share passwords

• Can prevent malicious user from accessing privileged account• Privileged accounts can bypass most security• Renders all previous actions essentially moot

Page 50: Going outside the application

DOMAIN USER POLICIES

• Each user has a domain account• Each account has a set of associated roles

• Defines level of access• Administration• IIS/Apache• Etc.

• Limit Access to servers or admin features by role• Prevents unauthorized or unexpected access

Page 51: Going outside the application

THANK YOU!

Matthew SaltzmanSecurity EngineerBlackboard [email protected]