Cycode MCP Server
chính thứcTăng cường bảo mật trong vòng đời phát triển của bạn thông qua quét SAST, SCA, Secrets và IaC với Cycode.
Tài liệu
Hướng dẫn sử dụng Cycode CLI
Cycode Command Line Interface (CLI) là một ứng dụng bạn có thể cài đặt cục bộ để quét các kho lưu trữ của mình nhằm tìm kiếm bí mật, lỗi cấu hình cơ sở hạ tầng dưới dạng mã, lỗ hổng phân tích thành phần phần mềm và các vấn đề kiểm tra bảo mật ứng dụng tĩnh.
Hướng dẫn này sẽ hướng dẫn bạn cả việc cài đặt và sử dụng.
Mục lục
- Điều kiện tiên quyết
- Cài đặt
- Các lệnh Cycode CLI
- Lệnh MCP
- Lệnh Platform
- Lệnh Scan
- Lệnh Report
- Lệnh Import
- Nhật ký quét
- Trợ giúp cú pháp
Điều kiện tiên quyết
- Ứng dụng Cycode CLI yêu cầu Python phiên bản 3.9 trở lên. Lệnh MCP chỉ khả dụng cho Python 3.10 trở lên. Nếu bạn đang sử dụng phiên bản Python cũ hơn, lệnh này sẽ không khả dụng.
- Sử dụng lệnh
cycode authđể xác thực với Cycode bằng CLI- Ngoài ra, bạn có thể lấy Cycode Client ID và Client Secret Key bằng cách làm theo các bước chi tiết trong trang Service Account Token và Personal Access Token, chứa thông tin chi tiết về cách lấy các giá trị này.
Cài đặt
Các bước cài đặt sau đây áp dụng cho cả hệ điều hành Windows và UNIX / Linux.
[!LƯU Ý] Các bước sau giả định việc sử dụng
python3vàpip3cho các lệnh liên quan đến Python; tuy nhiên, một số hệ thống có thể sử dụng lệnhpythonvàpipthay thế, tùy thuộc vào cấu hình môi trường Python của bạn.
Cài đặt Cycode CLI
Để cài đặt ứng dụng Cycode CLI trên máy cục bộ của bạn, hãy thực hiện các bước sau:
-
Mở dòng lệnh hoặc ứng dụng terminal của bạn.
-
Thực thi một trong các lệnh sau:
-
Để cài đặt từ PyPI:
pip3 install cycode -
Để cài đặt từ Homebrew:
brew install cycode -
Để cài đặt từ GitHub Releases, hãy điều hướng và tải xuống tệp thực thi cho hệ điều hành và kiến trúc của bạn, sau đó chạy lệnh sau:
cd /path/to/downloaded/cycode-cli chmod +x cycode ./cycode -
-
Cuối cùng, xác thực CLI. Có ba phương pháp để đặt Cycode client ID và thông tin xác thực (client secret hoặc OIDC ID token):
- cycode auth (Khuyến nghị)
- cycode configure
- Thêm chúng vào biến môi trường của bạn
Sử dụng lệnh Auth
[!LƯU Ý] Đây là phương pháp được khuyến nghị để thiết lập máy cục bộ của bạn xác thực với Cycode CLI.
-
Nhập lệnh sau vào cửa sổ terminal/dòng lệnh của bạn:
cycode auth -
Một cửa sổ trình duyệt sẽ xuất hiện, yêu cầu bạn đăng nhập vào Cycode (như hình bên dưới):
-
Nhập thông tin đăng nhập của bạn trên trang này và đăng nhập.
-
Cuối cùng, bạn sẽ được đưa đến trang bên dưới, nơi bạn sẽ được yêu cầu chọn nhóm kinh doanh mà bạn muốn ủy quyền cho Cycode (nếu có):
[!LƯU Ý] Đây sẽ là phương pháp mặc định để xác thực với Cycode CLI.
-
Nhấp vào nút Cho phép để ủy quyền Cycode CLI trên nhóm kinh doanh đã chọn.
-
Sau khi hoàn tất, bạn sẽ thấy màn hình sau nếu được chọn thành công:
-
Trong màn hình terminal/dòng lệnh, bạn sẽ thấy thông báo sau khi thoát cửa sổ trình duyệt:
Successfully logged into cycode
Sử dụng lệnh Configure
[!LƯU Ý] Nếu bạn đã thiết lập Cycode Client ID và Client Secret thông qua biến môi trường Linux hoặc Windows, những thông tin xác thực đó sẽ được ưu tiên hơn phương pháp này.
-
Nhập lệnh sau vào cửa sổ terminal/dòng lệnh của bạn:
cycode configure -
Nhập giá trị URL API Cycode của bạn (bạn có thể để trống để sử dụng giá trị mặc định).
Cycode API URL [https://api.cycode.com]: https://api.onpremise.com -
Nhập giá trị URL APP Cycode của bạn (bạn có thể để trống để sử dụng giá trị mặc định).
Cycode APP URL [https://app.cycode.com]: https://app.onpremise.com -
Nhập giá trị Cycode Client ID của bạn.
Cycode Client ID []: 7fe5346b-xxxx-xxxx-xxxx-55157625c72d -
Nhập giá trị Cycode Client Secret của bạn (bỏ qua nếu bạn định sử dụng OIDC ID token).
Cycode Client Secret []: c1e24929-xxxx-xxxx-xxxx-8b08c1839a2e -
Nhập giá trị Cycode OIDC ID Token của bạn (tùy chọn).
Cycode ID Token []: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9... -
Nếu các giá trị được nhập thành công, bạn sẽ thấy thông báo sau:
Successfully configured CLI credentials!hoặc/và
Successfully configured Cycode URLs!
Nếu bạn vào thư mục .cycode trong thư mục người dùng của mình, bạn sẽ thấy những thông tin xác thực này đã được tạo và đặt trong tệp credentials.yaml trong thư mục đó.
Các URL được đặt trong tệp config.yaml trong thư mục đó.
Thêm vào biến môi trường
Trên Unix/Linux:
export CYCODE_CLIENT_ID={your Cycode ID}
và
export CYCODE_CLIENT_SECRET={your Cycode Secret Key}
Nếu tổ chức của bạn sử dụng xác thực OIDC, bạn có thể cung cấp ID token thay thế (hoặc bổ sung):
export CYCODE_ID_TOKEN={your Cycode OIDC ID token}
Trên Windows
-
Từ Control Panel, điều hướng đến menu System:
-
Tiếp theo, nhấp vào Advanced system settings:
-
Trong cửa sổ System Properties mở ra, nhấp vào nút Environment Variables:
-
Tạo biến
CYCODE_CLIENT_IDvàCYCODE_CLIENT_SECRETvới các giá trị tương ứng với ID và Secret Key của bạn. Nếu bạn xác thực qua OIDC, hãy thêmCYCODE_ID_TOKENvới giá trị OIDC ID token của bạn:
-
Chèn
cycode.exevào đường dẫn để hoàn tất cài đặt.
Cài đặt Pre-Commit Hook
Các hook pre-commit và pre-push của Cycode có thể được thiết lập trong kho lưu trữ cục bộ của bạn để ứng dụng Cycode CLI sẽ tự động xác định bất kỳ vấn đề nào với mã của bạn trước khi bạn commit hoặc push nó lên cơ sở mã của mình.
[!LƯU Ý] Hook pre-commit và pre-push không khả dụng cho quét IaC.
Thực hiện các bước sau để cài đặt pre-commit hook:
Cài đặt Pre-Commit Hook
-
Cài đặt pre-commit framework (phải cài đặt Python 3.9 trở lên):
pip3 install pre-commit -
Điều hướng đến thư mục trên cùng của kho lưu trữ Git cục bộ mà bạn muốn cấu hình.
-
Tạo một tệp YAML mới có tên
.pre-commit-config.yaml(bao gồm phần đầu.) trong thư mục trên cùng của kho lưu trữ chứa nội dung sau:repos: - repo: https://github.com/cycodehq/cycode-cli rev: v3.5.0 hooks: - id: cycode stages: [pre-commit] -
Sửa đổi tệp đã tạo cho nhu cầu cụ thể của bạn. Sử dụng hook ID
cycodeđể kích hoạt quét Bí mật. Sử dụng hook IDcycode-scađể kích hoạt quét SCA. Sử dụng hook IDcycode-sastđể kích hoạt quét SAST. Nếu bạn muốn kích hoạt tất cả các loại quét, hãy sử dụng cấu hình này:repos: - repo: https://github.com/cycodehq/cycode-cli rev: v3.5.0 hooks: - id: cycode stages: [pre-commit] - id: cycode-sca stages: [pre-commit] - id: cycode-sast stages: [pre-commit] -
Cài đặt hook của Cycode:
pre-commit installCài đặt hook thành công sẽ dẫn đến thông báo:
Pre-commit installed at .git/hooks/pre-commit. -
Giữ cho pre-commit hook được cập nhật:
pre-commit autoupdateNó sẽ tự động nâng cấp
revtrong.pre-commit-config.yamllên phiên bản mới nhất hiện có của Cycode CLI.
[!LƯU Ý] Kích hoạt xảy ra khi dùng lệnh
git commit. Hook chỉ kích hoạt trên các tệp được staged để commit.
Cài đặt Pre-Push Hook
Để cài đặt pre-push hook bổ sung hoặc thay thế cho pre-commit hook:
-
Thêm các pre-push hook vào tệp
.pre-commit-config.yamlcủa bạn:repos: - repo: https://github.com/cycodehq/cycode-cli rev: v3.5.0 hooks: - id: cycode-pre-push stages: [pre-push] -
Cài đặt pre-push hook:
pre-commit install --hook-type pre-push -
Đối với cả hook pre-commit và pre-push, sử dụng:
pre-commit install pre-commit install --hook-type pre-push
[!LƯU Ý] Pre-push hook kích hoạt khi dùng lệnh
git pushvà chỉ quét các commit sắp được push.
Các lệnh Cycode CLI
Sau đây là các tùy chọn và lệnh khả dụng với ứng dụng Cycode CLI:
| Tùy chọn | Mô tả |
|---|---|
-v, --verbose | Hiển thị nhật ký chi tiết. |
--no-progress-meter | Không hiển thị đồng hồ tiến trình. |
--no-update-notifier | Không kiểm tra cập nhật cho CLI. |
-o, --output [rich|text|json|table] | Chỉ định loại đầu ra. Mặc định là rich. |
--client-id TEXT | Chỉ định Cycode client ID cho lần thực thi quét cụ thể này. |
--client-secret TEXT | Chỉ định Cycode client secret cho lần thực thi quét cụ thể này. |
--id-token TEXT | Chỉ định Cycode OIDC ID token cho lần thực thi quét cụ thể này. |
--install-completion | Cài đặt completion cho shell hiện tại. |
--show-completion [bash|zsh|fish|powershell|pwsh] | Hiển thị completion cho shell được chỉ định, để sao chép hoặc tùy chỉnh cài đặt. |
-h, --help | Hiển thị các tùy chọn cho lệnh đã cho. |
| Lệnh | Mô tả |
| ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| auth | Xác thực máy của bạn để liên kết CLI với tài khoản Cycode. |
| configure | Lệnh khởi tạo để cấu hình xác thực client CLI. |
| ignore | Bỏ qua một giá trị, đường dẫn hoặc ID quy tắc cụ thể. |
| mcp | Khởi động máy chủ Model Context Protocol (MCP) để cho phép tích hợp AI với khả năng quét của Cycode. |
| scan | Quét nội dung để tìm các vi phạm Secrets/IaC/SCA/SAST. Bạn sẽ cần chỉ định loại quét cần thực hiện: commit-history/path/repository/v.v. |
| report | Tạo báo cáo. Bạn sẽ cần chỉ định loại báo cáo cần thực hiện như SBOM. |
| status | Hiển thị trạng thái CLI và thoát. |
Lệnh MCP [THỬ NGHIỆM]
[!CẢNH BÁO] Lệnh MCP chỉ khả dụng cho Python 3.10 trở lên. Nếu bạn đang sử dụng phiên bản Python cũ hơn, lệnh này sẽ không khả dụng.
Lệnh Model Context Protocol (MCP) cho phép bạn khởi động một máy chủ MCP để cung cấp khả năng quét của Cycode cho các hệ thống và ứng dụng AI. Điều này cho phép các mô hình AI tương tác với các công cụ CLI của Cycode thông qua một giao thức chuẩn hóa.
[!MẸO] Để có trải nghiệm tốt nhất, hãy cài đặt Cycode CLI toàn cục trên hệ thống của bạn bằng
pip install cycodehoặcbrew install cycode, sau đó xác thực một lần vớicycode auth. Sau khi cài đặt và xác thực toàn cục, bạn sẽ không cần cấu hình các biến môi trườngCYCODE_CLIENT_IDvàCYCODE_CLIENT_SECRETtrong các tệp cấu hình MCP của mình.
Khởi động Máy chủ MCP
Để khởi động máy chủ MCP, sử dụng lệnh sau:
cycode mcp
Theo mặc định, lệnh này khởi động máy chủ sử dụng truyền tải stdio, phù hợp cho các tích hợp cục bộ và ứng dụng AI có thể tạo tiến trình con.
Các Tùy chọn Khả dụng
| Tùy chọn | Mô tả |
|---|---|
-t, --transport | Loại truyền tải cho máy chủ MCP: stdio, sse, hoặc streamable-http (mặc định: stdio) |
-H, --host | Địa chỉ máy chủ để liên kết máy chủ (chỉ dùng cho truyền tải không phải stdio) (mặc định: 127.0.0.1) |
-p, --port | Số cổng để liên kết máy chủ (chỉ dùng cho truyền tải không phải stdio) (mặc định: 8000) |
--help | Hiển thị thông báo trợ giúp và các tùy chọn khả dụng |
Công cụ MCP
Máy chủ MCP cung cấp các công cụ sau mà hệ thống AI có thể sử dụng:
| Tên Công cụ | Mô tả |
|---|---|
cycode_secret_scan | Quét các bí mật được mã hóa cứng |
cycode_sca_scan | Quét Phân tích Thành phần Phần mềm (SCA) - lỗ hổng và vấn đề giấy phép |
cycode_iac_scan | Quét cấu hình sai Cơ sở hạ tầng dưới dạng Mã (IaC) |
cycode_sast_scan | Quét Kiểm thử Bảo mật Ứng dụng Tĩnh (SAST) - chất lượng mã và lỗ hổng bảo mật |
cycode_status | Lấy phiên bản CLI Cycode, trạng thái xác thực và thông tin cấu hình |
Mỗi công cụ quét chấp nhận hai chế độ đầu vào loại trừ lẫn nhau:
paths(được ưu tiên) — một hoặc nhiều đường dẫn tệp hoặc thư mục tồn tại trên đĩa. Các thư mục được quét đệ quy. Công cụ Cycode xử lý việc phát hiện và lọc tệp, giống nhưcycode scan -t <type> path ./srcthực hiện từ CLI.files(dự phòng) — một từ điển ánh xạ đường dẫn tệp tới toàn bộ nội dung của chúng dưới dạng chuỗi. Chỉ sử dụng khi các tệp không có sẵn trên đĩa (ví dụ: các chỉnh sửa trong bộ nhớ chưa được lưu).
[!MẸO] Sử dụng
pathsbất cứ khi nào có thể. Việc truyền các tệp lớn (nhưpackage-lock.json) dưới dạng nội dung nội tuyến có thể vượt quá giới hạn token và làm chậm client AI. Vớipaths, công cụ Cycode đọc tệp trực tiếp từ đĩa.
Tất cả các công cụ quét trả về một đối tượng JSON bao gồm trường "summary" với số lượng vi phạm có thể đọc được (ví dụ: "Cycode found 3 violations: 1 CRITICAL, 2 HIGH.") cùng với toàn bộ mảng "detections".
Ví dụ Sử dụng
Ví dụ Lệnh Cơ bản
Khởi động máy chủ MCP với cài đặt mặc định (truyền tải stdio):
cycode mcp
Khởi động máy chủ MCP với truyền tải stdio rõ ràng:
cycode mcp -t stdio
Khởi động máy chủ MCP với truyền tải Server-Sent Events (SSE):
cycode mcp -t sse -p 8080
Khởi động máy chủ MCP với truyền tải HTTP có thể stream trên máy chủ và cổng tùy chỉnh:
cycode mcp -t streamable-http -H 0.0.0.0 -p 9000
Tìm hiểu thêm về các loại Truyền tải MCP trong Đặc tả Giao thức MCP – Truyền tải.
Ví dụ Cấu hình
Sử dụng MCP với Cursor/VS Code/Claude Desktop/v.v. (mcp.json)
[!LƯU Ý] Đối với môi trường Cycode EU, hãy đảm bảo đặt các giá trị
CYCODE_API_URLvàCYCODE_APP_URLthích hợp trong các biến môi trường (ví dụ:https://api.eu.cycode.comvàhttps://app.eu.cycode.com).
Làm theo hướng dẫn này để cấu hình máy chủ MCP trong VS Code/GitHub Copilot của bạn. Lưu ý rằng trong settings.json, có một đối tượng mcp chứa đối tượng con servers lồng nhau, thay vì một đối tượng mcpServers độc lập.
Đối với truyền tải stdio (thực thi trực tiếp):
{
"mcpServers": {
"cycode": {
"command": "cycode",
"args": ["mcp"],
"env": {
"CYCODE_CLIENT_ID": "your-cycode-id",
"CYCODE_CLIENT_SECRET": "your-cycode-secret-key",
"CYCODE_API_URL": "https://api.cycode.com",
"CYCODE_APP_URL": "https://app.cycode.com"
}
}
}
}
Đối với truyền tải stdio với cài đặt pipx:
{
"mcpServers": {
"cycode": {
"command": "pipx",
"args": ["run", "cycode", "mcp"],
"env": {
"CYCODE_CLIENT_ID": "your-cycode-id",
"CYCODE_CLIENT_SECRET": "your-cycode-secret-key",
"CYCODE_API_URL": "https://api.cycode.com",
"CYCODE_APP_URL": "https://app.cycode.com"
}
}
}
}
Đối với truyền tải stdio với cài đặt uvx:
{
"mcpServers": {
"cycode": {
"command": "uvx",
"args": ["cycode", "mcp"],
"env": {
"CYCODE_CLIENT_ID": "your-cycode-id",
"CYCODE_CLIENT_SECRET": "your-cycode-secret-key",
"CYCODE_API_URL": "https://api.cycode.com",
"CYCODE_APP_URL": "https://app.cycode.com"
}
}
}
}
Đối với truyền tải SSE (Server-Sent Events):
{
"mcpServers": {
"cycode": {
"url": "http://127.0.0.1:8000/sse"
}
}
}
Đối với truyền tải SSE trên cổng tùy chỉnh:
{
"mcpServers": {
"cycode": {
"url": "http://127.0.0.1:8080/sse"
}
}
}
Đối với truyền tải HTTP có thể stream:
{
"mcpServers": {
"cycode": {
"url": "http://127.0.0.1:8000/mcp"
}
}
}
Chạy Máy chủ MCP trong Nền
Đối với truyền tải SSE (khởi động máy chủ trước, sau đó cấu hình client):
# Start the MCP server in the background
cycode mcp -t sse -p 8000 &
# Configure in mcp.json
{
"mcpServers": {
"cycode": {
"url": "http://127.0.0.1:8000/sse"
}
}
}
Đối với truyền tải HTTP có thể stream:
# Start the MCP server in the background
cycode mcp -t streamable-http -H 127.0.0.2 -p 9000 &
# Configure in mcp.json
{
"mcpServers": {
"cycode": {
"url": "http://127.0.0.2:9000/mcp"
}
}
}
Cấu hình Nâng cao
Chứng chỉ Tùy chỉnh và Thời gian chờ (Môi trường Proxy)
Nếu tổ chức của bạn sử dụng proxy công ty hoặc gói CA tùy chỉnh để kiểm tra HTTPS, bạn cần cho Cycode CLI (và ngăn xếp TLS Python cơ bản) biết nơi tìm gói chứng chỉ đáng tin cậy. Bạn cũng có thể tăng thời gian chờ gọi công cụ MCP nếu các lần quét bị cắt ngắn.
| Biến Môi trường | Mô tả |
|---|---|
REQUESTS_CA_BUNDLE | Đường dẫn đến tệp gói CA tùy chỉnh (.pem hoặc .crt). Được thư viện requests sử dụng cho tất cả các cuộc gọi HTTPS do Cycode CLI thực hiện. |
SSL_CERT_FILE | Đường dẫn đến tệp gói CA tùy chỉnh. Được mô-đun ssl cấp thấp của Python sử dụng. Đặt cùng với REQUESTS_CA_BUNDLE để có phạm vi bao phủ đầy đủ. |
MCP_TOOL_TIMEOUT | Thời gian chờ (tính bằng giây) mà các client MCP như Claude và GitHub Copilot chờ một lệnh gọi công cụ hoàn thành. Tăng giá trị này nếu các lần quét dài bị cắt ngang trước khi hoàn thành. |
[!MẸO] Đặt cả
REQUESTS_CA_BUNDLEvàSSL_CERT_FILEvào cùng một đường dẫn gói CA.REQUESTS_CA_BUNDLEbao phủ lớp HTTP;SSL_CERT_FILEbao phủ lớp TLS cấp thấp hơn. Chỉ sử dụng một cái có thể vẫn gây ra lỗi chứng chỉ trong một số môi trường.
Ví dụ cấu hình mcp.json với chứng chỉ tùy chỉnh và thời gian chờ dài hơn:
{
"mcpServers": {
"cycode": {
"command": "cycode",
"args": ["mcp"],
"env": {
"REQUESTS_CA_BUNDLE": "/path/to/your/corporate-ca-bundle.pem",
"SSL_CERT_FILE": "/path/to/your/corporate-ca-bundle.pem",
"MCP_TOOL_TIMEOUT": "1800"
}
}
}
}
[!LƯU Ý] Máy chủ MCP yêu cầu xác thực CLI Cycode hợp lệ để hoạt động. Đảm bảo bạn đã xác thực bằng
cycode authhoặc cấu hình thông tin đăng nhập của mình trước khi khởi động máy chủ MCP.
Ủy quyền trước Công cụ cho Tác nhân phụ (Claude Code)
Khi Claude Code ủy thác công việc cho các tác nhân phụ nền (ví dụ: để chạy quét song song), các tác nhân phụ đó không thể hiển thị lời nhắc cấp quyền tương tác. Nếu các công cụ Cycode chưa được phê duyệt trước, các lần quét sẽ thất bại âm thầm trong ngữ cảnh tác nhân phụ.
Để ủy quyền trước các công cụ MCP của Cycode để chúng hoạt động trong mọi ngữ cảnh bao gồm cả tác nhân phụ, hãy thêm chúng vào danh sách allowedTools trong cài đặt Claude Code của bạn (~/.claude/settings.json):
{
"allowedTools": [
"mcp__cycode__cycode_secret_scan",
"mcp__cycode__cycode_sca_scan",
"mcp__cycode__cycode_iac_scan",
"mcp__cycode__cycode_sast_scan",
"mcp__cycode__cycode_status"
]
}
Sau khi được thêm, Claude Code sẽ không nhắc phê duyệt khi các công cụ này được gọi và chúng sẽ hoạt động chính xác bên trong các tác nhân phụ.
Khắc phục sự cố MCP
Nếu bạn gặp sự cố với máy chủ MCP, bạn có thể bật ghi nhật ký gỡ lỗi để nhận thông tin chi tiết hơn về những gì đang xảy ra. Có hai cách để bật ghi nhật ký gỡ lỗi:
- Sử dụng cờ
-vhoặc--verbose:
cycode -v mcp
- Sử dụng biến môi trường
CYCODE_CLI_VERBOSE:
CYCODE_CLI_VERBOSE=1 cycode mcp
Nhật ký gỡ lỗi sẽ hiển thị thông tin chi tiết về:
- Khởi động và cấu hình máy chủ
- Các nỗ lực và trạng thái kết nối
- Thực thi và kết quả công cụ
- Bất kỳ lỗi hoặc cảnh báo nào xảy ra
Thông tin này có thể hữu ích khi:
- Chẩn đoán sự cố kết nối
- Hiểu lý do tại sao một số công cụ không hoạt động
- Xác định vấn đề xác thực
- Gỡ lỗi các vấn đề cụ thể về truyền tải
Cấu hình MCP
Lệnh Nền tảng [BETA]
[!CẢNH BÁO] Lệnh
platformđang trong giai đoạn beta. Các lệnh, đối số và định dạng đầu ra được tạo động từ đặc tả API Cycode và có thể thay đổi giữa các bản phát hành mà không cần thông báo. Chưa nên dựa vào chúng trong tự động hóa sản xuất.
Lệnh cycode platform hiển thị các API đọc của nền tảng Cycode dưới dạng các lệnh CLI. Nó nhóm các điểm cuối theo tài nguyên (ví dụ: projects, violations, workflows) và biến các tham số của mỗi điểm cuối thành các đối số CLI có kiểu và cờ --option.
cycode platform projects list --page-size 50
cycode platform violations count
cycode platform workflows view <workflow-id>
Đặc tả OpenAPI được tải về từ API Cycode trong lần sử dụng đầu tiên và được lưu vào bộ nhớ đệm tại ~/.cycode/openapi-spec.json trong 24 giờ. Các lệnh không liên quan (cycode scan, cycode status, v.v.) không kích hoạt việc tải về.
[!LƯU Ý] Bạn phải được xác thực (
cycode authhoặc biến môi trườngCYCODE_CLIENT_ID/CYCODE_CLIENT_SECRET) đểcycode platformkhám phá và chạy các lệnh. Các lệnh CLI Cycode khác hoạt động mà không cần xác thực.
Khám phá Lệnh
Vì các lệnh được tạo từ đặc tả, nguồn chân lý cho những gì khả dụng là --help:
cycode platform --help # list all resource groups
cycode platform projects --help # list actions on a resource
cycode platform projects list --help # list options/arguments for an action
Ví dụ Nền tảng
# List projects with pagination
cycode platform projects list --page-size 25
# View a single project by ID
cycode platform projects view <project-id>
# Count violations across the tenant
cycode platform violations count
# Filter using query parameters (see `--help` for what each endpoint supports)
cycode platform violations list --severity CRITICAL
Tất cả đầu ra đều là JSON theo mặc định — dẫn qua jq để lọc tùy chỉnh:
cycode platform projects list --page-size 100 | jq '.items[].name'
Ghi chú & Hạn chế Nền tảng
- Chỉ đọc hiện tại. Chỉ các điểm cuối
GETđược hiển thị trong bản beta này. - Điều khiển bởi đặc tả. Việc thêm một điểm cuối mới vào API sẽ tự động hiển thị nó vào lần tiếp theo bộ nhớ đệm được làm mới.
- Không có đặc tả đi kèm. Lần gọi
cycode platformđầu tiên sau khi cài đặt (hoặc sau khi bộ nhớ đệm 24h hết hạn) thực hiện một lần tải về mạng. Trên các kết nối chậm, lần gọi đầu tiên này có thể mất vài giây; các lần gọi sau gần như ngay lập tức cho đến khi bộ nhớ đệm hết hạn. - Ghi đè TTL bộ nhớ đệm bằng
CYCODE_SPEC_CACHE_TTL=<seconds>.
Lệnh Quét
Chạy Quét
Ứng dụng CLI Cycode cung cấp một số loại quét để bạn có thể chọn tùy chọn phù hợp nhất với trường hợp của mình. Sau đây là các tùy chọn và lệnh hiện có:
| Tùy chọn | Mô tả |
|---|---|
-t, --scan-type [secret|iac|sca|sast] | Chỉ định loại quét bạn muốn thực hiện (secret/iac/sca/sast), mặc định là secret. |
--show-secret BOOLEAN | Hiển thị bí mật dưới dạng văn bản thuần túy. Xem phần Hiện/Ẩn Bí mật để biết thêm chi tiết. |
--soft-fail BOOLEAN | Chạy quét mà không báo lỗi, luôn trả về mã trạng thái không lỗi. Xem phần Lỗi Mềm để biết thêm chi tiết. |
--severity-threshold [INFO|LOW|MEDIUM|HIGH|CRITICAL] | Chỉ hiển thị các vi phạm ở mức độ được chỉ định hoặc cao hơn. |
--sca-scan | Chỉ định loại quét SCA bạn muốn thực hiện (package-vulnerabilities/license-compliance). Mặc định là cả hai. |
--monitor | Khi được chỉ định, kết quả quét sẽ được ghi lại trong Cycode. |
--cycode-report | Hiển thị liên kết đến báo cáo quét trong nền tảng Cycode ở đầu ra console. |
--no-restore | Khi được chỉ định, Cycode sẽ không chạy lệnh khôi phục. Điều này sẽ CHỈ quét các phụ thuộc trực tiếp! |
--stop-on-error | Hủy bỏ quét nếu xảy ra bất kỳ lỗi thu thập tệp hoặc khôi phục phụ thuộc nào, thay vì bỏ qua tệp bị lỗi và tiếp tục. |
--gradle-all-sub-projects | Chạy lệnh khôi phục gradle cho tất cả các dự án con. Lệnh này nên được chạy từ |
--maven-settings-file | Chỉ dành cho Maven, cho phép sử dụng tệp settings.xml tùy chỉnh khi quét phụ thuộc |
--help | Hiển thị các tùy chọn cho lệnh đã cho. |
| Lệnh | Mô tả |
|---|---|
| commit-history | Quét lịch sử commit hoặc thực hiện quét khác biệt giữa các commit cụ thể |
| path | Quét các tệp trong đường dẫn được cung cấp trong lệnh |
| pre-commit | Sử dụng lệnh này để quét nội dung chưa được commit |
| repository | Quét kho lưu trữ git bao gồm cả lịch sử của nó |
Tùy chọn
Tùy chọn Mức độ Nghiêm trọng
Để giới hạn kết quả quét ở một ngưỡng mức độ nghiêm trọng cụ thể, có thể thêm đối số --severity-threshold vào lệnh quét.
Ví dụ: lệnh sau sẽ quét kho lưu trữ để tìm các vi phạm chính sách có mức độ nghiêm trọng Trung bình trở lên:
cycode scan --severity-threshold MEDIUM repository ~/home/git/codebase
Tùy chọn Giám sát
[!LƯU Ý] Tùy chọn này chỉ khả dụng cho các lần quét SCA.
Để đẩy kết quả quét gắn với chính sách SCA được tìm thấy trong một lần quét loại SCA lên Cycode, hãy thêm đối số --monitor vào lệnh quét.
Ví dụ: lệnh sau sẽ quét kho lưu trữ để tìm các vi phạm chính sách SCA và đẩy chúng lên nền tảng Cycode:
cycode scan -t sca --monitor repository ~/home/git/codebase
Tùy chọn Báo cáo Cycode
Đối với mỗi lần quét được thực hiện bằng Cycode CLI, một báo cáo sẽ tự động được tạo và kết quả của nó được gửi đến Cycode. Những kết quả này được gắn với các chính sách liên quan (ví dụ: chính sách SCA cho các lần quét Kho lưu trữ) trong nền tảng Cycode.
Để có URL trực tiếp đến báo cáo Cycode này được in trong đầu ra CLI của bạn sau khi quét hoàn tất, hãy thêm đối số --cycode-report vào lệnh quét của bạn.
cycode scan --cycode-report repository ~/home/git/codebase
Tất cả kết quả quét từ CLI sẽ xuất hiện trong phần Nhật ký CLI của Cycode. Nếu bạn đã bao gồm cờ --cycode-report trong lệnh của mình, một liên kết trực tiếp đến báo cáo cụ thể sẽ được hiển thị trong terminal của bạn sau kết quả quét.
[!CẢNH BÁO] Bạn phải có vai trò
ownerhoặcadmintrong Cycode để xem trang này.

Trang báo cáo sẽ trông giống như bên dưới:

Tùy chọn Lỗ hổng Gói
[!LƯU Ý] Tùy chọn này chỉ khả dụng cho các lần quét SCA.
Để quét một lỗ hổng gói cụ thể của kho lưu trữ cục bộ của bạn, hãy thêm đối số --sca-scan package-vulnerabilities sau tùy chọn -t sca hoặc --scan-type sca.
Trong ví dụ trước, nếu bạn chỉ muốn chạy quét SCA trên các lỗ hổng gói, bạn có thể thực thi lệnh sau:
cycode scan -t sca --sca-scan package-vulnerabilities repository ~/home/git/codebase
Tùy chọn Tuân thủ Giấy phép
[!LƯU Ý] Tùy chọn này chỉ khả dụng cho các lần quét SCA.
Để quét một nhánh cụ thể của kho lưu trữ cục bộ của bạn, hãy thêm đối số --sca-scan license-compliance theo sau là tên của nhánh bạn muốn quét.
Trong ví dụ trước, nếu bạn chỉ muốn quét một nhánh có tên dev, bạn có thể thực thi lệnh sau:
cycode scan -t sca --sca-scan license-compliance repository ~/home/git/codebase -b dev
Tùy chọn Khóa Khôi phục
[!LƯU Ý] Tùy chọn này chỉ khả dụng cho các lần quét SCA.
Khi chạy quét SCA, Cycode CLI tự động cố gắng khôi phục (tạo) một tệp khóa phụ thuộc cho mỗi tệp kê khai được hỗ trợ mà nó tìm thấy. Điều này cho phép quét các phụ thuộc bắc cầu, không chỉ những phụ thuộc được liệt kê trực tiếp trong tệp kê khai. Để bỏ qua bước này và chỉ quét các phụ thuộc trực tiếp, hãy sử dụng cờ --no-restore.
Các hệ sinh thái sau hỗ trợ khôi phục tệp khóa tự động:
| Hệ sinh thái | Tệp kê khai | Tệp khóa được tạo | Công cụ được gọi (khi tệp khóa vắng mặt) |
|---|---|---|---|
| npm | package.json | package-lock.json | npm install --package-lock-only --ignore-scripts --no-audit |
| Yarn | package.json | yarn.lock | yarn install --ignore-scripts |
| pnpm | package.json | pnpm-lock.yaml | pnpm install --ignore-scripts |
| Deno | deno.json / deno.jsonc | deno.lock | (chỉ đọc tệp khóa hiện có) |
| Go | go.mod | go.mod.graph | go list -m -json all + go mod graph |
| Maven | pom.xml | bcde.mvndeps | mvn dependency:tree |
| Gradle | build.gradle / build.gradle.kts | gradle-dependencies-generated.txt | gradle dependencies -q --console plain |
| SBT | build.sbt | build.sbt.lock | sbt dependencyLockWrite |
| NuGet | *.csproj | packages.lock.json | dotnet restore --use-lock-file |
| Ruby | Gemfile | Gemfile.lock | bundle --quiet |
| Poetry | pyproject.toml | poetry.lock | poetry lock |
| Pipenv | Pipfile | Pipfile.lock | pipenv lock |
| PHP Composer | composer.json | composer.lock | composer update --no-cache --no-install --no-scripts --ignore-platform-reqs |
Nếu một tệp khóa đã tồn tại cùng với tệp kê khai, Cycode sẽ đọc trực tiếp tệp đó mà không chạy bất kỳ lệnh cài đặt nào.
Điều kiện tiên quyết cho SBT: Phải cài đặt plugin sbt-dependency-lock. Thêm dòng sau vào project/plugins.sbt:
addSbtPlugin("software.purpledragon" % "sbt-dependency-lock" % "1.5.1")
Tùy chọn Dừng khi có Lỗi
Theo mặc định, Cycode tiếp tục quét ngay cả khi không thể đọc một tệp (ví dụ: do lỗi quyền) hoặc không thể tạo tệp khóa phụ thuộc trong quá trình quét SCA. Mục bị lỗi sẽ bị bỏ qua với một cảnh báo và quá trình quét tiếp tục với các tệp còn lại.
Sử dụng --stop-on-error để thay đổi hành vi này: quá trình quét sẽ hủy bỏ ngay lập tức khi gặp lỗi đầu tiên như vậy và báo cáo lỗi.
cycode scan -t sca --stop-on-error path ~/home/git/codebase
Điều này hữu ích trong các pipeline CI nơi một lỗi âm thầm sẽ tạo ra kết quả quét không đầy đủ. Khi --stop-on-error được kích hoạt, bạn có thể sửa lỗi cơ bản hoặc, đối với các lỗi khôi phục SCA cụ thể, thêm --no-restore để bỏ qua việc tạo tệp khóa và chỉ quét các phụ thuộc trực tiếp.
Khi --stop-on-error được sử dụng, CLI phân biệt giữa lỗi quét và vi phạm chính sách thông qua các mã thoát:
| Mã thoát | Ý nghĩa |
|---|---|
0 | Quét hoàn tất không có vi phạm |
1 | Quét hoàn tất và tìm thấy vi phạm |
2 | Quét bị hủy bỏ do lỗi (chỉ khi --stop-on-error được đặt) |
Quét Kho lưu trữ
Quét kho lưu trữ kiểm tra toàn bộ kho lưu trữ cục bộ để tìm bất kỳ bí mật bị lộ hoặc cấu hình sai không an toàn. Loại quét toàn diện hơn này xem xét mọi thứ: trạng thái hiện tại của kho lưu trữ và lịch sử commit của nó. Nó sẽ không chỉ tìm kiếm các bí mật hiện đang bị lộ trong kho lưu trữ mà còn cả các bí mật đã bị xóa trước đó.
Để thực hiện quét toàn bộ kho lưu trữ, hãy thực thi lệnh sau:
cycode scan repository {{path}}
Ví dụ: nếu bạn muốn quét một kho lưu trữ được lưu trữ trong ~/home/git/codebase, bạn có thể thực thi lệnh sau:
cycode scan repository ~/home/git/codebase
Tùy chọn sau có sẵn để sử dụng với lệnh này:
| Tùy chọn | Mô tả |
|---|---|
-b, --branch TEXT | Nhánh để quét, nếu không đặt sẽ quét nhánh mặc định |
Tùy chọn Nhánh
Để quét một nhánh cụ thể của kho lưu trữ cục bộ của bạn, hãy thêm đối số -b (hoặc --branch) theo sau là tên của nhánh bạn muốn quét.
Với ví dụ trước, nếu bạn chỉ muốn quét một nhánh có tên dev, bạn có thể thực thi lệnh sau:
cycode scan repository ~/home/git/codebase -b dev
Quét Đường dẫn
Quét đường dẫn kiểm tra một thư mục cục bộ cụ thể và tất cả nội dung bên trong nó, thay vì chỉ tập trung vào một kho lưu trữ GIT.
Để thực hiện quét thư mục, hãy thực thi lệnh sau:
cycode scan path {{path}}
Ví dụ: hãy xem xét một tình huống mà bạn muốn quét thư mục nằm tại ~/home/git/codebase. Sau đó, bạn có thể thực thi lệnh sau:
cycode scan path ~/home/git/codebase
Quét Kế hoạch Terraform
Cycode CLI hỗ trợ quét kế hoạch Terraform (hỗ trợ Terraform 0.12 trở lên)
Tệp kế hoạch Terraform phải ở định dạng JSON (có phần mở rộng .json)
Nếu bạn chỉ có tệp cấu hình, bạn có thể tạo một kế hoạch bằng cách thực hiện các bước sau:
-
Khởi tạo một thư mục làm việc chứa tệp cấu hình Terraform:
terraform init -
Tạo kế hoạch thực thi Terraform và lưu đầu ra nhị phân:
terraform plan -out={tfplan_output} -
Chuyển đổi tệp đầu ra nhị phân thành JSON có thể đọc được:
terraform show -json {tfplan_output} > {tfplan}.json -
Quét
{tfplan}.jsoncủa bạn bằng Cycode CLI:cycode scan -t iac path ~/PATH/TO/YOUR/{tfplan}.json
Quét Lịch sử Commit
[!LƯU Ý] Quét Lịch sử Commit không khả dụng cho các lần quét IaC.
Lệnh quét lịch sử commit cung cấp hai khả năng chính:
- Quét Toàn bộ Lịch sử: Phân tích tất cả các commit trong lịch sử kho lưu trữ
- Quét Khác biệt: Chỉ quét các thay đổi giữa các commit cụ thể
Quét bí mật có thể phân tích tất cả các commit trong lịch sử kho lưu trữ vì các bí mật được đưa vào và sau đó bị xóa vẫn có thể bị rò rỉ hoặc lộ ra. Đối với các lần quét SCA và SAST, lệnh lịch sử commit tập trung vào việc quét các khác biệt/thay đổi giữa các commit, làm cho nó trở nên hoàn hảo cho việc xem xét pull request và quét gia tăng.
Quét lịch sử commit kiểm tra lịch sử commit của kho lưu trữ Git của bạn và có thể được sử dụng cho cả phân tích lịch sử toàn diện và quét khác biệt có mục tiêu đối với các thay đổi cụ thể.
Để thực hiện quét lịch sử commit, hãy thực thi lệnh sau:
cycode scan commit-history {{path}}
Ví dụ: hãy xem xét một tình huống mà bạn muốn quét lịch sử commit cho một kho lưu trữ được lưu trữ trong ~/home/git/codebase. Sau đó, bạn có thể thực thi lệnh sau:
cycode scan commit-history ~/home/git/codebase
Các tùy chọn sau có sẵn để sử dụng với lệnh này:
| Tùy chọn | Mô tả |
|---|---|
-r, --commit-range TEXT | Quét một phạm vi commit trong kho git này, theo mặc định cycode quét toàn bộ lịch sử commit (ví dụ: HEAD~1) |
Tùy chọn Phạm vi Commit (Quét Khác biệt)
Tùy chọn phạm vi commit cho phép quét khác biệt – chỉ quét những thay đổi giữa các commit cụ thể thay vì toàn bộ lịch sử kho lưu trữ. Điều này đặc biệt hữu ích cho:
- Xác thực pull request: Chỉ quét những thay đổi được đưa vào trong PR
- Quét CI/CD tăng dần: Tập trung vào các thay đổi gần đây thay vì toàn bộ codebase
- Xem xét nhánh tính năng: So sánh các thay đổi với nhánh main/master
- Tối ưu hiệu năng: Quét nhanh hơn bằng cách giới hạn phạm vi vào các thay đổi liên quan
Cú pháp Phạm vi Commit
Tùy chọn --commit-range (-r) hỗ trợ cú pháp Git revision tiêu chuẩn:
| Cú pháp | Mô tả | Ví dụ |
|---|---|---|
commit1..commit2 | Các thay đổi từ commit1 đến commit2 | abc123..def456 |
commit1...commit2 | Các thay đổi trong commit2 không có trong commit1 | main...feature-branch |
commit | Các thay đổi từ commit đến HEAD | HEAD~1 |
branch1..branch2 | Các thay đổi từ nhánh1 đến nhánh2 | main..feature-branch |
Ví dụ Quét Khác biệt
Quét các thay đổi trong commit cuối cùng:
cycode scan commit-history -r HEAD~1 ~/home/git/codebase
Quét các thay đổi giữa hai commit cụ thể:
cycode scan commit-history -r abc123..def456 ~/home/git/codebase
Quét các thay đổi trong nhánh tính năng của bạn so với main:
cycode scan commit-history -r main..HEAD ~/home/git/codebase
Quét các thay đổi giữa main và một nhánh tính năng:
cycode scan commit-history -r main..feature-branch ~/home/git/codebase
Quét tất cả thay đổi trong 3 commit cuối cùng:
cycode scan commit-history -r HEAD~3..HEAD ~/home/git/codebase
[!TIP] Đối với pipeline CI/CD, bạn có thể sử dụng biến môi trường như
${{ github.event.pull_request.base.sha }}..${{ github.sha }}(GitHub Actions) hoặc$CI_MERGE_REQUEST_TARGET_BRANCH_SHA..$CI_COMMIT_SHA(GitLab CI) để chỉ quét các thay đổi PR/MR.
Quét Trước khi Commit
Quét trước khi commit tự động xác định mọi vấn đề trước khi bạn commit thay đổi vào kho lưu trữ. Không cần thực hiện quét thủ công; hãy cấu hình hook pre-commit như chi tiết trong phần Cài đặt của hướng dẫn này.
Sau khi cài đặt hook pre-commit, đôi khi bạn có thể muốn bỏ qua quét trong một commit cụ thể. Để làm điều này, hãy thêm dòng sau vào lệnh git của bạn để bỏ qua quét cho một commit duy nhất:
SKIP=cycode git commit -m <your commit message>`
Quét Trước khi Push
Quét trước khi push tự động xác định mọi vấn đề trước khi bạn push thay đổi lên kho lưu trữ từ xa. Hook này chạy ở phía máy khách và chỉ quét các commit sắp được push, giúp phát hiện vấn đề hiệu quả trước khi chúng đến kho lưu trữ từ xa.
[!NOTE] Hook pre-push không khả dụng cho quét IaC.
Hook pre-push tích hợp với pre-commit framework và có thể được cấu hình để chạy trước bất kỳ thao tác git push nào.
Cài đặt Hook Pre-Push
Để thiết lập hook pre-push sử dụng pre-commit framework:
-
Cài đặt pre-commit framework (nếu chưa được cài đặt):
pip3 install pre-commit -
Tạo hoặc cập nhật tệp
.pre-commit-config.yamlcủa bạn để bao gồm các hook pre-push:repos: - repo: https://github.com/cycodehq/cycode-cli rev: v3.5.0 hooks: - id: cycode-pre-push stages: [pre-push] -
Đối với nhiều loại quét, sử dụng cấu hình này:
repos: - repo: https://github.com/cycodehq/cycode-cli rev: v3.5.0 hooks: - id: cycode-pre-push # Secrets scan stages: [pre-push] - id: cycode-sca-pre-push # SCA scan stages: [pre-push] - id: cycode-sast-pre-push # SAST scan stages: [pre-push] -
Cài đặt hook pre-push:
pre-commit install --hook-type pre-pushCài đặt thành công sẽ cho ra thông báo:
Pre-push installed at .git/hooks/pre-push. -
Giữ hook pre-push được cập nhật:
pre-commit autoupdate
Cách Quét Pre-Push Hoạt động
Hook pre-push:
- Nhận thông tin về những commit nào đang được push
- Tính toán phạm vi commit phù hợp để quét
- Đối với nhánh mới: quét tất cả commit từ merge base với nhánh mặc định
- Đối với nhánh hiện có: chỉ quét các commit mới kể từ lần push cuối cùng
- Chạy cùng quá trình quét toàn diện như các chế độ quét Cycode khác
Phát hiện Nhánh Mặc định Thông minh
Hook pre-push phát hiện thông minh nhánh mặc định để tính toán merge base theo thứ tự ưu tiên sau:
- Biến Môi trường:
CYCODE_DEFAULT_BRANCH- cho phép ghi đè thủ công - Git Remote HEAD: Sử dụng
git symbolic-ref refs/remotes/origin/HEADđể phát hiện nhánh mặc định thực tế của remote - Git Remote Info: Dự phòng sang
git remote show originnếu symbolic-ref thất bại - Dự phòng Cứng: Sử dụng các tên nhánh mặc định phổ biến (origin/main, origin/master, main, master)
Đặt Nhánh Mặc định Tùy chỉnh:
export CYCODE_DEFAULT_BRANCH=origin/develop
Phát hiện thông minh này đảm bảo hook pre-push hoạt động chính xác bất kể kho lưu trữ của bạn sử dụng main, master, develop, hay bất kỳ tên nhánh mặc định nào khác.
Bỏ qua Quét Pre-Push
Để bỏ qua quét pre-push cho một thao tác push cụ thể, sử dụng:
SKIP=cycode-pre-push git push
Hoặc để bỏ qua tất cả hook pre-push:
git push --no-verify
[!TIP] Hook pre-push được kích hoạt trên lệnh
git pushvà chỉ quét các commit sắp được push, giúp nó hiệu quả hơn so với quét toàn bộ kho lưu trữ.
Loại trừ Đường dẫn khỏi Quét
Bạn có thể sử dụng tệp .cycodeignore để cho Cycode CLI biết những tệp và thư mục nào cần loại trừ khỏi quét.
Nó hoạt động giống như tệp .gitignore. Điều này giúp bạn tập trung quét vào mã liên quan và ngăn một số đường dẫn kích hoạt vi phạm cục bộ.
Cách Hoạt động
- Tạo một tệp có tên
.cycodeignoretrong thư mục làm việc của bạn. - Liệt kê các tệp và thư mục bạn muốn loại trừ, sử dụng cùng mẫu như
.gitignore. - Đặt tệp này trong thư mục nơi bạn dự định chạy lệnh quét cycode.
[!WARNING]
- Tệp không hợp lệ: Nếu tệp
.cycodeignorechứa lỗi cú pháp, quét CLI sẽ thất bại và trả về lỗi.- Bỏ qua đường dẫn so với vi phạm: Tệp này dùng để loại trừ đường dẫn. Nó khác với khả năng bỏ qua các vi phạm cụ thể của CLI (ví dụ: bằng cách sử dụng cờ --ignore-violation).
Trình quét được Hỗ trợ
- SAST
- IaC (sắp ra mắt)
- SCA (sắp ra mắt)
Kết quả Quét
Mỗi lần quét sẽ hoàn thành với thông báo cho biết có tìm thấy vấn đề nào hay không.
Nếu không tìm thấy vấn đề, quét kết thúc với thông báo thành công sau:
Good job! No issues were found!!! 👏👏👏
Nếu tìm thấy vấn đề, thay vào đó một thẻ vi phạm sẽ xuất hiện khi hoàn thành. Trong trường hợp này, bạn nên xem lại tệp được đề cập tại dòng cụ thể được đánh dấu bởi thông báo kết quả. Thực hiện bất kỳ thay đổi cần thiết nào để giải quyết vấn đề, sau đó thực thi lại quét.
Hiện/Ẩn Bí mật
Trong các ví dụ bên dưới, một bí mật đã được tìm thấy trong tệp secret_test, nằm trong thư mục con cli. Phần thứ hai của thông báo hiển thị dòng cụ thể nơi bí mật xuất hiện, trong trường hợp này là một giá trị được gán cho googleApiKey.
Lưu ý cách ví dụ che khuất giá trị bí mật thực tế, thay thế phần lớn bí mật bằng dấu hoa thị. Quét che khuất bí mật theo mặc định, nhưng bạn có thể tùy chọn tắt tính năng này để xem toàn bộ bí mật (giả sử máy bạn đang xem kết quả quét đủ an toàn khỏi ánh mắt tò mò).
Để tắt che khuất bí mật, thêm đối số --show-secret vào bất kỳ loại quét nào.
Trong ví dụ sau, Quét Đường dẫn được thực thi trên thư mục con cli với tùy chọn hiển thị đầy đủ bất kỳ bí mật nào được tìm thấy:
cycode scan --show-secret path ./cli
Kết quả sau đó sẽ không bị che khuất.
Lỗi Mềm
Trong hoạt động bình thường, CLI sẽ trả về mã thoát 1 khi tìm thấy vấn đề trong kết quả quét. Tùy thuộc vào thiết lập CI/CD của bạn, điều này thường dẫn đến thất bại tổng thể. Nếu bạn không muốn điều này xảy ra, bạn có thể sử dụng tính năng lỗi mềm.
Bằng cách thêm tùy chọn --soft-fail vào bất kỳ loại quét nào, mã thoát sẽ bị ép thành 0 bất kể có tìm thấy kết quả nào hay không.
Ví dụ Kết quả Quét
Ví dụ Kết quả Bí mật
╭─────────────────────────────────────────────────────────────── Hardcoded generic-password is used ───────────────────────────────────────────────────────────────╮
│ Violation 12 of 12 │
│ ╭─ 🔍 Details ───────────────────────────────────────╮ ╭─ 💻 Code Snippet ─────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ Severity 🟠 MEDIUM │ │ 34 }; │ │
│ │ In file /Users/cycodemacuser/NodeGoat/test/s │ │ 35 │ │
│ │ ecurity/profile-test.js │ │ 36 var sutUserName = "user1"; │ │
│ │ Secret SHA b4ea3116d868b7c982ee6812cce61727856b │ │ ❱ 37 var sutUserPassword = "Us*****23"; │ │
│ │ 802b3063cd5aebe7d796988552e0 │ │ 38 │ │
│ │ Rule ID 68b6a876-4890-4e62-9531-0e687223579f │ │ 39 chrome.setDefaultService(service); │ │
│ ╰────────────────────────────────────────────────────╯ │ 40 │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ ╭─ 📝 Summary ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ A generic secret or password is an authentication token used to access a computer or application and is assigned to a password variable. │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Ví dụ Kết quả IaC
╭──────────── Enable Content Encoding through the attribute 'MinimumCompressionSize'. This value should be greater than -1 and smaller than 10485760. ─────────────╮
│ Violation 45 of 110 │
│ ╭─ 🔍 Details ───────────────────────────────────────╮ ╭─ 💻 Code Snippet ─────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ Severity 🟠 MEDIUM │ │ 20 BinaryMediaTypes: │ │
│ │ In file ...ads-copy/iac/cft/api-gateway/ap │ │ 21 - !Ref binaryMediaType1 │ │
│ │ i-gateway-rest-api/deploy.yml │ │ 22 - !Ref binaryMediaType2 │ │
│ │ IaC Provider CloudFormation │ │ ❱ 23 MinimumCompressionSize: -1 │ │
│ │ Rule ID 33c4b90c-3270-4337-a075-d3109c141b │ │ 24 EndpointConfiguration: │ │
│ │ 53 │ │ 25 Types: │ │
│ ╰────────────────────────────────────────────────────╯ │ 26 - EDGE │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ ╭─ 📝 Summary ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ This policy validates the proper configuration of content encoding in AWS API Gateway. Specifically, the policy checks for the attribute │ │
│ │ 'minimum_compression_size' in API Gateway REST APIs. Correct configuration of this attribute is important for enabling content encoding of API responses for │ │
│ │ improved API performance and reduced payload sizes. │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Ví dụ Kết quả SCA
╭─────────────────────────────────────────────────────── [CVE-2019-10795] Prototype Pollution in undefsafe ────────────────────────────────────────────────────────╮
│ Violation 172 of 195 │
│ ╭─ 🔍 Details ───────────────────────────────────────╮ ╭─ 💻 Code Snippet ─────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ Severity 🟠 MEDIUM │ │ 26758 "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", │ │
│ │ In file /Users/cycodemacuser/Node │ │ 26759 "dev": true │ │
│ │ Goat/package-lock.json │ │ 26760 }, │ │
│ │ CVEs CVE-2019-10795 │ │ ❱ 26761 "undefsafe": { │ │
│ │ Package undefsafe │ │ 26762 "version": "2.0.2", │ │
│ │ Version 2.0.2 │ │ 26763 "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz", │ │
│ │ First patched version Not fixed │ │ 26764 "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", │ │
│ │ Dependency path nodemon 1.19.1 -> │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │ undefsafe 2.0.2 │ │
│ │ Rule ID 9c6a8911-e071-4616-86db-4 │ │
│ │ 943f2e1df81 │ │
│ ╰────────────────────────────────────────────────────╯ │
│ ╭─ 📝 Summary ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ undefsafe before 2.0.3 is vulnerable to Prototype Pollution. The 'a' function could be tricked into adding or modifying properties of Object.prototype using │ │
│ │ a __proto__ payload. │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Ví dụ Kết quả SAST
╭───────────────────────────────────────────── [CWE-208: Observable Timing Discrepancy] Observable Timing Discrepancy ─────────────────────────────────────────────╮
│ Violation 24 of 49 │
│ ╭─ 🔍 Details ───────────────────────────────────────╮ ╭─ 💻 Code Snippet ─────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ Severity 🟠 MEDIUM │ │ 173 " including numbers, lowercase and uppercase letters."; │ │
│ │ In file /Users/cycodemacuser/NodeGoat/app │ │ 174 return false; │ │
│ │ /routes/session.js │ │ 175 } │ │
│ │ CWE CWE-208 │ │ ❱ 176 if (password !== verify) { │ │
│ │ Subcategory Security │ │ 177 errors.verifyError = "Password must match"; │ │
│ │ Language js │ │ 178 return false; │ │
│ │ Security Tool Bearer (Powered by Cycode) │ │ 179 } │ │
│ │ Rule ID 19fbca07-a8e7-4fa6-92ac-a36d15509 │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │ fa9 │ │
│ ╰────────────────────────────────────────────────────╯ │
│ ╭─ 📝 Summary ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ Observable Timing Discrepancy occurs when the time it takes for certain operations to complete can be measured and observed by attackers. This vulnerability │ │
│ │ is particularly concerning when operations involve sensitive information, such as password checks or secret comparisons. If attackers can analyze how long │ │
│ │ these operations take, they might be able to deduce confidential details, putting your data at risk. │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Hướng dẫn Khắc phục Tùy chỉnh của Công ty
Nếu công ty bạn đã đặt hướng dẫn khắc phục tùy chỉnh trong chính sách liên quan qua cổng Cycode, bạn sẽ thấy trường “Company Guidelines” chứa các hướng dẫn khắc phục bạn đã thêm. Lưu ý rằng nếu bạn chưa thêm bất kỳ hướng dẫn công ty nào, trường này sẽ không xuất hiện trong công cụ CLI.
Bỏ qua Kết quả Quét
Có thể thêm quy tắc bỏ qua để bỏ qua các giá trị bí mật cụ thể, giá trị SHA512 cụ thể, đường dẫn cụ thể, và ID quy tắc bí mật và IaC cụ thể của Cycode. Điều này sẽ khiến quét không cảnh báo các giá trị này. Các quy tắc bỏ qua được viết và lưu cục bộ trong tệp ./.cycode/config.yaml.
[!WARNING] Việc thêm giá trị để bỏ qua nên được cân nhắc cẩn thận về các giá trị, đường dẫn và chính sách để đảm bảo rằng quét sẽ phát hiện đúng các dương tính thật.
Sau đây là các tùy chọn khả dụng cho lệnh cycode ignore:
| Tùy chọn | Mô tả |
|---|---|
--by-value TEXT | Bỏ qua một giá trị cụ thể khi quét bí mật. Xem Bỏ qua Giá trị Bí mật để biết thêm chi tiết. |
--by-sha TEXT | Bỏ qua một biểu diễn SHA512 cụ thể của một chuỗi khi quét bí mật. Xem Bỏ qua Giá trị SHA Bí mật để biết thêm chi tiết. |
--by-path TEXT | Tránh quét một đường dẫn cụ thể. Cần chỉ định loại quét. Xem Bỏ qua Đường dẫn để biết thêm chi tiết. |
--by-rule TEXT | Bỏ qua quét một ID quy tắc bí mật/ID quy tắc IaC/ID quy tắc SCA cụ thể. Xem Bỏ qua Quy tắc Bí mật hoặc IaC để biết thêm chi tiết. |
--by-package TEXT | Bỏ qua quét một phiên bản gói cụ thể khi chạy quét SCA. Mẫu mong đợi - name@version. Xem Bỏ qua Gói để biết thêm chi tiết. |
--by-cve TEXT | Bỏ qua quét một CVE cụ thể khi chạy quét SCA. Mẫu mong đợi: CVE-YYYY-NNN. |
-t, --scan-type [secret|iac|sca|sast] | Chỉ định quét bạn muốn thực thi (secret/iac/sca/sast). Giá trị mặc định là secret. |
-g, --global | Thêm quy tắc bỏ qua và cập nhật nó trong tệp cấu hình toàn cục .cycode. |
Bỏ qua Giá trị Bí mật
Để bỏ qua một giá trị bí mật cụ thể, bạn sẽ cần sử dụng cờ --by-value. Điều này sẽ bỏ qua giá trị bí mật đã cho khỏi tất cả các lần quét trong tương lai. Sử dụng lệnh sau để thêm giá trị bí mật cần bỏ qua:
cycode ignore --by-value {{secret-value}}
Trong ví dụ ở đầu phần này, lệnh để bỏ qua một giá trị bí mật cụ thể như sau:
cycode ignore --by-value h3110w0r1d!@#$350
Trong ví dụ trên, thay thế giá trị h3110w0r1d!@#$350 bằng giá trị bí mật không bị che của bạn. Xem các tùy chọn quét Cycode để biết chi tiết về cách xem giá trị bí mật trong kết quả quét.
Bỏ qua Giá trị SHA Bí mật
Để bỏ qua một giá trị SHA bí mật cụ thể, bạn sẽ cần sử dụng cờ --by-sha. Điều này sẽ bỏ qua giá trị SHA bí mật đã cho khỏi tất cả các lần quét trong tương lai. Sử dụng lệnh sau để thêm giá trị SHA bí mật cần bỏ qua:
cycode ignore --by-sha {{secret-sha-value}}
Trong ví dụ ở đầu phần này, lệnh để bỏ qua một giá trị SHA bí mật cụ thể như sau:
cycode ignore --by-sha a44081db3296c84b82d12a35c446a3cba19411dddfa0380134c75f7b3973bff0
Trong ví dụ trên, hãy thay thế giá trị a44081db3296c84b82d12a35c446a3cba19411dddfa0380134c75f7b3973bff0 bằng giá trị SHA bí mật của bạn.
Bỏ qua một Đường dẫn
Để bỏ qua một đường dẫn cụ thể cho các lần quét bí mật, IaC hoặc SCA, bạn sẽ cần sử dụng cờ --by-path cùng với cờ -t, --scan-type (bạn phải chỉ định loại quét). Điều này sẽ bỏ qua đường dẫn đã cho khỏi tất cả các lần quét trong tương lai đối với loại quét đã chỉ định. Sử dụng lệnh sau để thêm một đường dẫn cần bỏ qua:
cycode ignore -t {{scan-type}} --by-path {{path}}
Trong ví dụ ở đầu phần này, lệnh để bỏ qua một đường dẫn cụ thể cho bí mật như sau:
cycode ignore -t secret --by-path ~/home/my-repo/config
Trong ví dụ trên, hãy thay thế giá trị ~/home/my-repo/config bằng giá trị đường dẫn của bạn.
Trong ví dụ ở đầu phần này, lệnh để bỏ qua một đường dẫn cụ thể khỏi các lần quét IaC như sau:
cycode ignore -t iac --by-path ~/home/my-repo/config
Trong ví dụ trên, hãy thay thế giá trị ~/home/my-repo/config bằng giá trị đường dẫn của bạn.
Trong ví dụ ở đầu phần này, lệnh để bỏ qua một đường dẫn cụ thể khỏi các lần quét SCA như sau:
cycode ignore -t sca --by-path ~/home/my-repo/config
Trong ví dụ trên, hãy thay thế giá trị ~/home/my-repo/config bằng giá trị đường dẫn của bạn.
Bỏ qua một Quy tắc Bí mật, IaC, SCA hoặc SAST
Để bỏ qua một quy tắc bí mật, IaC, SCA hoặc SAST cụ thể, bạn sẽ cần sử dụng cờ --by-rule cùng với cờ -t, --scan-type (bạn phải chỉ định loại quét). Điều này sẽ bỏ qua giá trị ID quy tắc đã cho khỏi tất cả các lần quét trong tương lai. Sử dụng lệnh sau để thêm một giá trị ID quy tắc cần bỏ qua:
cycode ignore -t {{scan-type}} --by-rule {{rule-ID}}
Trong ví dụ ở đầu phần này, lệnh để bỏ qua ID quy tắc bí mật cụ thể như sau:
cycode ignore -t secret --by-rule ce3a4de0-9dfc-448b-a004-c538cf8b4710
Trong ví dụ trên, hãy thay thế giá trị ce3a4de0-9dfc-448b-a004-c538cf8b4710 bằng ID quy tắc bạn muốn bỏ qua.
Trong ví dụ ở đầu phần này, lệnh để bỏ qua ID quy tắc IaC cụ thể như sau:
cycode ignore -t iac --by-rule bdaa88e2-5e7c-46ff-ac2a-29721418c59c
Trong ví dụ trên, hãy thay thế giá trị bdaa88e2-5e7c-46ff-ac2a-29721418c59c bằng ID quy tắc bạn muốn bỏ qua.
Trong ví dụ ở đầu phần này, lệnh để bỏ qua ID quy tắc SCA cụ thể như sau:
cycode ignore -t sca --by-rule dc21bc6b-9f4f-46fb-9f92-e4327ea03f6b
Trong ví dụ trên, hãy thay thế giá trị dc21bc6b-9f4f-46fb-9f92-e4327ea03f6b bằng ID quy tắc bạn muốn bỏ qua.
Bỏ qua một Gói
[!NOTE] Tùy chọn này chỉ khả dụng cho các lần quét SCA.
Để bỏ qua một gói cụ thể trong các lần quét SCA, bạn sẽ cần sử dụng cờ --by-package cùng với cờ -t, --scan-type (bạn phải chỉ định loại quét sca). Điều này sẽ bỏ qua gói đã cho, sử dụng định dạng {{package_name}}@{{package_version}}, khỏi tất cả các lần quét trong tương lai. Sử dụng lệnh sau để thêm một gói và phiên bản cần bỏ qua:
cycode ignore --scan-type sca --by-package {{package_name}}@{{package_version}}
HOẶC
cycode ignore -t sca --by-package {{package_name}}@{{package_version}}
Trong ví dụ dưới đây, lệnh để bỏ qua một gói SCA cụ thể như sau:
cycode ignore --scan-type sca --by-package [email protected]
Trong ví dụ trên, hãy thay thế pyyaml bằng tên gói và 5.3.1 bằng phiên bản gói bạn muốn bỏ qua.
Bỏ qua thông qua tệp cấu hình
Các quy tắc bỏ qua được áp dụng sẽ được lưu trữ trong tệp cấu hình có tên config.yaml.
Tệp này có thể dễ dàng được chia sẻ giữa các nhà phát triển hoặc thậm chí commit lên Git từ xa.
Các tệp này luôn nằm trong thư mục .cycode.
Thư mục bắt đầu bằng dấu chấm (.), và bạn nên bật hiển thị các tệp ẩn để thấy nó.
Đường dẫn của các tệp cấu hình
Theo mặc định, tất cả các lệnh cycode ignore lưu quy tắc bỏ qua vào thư mục hiện tại nơi CLI được chạy.
Ví dụ: chạy lệnh CLI bỏ qua từ /Users/name/projects/backend sẽ tạo config.yaml trong /Users/name/projects/backend/.cycode
➜ backend pwd
/Users/name/projects/backend
➜ backend cycode ignore --by-value test-value
➜ backend tree -a
.
└── .cycode
└── config.yaml
2 directories, 1 file
Tùy chọn thứ hai là lưu các quy tắc bỏ qua vào các tệp cấu hình toàn cục.
Đường dẫn của cấu hình toàn cục là ~/.cycode/config.yaml,
trong đó ~ có nghĩa là users home directory, for example, /Users/name` trên macOS.
Việc lưu vào không gian toàn cục có thể được thực hiện với cờ -g của lệnh cycode ignore.
Ví dụ: cycode ignore -g --by-value test-value.
Thư mục làm việc phù hợp
Việc đặt thư mục .cycode và chạy CLI từ cùng một vị trí là cực kỳ quan trọng.
Bạn nên kiểm tra kỹ điều này khi làm việc với các môi trường khác nhau như CI/CD (GitHub Actions, Jenkins, v.v.).
Bạn có thể commit thư mục .cycode vào thư mục gốc của kho lưu trữ của mình. Trong trường hợp này, bạn phải chạy các lần quét CLI từ thư mục gốc của kho lưu trữ. Nếu điều đó không phù hợp với yêu cầu của bạn, bạn có thể tạm thời sao chép thư mục .cycode đến bất kỳ đâu bạn muốn và thực hiện quét CLI từ thư mục này.
Cấu trúc các quy tắc bỏ qua trong cấu hình
Điều quan trọng là phải hiểu cách CLI lưu trữ các quy tắc bị bỏ qua để có thể đọc các tệp cấu hình này hoặc thậm chí sửa đổi chúng mà không cần CLI.
Cấu trúc YAML trừu tượng:
exclusions:
{scanTypeName}:
{ignoringType}:
- someIgnoringValue1
- someIgnoringValue2
Các giá trị có thể có của scanTypeName: iac, sca, sast, secret.
Các giá trị có thể có của ignoringType: paths, values, rules, packages, shas, cves.
[!WARNING] Các giá trị cho "bỏ qua theo giá trị" không được lưu trữ dưới dạng văn bản thuần túy! CLI lưu trữ các hàm băm sha256 của các giá trị thay thế. Bạn nên đặt các hàm băm của chuỗi khi sửa đổi tệp cấu hình bằng tay.
Ví dụ về config.yaml thực tế:
exclusions:
iac:
rules:
- bdaa88e2-5e7c-46ff-ac2a-29721418c59c
sca:
packages:
- [email protected]
secret:
paths:
- /Users/name/projects/build
rules:
- ce3a4de0-9dfc-448b-a004-c538cf8b4710
shas:
- a44081db3296c84b82d12a35c446a3cba19411dddfa0380134c75f7b3973bff0
values:
- a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
- 60303ae22b998861bce3b28f33eec1be758a213c86c93c076dbe9f558c11c752
Lệnh Báo cáo
Tạo Báo cáo SBOM
Danh sách vật liệu phần mềm (SBOM) là một bản kiểm kê tất cả các thành phần cấu thành và phụ thuộc phần mềm liên quan đến việc phát triển và phân phối một ứng dụng. Sử dụng lệnh này, bạn có thể tạo một báo cáo SBOM cho dự án cục bộ của mình hoặc cho URI kho lưu trữ của bạn.
Các tùy chọn sau đây có sẵn để sử dụng với lệnh này:
| Tùy chọn | Mô tả | Bắt buộc | Mặc định |
|---|---|---|---|
-f, --format [spdx-2.2|spdx-2.3|cyclonedx-1.4] | Định dạng SBOM | Có | |
-o, --output-format [JSON] | Chỉ định định dạng tệp đầu ra | Không | json |
--output-file PATH | Tệp đầu ra | Không | tên tệp tự động tạo được lưu vào thư mục hiện tại |
--include-vulnerabilities | Bao gồm các lỗ hổng | Không | False |
--include-dev-dependencies | Bao gồm các phụ thuộc phát triển | Không | False |
Các lệnh sau đây có sẵn để sử dụng với lệnh này:
| Lệnh | Mô tả |
|---|---|
path | Tạo báo cáo SBOM cho đường dẫn được cung cấp trong lệnh |
repository-url | Tạo báo cáo SBOM cho URI kho lưu trữ được cung cấp trong lệnh |
Kho lưu trữ
Để tạo báo cáo SBOM cho một URI kho lưu trữ:
cycode report sbom --format <sbom format> --include-vulnerabilities --include-dev-dependencies --output-file </path/to/file> repository_url <repository url>
Ví dụ:
cycode report sbom --format spdx-2.3 --include-vulnerabilities --include-dev-dependencies repository_url https://github.com/cycodehq/cycode-cli.git
Dự án Cục bộ
Để tạo báo cáo SBOM cho một đường dẫn:
cycode report sbom --format <sbom format> --include-vulnerabilities --include-dev-dependencies --output-file </path/to/file> path </path/to/project>
Ví dụ:
cycode report sbom --format spdx-2.3 --include-vulnerabilities --include-dev-dependencies path /path/to/local/project
Lệnh con path hỗ trợ các tùy chọn bổ sung sau:
| Tùy chọn | Mô tả |
|---|---|
--no-restore | Bỏ qua khôi phục lockfile và chỉ quét các phụ thuộc trực tiếp. Xem Tùy chọn Khôi phục Khóa để biết chi tiết. |
--gradle-all-sub-projects | Chạy lệnh khôi phục Gradle cho tất cả các dự án con (sử dụng từ thư mục gốc của bản dựng Gradle đa dự án). |
--maven-settings-file | Chỉ dành cho Maven, cho phép sử dụng tệp settings.xml tùy chỉnh khi xây dựng cây phụ thuộc. |
Lệnh Nhập
Nhập SBOM
Danh sách vật liệu phần mềm (SBOM) là một bản kiểm kê tất cả các thành phần cấu thành và phụ thuộc phần mềm liên quan đến việc phát triển và phân phối một ứng dụng. Sử dụng lệnh này, bạn có thể nhập một tệp SBOM từ hệ thống tệp của mình vào Cycode.
Các tùy chọn sau đây có sẵn để sử dụng với lệnh này:
| Tùy chọn | Mô tả | Bắt buộc | Mặc định |
|---|---|---|---|
-n, --name TEXT | Tên hiển thị của SBOM | Có | |
-v, --vendor TEXT | Tên của thực thể đã cung cấp SBOM | Có | |
-l, --label TEXT | Đính kèm nhãn cho SBOM | Không | |
-o, --owner TEXT | Địa chỉ email của người dùng Cycode đóng vai trò là đầu mối liên hệ cho SBOM này | Không | |
-b, --business-impact [High | Medium | Low] | Tác động Kinh doanh | Không | Medium |
Ví dụ:
cycode import sbom --name example-sbom --vendor cycode -label tag1 -label tag2 --owner [email protected] /path/to/local/project
Nhật ký Quét
Tất cả các lần quét CLI đều được ghi nhật ký trong Cycode. Có thể tìm thấy nhật ký trong Cài đặt > Nhật ký CLI.
Trợ giúp Cú pháp
Bạn có thể thêm đối số --help vào bất kỳ lệnh nào bất cứ lúc nào để xem thông báo trợ giúp hiển thị các tùy chọn có sẵn và cú pháp của chúng.
Để xem trợ giúp chung, chỉ cần nhập lệnh:
cycode --help
Để xem các tùy chọn quét, hãy nhập:
cycode scan --help
Để xem các tùy chọn có sẵn cho một loại quét cụ thể, hãy nhập:
cycode scan {{option}} --help
Ví dụ: để xem các tùy chọn có sẵn cho Quét Đường dẫn, bạn sẽ nhập:
cycode scan path --help
Để xem các tùy chọn có sẵn cho chức năng bỏ qua quét, hãy sử dụng lệnh này:
cycode ignore --help
Để xem các tùy chọn có sẵn cho báo cáo, hãy sử dụng lệnh này:
cycode report --help
Để xem các tùy chọn có sẵn cho một loại báo cáo cụ thể, hãy nhập:
cycode scan {{option}} --help