SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Software Integrity Controls
            An Assurance-Based Approach to
Minimizing Risks in the Software Supply Chain
                                               June 14, 2010

   Editor                     Contributors
   Stacy Simpson, SAFECode    Diego Baldini, Nokia
                              Gunter Bitz, SAP AG
                              David Dillard, Symantec Corporation
                              Chris Fagan, Microsoft Corporation
                              Brad Minnis, Juniper Networks, Inc.
                              Dan Reddy, EMC Corporation
Table of Contents
     	                                        Introduction	   1

     	   The Risks to Software Integrity in a Supply Chain	   2

     	                       The IT System Supply Chain	      3

     	                         Software Integrity Controls	   4

     	                 Vendor Sourcing Integrity Controls	    5

     	   Vendor Software Development Integrity Controls	      10

     	        Vendor Software Delivery Integrity Controls	    16

     	                                   Future Directions	   21

     	                                         Conclusion	    23

     	                                  Acknowledgments	      23




ii
Introduction
Software assurance is most commonly dis-                                      Security
cussed in the context of preventing software
vulnerabilities that arise from unintended
coding errors and other quality issues ranging                            ASSURANCE
from incomplete requirements to poor imple-
                                                             Authenticity                 Integrity
mentation. The reduction of vulnerabilities
in code is achieved through the application
of secure development practices to the
software development lifecycle, sometimes         Three Pillars of Software Assurance
referred to as software security engineering.
                                                  requires software vendors1 to apply practices
However, as a more distributed approach
                                                  and controls to meet three key goals:
to commercial software development has
evolved, questions have been raised about         Security: Security threats to the soft-
what additional product security and com-         ware are anticipated and addressed during
mercial risks are introduced in the global        the software’s design, development and
software supply chain. One emerging area          testing. This requires a focus on security-
of concern is software integrity, an example      relevant code quality aspects (e.g., “free
of which is the risk that malicious code could    from buffer overflows”) and functional
be either intentionally inserted by a threat      requirements (e.g., “passport numbers
agent or unintentionally inserted due to poor     must be encrypted in the database”).
process controls into a software product as
                                                  Integrity: Security threats to the software
it moves through the global supply chain.
                                                  are addressed in the processes used to source
Analyzing this risk in the context of software    software components, create software com-
engineering requires an understanding not         ponents and deliver software to customers.
only of software security engineering, but also   These processes contain controls to enhance
the other essential pillars of software assur-    confidence that the software was not modi-
ance—software integrity and authenticity.         fied without the consent of the supplier.

SAFECode defines software assurance as “con-
fidence that software, hardware and services      1.	 This paper uses both the terms “supplier” and “vendor” to mean an
                                                  entity that produces software. These terms may be used interchangeably
are free from intentional and unintentional       in the real world, and the “vendor” practices listed in this document apply
                                                  to all software “suppliers.” However, in order to be able to describe the
                                                  relationship between software suppliers without confusion, we are using
vulnerabilities and that the software func-       the term “vendor” throughout the document to identify a specific entity in
                                                  a supply chain. Thus, in this context, “supplier” refers to an entity that
tions as intended.” Achieving this confidence     provides software components to the “vendor.”




                                                                                                                                1
Authenticity: The software is not
                              To help others in the industry    counterfeit and the software supplier
                                 initiate or improve their      provides customers ways to differenti-
                                  own secure development        ate genuine from counterfeit software.
               Security
                                      programs, SAFECode
                                                                This paper is focused on examining the soft-
                                        has published “Fun-
            ASSURANCE                                           ware integrity element of software assurance
                                          damental Practices
                                                                and provides insight into the controls that
    Authenticity          Integrity       for Secure Software
                                                                SAFECode members have identified as effec-
                                          Development: A
                                                                tive for minimizing the risk that intentional
                                         Guide to the Most
                                                                and unintentional vulnerabilities could be
                                        Effective Secure
                                                                inserted into the software supply chain.
                                 Development Practices
              in Use Today.” Based on an analysis
              of the individual software assurance                 This paper has been developed
              efforts of SAFECode members, the paper               in conjunction with SAFECode’s
              outlines a core set of secure develop-               previously published “Soft-
              ment practices that can be applied                   ware Supply Chain Integrity
              across diverse development environ-                  Framework,” which outlines
              ments to improve software security.                  a taxonomy for the software                 The Software Supply Chain Integrity Framework
                                                                                                                           Defining Risks and Responsibilities for
                                                                                                                    Securing Software in the Global Supply Chain


                                                                   supply chain and a framework
                                                                                                                                                                July 21, 2009




              The brief and highly actionable paper
                                                                                                                      Editor                    Contributors
                                                                                                                      Stacy Simpson, SAFECode   Dan Reddy, EMC
                                                                                                                                                Brad Minnis, Juniper Networks
                                                                                                                                                Chris Fagan, Microsoft Corp.




                                                                   for analyzing and establishing
                                                                                                                                                Cheri McGuire, Microsoft Corp.
                                                                                                                                                Paul Nicholas, Microsoft Corp.
                                                                                                                                                Diego Baldini, Nokia




              describes each identified security
                                                                                                                                                Janne Uusilehto, Nokia
                                                                                                                                                Gunter Bitz, SAP
                                                                                                                                                Yuecel Karabulut, SAP
                                                                                                                                                Gary Phillips, Symantec




                                                                   software integrity controls.
              practice across the software develop-
              ment lifecycle—Requirements, Design,
              Programming, Testing, Code Handling
                                                                The Risks to Software Integrity
              and Documentation—and offers imple-
              mentation advice based on the real-world
                                                                in a Supply Chain
              experiences of SAFECode members.                  The risk of an attacker using the supply
              These practices are designed to be used           chain as an attack vector deserves some
              in conjunction with the software integ-           further examination. Evidence suggests
              rity practices outlined in this paper.            that attackers focus their efforts on social
                                                                engineering or finding and exploiting exist-
              To obtain a free copy of the paper,
                                                                ing vulnerabilities in the code, which are
              visit www.safecode.org.
                                                                usually the result of unintentional coding
                                                                errors. Thus, experts have concluded that




2
a supply chain attack is not the most likely                                 integrity controls to achieve these objectives
    attack vector. Notably, the experiences of                                   by addressing the security of the processes
    leading reputable software companies who                                     used to source, develop and deliver software.
    work with their suppliers support this finding.
                                                                                The IT System Supply Chain
    Further, there is growing recognition that
    1) there is no one way to defend against                                    The IT system supply chain is a glob-
    every potential vector a motivated attacker                                  ally distributed and dynamic collection of
    may seek to exploit; 2) focusing on the                                      people, processes and technology. Software
    place where software is developed is less                                    is one component of a larger IT solution
    useful for improving security than focus-                                    and each software vendor is only one part
    ing on the process by which software is                                      of a complex chain of suppliers, systems
    developed and tested; and 3) there are                                       integrators and ultimate end users. As such,
    circumstances when the insertion of malicious                                each vendor is only one link of a larger,
    code would be almost impossible to detect.                                   more complex IT system supply chain.

    These challenges highlight that a risk from                                 As a vendor’s customer may not be the
    the supply chain could indeed undermine                                      ultimate end user in the IT system supply
    a product’s intended function or damage                                      chain, it is important to analyze where along
    customer trust. Accordingly, major software                                  the supply chain software security, integ-
    suppliers take preventative action against any                               rity and authenticity practices and controls
    unauthorized changes in the form of software                                 can be applied effectively and efficiently.
    integrity controls. These controls preserve the
                                                                                 Each supplier along the IT system supply chain
    quality of securely developed code, prevent
                                                                                 has both an opportunity and a responsibility
    the inadvertent introduction of vulnerabilities
                                                                                 to apply software assurance practices and
    and help to prevent the intentional insertion
                                                                                 controls in order to preserve software integrity,
    of malicious code. Vendors leverage these




                 Security                          Security                          Security                          Security



              ASSURANCE                         ASSURANCE                         ASSURANCE                         ASSURANCE                 Customer
      Authenticity          Integrity   Authenticity          Integrity   Authenticity          Integrity   Authenticity          Integrity




	     Tier n Supplier	                  Tier 2 Supplier	                  Tier 1 Supplier	                      Integrator

    Software Assurance Is a Shared Responsibility In the IT System Supply Chain




                                                                                                                                                    3
security and authenticity within the portion of    It is within these three processes that effective
          the software supply chain it controls. Naturally,   software security, integrity and authentic-
          a vendor has the most direct control over its       ity practices and controls must be applied in
          own internal practices. A vendor’s reach into       order to improve the assurance of delivered
          its own suppliers for their software assurance      software. This paper will focus specifically
          practices and controls may not be as direct.        on the software integrity controls that ven-
                                                              dors apply to each of these processes.
          Within their respective links of the IT systems
           supply chain, all software vendors control and     It should be noted that SAFECode member
          manage three key lifecycle processes where          companies, like industry companies at large,
          they can effectively and efficiently implement      are still sharing information and examining
           software assurance practices and controls:         practical and meaningful means of measur-

          1.	 Software Sourcing: Vendors select their         ing and verifying software assurance in the
                                                              marketplace. As that work matures, we can
                                                              expect more consistency in how informa-
                                                              tion about internal processes is asserted
    Software        Software Development     Software         and evaluated between trading partners.
    Sourcing        and Testing              Delivery
                                                              Thus, while this paper focuses on the prac-
    • Procurement   • Environment            • Distribution
                    • Personnel              • Sustainment    tices and controls involved along the supply
                    • Software Development
                                                              chain, it was developed with the recognition
                                                              that more work in this area needs to be
                                                              done, and it does not attempt to be highly

              component and services suppliers, estab-        prescriptive with respect to measurement.

              lish the specifications for a supplier’s
              deliverables and have activities to “on-
                                                              Software Integrity Controls
              board” software and hardware components         The following sections will detail the soft-
              and services received from suppliers.           ware integrity controls that SAFECode has
           2.	 Software Development: Vendors                  identified as effective for minimizing the
              build, test, assemble, integrate and            risk that vulnerabilities could be intention-
              package components for delivery.                ally or unintentionally inserted into the
                                                              software supply chain. This analysis is based
           3.	 Software Delivery: Vendors deliver
                                                              on the real-world experiences of SAFECode
              the software product to customers
                                                              members. These integrity controls aim to
              and provide ongoing sustainment.
                                                              preserve the base level of security in a
                                                              product achieved through each supplier’s




4
secure development practices by helping to        SAFECode has organized the integrity
prevent the introduction of vulnerabilities as    controls listed in the following sections
a product moves along the supply chain.           by the three key lifecycle processes each
                                                  software vendor has control over—sup-
The controls identified in the following
                                                  plier sourcing, product development, and
sections are based on the seven basic
                                                  product delivery and sustainment.
principles for software integrity outlined
in SAFECode’s previously published “Soft-         Vendor Sourcing Integrity Controls
ware Supply Chain Integrity Framework:”

•	 Chain of Custody

•	 Least Privilege Access                           Software        Software Development     Software
                                                    Sourcing        and Testing              Delivery
•	 Separation of Duties                             • Procurement   • Environment            • Distribution
                                                                    • Personnel              • Sustainment
•	 Tamper Resistance and Evidence                                   • Software Development


•	 Persistent Protection

•	 Compliance Management
                                                  During the sourcing process vendors
•	 Code Testing and Verification
                                                  establish component specifications, select
These principles support the development          suppliers of components and services
of the software integrity controls outlined       and receive supplied components.
in this paper and identified by SAFECode
                                                  The selection and application of software
as practical, repeatable and auditable.
                                                  integrity controls for use during sourcing is
The software integrity controls described in      a risk-based decision and largely influenced
the following sections do not represent a         by the nature of the relationship between a
minimum control list, but rather are designed     vendor and its software component supplier.
to be integrated with other security practices
                                                  There are three types of vendor-supplier rela-
and tailored to meet a product’s specific risk
                                                  tionships: First, “arms length” relationships
profile. Furthermore, they are to be integrated
                                                  where vendor A licenses a component from
into the vendor’s software engineering process
                                                  supplier B. Second, work-for-hire relationships
and performed in conjunction with corporate
                                                  where vendor A engages supplier B to provide
security functions. These may include physical
                                                  a software component. Third, work-for-hire
security, network security, IT infrastructure
                                                  relationships where vendor A engages supplier
security and business continuity management.
                                                  B to provide a staff augmentation service.




                                                                                                              5
Relationships between a vendor and a sup-          The next section describes integrity 	
    plier based on licensing finished components       controls that can be used in a vendor’s 	
    like databases, enterprise resource manage-        sourcing process.
    ment systems, or operating systems are
    examples of arms length relationships. It          Vendor Contractual Integrity Controls
    is incumbent on suppliers that license their       A vendor’s engagement with a supplier
    software—typically suppliers of commercial-        should be governed by a written agree-
    off-the-shelf (COTS) products or Open              ment, for example a license or a contract.
    Source Software (OSS) components— 1) to            The written agreement must explicitly state
    assure that security threats to the product        the vendor’s and supplier’s expectations,
    or component are anticipated and addressed         as well as the consequences of any non-
    during its design, development and test-           compliance with the terms of the agreement.
    ing; 2) to assure that the processes used
    to source and create components, and to            Defined Expectations
    deliver the product to their customers are         •	 Clear language regarding the requirements
    secure; and 3) their suppliers provide ways           to be met by the code and the develop-
    for their customers to differentiate genuine          ment environment should be set forth
    products and components from counterfeit.             during the contracting process. Among
                                                          other things, this should include commit-
    In relationships based on work-for-hire, the
                                                          ments to provide security testing, code
    software delivered by a supplier to a vendor
                                                          fixes and warranties about the software
    is owned by the vendor. The integrity controls
                                                          development and delivery process used.
    used by the supplier may be the supplier’s,
                                                          Overall this helps to set the expectation
    the vendor’s or any combination thereof.
                                                          of delivering a product with integrity.
    Typically, in staff augmentation engagements
    the vendor’s and supplier’s staff work collab-     Ownership and Responsibilities
    oratively on projects that share code libraries,   •	 Intellectual property ownership and
    tools and resources, and all project members          responsibilities for protecting the
    utilize the same software integrity controls.         code and development environment
                                                          should be clearly articulated.
    In each of the above relationships, the ven-
    dor has different degrees of control over
                                                       Vulnerability Response
    the integrity practices and controls used
                                                       •	 In today’s world, vendors must push for
    by its supplier. It is this level of control
                                                          a more formal understanding of how well
    that guides the selection of the software
                                                          their suppliers are equipped with the capa-
    integrity practices and controls neces-
                                                          bility to collect input on vulnerabilities from
    sary to minimize software integrity risks.




6
researchers, customers or sources and
   turn around a meaningful impact analysis       The contracts between companies regard-
   and appropriate remedies in the short          ing software have typically been focused
   timeframes involved. The fact is that the      on expectations regarding functional
   handling of such vulnerabilities will likely   performance, defect handling, licensing
   become a joint responsibility in the face of   issues and other challenges like end-of-
   downstream visibility to customers. No one     life support. As concerns about protecting
   can afford to be surprised about a suppli-     software’s integrity have escalated along
   er’s potential immaturity in handling these    with reducing the risk of counterfeit com-
   challenges in the middle of a situation.       ponents and products, contracts evolved
   Suppliers provide common terminology           further to address this in language.
   for these discussions by using now-default
                                                  New language that specifically addresses
   references to well-known specifications
                                                  the issue of integrity and authentic-
   like Common Vulnerabilities and Exposures
                                                  ity of COTS product components from
  (CVE) and Common Vulnerability Scoring
                                                  external suppliers that will be included
   System (the CVSS). Each party should
                                                  in the ultimate product can also be
   identify contact personnel and review tim-
                                                  explored. The language would ask sup-
   ing and escalation paths as appropriate to
                                                  pliers to self-certify that the supplier’s
   be prepared to provide a prompt response.
                                                  software aligns with security standards
Security Training                                 and that the supplier’s practices align

•	 Another important area for discussion          with best practices of industry code

   between trading partners is assessing a        security and integrity organizations

   supplier’s capability to effectively train     like SAFECode or its equivalent.

   its developers on secure development
   practices. While it is not necessary to
   be highly prescriptive about a particu-
   lar curriculum or certification regime, a
   company cannot credibly assert that it
   has a secure development framework or
   that it follows integrity practices if there
   is no evidence of any relevant training.




                                                                                               7
Open Source Software                                As a result, the process used to evaluate
                                                        and select open source software components
    The use of open source software pres-
                                                        deserves consideration. Software ven-
    ents alternative challenges in the
                                                        dors analyze the reputation and release
    context of supply chain integrity.
                                                        engineering practices of the community
    While in some cases a commercial entity may         supporting an open source component to
    package and support open source software,           help assess its competence and reliability
    other open source software is managed by a          in dealing with security matters. While
    community with which a direct relationship          the vetting practices will vary depend-
    cannot be established. In the latter case, the      ing on the specific product needs and risk
    trust and accountability between a vendor           profile, means to validate open source pack-
    and the community supplying software is             ages and their distribution sites need to
    different. Notably, the contractual terms           be adopted and developed, respectively.
    that vendors establish with commercial sup-
                                                        A viable integrity control for community
    pliers do not apply to community-supplied
                                                        open source components is for a vendor to
    components as there is no direct supplier
                                                        get the source, review it and build it. Vali-
    with whom to establish an agreement. Exist-
                                                        dating the quality of open source software
    ing license terms governing the use of open
                                                        needs to happen after acquisition of the
    source software are focused on ensuring
                                                        code. Vendors may choose to include an
    that combinations of the software with other
                                                        open source component or leave it up to the
    software are consistent with the community’s
                                                        acquirer to obtain and evaluate the compo-
    expectations. Those license terms may not
                                                        nent. For vendor-supported OSS, an acquirer
    provide sufficient support for efforts to protect
                                                        can transfer risk to the vendor through
    software integrity. Other controls similar to
                                                        appropriate language in their agreement.
    those present in commercial vendor-supplier
                                                        Otherwise in either case, procedures must be
    agreements may need to be implemented for
                                                        implemented for the inspection of software
    community-supplied software. For instance,
                                                        components for the presence of vulnerabilities
    as vulnerabilities are visible to anyone and
                                                        and for the assessment of the trustworthi-
    because their exploitability can be readily
                                                        ness of the component’s distribution site.
    assessed, open source communities may call
    for more active vulnerability management            In general, a vendor must under-
    and incident handling, and users in the field       stand how each of its suppliers
    may request quicker software updates.               handles the open source components
                                                        that are shipped with its own code.




8
Vendor Technical Integrity                            automatically at contract expiration
Controls for Suppliers                                or at another fixed period. A robust
                                                      procedure is required so that when a
Secure Transfer
                                                      supplier’s employee leaves the sup-
•	 Delivered code should be transferred
                                                      plier company, the former employee’s
   securely, using authenticated endpoints
                                                      credentials immediately expire. A
   and encrypted sessions. Content being
                                                      combination of automatic disabling and
   delivered should be encrypted for transit.
                                                      manual notification is best to ensure
  This requires that suppliers use the best
                                                      completeness of privilege removal.
   available technology, mechanisms and
   procedures when exchanging deliverables.      Malware Scanning
  A secure end-to-end automated process          •	 Supplier content to be transmitted to
   can often strengthen the protection that        the vendor should be scanned for mal-
   could be resident in a manual procedure.        ware using the most recent malware
                                                   signature files and more than one com-
Sharing of System and Network Resources
                                                   mercial scanning engine. While today’s
•	 The digital identities a vendor issues to
                                                   malware scanning tools are generally not
   suppliers to enable access to the ven-
                                                   designed to identify malicious code that is
   dor’s network and resources should be
                                                   perfectly formed, this standard integrity
   established with strong controls enforced
                                                   control should be performed at points of
   to limit access to only those resources
                                                   exchange between parties. Depending
   needed to perform the supplier’s role.
                                                   on the relationship and the practicality of
  –– Each resource that is shared should           doing so, suppliers should inform recipi-
     have its own independent assess-              ents of the code as to what scanning has
     ment as to what authentication and            taken place up to the point of transfer.
     authorization is required. For example,
     staff access to a vendor’s development      Secure Storage
     project requires additional authoriza-      •	 Source code for software components
     tion over and above the authorization         and products should be stored securely
     a staff member receives in order to           with need-to-know access controls
     access a vendor’s corporate network.          applied. Code packages that are trans-
                                                   ferred should be moved to a secure
  –– A supplier’s access to development
                                                   asset repository as soon as practical so
     assets should expire as soon as it leaves
                                                   that they can be managed more pre-
     the project. A fail-safe check should
                                                   cisely with respect to access privileges.
     also be in place to end all privileges




                                                                                                 9
Code Exchange                                      Within a software vendor’s organiza-
        •	 Processes using digitally signed pack-          tion, additional software integrity controls
            ages and verifiable checksums or hashes        may exist within the context of other IT
            should be in place to ensure that received     functions such as backup and recovery,
            code is complete and authentic. Verifying      business continuity, physical and network
            the digital signatures with validated time     security, and configuration management
            stamps of the software packages proves         systems. The following are examples of
            authenticity and establishes that the          controls employed by SAFECode members:
            download or transfer process delivered an
                                                           People Security
            intact version of the intended package.
                                                           •	 It should be noted that while criminal
       Vendor Software Development                            background checks are often the focus
       Integrity Controls                                     of public debate, in practice SAFECode
                                                              members have found that they are not as
                                                              effective as other controls and processes.
                                                              Focusing on organizational and process
 Software        Software Development     Software
 Sourcing        and Testing              Delivery            controls in conjunction with technology
 • Procurement   • Environment            • Distribution
                 • Personnel              • Sustainment       to minimize risks coming from within the
                 • Software Development                       company is more efficient and effective.
                                                              For that reason, many of the following
                                                              controls to minimize the risk from mali-
                                                              cious insiders are based on practices
        In software development and test-                     such as the segregation of duties and the
        ing, software vendors build, assemble,                use of controlled automated processes.
        integrate and test software components
                                                           •	 It is important that roles, responsibili-
        to finalize them for delivery.
                                                              ties and access rights are clearly defined
        Software vendors have a great deal of                 in development processes to achieve a
        experience implementing powerful man-                 defense-in-depth approach. Development
        agement, policy and technical controls to             management must be knowledgeable as
        achieve sound engineering practices and               to who has what access. A team of people
        intellectual property protection. The secure          with well-planned responsibilities must
        development practices that focus primar-              maintain appropriate operations for guard-
        ily on achieving the “security” circle in the         ing code assets while meeting the demands
        software assurance triad described above              of the global engineering environment.
        become the baseline for internal development.




10
•	 In addition to the expected training in             periodically re-assessed using a risk-based
   secure development practices, there                 process. Physical security controls should
   should be training in the secure techni-            be strong enough to ensure that devel-
   cal controls used by other integrity                opment assets cannot be accessed by
   practices. Does each organization know              outsiders. Physical protection of source
   how to verify a digital signature with              code should go beyond a single layer of
   a validated timestamp? Does each                    building security and include additional
   organization understand which hash algo-            distinct physical access controls that limit
   rithms are best used in a checksum?                 access to those with a “need to know.”
                                                       For example, additional badge restricted
Physical Security                                      access beyond the normal building access
•	 Building security and physical access               should be required for administrators
   control should be applied to develop-               to access code assets protected in a
   ment locations and code repositories and            repository. Physical assets and credentials



                            Integrity Controls vs. Development Practices

   While SAFECode’s Development Practices          by another. Without proper integrity controls,
   paper describes how to identify and avoid       this change might go undetected and could
   typical coding errors such as buffer over-      cause problems elsewhere because nobody
   flows, SQL injection, cross site scripting      was expecting the function to have changed.
   and more, this current work deals with the
                                                   A combination of good access controls,
   question of preserving the integrity of an
                                                   testing and peer review of changes could
   IT product. The integrity practices serve
                                                   minimize this risk. Thus integrity controls
   as controls to prevent unauthorized or
                                                   can aim at preserving the well-constructed
   inadvertent changes to the source code.
                                                   code for the approved specification while
   Without proper controls, vulnerabilities        preventing careless or inadvertent changes.
   can be introduced by ”good faith” develop-      Integrity controls throughout the supply
   ers. For example, while fixing a problem in     chain will also reduce the risk of a malicious
   their part of the code with dependencies        attacker being able to change code inten-
   elsewhere, a developer might inadvertently      tionally or perhaps detect a virus before it
   change code while merging it with a related     spreads into the production environment.
   function (e.g., an interface) primarily owned




                                                                                                      11
(e.g., keys, badges, security tokens,             the minimum code necessary to carry
       smartcards, laptops, etc.) loaned to an           out their responsibility. Access to code
       individual should be retrieved and veri-          stored on local machines should also be
       fied against a list of expected assets as         controlled based on a “need-to-know” and
       part of a managed termination process.            “least-privilege” basis to the extent possible
                                                         given the goals of the project at hand.
     Network Security
     •	 Network security standards should be           Code Repository Security
       established and applied using a risk-based      •	 All code-related assets should be
       process for the code-related assets. For          housed in source code repositories
       example, security protections could include       (also known as configuration manage-
       intrusion detection or other defensive            ment systems or source code control
       measures on source code repositories              systems), to enable additional atten-
       with alerting to appropriate event sys-           tion to security and access control.
       tems that would alarm during an attack.         •	 The servers that host the source code
       Session traffic involving source code             repositories should be housed securely.
       should be encrypted to acceptable com-            In most major software vendors, these
       pany or applicable industry standards.            machines are located in data centers with
     •	 Access to developer workstations should          appropriate physical security, hardened
       be controlled. For example, workstations          server security and business disaster
       can be tied to corporate authentication to        recovery controls. Be mindful that source
       ensure that terminated workers are imme-          code is sometimes copied and kept in
       diately denied further access. Accounts           separate databases after being run through
       of departing employees and other autho-           some static code analysis tools. The confi-
       rized workers should be properly disabled         dentiality of code files should be protected
       immediately to allow appropriate review of        in all locations. This avoids unauthorized
       their work. It is important to disable, and       people from seeing the code structure
       not delete, accounts so that a full forensic      and test results. Combined access to such
       analysis is still possible after termination.     information might enable them to better

     •	 Workstation and virtual machine security         target particular code files in a later attack.

       should be secured to standards to mini-         •	 The “out of the box” defaults of any such
       mize the opportunity for malicious code to        system must be examined and configured
       be introduced during the coding process.          to be secure by default, ideally accord-
       Developers should have write access to            ing to a well-understood standard for a




12
system holding an acquirer’s precious            distinct identities to provide accountability.
  assets such as its customers’ personal           Administrative practices should observe
  identifiable information. One objective          the separation of duties principle, and
  would be for the system to operate without       elevated permissions should be subject
  the risk of allowing exploits through eas-       to management approval. For instance,
  ily inherited system-level root privileges.      project engineering administrators require
  Many detailed settings such as authen-           a higher level of access to code assets
  tication handling, session variables and         to perform their duties than network
  external interfaces must be addressed to         security administrators. Other person-
  deliver secure-by-default deployment. A          nel such as IT or Security Operations
  software’s default state should promote          may have responsibility for base-level
  security. For example, software should           configurations and the overall platform
  run with the least necessary privileges          profile including security patch levels, etc.
  and services that are not widely needed        •	 Within the repositories, access to
  should be disabled by default or only            branches, work areas or code sets
  accessible to a small population of users.       must be understood by development
•	 Once enabled as secure by default, that         management, and access privileges
  configuration status itself must be pro-         should be granted using the principles
  tected. As more systems like repositories        of least privilege and need to know.
  become compliant with specifications like      •	 Code segments can be tied to spe-
  the emerging Security Content Automa-            cific requirements in a requirements
  tion Protocol (SCAP) specifications, the         management, enhancement or bug
  configuration state of the repository and        tracking system that allows for cross
  subsequent changes can be expressed              mapping of functionality to code.
  and consumed in machine-readable
                                                 •	 Change management practices with review
  form, offering greater initial and ongo-
                                                   and approval paths should be formalized
  ing protection supported by automation.
                                                   and well understood for code logic and
•	 Ideally, access to source code repositories     asset changes, repository application and
  should be controlled through the use of          underlying system configuration changes.
  corporate identity systems, with strict
                                                 •	 Change logs for all modifications to a
  control maintained over access to any
                                                   product’s code assets should be main-
  system account. Engineering administra-
                                                   tained and preserved for future analysis.
  tors responsible for managing application
                                                   Logs should provide file names, account
  repositories should be named users with
                                                   name of the person checking in the file,




                                                                                                    13
A company can have source code policy            who created and ran the scripted environ-
     and standards that product engineer-             ment that produced a particular build. In
     ing teams are expected to meet in the            addition, build scripts need protection as
     context of protecting source code and            critical assets. This internal standard also
     product artifacts throughout the product         ties into corporate security polices and con-
     development cycle. For example, these            trols such as the credentialing requirements
     could include detailed corporate expecta-        for personnel and handling of digital identi-
     tions regarding the protection of source         ties, a key bridge to best practices around
     code repositories and build environments.        the protection of source code repositories.

     Some might be simple requirements, like          An active, ongoing relationship with engi-
     “Source Code Systems should leverage             neering teams places the internal security
     corporate identity stores for authentication,”   team in the best position to effect ongoing
     and perhaps obviously that “no anonymous         improvements to the protection of code
     access can be allowed to a repository.”          throughout its lifecycle. The requirements
     Others are more detailed, such as which          should not distract by simply attempt-
     particular systems for handling internal         ing to force everyone to use an identical
     request and approval routing for source          repository, but to set the standard for how
     code repository privileges must be used          a repository should be set up and operated
     by each engineering team. Setting up the         securely. The approach taken in working
     linkage between source code repositories         with engineering teams is to assess the
     and the set of build tools is challenging        gaps that exist between where a group is
     since automation and accountability must         today on each item in the standard and to
     be blended. A practical approach is needed       build an improvement plan for closing the
     such that the sets of tools can be consistent    gaps as part of a risk-based approach.
     and automated, while still making it known




14
check-in time stamp, and the line changes        and build tools should be traceable to
  made. They should be kept for a suf-             individuals with the authority to execute
  ficient time in a protected environment          the automated scripts or procedures.
  to assist with any forensics or ongo-
  ing security improvement initiatives.         Peer Reviews and Security Testing
•	 A manifest of all code assets contributing   One security engineering practice that all
  to a product, including those developed       SAFECode members use in conjunction with
  in-house and by third parties, should be      their software integrity controls is security
  maintained and managed, similar to a Bill     testing. Source code and binary analysis
  of Materials in the manufacturing domain.     tools, and sometimes manual code review,
                                                are performed on code to identify common
•	 Versions of software assets with their
                                                coding patterns that are known to have
  known security characteristics should
                                                been attacked previously. Testing tech-
  be tracked in the repository. Change or
                                                niques are continually upgraded. Security
  configuration management should be
                                                engineering practices complement software
  tracked as well to find the balance between
                                                integrity controls because security engi-
  getting the latest patches and updates
                                                neering practices represent an ever-rising
  and having stable, predictable code.
                                                threshold against software supply chain
                                                vulnerabilities. The testing techniques below
Build Environment Security
                                                are primarily software security engineering
•	 Build environments should be as automated
                                                practices, not software integrity controls.
  as possible. This minimizes the opportunity
  for human intervention in the regular build
                                                Peer Review
  process. However, the “owners” of the build
                                                •	 Peer reviews and the manual inspection
  environment should be few. The traceability
                                                   of code are not often popular given issues
  of actions on build scripts and of access
                                                   of scalability. Automated tools can enable
  to code files during build should be high.
                                                   some scalability by collecting and process-
•	 Build automation scripts should be treated      ing more artifacts in preparation for peers
  in a manner similar to other source              performing a focused review. Also, when
  code assets and checked in to the code           teams are assigned to work together on
  repository. This means that changes to           code files, an important dynamic is present
  the automated build process can be attrib-       whereby reviewers can more readily iden-
  uted to the person checking in the file.         tify code that does not belong within a code
•	 Service accounts that run in an automated       set. Focusing peer reviewers on changed
  fashion between source code repositories         code that is scanned again and awaiting




                                                                                                  15
approval during a two-stage check-in to        While security testing is a fundamental part
        the repository can be an effective approach.   of supply chain security, software vendors
        Another approach is to couple peer reviews     recognize that testing alone is not likely to
        in relation to exercised code paths in the     catch malicious code that is intentionally
        context of overall code coverage. In gen-      inserted, perfectly crafted and disguised to
        eral, questions about the structure and        appear as legitimate. Due to these limitations,
        purpose of sections of code that arise dur-    software testing must be augmented with
        ing peer review are more likely to uncover     the other listed software integrity practices
        intentional malicious code or inadvertent      that control access to development assets to
        code errors than automated testing alone.      more effectively address potential software
                                                       security risks in this stage of the supply chain.
     Testing for Secure Code
     •	 The size of the code base for many soft-       Vendor Software Delivery
        ware projects today requires automated         Integrity Controls
        code review and testing tools. Additional
        information on secure code testing can
        be found in SAFECode’s “Fundamental             Software        Software Development     Software
                                                        Sourcing        and Testing              Delivery
        Practices for Secure Software Develop-          • Procurement   • Environment            • Distribution
        ment” paper. Building these tests to                            • Personnel              • Sustainment
                                                                        • Software Development
        run in a repeatable automated manner
        increases the assurance that they will
        be performed and analyzed often.
                                                       This stage of the software supply chain
     •	 The list below identifies the most com-
                                                       covers new product delivery and the
        mon categories of testing tools used:
                                                       delivery of maintenance patches.
       –– Static code analysis tools (source code)
                                                       It is important to note that while this may
       –– Network and web application vulner-
                                                       be the last stage of the supply chain directly
          ability scanners (dynamic testing)
                                                       under a software vendor’s control, it is not
       –– Binary code analysis tools                   always the final step in the supply chain from
       –– Malware detection tools (dis-                the end user’s point of view, as software
          cover backdoors, etc.)                       vendors often do not provide their products
                                                       directly to end-user organizations. In many
       –– Security compliance validation tools
                                                       cases, the software vendor’s products are
          (hardening, data protection)
                                                       passed to system integrators, resellers and
       –– Code coverage tools                          authorized service providers before reaching




16
the end-user. Thus, as software components        Delivery
leave the supplier, software integrity and        •	 A vendor’s process for delivering
authenticity become a shared responsibil-             products both online and through dis-
ity between supplier and customer.                    tributions using physical and electronic
                                                      media should be secured. Informa-
Publishing and Dissemination
                                                      tion on code signing and checksums
The controls for product delivery are                 should be available to customers.
similar to those for the receipt of code
components from software suppliers to the         Transfer
software vendor as described in the Sourc-        •	 Transfer products in such a way that the
ing section of this paper. However, additional        receiver can confirm that the product
security needs arise once the software                is coming from the software vendor.
product is complete. These include state-
of-the-art anti-malware checks and the            Authenticity Controls
availability of a mechanism that provides         For all the work that software vendors do
a way for customers to assure themselves          in ensuring they produce a quality product
of the integrity of the delivered package.        free from vulnerabilities, there remains
                                                  residual supply chain risk after the product
Malware Scanning                                  has been released. Millions of customers
•	 Products should be scanned for malware         every year unsuspectingly acquire coun-
   using the most recent malware signature        terfeit software. According to the Business
   files and more than one commercial scan-       Software Alliance, over one in five software
   ning engine. As mentioned earlier and          packages are counterfeit or pirated.2
   depending on the nature of the relationship,
   it may be appropriate to communicate what      While not a central focus of this
   scanning was done prior to the handover.       paper, authenticity or anti-
                                                  counterfeiting controls are                               Security
Code Signing                                      one of the three essential
•	 The software vendor’s product should be        elements of software                                   ASSURANCE
   strongly digitally marked with the software    assurance and thus
                                                                                              Authenticity               Integrity
   vendor’s identity in a way that can’t be       are tightly integrated
   altered, yet may be verified by customers.     with software integrity
                                                  controls, especially as


                                                  2. Business Software Alliance, “Sixth Annual BSA-IDC Global Software
                                                  Piracy Study,” May 12, 2009.




                                                                                                                                     17
software is prepared for delivery. Thus, it          Vendors must find the right balance and
     is important to highlight the key authentic-         offer proof of authenticity for the many
     ity controls used by software vendors in the         predictable aspects of the software.
     software delivery link of the supply chain.
                                                       Notification Technology
     Counterfeit products often look authentic,        •	 With a variety of distribution channels
     but they pose serious risks to customers.            for software, including online distribution,
     Counterfeit software cannot be assured to            customers often can’t tell that they have
     function as intended and often contains              a counterfeit product until it is installed
     malicious code aimed at data destruction or          on their computer. Vendors can leverage
     theft. Protecting customers and businesses           technology to detect certain aspects of
     from the risks of counterfeit software requires      the product’s integrity and notify the user
     both engineering efforts by software vendors         if the software is deemed to be counter-
     and awareness and recognition by acquir-             feit. Sometimes introduced by vendors to
     ers and end users. The risk of counterfeit           prevent license piracy, this technology has
     software can be greatly reduced through              evolved into an effective integrity control.
     purchase from only authorized resellers,
     careful examination of product packaging and      Authentic Verification during
     media, and technology to notify users when        Program Execution
     they may be victims of counterfeit software.      •	 In practice, the integrity of an applica-
                                                          tion can be verified when the application
     Cryptographic Hashed or Digitally
                                                          is installed on a computer. Additionally,
     Signed Components
                                                          each time an application runs on a user’s
     •	 As mentioned above, digitally signed              computer, similar technology can verify
        components or checksum hashes are an              the integrity of the files that make up the
        essential authenticity control to prove           application. The hardware and software
        that components are genuine. With any             technology used to verify the claims
        system there are characteristics of the           applications and files make about their
        software being shipped that are stable,           validity and integrity is well understood,
        while there may be other items that vary          efficient and broadly available. Software
        with particular configuration options             vendors who already make use of this
        as installed. Today the “signing” of an           technology have invested in hardware,
        application provides a capability to detect       software, people and process, effec-
        that an application has not been tam-             tively “code signing” their applications.
        pered with since the time it was signed.




18
•	 A vendor with the right technology               configuration. Secure configurations for the
   tools can effectively pre-authorize the          supplied software should be delivered to
   program execution of only a specific             the customer along with an outline of the
   set of applications from a “good” list,          risk implications of the configuration state
   effectively blocking any newly spawned           or choices detailed. The future of broader
   code that may not be legitimate.                 adoption of machine readable SCAP
                                                    compliant configurations will strengthen
Product Deployment and                              this area’s contribution to integrity.
Sustainment in the Ecosystem
The software lifecycle extends beyond delivery    Custom Code Extensions
of the initial software vendor’s product and      •	 Software designed to be integrated and
into the product’s sustainment or mainte-           extended to deliver additional functionality
nance phase. As a result, patches and hot           creates another link in the supply chain.
fixes should be subject to the same software        Assume that the original software and its
integrity controls as the original code.            interfaces were secure, fully functional
                                                    and delivered with integrity and authentic-
It is important that authorized service person-     ity. Software components that are added
nel with ongoing access to genuine parts and        later to extend the functions of an IT
proper disposal procedures are involved in          System must be also be treated with the
the sustainment process. Authorized access          same care as originally applied by the
should convey that the person actively works        internal development and testing of its
for the company providing the service and           supplier. Integrators must follow secure
that service personnel don’t have more              development practices as they extend
privileges on the installed environment than        code functionality through the provided
those needed to complete the task at hand.          secure interfaces. In addition, to continue

All service transactions should provide evi-        integrity, their component assets should

dence that legitimate service personnel did         be cataloged in a repository, access to

the work, and evidence should be available          code restricted based on “need-to-know”

for audit and protected against tampering.          and peer reviews implemented. The
                                                    chain of custody must be preserved with
Secure Configurations                               these controls as the sets of products
•	 Whenever possible, software vendors              are assembled for the solution to be
   should ship products with a secure               delivered to the ultimate end customer.
   configuration being set as the default           Resellers or systems integrators often
                                                    manage this link in the supply chain.




                                                                                                   19
Table 1: Summary of SAFECode Software Supply Chain Integrity Controls

     Processes                                          Controls
                                                        •	 Defined expectations
                         Vendor contractual integrity   •	 Ownership and responsibilities
                         controls                       •	Vulnerability response
                                                        •	 Security training
     Software sourcing                                  •	 Secure transfer
                                                        •	 Sharing of system and network resources
                         Vendor technical integrity
                                                        •	 Malware scanning
                         controls for suppliers
                                                        •	 Secure storage
                                                        •	 Code exchange
                                                        •	 People security
                                                        •	 Physical security
                         Technical controls             •	 Network security
     Software 	
     development 	                                      •	 Code repository security
     and testing                                        •	 Build environment security
                                                        •	 Peer review
                         Security testing controls
                                                        •	Testing for secure code
                                                        •	 Malware scanning
                         Publishing and 	               •	 Code signing
                         dissemination controls         •	 Delivery
                                                        •	Transfer
                                                        •	 Cryptographic hashed or digitally signed
     Software delivery                                     components
     and sustainment     Authenticity controls          •	 Notification technology
                                                        •	Authentic verification during program
                                                          execution
                                                        •	 Patching
                         Product deployment and
                                                        •	 Secure configurations
                         sustainment controls
                                                        •	 Custom code extension




20
Future Directions                                   research and development. Additional
                                                    behavioral analysis of a piece of code might
As software integrity remains an emerg-             be a promising new approach similar to
ing discipline, there are a number of              what is already implemented in some of
areas that SAFECode believes deserve                today’s anti-virus detection software.
further study and industry collaboration.
These include, but are not limited to:           Authenticity Ease of Use
                                                 •	 While cryptography can be applied with
Supplier Management and Communication
                                                    checksums, digital certificates and signa-
along the Supply Chain
                                                    tures and validated timestamps, the user
•	 The work that the software industry has          experience to verify legitimate software
   undertaken to identify and implement             can be confusing and daunting. Users need
   secure coding practices, including the           far easier means of validating authenticity
   findings presented in SAFECode’s “Fun-           so that they are not primarily focused on
   damental Practices for Secure Software           clearing their screens of any distractions
   Development” paper, takes on new                 to get on with the tasks at hand. Since
   implications when examined along the             social engineering attacks sometimes count
   supply chain from one supplier to another.       on users dismissing warnings or errors,
   These security practices together with           ongoing work in this area is important.
   normal quality control concerns could
   be reexamined in the context of the           Authentic Software at Runtime
   exchange of software and related infor-       •	 How can end-users assure themselves that
   mation from one supplier to another.             all software running on their machines is
                                                    authentic and trustworthy? One promising
Research on Software Testing
                                                    technology advancement is the Trusted
•	 As discussed previously, automated test-        Platform Module (TPM), a hardware compo-
   ing currently is limited in its ability to       nent that can be integrated with a signed
   detect malicious code that is intentionally      operating system, signed applications and
   inserted and well disguised as legitimate.       signed add-ins to provide an end user the
   Essentially, today automated testing can         assurance at run time that all components
   only detect malware that use coding              are authentic. However, for TPMs to be
   patterns that have been seen previously.         truly effective, all software must be signed.
   Increasing the capability of software test-     Some vendors, both community (open
   ing of source and binary code to identify        source) and proprietary, have taken steps
   vulnerabilities is an area worthy of future      to enable this technology. However, an




                                                                                                    21
industry-wide effort is necessary to achieve   Broader Collaboration with Supply
        this vision as the computers used by end       Chain Management Community
        users contain an eclectic collection of        •	 While the well-established and mature
        software sourced from a vast ecosystem of        supply chain management community
        vendors, suppliers and communities. The          is becoming aware of these emerging
        Trusted Computing Group (www.trusted-            threats to the IT system supply chain,
        computinggroup.org) is an example of an          there is room for greater collaboration
        organization actively addressing this issue.     around a shared understanding of the
                                                         challenges, common terminology and
     More Comprehensive Data on
                                                         existing disciplines that can be leveraged
     Today’s Practices and Controls
                                                         across an even broader community.
     •	 While SAFECode has offered the best
        thinking of its member companies in this       Measurement
        important emerging area, the field could       •	 SAFECode is currently examining its mem-
        be furthered by capturing broader data           bers’ practices on measuring software
        from a larger segment of information             assurance. As that work evolves, there
        technology vendors about their cur-              are sure to be implications for improv-
        rent or preferred practices so that the          ing the exchange of integrity-related
        overall community is guided by data as           measures among trading suppliers.
        continuous improvements are made.

     Software Integrity and Cloud Computing
     •	 The impact of cloud computing on the
       “traditional” view of software supply
        chain risks, as addressed in this paper,
        needs to be assessed. Software pos-
        sesses many of the same characteristics
        inherent in other forms of intellectual
        property. As a result, issues associated
        with jurisdiction, access authorization and
        compliance need to be assessed for their
        impact on software integrity controls.




22
Conclusion                                         controls, as well as continue further study and
                                                   analysis on additional practices and controls
SAFECode views software integrity as a             to improve software supply chain integrity.
fundamental pillar of software assurance.
Protecting the integrity of software requires      Acknowledgments
a set of controls that should be implemented
alongside secure development and authentic-        Brad Arkin, Adobe Systems Incorporated

ity practices; indeed, integrity preserves and     Eric Baize, EMC Corporation
supports security and authenticity across          Matt Coles, EMC Corporation
the complexity of a supply chain. However,
                                                   Robert Dix, Juniper Networks, Inc.
resources and best practices for identifying
and analyzing software integrity controls are      Yuecel Karabulut, SAP AG
not yet widely available, creating challenges      Paul Nicholas, Microsoft Corporation
for both software vendors and customers.
                                                   Gary Phillips, Symantec Corporation
While a software vendor is only one link in        Tyson Storch, Microsoft Corporation
a complex IT solution supply chain and has
                                                   Kevin Sullivan, Microsoft Corporation
a limited ability to influence the actions of
the other entities along the chain, all soft-      Janne Uusilehto, Nokia
ware vendors have both the opportunity and
responsibility to protect the integrity of the
software as it moves through the link they
control. This requires the application of soft-
ware integrity controls to a vendor’s software
sourcing, development and delivery processes.

SAFECode believes the industry-wide adoption
of software integrity controls has the potential
to greatly improve customer confidence in
IT systems. It has published this collection
of best practices, which are based on the
lessons its members have learned in their
individual implementation of these controls,
in an effort to provide guidance to others
in the industry. SAFECode encourages the
software industry to tailor and adopt these




                                                                                                     23
About SAFECode
The Software Assurance Forum for Excellence
in Code (SAFECode) is a non-profit organization
exclusively dedicated to increasing trust in infor-
mation and communications technology products
and services through the advancement of effective
software assurance methods. SAFECode is a global,
industry-led effort to identify and promote best
practices for developing and delivering more secure
and reliable software, hardware and services. Its
members include Adobe Systems Incorporated,
EMC Corporation, Juniper Networks, Inc., Microsoft
Corp., Nokia, SAP AG and Symantec Corp. For
more information, please visit www.safecode.org.




              SAFECode                 (p) 703.812.9199

2101 Wilson Boulevard                  (f) 703.812.9350

             Suite 1000                (email) stacy@safecode.org

  Arlington, VA 22201                  www.safecode.org



© 2010 Software Assurance Forum for Excellence in Code (SAFECode)

Mais conteúdo relacionado

Mais procurados

Symantec Introduces New Security Solutions to Counter Advanced Persistent Thr...
Symantec Introduces New Security Solutions to Counter Advanced Persistent Thr...Symantec Introduces New Security Solutions to Counter Advanced Persistent Thr...
Symantec Introduces New Security Solutions to Counter Advanced Persistent Thr...Symantec
 
Fraunhofer Report on Black
Fraunhofer Report on BlackFraunhofer Report on Black
Fraunhofer Report on BlackFraunhofer SIT
 
SCIT Labs - intrusion tolerant systems
SCIT Labs - intrusion tolerant systemsSCIT Labs - intrusion tolerant systems
SCIT Labs - intrusion tolerant systemsZsolt Nemeth
 
Security assessment for financial institutions
Security assessment for financial institutionsSecurity assessment for financial institutions
Security assessment for financial institutionsZsolt Nemeth
 
Android Security: A Survey of Security Issues and Defenses
Android Security: A Survey of Security Issues and DefensesAndroid Security: A Survey of Security Issues and Defenses
Android Security: A Survey of Security Issues and DefensesIRJET Journal
 
CAST Architecture Checker
CAST Architecture CheckerCAST Architecture Checker
CAST Architecture CheckerCAST
 
Vulnerability assessment and penetration testing service.
Vulnerability assessment and penetration testing service.Vulnerability assessment and penetration testing service.
Vulnerability assessment and penetration testing service.Mindtree Ltd.
 
CS5032 L9 security engineering 1 2013
CS5032 L9 security engineering 1 2013CS5032 L9 security engineering 1 2013
CS5032 L9 security engineering 1 2013Ian Sommerville
 
CS5032 L10 security engineering 2 2013
CS5032 L10 security engineering 2 2013CS5032 L10 security engineering 2 2013
CS5032 L10 security engineering 2 2013Ian Sommerville
 
Engineering Software Products: 7. security and privacy
Engineering Software Products: 7. security and privacyEngineering Software Products: 7. security and privacy
Engineering Software Products: 7. security and privacysoftware-engineering-book
 
Norman Patch and Remediation
Norman Patch and  RemediationNorman Patch and  Remediation
Norman Patch and RemediationKavlieBorge
 
Security Engineering 2 (CS 5032 2012)
Security Engineering 2 (CS 5032 2012)Security Engineering 2 (CS 5032 2012)
Security Engineering 2 (CS 5032 2012)Ian Sommerville
 
GP Strategies Corporation Employs the Secunia Corporate Software Inspector (C...
GP Strategies Corporation Employs the Secunia Corporate Software Inspector (C...GP Strategies Corporation Employs the Secunia Corporate Software Inspector (C...
GP Strategies Corporation Employs the Secunia Corporate Software Inspector (C...Flexera
 
The Top 20 Cyberattacks on Industrial Control Systems
The Top 20 Cyberattacks on Industrial Control SystemsThe Top 20 Cyberattacks on Industrial Control Systems
The Top 20 Cyberattacks on Industrial Control SystemsMuhammad FAHAD
 
CS 5032 L12 security testing and dependability cases 2013
CS 5032 L12  security testing and dependability cases 2013CS 5032 L12  security testing and dependability cases 2013
CS 5032 L12 security testing and dependability cases 2013Ian Sommerville
 

Mais procurados (20)

Ch9 evolution
Ch9 evolutionCh9 evolution
Ch9 evolution
 
Symantec Introduces New Security Solutions to Counter Advanced Persistent Thr...
Symantec Introduces New Security Solutions to Counter Advanced Persistent Thr...Symantec Introduces New Security Solutions to Counter Advanced Persistent Thr...
Symantec Introduces New Security Solutions to Counter Advanced Persistent Thr...
 
Fraunhofer Report on Black
Fraunhofer Report on BlackFraunhofer Report on Black
Fraunhofer Report on Black
 
SCIT Labs - intrusion tolerant systems
SCIT Labs - intrusion tolerant systemsSCIT Labs - intrusion tolerant systems
SCIT Labs - intrusion tolerant systems
 
International Journal of Engineering Inventions (IJEI)
International Journal of Engineering Inventions (IJEI)International Journal of Engineering Inventions (IJEI)
International Journal of Engineering Inventions (IJEI)
 
Security assessment for financial institutions
Security assessment for financial institutionsSecurity assessment for financial institutions
Security assessment for financial institutions
 
Android Security: A Survey of Security Issues and Defenses
Android Security: A Survey of Security Issues and DefensesAndroid Security: A Survey of Security Issues and Defenses
Android Security: A Survey of Security Issues and Defenses
 
CAST Architecture Checker
CAST Architecture CheckerCAST Architecture Checker
CAST Architecture Checker
 
Ch14 resilience engineering
Ch14 resilience engineeringCh14 resilience engineering
Ch14 resilience engineering
 
Vulnerability assessment and penetration testing service.
Vulnerability assessment and penetration testing service.Vulnerability assessment and penetration testing service.
Vulnerability assessment and penetration testing service.
 
CS5032 L9 security engineering 1 2013
CS5032 L9 security engineering 1 2013CS5032 L9 security engineering 1 2013
CS5032 L9 security engineering 1 2013
 
CS5032 L10 security engineering 2 2013
CS5032 L10 security engineering 2 2013CS5032 L10 security engineering 2 2013
CS5032 L10 security engineering 2 2013
 
Engineering Software Products: 7. security and privacy
Engineering Software Products: 7. security and privacyEngineering Software Products: 7. security and privacy
Engineering Software Products: 7. security and privacy
 
Norman Patch and Remediation
Norman Patch and  RemediationNorman Patch and  Remediation
Norman Patch and Remediation
 
Security Engineering 2 (CS 5032 2012)
Security Engineering 2 (CS 5032 2012)Security Engineering 2 (CS 5032 2012)
Security Engineering 2 (CS 5032 2012)
 
GP Strategies Corporation Employs the Secunia Corporate Software Inspector (C...
GP Strategies Corporation Employs the Secunia Corporate Software Inspector (C...GP Strategies Corporation Employs the Secunia Corporate Software Inspector (C...
GP Strategies Corporation Employs the Secunia Corporate Software Inspector (C...
 
The Top 20 Cyberattacks on Industrial Control Systems
The Top 20 Cyberattacks on Industrial Control SystemsThe Top 20 Cyberattacks on Industrial Control Systems
The Top 20 Cyberattacks on Industrial Control Systems
 
CS 5032 L12 security testing and dependability cases 2013
CS 5032 L12  security testing and dependability cases 2013CS 5032 L12  security testing and dependability cases 2013
CS 5032 L12 security testing and dependability cases 2013
 
Ijsea04021003
Ijsea04021003Ijsea04021003
Ijsea04021003
 
50120140502015
5012014050201550120140502015
50120140502015
 

Semelhante a Software Integrity Controls: An Assurance-Based Approach

Successive Software Reliability Growth Model: A Modular Approach
Successive Software Reliability Growth Model: A Modular ApproachSuccessive Software Reliability Growth Model: A Modular Approach
Successive Software Reliability Growth Model: A Modular Approachajeetmnnit
 
OWASP Secure Coding Practices - Quick Reference Guide
OWASP Secure Coding Practices - Quick Reference GuideOWASP Secure Coding Practices - Quick Reference Guide
OWASP Secure Coding Practices - Quick Reference GuideLudovic Petit
 
Software Reliability and Quality Assurance Challenges in Cyber Physical Syste...
Software Reliability and Quality Assurance Challenges in Cyber Physical Syste...Software Reliability and Quality Assurance Challenges in Cyber Physical Syste...
Software Reliability and Quality Assurance Challenges in Cyber Physical Syste...CSCJournals
 
Vulnerability Management System
Vulnerability Management SystemVulnerability Management System
Vulnerability Management SystemIRJET Journal
 
Software reusabilitydevelopment through NFL approach For identifying security...
Software reusabilitydevelopment through NFL approach For identifying security...Software reusabilitydevelopment through NFL approach For identifying security...
Software reusabilitydevelopment through NFL approach For identifying security...IJECEIAES
 
AN EXTENDED SECURITY MEASUREMENT FRAMEWORK FOR OPEN-SOURCE ENTERPRISE RESOURC...
AN EXTENDED SECURITY MEASUREMENT FRAMEWORK FOR OPEN-SOURCE ENTERPRISE RESOURC...AN EXTENDED SECURITY MEASUREMENT FRAMEWORK FOR OPEN-SOURCE ENTERPRISE RESOURC...
AN EXTENDED SECURITY MEASUREMENT FRAMEWORK FOR OPEN-SOURCE ENTERPRISE RESOURC...IJNSA Journal
 
10 things to get right for successful dev secops
10 things to get right for successful dev secops10 things to get right for successful dev secops
10 things to get right for successful dev secopsMohammed Ahmed
 
Information security software security presentation.pptx
Information security software security presentation.pptxInformation security software security presentation.pptx
Information security software security presentation.pptxsalutiontechnology
 
Integrating security into Continuous Delivery
Integrating security into Continuous DeliveryIntegrating security into Continuous Delivery
Integrating security into Continuous DeliveryTom Stiehm
 
Trends in Software Composition Analysis: What to Expect in 2023
Trends in Software Composition Analysis: What to Expect in 2023Trends in Software Composition Analysis: What to Expect in 2023
Trends in Software Composition Analysis: What to Expect in 2023Dev Software
 
Software FMEA and Software FTA – An Effective Tool for Embedded Software Qual...
Software FMEA and Software FTA – An Effective Tool for Embedded Software Qual...Software FMEA and Software FTA – An Effective Tool for Embedded Software Qual...
Software FMEA and Software FTA – An Effective Tool for Embedded Software Qual...Mahindra Satyam
 
Security Validation as Code.pdf
Security Validation as Code.pdfSecurity Validation as Code.pdf
Security Validation as Code.pdfPrancer Io
 
The DevSecOps Advantage: A Comprehensive Guide
The DevSecOps Advantage: A Comprehensive Guide The DevSecOps Advantage: A Comprehensive Guide
The DevSecOps Advantage: A Comprehensive Guide Dev Software
 
Application security vision - John b
Application security vision - John bApplication security vision - John b
Application security vision - John bRoopa Nadkarni
 
Building a Product Security Practice in a DevOps World
Building a Product Security Practice in a DevOps WorldBuilding a Product Security Practice in a DevOps World
Building a Product Security Practice in a DevOps WorldArun Prabhakar
 
Application Security
Application SecurityApplication Security
Application Securityonenolesguy
 
OWASP Secure Coding Quick Reference Guide
OWASP Secure Coding Quick Reference GuideOWASP Secure Coding Quick Reference Guide
OWASP Secure Coding Quick Reference GuideAryan G
 
From Code to Customer: How to Make Software Products Secure
From Code to Customer: How to Make Software Products SecureFrom Code to Customer: How to Make Software Products Secure
From Code to Customer: How to Make Software Products SecureKaspersky
 
Secure Software Development Life Cycle
Secure Software Development Life CycleSecure Software Development Life Cycle
Secure Software Development Life CycleMaurice Dawson
 
4 approaches to integrate dev secops in development cycle
4 approaches to integrate dev secops in development cycle4 approaches to integrate dev secops in development cycle
4 approaches to integrate dev secops in development cycleEnov8
 

Semelhante a Software Integrity Controls: An Assurance-Based Approach (20)

Successive Software Reliability Growth Model: A Modular Approach
Successive Software Reliability Growth Model: A Modular ApproachSuccessive Software Reliability Growth Model: A Modular Approach
Successive Software Reliability Growth Model: A Modular Approach
 
OWASP Secure Coding Practices - Quick Reference Guide
OWASP Secure Coding Practices - Quick Reference GuideOWASP Secure Coding Practices - Quick Reference Guide
OWASP Secure Coding Practices - Quick Reference Guide
 
Software Reliability and Quality Assurance Challenges in Cyber Physical Syste...
Software Reliability and Quality Assurance Challenges in Cyber Physical Syste...Software Reliability and Quality Assurance Challenges in Cyber Physical Syste...
Software Reliability and Quality Assurance Challenges in Cyber Physical Syste...
 
Vulnerability Management System
Vulnerability Management SystemVulnerability Management System
Vulnerability Management System
 
Software reusabilitydevelopment through NFL approach For identifying security...
Software reusabilitydevelopment through NFL approach For identifying security...Software reusabilitydevelopment through NFL approach For identifying security...
Software reusabilitydevelopment through NFL approach For identifying security...
 
AN EXTENDED SECURITY MEASUREMENT FRAMEWORK FOR OPEN-SOURCE ENTERPRISE RESOURC...
AN EXTENDED SECURITY MEASUREMENT FRAMEWORK FOR OPEN-SOURCE ENTERPRISE RESOURC...AN EXTENDED SECURITY MEASUREMENT FRAMEWORK FOR OPEN-SOURCE ENTERPRISE RESOURC...
AN EXTENDED SECURITY MEASUREMENT FRAMEWORK FOR OPEN-SOURCE ENTERPRISE RESOURC...
 
10 things to get right for successful dev secops
10 things to get right for successful dev secops10 things to get right for successful dev secops
10 things to get right for successful dev secops
 
Information security software security presentation.pptx
Information security software security presentation.pptxInformation security software security presentation.pptx
Information security software security presentation.pptx
 
Integrating security into Continuous Delivery
Integrating security into Continuous DeliveryIntegrating security into Continuous Delivery
Integrating security into Continuous Delivery
 
Trends in Software Composition Analysis: What to Expect in 2023
Trends in Software Composition Analysis: What to Expect in 2023Trends in Software Composition Analysis: What to Expect in 2023
Trends in Software Composition Analysis: What to Expect in 2023
 
Software FMEA and Software FTA – An Effective Tool for Embedded Software Qual...
Software FMEA and Software FTA – An Effective Tool for Embedded Software Qual...Software FMEA and Software FTA – An Effective Tool for Embedded Software Qual...
Software FMEA and Software FTA – An Effective Tool for Embedded Software Qual...
 
Security Validation as Code.pdf
Security Validation as Code.pdfSecurity Validation as Code.pdf
Security Validation as Code.pdf
 
The DevSecOps Advantage: A Comprehensive Guide
The DevSecOps Advantage: A Comprehensive Guide The DevSecOps Advantage: A Comprehensive Guide
The DevSecOps Advantage: A Comprehensive Guide
 
Application security vision - John b
Application security vision - John bApplication security vision - John b
Application security vision - John b
 
Building a Product Security Practice in a DevOps World
Building a Product Security Practice in a DevOps WorldBuilding a Product Security Practice in a DevOps World
Building a Product Security Practice in a DevOps World
 
Application Security
Application SecurityApplication Security
Application Security
 
OWASP Secure Coding Quick Reference Guide
OWASP Secure Coding Quick Reference GuideOWASP Secure Coding Quick Reference Guide
OWASP Secure Coding Quick Reference Guide
 
From Code to Customer: How to Make Software Products Secure
From Code to Customer: How to Make Software Products SecureFrom Code to Customer: How to Make Software Products Secure
From Code to Customer: How to Make Software Products Secure
 
Secure Software Development Life Cycle
Secure Software Development Life CycleSecure Software Development Life Cycle
Secure Software Development Life Cycle
 
4 approaches to integrate dev secops in development cycle
4 approaches to integrate dev secops in development cycle4 approaches to integrate dev secops in development cycle
4 approaches to integrate dev secops in development cycle
 

Último

Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 

Último (20)

Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 

Software Integrity Controls: An Assurance-Based Approach

  • 1. Software Integrity Controls An Assurance-Based Approach to Minimizing Risks in the Software Supply Chain June 14, 2010 Editor Contributors Stacy Simpson, SAFECode Diego Baldini, Nokia Gunter Bitz, SAP AG David Dillard, Symantec Corporation Chris Fagan, Microsoft Corporation Brad Minnis, Juniper Networks, Inc. Dan Reddy, EMC Corporation
  • 2. Table of Contents Introduction 1 The Risks to Software Integrity in a Supply Chain 2 The IT System Supply Chain 3 Software Integrity Controls 4 Vendor Sourcing Integrity Controls 5 Vendor Software Development Integrity Controls 10 Vendor Software Delivery Integrity Controls 16 Future Directions 21 Conclusion 23 Acknowledgments 23 ii
  • 3. Introduction Software assurance is most commonly dis- Security cussed in the context of preventing software vulnerabilities that arise from unintended coding errors and other quality issues ranging ASSURANCE from incomplete requirements to poor imple- Authenticity Integrity mentation. The reduction of vulnerabilities in code is achieved through the application of secure development practices to the software development lifecycle, sometimes Three Pillars of Software Assurance referred to as software security engineering. requires software vendors1 to apply practices However, as a more distributed approach and controls to meet three key goals: to commercial software development has evolved, questions have been raised about Security: Security threats to the soft- what additional product security and com- ware are anticipated and addressed during mercial risks are introduced in the global the software’s design, development and software supply chain. One emerging area testing. This requires a focus on security- of concern is software integrity, an example relevant code quality aspects (e.g., “free of which is the risk that malicious code could from buffer overflows”) and functional be either intentionally inserted by a threat requirements (e.g., “passport numbers agent or unintentionally inserted due to poor must be encrypted in the database”). process controls into a software product as Integrity: Security threats to the software it moves through the global supply chain. are addressed in the processes used to source Analyzing this risk in the context of software software components, create software com- engineering requires an understanding not ponents and deliver software to customers. only of software security engineering, but also These processes contain controls to enhance the other essential pillars of software assur- confidence that the software was not modi- ance—software integrity and authenticity. fied without the consent of the supplier. SAFECode defines software assurance as “con- fidence that software, hardware and services 1. This paper uses both the terms “supplier” and “vendor” to mean an entity that produces software. These terms may be used interchangeably are free from intentional and unintentional in the real world, and the “vendor” practices listed in this document apply to all software “suppliers.” However, in order to be able to describe the relationship between software suppliers without confusion, we are using vulnerabilities and that the software func- the term “vendor” throughout the document to identify a specific entity in a supply chain. Thus, in this context, “supplier” refers to an entity that tions as intended.” Achieving this confidence provides software components to the “vendor.” 1
  • 4. Authenticity: The software is not To help others in the industry counterfeit and the software supplier initiate or improve their provides customers ways to differenti- own secure development ate genuine from counterfeit software. Security programs, SAFECode This paper is focused on examining the soft- has published “Fun- ASSURANCE ware integrity element of software assurance damental Practices and provides insight into the controls that Authenticity Integrity for Secure Software SAFECode members have identified as effec- Development: A tive for minimizing the risk that intentional Guide to the Most and unintentional vulnerabilities could be Effective Secure inserted into the software supply chain. Development Practices in Use Today.” Based on an analysis of the individual software assurance This paper has been developed efforts of SAFECode members, the paper in conjunction with SAFECode’s outlines a core set of secure develop- previously published “Soft- ment practices that can be applied ware Supply Chain Integrity across diverse development environ- Framework,” which outlines ments to improve software security. a taxonomy for the software The Software Supply Chain Integrity Framework Defining Risks and Responsibilities for Securing Software in the Global Supply Chain supply chain and a framework July 21, 2009 The brief and highly actionable paper Editor Contributors Stacy Simpson, SAFECode Dan Reddy, EMC Brad Minnis, Juniper Networks Chris Fagan, Microsoft Corp. for analyzing and establishing Cheri McGuire, Microsoft Corp. Paul Nicholas, Microsoft Corp. Diego Baldini, Nokia describes each identified security Janne Uusilehto, Nokia Gunter Bitz, SAP Yuecel Karabulut, SAP Gary Phillips, Symantec software integrity controls. practice across the software develop- ment lifecycle—Requirements, Design, Programming, Testing, Code Handling The Risks to Software Integrity and Documentation—and offers imple- mentation advice based on the real-world in a Supply Chain experiences of SAFECode members. The risk of an attacker using the supply These practices are designed to be used chain as an attack vector deserves some in conjunction with the software integ- further examination. Evidence suggests rity practices outlined in this paper. that attackers focus their efforts on social engineering or finding and exploiting exist- To obtain a free copy of the paper, ing vulnerabilities in the code, which are visit www.safecode.org. usually the result of unintentional coding errors. Thus, experts have concluded that 2
  • 5. a supply chain attack is not the most likely integrity controls to achieve these objectives attack vector. Notably, the experiences of by addressing the security of the processes leading reputable software companies who used to source, develop and deliver software. work with their suppliers support this finding. The IT System Supply Chain Further, there is growing recognition that 1) there is no one way to defend against The IT system supply chain is a glob- every potential vector a motivated attacker ally distributed and dynamic collection of may seek to exploit; 2) focusing on the people, processes and technology. Software place where software is developed is less is one component of a larger IT solution useful for improving security than focus- and each software vendor is only one part ing on the process by which software is of a complex chain of suppliers, systems developed and tested; and 3) there are integrators and ultimate end users. As such, circumstances when the insertion of malicious each vendor is only one link of a larger, code would be almost impossible to detect. more complex IT system supply chain. These challenges highlight that a risk from As a vendor’s customer may not be the the supply chain could indeed undermine ultimate end user in the IT system supply a product’s intended function or damage chain, it is important to analyze where along customer trust. Accordingly, major software the supply chain software security, integ- suppliers take preventative action against any rity and authenticity practices and controls unauthorized changes in the form of software can be applied effectively and efficiently. integrity controls. These controls preserve the Each supplier along the IT system supply chain quality of securely developed code, prevent has both an opportunity and a responsibility the inadvertent introduction of vulnerabilities to apply software assurance practices and and help to prevent the intentional insertion controls in order to preserve software integrity, of malicious code. Vendors leverage these Security Security Security Security ASSURANCE ASSURANCE ASSURANCE ASSURANCE Customer Authenticity Integrity Authenticity Integrity Authenticity Integrity Authenticity Integrity Tier n Supplier Tier 2 Supplier Tier 1 Supplier Integrator Software Assurance Is a Shared Responsibility In the IT System Supply Chain 3
  • 6. security and authenticity within the portion of It is within these three processes that effective the software supply chain it controls. Naturally, software security, integrity and authentic- a vendor has the most direct control over its ity practices and controls must be applied in own internal practices. A vendor’s reach into order to improve the assurance of delivered its own suppliers for their software assurance software. This paper will focus specifically practices and controls may not be as direct. on the software integrity controls that ven- dors apply to each of these processes. Within their respective links of the IT systems supply chain, all software vendors control and It should be noted that SAFECode member manage three key lifecycle processes where companies, like industry companies at large, they can effectively and efficiently implement are still sharing information and examining software assurance practices and controls: practical and meaningful means of measur- 1. Software Sourcing: Vendors select their ing and verifying software assurance in the marketplace. As that work matures, we can expect more consistency in how informa- tion about internal processes is asserted Software Software Development Software and evaluated between trading partners. Sourcing and Testing Delivery Thus, while this paper focuses on the prac- • Procurement • Environment • Distribution • Personnel • Sustainment tices and controls involved along the supply • Software Development chain, it was developed with the recognition that more work in this area needs to be done, and it does not attempt to be highly component and services suppliers, estab- prescriptive with respect to measurement. lish the specifications for a supplier’s deliverables and have activities to “on- Software Integrity Controls board” software and hardware components The following sections will detail the soft- and services received from suppliers. ware integrity controls that SAFECode has 2. Software Development: Vendors identified as effective for minimizing the build, test, assemble, integrate and risk that vulnerabilities could be intention- package components for delivery. ally or unintentionally inserted into the software supply chain. This analysis is based 3. Software Delivery: Vendors deliver on the real-world experiences of SAFECode the software product to customers members. These integrity controls aim to and provide ongoing sustainment. preserve the base level of security in a product achieved through each supplier’s 4
  • 7. secure development practices by helping to SAFECode has organized the integrity prevent the introduction of vulnerabilities as controls listed in the following sections a product moves along the supply chain. by the three key lifecycle processes each software vendor has control over—sup- The controls identified in the following plier sourcing, product development, and sections are based on the seven basic product delivery and sustainment. principles for software integrity outlined in SAFECode’s previously published “Soft- Vendor Sourcing Integrity Controls ware Supply Chain Integrity Framework:” • Chain of Custody • Least Privilege Access Software Software Development Software Sourcing and Testing Delivery • Separation of Duties • Procurement • Environment • Distribution • Personnel • Sustainment • Tamper Resistance and Evidence • Software Development • Persistent Protection • Compliance Management During the sourcing process vendors • Code Testing and Verification establish component specifications, select These principles support the development suppliers of components and services of the software integrity controls outlined and receive supplied components. in this paper and identified by SAFECode The selection and application of software as practical, repeatable and auditable. integrity controls for use during sourcing is The software integrity controls described in a risk-based decision and largely influenced the following sections do not represent a by the nature of the relationship between a minimum control list, but rather are designed vendor and its software component supplier. to be integrated with other security practices There are three types of vendor-supplier rela- and tailored to meet a product’s specific risk tionships: First, “arms length” relationships profile. Furthermore, they are to be integrated where vendor A licenses a component from into the vendor’s software engineering process supplier B. Second, work-for-hire relationships and performed in conjunction with corporate where vendor A engages supplier B to provide security functions. These may include physical a software component. Third, work-for-hire security, network security, IT infrastructure relationships where vendor A engages supplier security and business continuity management. B to provide a staff augmentation service. 5
  • 8. Relationships between a vendor and a sup- The next section describes integrity plier based on licensing finished components controls that can be used in a vendor’s like databases, enterprise resource manage- sourcing process. ment systems, or operating systems are examples of arms length relationships. It Vendor Contractual Integrity Controls is incumbent on suppliers that license their A vendor’s engagement with a supplier software—typically suppliers of commercial- should be governed by a written agree- off-the-shelf (COTS) products or Open ment, for example a license or a contract. Source Software (OSS) components— 1) to The written agreement must explicitly state assure that security threats to the product the vendor’s and supplier’s expectations, or component are anticipated and addressed as well as the consequences of any non- during its design, development and test- compliance with the terms of the agreement. ing; 2) to assure that the processes used to source and create components, and to Defined Expectations deliver the product to their customers are • Clear language regarding the requirements secure; and 3) their suppliers provide ways to be met by the code and the develop- for their customers to differentiate genuine ment environment should be set forth products and components from counterfeit. during the contracting process. Among other things, this should include commit- In relationships based on work-for-hire, the ments to provide security testing, code software delivered by a supplier to a vendor fixes and warranties about the software is owned by the vendor. The integrity controls development and delivery process used. used by the supplier may be the supplier’s, Overall this helps to set the expectation the vendor’s or any combination thereof. of delivering a product with integrity. Typically, in staff augmentation engagements the vendor’s and supplier’s staff work collab- Ownership and Responsibilities oratively on projects that share code libraries, • Intellectual property ownership and tools and resources, and all project members responsibilities for protecting the utilize the same software integrity controls. code and development environment should be clearly articulated. In each of the above relationships, the ven- dor has different degrees of control over Vulnerability Response the integrity practices and controls used • In today’s world, vendors must push for by its supplier. It is this level of control a more formal understanding of how well that guides the selection of the software their suppliers are equipped with the capa- integrity practices and controls neces- bility to collect input on vulnerabilities from sary to minimize software integrity risks. 6
  • 9. researchers, customers or sources and turn around a meaningful impact analysis The contracts between companies regard- and appropriate remedies in the short ing software have typically been focused timeframes involved. The fact is that the on expectations regarding functional handling of such vulnerabilities will likely performance, defect handling, licensing become a joint responsibility in the face of issues and other challenges like end-of- downstream visibility to customers. No one life support. As concerns about protecting can afford to be surprised about a suppli- software’s integrity have escalated along er’s potential immaturity in handling these with reducing the risk of counterfeit com- challenges in the middle of a situation. ponents and products, contracts evolved Suppliers provide common terminology further to address this in language. for these discussions by using now-default New language that specifically addresses references to well-known specifications the issue of integrity and authentic- like Common Vulnerabilities and Exposures ity of COTS product components from (CVE) and Common Vulnerability Scoring external suppliers that will be included System (the CVSS). Each party should in the ultimate product can also be identify contact personnel and review tim- explored. The language would ask sup- ing and escalation paths as appropriate to pliers to self-certify that the supplier’s be prepared to provide a prompt response. software aligns with security standards Security Training and that the supplier’s practices align • Another important area for discussion with best practices of industry code between trading partners is assessing a security and integrity organizations supplier’s capability to effectively train like SAFECode or its equivalent. its developers on secure development practices. While it is not necessary to be highly prescriptive about a particu- lar curriculum or certification regime, a company cannot credibly assert that it has a secure development framework or that it follows integrity practices if there is no evidence of any relevant training. 7
  • 10. Open Source Software As a result, the process used to evaluate and select open source software components The use of open source software pres- deserves consideration. Software ven- ents alternative challenges in the dors analyze the reputation and release context of supply chain integrity. engineering practices of the community While in some cases a commercial entity may supporting an open source component to package and support open source software, help assess its competence and reliability other open source software is managed by a in dealing with security matters. While community with which a direct relationship the vetting practices will vary depend- cannot be established. In the latter case, the ing on the specific product needs and risk trust and accountability between a vendor profile, means to validate open source pack- and the community supplying software is ages and their distribution sites need to different. Notably, the contractual terms be adopted and developed, respectively. that vendors establish with commercial sup- A viable integrity control for community pliers do not apply to community-supplied open source components is for a vendor to components as there is no direct supplier get the source, review it and build it. Vali- with whom to establish an agreement. Exist- dating the quality of open source software ing license terms governing the use of open needs to happen after acquisition of the source software are focused on ensuring code. Vendors may choose to include an that combinations of the software with other open source component or leave it up to the software are consistent with the community’s acquirer to obtain and evaluate the compo- expectations. Those license terms may not nent. For vendor-supported OSS, an acquirer provide sufficient support for efforts to protect can transfer risk to the vendor through software integrity. Other controls similar to appropriate language in their agreement. those present in commercial vendor-supplier Otherwise in either case, procedures must be agreements may need to be implemented for implemented for the inspection of software community-supplied software. For instance, components for the presence of vulnerabilities as vulnerabilities are visible to anyone and and for the assessment of the trustworthi- because their exploitability can be readily ness of the component’s distribution site. assessed, open source communities may call for more active vulnerability management In general, a vendor must under- and incident handling, and users in the field stand how each of its suppliers may request quicker software updates. handles the open source components that are shipped with its own code. 8
  • 11. Vendor Technical Integrity automatically at contract expiration Controls for Suppliers or at another fixed period. A robust procedure is required so that when a Secure Transfer supplier’s employee leaves the sup- • Delivered code should be transferred plier company, the former employee’s securely, using authenticated endpoints credentials immediately expire. A and encrypted sessions. Content being combination of automatic disabling and delivered should be encrypted for transit. manual notification is best to ensure This requires that suppliers use the best completeness of privilege removal. available technology, mechanisms and procedures when exchanging deliverables. Malware Scanning A secure end-to-end automated process • Supplier content to be transmitted to can often strengthen the protection that the vendor should be scanned for mal- could be resident in a manual procedure. ware using the most recent malware signature files and more than one com- Sharing of System and Network Resources mercial scanning engine. While today’s • The digital identities a vendor issues to malware scanning tools are generally not suppliers to enable access to the ven- designed to identify malicious code that is dor’s network and resources should be perfectly formed, this standard integrity established with strong controls enforced control should be performed at points of to limit access to only those resources exchange between parties. Depending needed to perform the supplier’s role. on the relationship and the practicality of –– Each resource that is shared should doing so, suppliers should inform recipi- have its own independent assess- ents of the code as to what scanning has ment as to what authentication and taken place up to the point of transfer. authorization is required. For example, staff access to a vendor’s development Secure Storage project requires additional authoriza- • Source code for software components tion over and above the authorization and products should be stored securely a staff member receives in order to with need-to-know access controls access a vendor’s corporate network. applied. Code packages that are trans- ferred should be moved to a secure –– A supplier’s access to development asset repository as soon as practical so assets should expire as soon as it leaves that they can be managed more pre- the project. A fail-safe check should cisely with respect to access privileges. also be in place to end all privileges 9
  • 12. Code Exchange Within a software vendor’s organiza- • Processes using digitally signed pack- tion, additional software integrity controls ages and verifiable checksums or hashes may exist within the context of other IT should be in place to ensure that received functions such as backup and recovery, code is complete and authentic. Verifying business continuity, physical and network the digital signatures with validated time security, and configuration management stamps of the software packages proves systems. The following are examples of authenticity and establishes that the controls employed by SAFECode members: download or transfer process delivered an People Security intact version of the intended package. • It should be noted that while criminal Vendor Software Development background checks are often the focus Integrity Controls of public debate, in practice SAFECode members have found that they are not as effective as other controls and processes. Focusing on organizational and process Software Software Development Software Sourcing and Testing Delivery controls in conjunction with technology • Procurement • Environment • Distribution • Personnel • Sustainment to minimize risks coming from within the • Software Development company is more efficient and effective. For that reason, many of the following controls to minimize the risk from mali- cious insiders are based on practices In software development and test- such as the segregation of duties and the ing, software vendors build, assemble, use of controlled automated processes. integrate and test software components • It is important that roles, responsibili- to finalize them for delivery. ties and access rights are clearly defined Software vendors have a great deal of in development processes to achieve a experience implementing powerful man- defense-in-depth approach. Development agement, policy and technical controls to management must be knowledgeable as achieve sound engineering practices and to who has what access. A team of people intellectual property protection. The secure with well-planned responsibilities must development practices that focus primar- maintain appropriate operations for guard- ily on achieving the “security” circle in the ing code assets while meeting the demands software assurance triad described above of the global engineering environment. become the baseline for internal development. 10
  • 13. • In addition to the expected training in periodically re-assessed using a risk-based secure development practices, there process. Physical security controls should should be training in the secure techni- be strong enough to ensure that devel- cal controls used by other integrity opment assets cannot be accessed by practices. Does each organization know outsiders. Physical protection of source how to verify a digital signature with code should go beyond a single layer of a validated timestamp? Does each building security and include additional organization understand which hash algo- distinct physical access controls that limit rithms are best used in a checksum? access to those with a “need to know.” For example, additional badge restricted Physical Security access beyond the normal building access • Building security and physical access should be required for administrators control should be applied to develop- to access code assets protected in a ment locations and code repositories and repository. Physical assets and credentials Integrity Controls vs. Development Practices While SAFECode’s Development Practices by another. Without proper integrity controls, paper describes how to identify and avoid this change might go undetected and could typical coding errors such as buffer over- cause problems elsewhere because nobody flows, SQL injection, cross site scripting was expecting the function to have changed. and more, this current work deals with the A combination of good access controls, question of preserving the integrity of an testing and peer review of changes could IT product. The integrity practices serve minimize this risk. Thus integrity controls as controls to prevent unauthorized or can aim at preserving the well-constructed inadvertent changes to the source code. code for the approved specification while Without proper controls, vulnerabilities preventing careless or inadvertent changes. can be introduced by ”good faith” develop- Integrity controls throughout the supply ers. For example, while fixing a problem in chain will also reduce the risk of a malicious their part of the code with dependencies attacker being able to change code inten- elsewhere, a developer might inadvertently tionally or perhaps detect a virus before it change code while merging it with a related spreads into the production environment. function (e.g., an interface) primarily owned 11
  • 14. (e.g., keys, badges, security tokens, the minimum code necessary to carry smartcards, laptops, etc.) loaned to an out their responsibility. Access to code individual should be retrieved and veri- stored on local machines should also be fied against a list of expected assets as controlled based on a “need-to-know” and part of a managed termination process. “least-privilege” basis to the extent possible given the goals of the project at hand. Network Security • Network security standards should be Code Repository Security established and applied using a risk-based • All code-related assets should be process for the code-related assets. For housed in source code repositories example, security protections could include (also known as configuration manage- intrusion detection or other defensive ment systems or source code control measures on source code repositories systems), to enable additional atten- with alerting to appropriate event sys- tion to security and access control. tems that would alarm during an attack. • The servers that host the source code Session traffic involving source code repositories should be housed securely. should be encrypted to acceptable com- In most major software vendors, these pany or applicable industry standards. machines are located in data centers with • Access to developer workstations should appropriate physical security, hardened be controlled. For example, workstations server security and business disaster can be tied to corporate authentication to recovery controls. Be mindful that source ensure that terminated workers are imme- code is sometimes copied and kept in diately denied further access. Accounts separate databases after being run through of departing employees and other autho- some static code analysis tools. The confi- rized workers should be properly disabled dentiality of code files should be protected immediately to allow appropriate review of in all locations. This avoids unauthorized their work. It is important to disable, and people from seeing the code structure not delete, accounts so that a full forensic and test results. Combined access to such analysis is still possible after termination. information might enable them to better • Workstation and virtual machine security target particular code files in a later attack. should be secured to standards to mini- • The “out of the box” defaults of any such mize the opportunity for malicious code to system must be examined and configured be introduced during the coding process. to be secure by default, ideally accord- Developers should have write access to ing to a well-understood standard for a 12
  • 15. system holding an acquirer’s precious distinct identities to provide accountability. assets such as its customers’ personal Administrative practices should observe identifiable information. One objective the separation of duties principle, and would be for the system to operate without elevated permissions should be subject the risk of allowing exploits through eas- to management approval. For instance, ily inherited system-level root privileges. project engineering administrators require Many detailed settings such as authen- a higher level of access to code assets tication handling, session variables and to perform their duties than network external interfaces must be addressed to security administrators. Other person- deliver secure-by-default deployment. A nel such as IT or Security Operations software’s default state should promote may have responsibility for base-level security. For example, software should configurations and the overall platform run with the least necessary privileges profile including security patch levels, etc. and services that are not widely needed • Within the repositories, access to should be disabled by default or only branches, work areas or code sets accessible to a small population of users. must be understood by development • Once enabled as secure by default, that management, and access privileges configuration status itself must be pro- should be granted using the principles tected. As more systems like repositories of least privilege and need to know. become compliant with specifications like • Code segments can be tied to spe- the emerging Security Content Automa- cific requirements in a requirements tion Protocol (SCAP) specifications, the management, enhancement or bug configuration state of the repository and tracking system that allows for cross subsequent changes can be expressed mapping of functionality to code. and consumed in machine-readable • Change management practices with review form, offering greater initial and ongo- and approval paths should be formalized ing protection supported by automation. and well understood for code logic and • Ideally, access to source code repositories asset changes, repository application and should be controlled through the use of underlying system configuration changes. corporate identity systems, with strict • Change logs for all modifications to a control maintained over access to any product’s code assets should be main- system account. Engineering administra- tained and preserved for future analysis. tors responsible for managing application Logs should provide file names, account repositories should be named users with name of the person checking in the file, 13
  • 16. A company can have source code policy who created and ran the scripted environ- and standards that product engineer- ment that produced a particular build. In ing teams are expected to meet in the addition, build scripts need protection as context of protecting source code and critical assets. This internal standard also product artifacts throughout the product ties into corporate security polices and con- development cycle. For example, these trols such as the credentialing requirements could include detailed corporate expecta- for personnel and handling of digital identi- tions regarding the protection of source ties, a key bridge to best practices around code repositories and build environments. the protection of source code repositories. Some might be simple requirements, like An active, ongoing relationship with engi- “Source Code Systems should leverage neering teams places the internal security corporate identity stores for authentication,” team in the best position to effect ongoing and perhaps obviously that “no anonymous improvements to the protection of code access can be allowed to a repository.” throughout its lifecycle. The requirements Others are more detailed, such as which should not distract by simply attempt- particular systems for handling internal ing to force everyone to use an identical request and approval routing for source repository, but to set the standard for how code repository privileges must be used a repository should be set up and operated by each engineering team. Setting up the securely. The approach taken in working linkage between source code repositories with engineering teams is to assess the and the set of build tools is challenging gaps that exist between where a group is since automation and accountability must today on each item in the standard and to be blended. A practical approach is needed build an improvement plan for closing the such that the sets of tools can be consistent gaps as part of a risk-based approach. and automated, while still making it known 14
  • 17. check-in time stamp, and the line changes and build tools should be traceable to made. They should be kept for a suf- individuals with the authority to execute ficient time in a protected environment the automated scripts or procedures. to assist with any forensics or ongo- ing security improvement initiatives. Peer Reviews and Security Testing • A manifest of all code assets contributing One security engineering practice that all to a product, including those developed SAFECode members use in conjunction with in-house and by third parties, should be their software integrity controls is security maintained and managed, similar to a Bill testing. Source code and binary analysis of Materials in the manufacturing domain. tools, and sometimes manual code review, are performed on code to identify common • Versions of software assets with their coding patterns that are known to have known security characteristics should been attacked previously. Testing tech- be tracked in the repository. Change or niques are continually upgraded. Security configuration management should be engineering practices complement software tracked as well to find the balance between integrity controls because security engi- getting the latest patches and updates neering practices represent an ever-rising and having stable, predictable code. threshold against software supply chain vulnerabilities. The testing techniques below Build Environment Security are primarily software security engineering • Build environments should be as automated practices, not software integrity controls. as possible. This minimizes the opportunity for human intervention in the regular build Peer Review process. However, the “owners” of the build • Peer reviews and the manual inspection environment should be few. The traceability of code are not often popular given issues of actions on build scripts and of access of scalability. Automated tools can enable to code files during build should be high. some scalability by collecting and process- • Build automation scripts should be treated ing more artifacts in preparation for peers in a manner similar to other source performing a focused review. Also, when code assets and checked in to the code teams are assigned to work together on repository. This means that changes to code files, an important dynamic is present the automated build process can be attrib- whereby reviewers can more readily iden- uted to the person checking in the file. tify code that does not belong within a code • Service accounts that run in an automated set. Focusing peer reviewers on changed fashion between source code repositories code that is scanned again and awaiting 15
  • 18. approval during a two-stage check-in to While security testing is a fundamental part the repository can be an effective approach. of supply chain security, software vendors Another approach is to couple peer reviews recognize that testing alone is not likely to in relation to exercised code paths in the catch malicious code that is intentionally context of overall code coverage. In gen- inserted, perfectly crafted and disguised to eral, questions about the structure and appear as legitimate. Due to these limitations, purpose of sections of code that arise dur- software testing must be augmented with ing peer review are more likely to uncover the other listed software integrity practices intentional malicious code or inadvertent that control access to development assets to code errors than automated testing alone. more effectively address potential software security risks in this stage of the supply chain. Testing for Secure Code • The size of the code base for many soft- Vendor Software Delivery ware projects today requires automated Integrity Controls code review and testing tools. Additional information on secure code testing can be found in SAFECode’s “Fundamental Software Software Development Software Sourcing and Testing Delivery Practices for Secure Software Develop- • Procurement • Environment • Distribution ment” paper. Building these tests to • Personnel • Sustainment • Software Development run in a repeatable automated manner increases the assurance that they will be performed and analyzed often. This stage of the software supply chain • The list below identifies the most com- covers new product delivery and the mon categories of testing tools used: delivery of maintenance patches. –– Static code analysis tools (source code) It is important to note that while this may –– Network and web application vulner- be the last stage of the supply chain directly ability scanners (dynamic testing) under a software vendor’s control, it is not –– Binary code analysis tools always the final step in the supply chain from –– Malware detection tools (dis- the end user’s point of view, as software cover backdoors, etc.) vendors often do not provide their products directly to end-user organizations. In many –– Security compliance validation tools cases, the software vendor’s products are (hardening, data protection) passed to system integrators, resellers and –– Code coverage tools authorized service providers before reaching 16
  • 19. the end-user. Thus, as software components Delivery leave the supplier, software integrity and • A vendor’s process for delivering authenticity become a shared responsibil- products both online and through dis- ity between supplier and customer. tributions using physical and electronic media should be secured. Informa- Publishing and Dissemination tion on code signing and checksums The controls for product delivery are should be available to customers. similar to those for the receipt of code components from software suppliers to the Transfer software vendor as described in the Sourc- • Transfer products in such a way that the ing section of this paper. However, additional receiver can confirm that the product security needs arise once the software is coming from the software vendor. product is complete. These include state- of-the-art anti-malware checks and the Authenticity Controls availability of a mechanism that provides For all the work that software vendors do a way for customers to assure themselves in ensuring they produce a quality product of the integrity of the delivered package. free from vulnerabilities, there remains residual supply chain risk after the product Malware Scanning has been released. Millions of customers • Products should be scanned for malware every year unsuspectingly acquire coun- using the most recent malware signature terfeit software. According to the Business files and more than one commercial scan- Software Alliance, over one in five software ning engine. As mentioned earlier and packages are counterfeit or pirated.2 depending on the nature of the relationship, it may be appropriate to communicate what While not a central focus of this scanning was done prior to the handover. paper, authenticity or anti- counterfeiting controls are Security Code Signing one of the three essential • The software vendor’s product should be elements of software ASSURANCE strongly digitally marked with the software assurance and thus Authenticity Integrity vendor’s identity in a way that can’t be are tightly integrated altered, yet may be verified by customers. with software integrity controls, especially as 2. Business Software Alliance, “Sixth Annual BSA-IDC Global Software Piracy Study,” May 12, 2009. 17
  • 20. software is prepared for delivery. Thus, it Vendors must find the right balance and is important to highlight the key authentic- offer proof of authenticity for the many ity controls used by software vendors in the predictable aspects of the software. software delivery link of the supply chain. Notification Technology Counterfeit products often look authentic, • With a variety of distribution channels but they pose serious risks to customers. for software, including online distribution, Counterfeit software cannot be assured to customers often can’t tell that they have function as intended and often contains a counterfeit product until it is installed malicious code aimed at data destruction or on their computer. Vendors can leverage theft. Protecting customers and businesses technology to detect certain aspects of from the risks of counterfeit software requires the product’s integrity and notify the user both engineering efforts by software vendors if the software is deemed to be counter- and awareness and recognition by acquir- feit. Sometimes introduced by vendors to ers and end users. The risk of counterfeit prevent license piracy, this technology has software can be greatly reduced through evolved into an effective integrity control. purchase from only authorized resellers, careful examination of product packaging and Authentic Verification during media, and technology to notify users when Program Execution they may be victims of counterfeit software. • In practice, the integrity of an applica- tion can be verified when the application Cryptographic Hashed or Digitally is installed on a computer. Additionally, Signed Components each time an application runs on a user’s • As mentioned above, digitally signed computer, similar technology can verify components or checksum hashes are an the integrity of the files that make up the essential authenticity control to prove application. The hardware and software that components are genuine. With any technology used to verify the claims system there are characteristics of the applications and files make about their software being shipped that are stable, validity and integrity is well understood, while there may be other items that vary efficient and broadly available. Software with particular configuration options vendors who already make use of this as installed. Today the “signing” of an technology have invested in hardware, application provides a capability to detect software, people and process, effec- that an application has not been tam- tively “code signing” their applications. pered with since the time it was signed. 18
  • 21. • A vendor with the right technology configuration. Secure configurations for the tools can effectively pre-authorize the supplied software should be delivered to program execution of only a specific the customer along with an outline of the set of applications from a “good” list, risk implications of the configuration state effectively blocking any newly spawned or choices detailed. The future of broader code that may not be legitimate. adoption of machine readable SCAP compliant configurations will strengthen Product Deployment and this area’s contribution to integrity. Sustainment in the Ecosystem The software lifecycle extends beyond delivery Custom Code Extensions of the initial software vendor’s product and • Software designed to be integrated and into the product’s sustainment or mainte- extended to deliver additional functionality nance phase. As a result, patches and hot creates another link in the supply chain. fixes should be subject to the same software Assume that the original software and its integrity controls as the original code. interfaces were secure, fully functional and delivered with integrity and authentic- It is important that authorized service person- ity. Software components that are added nel with ongoing access to genuine parts and later to extend the functions of an IT proper disposal procedures are involved in System must be also be treated with the the sustainment process. Authorized access same care as originally applied by the should convey that the person actively works internal development and testing of its for the company providing the service and supplier. Integrators must follow secure that service personnel don’t have more development practices as they extend privileges on the installed environment than code functionality through the provided those needed to complete the task at hand. secure interfaces. In addition, to continue All service transactions should provide evi- integrity, their component assets should dence that legitimate service personnel did be cataloged in a repository, access to the work, and evidence should be available code restricted based on “need-to-know” for audit and protected against tampering. and peer reviews implemented. The chain of custody must be preserved with Secure Configurations these controls as the sets of products • Whenever possible, software vendors are assembled for the solution to be should ship products with a secure delivered to the ultimate end customer. configuration being set as the default Resellers or systems integrators often manage this link in the supply chain. 19
  • 22. Table 1: Summary of SAFECode Software Supply Chain Integrity Controls Processes Controls • Defined expectations Vendor contractual integrity • Ownership and responsibilities controls • Vulnerability response • Security training Software sourcing • Secure transfer • Sharing of system and network resources Vendor technical integrity • Malware scanning controls for suppliers • Secure storage • Code exchange • People security • Physical security Technical controls • Network security Software development • Code repository security and testing • Build environment security • Peer review Security testing controls • Testing for secure code • Malware scanning Publishing and • Code signing dissemination controls • Delivery • Transfer • Cryptographic hashed or digitally signed Software delivery components and sustainment Authenticity controls • Notification technology • Authentic verification during program execution • Patching Product deployment and • Secure configurations sustainment controls • Custom code extension 20
  • 23. Future Directions research and development. Additional behavioral analysis of a piece of code might As software integrity remains an emerg- be a promising new approach similar to ing discipline, there are a number of what is already implemented in some of areas that SAFECode believes deserve today’s anti-virus detection software. further study and industry collaboration. These include, but are not limited to: Authenticity Ease of Use • While cryptography can be applied with Supplier Management and Communication checksums, digital certificates and signa- along the Supply Chain tures and validated timestamps, the user • The work that the software industry has experience to verify legitimate software undertaken to identify and implement can be confusing and daunting. Users need secure coding practices, including the far easier means of validating authenticity findings presented in SAFECode’s “Fun- so that they are not primarily focused on damental Practices for Secure Software clearing their screens of any distractions Development” paper, takes on new to get on with the tasks at hand. Since implications when examined along the social engineering attacks sometimes count supply chain from one supplier to another. on users dismissing warnings or errors, These security practices together with ongoing work in this area is important. normal quality control concerns could be reexamined in the context of the Authentic Software at Runtime exchange of software and related infor- • How can end-users assure themselves that mation from one supplier to another. all software running on their machines is authentic and trustworthy? One promising Research on Software Testing technology advancement is the Trusted • As discussed previously, automated test- Platform Module (TPM), a hardware compo- ing currently is limited in its ability to nent that can be integrated with a signed detect malicious code that is intentionally operating system, signed applications and inserted and well disguised as legitimate. signed add-ins to provide an end user the Essentially, today automated testing can assurance at run time that all components only detect malware that use coding are authentic. However, for TPMs to be patterns that have been seen previously. truly effective, all software must be signed. Increasing the capability of software test- Some vendors, both community (open ing of source and binary code to identify source) and proprietary, have taken steps vulnerabilities is an area worthy of future to enable this technology. However, an 21
  • 24. industry-wide effort is necessary to achieve Broader Collaboration with Supply this vision as the computers used by end Chain Management Community users contain an eclectic collection of • While the well-established and mature software sourced from a vast ecosystem of supply chain management community vendors, suppliers and communities. The is becoming aware of these emerging Trusted Computing Group (www.trusted- threats to the IT system supply chain, computinggroup.org) is an example of an there is room for greater collaboration organization actively addressing this issue. around a shared understanding of the challenges, common terminology and More Comprehensive Data on existing disciplines that can be leveraged Today’s Practices and Controls across an even broader community. • While SAFECode has offered the best thinking of its member companies in this Measurement important emerging area, the field could • SAFECode is currently examining its mem- be furthered by capturing broader data bers’ practices on measuring software from a larger segment of information assurance. As that work evolves, there technology vendors about their cur- are sure to be implications for improv- rent or preferred practices so that the ing the exchange of integrity-related overall community is guided by data as measures among trading suppliers. continuous improvements are made. Software Integrity and Cloud Computing • The impact of cloud computing on the “traditional” view of software supply chain risks, as addressed in this paper, needs to be assessed. Software pos- sesses many of the same characteristics inherent in other forms of intellectual property. As a result, issues associated with jurisdiction, access authorization and compliance need to be assessed for their impact on software integrity controls. 22
  • 25. Conclusion controls, as well as continue further study and analysis on additional practices and controls SAFECode views software integrity as a to improve software supply chain integrity. fundamental pillar of software assurance. Protecting the integrity of software requires Acknowledgments a set of controls that should be implemented alongside secure development and authentic- Brad Arkin, Adobe Systems Incorporated ity practices; indeed, integrity preserves and Eric Baize, EMC Corporation supports security and authenticity across Matt Coles, EMC Corporation the complexity of a supply chain. However, Robert Dix, Juniper Networks, Inc. resources and best practices for identifying and analyzing software integrity controls are Yuecel Karabulut, SAP AG not yet widely available, creating challenges Paul Nicholas, Microsoft Corporation for both software vendors and customers. Gary Phillips, Symantec Corporation While a software vendor is only one link in Tyson Storch, Microsoft Corporation a complex IT solution supply chain and has Kevin Sullivan, Microsoft Corporation a limited ability to influence the actions of the other entities along the chain, all soft- Janne Uusilehto, Nokia ware vendors have both the opportunity and responsibility to protect the integrity of the software as it moves through the link they control. This requires the application of soft- ware integrity controls to a vendor’s software sourcing, development and delivery processes. SAFECode believes the industry-wide adoption of software integrity controls has the potential to greatly improve customer confidence in IT systems. It has published this collection of best practices, which are based on the lessons its members have learned in their individual implementation of these controls, in an effort to provide guidance to others in the industry. SAFECode encourages the software industry to tailor and adopt these 23
  • 26. About SAFECode The Software Assurance Forum for Excellence in Code (SAFECode) is a non-profit organization exclusively dedicated to increasing trust in infor- mation and communications technology products and services through the advancement of effective software assurance methods. SAFECode is a global, industry-led effort to identify and promote best practices for developing and delivering more secure and reliable software, hardware and services. Its members include Adobe Systems Incorporated, EMC Corporation, Juniper Networks, Inc., Microsoft Corp., Nokia, SAP AG and Symantec Corp. For more information, please visit www.safecode.org. SAFECode (p) 703.812.9199 2101 Wilson Boulevard (f) 703.812.9350 Suite 1000 (email) stacy@safecode.org Arlington, VA 22201 www.safecode.org © 2010 Software Assurance Forum for Excellence in Code (SAFECode)