Pysa เครื่องวิเคราะห์แบบคงที่สำหรับ Python ที่ Facebook นำเสนอ

Facebook ได้เปิดตัวเครื่องวิเคราะห์สแตติกแบบโอเพนซอร์สชื่อว่า« Pysa» (Python Static Analyzer) ซึ่งก็คือ ออกแบบมาเพื่อระบุช่องโหว่ที่อาจเกิดขึ้นในโค้ด Python

ปิศาจ ให้การวิเคราะห์การไหลของข้อมูล อันเป็นผลมาจากการเรียกใช้โค้ดซึ่ง ช่วยให้คุณระบุช่องโหว่และปัญหาที่อาจเกิดขึ้นมากมาย ความเป็นส่วนตัวที่เกี่ยวข้องกับการใช้ข้อมูลในที่ที่ไม่ควรปรากฏ

ตัวอย่างเช่น Pysa สามารถติดตามการใช้ข้อมูลดิบภายนอกในการโทร ที่รันโปรแกรมภายนอกในการดำเนินการไฟล์และในโครงสร้าง SQL

วันนี้เราแบ่งปันรายละเอียดเกี่ยวกับ Pysa ซึ่งเป็นเครื่องมือวิเคราะห์แบบคงที่แบบโอเพ่นซอร์สที่เราสร้างขึ้นเพื่อตรวจจับและป้องกันปัญหาด้านความปลอดภัยและความเป็นส่วนตัวในโค้ด Python เมื่อปีที่แล้วเราได้แบ่งปันวิธีที่เราสร้าง Zoncolan ซึ่งเป็นเครื่องมือวิเคราะห์แบบคงที่ซึ่งช่วยให้เราวิเคราะห์รหัสแฮ็กได้มากกว่า 100 ล้านบรรทัดและช่วยวิศวกรป้องกันปัญหาด้านความปลอดภัยที่อาจเกิดขึ้นหลายพันรายการ ความสำเร็จดังกล่าวเป็นแรงบันดาลใจให้เราพัฒนา Pysa ซึ่งเป็นคำย่อของ Python Static Analyzer

Pysa ใช้อัลกอริทึมเดียวกัน เพื่อทำการวิเคราะห์แบบคงที่และแม้แต่แชร์โค้ดด้วย ซองโคลัน. เช่นเดียวกับ Zoncolan, Pysa ติดตามการไหลของข้อมูลผ่านโปรแกรม

ผู้ใช้กำหนดแหล่งที่มา (สถานที่ที่ข้อมูลสำคัญมา) และซิงก์ (สถานที่ที่ข้อมูลต้นทางไม่ควรสิ้นสุด)

สำหรับแอปพลิเคชันด้านความปลอดภัยแหล่งที่มาที่พบบ่อยที่สุดคือที่ที่ข้อมูลที่ผู้ใช้ควบคุมเข้าสู่แอปพลิเคชันเช่นพจนานุกรม Django

ตัวรับมีแนวโน้มที่จะหลากหลายกว่ามาก แต่สามารถรวม API ที่เรียกใช้โค้ดได้เช่น evalหรือ API ที่เข้าถึงระบบไฟล์เช่นos.open

Pysa ทำการวิเคราะห์วนซ้ำเพื่อสร้างบทคัดย่อ เพื่อกำหนดว่าฟังก์ชันใดที่ส่งคืนข้อมูลจากแหล่งที่มาและฟังก์ชันใดมีพารามิเตอร์ที่ส่งผลต่อซิงก์ในที่สุด หาก Pysa พบว่าแหล่งที่มาเชื่อมต่อกับซิงก์ในที่สุดก็จะรายงานปัญหา 

งานวิเคราะห์ มันเดือดถึงการระบุแหล่งข้อมูลขาเข้า และการโทรที่เป็นอันตรายซึ่งไม่ควรใช้ข้อมูลเดิม

Pysa ตรวจสอบการส่งผ่านข้อมูลผ่านสายการเรียกใช้ฟังก์ชันและเชื่อมโยงข้อมูลดั้งเดิมกับตำแหน่งที่อาจเป็นอันตรายในโค้ด

เนื่องจากเราใช้เฟรมเวิร์กเซิร์ฟเวอร์ Python แบบโอเพนซอร์สเช่น Django และ Tornado สำหรับผลิตภัณฑ์ของเราเอง Pysa จึงเริ่มพบปัญหาด้านความปลอดภัยในโปรเจ็กต์ที่ใช้เฟรมเวิร์กเหล่านี้ตั้งแต่การรันครั้งแรก การใช้ Pysa สำหรับเฟรมเรายังไม่มีความครอบคลุมโดยทั่วไปนั้นทำได้ง่ายเพียงแค่เพิ่มบรรทัดการกำหนดค่าสองสามบรรทัดเพื่อบอก Pysa ว่าข้อมูลเข้ามาในเซิร์ฟเวอร์ที่ไหน

ช่องโหว่ทั่วไปที่ระบุโดย Pysa คือปัญหาการเปลี่ยนเส้นทางแบบเปิด (CVE-2019-19775) ในแพลตฟอร์มการส่งข้อความ Zulip ซึ่งเกิดจากการส่งผ่านพารามิเตอร์ภายนอกที่ไม่สะอาดเมื่อแสดงภาพขนาดย่อ

ความสามารถในการติดตามการไหลของข้อมูลของ Pysa สามารถใช้เพื่อตรวจสอบความถูกต้องของการใช้เฟรมเพิ่มเติมและกำหนดการปฏิบัติตามนโยบายการใช้ข้อมูลของผู้ใช้

เช่น Pysa ที่ไม่มีการกำหนดค่าเพิ่มเติมสามารถใช้เพื่อตรวจสอบโครงการโดยใช้กรอบ Django และ Tornado Pysa ยังสามารถระบุช่องโหว่ทั่วไปในเว็บแอปพลิเคชันเช่นการแทนที่ SQL และการเขียนสคริปต์ข้ามไซต์ (XSS)

บน Facebook ตัววิเคราะห์จะใช้เพื่อตรวจสอบรหัสของบริการ Instagram. ในช่วงไตรมาสแรกของปี 2020 Pysa ช่วยระบุ 44% ของปัญหาทั้งหมดที่วิศวกรของ Facebook พบในฐานรหัสฝั่งเซิร์ฟเวอร์ของ Instagram

มีการระบุปัญหาทั้งหมด 330 ปัญหาในกระบวนการ ของการตรวจสอบการเปลี่ยนแปลงอัตโนมัติโดยใช้ Pysa ซึ่ง 49 (15%) ได้รับการประเมินว่ามีนัยสำคัญและ 131 (40%) ไม่เป็นอันตราย ใน 150 กรณี (45%) ปัญหาเกิดจากผลบวกปลอม

ตัวแยกวิเคราะห์ใหม่ได้รับการออกแบบให้เป็นส่วนเสริมของชุดเครื่องมือการตรวจสอบประเภท Pyre และวางไว้ในที่เก็บของคุณ รหัสนี้เผยแพร่ภายใต้ใบอนุญาต MIT

ในที่สุด หากคุณต้องการทราบข้อมูลเพิ่มเติม คุณสามารถตรวจสอบรายละเอียดในโพสต์ต้นฉบับ ลิงค์คือนี่


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา