ไปเจอว่า OWASP นั้นเพิ่มเรื่องของ API Security มาด้วย
(ตามจริงมานานละ แต่เพิ่งเห็น) กับมีงานที่ต้องนำไปใช้นิดหน่อย
เนื่องจากทุกระบบงานก็มีการใช้งาน API (Application Programming Interface) อยู่แล้ว
ไม่ว่าจะอยู่ในรูปแบบไหนทั้ง REST, Web API และ WebService เป็นต้น
ยิ่งเปิดให้ใช้งานแบบ public ด้วยแล้ว (ไม่ว่าทางตรงหรือทางอ้อม)
สิ่งที่สำคัญมาก ๆ คือ เรื่องของความปลอดภัยนั่นเอง

โดยจาก OWASP API Security Top 10 ปี 2019

ทำการสรุปว่า เรื่องที่ API โดนโจมตีหรือหลุดบ่อย ๆ มีดังนี้

  1. Broken Object Level Authorization
  2. Broken User Authentication
  3. Excessive Data Exposure
  4. Lack of Resources & Rate Limiting
  5. Broken Function Level Authorization
  6. Mass Assignment
  7. Security Misconfiguration
  8. Injection
  9. Improper Assets Management
  10. Insufficient Logging & Monitoring

จากที่อ่านดูนั้น พบว่าเรื่องของ Authorization นั้นมักจะหลุดบ่อยมาก ๆ

ทำให้สามารถดึงข้อมูลไปใช้งานได้โดยตรง จากผู้ที่เราไม่ต้องการให้เข้าถึง
หรือบ่อยครั้งจะทำการ authentication และ authorization เรียบร้อยแล้ว
แต่ดันไม่ส่งข้อมูลการทำการหรือตรวจสอบใน API อื่น ๆ หลังจากนั้น (Lack มาก ๆ)
รวมทั้งเรื่องของการ expose หรือส่ง response ออกมาเยอะจนเกินไป
หนักกว่านั้น เอาข้อมูลทุก ๆ  field ที่เก็บไว้ใน data store ออกไปเลยซะงั้น

อีกเรื่องที่ทำน้อยมาก ๆ คือ เรื่องของ Rate limit ในการเข้าถึง API
ซึ่งทำให้โดนระดมยิงหรือพวก DoS หรือ D-DOS แล้ว
ทำให้ประสิทธิภาพการทำงานของระบบแย่ลง หรือล่มไปง่าย ๆ

ส่วนของ Injection ประเภทต่าง ๆ ทั้ง SQL, NoSQL และ Command Injection
จากการไม่กรองข้อมูลขาเข้าให้ดี ก็ยังเกิดขึ้นเยอะ

ในเรื่องของการ configuration ที่ผิดพลาดในฝั่ง Server ก็ยังคงเกิดขึ้น
ซึ่งต้องระวังให้มาก ๆ  ทั้งเรื่องของ CORS, HTTP Header
และ HTTP method ที่ไม่จำเป็น
รวมทั้ง error message ที่แสดงข้อมูล sensitive data มากจนเกินไป

จำนวน API ที่เปิดให้ใช้งานนั้น จะมีจำนวนมากขึ้น
ดังนั้นเรื่องของเอกสารอธิบายต่าง ๆ ต้องชัดเจน
ทั้งอธิบายการทำงาน รวมไปถึงการใช้งานในเชิงการพัฒนาที่ชัดเจน
ตลอดจนเรื่องของ การจัดการ versioning และ deprecated API ด้วย

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

ส่วนการเข้ารหัสข้อมูลและ HTTPS ถือว่าเป็นก้าวแรกของการเริ่มต้นที่ดี
และต้องมีก้าวต่อไปด้วยเสมอ
รายละเอียดอ่านได้จาก PDF เลยครับ

ส่วนเรื่องอื่น ๆ ก็มี