Deployment & Distribution

Slides:



Advertisements
Similar presentations
IUT– Network Security Course 1 Network Security Firewalls.
Advertisements

Ipchains and Iptables Linux operating system natively supports packet-filtering rules: Kernel versions 2.2 and earlier support the ipchains command. Kernel.
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) Sriram Gopinath( )
Securing Network using Linux. Lesson Outline Setting up a secure system TCP Wrapper configuration Firewalls in Linux Authentication Systems –NIS –Kerberos.
Network Security Testing Techniques Presented By:- Sachin Vador.
Web server security Dr Jim Briggs WEBP security1.
COEN 252: Computer Forensics Router Investigation.
Network Security1 – Chapter 3 – Device Security (B) Security of major devices: How to protect the device against attacks aimed at compromising the device.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 14: Problem Recovery.
Incident Response Updated 03/20/2015
PacNOG 6: Nadi, Fiji Dealing with DDoS Attacks Hervey Allen Network Startup Resource Center.
Firewalls CS432. Overview  What are firewalls?  Types of firewalls Packet filtering firewalls Packet filtering firewalls Sateful firewalls Sateful firewalls.
Module 1: Web Application Security Overview 1. Overview How Data is stored in a Web Application Types of Data that need to be secured Overview of common.
APA of Isfahan University of Technology In the name of God.
Apache Tomcat Web Server SNU OOPSLA Lab. October 2005.
Engineering Secure Software. SE Doesn’t End at Release  Deployment counts too Despite our best efforts to produce secure software Vulnerabilities can.
NetFilter – IPtables Firewall –Series of rules to govern what Kind of access to allow on your system –Packet filtering –Drop or Accept packets NAT –Network.
07/11/ L10/1/63 COM342 Networks and Data Communications Ian McCrumRoom 5B18 Tel: voice.
Karlstad University Introduction to Vulnerability Assessment Labs Ge Zhang Dvg-C03.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 3 v3.0 Module 6 Switch Configuration.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 3 v3.0 Module 6 Switch Configuration.
Firewall and Internet Access Mechanism that control (1)Internet access, (2)Handle the problem of screening a particular network or an organization from.
Objectives Configure routing in Windows Server 2008 Configure Routing and Remote Access Services in Windows Server 2008 Network Address Translation 1.
What if you suspect a security incident or software vulnerability? What if you suspect a security incident at your site? DON’T PANIC Immediately inform:
1 Firewalls. ECE Internetwork Security 2 Overview Background General Firewall setup Iptables Introduction Iptables commands “Limit” Function Explanation.
NETWORK SECURITY USING IPTABLES. TOPICS OF DISCUSSION NETWORK TRAFFIC IN PRESENT SCENARIO !! WHY WE NEED SECURITY ? T TYPE OF ATTACKS & WAYS TO TACKLE.
Firewalling With Netfilter/Iptables. What Is Netfilter/Iptables? Improved successor to ipchains available in linux kernel 2.4/2.6. Netfilter is a set.
IPtables Objectives Contents Practicals Summary
1 Quick Overview Overview Network –IPTables –Snort Intrusion Detection –Tripwire –AIDE –Samhain Monitoring & Configuration –Beltaine –Lemon –Prelude Conclusions.
CIS 450 – Network Security Chapter 14 – Specific Exploits for UNIX.
Security monitoring boxes Andrew McNab University of Manchester.
1 Linux Security. 2 Linux is not secure No computer system can ever be "completely secure". –make it increasingly difficult for someone to compromise.
1 Firewalls. ECE Internetwork Security 2 Overview Background General Firewall setup Iptables Introduction Iptables commands “Limit” Function Explanation.
Unit - III. Providing a Caching Proxy Server (1) A caching proxy server is software that stores (caches) frequently requested internet objects such as.
Introduction to Linux Firewall
Web Security Firewalls, Buffer overflows and proxy servers.
Databases Kevin Wright Ben Bruckner Group 40. Outline Background Vulnerabilities Log File Cleaning This Lab.
Web Server Security: Protecting Your Pages NOAA OAR WebShop 2001 August 2 nd, 2001 Jeremy Warren.
Regan Little. Definition Methods of Screening Types of Firewall Network-Level Firewalls Circuit-Level Firewalls Application-Level Firewalls Stateful Multi-Level.
LINUX® Netfilter The Linux Firewall Engine. Overview LINUX® Netfilter is a firewall engine built into the Linux kernel Sometimes called “iptables” for.
Unit 2 Personal Cyber Security and Social Engineering Part 2.
Linux Firewall Iptables.
Basic Edge Core switch Training for Summit Communication.
Lecture 9 Page 1 CS 236 Online Firewalls What is a firewall? A machine to protect a network from malicious external attacks Typically a machine that sits.
Introduction to Vulnerability Assessment Labs Ge Zhang Dvg-C03.
Firewalls. A Firewall is: a) Device that interconnects two networks b) Network device that regulates the access to an internal network c) Program that.
Central Management of 300 Firewalls and Access-Lists Fabian Mauchle TNC 2012 Reykjavík, 21-May-2012.
Common System Exploits Tom Chothia Computer Security, Lecture 17.
Defense In Depth: Minimizing the Risk of SQL Injection
Firewalls Dr. X (Derived from slides by Prof. William Enck, NCSU)
Linux Security Presenter: Dolev Farhi |
Critical Security Controls
Firewalls.
Chapter 7: Identifying Advanced Attacks
Securing services in a unix-based environment
The Linux Operating System
ECE 544: Middlebox lab Abhigyan Sharma.
CompTIA Server+ Certification (Exam SK0-004)
Secure Software Confidentiality Integrity Data Security Authentication
Securing services in a unix-based environment
IS3440 Linux Security Unit 6 Using Layered Security for Access Control
Nessus Vulnerability Scanning
The Stanford Clean Slate Program
Setting Up Firewall using Netfilter and Iptables
– Chapter 3 – Device Security (B)
OPS235: Configuring a Network Using Virtual Machines – Part 2
AppExchange Security Certification
Intrusion Detection system
Designing IIS Security (IIS – Internet Information Service)
Presentation transcript:

Deployment & Distribution Engineering Secure Software Deployment & Distribution

SE Doesn’t End at Release Deployment counts too Despite our best efforts to produce secure software Vulnerabilities can exist only when deployed in a production environment Users expect “secure by default” Your organization needs to be ready Incident response plan Version control practices Your installation & config scripts count Recommended firewall configuration Security manager configuration

Recent PostgreSQL Incident PostgreSQL reported a show-stopping vulnerability found on April 4th, 2013 http://www.postgresql.org/support/security/faq/2013-04-04/ “Argument injection vulnerability in PostgreSQL [9.2.x ..] allows remote attackers to cause a denial of service (file corruption), and allows remote authenticated users to modify configuration settings and execute arbitrary code, via a connection request using a database name that begins with a "-" (hyphen).” “The vulnerability allows users to use a command-line switch for a PostgreSQL connection intended for single-user recovery mode while PostgreSQL is running in normal, multiuser mode. This can be used to harm the server.”

How PostgreSQL Responded Embargo on the bug: March 13th – April 4th Removed the public version control repositories during the embargo Announced on the mailing lists to expect an immediate upgrade soon, without much detail Contacted vendors especially affected (e.g. Heroku) Core PosgreSQL developers assisted the vendors directly Tested patches on vendor’s environments Heroku already had a history of working directly with developers on experimental features

Incident Response Plan Incident definition How do you know that this behavior is bad? Use high-level risks & indicators from your initial risk assessment Establish who is involved Monitoring duties Contacts for an issue Security response team Chain of escalation Know who to contact to fix the problem Who sees the bugs (e.g. Cisco CEO gets daily escalation reports)

Incident Response Plan (2) Establish Procedures Writing the patch Testing the patch Security expert review of a patch Reacting to specific exploits Establish working relationships with key vendors Establish criteria for notifying the world Too late? Active exploits make you look behind Too early? Unnecessary panic Invites exploits

Version Control Practices Releases are treated as branches Most current version: trunk branch aka upstream Continuously-updated to the latest version Maintenance: release branch Diverges from the main truck New change to an old release? Backport Upstreams and backports can differ if the code has since changed a lot Configuration management coordinator Keeps track of all the branches and releases New devs often work on backports Keeps track of “testing gotchas” from one release to another (e.g. environment change, or non-change)

Upstream & Backport Sometimes… … Upstream commit Upstream /trunk Vulnerabilities were introduced by a backport (regression) Vulnerabilities only affect 1.0, not upstream Vulnerabilities affect some branches, but not others … Upstream commit r45547 1.0 Release /branches/1.0 r45546 r45545 1.1 Patch Configuration coordinator Security Response Team Vulnerability backport

Releasing Patched Versions You will need to release patched versions of your product “Patch it yourself” approach (e.g. Adobe Flash, Acrobat) Software contacts the vendor periodically and downloads software Benefit: simple, easy, you control how it works Drawback: Non-root installations mean malware can spoof the update site, or disable it Reverting a bad release is not usually supported Package manager approach (e.g. apt-get, yum, Mac App Store) Benefits OS support means packages are handled all in one place Harder to compromise: uses hash digests to verify Drawback: can annoy users “package X.1.2 isn’t in the system?!?!?”

Firewalls Designed to be the gatekeeper for networks Allow|Block IP addresses & Ports Forward traffic to different ports Network Address Translation (NAT) Installation scripts often need to configure the firewalls IPTables, the Linux firewall Create “tables of chains of rules” Table: group of chains for a given action (e.g., NAT, Filter, etc.) Chain: an ordered group of rules (e.g., INPUT, OUTPIT, etc.) Rule: specific definition of what’s in and what’s out e.g. view your Filter table: iptables -t filter –list Detailed flow: https://upload.wikimedia.org/wikipedia/commons/3/37/Netfilter-packet-flow.svg

e.g. IPTables Rules Command line -A  append to chain, -j  jump target (ACCEPT, DROP, etc.) -s  source of the packet, -d  destination of the packet -dport  destination port on local machine, --sport  source port -i  input network interface (e.g. network card driver), -o  output interface --state  packet states to match (e.g. NEW, ESTABLISHED), -p  protocol Drop all packets coming from a specific IP address iptables -A INPUT –s 129.21.208.62 -j DROP Allow SSH packets in and out iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

e.g. More IPTables rules Forward port on IP address 192.168.102.37 from 422 to 22 iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 --dport 422 -j DNAT --to 192.168.102.37:22 DoS mitigation: When we see a burst of 100 connections/min, limit to 25 connections/min on port 80 iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT Create a new chain for logging, turn it on iptables -N LOGGING iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7 iptables -A INPUT -j LOGGING

Security Managers Often a programming language feature Required for untrusted API situations Prevents sensitive API calls e.g. System.exit(1) in Java e.g. System properties (read and write) Highly customizable Turned off by default Many languages have them, or community provides them Java: Java Security Manager Python: e.g. RestrictedPython Perl: Safe.pm Ruby: Safe C/C++: None – use OS mechanisms

Security Managers in Practice In a server situation Limits access to underlying OS e.g. file access, logging Limits OS-sensitive functions e.g. opening a socket In a desktop situation Used to mitigate extensibility concerns Mitigates the “malicious plug-in” problem Not usually for license key situations (user can just remove the policy)

e.g. catalina.policy From Apache Tomcat, Java servlet container A web application is untrusted code running in the same VM DoS & access to underlying OS are concerns too Server startup JAR is given full permissions Grant read permissions to some system-wide properties // These permissions apply to the server startup code grant codeBase "file:${catalina.home}/bin/bootstrap.jar" { permission java.security.AllPermission; }; permission java.util.PropertyPermission "java.home", "read"; permission java.util.PropertyPermission "java.naming.*", "read"; permission java.util.PropertyPermission "javax.sql.*", "read";

e.g. catalina.policy (2) Grant application-specific logging file permissions Grant read API permissions for web applications for a given package permission java.util.logging.LoggingPermission "control"; permission java.io.FilePermission "${java.home}${file.separator}conf${file.separator}logging.properties", "read"; // All JSPs need to be able to read this package permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat";