Application Security
ความปลอดภัยแอปพลิเคชัน
AppSec เชื่อมการออกแบบ โค้ด และการทดสอบเข้ากับความเสี่ยงของแอป
หัวข้อในบทนี้
ศัพท์ในบทนี้ · กดคำที่ขีดเส้นใต้ในเนื้อหาเพื่อดูความหมายได้ด้วย
- API
- ข้อตกลงวิธีที่โปรแกรมเรียกความสามารถหรือข้อมูลของอีกโปรแกรม
- SQL
- ภาษาประมวลข้อมูลในฐานข้อมูล เช่นเลือก กรอง join และเปลี่ยนข้อมูล
- WAF
- เครื่องมือกรอง request เว็บตามกฎ ไม่แทนการตรวจสิทธิ์ธุรกิจในแอป
- SAST
- วิเคราะห์โค้ดหรือโครงสร้างโปรแกรมโดยไม่ตรวจ runtime แบบ DAST
- DAST
- ทดสอบพฤติกรรมแอปที่รันอยู่ใน scope ที่อนุญาต
- SCA
- วิเคราะห์ส่วนประกอบและ dependencies ของซอฟต์แวร์
AppSec ตรวจตั้งแต่ design จนถึง request จริง
Application security ต้องรู้กฎธุรกิจ data flows trust boundaries และโค้ดที่บังคับสิทธิ์ Secure design ลดเงื่อนไขที่เอื้อให้เกิดภัยก่อนเขียน ส่วน testing ตรวจแต่ละมุมและมีข้อจำกัดของมัน การใช้ scanner หนึ่งตัวไม่แทนการทบทวนสิทธิ์ระดับข้อมูลหรือ abuse case
- Design
กำหนด roles ownership input และผลที่แต่ละคนทำได้ พร้อมการเก็บข้อมูลและ session
- Build
แยก code กับ data จัด output ตามบริบท ตรวจสิทธิ์บน server และจัด dependencies
- Review / SAST
อ่านหรือวิเคราะห์ source ตามความสามารถ ช่วยพบรูปแบบแต่มี false results และไม่เห็น runtime ทั้งหมด
- DAST / API tests
ตรวจระบบรันและ request ของหลายบทบาท รวมการเข้าถึงรายการคนอื่น
- SCA + release
ตรวจ dependencies รุ่น exposure และ artifact ที่ปล่อยจริง แล้วติดตาม remediation
Authentication กับ object-level authorization เป็นคนละด่าน ที่ตรวจ token ถูกต้องยังผิดได้ถ้าไม่ตรวจ ownership ให้มุมมองต่างกัน Supply chain และ secrets ต้องตามตั้งแต่ build จนถึง runtime ไม่ใช้ OWASP Top 10 เป็นรายชื่อทดสอบครบทุกแอป
ออกแบบและเขียนโค้ดปลอดภัยSecure Design and Coding · 28.4.1
Secure design ลดทางโจมตี Secure coding ทำให้การประมวลข้อมูลและสิทธิ์เป็นไปตามแบบ
Secure coding เชื่อม threat model กับ implementation เช่น input boundary authorization secret handling error output และ dependency แยกข้อมูลกับโค้ดและออกแบบให้ตรวจทุก action สำคัญ
กฎที่ต้องคง
การบังคับในโค้ด
ตรวจทางปกติและผิดสิทธิ์
Code ที่ sanitize input ยังมี access control bug ได้หากอ่าน record คนอื่น ใช้ invariant เช่นผู้ใช้ต้องเป็นเจ้าของหรือ role ที่อนุญาต แล้วตรวจทุกเส้นทาง backend ที่ทำ action นั้น
ที่มาของหัวข้อนี้ · 1 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Foundations of Cybersecurity · Module 3: Protect against threats, risks, and vulnerabilitiesVideo: Secure designCY1.M3.V3
ความปลอดภัยเว็บและเอพีไอWeb and API Security · 28.4.2
Web/API security ต้องตรวจตัวตน สิทธิ์ระดับข้อมูล input และการใช้ทรัพยากร
Web/ security ดู object-level authorization session token CORS rate limit injection และ business logic ต้องตรวจแต่ละ resource กับ action ไม่เพียง endpoint login
ผู้เรียกและบริบท
สิทธิ์ต่อ object/action
input output และการใช้ผิด
/orders/7 ต้องตรวจว่า user เห็น order 7 ได้ ไม่เชื่อเลขที่ client ส่ง Pagination และ filter ต้องไม่เปิดข้อมูลเกินสิทธิ์ การมี ไม่รู้ ownership ของรายการแทน backend
ที่มาของหัวข้อนี้ · 2 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- System Administration and IT Infrastructure Services · Module 3: Software and Platform ServicesVideo: Web Server Security ProtocolsIT4.M3.V5
- Assets, Threats, and Vulnerabilities · Module 4: Threats to asset securityVideo: Cross-site scripting (XSS)CY5.M4.V6
เอกสารหลักที่ใช้ตรวจแนวคิดเพิ่มเติม
ตรวจโค้ดและทดสอบความปลอดภัยCode Review and Security Testing · 28.4.3
Code review ตรวจเหตุผลของโค้ด Security testing ตรวจพฤติกรรม ต้องใช้ข้อมูลทั้งสองร่วมกัน
Security review ติดตาม data flow จาก input ถึงจุดใช้ พร้อมดูสิทธิ์และ error behavior วิเคราะห์ code ตรวจแอปที่รัน ดู components แต่แต่ละเครื่องมือมี false positive และ blind spot
code และเส้นข้อมูล
behavior ในระบบที่รัน
dependency และเงื่อนไขใช้งาน
แจ้ง concat ต้องดูว่า input ควบคุมได้ไหม อาจไม่ถึงหน้าเฉพาะ role พบ dependency ต้องตรวจส่วนที่ deploy จริง ใช้ manual review เติม business logic ที่เครื่องมือไม่รู้
ที่มาของหัวข้อนี้ · 1 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Put It to Work: Prepare for Cybersecurity Jobs · Module 5: Use AI to optimize workflowsVideo: Refine code with help from AICY8.M5.V5
นำศัพท์มาเชื่อมกับงาน
เปลี่ยน user_id ใน request แล้วเห็นข้อมูลคนอื่นเป็นปัญหาการอนุญาต แม้จะล็อกอินแล้ว
สิ่งที่บทนี้เชื่อมไว้
AppSec เชื่อมการออกแบบ โค้ด และการทดสอบเข้ากับความเสี่ยงของแอป
ใช้ภาพกับตัวอย่างด้านบนเชื่อมหน้าที่ของแต่ละส่วน แล้วตรวจความเข้าใจด้วยการอธิบายเหตุผลของผลที่เห็น ก่อนเปิดบทถัดไป
บทเรียนที่เกี่ยวข้องและที่มาของบทอ่าน
คำอธิบายหน้านี้เขียนใหม่ตามหัวข้อใน Atlas รายการด้านล่างเป็นชื่อ Video/Reading ที่เคยจับคู่ไว้ แสดงไว้ให้ตรวจที่มาของชื่อหัวข้อ และไม่รับรองว่าคอร์สสอนทุกส่วนของคำอธิบายนี้