0Pricing
Cyber Security Academy · บทเรียน

การวิเคราะห์องค์ประกอบซอฟต์แวร์ (SCA)

สแกนส่วนพึ่งพาเพื่อค้นหา CVE ที่ทราบแล้วด้วย OWASP Dependency-Check, Snyk หรือ GitHub Dependabot

การวิเคราะห์องค์ประกอบซอฟต์แวร์ (SCA) เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

SCA คืออะไร

การวิเคราะห์องค์ประกอบซอฟต์แวร์ (SCA) ระบุส่วนพึ่งพาแบบเปิดในโครงการของคุณและตรวจสอบกับฐานข้อมูลช่องโหว่ (NVD, CVE, คำแนะนำด้านความปลอดภัยของ GitHub) นอกจากนี้ยังแจ้งปัญหาการปฏิบัติตามสิทธิ์การใช้งานด้วย

เหตุใดส่วนพึ่งพาจากบุคคลที่สามจึงมีความเสี่ยง

แอปพลิเคชันสมัยใหม่ใช้ไลบรารีแบบเปิดหลายร้อยรายการ ไลบรารีที่มีช่องโหว่เพียงรายการเดียวอาจทำให้แอปพลิเคชันทั้งหมดตกอยู่ในความเสี่ยง ช่องโหว่ Log4Shell ในปี 2021 (CVE-2021-44228) ส่งผลกระทบต่อแอปพลิเคชัน Java หลายล้านรายการ เนื่องจากไลบรารีสำหรับบันทึกข้อมูลการทำงานที่มีการใช้งานอย่างแพร่หลายเพียงรายการเดียว

เครื่องมือ SCA

เครื่องมือ SCA ที่นิยม:

# npm audit (Node.js):
npm audit
npm audit fix

# pip-audit (Python):
pip-audit

# OWASP Dependency-Check:
dependency-check.sh --project myapp --scan ./

# Snyk:
snyk test
snyk monitor

Dependabot และ Renovate

เครื่องมืออัปเดตส่วนพึ่งพาอัตโนมัติ:

  • Dependabot (GitHub) — เปิด PR โดยอัตโนมัติเพื่ออัปเดตส่วนพึ่งพาที่มีช่องโหว่
  • Renovate — ปรับแต่งได้มากกว่าและรองรับทะเบียนซอฟต์แวร์มากกว่า

เปิดใช้งานเครื่องมือเหล่านี้ในทุกคลังรหัส เพราะช่วยลดภาระงานด้วยมือในการติดตามการอัปเดตส่วนพึ่งพา

การทำความเข้าใจระดับความรุนแรงของ CVE

ช่องโหว่ในส่วนพึ่งพาไม่ได้สามารถใช้โจมตีได้ในบริบทของคุณทุกกรณี ควรประเมินสิ่งต่อไปนี้:

  • เส้นทางการทำงานของรหัสที่มีช่องโหว่สามารถเข้าถึงได้ในการใช้งานของคุณหรือไม่
  • แอปพลิเคชันของคุณเปิดให้ใช้ฟังก์ชันดังกล่าวหรือไม่
  • WAF หรือกลไกควบคุมอื่นช่วยลดผลกระทบได้หรือไม่

คะแนน CVSS เป็นเพียงจุดเริ่มต้น บริบทเป็นตัวกำหนดความเสี่ยงที่แท้จริง

ส่วนพึ่งพาทางอ้อม

ส่วนพึ่งพาโดยตรงมีส่วนพึ่งพาของตนเองอีกทอดหนึ่ง (ส่วนพึ่งพาทางอ้อม) ช่องโหว่ในไลบรารีที่คุณไม่เคยได้ยินชื่ออาจยังส่งผลกระทบต่อคุณได้ เครื่องมือ SCA จะทำแผนผังส่วนพึ่งพาทั้งหมด เรียกใช้ npm ls หรือ pip show -r requirements.txt เพื่อตรวจสอบแผนผัง

npm ls --all | grep "vulnerable-pkg"
pip show requests | grep Requires

รายการส่วนประกอบซอฟต์แวร์ (SBOM)

SBOM คือรายการส่วนประกอบทั้งหมดในผลิตภัณฑ์ซอฟต์แวร์อย่างเป็นทางการ คำสั่งฝ่ายบริหาร 14028 (US) กำหนดให้ซอฟต์แวร์ที่จำหน่ายให้รัฐบาล US ต้องมี SBOM รูปแบบที่ใช้ ได้แก่ SPDX และ CycloneDX

# Generate SBOM with syft:
syft . -o cyclonedx-json > sbom.json
# Scan SBOM for vulnerabilities:
grype sbom:./sbom.json

การปฏิบัติตามสิทธิ์การใช้งาน

SCA ตรวจสอบสิทธิ์การใช้งานด้วย ส่วนพึ่งพาที่ใช้สิทธิ์ GPL ในซอฟต์แวร์เชิงพาณิชย์อาจทำให้ต้องเผยแพร่รหัสของคุณเป็นแบบเปิด โดยทั่วไป LGPL, MIT และ Apache 2.0 มีเงื่อนไขที่เอื้อให้ใช้งานได้อย่างยืดหยุ่น ทีมกฎหมายจำเป็นต้องมองเห็นสิทธิ์การใช้งานของส่วนพึ่งพา และ SCA จะจัดข้อมูลนี้ให้โดยอัตโนมัติ

การโจมตีห่วงโซ่อุปทาน

ผู้โจมตีแทรกรหัสอันตรายลงในแพ็กเกจแบบเปิดที่ได้รับความนิยม:

  • การตั้งชื่อเลียนแบบเพื่อหลอกให้พิมพ์ผิด: reqeusts แทน requests
  • บัญชีผู้ดูแลที่ถูกเจาะ (รูปแบบ SolarWinds)
  • ความสับสนของส่วนพึ่งพา: ชื่อแพ็กเกจส่วนตัวรั่วไหลไปยังทะเบียนสาธารณะ

SCA ที่มีการตรวจสอบความถูกต้องครบถ้วน (ผลรวมตรวจสอบและแฟ้มล็อก) ช่วยลดความเสี่ยงนี้

แฟ้มล็อก

แฟ้มล็อก (package-lock.json, Pipfile.lock) จะตรึงเวอร์ชันที่แน่นอนและตรวจสอบผลรวมตรวจสอบ ควรส่งแฟ้มล็อกเข้าไปในระบบควบคุมรหัสต้นฉบับ ห้ามใช้ npm install --legacy-peer-deps เพื่อข้ามการตรวจสอบแฟ้มล็อกในรุ่นที่สร้างสำหรับระบบใช้งานจริง

SCA ในกระบวนการผสานรวมและส่งมอบอย่างต่อเนื่อง

ผสานรวม SCA เป็นจุดตรวจบังคับของกระบวนการ CI:

# GitHub Actions example:
- name: Run npm audit
  run: npm audit --audit-level=high
# Fail build on HIGH/CRITICAL findings
# Use --audit-level=moderate for stricter posture

ตรวจสอบความเข้าใจอย่างรวดเร็ว: SCA

จุดประสงค์หลักของการวิเคราะห์องค์ประกอบซอฟต์แวร์ (SCA) คืออะไร

สรุปบทเรียน

SCA สแกนส่วนพึ่งพาของโครงการเพื่อค้นหา CVE ที่ทราบแล้ว ปัญหาด้านสิทธิ์การใช้งาน และความเสี่ยงจากห่วงโซ่อุปทาน สิ่งนี้สำคัญเนื่องจากส่วนพึ่งพาทางอ้อม เพราะช่องโหว่ในไลบรารีที่เป็นส่วนพึ่งพาของไลบรารีอีกทอดหนึ่งยังส่งผลกระทบต่อคุณได้ เปิดใช้งาน Dependabot หรือ Renovate เพื่อรับการอัปเดตโดยอัตโนมัติ สร้าง SBOM (SPDX/CycloneDX) เพื่อให้มองเห็นห่วงโซ่อุปทาน แฟ้มล็อกจะตรึงเวอร์ชันและตรวจสอบผลรวมตรวจสอบ ผสานรวม SCA เป็นจุดตรวจของ CI พร้อมกำหนดเกณฑ์ระดับความรุนแรง

คำถามที่พบบ่อย

บทเรียน “การวิเคราะห์องค์ประกอบซอฟต์แวร์ (SCA)” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การวิเคราะห์องค์ประกอบซอฟต์แวร์ (SCA)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การวิเคราะห์องค์ประกอบซอฟต์แวร์ (SCA)”

สแกนส่วนพึ่งพาเพื่อค้นหา CVE ที่ทราบแล้วด้วย OWASP Dependency-Check, Snyk หรือ GitHub Dependabot คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การวิเคราะห์องค์ประกอบซอฟต์แวร์ (SCA)” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม

ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. SAST และ DAST ในไปป์ไลน์ CI/CD
  2. การวิเคราะห์องค์ประกอบซอฟต์แวร์ (SCA)
  3. การสแกนข้อมูลลับและข้อมูลรับรองที่ฝังตายตัว
  4. ผู้ประสานงานด้านความปลอดภัยและการสร้างแบบจำลองภัยคุกคาม
← กลับไปที่ Cyber Security Academy