- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Datadog Code Security helps you secure and maintain your applications’ first-party code and open source libraries from development to production.
It offers a suite of tools to help you secure your code throughout the software development lifecycle:
Datadog Software Composition Analysis detects library vulnerabilities and catalogs dependencies within your codebase as well as on your running services.
See Software Composition Analysis to set up the static and/or runtime library vulnerability detection.
There are two ways to secure and maintain your first-party code with Datadog:
Datadog can act as an automatic code reviewer to flag vulnerabilities and quality violations in GitHub pull requests. For more information, see GitHub Pull Requests.
In Code Security Settings, you can customize which findings lead to PR comments (e.g. only critical and high severity findings).
For Static Code Analysis (SAST), you can also configure which SAST rules apply across your organization or for specific repositories. See Datadog’s default SAST rules here.
Install the Datadog IDE plugins to run Static Code Analysis (SAST) scans locally and see results directly in your code editor. You can detect and fix problems such as security vulnerabilities, maintainability issues, or bugs in your code before you commit your changes.
To start running code scans in your IDE, see the respective documentation for your code editor of choice.
See the documentation for information about the following integrations:
Datadog provides Quality Gates as a platform capability to help you maintain and enforce security and quality standards for changes introduced to your codebase. For more information, see Quality Gate setup.
Code Security offers vulnerability-centric views of all library and code vulnerabilities detected from both static repository scanning and runtime service detection.
For library vulnerabilities, each row in the table represents a specific vulnerability affecting a library version. Based on if you have static or runtime detection enabled, the Detected In column will display the specific repositories and/or services affected by this vulnerability.
In the side panel for a single library vulnerability in SCA, in addition to details about the vulnerability, Datadog shows:
Severities are scored by the following:
CVSS Score | Qualitative Rating |
---|---|
0.0 | None |
0.1 - 3.9 | Low |
4.0 - 6.9 | Medium |
7.0 - 8.9 | High |
9.0 - 10.0 | Critical |
Code Security also offers repository-centric views of static scan results, supporting granular filtering across all branches and commits for scanned repositories.
Click on a repository on the Repositories page to access a more detailed view where you can customize the search query by branch (with the default branch appearing first) and by commit (starting with the latest).
You can use the following out-of-the-box facets to create a search query for identifying and resolving poor coding practices in the Code Quality tab or security risks in the Code Vulnerabilities tab.
Facet Name | Description |
---|---|
Result Status | Filters results based on the completion status of the analysis. |
Rule ID | Specific rules that triggered the findings. |
Tool Name | Determines which tools contributed to the analysis. |
CWE (Common Weakness Enumeration) | Filters findings by recognized vulnerability categories. |
Has Fixes | Filters issues for which suggested fixes are available. |
Result Message | Contains concise descriptions or messages associated with the findings. |
Rule Description | Contains the rationale behind each rule. |
Source File | Contains the files where issues were detected. |
Tool Version | Filters results by the version of the tools used. |
You can access suggested fixes directly from the results to improve code quality practices and address security vulnerabilities.
You can use the following out-of-the-box facets to create a search query for identifying and addressing security risks in third-party libraries in the Library Vulnerabilities tab or reviewing your library inventory in the Library Catalog tab.
Facet Name | Description |
---|---|
Dependency Name | Identifies the libraries by name. |
Dependency Version | Filters by specific versions of libraries. |
Language | Sorts libraries by the programming language. |
Score | Sorts the risk or quality score of the dependencies. |
Severity | Filters vulnerabilities based on their severity rating. |
Platform | Distinguishes libraries by the platform they are intended for. |
You can access vulnerability reports and locate the source files where the vulnerability was discovered in your projects, along with information about the file’s code owners.
Code Security helps you set up workflows to track and manage remediation of findings:
Datadog associates code violations or libraries with relevant services by using the following mechanisms:
If one method succeeds, no further mapping attempts are made. Each mapping method is detailed below.
The schema version v3
and later of the Service Catalog allows you to add the mapping of your code location for your service. The codeLocations
section specifies the location of the repository containing the code and its associated paths.
The paths
attribute is a list of [globs][14]
that should match paths in the repository.
entity.datadog.yaml
apiVersion: v3
kind: service
metadata:
name: my-service
datadog:
codeLocations:
- repositoryURL: https://github.com/myorganization/myrepo.git
paths:
- path/to/service/code/**
Datadog detects file usage in additional products such as Error Tracking and associate
files with the runtime service. For example, if a service called foo
has
a log entry or a stack trace containing a file with a path /modules/foo/bar.py
,
it associates files /modules/foo/bar.py
to service foo
.
Datadog detects service names in paths and repository names, and associates the file with the service if a match is found.
For a repository match, if there is a service called myservice
and
the repository URL is https://github.com/myorganization/myservice.git
, then,
it associates myservice
to all files in the repository.
If no repository match is found, Datadog attempts to find a match in the
path
of the file. If there is a service named myservice
, and the path is /path/to/myservice/foo.py
, the file is associated with myservice
because the service name is part of the path. If two services are present
in the path, the service name the closest to the filename is selected.
Datadog automatically associates the team attached to a service when a code violation or library issue is detected. For example, if the file domains/ecommerce/apps/myservice/foo.py
is associated with myservice
, then the team myservice
will be associated to any violation
detected in this file.
If no services or teams are found, Datadog uses the CODEOWNERS
[file][15]
in your repository. The CODEOWNERS
file determines which team owns a file in your Git provider.
Note: You must accurately map your Git provider teams to your Datadog teams for this feature to function properly.