Can 15 Secure Software Controls Stop Cyber Criminals?
October 12, 2021|Davey Winder
I've told the “DevSecOps walk into a bar” joke to illustrate the need for a shift-left approach to software security before now. Long story short: developer buys a beer, tells barman operations is paying while security says they saw that coming but nobody asked. Yeah, I know, but even less funny is when attackers start shifting left as well.
Venafi's Eddie Glenn has described this new generation of shift-left cyberattacks as being perpetrated by "sophisticated software developers that target build infrastructure." I’ll raise a red flag when I see the word “sophisticated” used in relation to an attack, but they are anything but. However, even if these threat actors are not gifted with the dictionary definition of ‘a wide-ranging knowledge’ I’ll gladly agree that those targeting the integrity of software build pipelines are a clear and present danger to enterprise security. Which leaves me wondering if 15 new punchlines to my attempt at humour might just help?
SolarWinds: Anatomy of a Supersonic Supply Chain Attack. Read the white paper.
Owning software assurance within your organization is not optional
Software supply chain security has been revealed as wanting over the last two years, as illustrated by three high-profile attacks in particular: SolarWinds, Codecov and Kaseya. The European Union Agency for Cybersecurity (ENISA) has seen such supply chain attacks increase "in number and sophistication" across the last two years, warning that the vector poses "an increasing risk for organisations."
Yet, if a recent Venafi survey is anything to go by there remains a concerning lack of security self-awareness when it comes to addressing that risk. This survey, which included responses by executives with both security and software development responsibility, reassuringly found 97% agreeing that software providers should improve build and code-signing security, with 96% going as far as to suggest the integrity of update code should be guaranteed by those providers. My positivity soon enough took a nose-dive, however, when the same polling saw 55% saying the SolarWinds attack had "little or no impact" on their concerns when purchasing software and 69% admitting they had not increased the number of security assurance questions they asked of software providers.
Disconnects always concern me, and they should concern you as well: admitting awareness of risk without being willing to work to prevent it is both unacceptable and self-harming. Not least because the same old siloed approach appears to be fuelling this mitigation stagnation: there was nearly a 50/50 split between thinking IT security and development teams should be responsible for making it happen.
Engineer the shift-left attacker out of the software supply chain equation
The secure software pipeline assurance disconnect worryingly, it seems to me, goes further than just not grasping the responsibility nettle. It also encompasses a failure to properly understand the how as well as the who. Bridging this understanding gap is vital if an organisation is going to be able to properly address the shift-left attack threat vector. Which is where Venafi, Veracode, Sophos, CloudBees and GitLab have raised their collaborative open-source project hands with a codesigning blueprint.
The 'blueprint for building modern, secure software development pipelines', to be precise, is a community-supported project that aims to achieve what it says on the virtual tin. Aimed at both engineers and security teams alike, the blueprint exists to define a vendor-neutral 'map' of diverse controls that can both reduce risk while still staying aligned with the agile development pipelines expected today. Yes, it's another shift-left framework to enable secure continuous integration and continuous deployment. However, it's also focussed on a very specific goal: "to minimize the possibility of supply chain attacks." In other words, it exists to effectively engineer out the shift-left attacker and lower the real-world risk of supply chain tampering. It does this using a pragmatic approach that fits the development pipelines of today and does so by the application of 15 controls that make securely signing code a standardised reality.
My take on the 15 secure software controls that can reduce supply chain attack risk
Restrict admin access to CI/CD tools and secure, both at host and application-layer, using multi-factor authentication. Not doing this leave the remaining controls open to modification by shift-left threat actors and so undermine the integrity of the entire process.
Don't accept commits unless signed with a developer GnuPG (GPG) key so as to make life as difficult as possible for the would-be attacker.
Attackers love automated build systems, so make the 'compromised keys' attack window as brief as possible by ensuring automation access keys expire periodically and automatically.
Did I mention that attackers love automated build systems? Don't allow them to bypass the standard source code review process. Instead, apply the principle of least privilege and ensure CI systems have read-only access to those source code repositories.
Blunt the attack risk from modern software dependency managers by only allowing connections to authorized registries and so restricting malicious packages from accessing the pipeline. Using public repositories raises the attack stakes as threat actors will do whatever they can to introduce nefarious packages into builds.
Identify high-severity or critical vulnerabilities using static application security testing (SAST) or software composition analysis (SCA) and break the build if found. Don't risk introducing insecure code into the pipeline but do ensure defined and documented vulnerability exception management is in place and apply the control often to reduce remediation costs through early vulnerability identification.
Segregate repositories for storage of development, stage and production artifacts to ensure a chain of control can be maintained. Storing artifacts like this at every stage of the build pipeline can help enforce immutability. Segregation allows role-based access controls to be applied.
And talking of artifacts, always validate digests against the relevant artifact in the repository to prevent compromised deployments.
Requiring two code reviews at the time of pull-requests, together with an 'all tests' passing build, is not optional. Nor, for that matter, is requiring one of the reviewers to be a developer who owns the code. Doing so ensures commits without competent human oversight cannot be made.
Ensure visibility, and traceability, by requiring all artifacts in higher repositories to be signed. C'mon, preventing untrusted binary deployment to customer environments should be a given, right?
See control 6? Now apply it to available container images. The same reasoning applies, especially given that such images could have open-source and configuration vulnerabilities. Testing with a relevant security tool in the pipeline before deployment is another given.
When deploying artifacts from the internal registry, always validate signatures and digests to ensure the one you previously tested is the one that's being deployed. Think the worst of code to ensure the best.
Scan all the things. Well, all the pre-production controls in production anyway. Such deployed image validation should ensure prior controls were followed.
Because Kubernetes is responsible for deploying application containers into production, validate the Kubernetes resource manifests. This container orchestration layer is your last line of defence, you need to be sure they have not been tampered with.
And finally, remember shift-left attackers accessing build environments can bypass earlier build pipeline controls: ensure build environments are both transitory and immutable. Require a fresh environment for every build by defining them in code with automated creation and teardown. Oh, and don't enable interactive logins on build hosts!
It’s time to grasp the secure enabler nettle
Open-source components have been a great enabler for organizations moving ahead with digital transformation processes. They have also, sadly but perhaps inevitably, been just as enabling for threat actors shifting left to hit more potential victims by targeting the software build pipeline. High-profile software supply chain attacks have already illustrated how impactful this tactic can be, and with security standards sorely lacking here I suspect that I, and other business and cybersecurity journalists, will have more headlines to write in the coming months and years.
Unless, that is, developers grasp the security nettle through a process of 'engineered in' protection throughout the software pipeline. It requires people to get talking, not just already time-constrained developers but also open-source repository managers, security teams and those IT executives with their hands on the purse-strings and the go-ahead button. Only time will tell if this blueprint is the ultimate solution, but by building code verification and vulnerability scanning into the workflow, without significantly slowing it down, it's certainly a good start.
PLEASE READ CAREFULLY BEFORE CONTINUING WITH REGISTRATION AND/OR ACTIVATION OF THE VENAFI CLOUD SERVICE (“SERVICE”).
This is a legal agreement between the end user (“You”) and Venafi, Inc. ("Venafi" or “our”). BY ACCEPTING THIS AGREEMENT, EITHER BY CLICKING A BOX INDICATING YOUR ACCEPTANCE AND/OR ACTIVATING AND USING THE VENAFI CLOUD SERVICE FOR WHICH YOU HAVE REGISTERED, YOU AGREE TO THE TERMS OF THIS AGREEMENT. IF YOU ARE ENTERING INTO THIS AGREEMENT ON BEHALF OF A COMPANY OR OTHER LEGAL ENTITY, YOU REPRESENT THAT YOU HAVE THE AUTHORITY TO BIND SUCH ENTITY AND ITS AFFILIATES TO THESE TERMS AND CONDITIONS, IN WHICH CASE THE TERMS "YOU" OR "YOUR" SHALL REFER TO SUCH ENTITY AND ITS AFFILIATES. IF YOU DO NOT HAVE SUCH AUTHORITY, OR IF YOU DO NOT AGREE WITH THESE TERMS AND CONDITIONS, YOU MUST NOT ACCEPT THIS AGREEMENT AND MAY NOT USE THE SERVICE.
You shall not access the Service if You are Our competitor or if you are acting as a representative or agent of a competitor, except with Our prior written consent. In addition, You shall not access the Service for purposes of monitoring its availability, performance or functionality, or for any other benchmarking or competitive purposes, and you shall not perform security vulnerability assessments or penetration tests without the express written consent of Venafi.
This Agreement was last updated on April 12, 2017. It is effective between You and Venafi as of the date of Your accepting this Agreement.
The Venafi Cloud Service includes two separate services that are operated by Venafi as software as a service, each of which is separately licensed pursuant to the terms and conditions of this Agreement and each of which is considered a Service under this Agreement: the Venafi Cloud Risk Assessment Service or the Venafi Cloud for DevOps Service. Your right to use either Service is dependent on the Service for which You have registered with Venafi to use.
Definitions
“Your Data” means electronic data and information submitted by or for You to the Service or collected and processed by or for You using the Service.
License Grants and Restrictions
License Grant by Venafi to You. Venafi grants to You a limited, non-exclusive, non-transferable, non-assignable, limited license (the “License”) to access and use the Service during the applicable License Term set out in Section 2.2 below, in accordance with the instructions contained in the user documentation that accompanies the Service (“Documentation). Venafi hereby grants to You the right to use the Documentation solely in connection with the exercise of Your rights under this Agreement. Other than as explicitly set forth in this Agreement, no right to use, copy, display, or print the Documentation, in whole or in part, is granted. This license grant is limited to internal use by You. This License is conditioned upon Your compliance with all of Your obligations under this Agreement. Except for the express licenses granted in this Section, no other rights or licenses are granted by Venafi, expressly, by implication, by way of estoppel or otherwise. The Service and Documentation are licensed to Licensee and are not sold. Rights not granted in this Agreement are reserved by Venafi.
License Term.
Venafi Cloud Risk Assessment Service. If you have registered to access and use the Venafi Cloud Risk Assessment Service, Your right to use the Venafi Cloud Risk Assessment Service is limited to ninety (90) days from the date You first register for the Service, unless otherwise extended on Your agreement with Venafi.
Venafi Cloud for DevOps Service. If you have registered to access and use the Venafi Cloud for DevOps Service, Your right to use the Venafi Cloud for DevOps Service shall extend indefinitely and may be terminated by either You or Venafi at any time for any reason.
Restrictions on Use. The grant of rights stated in Sections 2.1 and 2.2, above, is subject to the following restrictions and limitations:
If You have registered to access and use the Venafi Cloud for DevOps Service, You must use SSL/TLS certificates issued to you at no charge through the Service for development and testing purposes only, and You are strictly prohibited from using such SSL/TLS certificates in a production environment or in any production capacity. If you are registered with a public Certification Authority (“CA”) supported by the Service and have valid credentials issued by such CA with which you can subscribe to such CA’s SSL/TLS certificates on a fee bearing basis for use in production environments, You may request such certificates through the applicable interface present in the Service by using such credentials. In such instance, the fee bearing certificate(s) will be issued to You by the CA and any access to or use of such certificates by You will be subject to the terms and conditions set out by the CA. No fees will be paid to or processed by Venafi in this case. The use of DigiCert issued certificates shall be subject to the Certificate Services Agreement published by DigiCert at https://www.digicert.com/docs/agreements/Certificate-Services-Agreement.pdf, which terms are hereby incorporated by reference.
You shall not use (or cause to be used) the Service for the benefit of any third party, including without limitation by rental, in the operation of an Applications Service Provider (ASP) service offering or as a service bureau, or any similar means.
You shall not distribute access to the Service, in whole or in any part, to any third party or parties. You shall not permit sublicensing, leasing, or other transfer of the Service.
You shall not (a) interfere with or disrupt the integrity or performance of the Service or third-party data contained therein, (b) attempt to gain unauthorized access to the Service or its related systems or networks, (c) permit direct or indirect access to or use of the Service in a way that circumvents a contractual usage limit, or (d) access the Service in order to build a competitive product or service.
License Grant by You. You grant to Venafi and its affiliates, as applicable, a worldwide, limited-term license to host, copy, transmit and display Your Data as necessary for Venafi to provide the Service in accordance with this Agreement. Subject to the limited licenses granted herein, Venafi acquires no right, title or interest from You or any of Your suppliers or licensors under this Agreement in or to Your Data.
Ownership
Venafi Materials. Venafi and/or its suppliers have and shall retain ownership of all right, title and interest in and to the Service and the Documentation and all intellectual property rights embodied in the Service and Documentation, including without limitation any patents, copyrights, trademarks and trade secrets in the Service and any modifications and/or derivatives thereof, whether or not made at Licensee’s request, and all know-how, concepts, methods, programming tools, inventions, and computer source code developed by Venafi (collectively, “Venafi Materials”).
Limited Feedback License. You hereby grant to Venafi, at no charge, a non-exclusive, royalty-free, worldwide, perpetual, irrevocable license under Your intellectual property rights in and to suggestions, comments and other forms of feedback (“Feedback”) regarding the Service provided by or on behalf of You to Venafi, including Feedback regarding features, usability and use, and bug reports, to reproduce, perform, display, create derivative works of the Feedback and distribute such Feedback and/or derivative works in the Service. Feedback is provided “as is” without warranty of any kind and shall not include any of Your confidential information.
Disclaimer of Warranties
EXCEPT AS EXPRESSLY SET FORTH IN THIS SECTION 4, THE SERVICE AND DOCUMENTATION ARE PROVIDED “AS-IS,” WITH “ALL FAULTS” AND “AS AVAILABLE,” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, ACCURACY, RELIABILITY, OR NONINFRINGEMENT WHETHER ARISING FROM COURSE OF DEALING, USAGE, TRADE PRACTICE OR ANY OTHER MANNER. VENAFI IS NOT OBLIGATED TO PROVIDE ANY UPDATES, UPGRADES OR TECHNICAL SUPPORT FOR THE SERVICE. VENAFI DISCLAIMS ALL LIABILITY AND INDEMNIFICATION OBLIGATIONS FOR ANY HARM OR DAMAGES CAUSED BY ANY THIRD-PARTY HOSTING PROVIDERS. In no event does Venafi warrant that the Service is error free or that You will be able to operate the Service without problems or interruptions. Some jurisdictions do not allow the exclusion of implied warranties and to the extent that is the case the above exclusion may not apply.
Limitation of Liability
IN NO EVENT WILL VENAFI OR ITS SUPPLIERS BE LIABLE FOR ANY LOST REVENUE, PROFIT, OR DATA, OR FOR DIRECT, SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL, OR PUNITIVE DAMAGES HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY ARISING OUT OF THE USE OF OR INABILITY TO USE THE SERVICE EVEN IF VENAFI OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Some jurisdictions do not allow the limitation or exclusion of liability for incidental or consequential damages and to the extent that is the case the above limitation or exclusion may not apply to You.
Term and Termination
This License is effective until terminated as set forth herein or the License Term expires and is not otherwise renewed by the parties. Venafi may terminate this Agreement and/or the License at any time with or without written notice to You if You fail to comply with any term or condition of this Agreement or if Venafi ceases to make the Service available to end users. You may terminate this Agreement at any time on written notice to Venafi. Upon any termination or expiration of this Agreement or the License, You agree to cease all use of the Service if the License is not otherwise renewed or reinstated. Upon termination, Venafi may also enforce any rights provided by law. The provisions of this Agreement that protect the proprietary rights of Venafi will continue in force after termination.
Compliance With Laws
Violation of Laws. You shall not knowingly take any action or omit to take any action where the reasonably predictable result would be to cause Venafi to violate any applicable law, rule, regulation or policy and, to the extent not inconsistent therewith, any other applicable law, rule, regulation and policy.
Governing Law
This Agreement shall be governed by, and any arbitration hereunder shall apply, the laws of the State of Utah, excluding (a) its conflicts of laws principles; (b) the United Nations Convention on Contracts for the International Sale of Goods; (c) the 1974 Convention on the Limitation Period in the International Sale of Goods; and (d) the Protocol amending the 1974 Convention, done at Vienna April 11, 1980.
General
This Agreement is binding on You as well as Your employees, employers, contractors and agents, and on any permitted successors and assignees. Except if otherwise superseded in writing by a separately executed agreement, this Agreement is the entire agreement between You and Venafi with regard to the License granted hereunder, and You agree that Venafi will not have any liability for any statement or representation made by it, its agents or anyone else (whether innocently or negligently) upon which You relied in entering into this Agreement, unless such statement or representation was made fraudulently. This Agreement supersedes any other understandings or agreements, including, but not limited to, advertising, with respect to the Service. If any provision of this Agreement is deemed invalid or unenforceable by any country or government agency having jurisdiction, that particular provision will be deemed modified to the extent necessary to make the provision valid and enforceable and the remaining provisions will remain in full force and effect. Should such modification be impractical or denied, You and Venafi shall thereafter each have the right to terminate this Agreement on immediate notice.
Survival. The parties agree that the rights and obligations set forth in the above-referenced Section 1 (Definitions), 3 (Ownership), 4 (Disclaimer of Warranties), 5 (Limitation of Liability), 6 (Term and Termination), 7 (Compliance with Laws), 8 (Governing Law), and 9 (General) shall survive the termination of this Agreement for any reason and enforcement thereof shall not be subject to any conditions precedent.
Assignment. This Agreement shall be binding upon and inure to the benefit of the parties’ respective successors and permitted assigns. You shall not assign this Agreement or any of Your rights or obligations hereunder without the prior written consent of Venafi and any such attempted assignment shall be void.
This site uses cookies to offer you a better experience. If you do not want us to use cookies, please update your browser settings accordingly. Find out more on how we use cookies.