พบช่องโหว่ที่ทำให้สามารถถอดรหัส email ที่เข้ารหัสด้วย OpenPGP และ S/MIME ได้
EFAIL เป็นช่องโหว่ที่ทำให้ดู plaintext จาก email ที่ถูกเข้ารหัสแบบ end-to-end ด้วย OpenPGP และ S/MIME ได้
เราทราบกันดีว่าถ้าเป็น email ปกติทั่วไป (Port 25) มันจะเป็น plaintext ทำให้เกิดการใช้ OpenPGP และ S/MIME เพื่อทำ end-to-end encryption ขึ้นมาเพื่อเข้ารหัส email ที่ส่งปกติให้ไม่ให้คนที่ดักฟังอ่าน email เราได้
ทีนี้การโจมตี EFAIL จะทำที่ HTML email ที่เป็น active content เช่นการ loaded images หรือ CSS styles เพื่อลักลอบเอา plaintext ผ่าน URLs. เพื่อจะทำช่องทางการลักลอบนี้ attacker จำเป็นต้องเข้าถึง encrypt email ด้วยการดักฟัง, หรือเข้าถึง email account นั้นๆให้ได้ก่อน ซึ่ง email ที่เราจะดูข้อมูล plaintext นั้นอาจเป็น email ของหลายปีก่อนก็ได้
Attacker เข้าไปเปลี่ยน encrypted email ด้วยการเพิ่ม link เข้าไป แล้วส่ง email ที่มีการเปลี่ยนแปลงนั้นไปยัง client เมื่อ client เปิด(decrypt) email, ตัว email ก็จะทำการ load external content แล้วส่ง plaintext ให้กับ attacker
การลักลอบ (Exfiltration) ออกไปสามารถทำได้ 2 แบบ
1. Direct คือพวก Apple Mail, iOS Mail และ Thunderbird โดย Attacker จะเข้าไปแก้ไข email แล้วใส่ multipart email เข้าไปเพิ่ม โดยใน email นั้นจะมี 3 ส่วน ส่วนแรกคือ HTML Body ซึ่งมี HTML image tag อยู่ ใน image tag นั้นจะกำหนด src ไว้แต่ไม่ได้ปิด ” ไว้ ส่วนที่ 2 จะเป็น email ที่ถูก encrypt ไว้ ส่วนที่ 3 คือ ” ที่ปิด src ของส่วนแรก
เมื่อ attacker ส่ง email ไปยังเหยื่อ ตัวเหยื่อเปิด email ตัว email client จะทำการถอดรหัส email ส่วนที่ 2 ให้อัตโนมัติ แล้วรวมข้อมูลทั้งก้อนเป็นก้อนเดียว ซึ่งนั่นก็คือ email content ที่ถูก encrypt ไว้แต่แรกจะเป็น URL ที่ต่อเข้าไปใน URL src ของ image tag นั่นเอง ซึ่งก็จะกลายเป็นว่าตัว email client จะไปเรียก image จาก src ที่มี content ของ email ที่ถูกเข้ารหัสไว้ไปด้วยนั่นเอง
2. CBC/CFB gadget attack คือใช้การโจมตีแบบ CBC/CFB gadgets ในการ inject image เข้าไปใน encrypted plaintext แล้วนำ content ทั้งหมดมาเป็น part หน่ึงของ URL เช่นเดิม (หากใครต้องการทราบรายละเอียด CBC/CFB gadgets กด link นี้ครับ)
วิธีการป้องกัน
- SHORT TERM SOLUTION: การแยกการถอดรหัส email ไปไว้ข้างนอก email client (user ทำได้เลย)
- SHORT TERM SOLUTION: disable HTML rendering เพื่อป้องกันการโหลด external content (user ทำได้เลย)
- MEDIUM TERM SOLUTION: รอให้ vendor ออก patch ทั้งหมดมาแก้ไข
- LONG TERM SOLUTION: เปลี่ยนแปลงและแก้ไข OpenPGP และ S/MIME Standards
ปล. จากที่เห็นจะพบว่าจริงๆแล้วมันก็ไม่ได้ทำกันง่ายๆ การที่ Attacker จะเข้าถึง email ของ client ได้นั้นมันไม่ใช่เรื่องง่ายเลย ซึ่งถ้าทำได้ขนาดนั้นแล้ว มันมีวิธีอีกมากมายที่จะยึดเครื่อง client มากกว่าแทนที่จะมานั่งตกใจกับ EFAIL และสำคัญอีกอย่างคือเรื่องของการ render HTML ใน email เป็นสิ่งที่ไม่ควรทำอยู่แล้ว ไม่ว่าจะเป็น email ที่เป็น OpenPGP หรือไม่ใช่ก็ตาม เพราะ link ข้างนอกเนี่ยอันตรายเกินไปที่จะ auto open มันนั่นเอง
Source:: efail.de