> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudthinker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Bắt đầu nhanh với Cyber

> Đăng ký một ứng dụng staging, xác minh tên miền, thêm người dùng thử nghiệm, rồi chạy pentest Safe đầu tiên và đọc các phát hiện mà pentest chứng minh được.

Với khoảng 10 phút thiết lập, cộng thời gian để thay đổi DNS có hiệu lực, bạn sẽ đăng ký một ứng dụng staging, chứng minh bạn sở hữu tên miền của ứng dụng, cung cấp cho Cyber một tài khoản đăng nhập thử nghiệm, giới hạn lượt chạy trong các đường dẫn bạn chọn, và bắt đầu một pentest Safe. Khi lượt chạy kết thúc, bạn mở một phát hiện và đọc request và response chứng minh phát hiện đó.

## Điều kiện tiên quyết

* Bản triển khai staging hoặc test của ứng dụng web hoặc API mà bạn được phép kiểm thử. Đừng dùng production cho lượt chạy đầu tiên.
* Quyền truy cập bản ghi DNS cho tên miền của ứng dụng đó, để bạn có thể thêm bản ghi TXT.
* Quyền admin workspace, hoặc một admin có thể xác minh tên miền giúp bạn. Người dùng khác sẽ thấy **Ask a workspace admin to verify** thay vì bằng chứng DNS. Admin xác minh từ **Cyber → Settings**, hoặc bằng cách mở thẻ **Target ownership** của ứng dụng này.
* Tùy chọn: một tài khoản thử nghiệm riêng trong ứng dụng (tên đăng nhập và mật khẩu). Không có tài khoản này, Cyber chỉ kiểm thử những gì khách chưa đăng nhập có thể truy cập.

## Đăng ký ứng dụng

**1. Mở Cyber**

Nhấn **Cyber** trong thanh bên. Trên workspace mới, bạn sẽ thấy **Nothing to test yet**. Nhấn **Register an App**. Nếu đã có ứng dụng, nhấn **New app** trong **Apps** ở thanh bên của Cyber.

**2. Nhập mục tiêu**

Ở **Target**, điền:

| Trường | Ví dụ |
| - | - |
| **App name** | `Shop staging` |
| **Application URL** | `https://staging.shop.example.com` |
| **What to test** | **Web application** cho ứng dụng trình duyệt, **API** cho API. Chọn một. |

Nhấn **Continue**. Mục tiêu và framework không thể thay đổi sau khi thiết lập, vì vậy hãy kiểm tra ngay bây giờ.

![Bước Set up a pentest với App name, Application URL và lựa chọn Web application hoặc API.](https://mintcdn.com/cloudthinker/7N5Axt6gSxkmeWiW/images/v2/cyber-new-app.webp?fit=max\&auto=format\&n=7N5Axt6gSxkmeWiW\&q=85\&s=4bac477f4ca7a82c8f1d25742540b0c4)

Thiết lập pentest: đặt tên ứng dụng, nhập URL và chọn Web application hoặc API

**3. Xác minh tên miền**

Trong **Target ownership**, nhấn **Create DNS proof**. Sao chép **DNS record name** và **TXT value**, rồi thêm chúng dưới dạng bản ghi TXT tại nhà cung cấp DNS. Với `https://staging.shop.example.com`, bản ghi trông như sau:

| Loại | Tên | Giá trị |
| - | - | - |
| TXT | `_cloudthinker-appsec-<random>.staging.shop.example.com` | `cloudthinker-appsec-domain-verification=<token>` |

Nếu nhà cung cấp tự động thêm tên zone, hãy bỏ hậu tố đó khỏi tên. Sau đó nhấn **Check again**. Tên miền đã xác minh cũng bao phủ các subdomain, nên admin xác minh `example.com` trong **Cyber → Settings** cũng bao phủ `staging.shop.example.com`.

**Trạng thái thành công:** **Target ownership** hiển thị **Verified**. Thay đổi DNS có thể mất vài phút để có hiệu lực; hãy kiểm tra lại tên và giá trị trước khi thử lại.

## Thêm người dùng thử nghiệm (tùy chọn)

Không có tài khoản thử nghiệm? Nhấn **Continue** ở **Access** và chuyển đến [Chọn cường độ và lưu](#chọn-cường-độ-và-lưu).

**1. Mở biểu mẫu người dùng thử nghiệm**

Ở **Access**, nhấn **Add test user**.

**2. Mô tả tài khoản**

Điền thông tin người dùng này là ai, để Cyber biết họ nên và không nên thấy gì:

| Trường | Ví dụ |
| - | - |
| **Identity label** | `customer-a` |
| **Identity description** | `Standard customer who owns test orders` |
| **Persona or role** | `Customer` |
| **Tenant** | `Tenant A` |

Đặt **Authentication method** là **Password**, rồi nhập **Username or email**, **Password**, và **Login URL (optional)** nếu trang đăng nhập không dễ tìm từ trang chủ. Với cửa hàng ví dụ, đặt là `https://staging.shop.example.com/login`. Nhấn **Save login**.

**Trạng thái thành công:** người dùng xuất hiện trong danh sách và bộ đếm hiển thị **1 added**. Thông tin xác thực đã lưu được che.

Lưu không đồng nghĩa với đăng nhập, nên mật khẩu đã lưu chưa chứng tỏ là dùng được. Lượt chạy đăng nhập khi bắt đầu, và nếu đăng nhập thất bại thì lượt chạy kết thúc ở trạng thái **Failed** thay vì kiểm thử như khách chưa đăng nhập. **Login URL** phải cùng origin với ứng dụng. Với đăng nhập cần MFA hoặc nằm trên tên miền identity provider riêng, hãy dùng **Session token**: xem [Thêm người dùng thử nghiệm](https://docs.cloudthinker.io/vi/guide/security/pentest.md#thêm-người-dùng-thử-nghiệm).

**3. Bỏ qua những gì bạn không có**

Repository và tài liệu API là tùy chọn. Bỏ qua chúng cho lượt chạy này và nhấn **Continue**. Các kiểm tra cần đến chúng được liệt kê là bị giới hạn ở bước tiếp theo, không được đánh dấu là đạt.

> [!TIP]
>
> Thêm người dùng thử nghiệm thứ hai từ một vai trò hoặc tenant khác. Với hai người dùng, Cyber có thể kiểm thử xem người này có đọc được dữ liệu của người kia hay không.

## Chọn cường độ và lưu

**1. Xem lại phần tóm tắt**

Ở **Start**, đọc **Pentest summary**. **Coverage status** hiển thị **Ready** hoặc **Ready with limitations**. Nhấn **Show limited checks** để xem lượt chạy này không thể kiểm thử gì và tại sao.

**2. Chọn Safe**

Trong **Testing intensity**, chọn **Safe**. Các bài kiểm thử ở mức Safe chỉ gửi request đọc (`GET`, `HEAD`, `OPTIONS`), nên thao tác ghi và xóa có chủ đích bị tắt trong toàn bộ lượt chạy. Request đọc vẫn có thể thay đổi dữ liệu nếu ứng dụng của bạn thay đổi trạng thái khi nhận `GET` (xem [bảng cường độ](https://docs.cloudthinker.io/vi/guide/security/pentest.md#chọn-mức-truy-cập-và-cường-độ)). Đăng nhập người dùng thử nghiệm bằng mật khẩu là một bước riêng, nên bước này vẫn có thể gửi biểu mẫu đăng nhập ở mức Safe. Cường độ bạn chọn ở đây được lưu thành **Default intensity** của ứng dụng, nên hộp thoại chạy sẽ chọn sẵn mức này về sau.

Giao diện đánh dấu **Aggressive** là **Recommended**. Mức này thêm `POST`, `PUT` và `PATCH` để kiểm thử biểu mẫu và luồng, nên có thể tạo và chỉnh sửa dữ liệu thử nghiệm. Hãy để dành mức này cho lượt chạy thứ hai, sau khi bạn đã kiểm tra phạm vi. Để **Full** và **Deep dive** cho sau: chúng gửi request phá hủy, bao gồm `DELETE`. Cả bốn mức được so sánh trong [Chạy pentest](https://docs.cloudthinker.io/vi/guide/security/pentest.md#chọn-mức-truy-cập-và-cường-độ).

**3. Nhấn Run later**

Thiết lập không có bước phạm vi, nên **Start pentest** ở đây sẽ kiểm thử toàn bộ mục tiêu. Thay vào đó, hãy nhấn **Run later**.

**Trạng thái thành công:** ứng dụng đã lưu mở ra mà chưa có lượt chạy nào.

## Đặt phạm vi

**1. Mở Manage scope**

Trong phần đầu của ứng dụng, nhấn **Settings**. Trong **Scope**, nhấn **Manage scope**.

**2. Thêm đường dẫn include và exclude**

Thêm các đường dẫn mà lượt chạy đầu tiên này được phép kiểm thử vào **Include paths**, và mọi thứ phải nằm ngoài giới hạn vào **Exclude paths**. Với cửa hàng ví dụ:

| Danh sách | Quy tắc |
| - | - |
| **Include paths** | `/login`, `/shop/**`, `/api/products/**` |
| **Exclude paths** | `/admin/**`, `/api/payments/**` |

`**` khớp với mọi độ sâu, và đường dẫn khớp cả hai danh sách sẽ bị loại trừ. **Login URL** của người dùng thử nghiệm phải khớp một rule include, nếu không đăng nhập sẽ thất bại với **Login could not stay within its safety boundary** và lượt chạy kết thúc ở trạng thái **Failed**. Đó là lý do `/login` có trong ví dụ. Nhấn **Save scope**. Quy tắc về pattern có trong [Đặt phạm vi và ngữ cảnh](https://docs.cloudthinker.io/vi/guide/security/pentest.md#thiết-lập-phạm-vi-và-ngữ-cảnh).

**Trạng thái thành công:** bạn thấy **Scope saved**, và phần tóm tắt **Scope** đếm số rule include và exclude thay vì hiển thị **Full target**.

## Bắt đầu pentest

**1. Mở hộp thoại chạy**

Trong phần đầu của ứng dụng, nhấn **Run pentest**. Kiểm tra rằng **Safe** được chọn trong các thẻ cường độ kiểm thử.

**2. Khởi chạy**

Nhấn **Run Safe pentest**.

**Trạng thái thành công:** khu vực làm việc của lượt chạy mở ra và lượt chạy hiển thị **Running**, với timeline trực tiếp về những gì Cyber đang kiểm thử.

![Lịch sử lượt chạy, timeline trực tiếp, phát hiện và bề mặt tấn công đã phát hiện.](https://mintcdn.com/cloudthinker/_u5eRuTpYujlERGZ/images/security/cyber/08-run-workbench.png?fit=max\&auto=format\&n=_u5eRuTpYujlERGZ\&q=85\&s=f6006424c4888f08190fe3e16f2e3de2)

Bạn có thể rời khỏi trang. Lượt chạy tiếp tục tối đa ba giờ và tiêu tốn credit (xem [Usage](https://docs.cloudthinker.io/vi/guide/billing/usage.md)). Không có thông báo khi kết thúc, vì vậy hãy quay lại tab **Runs** của ứng dụng để kiểm tra. Nếu người dùng thử nghiệm bằng mật khẩu không đăng nhập được, lượt chạy kết thúc ở trạng thái **Failed**, nên cũng hãy kiểm tra tab **Runs** cho trường hợp đó. Chỉ khi một **Session token** thất bại ở bước kiểm tra lúc lượt chạy bắt đầu thì mới có thêm thông báo **Pentest run blocked**. Để hủy, nhấn **Stop run**. Lượt chạy đã dừng không thể tiếp tục, nhưng các phát hiện đã lưu vẫn còn.

## Đọc các phát hiện

**1. Mở Findings**

Khi lượt chạy hiển thị **Success**, mở tab **Findings** của ứng dụng. Tab **Confirmed** được chọn theo mặc định: đây là các cuộc tấn công đã tái hiện được.

**2. Mở một phát hiện**

Nhấn vào một phát hiện. Trang chi tiết hiển thị mức độ nghiêm trọng, danh mục OWASP, tác động, cách khắc phục và bằng chứng: chính xác **Request** và **Response** chứng minh vấn đề.

**3. Quyết định cần làm gì**

Với vấn đề thực sự, chọn **Create PR with agent** để CloudThinker soạn bản sửa, hoặc theo dõi trên bảng. Chat sửa lỗi dùng các repository được gắn với ứng dụng. Hướng dẫn nhanh này đã bỏ qua bước đó, vì vậy hãy gắn một repository trước: xem [Kết nối Git provider](https://docs.cloudthinker.io/vi/guide/connections/github.md). Với vấn đề không thực sự là lỗi, hãy bỏ qua kèm lý do. Các phát hiện trong **Needs verification** là manh mối mà Cyber chưa chứng minh được.

Lượt chạy không có phát hiện được xác nhận không có nghĩa là ứng dụng an toàn. Hãy kiểm tra các kiểm tra bị giới hạn từ bước **Start**: bất cứ thứ gì Cyber không truy cập được đều chưa được kiểm thử.

## Khắc phục sự cố

Để xem mọi vấn đề của Cyber ở một nơi, xem [Khắc phục sự cố Cyber](https://docs.cloudthinker.io/vi/guide/security/cyber-troubleshooting.md).

> **Target ownership vẫn ở Needs proof**
>
> So sánh bản ghi TXT bạn đã công bố với **DNS record name** và **TXT value** được hiển thị. Nguyên nhân phổ biến là nhà cung cấp tự thêm tên zone, khiến tên miền xuất hiện hai lần trong tên bản ghi. Xóa phần trùng lặp, chờ vài phút và nhấn **Check again**.

> **Lượt chạy kết thúc ở Failed ngay sau khi bắt đầu**
>
> Người dùng thử nghiệm không đăng nhập được. Lưu mật khẩu không kiểm tra mật khẩu đó, nên lần kiểm tra đầu tiên diễn ra khi lượt chạy bắt đầu, và đăng nhập thất bại sẽ dừng lượt chạy thay vì kiểm thử như khách chưa đăng nhập. Cập nhật mật khẩu hoặc **Login URL** trong **Settings** của ứng dụng tại **Test identities**, và chạy lại. Với MFA hoặc đăng nhập trên tên miền khác, hãy dùng **Session token**.

> **Trang đăng nhập có CAPTCHA**
>
> Cấu hình tùy chọn CAPTCHA trên người dùng thử nghiệm trước khi chạy. Xem [Xử lý đăng nhập có CAPTCHA](https://docs.cloudthinker.io/vi/guide/security/captcha.md).

## Bước tiếp theo

**Hướng dẫn chi tiết:** theo một phát hiện đã được chứng minh từ một pentest staging có giới hạn phạm vi đến bản sửa đã xác minh trong [Pentest ứng dụng staging với Cyber](https://docs.cloudthinker.io/vi/guide/use-cases/cyber-pentest-staging.md).

> **[Khắc phục sự cố Cyber](https://docs.cloudthinker.io/vi/guide/security/cyber-troubleshooting.md)**
>
> Mọi vấn đề của Cyber ở một nơi, kèm nguyên nhân, cách kiểm tra và cách sửa

> **[Phân loại phát hiện](https://docs.cloudthinker.io/vi/guide/security/cyber-findings.md)**
>
> Xử lý bằng chứng, bản sửa và kiểm thử lại

> **[Chạy pentest](https://docs.cloudthinker.io/vi/guide/security/pentest.md)**
>
> Thêm rule phạm vi, nhiều quyền truy cập hơn và lịch chạy


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.