SlideShare a Scribd company logo
Protecode Inc. 2015 1
Best Practices for
Simplifying Software Audits
Wednesday, June 24th, 2015
Protecode Inc. 2015
Agenda
 Software audits
– What, why, who and how
 How to prepare for an audit
 Documentation you need
– Per file, folder, project, organization
 Audit reports
 Resolving background & foreground IP
 Policies and internal education
 Wrap up and Q & A
2
Tiberius Forrester,
Director of Solutions
tforrester@protecode.com
Protecode Inc. 2015
Software Audits
 Complex projects use a mix of in house and third party code
– Wide adoption of open source software
– Code contributions across organizational boundaries
– Popularity of outsourcing software
– Ease of access to code (OSS repositories, WWW, Previous life work)
3
It is our software.
Do we know what we have?
Why
 Reduces uncertainties and vulnerabilities
– IP Ownership and compliance with code obligations
– Identifies known security exposures
 Helps technology organizations
– Adopt open source software profitably
– Reduce effort and shorten timelines
Value
Protecode Inc. 2015
What Does a Software Audit Do?
 A software audit is a discovery process
 Identifies all components in a software portfolio
– Own software
– Open source software (OSS)
– Other 3rd party software
 Identifies code attributes
– Licensing, authorship and copyrights
– Security vulnerabilities, encryption content
– Software pedigree, versions, modifications
 Highlights legal obligations and reduces vulnerabilities
– Licensing, known security vulnerabilities, exportability
 Creates a software Bill of Materials (BOM)
– Software inventory
4
Protecode Inc. 2015
 Internal audit team
– Combination of legal and software expertise
• Often an overworked and underpaid team (of 1)
– Manual audit
• Rely on records, examination of files and packages
– Or automated scanning for improved speed and accuracy
• Acquired or implemented in house
 External audit team
– Arms-length software audit organizations
• Typically used for financial transactions
– Uses automated code scanning and discovery solutions
– Delivers high level executive reports as well as signed-off machine generated
reports
Who performs the audit?
5
Protecode Inc. 2015
Preparing for the Audit
 Access to all code
 Knowledge of business model
 Understanding of the development environment
– Tools, repositories, libraries
 List of known 3rd party components
– Open source, commercial (and their licenses)
 Access to a list of developers
– Within or outside organization
 Current and previous company copyright formats
– Eg ACME Inc, copyright © ACEME Inc,
 List of company acquisitions
– And their copyright formats
6
Protecode Inc. 2015
Preparing for an external audit
7
 Have a single point of contact
 Sign Non-Disclosure Agreement (NDA)
– 2 way, 3 way, 4 way or more!
 Explain the purpose of audit
– M&A / tech transfer / collaboration / product delivery?
– Who is the sponsor (recipient of the audit report)
 Provide company overview
– What business? R&D practices
– Contracting, outsourcing practices
 Describe software characteristics
– Is there an open source adoption policy?
– Composition and complexity of the code portfolio,
• Structure, Languages, archives, Size- Mbytes or Files
 Have an audit agreement (SOW) in place
– Duration, cost, confidentiality
Protecode Inc. 2015
Auditable Code Organization
 Flat structure
– AVOID
 Hierarchical
– Software manifest
 Systematic top-down structure
 Breakdown portfolio into
 Products and product components (eg: modules per software architecture)
 Third party components and open source software
 Libraries
 Identify Portfolios shared between different products
 Divide and Conquer!
– Audit one reasonable-sized block at a time
8
Protecode Inc. 2015
Desired Folder Structure for Audits
9
Applicable sequence of information
1. File-level licenses and notes
2. Folder-level licenses and notes
3. Project-level licenses and notes
Protecode Inc. 2015
File Level Information
 Source file headers
– Invaluable source of information
 Do not remove existing headers
 If there is something to add, then add to existing header
– Open Source Software
 Retain existing header
– Proprietary software,
 Use a list of standard headers
 Include copyright, date, author name, abstract
 Set up machine-generated code headers
 Binary files
– OSS: you are stuck with what you get
 Proprietary: include copyright in the binary
10
Protecode Inc. 2015
0.0%
10.0%
20.0%
30.0%
40.0%
50.0%
Percentage of Proprietary Code
Missing Header Information
Small Portfolio Medium Portfolio Large Portfolio
Missing Headers
Protecode Inc. 2015
OSS Header
12
Information added
Don’t remove this!
Protecode Inc. 2015
Proprietary Headers
 Copyright (agree on a single format within your organization)
 Include author, date, summary, project
 Machine-readable header info (eg: xml) is preferred
13
Protecode Inc. 2015
Folder Level Information
 Include text files containing
– Folder description
– License(s)
– Copyrights
– For open source software
• url pointing to download site
• date it was acquired
 Watch for open source licenses
– License evolution
– Dual licensed (commercial and GPL) options
– Multi-license projects
– Composite projects
14
Protecode Inc. 2015
Factors Impacting License Obligations
 Distributed versus hosted software
 Modified versus unmodified third party software
– Must be declared
– May impact obligations
 Embedded code versus bundled
software
 Binary-linked software
 Dependencies
15
Protecode Inc. 2015
Dependencies
 Typically a product software depends on
other code (eg: libraries)
 Dependencies are resolved at build time
 A complete software audit requires
– Manual interpretation of dependencies (eg: make
files)  PAINFUL!
– Or access to the complete code post build-time
 Package managers can simplify auditing
dependencies
16
Protecode Inc. 2015
Package Managers
 Handle software libraries and
dependencies.
– NuGet (.NET)
– Packagist / Composer (PHP),
– NPM (Node.JS),
– RubyGems / Bundler (Ruby)
– Bower (JS, CSS, HTML)
– Maven (Java)
– And others …
 Store a list of all packages and dependencies within a file in the
root folder.
 Create and label 3rd party folders for easy navigation and links
to source url and license
 Simplify auditing process
Protecode Inc. 2015
Attribution Obligation
 Common obligation between OSS
licenses
 Is there a per file reference?
 Where is the actual text of license?
• Per file
• Per package, or folder
 Is there one text file containing
concatenated list of all licenses?
 Copyleft (eg: GPL V2)
 Where can the public find the source
code of the whole project?
18
Protecode Inc. 2015
Background VS. Foreground IP
 Needed for collaborative development
– Commercial <> commercial
– Academic <> commercial
 Before start of collaboration
– Audit best practices (documentation, code structure, headers,
dates) are in place
– Each organization has completed an audit of their code
• Automated audits create accurate code inventories with traceable
code signatures
– Dated backups of complete portfolios are available
• Resolving post-development issues
 During collaboration
– Audit best practices are in place
– Regular (automated) audits and inventory lists are maintained
19
Protecode Inc. 2015
How Often Should You Audit?
20
Don’t leave it to the last minute.
Protecode Inc. 2015
Software Audits and OSS Adoption
 Have a policy in place
– What is acceptable?
• 3rd party software, sources, licenses, copyright per project, per
portfolio
– What documents to maintain and where
– What to do and who to go to?
 Communicate the policy
 Pre-approval process
 Use automated tools to build a
software inventory and
ensure compliance.
21
Protecode Inc. 2015
Summary
 Educate
– Let the software team know what is auditable
 Structure the code
– Software structure or code manifest
 File headers contain essential Information
– Keep 3rd party (and OSS) headers, company headers on proprietary files
– File info trumps folder Info trumps package info
 Document
– Structures, licenses, contracts, OSS sources
 Audit early, Audit often
 Manual Audits are painful
– Various automatic scanning and discovery applications in the market
22
Protecode Inc. 2015
Q&A
Please type your questions into the chat box to the right
23
Protecode Inc. 2015 24
info@protecode.com
www.protecode.com

More Related Content

PPTX
Software Audit Strategies - How often is good enough for a software audit?
PDF
Leveraging Open Source Opportunity in the Public Sector Without the Risk
PPTX
Leveraging Open Source Opportunity in the Public Sector Without the Risk
PPTX
Optimizing The Cost Of Open Source Software Management
PDF
Software audit strategies: how often is enough?
PPTX
Licensing in Composite Projects
PPTX
Licensing in Composite Open Source Projects
PPTX
Where’s the license?
Software Audit Strategies - How often is good enough for a software audit?
Leveraging Open Source Opportunity in the Public Sector Without the Risk
Leveraging Open Source Opportunity in the Public Sector Without the Risk
Optimizing The Cost Of Open Source Software Management
Software audit strategies: how often is enough?
Licensing in Composite Projects
Licensing in Composite Open Source Projects
Where’s the license?

What's hot (7)

PPTX
Open source code
PDF
Giving Everyone Access To Open Source Best Practices: The OpenChain Curriculum
PPTX
Building Trust in
PDF
Managing the Software Supply Chain: Policies that Promote Innovation While Op...
PDF
OpenChain Webinar #11 - Open Source Issues Remediation - Jari Koivisto - 2020...
PPTX
OpenChain Webinar #11 - cii-bp-badge-intro
PPTX
Defensive programming
Open source code
Giving Everyone Access To Open Source Best Practices: The OpenChain Curriculum
Building Trust in
Managing the Software Supply Chain: Policies that Promote Innovation While Op...
OpenChain Webinar #11 - Open Source Issues Remediation - Jari Koivisto - 2020...
OpenChain Webinar #11 - cii-bp-badge-intro
Defensive programming
Ad

Similar to Best practices for simplifying software audits (20)

PPTX
Open Source Software: What Are Your Obligations?
PPTX
Streamline Open Source Compliance with Package Pre-Approval
PPTX
Performing an audit - Open source compliance seminar
ODP
Ubucon 2013, licensing and packaging OSS
PDF
Flight WEST 2018 Presentation - A Buyer Investor Playbook for Successfully Na...
PPTX
The Role of In-House & External Counsel in Managing Open Source Software
PDF
FLIGHT Amsterdam Presentation - Don’t Let Open Source Software Kill Your Deal
PDF
Webinar–You've Got Your Open Source Audit Report–Now What?
PDF
Flight East 2018 Presentation–You've got your open source audit report, now w...
PDF
Related OSS Projects - Peter Rowe, Flexera Software
PPT
Managing Software Inventories & Automating Open Source Software Compliance
PDF
Building Blocks of Secure Development: How to Make Open Source Work for You
PPT
Safeguarding Against the Risks of Improper Open Source Licensing - Valuable...
PPTX
Winning the Cage-Match: How to Successfully Navigate Open Source Software iss...
PDF
SFScon19 - Alexios Zavras - Free Software in the industry a view from the lar...
PPTX
Social Code Scanning
PPT
Ten Elements of Open Source Governance
PDF
Strategies for Commercial Software Developers Using Open Source Code in Propr...
PPTX
Rightsizing Open Source Software Identification
PDF
nexB - Software audit for product release
Open Source Software: What Are Your Obligations?
Streamline Open Source Compliance with Package Pre-Approval
Performing an audit - Open source compliance seminar
Ubucon 2013, licensing and packaging OSS
Flight WEST 2018 Presentation - A Buyer Investor Playbook for Successfully Na...
The Role of In-House & External Counsel in Managing Open Source Software
FLIGHT Amsterdam Presentation - Don’t Let Open Source Software Kill Your Deal
Webinar–You've Got Your Open Source Audit Report–Now What?
Flight East 2018 Presentation–You've got your open source audit report, now w...
Related OSS Projects - Peter Rowe, Flexera Software
Managing Software Inventories & Automating Open Source Software Compliance
Building Blocks of Secure Development: How to Make Open Source Work for You
Safeguarding Against the Risks of Improper Open Source Licensing - Valuable...
Winning the Cage-Match: How to Successfully Navigate Open Source Software iss...
SFScon19 - Alexios Zavras - Free Software in the industry a view from the lar...
Social Code Scanning
Ten Elements of Open Source Governance
Strategies for Commercial Software Developers Using Open Source Code in Propr...
Rightsizing Open Source Software Identification
nexB - Software audit for product release
Ad

Recently uploaded (20)

PDF
System and Network Administraation Chapter 3
PDF
Understanding Forklifts - TECH EHS Solution
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
medical staffing services at VALiNTRY
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
top salesforce developer skills in 2025.pdf
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
System and Network Administraation Chapter 3
Understanding Forklifts - TECH EHS Solution
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
How Creative Agencies Leverage Project Management Software.pdf
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Operating system designcfffgfgggggggvggggggggg
medical staffing services at VALiNTRY
How to Choose the Right IT Partner for Your Business in Malaysia
Softaken Excel to vCard Converter Software.pdf
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
How to Migrate SBCGlobal Email to Yahoo Easily
Odoo Companies in India – Driving Business Transformation.pdf
top salesforce developer skills in 2025.pdf
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PTS Company Brochure 2025 (1).pdf.......
Wondershare Filmora 15 Crack With Activation Key [2025

Best practices for simplifying software audits

  • 1. Protecode Inc. 2015 1 Best Practices for Simplifying Software Audits Wednesday, June 24th, 2015
  • 2. Protecode Inc. 2015 Agenda  Software audits – What, why, who and how  How to prepare for an audit  Documentation you need – Per file, folder, project, organization  Audit reports  Resolving background & foreground IP  Policies and internal education  Wrap up and Q & A 2 Tiberius Forrester, Director of Solutions tforrester@protecode.com
  • 3. Protecode Inc. 2015 Software Audits  Complex projects use a mix of in house and third party code – Wide adoption of open source software – Code contributions across organizational boundaries – Popularity of outsourcing software – Ease of access to code (OSS repositories, WWW, Previous life work) 3 It is our software. Do we know what we have? Why  Reduces uncertainties and vulnerabilities – IP Ownership and compliance with code obligations – Identifies known security exposures  Helps technology organizations – Adopt open source software profitably – Reduce effort and shorten timelines Value
  • 4. Protecode Inc. 2015 What Does a Software Audit Do?  A software audit is a discovery process  Identifies all components in a software portfolio – Own software – Open source software (OSS) – Other 3rd party software  Identifies code attributes – Licensing, authorship and copyrights – Security vulnerabilities, encryption content – Software pedigree, versions, modifications  Highlights legal obligations and reduces vulnerabilities – Licensing, known security vulnerabilities, exportability  Creates a software Bill of Materials (BOM) – Software inventory 4
  • 5. Protecode Inc. 2015  Internal audit team – Combination of legal and software expertise • Often an overworked and underpaid team (of 1) – Manual audit • Rely on records, examination of files and packages – Or automated scanning for improved speed and accuracy • Acquired or implemented in house  External audit team – Arms-length software audit organizations • Typically used for financial transactions – Uses automated code scanning and discovery solutions – Delivers high level executive reports as well as signed-off machine generated reports Who performs the audit? 5
  • 6. Protecode Inc. 2015 Preparing for the Audit  Access to all code  Knowledge of business model  Understanding of the development environment – Tools, repositories, libraries  List of known 3rd party components – Open source, commercial (and their licenses)  Access to a list of developers – Within or outside organization  Current and previous company copyright formats – Eg ACME Inc, copyright © ACEME Inc,  List of company acquisitions – And their copyright formats 6
  • 7. Protecode Inc. 2015 Preparing for an external audit 7  Have a single point of contact  Sign Non-Disclosure Agreement (NDA) – 2 way, 3 way, 4 way or more!  Explain the purpose of audit – M&A / tech transfer / collaboration / product delivery? – Who is the sponsor (recipient of the audit report)  Provide company overview – What business? R&D practices – Contracting, outsourcing practices  Describe software characteristics – Is there an open source adoption policy? – Composition and complexity of the code portfolio, • Structure, Languages, archives, Size- Mbytes or Files  Have an audit agreement (SOW) in place – Duration, cost, confidentiality
  • 8. Protecode Inc. 2015 Auditable Code Organization  Flat structure – AVOID  Hierarchical – Software manifest  Systematic top-down structure  Breakdown portfolio into  Products and product components (eg: modules per software architecture)  Third party components and open source software  Libraries  Identify Portfolios shared between different products  Divide and Conquer! – Audit one reasonable-sized block at a time 8
  • 9. Protecode Inc. 2015 Desired Folder Structure for Audits 9 Applicable sequence of information 1. File-level licenses and notes 2. Folder-level licenses and notes 3. Project-level licenses and notes
  • 10. Protecode Inc. 2015 File Level Information  Source file headers – Invaluable source of information  Do not remove existing headers  If there is something to add, then add to existing header – Open Source Software  Retain existing header – Proprietary software,  Use a list of standard headers  Include copyright, date, author name, abstract  Set up machine-generated code headers  Binary files – OSS: you are stuck with what you get  Proprietary: include copyright in the binary 10
  • 11. Protecode Inc. 2015 0.0% 10.0% 20.0% 30.0% 40.0% 50.0% Percentage of Proprietary Code Missing Header Information Small Portfolio Medium Portfolio Large Portfolio Missing Headers
  • 12. Protecode Inc. 2015 OSS Header 12 Information added Don’t remove this!
  • 13. Protecode Inc. 2015 Proprietary Headers  Copyright (agree on a single format within your organization)  Include author, date, summary, project  Machine-readable header info (eg: xml) is preferred 13
  • 14. Protecode Inc. 2015 Folder Level Information  Include text files containing – Folder description – License(s) – Copyrights – For open source software • url pointing to download site • date it was acquired  Watch for open source licenses – License evolution – Dual licensed (commercial and GPL) options – Multi-license projects – Composite projects 14
  • 15. Protecode Inc. 2015 Factors Impacting License Obligations  Distributed versus hosted software  Modified versus unmodified third party software – Must be declared – May impact obligations  Embedded code versus bundled software  Binary-linked software  Dependencies 15
  • 16. Protecode Inc. 2015 Dependencies  Typically a product software depends on other code (eg: libraries)  Dependencies are resolved at build time  A complete software audit requires – Manual interpretation of dependencies (eg: make files)  PAINFUL! – Or access to the complete code post build-time  Package managers can simplify auditing dependencies 16
  • 17. Protecode Inc. 2015 Package Managers  Handle software libraries and dependencies. – NuGet (.NET) – Packagist / Composer (PHP), – NPM (Node.JS), – RubyGems / Bundler (Ruby) – Bower (JS, CSS, HTML) – Maven (Java) – And others …  Store a list of all packages and dependencies within a file in the root folder.  Create and label 3rd party folders for easy navigation and links to source url and license  Simplify auditing process
  • 18. Protecode Inc. 2015 Attribution Obligation  Common obligation between OSS licenses  Is there a per file reference?  Where is the actual text of license? • Per file • Per package, or folder  Is there one text file containing concatenated list of all licenses?  Copyleft (eg: GPL V2)  Where can the public find the source code of the whole project? 18
  • 19. Protecode Inc. 2015 Background VS. Foreground IP  Needed for collaborative development – Commercial <> commercial – Academic <> commercial  Before start of collaboration – Audit best practices (documentation, code structure, headers, dates) are in place – Each organization has completed an audit of their code • Automated audits create accurate code inventories with traceable code signatures – Dated backups of complete portfolios are available • Resolving post-development issues  During collaboration – Audit best practices are in place – Regular (automated) audits and inventory lists are maintained 19
  • 20. Protecode Inc. 2015 How Often Should You Audit? 20 Don’t leave it to the last minute.
  • 21. Protecode Inc. 2015 Software Audits and OSS Adoption  Have a policy in place – What is acceptable? • 3rd party software, sources, licenses, copyright per project, per portfolio – What documents to maintain and where – What to do and who to go to?  Communicate the policy  Pre-approval process  Use automated tools to build a software inventory and ensure compliance. 21
  • 22. Protecode Inc. 2015 Summary  Educate – Let the software team know what is auditable  Structure the code – Software structure or code manifest  File headers contain essential Information – Keep 3rd party (and OSS) headers, company headers on proprietary files – File info trumps folder Info trumps package info  Document – Structures, licenses, contracts, OSS sources  Audit early, Audit often  Manual Audits are painful – Various automatic scanning and discovery applications in the market 22
  • 23. Protecode Inc. 2015 Q&A Please type your questions into the chat box to the right 23
  • 24. Protecode Inc. 2015 24 info@protecode.com www.protecode.com