Collaborative Security: Securing Open Source Software

Slides:



Advertisements
Similar presentations
Version Control Systems Phil Pratt-Szeliga Fall 2010.
Advertisements

Static Code Analysis and Governance Effectively Using Source Code Scanners.
Desktop Security: Worms and Viruses Brian Arkills, C&C NDC-Sysmgt.
Sudheesh Singanamalla. Editable and Free Every open source software is free to download and use for a lifetime. At the same time it gives the transparency.
Software Assurance Session 13 INFM 603. Bugs, process, assurance Software assurance: quality assurance for software Particularly assurance of security.
Turning Software Projects into Production Solutions Dan Fraser, PhD Production Coordinator Open Science Grid OU Supercomputing Symposium October 2009.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June, 2011 Made available under the Eclipse Public License v Mobile.
Update on the Grid Security Vulnerability Group Linda Cornwall, MWSG7, Amsterdam 14 th December 2005
Security Vulnerabilities Linda Cornwall, GridPP15, RAL, 11 th January 2006
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Unlocking the Community Toolchest Tony Atkins UHI Millenium Institute.
How We Got Here PC and Internet changed the rules –Viruses, information sharing, “outside” and “inside” indistinguishable –Vulnerability research for.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Image by apaixonada: Talking people into creating patches.
How To Get Involved In Open Source Nick Burch Senior Developer, Alfresco Software VP ConCom, ASF Member.
Thinking Outside the Box Linux. Question: What form of transportation racks up the most passenger miles per year? Not cars Not bicycles Not buses Not.
Code Simplicity: Software Design In Open Source Projects Max Kanat-Alexander
Common System Exploits Tom Chothia Computer Security, Lecture 17.
THE BEST CRM SOFTWARE FOR YOUR BUSINESS
CSC 108H: Introduction to Computer Programming
Open source development model and methodologies.
Linux Standard Base Основной современный стандарт Linux, стандарт ISO/IEC с 2005 года Определяет состав и поведение основных системных библиотек.
CII badging program for ONAP ONAP security committee Stephen Terrill
Containers as a Service with Docker to Extend an Open Platform
Continuous Delivery- Complete Guide
Open Source Software Development
Top Ten List for Directors of Technology
Version Control with Subversion
Ethical, Legal, Cultural and Environmental Concerns
The Development Process of Web Applications
An assessment framework for Intrusion Prevention System (IPS)
Chapter 18 Maintaining Information Systems
Managing Client’s Projects in Opensource and Being Profitable
Choosing Technologies
Putting It All Together
Putting It All Together
Lesson Objectives Aims You should be able to:
^ About the.
Quality Control in the dCache team.
Chapter 2 SW Process Models
Auditing in an Agile Environment
Microsoft Inspire 9/17/2018 2:10 PM Proactive Insights
ONAP Security Sub-committee Update
Dilbert Scott Adams Manage It! Your Guide to Modern, Pragmatic Project Management. Johanna Rothman.
Open Technology for an Open Lifecycle Sean Kennedy, OSLC Community Development Leader @seanpk8 A look at the challenges facing today’s organizations.
6. Quality, maintenance and documentation
Automating Profitable Growth™
Research for Cyber Security Warwick University Industry Day 2018
CO1301: Games ncepts 2016 Lecture 2
11/28/2018 5:35 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Chapter 2 – Software Processes
Figure 6-4: Installation and Patching
Helping a friend out Guidelines for better software
Risk Management CSCE 489/689 (Software Security) Fall 2018
IoT Security – fel vagyunk rá készülve?
Chapter 7 –Implementation Issues
JOINED AT THE HIP: DEVSECOPS AND CLOUD-BASED ASSETS
Continuous Integration
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Topic 5: Communication and the Internet
Open Source Development Challenges
Vulnerability Reporting Process
O.S. Security.
CO1301: Games epts 2015 Lecture 4 Sales Contracts - A Primer plus Design & Development Summary (Revision) Dr Nick Mitchell (Room CM 226)
PyWBEM Python WBEM Client: Overview #2
Project management Initiative & Self Learning Confidence in leadership
Automating Profitable Growth™
What Does it Mean to Get Gold in CII Badging?
Presentation transcript:

Collaborative Security: Securing Open Source Software ASD-W03 Collaborative Security: Securing Open Source Software Dr. Nicko van Someren Chief Technology Officer The Linux Foundation

Open Source Software has had it’s fair share of major security issues

Security Is Hard For Open or Closed Source - These Are Complex Systems Sometimes it is hard for the same reasons as for closed source: Security is just hard, especially in complex systems There is always pressure for features before fixes Security is even harder to retrofit after the fact

FOSS Security Is Different Though FOSS is not more or less secure, but it is different Typically there are many more people contributing Sometimes (often?) there is a culture of “code is more important than specification” Processes are often more ad hoc There may be less market pressure to put security first

Linus’s Law: “Given enough eyeballs, all bugs are shallow.” We are experiencing market failures. 5

But what if you don’t have enough eyeballs?

Core Infrastructure Initiative Mission The CII aims to substantially improve security outcomes in the FOSS projects that underpin the Internet The CII funds work in security engineering, security architecture, tooling, testing and training on key FOSS projects, as well as supporting general development on security-specific projects (such as crypto libraries) The CII is a project run by the Linux Foundation, a 501(c)6 non-profit corporation.

The Linux Foundation created the Core Infrastructure Initiative with support from 19 Industry Giants The CII provides direct support to a few key projects - but it is impossible to support every project - or to support more than a few key developers on the most important project. Therefore we have to find other ways to improve quality. Security is never someone else’s problem.

What can we do to improve the security of Open Source Software? We can do all the same things as we do when building commercial software The big difference is that we have to do it collaboratively, without having a top-down mandate demanding it

Security is a process, not a product Think about security early. Think about security often. This requires buy-in from the whole project community Fostering a culture of security within your open source project is the single most important thing that you can do to improve your security outcomes Security needs to be given equal weight with scalability, performance, usability and all the other design factors that matter to your users

Applying “Best Practice” to FOSS There are a great many widely known and widely used techniques that have been shown to improve security outcomes Use them! FOSS Tool: https://bestpractices.coreinfrastructure.org An easy-to-use check-list tool for assessing your project’s security posture

Security design Build a threat model and keep it up to date Threat modeling doesn’t need to be hard or complex Tool: Elevation of Privilege Threat Modeling Card Game Don’t use weak crypto And definitely don’t try to design your own crypto! Know your dependencies Fix known broken things

Change control Tracking who proposed changes, who reviewed those changes and who released them is critical to security. This is often more complex in collaborative OS projects As it happens, failures here are how Heartbleed made it into OpenSSL As soon as your project has two or more people coding you need a policy for how code will get reviewed one

Change control Use a version-controlled source repository FOSS Tool: git, Mercurial, bazaar Make code publicly visible between major releases Public code review before final release is valuable Change logs are a must If other people rely on your code, you can break their security by changing things in your code

Quality testing Not all bugs represent vulnerabilities … but all vulnerabilities are bugs, and… It’s often very hard to tell the difference (at least until someone publishes an exploit!)

Quality testing Writing comprehensive tests is far less fun than writing new code to solve new and interesting problems But it’s a hell of a lot more fun than dealing with bugs after they get released Measure your test coverage and require collaborators to write tests for all contributed code FOSS Tools: gcov (C/C++), CodeCover (Java), CodeCoverage (Python), and many more…

Security analysis tools Fancy commercial static analysis tools are expensive … Switching all of your compiler warnings on is not! Use linters, code complexity checkers, fuzzers and other analysis tools where you can; they all can help The earlier in the project you start using these the less you will have to deal with “low signal to noise ratio” FOSS Tools: SonarCube, FramaC, AFL & many more

Bug reporting: Closing the SDL loop Bugs happen; you need a process for dealing with them Users need a way to report security vulnerabilities that doesn’t broadcast them to the whole world! Take reports of security vulnerabilities seriously Just because you can’t work out how to exploit a bug doesn’t mean that it can’t be exploited Tools: Bugzilla, Trac, GitHub Issues

What can users of Open Source Software do to make themselves safer? There are many things that consumers of Open Source Software can do to make their deployments safer. In general these come down to two key areas: Know your dependencies Don’t freeload

Know your dependencies There are many ways that you might be running FOSS: You bought a supported distribution You downloaded a FOSS application You bought a commercial application which uses a FOSS component internally One of your developers pulled a library from GitHub and embedded it in your infrastructure … the list goes on.

Know your dependencies In order to ensure that the FOSS that you use is safe you need to know: What open source components you are using? What versions you are currently running, and where? How these components can be updated, where do you get the update, what do you need to do to install them? Only when you have all this can you consider monitoring the vulnerability announcements

Know your dependencies Supported distributions make their business by solving these problems, but only for the bits that they supply For commercial software, demand that your vendor disclose the FOSS components in their applications. For internal apps, there are commercial scanning tools In many cases proactive scanning with ‘fgrep –i copyright’ can be a useful first step Remember, version numbers are important

Don’t Freeload!

Don’t freeload! “Maybe part of the reason that the Heartbleed bug had such a big impact is that more than $1 trillion per year of business was being run on a project that had received only $3,000 in support in the preceding year”

Don’t freeload! Open Source projects rely on more than cash donations. They rely on a vibrant community forming around them. You can support projects by providing: Detailed feedback and analysis of bugs you find Patches, both to fix bugs and add capabilities When you build a business around a project, engineers Engagement with the community to crowd-source support and help share knowledge

Conclusions Projects must think about security early & often and they must be willing to prioritise it as highly as other features Most of the ways that we can make open source software more secure are common industry “best practices”. It is simply a matter of choosing to adopt them. For users, the most important factor is to track what FOSS projects you use in your infrastructure Contribute! Your feedback, time, engineers, and money!

Thank you. https://www.coreinfrastructure.org