API Security in the modern day.
Tags: api, security, noname, owasp
Published: 2023-06-30 12:12:18

## TL;DR

API Security ในปัจจุบัน ทำ Security อะไรบ้าง
จากภาพประกอบ เราต้องการเลนส์ที่ดีขึ้นเพื่อให้มองเห็นจุดที่ต้องการได้ชัดชึ้น ในที่นี้การมี API Security ช่วยให้เรามองเห็นภัยคุกคามบน API ได้ชัดขึ้น

## API Security

ที่มาของการทำ Security บนระบบ มักจะทำโดยการใส่ Firewall, ต่อยอดเพิ่มเป็น Web Application Firewalls ที่ตรวจจับภัยคุกคามได้ระดับ Web Application

คำถามคือทำไมถึงเกิด WAF ขึ้นมา คำตอบส่วนนึงก็เพราะ Traffic ที่วิ่งอยู่นั้นส่วนใหญ่เป็น Web Application Traffic จึงต้องมี Security ที่ทำมาป้องกันระดับ Web Application โดยเฉพาะ

ในแบบเดียวกัน 83% ของ Traffic ทั้งที่มองเห็นและมองไม่เห็น เกิดขึ้นผ่าน API, การทำ API Security จึงเกิดขึ้นมา

ถ้าเรามองความต่าง WAF จะช่วยป้องกันทุกอย่างในระดับ Web Application ซึ่งรวมถึง API ด้วย โดยการป้องกันนี้เน้นไปที่ Web Application เป็นหลัก ไม่ได้เน้นไปที่ API จึงอาจจะปกป้องระดับ API ได้บ้าง แต่ไม่มากหรือไม่เข้มข้นเท่าการทำ API Security โดยตรง เราอาจเปรียบเทียบโดยใช้ [OWASP Top 10(2021)](https://owasp.org/www-project-top-ten/) อันดับที่ 1 คือ Broken Access Control หรือมีการจัดการ Access Control ที่ไม่ดีพอ เมื่อเทียบกับ [OWASP Top 10 API Security Risks](https://owasp.org/API-Security/editions/2023/en/0x11-t10/) อันดับที่ 1 คือ Broken Object Level Authorization สิทธิ์การเข้าถึงแต่ละ Object มีการกำหนดไว้ไม่ถูกต้อง จะเห็นได้ว่าในเชิง API มีการลงลึกในระดับ API หรือตัว Object นั้นๆ ได้ชัดเจนมากกว่า OWASP ปกติ

## API Security ในปัจจุบัน

อ้างอิงตาม API Security Solutions ที่มีให้ในปัจจุบันจะมีการทำ API Discovery, ตรวจสอบ Posture, Runtime Protection, และ Solution ที่ช่วยในการทดสอบ API Security ในขั้นตอนการ Dev หรือการใช้งานร่วมกับ Pipeline


- API Discovery
คือความสามารถในการทราบว่าในองค์กรมีใช้ API อะไรอยู่บ้าง

API Discovery ต่างจาก API Management อย่างไร
ขอท้าวความสั้นๆ ว่าการเริ่มต้นเมื่อสร้าง API ขึ้นมาใช้งานนั้น สามารถเรียกใช้งาน API ได้ทันทีโดยไม่จำเป็นต้องมีอะไรมา Manage, แต่เมื่อมีการใช้ API มากขึ้น สามารถใช้ API Management/API Gateway มาคั่นเพื่อให้บริหารจัดการ API ที่จะเปิดปิด การทำ Version การ Rewrite รวมถึง Documentation ซึ่งทั้งหมดเป็นความสามารถที่ API Management ทำได้

การมี API Management และ Documentation จะช่วยให้เราเห็น API ที่ใช้งานอยู่จำนวนหนึ่ง แต่อาจะไม่ครอบคลุม Legacy API, และ API ที่อยู่ระหว่างพัฒนาหรือทดลองใช้ หรือตั้งขึ้นมาใช้งานชั่วคราวซึ่งเป็นจุดอ่อนได้

อ้างอิงตามคาดการณ์ของ Gartner ในปี 2025 การเติบโตอย่างรวดเร็วของ API จะเกินกว่าที่ API Management Tools จะจัดการได้หมดหรือได้ทันท่วงที หรือจะ Manage ได้ไม่ถึงครึ่งหนึ่งของ API ทั้งหมดนั่นเอง

ฉะนั้นความสามารถของ API Security ในด้านการ Detect API ได้จึงเป็นคำตอบที่ช่วยให้เรามองเห็นและทำ Security ให้กับ API ได้ครอบคลุมกว่า


> By 2025, less than 50% of enterprise APIs will be managed, as explosive growth in APIs surpasses the capabilities of API management tools.
> Gartner.

- ตรวจสอบ Posture
จะเห็นได้ว่าขั้นตอนแรกของการทำ API Security นั้นไม่ได้เริ่มทำ Security เลย แต่เน้นเรื่องการตรวจพบ API เสียก่อน จนในขั้นนี้จะดู Configuration ที่ใช้งานว่ามีความปลอดภัยไหม ตัวอย่างเช่น การใช้ API - PHP Framework ร่วมกับ PHP version ที่ไม่ปลอดภัย

- ตรวจสอบ Runtime
เป็นจุดที่เห็นความแตกต่างได้ชัดเจนระหว่าง API Security กับ WAF กล่าวคือ API Security นั้นสามารถเรียงร้อย API Calls มาเป็นเรื่องราว เป็นการโจมตีได้ ยกตัวอย่าง Data Exfiltration ที่มีการดูดข้อมูลของคนจำนวนมากออกมานั้น API Security มีมากกว่าหนึ่งเทคนิคที่สามารถช่วยป้องกันได้ ตั้งแต่การ Break OWASP API Top 10 อันดับที่ 1 คือ Broken Object Level Authorization, หรือการทำ Requests ต่อเนื่องบน Resource เดิมแต่เปลี่ยน UID


- การทดสอบ API Security ให้กับ Web Application ตั้งแต่ขั้นตอนการ Dev
การตรวจสอบก่อนหน้าเป็นการทำใน Operations ที่มี Traffic วิ่งไปมาอยู่จริง ซึ่งอาจจะสายเกินไป ฉะนั้นจึงมีการทดสอบ API Security โดยใช้เงื่อนไขเดียวกันแต่ทำในขั้นตอนการ Dev, เงื่อนไขของการ Dev ก็คือยังไม่มี Traffic จริงๆ ฉะนั้นจำเป็นต้องสร้าง Traffic จำลองขึ้นมา รวมถึงการโจมตีท่าต่างๆ ขึ้นมาด้วย ซึ่งหลายๆ API Security Product ในปัจจุบันสามารถทำได้ หากมีช่องโหว่เกิดขึ้นก็จะถูกตรวจจับ รายงาน รวมถึงการ Break pipeline ตั้งแต่ขั้นตอนการพัฒนา เพื่อแก้ไขได้ตั้งแต่ก่อนขึ้น Production

Golden Triangle ประกอบไปด้วย People, Process, Technology
ถ้าเราทำ Application ใช้งาน, Application ใช้ API สื่อสารระหว่างกัน/สื่อสารกับ 3rd parties แล้ว API Security ก็เป็น Technology ที่เลี่ยงไม่ได้ครับ