ป้ายกำกับ: โจมตีได้

SonarQubeSonarQube

SonarQube เป็นแพลตฟอร์มแบบ Open Source ที่ใช้สำหรับ Static Application Security Testing ( SAST ) หรือการตรวจสอบคุณภาพ Code โดยไม่ต้องรันโปรแกรม เพื่อช่วยให้ทีมพัฒนาสามารถรักษามาตรฐานของ Code ให้มีคุณภาพสูงและมีความปลอดภัยอยู่เสมอ


คุณสมบัติหลักของ SonarQube


การตรวจจับ Code Quality ( Continuous Inspection )

SonarQube จะวิเคราะห์ Code เพื่อหาจุดบกพร่องใน 3 ด้านหลัก

  • Bugs: ตรวจพบข้อผิดพลาดที่อาจทำให้โปรแกรมทำงานผิดเพี้ยนหรือล่มได้
  • Code Smells: ตรวจสอบความซับซ้อนของ Code ( Complexity ) หรือจุดที่เขียนไม่ดี ซึ่งอาจส่งผลต่อการบำรุงรักษาในระยะยาว ( Maintainability )
  • Vulnerabilities: ค้นหาช่องโหว่ด้านความปลอดภัยที่อาจถูกโจมตีได้

มาตรฐานความปลอดภัย ( Security Reports )

ช่วยตรวจสอบ Code ตามมาตรฐานสากล เช่น OWASP Top 10 และ SANS Top 25 เพื่อให้มั่นใจว่าแอปพลิเคชันไม่มีช่องโหว่พื้นฐานที่อันตราย เช่น SQL Injection หรือ Cross-Site Scripting ( XSS )


การวัดผล Unit Test และ Code Coverage

SonarQube สามารถนำผลการรัน Test จากภายนอกมาแสดงผลร่วมกัน เพื่อดูว่า Code ที่เขียนขึ้นมานั้นมีการเขียน Unit Test ครอบคลุมไปกี่เปอร์เซ็นต์ ( Code Coverage ) ช่วยลดความเสี่ยงในการเกิด Regression Bugs


Quality Gate

นี่คือฟีเจอร์ “ด่านตรวจ” ที่สำคัญมาก เราสามารถตั้งเงื่อนไขได้ว่า “ถ้า Code ไม่ผ่านเกณฑ์ ห้าม Merge เข้าสายหลัก” เช่น

  • ต้องไม่มี New Bugs แม้แต่จุดเดียว
  • Code Coverage ต้องมากกว่า 80%
  • Security Rating ต้องเป็น A เท่านั้น

รองรับหลายภาษา ( Multi-language Support )

รองรับการวิเคราะห์ภาษาโปรแกรมมากกว่า 30 ภาษา เช่น C#, Java, PHP, JavaScript, TypeScript, Python, Go และรวมถึงภาษาที่ใช้จัดการ Infrastructure อย่าง Terraform หรือ CloudFormation ด้วย


การเชื่อมต่อกับ CI/CD ( DevOps Integration )

SonarQube ทำงานร่วมกับเครื่องมือ CI/CD ได้อย่างไร้รอยต่อ เช่น

  • GitHub / GitLab / Bitbucket: แจ้งผลการตรวจเข้าไปใน Pull Request โดยตรง
  • Jenkins / Azure DevOps: สั่งให้วิเคราะห์อัตโนมัติทุกครั้งที่มีการ Build

สรุปข้อดี

การใช้ SonarQube ช่วยให้เราลด Technical Debt ( หนี้ทางเทคนิค ) ได้อย่างมีประสิทธิภาพ เพราะระบบจะช่วยเตือนตั้งแต่ตอนที่เขียน Code ว่าจุดไหนมีปัญหา ทำให้การทำ Code Review ง่ายขึ้นและแม่นยำกว่าการใช้สายตาคนตรวจเพียงอย่างเดียวครับ


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