ข้ามไปยังเนื้อหา

สแกนหาช่องโหว่ด้านความปลอดภัยในแอป

สรุปสั้น ๆเปิดแท็บความปลอดภัยแล้วคลิก สแกนความปลอดภัย ภายในหนึ่งถึงสองนาที MonstarX จะตรวจโค้ดด้วยกฎ 33 ข้อ ทดสอบแอปที่ทำงานอยู่ในฐานะคนแปลกหน้า และให้ AI อ่านทั้งแอป คุณจะได้เกรด A ถึง F และรายการปัญหาที่พบ เรียงจากร้ายแรงที่สุด แต่ละรายการบอกว่าอยู่ตรงไหน ทำไมจึงสำคัญ และต้องเปลี่ยนอะไร เลือกรายการที่จะแก้ แล้ว MonstarX จะแก้ให้เป็นงานสร้างตามปกติและสแกนอีกครั้ง ดาวน์โหลดผลเป็นรายงานได้

แอปที่เขียนอย่างรวดเร็วมักเชื่อใจเบราว์เซอร์มากเกินไป เช่น มีฟังก์ชันที่ใครก็เรียกได้ ค้นหาการจองจากหมายเลขโดยไม่ตรวจว่าเป็นของใคร หรือรับราคามาจากหน้าเว็บ ผู้โจมตีมองหาช่องโหว่แบบนี้อยู่แล้ว

แท็บ ความปลอดภัย อ่านแอปแบบที่ผู้โจมตีอ่าน แสดงสิ่งที่พบโดยเรียงจากร้ายแรงที่สุด และช่วยคุณแก้ไข มองว่าเป็น การทดสอบเจาะระบบ (penetration test คือการตรวจความปลอดภัยที่มีคนพยายามเจาะเข้าระบบโดยตั้งใจ) ขนาดย่อมที่อยู่ใน MonstarX ก็ได้

  1. เปิดโปรเจกต์แล้วคลิก ความปลอดภัย ในแถบด้านบน

  2. คลิก สแกนความปลอดภัย ใช้เวลาหนึ่งถึงสองนาที

  3. ดูทั้ง 3 ส่วนทำงานเสร็จทีละส่วน ออกจากแท็บได้ เพราะการสแกนรันบนเซิร์ฟเวอร์ของ MonstarX และทำงานต่อไป ยกเลิก จะหยุดการสแกนและเก็บสิ่งที่พบจนถึงตอนนั้นไว้

ป้ายบนแท็บ ความปลอดภัย ในแถบด้านบนจะแสดงไอคอนหมุนระหว่างที่สแกน จากนั้นแสดงจำนวนปัญหาที่ยังไม่แก้ (สีตามปัญหาที่ร้ายแรงที่สุด) หรือจุดสีเขียวเมื่อไม่มีปัญหาค้าง ถ้าต้องการสแกนใหม่ภายหลัง ให้คลิก สแกนอีกครั้ง ที่ด้านบนของแท็บ

การสแกนมี 3 ส่วน

ส่วนทำอะไรค่าใช้จ่าย
ตรวจสอบโค้ดใช้กฎ 33 ข้อตรวจทุกไฟล์ของแอป เช่น ไม่มีการตรวจการลงชื่อเข้าใช้ เปลี่ยนรายการข้อมูลโดยไม่ตรวจว่าใครเป็นเจ้าของ เขียนข้อมูลลับไว้ในโค้ด สร้างคิวรีฐานข้อมูลจากข้อความ HTML ที่ไม่ปลอดภัย การอัปโหลดที่ไม่ได้ตรวจ webhook ที่ไม่ได้ยืนยัน และอื่น ๆฟรี
ทดสอบแอปที่ทำงานอยู่ส่งคำขอแบบอ่านอย่างเดียวไปยังแอปที่ทำงานอยู่ ในฐานะคนแปลกหน้าที่ไม่มีบัญชี เช่น หน้าที่มีไว้สำหรับคนที่ลงชื่อเข้าใช้แล้ว เส้นทางที่ตอบใครก็ได้ การเข้าถึงข้ามเว็บไซต์ และสำหรับแอปที่เผยแพร่แล้ว ยังตรวจส่วนหัวด้านความปลอดภัยและไฟล์ที่ไม่ควรเปิดให้เข้าถึงฟรี
ตรวจสอบโดย AIโมเดล AI อ่านทั้งแอปโดยมีปัญหาที่พบอยู่ในมือ ยืนยันหรือตัดปัญหาเหล่านั้นออก และหาสิ่งที่ต้องอ่านถึงจะเจอ เช่น ราคาที่เชื่อตามหน้าเว็บ หรือข้อมูลที่หน้าเว็บส่งออกไปแต่ไม่เคยแสดงใช้เครดิต เหมือนคำขอในโหมดแชท

การทดสอบแอปที่ทำงานอยู่จะใช้แอปที่เผยแพร่แล้วเมื่อแอปออนไลน์อยู่ ไม่อย่างนั้นจะใช้พรีวิว ผลการสแกนจะบอกว่าทดสอบตัวไหน

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 คะแนนต่อระดับ ต่ำ เกรดบอกว่าควรทำอะไรต่อ

เกรดคะแนนความหมาย
A90–100ไม่พบปัญหาร้ายแรง
B75–89มีบางเรื่องที่ควรเก็บให้เรียบร้อย
C55–74แก้ปัญหาระดับสูงก่อนที่จะมีคนใช้แอปมากขึ้น
D35–54มีช่องโหว่ร้ายแรง ควรแก้ก่อนเผยแพร่
F0–34ในสภาพตอนนี้ แอปเสี่ยงต่อการถูกโจมตี

ปัญหาที่พบแต่ละรายการแสดงระดับความร้ายแรง ชื่อ หมวด OWASP, CWE ที่มา (ตรวจสอบโค้ด ทดสอบแอปที่ทำงานอยู่ หรือ ตรวจสอบโดย AI) ความมั่นใจของการสแกน (ยืนยันแล้ว มีแนวโน้ม หรือ ต้องตรวจสอบ) และไฟล์กับบรรทัด คลิกเพื่อเปิดดู

  • โค้ดรอบบรรทัดนั้น โดยมีเครื่องหมายที่บรรทัด
  • สิ่งที่ผิด เหตุใดจึงสำคัญ และ สิ่งที่ควรเปลี่ยน อธิบายเป็นภาษาง่าย ๆ
  • หมายเหตุจาก ตรวจสอบโดย AI ว่ายืนยันปัญหานี้หรือไม่ และยืนยันอย่างไร
  • เปิดในโค้ด พาไปยังไฟล์นั้นใน แท็บโค้ด

เมื่อการตรวจสอบโดย AI คิดว่าปัญหาใดเป็นสัญญาณเตือนผิดพลาด จะขึ้นว่า ผลตรวจโดย AI: น่าจะไม่ใช่ปัญหาจริง ปัญหานั้นยังอยู่ในรายการแต่เรียงไว้ท้ายสุด และไม่นับรวมในคะแนน

ใต้รายการ สิ่งที่ตรวจแล้ว จะเปิดให้ดูทุกการตรวจที่รัน จัดกลุ่มตามหมวด OWASP พร้อมเครื่องหมายถูก จำนวนปัญหาที่พบ หรือเหตุผลที่ข้าม

  1. ติ๊กปัญหาที่ต้องการให้แก้ หรือคลิก เลือกทั้งหมด จะมีปุ่ม แก้ไขปัญหา 2 รายการ ขึ้นมา ปุ่มนี้จะเป็นสีเทาระหว่างที่มีงานสร้างกำลังทำงาน

  2. คลิกปุ่มนั้น MonstarX จะบอกว่าจะเกิดอะไรขึ้น แล้วคลิก แก้ไขปัญหา 2 รายการ อีกครั้ง

  3. ปัญหาแต่ละรายการจะกลายเป็นงานใน แผนฟีเจอร์ (ความปลอดภัย: … เมื่อแผนใกล้เต็ม ปัญหาจะรวมอยู่ในงานเดียว) และคำขอสร้าง 1 รายการจะไปที่แชท พร้อมป้ายความปลอดภัย คำขอนี้ทำงานเหมือนคำขออื่น ๆ เก็บ เวอร์ชัน ไว้ และ QA อาจทดสอบแอปหลังจากนั้น

  4. เมื่องานสร้างเสร็จ การสแกนจะรันอีกครั้งเอง ปัญหาที่หายไปแล้วจะแสดงว่าแก้แล้ว (เอเจนต์ MonstarX แก้ไขแล้ว 2 รายการ) ส่วนปัญหาที่ยังอยู่จะกลับมาพร้อมป้าย ยังพบปัญหาหลังแก้ไข

เปิดปัญหานั้นแล้วคลิก พักไว้ จากนั้นเลือกเหตุผล

  • ไม่ใช่ปัญหาที่แท้จริง
  • ยอมรับความเสี่ยงแล้ว คุณรู้เรื่องนี้และยอมรับ
  • จัดการอีกทางหนึ่ง

ปัญหาที่พักไว้จะย้ายไปอยู่ในรายการ พักไว้ และอยู่ที่นั่นในการสแกนครั้งต่อ ๆ ไปทุกครั้ง แม้โค้ดส่วนอื่นจะเปลี่ยน คลิก นำกลับมา เพื่อใส่กลับในรายการอีกครั้ง

คลิก ดาวน์โหลดรายงาน ที่ด้านล่างของผลการสแกน คุณจะได้ไฟล์ Markdown (เอกสารข้อความธรรมดาที่เปิดได้ในโปรแกรมแก้ไขข้อความทุกตัว) ตั้งชื่อตามโปรเจกต์ เช่น paws-co-booking-security-report.md รูปแบบเหมือนรายงานการทดสอบเจาะระบบ

  • ขอบเขตและวิธีการ ใช้กฎกี่ข้อกับไฟล์กี่ไฟล์ ทดสอบอะไรบ้าง และการตรวจสอบโดย AI ทำอะไร
  • สรุป คะแนน ปัญหาที่ยังไม่แก้แยกตามระดับความร้ายแรง และสรุปผลการตรวจสอบ
  • ปัญหาที่พบ แต่ละรายการมีลิงก์ OWASP และ CWE ตำแหน่ง โค้ด สิ่งที่ผิด ทำไมจึงสำคัญ และสิ่งที่ต้องเปลี่ยน
  • แก้ไขได้ตั้งแต่การสแกนครั้งก่อน และ รายการที่เจ้าของพักไว้ พร้อมเหตุผลของคุณ
  • การตรวจสอบ ทุกการตรวจพร้อมผลลัพธ์

รายงานนี้สะดวกสำหรับแชร์ให้นักพัฒนา ลูกค้า หรือผู้ตรวจสอบ ดาวน์โหลดได้เมื่อการสแกนหยุดทำงานแล้ว

การสแกนฟรีไหม

การตรวจสอบโค้ดและการทดสอบแอปที่ทำงานอยู่ใช้ฟรี การตรวจสอบโดย AI ใช้เครดิตเหมือนคำขอในโหมดแชท และผลการสแกนจะบอกค่าใช้จ่าย การแก้ปัญหาที่พบใช้เครดิตเหมือนงานสร้างทั่วไป

ได้เกรดดีแปลว่าแอปปลอดภัยใช่ไหม

ไม่มีการสแกนไหนรับประกันได้ การสแกนพบเฉพาะสิ่งที่กฎ การทดสอบ และการตรวจสอบมองเห็น แก้ปัญหาระดับวิกฤตและสูงก่อน สแกนอีกครั้ง และให้คนตรวจทุกส่วนที่เกี่ยวกับเงินหรือข้อมูลส่วนบุคคล ก่อนจะมีคนใช้แอปจำนวนมาก

ควรสแกนก่อนหรือหลังเผยแพร่

ทั้งสองอย่าง สแกนก่อนเผยแพร่เพื่อจับช่องโหว่ใหญ่ ๆ แล้วสแกนอีกครั้งเมื่อแอปออนไลน์ เพราะการตรวจบางอย่าง เช่น ส่วนหัวด้านความปลอดภัยและไฟล์ที่ไม่ควรเปิดให้เข้าถึง จะรันกับแอปที่เผยแพร่แล้วเท่านั้น

คนที่ฉันแชร์โปรเจกต์ให้เห็นผลการสแกนไหม

ไม่เห็น การสแกนระบุจุดอ่อนทุกจุด เจ้าของจึงเป็นคนเดียวที่เห็นแท็บความปลอดภัย

การสแกนตรวจโค้ดการลงชื่อเข้าใช้และฐานข้อมูลของ MonstarX เองไหม

ไม่ตรวจ ส่วนเหล่านั้นเหมือนกันในทุกแอปและ MonstarX ดูแลอยู่ การสแกนตรวจโค้ดที่เขียนสำหรับแอปของคุณ และแอปที่ทำงานอยู่

ถ้ามีงานสร้างกำลังทำงานตอนที่เริ่มสแกนจะเป็นอย่างไร

การสแกนจะรอให้งานสร้างเสร็จ (สูงสุด 10 นาที) เพื่อตรวจโค้ดที่เสร็จแล้ว