สแกนหาช่องโหว่ด้านความปลอดภัยในแอป
สรุปสั้น ๆเปิดแท็บความปลอดภัยแล้วคลิก สแกนความปลอดภัย ภายในหนึ่งถึงสองนาที MonstarX จะตรวจโค้ดด้วยกฎ 33 ข้อ ทดสอบแอปที่ทำงานอยู่ในฐานะคนแปลกหน้า และให้ AI อ่านทั้งแอป คุณจะได้เกรด A ถึง F และรายการปัญหาที่พบ เรียงจากร้ายแรงที่สุด แต่ละรายการบอกว่าอยู่ตรงไหน ทำไมจึงสำคัญ และต้องเปลี่ยนอะไร เลือกรายการที่จะแก้ แล้ว MonstarX จะแก้ให้เป็นงานสร้างตามปกติและสแกนอีกครั้ง ดาวน์โหลดผลเป็นรายงานได้
แอปที่เขียนอย่างรวดเร็วมักเชื่อใจเบราว์เซอร์มากเกินไป เช่น มีฟังก์ชันที่ใครก็เรียกได้ ค้นหาการจองจากหมายเลขโดยไม่ตรวจว่าเป็นของใคร หรือรับราคามาจากหน้าเว็บ ผู้โจมตีมองหาช่องโหว่แบบนี้อยู่แล้ว
แท็บ ความปลอดภัย อ่านแอปแบบที่ผู้โจมตีอ่าน แสดงสิ่งที่พบโดยเรียงจากร้ายแรงที่สุด และช่วยคุณแก้ไข มองว่าเป็น การทดสอบเจาะระบบ (penetration test คือการตรวจความปลอดภัยที่มีคนพยายามเจาะเข้าระบบโดยตั้งใจ) ขนาดย่อมที่อยู่ใน MonstarX ก็ได้
สแกนความปลอดภัยอย่างไร
หัวข้อที่มีชื่อว่า “สแกนความปลอดภัยอย่างไร”-
เปิดโปรเจกต์แล้วคลิก ความปลอดภัย ในแถบด้านบน
-
คลิก สแกนความปลอดภัย ใช้เวลาหนึ่งถึงสองนาที
-
ดูทั้ง 3 ส่วนทำงานเสร็จทีละส่วน ออกจากแท็บได้ เพราะการสแกนรันบนเซิร์ฟเวอร์ของ MonstarX และทำงานต่อไป ยกเลิก จะหยุดการสแกนและเก็บสิ่งที่พบจนถึงตอนนั้นไว้
ป้ายบนแท็บ ความปลอดภัย ในแถบด้านบนจะแสดงไอคอนหมุนระหว่างที่สแกน จากนั้นแสดงจำนวนปัญหาที่ยังไม่แก้ (สีตามปัญหาที่ร้ายแรงที่สุด) หรือจุดสีเขียวเมื่อไม่มีปัญหาค้าง ถ้าต้องการสแกนใหม่ภายหลัง ให้คลิก สแกนอีกครั้ง ที่ด้านบนของแท็บ
การสแกนตรวจอะไรบ้าง
หัวข้อที่มีชื่อว่า “การสแกนตรวจอะไรบ้าง”การสแกนมี 3 ส่วน
| ส่วน | ทำอะไร | ค่าใช้จ่าย |
|---|---|---|
| ตรวจสอบโค้ด | ใช้กฎ 33 ข้อตรวจทุกไฟล์ของแอป เช่น ไม่มีการตรวจการลงชื่อเข้าใช้ เปลี่ยนรายการข้อมูลโดยไม่ตรวจว่าใครเป็นเจ้าของ เขียนข้อมูลลับไว้ในโค้ด สร้างคิวรีฐานข้อมูลจากข้อความ HTML ที่ไม่ปลอดภัย การอัปโหลดที่ไม่ได้ตรวจ webhook ที่ไม่ได้ยืนยัน และอื่น ๆ | ฟรี |
| ทดสอบแอปที่ทำงานอยู่ | ส่งคำขอแบบอ่านอย่างเดียวไปยังแอปที่ทำงานอยู่ ในฐานะคนแปลกหน้าที่ไม่มีบัญชี เช่น หน้าที่มีไว้สำหรับคนที่ลงชื่อเข้าใช้แล้ว เส้นทางที่ตอบใครก็ได้ การเข้าถึงข้ามเว็บไซต์ และสำหรับแอปที่เผยแพร่แล้ว ยังตรวจส่วนหัวด้านความปลอดภัยและไฟล์ที่ไม่ควรเปิดให้เข้าถึง | ฟรี |
| ตรวจสอบโดย AI | โมเดล AI อ่านทั้งแอปโดยมีปัญหาที่พบอยู่ในมือ ยืนยันหรือตัดปัญหาเหล่านั้นออก และหาสิ่งที่ต้องอ่านถึงจะเจอ เช่น ราคาที่เชื่อตามหน้าเว็บ หรือข้อมูลที่หน้าเว็บส่งออกไปแต่ไม่เคยแสดง | ใช้เครดิต เหมือนคำขอในโหมดแชท |
การทดสอบแอปที่ทำงานอยู่จะใช้แอปที่เผยแพร่แล้วเมื่อแอปออนไลน์อยู่ ไม่อย่างนั้นจะใช้พรีวิว ผลการสแกนจะบอกว่าทดสอบตัวไหน
OWASP Top 10 และ CWE คืออะไร
หัวข้อที่มีชื่อว่า “OWASP Top 10 และ CWE คืออะไร”OWASP เป็นองค์กรไม่แสวงหากำไรที่เผยแพร่ Top 10 ซึ่งเป็นรายการที่รู้จักกันดีที่สุดของความเสี่ยงด้านความปลอดภัยของเว็บแอปประเภทที่ร้ายแรงที่สุด ปัญหาที่พบทุกรายการจะจัดอยู่ในหมวดใดหมวดหนึ่ง คุณ (หรือผู้เชี่ยวชาญด้านความปลอดภัย) จึงรู้ว่าเป็นปัญหาประเภทไหน
| อธิบายง่าย ๆ | |
|---|---|
| A01 ช่องโหว่ในการควบคุมการเข้าถึง | มีคนดูหรือเปลี่ยนสิ่งที่ไม่ใช่ของตัวเองได้ |
| A02 ความล้มเหลวในการเข้ารหัส | ข้อมูลลับหรือรหัสถูกเก็บหรือสร้างด้วยวิธีที่ไม่แข็งแรง |
| A03 การแทรกโค้ด | ข้อความที่มีคนพิมพ์ถูกนำไปรันเป็นคำสั่งหรือโค้ด |
| A04 การออกแบบที่ไม่ปลอดภัย | ตรรกะของแอปถูกใช้ในทางที่ผิดได้ เช่น ส่งอีเมลหรือจองฟรีได้ไม่จำกัด |
| A05 การกำหนดค่าความปลอดภัยไม่ถูกต้อง | การตั้งค่าเปิดกว้างเกินไป เช่น ไม่มีส่วนหัวด้านความปลอดภัย |
| A06 ส่วนประกอบที่มีช่องโหว่และล้าสมัย | ซอฟต์แวร์เก่าที่มีช่องโหว่ซึ่งเป็นที่รู้กันอยู่แล้ว |
| A07 ข้อผิดพลาดในการระบุและยืนยันตัวตน | การลงชื่อเข้าใช้หรือการจัดการเซสชันไม่รัดกุม |
| A08 ความล้มเหลวด้านความสมบูรณ์ของซอฟต์แวร์และข้อมูล | เชื่อโค้ดหรือข้อมูลจากภายนอกโดยไม่ตรวจสอบ |
| A09 ข้อผิดพลาดในการบันทึกและติดตามความปลอดภัย | ข้อมูลลับรั่วไปอยู่ในบันทึก หรือถูกโจมตีโดยไม่มีใครรู้ |
| A10 การปลอมแปลงคำขอฝั่งเซิร์ฟเวอร์ | ผู้โจมตีสั่งให้แอปไปดึงข้อมูลจากที่อยู่ที่ผู้โจมตีเลือกได้ |
CWE (Common Weakness Enumeration) คือแคตตาล็อกจุดอ่อนเฉพาะเจาะจงที่มีหมายเลขกำกับ เช่น CWE-639 การค้นหารายการข้อมูลด้วย ID ที่ผู้ใช้กำหนดเองได้ ปัญหาที่พบแต่ละรายการมีลิงก์ไปยังหมวด OWASP และหน้า CWE (ถ้ามี) ให้คุณอ่านเพิ่มเติม
อ่านผลการสแกนอย่างไร
หัวข้อที่มีชื่อว่า “อ่านผลการสแกนอย่างไร”ด้านบนจะเห็น คะแนนเต็ม 100 พร้อมเกรด A ถึง F จำนวนปัญหาที่ยังไม่แก้แยกตามระดับความร้ายแรง สิ่งที่สแกนและทดสอบ ค่าใช้จ่ายของการตรวจสอบโดย AI และสรุปผลการตรวจสอบสั้น ๆ ไม่กี่ประโยค
คะแนนเริ่มที่ 100 และถูกหัก 40 คะแนนต่อปัญหาระดับ วิกฤต 1 รายการ 15 คะแนนต่อระดับ สูง 5 คะแนนต่อระดับ ปานกลาง และ 1 คะแนนต่อระดับ ต่ำ เกรดบอกว่าควรทำอะไรต่อ
| เกรด | คะแนน | ความหมาย |
|---|---|---|
| A | 90–100 | ไม่พบปัญหาร้ายแรง |
| B | 75–89 | มีบางเรื่องที่ควรเก็บให้เรียบร้อย |
| C | 55–74 | แก้ปัญหาระดับสูงก่อนที่จะมีคนใช้แอปมากขึ้น |
| D | 35–54 | มีช่องโหว่ร้ายแรง ควรแก้ก่อนเผยแพร่ |
| F | 0–34 | ในสภาพตอนนี้ แอปเสี่ยงต่อการถูกโจมตี |
ปัญหาที่พบแต่ละรายการแสดงระดับความร้ายแรง ชื่อ หมวด OWASP, CWE ที่มา (ตรวจสอบโค้ด ทดสอบแอปที่ทำงานอยู่ หรือ ตรวจสอบโดย AI) ความมั่นใจของการสแกน (ยืนยันแล้ว มีแนวโน้ม หรือ ต้องตรวจสอบ) และไฟล์กับบรรทัด คลิกเพื่อเปิดดู
- โค้ดรอบบรรทัดนั้น โดยมีเครื่องหมายที่บรรทัด
- สิ่งที่ผิด เหตุใดจึงสำคัญ และ สิ่งที่ควรเปลี่ยน อธิบายเป็นภาษาง่าย ๆ
- หมายเหตุจาก ตรวจสอบโดย AI ว่ายืนยันปัญหานี้หรือไม่ และยืนยันอย่างไร
- เปิดในโค้ด พาไปยังไฟล์นั้นใน แท็บโค้ด
เมื่อการตรวจสอบโดย AI คิดว่าปัญหาใดเป็นสัญญาณเตือนผิดพลาด จะขึ้นว่า ผลตรวจโดย AI: น่าจะไม่ใช่ปัญหาจริง ปัญหานั้นยังอยู่ในรายการแต่เรียงไว้ท้ายสุด และไม่นับรวมในคะแนน
ใต้รายการ สิ่งที่ตรวจแล้ว จะเปิดให้ดูทุกการตรวจที่รัน จัดกลุ่มตามหมวด OWASP พร้อมเครื่องหมายถูก จำนวนปัญหาที่พบ หรือเหตุผลที่ข้าม
แก้สิ่งที่พบอย่างไร
หัวข้อที่มีชื่อว่า “แก้สิ่งที่พบอย่างไร”-
ติ๊กปัญหาที่ต้องการให้แก้ หรือคลิก เลือกทั้งหมด จะมีปุ่ม แก้ไขปัญหา 2 รายการ ขึ้นมา ปุ่มนี้จะเป็นสีเทาระหว่างที่มีงานสร้างกำลังทำงาน
-
คลิกปุ่มนั้น MonstarX จะบอกว่าจะเกิดอะไรขึ้น แล้วคลิก แก้ไขปัญหา 2 รายการ อีกครั้ง
-
ปัญหาแต่ละรายการจะกลายเป็นงานใน แผนฟีเจอร์ (ความปลอดภัย: … เมื่อแผนใกล้เต็ม ปัญหาจะรวมอยู่ในงานเดียว) และคำขอสร้าง 1 รายการจะไปที่แชท พร้อมป้ายความปลอดภัย คำขอนี้ทำงานเหมือนคำขออื่น ๆ เก็บ เวอร์ชัน ไว้ และ QA อาจทดสอบแอปหลังจากนั้น
-
เมื่องานสร้างเสร็จ การสแกนจะรันอีกครั้งเอง ปัญหาที่หายไปแล้วจะแสดงว่าแก้แล้ว (เอเจนต์ MonstarX แก้ไขแล้ว 2 รายการ) ส่วนปัญหาที่ยังอยู่จะกลับมาพร้อมป้าย ยังพบปัญหาหลังแก้ไข
ถ้าปัญหาที่พบไม่ใช่ปัญหาจริง
หัวข้อที่มีชื่อว่า “ถ้าปัญหาที่พบไม่ใช่ปัญหาจริง”เปิดปัญหานั้นแล้วคลิก พักไว้ จากนั้นเลือกเหตุผล
- ไม่ใช่ปัญหาที่แท้จริง
- ยอมรับความเสี่ยงแล้ว คุณรู้เรื่องนี้และยอมรับ
- จัดการอีกทางหนึ่ง
ปัญหาที่พักไว้จะย้ายไปอยู่ในรายการ พักไว้ และอยู่ที่นั่นในการสแกนครั้งต่อ ๆ ไปทุกครั้ง แม้โค้ดส่วนอื่นจะเปลี่ยน คลิก นำกลับมา เพื่อใส่กลับในรายการอีกครั้ง
ดาวน์โหลดรายงานความปลอดภัยอย่างไร
หัวข้อที่มีชื่อว่า “ดาวน์โหลดรายงานความปลอดภัยอย่างไร”คลิก ดาวน์โหลดรายงาน ที่ด้านล่างของผลการสแกน คุณจะได้ไฟล์ Markdown (เอกสารข้อความธรรมดาที่เปิดได้ในโปรแกรมแก้ไขข้อความทุกตัว) ตั้งชื่อตามโปรเจกต์ เช่น paws-co-booking-security-report.md รูปแบบเหมือนรายงานการทดสอบเจาะระบบ
- ขอบเขตและวิธีการ ใช้กฎกี่ข้อกับไฟล์กี่ไฟล์ ทดสอบอะไรบ้าง และการตรวจสอบโดย AI ทำอะไร
- สรุป คะแนน ปัญหาที่ยังไม่แก้แยกตามระดับความร้ายแรง และสรุปผลการตรวจสอบ
- ปัญหาที่พบ แต่ละรายการมีลิงก์ OWASP และ CWE ตำแหน่ง โค้ด สิ่งที่ผิด ทำไมจึงสำคัญ และสิ่งที่ต้องเปลี่ยน
- แก้ไขได้ตั้งแต่การสแกนครั้งก่อน และ รายการที่เจ้าของพักไว้ พร้อมเหตุผลของคุณ
- การตรวจสอบ ทุกการตรวจพร้อมผลลัพธ์
รายงานนี้สะดวกสำหรับแชร์ให้นักพัฒนา ลูกค้า หรือผู้ตรวจสอบ ดาวน์โหลดได้เมื่อการสแกนหยุดทำงานแล้ว
คำถามที่พบบ่อย
หัวข้อที่มีชื่อว่า “คำถามที่พบบ่อย”การสแกนฟรีไหม
การตรวจสอบโค้ดและการทดสอบแอปที่ทำงานอยู่ใช้ฟรี การตรวจสอบโดย AI ใช้เครดิตเหมือนคำขอในโหมดแชท และผลการสแกนจะบอกค่าใช้จ่าย การแก้ปัญหาที่พบใช้เครดิตเหมือนงานสร้างทั่วไป
ได้เกรดดีแปลว่าแอปปลอดภัยใช่ไหม
ไม่มีการสแกนไหนรับประกันได้ การสแกนพบเฉพาะสิ่งที่กฎ การทดสอบ และการตรวจสอบมองเห็น แก้ปัญหาระดับวิกฤตและสูงก่อน สแกนอีกครั้ง และให้คนตรวจทุกส่วนที่เกี่ยวกับเงินหรือข้อมูลส่วนบุคคล ก่อนจะมีคนใช้แอปจำนวนมาก
ควรสแกนก่อนหรือหลังเผยแพร่
ทั้งสองอย่าง สแกนก่อนเผยแพร่เพื่อจับช่องโหว่ใหญ่ ๆ แล้วสแกนอีกครั้งเมื่อแอปออนไลน์ เพราะการตรวจบางอย่าง เช่น ส่วนหัวด้านความปลอดภัยและไฟล์ที่ไม่ควรเปิดให้เข้าถึง จะรันกับแอปที่เผยแพร่แล้วเท่านั้น
คนที่ฉันแชร์โปรเจกต์ให้เห็นผลการสแกนไหม
ไม่เห็น การสแกนระบุจุดอ่อนทุกจุด เจ้าของจึงเป็นคนเดียวที่เห็นแท็บความปลอดภัย
การสแกนตรวจโค้ดการลงชื่อเข้าใช้และฐานข้อมูลของ MonstarX เองไหม
ไม่ตรวจ ส่วนเหล่านั้นเหมือนกันในทุกแอปและ MonstarX ดูแลอยู่ การสแกนตรวจโค้ดที่เขียนสำหรับแอปของคุณ และแอปที่ทำงานอยู่
ถ้ามีงานสร้างกำลังทำงานตอนที่เริ่มสแกนจะเป็นอย่างไร
การสแกนจะรอให้งานสร้างเสร็จ (สูงสุด 10 นาที) เพื่อตรวจโค้ดที่เสร็จแล้ว