Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SL #1167

Closed
wants to merge 43 commits into from
Closed

SL #1167

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
3352f89
Added Project Initial
PrathamGupta Nov 16, 2023
64c9e4d
Create self-assessment
BruceLiu10 Nov 19, 2023
0623662
Changes to self-assessment
PrathamGupta Nov 20, 2023
5ff8a14
Added table of content
PrathamGupta Nov 20, 2023
b1acaaa
Changes to table of contents
PrathamGupta Nov 20, 2023
a695ec0
Update self-assessment.md
BruceLiu10 Nov 20, 2023
d5c298a
Update self-assessment.md
BruceLiu10 Nov 20, 2023
671f306
Merge pull request #1 from PrathamGupta/JR
BruceLiu10 Nov 20, 2023
ac78a33
Update self-assessment.md
BruceLiu10 Nov 20, 2023
d4dd75a
Update self-assessment.md
BruceLiu10 Nov 20, 2023
a36b56d
Merge pull request #2 from PrathamGupta/JR
BruceLiu10 Nov 20, 2023
6e9f32b
Merge branch 'main' into main
bbtc33 Nov 24, 2023
9343a25
Max 11 24 (#3)
bbtc33 Nov 24, 2023
d83441d
Update self-assessment.md
BruceLiu10 Nov 24, 2023
c0063f9
Merge pull request #4 from PrathamGupta/JR
BruceLiu10 Nov 24, 2023
00fccf2
Update self-assessment.md
bbtc33 Nov 25, 2023
38f714a
Update self-assessment.md
Inkhermit Nov 27, 2023
6e67fd9
Update self-assessment.md
Inkhermit Nov 27, 2023
b10856c
Merge pull request #5 from PrathamGupta/SL
Inkhermit Nov 27, 2023
b395f03
Update self-assessment.md
BruceLiu10 Nov 27, 2023
ba0cc83
Update self-assessment.md
BruceLiu10 Nov 27, 2023
b74a8c4
Update self-assessment.md
BruceLiu10 Nov 27, 2023
60db6c7
Merge branch 'main' into JR
PrathamGupta Nov 28, 2023
bca89a0
Merge pull request #7 from PrathamGupta/JR
PrathamGupta Nov 28, 2023
db40911
Update self-assessment.md
BruceLiu10 Nov 28, 2023
eda3cce
Merge pull request #8 from PrathamGupta/JR
BruceLiu10 Nov 28, 2023
6e08a8c
Added Secure Developmental Practices
PrathamGupta Nov 28, 2023
ccc5715
Changes to Secure Developmental Practices
PrathamGupta Nov 28, 2023
2de2039
Added Security Issue Resolution
PrathamGupta Nov 28, 2023
54dc6a9
Deleted some files
PrathamGupta Nov 28, 2023
8a97a90
Updated BOM for OpenTelemetry
PrathamGupta Nov 28, 2023
ad8b1f3
Edited title
PrathamGupta Nov 28, 2023
d37a269
Added Comment for Finishing First Draft
PrathamGupta Nov 28, 2023
b909ad6
Update self-assessment.md
BruceLiu10 Dec 5, 2023
b724db6
Merge pull request #9 from PrathamGupta/JR
BruceLiu10 Dec 5, 2023
3e8df31
Update self-assessment.md
BruceLiu10 Dec 5, 2023
1a062bc
Merge pull request #10 from PrathamGupta/JR
BruceLiu10 Dec 5, 2023
d2d24e6
Max's edits
bbtc33 Nov 24, 2023
eedcd93
Max Yin
bbtc33 Dec 5, 2023
7fb9958
Update self-assessment.md
Inkhermit Dec 5, 2023
8cd846c
Update self-assessment.md
Inkhermit Dec 5, 2023
8d8ca00
Update self-assessment.md
Inkhermit Dec 5, 2023
b54e03e
Update self-assessment.md
Inkhermit Dec 5, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
173 changes: 173 additions & 0 deletions assessments/projects/open-telemetry/self-assessment-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
# Self-assessment
The Self-assessment is the initial document for projects to begin thinking about the
security of the project, determining gaps in their security, and preparing any security
documentation for their users. This document is ideal for projects currently in the
CNCF **sandbox** as well as projects that are looking to receive a joint assessment and
currently in CNCF **incubation**.

For a detailed guide with step-by-step discussion and examples, check out the free
Express Learning course provided by Linux Foundation Training & Certification:
[Security Assessments for Open Source Projects](https://training.linuxfoundation.org/express-learning/security-self-assessments-for-open-source-projects-lfel1005/).

# Self-assessment outline

## Table of contents

* [Metadata](#metadata)
* [Security links](#security-links)
* [Overview](#overview)
* [Actors](#actors)
* [Actions](#actions)
* [Background](#background)
* [Goals](#goals)
* [Non-goals](#non-goals)
* [Self-assessment use](#self-assessment-use)
* [Security functions and features](#security-functions-and-features)
* [Project compliance](#project-compliance)
* [Secure development practices](#secure-development-practices)
* [Security issue resolution](#security-issue-resolution)
* [Appendix](#appendix)

## Metadata

A table at the top for quick reference information, later used for indexing.

| | |
| ------------------| -------------------- |
| Software | https://github.com/open-telemetry/opentelemetry.io/tree/main |
| Security Provider | No |
| Languages | JavaScript|
| SBOM | https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/docs/supported-libraries.md |
| | |

### Security links

Provide the list of links to existing security documentation for the project. You may
use the table below as an example:
| Doc | url |
| -- | -- |
| Security file | https://my.security.file |
| Default and optional configs | https://example.org/config |

## Overview

One or two sentences describing the project -- something memorable and accurate
that distinguishes your project to quickly orient readers who may be assessing
multiple projects.

### Background

Provide information for reviewers who may not be familiar with your project's
domain or problem area.

### Actors
These are the individual parts of your system that interact to provide the
desired functionality. Actors only need to be separate, if they are isolated
in some way. For example, if a service has a database and a front-end API, but
if a vulnerability in either one would compromise the other, then the distinction
between the database and front-end is not relevant.

The means by which actors are isolated should also be described, as this is often
what prevents an attacker from moving laterally after a compromise.

### Actions
These are the steps that a project performs in order to provide some service
or functionality. These steps are performed by different actors in the system.
Note, that an action need not be overly descriptive at the function call level.
It is sufficient to focus on the security checks performed, use of sensitive
data, and interactions between actors to perform an action.

For example, the access server receives the client request, checks the format,
validates that the request corresponds to a file the client is authorized to
access, and then returns a token to the client. The client then transmits that
token to the file server, which, after confirming its validity, returns the file.

### Goals
The intended goals of the projects including the security guarantees the project
is meant to provide (e.g., Flibble only allows parties with an authorization
key to change data it stores).

### Non-goals
Non-goals that a reasonable reader of the project’s literature could believe may
be in scope (e.g., Flibble does not intend to stop a party with a key from storing
an arbitrarily large amount of data, possibly incurring financial cost or overwhelming
the servers)

## Self-assessment use

This self-assessment is created by the [project] team to perform an internal analysis of the
project's security. It is not intended to provide a security audit of [project], or
function as an independent assessment or attestation of [project]'s security health.

This document serves to provide [project] users with an initial understanding of
[project]'s security, where to find existing security documentation, [project] plans for
security, and general overview of [project] security practices, both for development of
[project] as well as security of [project].

This document provides the CNCF TAG-Security with an initial understanding of [project]
to assist in a joint-assessment, necessary for projects under incubation. Taken
together, this document and the joint-assessment serve as a cornerstone for if and when
[project] seeks graduation and is preparing for a security audit.

## Security functions and features

* Critical. A listing critical security components of the project with a brief
description of their importance. It is recommended these be used for threat modeling.
These are considered critical design elements that make the product itself secure and
are not configurable. Projects are encouraged to track these as primary impact items
for changes to the project.
* Security Relevant. A listing of security relevant components of the project with
brief description. These are considered important to enhance the overall security of
the project, such as deployment configurations, settings, etc. These should also be
included in threat modeling.

## Project compliance

* Compliance. List any security standards or sub-sections the project is
already documented as meeting (PCI-DSS, COBIT, ISO, GDPR, etc.).

## Secure development practices

* Development Pipeline. A description of the testing and assessment processes that
the software undergoes as it is developed and built. Be sure to include specific
information such as if contributors are required to sign commits, if any container
images immutable and signed, how many reviewers before merging, any automated checks for
vulnerabilities, etc.
* Communication Channels. Reference where you document how to reach your team or
describe in corresponding section.
* Internal. How do team members communicate with each other?
* Inbound. How do users or prospective users communicate with the team?
* Outbound. How do you communicate with your users? (e.g. flibble-announce@
mailing list)
* Ecosystem. How does your software fit into the cloud native ecosystem? (e.g.
Flibber is integrated with both Flocker and Noodles which covers
virtualization for 80% of cloud users. So, our small number of "users" actually
represents very wide usage across the ecosystem since every virtual instance uses
Flibber encryption by default.)

## Security issue resolution

* Responsible Disclosures Process. A outline of the project's responsible
disclosures process should suspected security issues, incidents, or
vulnerabilities be discovered both external and internal to the project. The
outline should discuss communication methods/strategies.
* Vulnerability Response Process. Who is responsible for responding to a
report. What is the reporting process? How would you respond?
* Incident Response. A description of the defined procedures for triage,
confirmation, notification of vulnerability or security incident, and
patching/update availability.

## Appendix

* Known Issues Over Time. List or summarize statistics of past vulnerabilities
with links. If none have been reported, provide data, if any, about your track
record in catching issues in code review or automated testing.
* [CII Best Practices](https://www.coreinfrastructure.org/programs/best-practices-program/).
Best Practices. A brief discussion of where the project is at
with respect to CII best practices and what it would need to
achieve the badge.
* Case Studies. Provide context for reviewers by detailing 2-3 scenarios of
real-world use cases.
* Related Projects / Vendors. Reflect on times prospective users have asked
about the differences between your project and projectX. Reviewers will have
the same question.
Loading
Loading