API Pentest 101

สวัสดีครับทุกคนที่มาอ่านบทความนี้นะครับ ถ้าได้หลงกดเข้ามาก็น่าจะอยากรู้เรื่องการทดสอบระบบ API (Pentest API) กันเป็นแน่แท้เพราะฉะนั้นวันนี้เราจะมารู้จักการทำ API Pentest กันให้มากขึ้นและแหล่งเรียนรู้และฝึกฝนทำ Lab API Pentest เพื่อคนที่ต้องการพัฒนาฝีมือหรือน้องๆนักศึกษาที่อยากจะได้ใบ Certificate ว่าเราได้รู้เรื่อง API กันมากขึ้นหรือสำหรับนักพัฒนาระบบ (Developer) ที่ต้องการเรียนรู้ความปลอดภัยของ API กันมากขึ้นด้วยครับผม
สำหรับใครที่ยังไม่เข้าใจว่า API คืออะไรเท่าไรนะครับทาง Datafarm ก็ได้มีการเขียนบทความเอาไว้แล้วด้วยนะครับสามารถไปอ่านได้ที่นี้เลยครับ Application Program Interface (API) และก็ขอสรุปความหมายของ API คร่าวๆคือเป็นตัวกลางในการติดต่อสื่อสารกันระหว่างซอฟต์แวร์หรือระบบต่าง ๆ เพื่อที่จะได้ง่ายต่อการพัฒนาและการนำไปใช้งานอย่างมีประสิทธิภาพนั้นเองครับ ในปัจจุบันมีการนำ API มาใช้งานในหลากหลายด้านแต่วันนี้เราจะมาแน่นที่ Web API กันนะครับเพราะจะเป็นสิ่งที่เหล่า Pentester นั้นจะพบเจอกันบ่อยๆในการทดสอบระบบในปัจจุบัน (ประเภทของ API ที่จะเจอได้บ่อยๆก็จะเป็น REST API เป็นหลักและอาจจะพบ RPC, SOAP, GraphQL ได้บาง รึไม่นะ)
หัวข้อทั้งหมดในวันนี้จะเป็นประมาณนี้ครับ
· เรียนจากไหนได้บ้าง
· OWASP API Security Top 10
· API Penetration Testing
· อื่นๆ
· สรุป
เรียนจากไหนได้บ้าง
แล้วเราจะเรียนจากที่ไหนได้บ้างที่จริงแล้วก็มีเยอะเยะมากมายไม่ว่าจะเป็น PortSwigger หรือจะหาผ่าน Google ว่า API Pentest GitHub resource ก็สามารถทำได้ แต่ในวันนี้มาแนะนำ APIsec University ในการเรียนและฝึกทำ Lab กันอยู่ครับ

รูปจาก https://www.apisecuniversity.com/
ทำไมถึงแนะนำ APIsec University เพราะว่ามัน ฟรี!! และถ้าน้องอยากได้ Certificate ก็สามารถได้หลังจากเรียนจบก็จะเป็นตัวช่วยในการบอกว่าเรามีความรู้ด้านนี้อยู่ด้วยนั้นเอง โดยใน APIsec University ก็มีบทเรียนอยู่หลายบทเลยที่ผมแนะนำก็จะมี API Security Fundamentals > OWASP API Top 10 & Beyond! > API Penetration Testing เพื่อที่ได้พื่นฐานต่างในการทำ API Penetration Testing ได้อย่างดีและยังมี Best Practices ของ API ด้วยว่าควรจะต้องทำแบบไหนถึงจะปลอดภัยเพียงพอแล้ว

รูปจาก https://www.apisecuniversity.com/
OWASP API Security Top 10
แล้วถ้าจะพูดถึง Web Security เราก็ต้องนึกถึง OWASP กันก่อนเลยโดย OWASP ก็จะมี OWASP API Security Top 10–2023 ที่เป็น Standard ที่เราชอบใช้งานกันในการประเมินช่องโหว่ต่างๆที่พบ ภายใน APIsec University นั้นก็มีการอธิบายและยกตัวอย่างช่องโหว่ทั้ง 10 ข้อไว้ด้วยสามารถไปเรียนได้เลยโดยจะมีดังนี้

รูปจาก https://owasp.org/API-Security/editions/2023/en/0x00-header/
API1:2023 Broken Object Level Authorization
API2:2023 Broken Authentication
API3:2023 Broken Object Property Level Authorization
API4:2023 Unrestricted Resource Consumption
API5:2023 Broken Function Level Authorization
API6:2023 Unrestricted Access to Sensitive Business Flows
API7:2023 Server Side Request Forgery
API8:2023 Security Misconfiguration
API9:2023 Improper Inventory Management
API10:2023 Unsafe Consumption of APIs
โดยส่วนมากที่พบช่องโหว่ API นั้นหลักๆจะเจอเป็นพวกการไม่มีการยืนยันตัวตนและการตรวจสอบสิทธิสะเยอะเนื่องจากการพัฒนาระบบที่อาจจะพลาดจุดนี้กันเยอะ(อาจจะมีหลาย Role เลยพลาดกันบ่อยๆ)และตรวจสอบได้ง่ายจึงมีเยอะเป็นพิเศษใน OWASP API Security Top 10–2023 จึงควรตรวจสอบช่องโหว่เหล่านี้เป็นอันดับแรก ๆ เลยเพราะเจอบ่อย ๆ ในหลาย ๆ งานการทดสอบเจาะระบบที่ผ่านมาเป็น
API Penetration Testing
ต่อมาก็เป็นเรื่องการทำ API Penetration Testing ซึ่งจะมีอยู่ 2 แบบที่เจอคือทดสอบระบบ Web Application และมีการใช้งาน API กับ มี API มาให้เพื่อทดสอบอย่างเดียวก็ต้องจิตนาการเอาว่าการทำงานเป็นอย่างไรใช้ทำงานอะไรหรืออาจจะต้องให้เล่านิดหน่อยว่ามีการทำงานแบบไหนเพื่ออะไร โดยใน APIsec University ก็มีทั้งเนื้อหาที่ครบดีเลย เริ่มตั้งแต่ Setup Lab ทำการ API Reconnaissance และการโจมตีของ API ต่าง ๆ พวก API Authentication & Authorization Attacks, Mass Assignment, Injection Attacks, Rate Limit เป็นต้นที่เป็นการโจมตีที่ควรจะต้องตรวจสอบด้วยนั้นเองและก็มีสอนใน APIsec University ด้วยและถ้าหากเรียนจบแล้วทาง APIsec University ก็มี Certificate ในการเรียบจบไปโชว์เพื่อนหล่อ ๆ แล้วครั้งนี้

รูปจาก https://www.apisecuniversity.com/courses/api-penetration-testing/
อื่นๆ
ถ้าสำหรับใครที่มี Certificate ของค่ายต่าง ๆ เช่น ISC2 หรือ ISACA และต้องการนำคะแนน CPE เพื่อที่จะเอาไปต่ออายุใบรับรองที่ตัวเองได้ถืออยู่ก็สามารถเรียนจนจบและนำไปขอคะแนน CPE ตามแต่ละหัวข้อที่เราเรียนจบได้เลย (API Penetration Testing ได้มากถึง 12 CPEs กันเลยทีเดียว) และที่ขาดไม่ได้ของ APIsec University ก็มีการสอบ Certificate แบบเสียเงินของตัวเองด้วยเช่น API Security Certified Professional (ASCP) Exam ที่เป็นการสอบแบบลงมือทำจริงจะมีเวลามาให้ 12 ชม. และมี API มาให้ 2 ชุดจากแอปพลิเคชันไปอ่านตรงนี้ก็ได้ครับว่ามีเงื่อนไขอะไรบ้าง ASCP Rules of Engagement สอบผ่านก็จะได้ Certificate และได้เหรียญจริงสวย ๆ ไปเก็บไว้ด้วยเลย และก็จะมีอีกแบบที่เป็นตอบคำถามก็มีเหมือนกันจะเป็น 2 ตัวนี้ APIsec Certified Practitioner (ACP) และ Certified API Security Analyst (ASCP) ก็จะผ่านก็ต่อเมื่อตอบถูก 80% ++ ประมาณนี้สุดครับ

รูปจาก https://www.apisecuniversity.com/
สรุป
เรามาสรุปกันสักหน่อยดีกว่าคับว่าในบทความนี้เขียยนถึงอะไรบ้าง ในการศึกษาและฝึก API Penetration Testing มีหลายแหล่งแต่วันนี้แนะนำ APIsec University เพราะว่า ฟรี และเนื้อหาเรียบเรียงมาดีและครอบคลุมเรื่อง OWASP API Security Top 10–2023 อีกด้วยที่เป็น Standard ที่เรานำมาประเมิน ใครที่เรียนจบก็จะได้ Certificate มาและสามารถนำไปขอคะแนน CPE ได้เพื่อต่ออายุ Certificate ค่ายอื่นๆได้ ถ้าใครอยากได้ Certificate แบบลงมือปฏิบัติจริงก็เสียเงินสักหน่อยแล้วก็ไปสอบได้ครับจะเป็นตัว API Security Certified Professional (ASCP) Exam นั้นเองครับสุดท้าย
บายๆ จบแล้ว
จบแล้วครับสำหรับบทความวันนี้ถ้าใครมีอะไรติชมกันได้นะครับหวังว่าทุกคนจะพัฒนาตัวเองต่อไปในการหาความรู้อยู่เรื่อย ๆ นะครับถ้าเราเก่งแล้วเราอาจจะเจอช่องโหว่ ทีคุณอาจเห็นสิ่งที่คนอื่นไม่เห็นก็ได้ บาย ๆ ครับ สุดท้ายขอขอบคุณทุกคนที่เข้ามาอ่านนะครับ
References:
https://www.apisecuniversity.com/
https://stoplight.io/api-types
https://www.freecodecamp.org/news/rest-vs-graphql-apis/
https://owasp.org/API-Security/editions/2023/en/0x00-header/