การวิเคราะห์องค์ประกอบซอฟต์แวร์ (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 monitorDependabot และ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- SAST และ DAST ในไปป์ไลน์ CI/CD
- การวิเคราะห์องค์ประกอบซอฟต์แวร์ (SCA)
- การสแกนข้อมูลลับและข้อมูลรับรองที่ฝังตายตัว
- ผู้ประสานงานด้านความปลอดภัยและการสร้างแบบจำลองภัยคุกคาม