Marketplace

Xây dựng Content trên Marketplace

Tài liệu này hướng dẫn Creator upload nội dung (content pack) lên Marketplace của hệ thống SecOps. Nội dung package bao gồm cả Public và Private.


Hướng dẫn upload nội dung lên Git

Bước 1: Tải CLI

Tải CLI theo đường link sau: Coming soon

Bước 2: Xây dựng Content trên CLI

1. Cấu hình xác thực

  • Đầu tiên, người dùng cần cấu hình IAM service account credentials:
ccsp-client add-access-key \
  --id     <ACCESS_KEY_ID> \
  --secret <ACCESS_KEY_SECRET> \
  --project <PROJECT_ID>

Trong đó:

  • <ACCESS_KEY_ID> và <ACCESS_KEY_SECRET> được tạo từ tính năng "Access Key" trong Platform Management.
  • Sau khi đã cấu hình xác thực, credentials được lưu tại:
OSĐường dẫn
Linux/ macOS~/.csop-client/config
Windows%USERPROFILE%.csop-client\config

2. Khởi tạo Package

  • Tạo cấu trúc thư mục và file package.json mẫu cho một package mới.
# Cú pháp: 
ccsp-client init <package-name>

# Ví dụ:
ccsp-client init my-security-package
  • Output:
# Trả về dòng lệnh
Package 'my-security-package' initialized successfully!

# Cấu trúc package:

<package-name>/
├── package.json          # Metadata bắt buộc
├── README.md             # Tài liệu (khuyến nghị)
├── connectors/           # Cấu hình connector (.json)
├── dashboards/           # Định nghĩa dashboard (.json)
├── parsers/              # Log parser (.yaml / .yml)
└── rules/
    ├── streaming/        # Streaming detection rules (.yaml / .yml)
    └── correlation/      # Correlation rules (.yaml / .yml)

Trong đó, chi tiết package JSON bao gồm:

TrườngKiểu dữ liệuBắt buộcMô tả
authorstringTên tác giả / username
categoryarrayDanh sách category
descriptionstringMô tả ngắn gọn
namestringTên định danh package
publicbooleanBao gồm: Public / Private (giá trị mặc định)
vendorstringCông ty / tổ chức sở hữu
versionstringSemantic version MAJOR.MINOR.PATCH

Bước 2: Xây dựng content pack

Hiện tại, hệ thống chỉ đang support xây dựng content cho: Parser và Rule (Streaming)

Bước 3: Kiểm thử nội dung

1. Validate cấu trúc

# Cú pháp:
ccsp-client validate <package-path>

# Ví dụ:

ccsp-client validate my-security-package
ccsp-client validate ./path/to/package
ccsp-client validate .   # validate thư mục hiện tại
# Output thành công:
Validating package...
Package validation successful!
Your package is ready for testing and publishing.

# Output lỗi (Ví dụ):
Validating package...
Validation failed: package.json: missing required field "vendor"
Chú ý: Các điều kiện validation:
  • File package.json phải tồn tại và hợp lệ JSON
  • Các trường bắt buộc: name, description, version, vendor, author, category
  • Ít nhất một thư mục con (parsers/, rules/, dashboards/, connectors/) phải có nội dung
  • Tất cả file .yaml/.yml phải có cú pháp YAML hợp lệ
  • Tất cả file .json phải có cú pháp JSON hợp lệ

2. Kiểm thử ở Sandbox

Gửi parsers và rules đến backend sandbox để kiểm thử. Yêu cầu credentials.

# Cú pháp:
ccsp-client test <package-path>

# Ví dụ:
ccsp-client test my-security-package
ccsp-client test ./path/to/package
# Output thành công:
Testing package files...
 Test passed: parsers/apache-parser.yaml
 Test passed: rules/streaming/suspicious-login.json
 Test success: 2 file(s) tested successfully

# Ví dụ output lỗi:
Credentials not found. Please run 'ccsp-client add-access-key' first
Lưu ý: Chạy validate trước test để phát hiện lỗi cú pháp mà không tốn API call.
Rule testing: Khi test rule (.yaml/.yml trong rules/), backend không cần sample data, chỉ validate cú pháp và cấu trúc Sigma YAML. Kết quả trả về validation_status cho biết rule hợp lệ hay không.

Bước 4: Xuất bản nội dung lên Marketplace

Lưu ý:
  • Đối với Public Package, sau khi nội dung được publish lên hệ thống Git, các gói này sẽ ở trạng thái chờ (Pending). Quản trị viên cần thực hiện phê duyệt (Approve) để nội dung chính thức hiển thị trên Marketplace.
  • Đối với Private Package, nội dung package sẽ hiển thị ngay trên Marketplace sau khi creator publish lên mà không cần qua bước phê duyệt của Admin

Validate, nén và upload package lên SecOps Marketplace. Yêu cầu credentials.

#Cú pháp:
ccsp-client publish <package-path>
ccsp-client publish <package-path>:<version>
# Ví dụ:
ccsp-client publish my-security-package
# Chỉ định version cụ thể
ccsp-client publish my-security-package:1.0.2
ccsp-client publish ./path/to/package:1.0.5
Quick edit: Có thể sửa nhanh version bằng cách điền sau mà không cần điền vào package.json
# Output thành công:
Publishing package...
 Package validation passed
 Created archive: my-security-package.zip
 Package published successfully
Your package is now pending review by the marketplace team

Bước 5: Quản trị viên Approve Content Pack (chỉ áp dụng với Public Package)

Admin thực hiện approve content pack trên GIT. Sau khi được approve, nội dung của gói sẽ được đẩy lên Marketplace.

logo
CMC Telecom
Aspire to Inspire the Digital World