Zennoxa Shield คือแพลตฟอร์ม DevSecOps ที่สแกนซอร์สโค้ด, dependency, secret, container และ infrastructure-as-code แล้วจัดลำดับว่าควรแก้อะไรก่อนตามความเสี่ยงจริง คู่มือนี้ครอบคลุมทุกฟีเจอร์ — ตั้งแต่ login ครั้งแรกไปจนถึง CLI, การเชื่อมต่อ และ admin panel
มีอะไรในระบบบ้าง
ภาพรวมของทุกฟีเจอร์ที่มีอยู่จริงใน Shield ตอนนี้ — ตรวจสอบกับซอร์สโค้ดของระบบแล้วทุกตัว
ภาพรวมความปลอดภัย: การ์ด KPI, โดนัทความรุนแรง, กราฟจำนวนสแกน 7 วัน, ตาราง Top 10 Critical และสแกนล่าสุด — อัปเดตสดผ่าน WebSocket
สร้างโปรเจกต์จาก GitHub, GitLab, Bitbucket หรือ URL แบบ HTTPS พร้อม credential ต่อโปรเจกต์และสั่งสแกนโดยเลือก branch
ประวัติการสแกนพร้อมไทม์ไลน์แบบสด, รายละเอียดต่อสแกน, ไฟล์ที่สแกน, KPI ความรุนแรง และรายงานให้ดาวน์โหลด
กรองตามความรุนแรงและสถานะ KEV, เรียงตาม priority, กางดูโค้ด และเปิดหน้ารายละเอียดที่มี rule ID, EPSS, KEV และการ์ด AI Analysis
ดาวน์โหลดผลสแกนเป็น HTML, JSON, SARIF, Markdown หรือ CycloneDX SBOM พร้อมปุ่ม Copy Markdown — จากหน้ารายละเอียดสแกน
เกรดคุณภาพโค้ด A–F ต่อสแกน คำนวณจากโค้ดซ้ำ, code smell, ฟังก์ชันยาว, ความซ้อน และสัดส่วนเทสต์
แผนที่ dependency ข้าม repo แบบโต้ตอบได้ (npm, go.mod, Helm, ArgoCD, k8s) hover เพื่อไฮไลต์และดูหลักฐานของเส้นเชื่อม
คะแนนความเสี่ยง 0–100 รวม CVSS, EPSS, CISA KEV และ reachability เป็น 5 ระดับ ให้แก้สิ่งที่เสี่ยงสุดก่อน
แชตในระบบเกี่ยวกับ finding และกฎ — ตัวตอบแบบ deterministic ออฟไลน์ พร้อมชั้น LLM แบบนำมาเอง(ไม่บังคับ) และ fallback อัตโนมัติ
GitHub App/PAT, GitLab, Bitbucket, Jira, Slack, Teams, อีเมล, Obsidian และ webhook ขาออกแบบเซ็นลายเซ็น — ทั้งระดับองค์กรและต่อโปรเจกต์
REST API ยืนยันตัวตนด้วย Bearer token ครอบคลุมโปรเจกต์, สแกน, finding และการเชื่อมต่อ — ใช้จาก CI/CD และ CLI ได้
ตัวสแกนภาษา Go: login ผ่านเบราว์เซอร์, สแกน secrets + SAST ในเครื่องด้วย zone policy, ส่งผล และจัดการ apps ข้าม repo
เข้าสู่ระบบ
เข้าสู่ระบบที่ shield.zennoxa.com เพื่อไปยังแดชบอร์ด
- 1เปิด https://shield.zennoxa.com แล้วกรอกอีเมลและรหัสผ่าน
- 2คลิก "Sign In" — แดชบอร์ดจะเปิดให้อัตโนมัติ
- 3ถ้าเปิด 2FA ไว้ ให้กรอกรหัส 6 หลักจากแอป authenticator (หรือรหัสสำรอง)
แดชบอร์ด
หน้าแรกหลัง login แสดงภาพรวมความปลอดภัยขององค์กรทั้งหมดแบบสด
- 1การ์ด KPI 4 ใบด้านบน — Critical Findings, High Findings, Projects, Total Scans — แต่ละใบลิงก์ไปหน้าที่กรองแล้ว
- 2โดนัท "Findings by Severity" และกราฟแท่ง "Scans per day" (7 วันล่าสุด มี tooltip ตอน hover)
- 3ตาราง "Top 10 Critical" เรียงตามคะแนน priority พร้อมเลเยอร์ที่ตรวจพบและ reachability
- 4ตาราง "Recent Scans" พร้อมป้ายสถานะ — ทั้งหน้าอัปเดตเองผ่าน WebSocket เมื่อมีสแกนเริ่มหรือเสร็จ
โปรเจกต์
โปรเจกต์คือหนึ่ง repository ที่ต้องการสแกน สร้างหนึ่งโปรเจกต์ต่อหนึ่ง repo
- 1ที่ /projects คลิก "+ New Project"
- 2กรอกชื่อโปรเจกต์ (Slug จะเติมให้อัตโนมัติ) ทั้งสองช่องต้องกรอก
- 3ใช้แท็บ "From GitHub" เลือก repo จาก GitHub App ที่เชื่อมไว้ หรือ "Enter URL manually" สำหรับ URL แบบ HTTPS ของ GitHub, GitLab, Bitbucket, Azure DevOps หรือ self-hosted (ใส่ access token สำหรับ repo private)
- 4คลิก "Create Project" — จะไปที่หน้าโปรเจกต์ จด Project ID ไว้ใช้ตอนสแกนด้วย CLI
การสแกน
สั่งสแกนจากโปรเจกต์และดูแบบสด ทุกสแกนถูกเก็บไว้ในประวัติ
- 1ที่หน้าโปรเจกต์ คลิก "Trigger Scan" เลือก branch (หรือพิมพ์เอง) แล้ว "Start Scan" — สถานะเปลี่ยนเป็น RUNNING
- 2ไทม์ไลน์ความคืบหน้าแสดงขั้นตอน (cloning → scanning → analyzing → reporting → done) ยังไม่มี repo? กด "Try Demo Scan"
- 3เปิด /scans เพื่อดูประวัติทั้งหมด หรือคลิกสแกนเพื่อดูไฟล์ที่สแกน, KPI ความรุนแรง, ปัญหา license และรายงาน
ช่องโหว่ (Findings)
ช่องโหว่ทุกจุดที่พบ พร้อมความรุนแรง คะแนนความเสี่ยง และคำแนะนำวิธีแก้
- 1ที่ /findings ใช้ชิปกรองความรุนแรง (All, Critical, High, Medium, Low, Info) และตัวกรอง KEV
- 2คลิก "By Priority" เพื่อเรียงตามคะแนนความเสี่ยงแทนป้ายความรุนแรง — ความเสี่ยงจริงสูงสุดขึ้นก่อน
- 3คลิก chevron ที่แถวเพื่อกางดูโค้ดที่มีปัญหา; คลิกข้อความเพื่อเปิดหน้ารายละเอียด (rule ID, CWE, EPSS, สถานะ KEV)
- 4ถ้ามีคำอธิบาย AI การ์ด "AI Analysis" จะแสดงคำอธิบายภาษาคนและวิธีแก้ที่แนะนำ
รายงาน & Export
ส่งออกผลสแกนได้หลายรูปแบบ ปุ่ม export อยู่ในหน้ารายละเอียดสแกน (ไม่มีหน้า Reports แยกต่างหาก)
- 1เปิดสแกนจาก /scans (หรือจากโปรเจกต์)
- 2ใช้ปุ่มดาวน์โหลดเพื่อ export เป็น HTML, JSON, SARIF, Markdown หรือ CycloneDX SBOM — ดาวน์โหลดแบบยืนยันตัวตนและคลิกเดียว
- 3ใช้ "Copy Markdown" เพื่อวางรายงานลงในเครื่องมืออื่นหรือผู้ช่วย AI
เกรดคุณภาพโค้ด
นอกจากความปลอดภัย Shield ยังให้เกรดคุณภาพโค้ดแบบ SonarQube กับแต่ละสแกน
- 1เปิดหน้ารายละเอียดสแกน — การ์ด Code Quality Grade แสดงป้ายเกรด A–F แบบมีสี
- 2เกรดคือคะแนนถ่วงน้ำหนัก 0–100 จากโค้ดซ้ำ, code smell, ฟังก์ชันยาว, ความซ้อนลึก และสัดส่วนเทสต์
- 3การ์ดแสดงปัญหาหลักที่ทำให้เกรดต่ำ ให้รู้ว่าควร refactor อะไรก่อน
กราฟ
แผนที่แบบโต้ตอบว่า repository ของคุณพึ่งพากันอย่างไร
- 1เปิด /graph เพื่อดูเครือข่าย dependency ข้าม repo ที่ตรวจพบระหว่างสแกน (npm, go.mod, Helm, ArgoCD, Kubernetes)
- 2hover ที่ node เพื่อไฮไลต์การเชื่อมต่อ; hover ที่เส้นเพื่อดูไฟล์หลักฐานเบื้องหลังการเชื่อมนั้น
ผู้ช่วย AI
แชตในระบบที่ตอบคำถามเกี่ยวกับ finding และกฎของคุณ
- 1เปิด /assistant แล้วถามคำแนะนำเช่น "What should I fix first?" หรือคำถามของคุณเอง (เช่น "what is GENERIC-SECRET?")
- 2มันตอบทันทีจากแคตตาล็อกกฎที่คัดมา พร้อมอ้างอิง rule ID — เห็นเฉพาะ finding ขององค์กรคุณเท่านั้น
ตั้งค่า
จัดการบัญชี, ความปลอดภัย และ credential ที่เชื่อมไว้
- 1โปรไฟล์: แก้ชื่อและอีเมล (การเปลี่ยนอีเมลจะส่งลิงก์ยืนยัน)
- 2รหัสผ่าน: เปลี่ยนได้ (อย่างน้อย 8 ตัวอักษร พร้อมยืนยัน)
- 3การยืนยันสองชั้น (2FA): สแกน QR (หรือกรอก secret) ในแอป authenticator แล้วบันทึกรหัสสำรองที่ดาวน์โหลดได้
API Key
มี credential 2 ชนิด: dashboard API key (znx_) สำหรับเรียก API/CI ตรงๆ และ CLI token (shield_cli_) สำหรับ command line
- 1ไปที่ Settings > API Keys แล้วคลิก "Create key"
- 2ตั้งชื่อคีย์และเลือกวันหมดอายุ — ไม่มีวันหมดอายุ หรือ 7 / 30 / 90 / 365 วัน หรือกำหนดเอง (ค่าเริ่มต้น 30 วัน)
- 3คัดลอกคีย์ znx_ แบบเต็มทันที — แสดงครั้งเดียว ทีหลังเห็นแค่ส่วนต้น, rotate ได้ (คีย์เก่าหยุดทำงานทันที) หรือ revoke ได้
curl -H "Authorization: Bearer znx_your_key_here" \
https://shield.zennoxa.com/api/...การเชื่อมต่อ
เชื่อม Shield เข้ากับเครื่องมือที่ทีมใช้อยู่ — ทั้งระดับองค์กรและต่อโปรเจกต์
- 1ระดับองค์กร (Settings > Integrations): ติดตั้ง GitHub App (หรือเพิ่ม GitHub PAT สำหรับ self-hosted/enterprise) และเพิ่ม outbound webhook แบบเซ็นลายเซ็นสำหรับ event scan.completed / scan.failed
- 2ต่อโปรเจกต์ (ที่หน้าโปรเจกต์): GitLab & Bitbucket webhook, สร้าง issue ใน Jira และแจ้งเตือน Slack / Teams / Email พร้อมตัวกรองความรุนแรงขั้นต่ำ
- 3Obsidian: เชื่อม vault ที่ backed ด้วย git เพื่อ sync บันทึก triage สองทาง
ระดับความสำคัญ (Priority)
Shield จัดลำดับ finding ด้วยคะแนนความเสี่ยงที่คำนวณได้ ให้แก้สิ่งที่เสี่ยงสุดก่อน — ไม่ใช่แค่ป้ายความรุนแรงดิบ
- 1แต่ละ finding ได้คะแนน 0–100 = CVSS (30%) + EPSS (30%) + KEV (25%) + Reachability (15%)
- 2ระดับ: 80 ขึ้นไป = critical, 60–79 = high, 40–59 = medium, 20–39 = low, ต่ำกว่า 20 = info
- 3ที่ /findings คลิก "By Priority" เพื่อเรียงตามคะแนนนี้
เอกสาร API
ทุกอย่างในแดชบอร์ดมี REST API รองรับ เรียกได้จาก CI/CD หรือเครื่องมือของคุณเอง
- 1ยืนยันตัวตนด้วย Bearer token — dashboard API key (znx_) สำหรับเรียกตรง/CI หรือ CLI token (shield_cli_) สำหรับ CLI
- 2Base URL คือ https://shield.zennoxa.com/api/ — endpoint ครอบคลุมโปรเจกต์, สแกน, finding, quality gate, การเชื่อมต่อ และผู้ช่วย
- 3หน้า /docs สาธารณะอธิบายการเริ่มต้น, การใช้ CLI และกฎตรวจจับทั้งหมด
CLI
สแกนจาก terminal — เหมาะกับ GitHub Actions และ CI/CD อื่นๆ กฎฝังในไบนารีแล้ว (ไม่ต้องมีโฟลเดอร์กฎ)
- 1ติดตั้ง: โหลดไบนารีของ OS คุณจากหน้า GitHub Releases, ทำให้รันได้ แล้ววางไว้ใน PATH จากนั้นยืนยันตัวตน: รัน "shield login" (แบบโต้ตอบ) หรือตั้ง SHIELD_CLI_TOKEN สำหรับ headless/CI
- 2สแกนและส่งผล: shield scan . --submit --project ID --org ID เพิ่ม --zone (dev/staging/production) เพื่อเลือกเลเยอร์ที่รันและระดับที่ block
- 3เลือกรายงานด้วย --format (json/html/sarif) และ --output; CLI ออกด้วยโค้ด 2 เมื่อ zone policy block (ทำให้ CI ล้มเหลว)
- 4ดูผลบนแดชบอร์ด — CLI ไม่มีคำสั่ง list แต่ "shield apps list" แสดง Shield Apps ข้าม repo
# Download the CLI for your platform from GitHub Releases (macOS / Linux / Windows):
curl -L https://github.com/Zennoxa/shield/releases/latest/download/shield-linux-amd64 -o shield
chmod +x shield && sudo mv shield /usr/local/bin/shield
shield version# Headless / CI: use a CLI token (shield_cli_, not a znx_ key)
export SHIELD_CLI_TOKEN=shield_cli_your_token_here
shield scan . --submit \
--project YOUR-PROJECT-ID --org YOUR-ORG-ID \
--api-url https://shield.zennoxa.com- name: Shield scan
env:
SHIELD_CLI_TOKEN: ${{ secrets.SHIELD_CLI_TOKEN }}
run: |
shield scan . --submit \
--project ${{ vars.SHIELD_PROJECT }} \
--org ${{ vars.SHIELD_ORG }} --zone productionผู้ใช้
เชิญและจัดการทีมของคุณ (เฉพาะ admin)
- 1ที่ Admin > Users คลิก "Invite user" กรอกอีเมล แล้วเลือก role: Admin (สิทธิ์เต็ม), Member (สร้างโปรเจกต์และสแกน) หรือ Viewer (อ่านอย่างเดียว)
- 2คลิก "Send invite" — รหัสผ่านชั่วคราวใช้ครั้งเดียวจะปรากฏ คัดลอกและส่งให้อย่างปลอดภัย ผู้ใช้จะเปลี่ยนตอน login ครั้งแรก
- 3เปลี่ยน role ได้จากตารางเลย หรือคลิกไอคอนถังขยะสีแดงเพื่อลบผู้ใช้ (มีการยืนยัน)
ฟีดแบ็ก
อ่านฟีดแบ็กจากลูกค้าที่ส่งมาจากหน้าเว็บ marketing
- 1เปิด Admin > Feedback — แต่ละรายการมีป้ายหมวด (Bug / Feature / Integration / Question / Other), หน้าที่ส่งมา และวันที่
- 2คลิกอีเมลผู้ส่ง (ถ้ามี) เพื่อตอบกลับโดยตรง
สถานะระบบ
มุมมองสถานะการทำงานของแพลตฟอร์มแบบสด (เฉพาะ admin)
- 1เปิด Admin > System — แถบด้านบนแสดง "All systems operational" หรือ "System degraded"
- 2การ์ด KPI แสดงการเชื่อมต่อฐานข้อมูล (total/active/idle), WebSocket client ที่ทำงาน และการตรวจสุขภาพ API
- 3รายการบริการรายงานสถานะ Database, API server และ Dashboard แยกกัน