Bypass Certificate Pinning on a Flutter-based iOS App

ไม่กี่ปีที่ผ่านมาผมกับทีมได้มีโอกาสทดสอบความปลอดภัยให้กับแอปที่ถูกพัฒนาด้วยเฟรมเวิร์ค Flutter เราติดปัญหาเรื่องการ bypass certificate pinning เพราะตอนนั้นยังแทบไม่มีบทความหรือ research เกี่ยวกับการ penetration test แอปที่เขียนด้วย Flutter เลย แต่ยังโชคดีที่ project lead ของผมเค้าไปหาวิธีมาจนได้จาก blog ของ NVSIO (https://blog.nviso.eu/2020/06/12/intercepting-flutter-traffic-on-ios/). แต่พอมาเร็ว ๆ นี้ผมเริ่มรู้สึกกลับมาติดปัญหาเรื่องนี้อีกครั้ง วันนี้จะพามาดูวิธีที่ผมใช้เพื่อ bypass certificate pinning ของ iOS app ที่เขียนด้วย Flutter กัน

อ่านเพิ่มเติม

Flutter – TLS Certificate Pinning Sample

TLS Certificate Pinning ช่วยทำให้แอปสามารถตรวจสอบได้ว่าบริการ TLS/SSL ที่กำลังจะเชื่อมต่อนั้นเป็นเป็นบริการที่รันอยู่บน server เดียวกันกับที่แอปรู้จักไหม เพื่อป้องกันการดัก traffic ด้วย proxy ในเบื้องต้นก่อน (ความเป็นจริงแล้วการ implement security control ฝั่ง client side มันย่อมมีแนวโน้มว่าจะถูก bypass ได้ แต่ทำไว้ยังดีกว่าไม่ทำเลย) หลายครั้งที่ต้องเรสประเด็นว่าแอปไม่มีการตรวจสอบ TLS certificate ของบริการ TLS/SSL ที่ตัวมันต้องเชื่อมต่อยิ่งเป็นแอปที่มีความสำคัญพวก financial app แล้วยิ่งต้องถูกกำกับด้วยข้อบังคับต่าง ๆ นานา ผู้พัฒนาแอปจึงจำเป็นที่ต้องพัฒนาแอปให้สอดคล้องกับข้อบังคับเหล่านั้น

อ่านเพิ่มเติม

How to intercept the HTTP traffic via WireGuard

บทความนี้กล่าวถึงวิธีการดักจับข้อมูลผ่านโปรแกรม Burp Suite โดยโปรแกรมมีการป้องกันที่เรียกว่า Proxy-aware ตัวอย่างเช่นโปรแกรมที่ถูกเขียน Flutter เป็นต้น เพื่อให้นักทดสอบเจาะระบบสามารถที่จะดักจับและวิเคราะห์ข้อมูล การส่งและรับระหว่าง Application และ Server ได้

อ่านเพิ่มเติม

How to intercept the HTTP traffic via OpenVPN

เป็นวิธีการดักจับข้อมูล HTTP ของ Burp โดยใช้ OpenVPN ลงบน Kali และเครื่อง iOS เพื่อที่จะทำให้สามารถดักจับ Traffic ได้ ซึ่งบาง Application ที่เขียนด้วย Flutter อาจไม่สามารถดักจับได้โดยวิธีลง Cert burp ปกติ

อ่านเพิ่มเติม