คุณกำลังดูเอกสาร Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
ภาพรวม
ระบบนิเวศ API ประสบกับการโจมตีหลากหลายรูปแบบจากไคลเอ็นต์ทั้งภายนอกและภายใน การเสนอและใช้ API สร้างโอกาสอันยิ่งใหญ่ให้ผู้ให้บริการ แต่ก็ก่อให้เกิดความเสี่ยงด้านความปลอดภัยบางอย่างเช่นกัน นักพัฒนาแอปต้องตระหนักถึงความท้าทายเหล่านี้และจัดการกับความท้าทายเหล่านี้เมื่อสร้างและใช้ API
OWASP เป็นชุมชนแบบเปิดที่อุทิศเพื่อช่วยองค์กรพัฒนา ซื้อ และดูแลรักษาแอปพลิเคชันและ API ที่เชื่อถือได้ ในโปรเจ็กต์ OWASP API Security ทำให้ OWASP เผยแพร่ความเสี่ยงด้านความปลอดภัยที่สำคัญที่สุดต่อเว็บแอปพลิเคชันและ REST API และให้คำแนะนำในการจัดการกับความเสี่ยงเหล่านั้น
Apigee จะทำให้เลเยอร์พร็อกซี API สามารถตรวจหา บล็อก และรายงานคำขอ API ที่มีรูปแบบไม่ถูกต้องจากไคลเอ็นต์ก่อนที่จะมีการประมวลผลคำขอในระบบแบ็กเอนด์ ซึ่งจะช่วยลดความเสี่ยงและปกป้องบริการของคุณ คำขอที่มีรูปแบบไม่ถูกต้องอาจรวมถึงคอมโพเนนต์ที่ประกอบเป็นโปรโตคอลระดับแอปพลิเคชัน HTTP ดังนี้
- URL
- ส่วนหัว
- เส้นทาง
- เพย์โหลด
คำขอ API ที่มีรูปแบบไม่ถูกต้องอาจมาจากไคลเอ็นต์ที่รู้จักหรือไม่รู้จักซึ่งนักพัฒนาภายนอก นักพัฒนาซอฟต์แวร์ภายใน หรือบ็อตที่เป็นอันตราย คำขอประเภทนี้เป็นภัยคุกคามส่วนใหญ่ของ OWASP แต่ยังมีคอมโพเนนต์อื่นๆ ของเลเยอร์พร็อกซี API ที่เกี่ยวข้องที่ช่วยลดความเสี่ยง เช่น การมาสก์ข้อมูล การบันทึก การดูแลระบบ และอื่นๆ
แพลตฟอร์มการจัดการ API ที่ชาญฉลาดของ Apigee จะช่วยคุณแก้ไขช่องโหว่ด้านความปลอดภัยยอดนิยมของ OWASP API ได้อย่างราบรื่น ขณะที่คุณออกแบบ API และเชื่อมต่อกับระบบแบ็กเอนด์โดยใช้แนวทางที่เน้นการใช้งานเป็นหลัก ต่อไปนี้เป็นรายการนโยบาย/การกำหนดค่าที่ Apigee แนะนำสำหรับภัยคุกคาม REST OWASP อันดับต้นๆ
โซลูชัน Apigee สำหรับ 10 อันดับยอดนิยมของ OWASP ในปี 2017
การสร้างและรักษาความปลอดภัยเว็บแอปพลิเคชันนั้นมีข้อกังวลหลายประการ OWASP เผยแพร่รายการภัยคุกคามด้านความปลอดภัยของ OWASP 2017 ยอดนิยมสำหรับเว็บแอปพลิเคชัน แม้ว่าเว็บแอปพลิเคชันจะมีหลายส่วน แต่เว็บแอปที่ทันสมัยส่วนใหญ่อาศัย API ของ REST เป็นหลัก Apigee ไม่ได้มีไว้เพื่อจัดการความต้องการด้านความปลอดภัยทั้งหมดของเว็บแอปพลิเคชัน แต่ก็มีบทบาทสำคัญในการรักษาความปลอดภัยให้ REST API ต่อไปนี้คือภัยคุกคามด้านความปลอดภัยยอดนิยมของ OWASP พร้อมคำอธิบายวิธีการใช้ Apigee เพื่อช่วยจัดการกับภัยคุกคามเหล่านั้น
A1:2017 - การฉีดยา
Apigee คือการป้องกันการแทรกข้อมูลที่ไม่น่าเชื่อถือ เช่น SQL, NoSQL, LDAP และ JavaScript ซึ่งอาจส่งผลให้มีการดำเนินการคำสั่งที่ไม่ได้ตั้งใจหรือการเข้าถึงข้อมูลที่ไม่ได้รับอนุญาต Apigee จึงมีนโยบายการตรวจสอบอินพุตหลายรายการเพื่อยืนยันว่าค่าที่ได้จากไคลเอ็นต์ตรงกับที่คาดไว้ก่อนที่จะอนุญาตการประมวลผลเพิ่มเติม Apigee Edge ซึ่งทำหน้าที่เป็นเซิร์ฟเวอร์สำหรับคำขอ API ขาเข้าจะตรวจสอบเพื่อให้แน่ใจว่าโครงสร้างเพย์โหลดอยู่ในช่วงที่ยอมรับได้ หรือที่เรียกว่าการตรวจสอบขีดจำกัด คุณกำหนดค่าพร็อกซี API เพื่อให้กิจวัตรการตรวจสอบอินพุตเปลี่ยนรูปแบบอินพุตเพื่อนำลำดับอักขระที่มีความเสี่ยงออกและแทนที่ด้วยค่าที่ปลอดภัยได้
มีหลายวิธีในการตรวจสอบความถูกต้องของอินพุตด้วยแพลตฟอร์ม Apigee ดังนี้
- JSONThreatProtection ตรวจสอบเพย์โหลด JSON เพื่อหาภัยคุกคาม
- XMLThreatProtection จะตรวจสอบเพย์โหลด XML เพื่อหาภัยคุกคาม
- คุณตรวจสอบพารามิเตอร์ได้โดยใช้ JavaScript
- คุณตรวจสอบส่วนหัวได้โดยใช้ JavaScript
- จัดการ SQLCodeInjection ได้โดยใช้นโยบาย regularExpressionProtection
ตรวจสอบประเภทเนื้อหามีดังนี้
- คำขอ - ใช้ตรรกะตามเงื่อนไขในโฟลว์พร็อกซีเพื่อตรวจสอบ Content-Type ใช้นโยบาย AssignMessage หรือนโยบาย RaiseFault เพื่อแสดงข้อความแสดงข้อผิดพลาดที่กำหนดเอง
- คำตอบ - ใช้ตรรกะแบบมีเงื่อนไขในโฟลว์พร็อกซีเพื่อยืนยัน Content-Type ใช้นโยบาย AssignMessage เพื่อตั้งค่าส่วนหัว Content-Type หรือใช้นโยบาย AssignMessage หรือ RaiseFault เพื่อแสดงผลข้อความแสดงข้อผิดพลาดที่กำหนดเอง
A2:2017 - การตรวจสอบสิทธิ์และการจัดการเซสชันที่เสียหาย
ผู้โจมตีสามารถเข้าถึงรหัสผ่าน โทเค็นของเซสชัน และคีย์เพื่อแอบอ้างเป็นผู้ใช้รายอื่นได้โดยใช้ประโยชน์จากข้อบกพร่องในการใช้งานในแอปพลิเคชัน ปัญหานี้เกี่ยวข้องกับการใช้งานมากกว่า ไม่ใช่ปัญหาเกี่ยวกับผลิตภัณฑ์ Apigee ได้มอบนโยบาย VerificationApiKey, OAuth และ JSON Web Token (JWT) ที่ช่วยป้องกันช่องโหว่นี้
การตรวจสอบคีย์ API
การตรวจสอบคีย์ API เป็นรูปแบบการรักษาความปลอดภัยในแอปที่ง่ายที่สุดซึ่งกำหนดค่าสำหรับ API ได้ แอปไคลเอ็นต์เพียงแค่แสดงคีย์ API พร้อมกับคำขอ จากนั้น Apigee Edge ผ่านนโยบายที่แนบมากับพร็อกซี API เพื่อตรวจสอบว่าคีย์ API อยู่ในสถานะได้รับอนุมัติสำหรับทรัพยากรที่ขอ
Apigee สนับสนุนการสร้างและการตรวจสอบคีย์ API Apigee จะสร้างคีย์และข้อมูลลับ API เมื่อมีการสร้างและอนุมัติแอปของนักพัฒนาแอปซึ่งลิงก์กับผลิตภัณฑ์ API อย่างน้อย 1 รายการ
บางครั้งคำว่า "คีย์ API" อาจมีความหมายแตกต่างกันไป ใน Apigee เมื่อมีการสร้างความสัมพันธ์ระหว่างแอปและผลิตภัณฑ์ Apigee จะสร้างรหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์ โดยบางรายการอาจเรียกทั้งรหัสและข้อมูลลับว่าเป็นคีย์ API บางแอปอาจเรียกเพียงรหัสไคลเอ็นต์ว่าเป็นคีย์ API คุณจะเห็น "คีย์ของผู้บริโภค" และ "ข้อมูลลับของผู้ใช้" ใน Edge UI
ในนโยบายVerifyAPIKey จะมีการยืนยันเพียงรหัสไคลเอ็นต์หรือ "คีย์ของผู้บริโภค" นักพัฒนาซอฟต์แวร์จะได้รับคีย์ผู้ใช้เมื่อลงทะเบียนแอปกับ Apigee และเชื่อมโยงแอปกับผลิตภัณฑ์ API นักพัฒนาซอฟต์แวร์จะรวมคีย์ผู้ใช้ไว้ในการเรียกใช้ที่แอปส่งไปยังพร็อกซี API ที่รวมอยู่ในผลิตภัณฑ์ API
Apigee ยังรองรับความสามารถในการนำเข้าคีย์ API ที่มีอยู่จากแหล่งที่มาภายนอกด้วย
สำหรับประเภทการให้สิทธิ์ OAuth ระบบจะใช้ทั้งรหัสไคลเอ็นต์และรหัสลับ
OAuth 2.0
เฟรมเวิร์กการให้สิทธิ์ OAuth 2.0 ช่วยให้แอปพลิเคชันของบุคคลที่สามเข้าถึงบริการ HTTP ได้อย่างจำกัด ไม่ว่าจะเป็นในนามของเจ้าของทรัพยากรโดยสร้างการโต้ตอบการอนุมัติระหว่างเจ้าของทรัพยากรและบริการ HTTP หรือโดยการอนุญาตให้แอปพลิเคชันของบุคคลที่สามรับสิทธิ์เข้าถึงในนามของตนเอง
นโยบาย OAuth 2.0 ของ Apigee ทำให้คุณติดตั้งใช้งานและปรับแต่งประเภทการให้สิทธิ์ OAuth 2.0 ทั้ง 4 ประเภทได้ บังคับใช้โทเค็นเพื่อการเข้าถึง OAuth ได้โดยใช้นโยบาย OAuthv2 ผู้บริโภคต้องลงทะเบียนและมีแอปที่ได้รับอนุมัติซึ่งให้สิทธิ์เข้าถึง API โดยผู้ใช้จะได้รับรหัสไคลเอ็นต์ API และรหัสลับไคลเอ็นต์ ผู้บริโภคต้องผ่านการให้สิทธิ์ OAuth อย่างใดอย่างหนึ่งเพื่อรับการตรวจสอบสิทธิ์ ซึ่งจะมอบโทเค็นเพื่อการเข้าถึงที่คลุมเครือ โทเค็นนี้ใช้เพื่อควบคุมการเข้าถึง API ได้
JWT
โดยทั่วไปแล้ว โทเค็นเว็บ JSON หรือ JWT จะใช้เพื่อแชร์การอ้างสิทธิ์หรือการยืนยันระหว่างแอปพลิเคชันที่เชื่อมต่ออยู่ Apigee มี การสนับสนุน JWT โดยใช้นโยบาย 3 รายการ
- โทเค็น GenerateJWT (รองรับลายเซ็น HS256 และ RS256)
- ตรวจสอบโทเค็น JWT
- ถอดรหัสโทเค็น JWT โดยไม่ต้องตรวจสอบ
A3:2017 - การเปิดเผยข้อมูลที่ละเอียดอ่อน
ผู้โจมตีมุ่งเป้าไปที่ข้อมูลที่ละเอียดอ่อน เช่น รายละเอียดบัตรเครดิต หมายเลขประกันสังคม ข้อมูลเข้าสู่ระบบ ข้อมูลส่วนบุคคลที่ระบุตัวบุคคลนั้นได้ (PII) และหมายเลขประจำตัวผู้เสียภาษีเพื่อทำการโจรกรรมข้อมูลส่วนบุคคล การขโมยเงิน การประพฤติมิชอบ และอาชญากรรมอื่นๆ เว็บแอปพลิเคชันจำเป็นต้องใช้การเข้ารหัสทั้งที่ไม่มีการเคลื่อนไหวและอยู่ในขั้นตอนการส่งผ่าน รวมถึงกลยุทธ์อื่นๆ เพื่อคุ้มครองข้อมูลที่ละเอียดอ่อน
TLS (Transport Layer Security) ซึ่งมีรุ่นก่อนหน้าคือ SSL) เป็นเทคโนโลยีการรักษาความปลอดภัยมาตรฐานสำหรับการสร้างลิงก์ที่เข้ารหัสระหว่างเว็บเซิร์ฟเวอร์กับเว็บไคลเอ็นต์ เช่น เบราว์เซอร์หรือแอป โดย Apigee รองรับ TLS ทั้งทางเดียวและ 2 ทาง
รองรับ TLS (ไคลเอ็นต์ที่เชื่อมต่อกับ API ทำหน้าที่เป็นเซิร์ฟเวอร์) ผ่านการใช้การกำหนดค่าโฮสต์เสมือน คุณกำหนดค่าโฮสต์เสมือนสำหรับ TLS แบบทางเดียวหรือ 2 ทางได้
รองรับ TLS ขอบเขตใต้ (Apigee เป็นไคลเอ็นต์ที่เชื่อมต่อกับบริการแบ็กเอนด์) ผ่านการใช้การกำหนดค่าเซิร์ฟเวอร์เป้าหมาย คุณจะกำหนดค่าเซิร์ฟเวอร์เป้าหมายสำหรับ TLS แบบทางเดียวหรือ 2 ทางได้
Apigee รองรับ ตัวเลือกการกำหนดค่า TLS จำนวนมาก
การบังคับใช้ TLS แบบ 2 ทางช่วยให้มั่นใจว่าไคลเอ็นต์ใช้ใบรับรองที่ได้เริ่มต้นใช้งานใน Apigee แล้ว OWASP มี แนวทางปฏิบัติแนะนำสำหรับ TLS ด้วย
ใน Apigee แบบผสม TLS จะใช้ได้ที่ข้อมูลขาเข้าผ่านชื่อแทนโฮสต์ ซึ่งเป็นแนวคิดที่คล้ายกับโฮสต์เสมือน
หลักเกณฑ์ในการรักษาความปลอดภัยของข้อมูลที่ละเอียดอ่อนมีดังนี้
- ใช้แพลตฟอร์มที่รองรับ TLS แบบทางเดียวและ 2 ทาง ซึ่งจะป้องกันในระดับโปรโตคอล
- ใช้นโยบาย เช่น นโยบาย AssignMessage และนโยบาย JavaScript เพื่อนำข้อมูลที่ละเอียดอ่อนออกก่อนที่จะส่งคืนไปยังไคลเอ็นต์
- ใช้เทคนิค OAuth มาตรฐานและลองเพิ่ม HMAC, แฮช, สถานะ, nonce, PKCE หรือเทคนิคอื่นๆ เพื่อปรับปรุงระดับการตรวจสอบสิทธิ์สำหรับคำขอแต่ละรายการ
- ใช้การตั้งค่าการมาสก์ข้อมูลเพื่อมาสก์ข้อมูลที่ละเอียดอ่อนในเครื่องมือ Edge Trace
- โปรดระวังการจัดเก็บข้อมูลที่ละเอียดอ่อนในแคช (หรือเข้ารหัสข้อมูลที่ละเอียดอ่อนซึ่งจัดเก็บไว้ในแคช) ใน Edge คุณสามารถเข้ารหัสข้อมูลที่ละเอียดอ่อนที่ไม่มีการเคลื่อนไหวในแมปคีย์-ค่า
A4:2017 - เอนทิตีภายนอก XML
ระบบหรือแอปพลิเคชันที่ประมวลผล XML ต้องจัดการ "การอ้างอิงเอนทิตีภายนอก" ใน XML ซึ่งเป็นการอ้างอิงไปยังไฟล์หรือข้อมูลที่จะแทนที่ด้วยข้อมูลจริงระหว่างการประมวลผล XML หากแอปพลิเคชันหรือโปรเซสเซอร์ XML เก่าหรือใช้งานได้ไม่ดี ผู้โจมตีอาจแฮ็กข้อมูลและใช้เพื่อขโมยข้อมูลหรือเริ่มการโจมตีประเภทต่างๆ ในระบบ เช่น การปฏิเสธการให้บริการ
นโยบาย ExtractVariable ของ Apigee ช่วยให้คุณแยกเนื้อหาจากคำขอหรือการตอบกลับได้ และกำหนดเนื้อหานั้นให้กับตัวแปร คุณอาจดึงส่วนใดส่วนหนึ่งของข้อความ ได้แก่ ส่วนหัว, เส้นทาง URI, เพย์โหลด JSON/XML, พารามิเตอร์ของแบบฟอร์ม และพารามิเตอร์การค้นหา นโยบายทำงานโดยใช้รูปแบบข้อความกับเนื้อหาข้อความ และตั้งค่าตัวแปรกับเนื้อหาข้อความที่ระบุเมื่อพบรายการที่ตรงกัน
Apigee มีโปรแกรมแยกวิเคราะห์ XML ในตัวเป็นส่วนหนึ่งของแพลตฟอร์มที่ใช้ XPath เพื่อดึงข้อมูล และยังมีนโยบาย XMLThreatProtection เพื่อป้องกันเพย์โหลด XML ที่เป็นอันตรายด้วย
A5:2017 - การควบคุมการเข้าถึงขัดข้อง
หลังจากที่ผู้ใช้เข้าสู่ระบบและมีสิทธิ์เข้าถึงระบบแล้ว ต้องมีการควบคุมการให้สิทธิ์ที่เหมาะสมเพื่อให้ผู้ใช้สามารถดูและดำเนินการได้เฉพาะสิ่งที่ได้รับอนุญาต หากไม่มีการควบคุมการเข้าถึงที่เข้มงวด ผู้โจมตีสามารถดูข้อมูลที่ไม่ได้รับอนุญาตและมักมีความละเอียดอ่อน หรือจัดการข้อมูลและการทำงานของระบบที่เป็นอันตราย
Apigee รองรับแนวทางแบบเป็นชั้นในการใช้การควบคุมการเข้าถึงเพื่อป้องกันไม่ให้ผู้ไม่ประสงค์ดีทำการเปลี่ยนแปลงหรือเข้าถึงระบบโดยไม่ได้รับอนุญาต
การควบคุมการเข้าถึงสำหรับ Edge UI
- กำหนดค่าการลงชื่อเพียงครั้งเดียวกับผู้ให้บริการข้อมูลประจำตัวของบริษัท
- กำหนดค่าการควบคุมการเข้าถึงตามบทบาท (RBAC) เพื่ออนุญาตให้ผู้ใช้เข้าถึงฟังก์ชันการทำงานและการกำหนดค่าที่ต้องการเท่านั้น
- ฟีเจอร์ Teams มีความสามารถเพิ่มเติมในการจำกัดการเข้าถึงพร็อกซี ผลิตภัณฑ์ และแอป
- กำหนดค่าการมาสก์ข้อมูลเพื่อซ่อนข้อมูลที่ละเอียดอ่อนจากผู้ใช้
- แมปคีย์-ค่าที่เข้ารหัสเพื่อจัดเก็บคู่คีย์/ค่าที่มีความละเอียดอ่อน ซึ่งจะปรากฏในการมาสก์ใน Edge UI และในการเรียก Management API
การควบคุมการเข้าถึงสำหรับพอร์ทัลนักพัฒนาซอฟต์แวร์ Apigee
- กำหนดค่าการลงชื่อเพียงครั้งเดียวกับผู้ให้บริการข้อมูลประจำตัวของบริษัท
- กำหนดค่าการควบคุมการเข้าถึงตามบทบาท (RBAC) เพื่ออนุญาตให้ผู้ใช้เข้าถึงฟังก์ชันการทำงานและการกำหนดค่าที่จำเป็นในพอร์ทัลนักพัฒนาซอฟต์แวร์ที่ใช้ Drupal เท่านั้น
- กำหนดค่าพอร์ทัลนักพัฒนาซอฟต์แวร์ให้แสดงผลิตภัณฑ์ API เฉพาะตามบทบาทของผู้ใช้
- กำหนดค่าพอร์ทัลให้แสดงหรือซ่อนเนื้อหาตามบทบาทของผู้ใช้
การควบคุมการเข้าถึงสำหรับการเข้าถึง API รันไทม์ Apigee
- คุณบังคับใช้การเข้าถึง API ได้ผ่านคีย์ API, โทเค็น OAuth, ขอบเขต OAuth, ใบรับรอง และเทคนิคอื่นๆ
- ผู้ให้บริการ API กำหนดค่าทรัพยากรที่ใช้ได้โดยการกำหนดผลิตภัณฑ์ API ระบบจะให้สิทธิ์เข้าถึงด้วยตนเองใน UI, ผ่าน Management API หรือผ่านพอร์ทัลนักพัฒนาแอป เมื่อแอปของนักพัฒนาแอปได้รับสิทธิ์เข้าถึงผลิตภัณฑ์ API นักพัฒนาแอปจะได้รับรหัสไคลเอ็นต์และข้อมูลลับที่ใช้ในกระบวนการตรวจสอบสิทธิ์
- Apigee ผสานรวมกับผู้ให้บริการข้อมูลประจำตัวรายใดก็ได้เพื่อให้ใช้ OAuth ได้
- Apigee สามารถสร้างโทเค็น JWT หรือเทคนิคอื่นๆ เพื่อส่งข้อมูลประจำตัวของผู้ใช้ไปยังบริการเป้าหมายได้ โดยบริการเป้าหมายจะใช้ข้อมูลระบุตัวตนดังกล่าวเพื่อจำกัดการเข้าถึงบริการและข้อมูลได้ตามต้องการ
A6:2017 - การกำหนดค่าด้านความปลอดภัยที่ไม่ถูกต้อง
การกำหนดค่าด้านความปลอดภัยที่ไม่ถูกต้องนั้นมักจะมองข้ามไป เนื่องจากผู้ดูแลระบบและนักพัฒนาซอฟต์แวร์เข้าใจผิดว่าระบบที่ใช้มีความปลอดภัยในตัว การกำหนดค่าความปลอดภัยที่ไม่ถูกต้องอาจเกิดขึ้นได้หลายวิธี เช่น การเชื่อถือการกำหนดค่าเริ่มต้นหรือการกำหนดค่าบางส่วนที่อาจไม่ปลอดภัย การอนุญาตให้ข้อความแสดงข้อผิดพลาดมีรายละเอียดที่ละเอียดอ่อน การจัดเก็บข้อมูลไว้ในระบบคลาวด์โดยไม่มีการควบคุมความปลอดภัยที่เหมาะสม การกำหนดค่าส่วนหัว HTTP ที่ไม่ถูกต้อง และอื่นๆ แพลตฟอร์ม Apigee มีกลไกหลายอย่างที่ช่วยให้คุณควบคุม จัดการ และตรวจสอบการกำหนดค่าความปลอดภัยได้ รวมถึง ขั้นตอนที่แชร์ซ้ำได้
ขั้นตอนที่แชร์จะช่วยให้นักพัฒนา API รวมนโยบายและทรัพยากรเข้าเป็นกลุ่มที่นำมาใช้ใหม่ได้ ขั้นตอนที่แชร์ช่วยให้มีความสอดคล้อง ลดเวลาในการพัฒนา และจัดการโค้ดได้ง่ายขึ้นด้วยการรวบรวมฟังก์ชันการทำงานที่นำมาใช้ใหม่ได้ไว้ในที่เดียว คุณอาจรวมโฟลว์ที่แชร์ไว้ภายในพร็อกซี API แต่ละรายการ หรือจะเพิ่มเติมอีกขั้นหนึ่งแล้วใส่โฟลว์ที่แชร์ไว้ในโฟลว์ hook เพื่อเรียกใช้ตรรกะโฟลว์ที่แชร์โดยอัตโนมัติสำหรับพร็อกซี API ทั้งหมดที่ทำให้ใช้งานได้ในสภาพแวดล้อมเดียวกันเป็นโฟลว์ที่แชร์โดยอัตโนมัติ
การเผยแพร่ผลิตภัณฑ์ Apigee ช่วยให้มั่นใจได้ว่ามีการป้องกันไลบรารีที่มีช่องโหว่ Apigee อาจเผยแพร่แพตช์หรือการอัปเดตเพิ่มเติมหากพบช่องโหว่ใหม่ ระบบคลาวด์สาธารณะ Edge จะได้รับการแพตช์โดยอัตโนมัติ ลูกค้า Edge สำหรับ Private Cloud (ภายในองค์กร) ต้องใช้แพตช์ผลิตภัณฑ์ด้วยตนเอง
A7:2017 - การเขียนสคริปต์ข้ามเว็บไซต์ (XSS)
Cross-site Scripting (XSS) ทำให้ผู้โจมตีเรียกใช้สคริปต์ในเว็บเบราว์เซอร์ของผู้ใช้เพื่อควบคุมเซสชันของผู้ใช้ จัดการเว็บไซต์ หรือสร้างผลกระทบที่เป็นอันตรายต่อผู้ใช้ด้วยวิธีอื่นๆ ได้ ปัญหา XSS ไม่จำเป็นต้องเกี่ยวข้องกับ API แต่ Apigee คือนโยบายการป้องกันภัยคุกคามที่ใช้เพื่อป้องกัน XSS ใน API ได้ การใช้นิพจน์ทั่วไป ตรวจสอบเพย์โหลดและค่าพารามิเตอร์สำหรับ JavaScript และการโจมตีประเภทการแทรกอื่นๆ ด้วยนโยบาย regularExpressionProtection หรือนโยบาย JavaScript
CORS ซึ่งเป็นหนึ่งในโซลูชันที่นิยมใช้กันโดยทั่วไปสำหรับนโยบายต้นทางเดียวกันซึ่งเบราว์เซอร์ทั้งหมดบังคับใช้ สามารถนำมาใช้ได้โดยใช้นโยบาย AssignMessage
A8:2017 - การแยกอนุกรมที่ไม่ปลอดภัย
ผู้โจมตีอาจใช้ข้อบกพร่องในการดีซีเรียลไลซ์สำหรับการโจมตีประเภทต่างๆ เช่น การเล่นซ้ำ การโจมตีเพื่อยกระดับสิทธิ์ และการแทรก การแยกซีเรียลไลซ์ที่ไม่ปลอดภัยยังเปิดใช้การดำเนินการโค้ดระยะไกลได้ด้วย
Apigee ไม่แนะนำให้ใช้การดีซีเรียลไลซ์ อย่างไรก็ตาม นโยบาย JSONThreatProtection และนโยบาย regularExpressionProtection ช่วยป้องกันเพย์โหลด JSON ที่เป็นอันตรายได้ นโยบาย JavaScript ยังใช้เพื่อสแกนเพย์โหลดสำหรับเนื้อหาที่เป็นอันตรายได้ด้วย แคชและนโยบายอื่นๆ สามารถใช้เพื่อป้องกันการโจมตีจากการเล่นซ้ำ ในระดับโครงสร้างพื้นฐาน แพลตฟอร์ม Apigee ก็มีแนวป้องกันในตัวเพื่อปกป้องกระบวนการที่ทำงานอยู่เช่นกัน
A9:2017 - การใช้คอมโพเนนต์ที่มีช่องโหว่ที่ทราบ
เนื่องจากเฟรมเวิร์ก ไลบรารี และโมดูลทำงานโดยมีการดำเนินการอย่างสมบูรณ์และสิทธิ์เข้าถึง CRUD ผู้โจมตีจึงอาจใช้ประโยชน์จากช่องโหว่ขององค์ประกอบเพื่อโจมตีระบบได้
การเปิดตัวผลิตภัณฑ์ตามปกติของ Apigee คือการปกป้องช่องโหว่ในคอมโพเนนต์ โดยเฉพาะเมื่อพบช่องโหว่ที่เจาะจง ระบบจะแพตช์ระบบคลาวด์สาธารณะของ Apigee โดยอัตโนมัติ และ Apigee จะแจ้ง Edge ให้ลูกค้า Private Cloud ทราบเมื่อแพตช์ภายในองค์กรพร้อมสำหรับการติดตั้ง
A10:2017 - การบันทึกและตรวจสอบไม่เพียงพอ
เมื่อคุณไม่ได้บันทึก ตรวจสอบ และจัดการเหตุการณ์ในระบบอย่างเพียงพอ ผู้โจมตีจะโจมตีข้อมูลและซอฟต์แวร์ได้ลึกและยาวนานขึ้น
Apigee คือวิธีต่างๆ ในการเก็บบันทึก การตรวจสอบ การจัดการข้อผิดพลาด และการบันทึกการตรวจสอบ
Logging
- คุณส่งข้อความบันทึกไปยัง Splunk หรือปลายทาง syslog อื่นๆ ได้โดยใช้นโยบาย MessageLrunning
- คุณจะดึงข้อมูลวิเคราะห์ API ผ่าน Analytics API และนำเข้าหรือส่งออกไปยังระบบอื่นๆ ได้
- ใน Edge สำหรับ Private Cloud คุณจะใช้นโยบาย MessageLoking เพื่อเขียนไปยังไฟล์บันทึกในเครื่องได้ นอกจากนี้ ไฟล์บันทึกจากคอมโพเนนต์ที่ทำงานอยู่แต่ละรายการจะพร้อมใช้งานด้วย
- คุณใช้นโยบาย JavaScript เพื่อส่งข้อความบันทึกไปยังปลายทางการบันทึก REST แบบพร้อมกันหรือแบบไม่พร้อมกันได้
Monitoring
- ใช้ UI หรือ API ของ API Monitoring เพื่อตรวจสอบ API และแบ็กเอนด์ รวมถึงทริกเกอร์ Alet เป็นประจำ
- ใช้การตรวจสอบประสิทธิภาพการทำงานเพื่อตรวจสอบแบ็กเอนด์ของเซิร์ฟเวอร์เป้าหมายอย่างสม่ำเสมอ
- Apigee จะให้คำแนะนำการตรวจสอบ Edge สำหรับ Private Cloud
- นอกจากนี้ Apigee ยังบอก แนวทางปฏิบัติแนะนำที่ทีมของคุณสามารถนำไปใช้ตรวจสอบโปรแกรม API ได้ด้วย
การจัดการข้อผิดพลาด
Apigee มีกลไกการจัดการข้อผิดพลาดที่มีประสิทธิภาพและอเนกประสงค์สำหรับพร็อกซี API พร็อกซี API สามารถตรวจจับข้อผิดพลาดและกำหนดว่าจะส่งคำตอบที่เหมาะสมไปยังไคลเอ็นต์ได้อย่างไร เช่นเดียวกับที่โปรแกรม Java จับข้อยกเว้น การจัดการข้อผิดพลาดที่กำหนดเองของ Apigee ทำให้คุณเพิ่มฟังก์ชันการทำงานได้ เช่น การบันทึกข้อความทุกครั้งที่เกิดข้อผิดพลาด
บันทึกการตรวจสอบ
แพลตฟอร์ม Apigee จะเก็บบันทึกการตรวจสอบที่ติดตามการเปลี่ยนแปลงพร็อกซี API, ผลิตภัณฑ์ และประวัติองค์กร บันทึกนี้พร้อมให้ใช้งานผ่าน UI หรือผ่าน Audits API
โซลูชัน Apigee สำหรับช่องโหว่ OWASP ในปี 2013
เมื่อ OWASP อัปเดตรายการสำหรับปี 2017 ช่องโหว่บางรายการจากรายการของปี 2013 ได้หายไป แต่ยังคงเป็นภัยคุกคามที่ถูกต้อง ส่วนต่อไปนี้อธิบายวิธีจัดการกับภัยคุกคามเหล่านี้ด้วย Apigee
A8:2013 - การปลอมแปลงคำขอข้ามเว็บไซต์ (CSRF)
คำขอการปลอมแปลงแบบข้ามเว็บไซต์ทำให้ผู้โจมตีส่งต่อรายละเอียดการตรวจสอบสิทธิ์ของผู้ใช้ คุกกี้เซสชัน และข้อมูลอื่นๆ ไปยังเว็บแอปพลิเคชันที่มีช่องโหว่ผ่าน HTTP ได้ โดยหลอกให้เว็บแอปพลิเคชันเชื่อว่าคำขอนั้นเป็นคำขอที่ถูกต้องจากผู้ใช้
หลักเกณฑ์:
- ปัญหานี้เกี่ยวข้องกับเบราว์เซอร์ ไม่ใช่ปัญหาเกี่ยวกับผลิตภัณฑ์ API คุณแก้ไขช่องโหว่นี้ได้ด้วย OpenID Connect, OAuth และเทคนิคอื่นๆ
- ลองใช้เทคนิค HMAC, สถานะ, แฮช, Nonce หรือ PKCE เพื่อป้องกันการปลอมแปลงและการโจมตีซ้ำ
A10:2013 - การเปลี่ยนเส้นทางและการส่งต่อที่ไม่ผ่านการตรวจสอบ
หากเว็บแอปพลิเคชันทำการเปลี่ยนเส้นทาง แต่ไม่ได้ตรวจสอบว่าการเปลี่ยนเส้นทางส่งผู้ใช้ไปยังเว็บไซต์ที่เชื่อถือได้และตั้งใจ ผู้โจมตีสามารถส่งผู้ใช้ไปยังปลายทางที่เป็นอันตรายเพื่อทำฟิชชิง มัลแวร์ และการโจมตีอื่นๆ ได้
หลักเกณฑ์:
- ใช้ OAuth และบังคับใช้การตรวจสอบกับคำขอแต่ละรายการ
- ป้องกันการเปลี่ยนเส้นทาง 302 ที่ไม่คาดคิดด้วยการตรวจสอบโค้ดตอบกลับในตรรกะพร็อกซี API และจัดการการเปลี่ยนเส้นทางอย่างเหมาะสม