ป้ายกำกับ: SAST

SonarQube: คุณครูระเบียบSonarQube: คุณครูระเบียบ

เหมือน “ครูภาษาไทย / คณิตศาสตร์ / ภาษาอังกฤษ” ที่คอยตรวจการบ้านเพื่อให้แน่ใจว่างานของคุณ สะอาด เป็นระเบียบ และไม่มีจุดบกพร่องในระยะยาว ครับ

SonarQube เป็นแพลตฟอร์มแบบ Open-platform สำหรับการทำ Static Application Security Testing ( SAST ) และตรวจวัด Code Quality โดยอัตโนมัติ


📊 4 เสาหลักที่ SonarQube ตรวจสอบ

  1. Bugs: ตรวจหาข้อผิดพลาดทาง Logic ที่อาจทำให้โปรแกรมพัง ( เช่น Null Pointer Dereference หรือ Infinite Loops )
  2. Vulnerabilities: ตรวจหาช่องโหว่ด้านความปลอดภัยเบื้องต้น ( เช่น SQL Injection, Hardcoded Passwords )
  3. Code Smells: ตรวจหาโค้ดที่ “อ่านยาก” หรือ “ดูแลยาก” ( Maintainability ) เช่น ฟังก์ชันที่ยาวเกินไป หรือตัวแปรที่ประกาศไว้แต่ไม่ได้ใช้
  4. Security Hotspots: ชี้จุดที่ดู “น่าสงสัย” ในเชิงความปลอดภัย เพื่อให้ Developer เข้ามาตรวจสอบด้วยตัวเอง ( Review manual )

💡 ฟีเจอร์เด่นที่ขาดไม่ได้

  • Code Coverage: บอกเราว่า Unit Test ที่เขียนไปนั้นครอบคลุม Source Code กี่เปอร์เซ็นต์ ( ถ้าตัวเลขต่ำเกินไป ระบบจะเตือน )
  • Duplications: ตรวจสอบว่ามีการ Copy-Paste โค้ดซ้ำ ๆ หรือไม่ เพื่อลดความซ้ำซ้อน
  • Quality Gate: เป็นการตั้ง “เกณฑ์มาตรฐาน” ( เช่น ต้องไม่มี Bug ใหม่ และ Coverage ต้องเกิน 80% ) หากไม่ผ่านเกณฑ์นี้ SonarQube จะไม่อนุญาตให้ Merge Code หรือผ่าน Pipeline
  • Multi-Language: รองรับมากกว่า 30 ภาษา ( Java, C#, JavaScript, TypeScript, Python, PHP, Go และอื่น ๆ )

🔄 ความแตกต่างระหว่าง Trivy vs SonarQube

เพื่อให้เห็นภาพชัดเจนในสายงาน DevSecOps

คุณลักษณะTrivySonarQube
จุดเน้นหลักInfrastructure & Security ( Image, OS, Library )Application Code Quality ( Logic, Structure, Syntax )
สิ่งที่สแกนDocker Image, Packages, IaC, SecretSource Code ( Inside out )
ความเร็วเร็วมาก ( สแกนได้บ่อยทุกครั้งที่ Build )ช้ากว่า ( มักสแกนตอนทำ CI หรือ Pull Request )
การใช้งานป้องกันช่องโหว่ภายนอกและ Misconfigป้องกันหนี้ทางเทคนิค ( Technical Debt )

🛠️ ตัวอย่างการนำไปใช้ ( Workflow )

ในฐานะที่คุณทำงานด้าน System Analyst และ Developer คุณอาจเห็น Workflow นี้ในองค์กร

  1. Developer เขียนโค้ดและ Push ขึ้น Git
  2. SonarQube Scan ทำงานเพื่อตรวจความสะอาดของโค้ด ( ถ้าไม่ผ่าน Quality Gate ให้แก้ใหม่ )
  3. Build Image และใช้ Trivy Scan เพื่อตรวจหาช่องโหว่ในระดับ OS และ Library
  4. ถ้าผ่านทั้งคู่ ถึงจะอนุญาตให้ Deploy ขึ้น Server

สรุปง่ายๆ: อยากให้ระบบ “ปลอดภัย” ใช้ Trivy อยากให้โค้ด “สุขภาพดี” ใช้ SonarQube ครับ


อ่านเพิ่มเติม