ช่วงที่ผ่านมา หลายๆท่านน่าจะคุ้นเคย หรือ ได้ยินข่าวที่เกี่ยวข้องกับช่องโหว่ ชื่อดังที่ชื่อว่า Heartbleed bug โดยมี บทความ และ สำนักข่าวหลายๆแห่ง จัดให้ว่าเป็นช่องโหว่ระดับโลก ที่รุนแรงมากที่เคยปรากฏมาตั้งแต่ ยุคที่มีอินเตอร์เน็ต ช่องโหว่ที่ชื่อว่า Heartbleed bug หรือ CVE-2014-0160  ทำให้ใครก็ตามสามารถส่งคำสั่งบางอย่างเพื่อทำให้เห็นข้อมูลใน memory ครั้งละประมาณ 64K ได้ต่อ 1 ครั้ง และ สามารถส่งคำสั่งกี่ครั้งก็ได้ ซึ่งข้อมูลที่สามารถรั่วไหลออกมาได้นั้นเป็นไปได้หลายอย่างเช่น content ที่ไม่ต้องทำการ authenticate, ข้อมูล session, Private Key, username และ passwords ซึ่งจัดว่ามีความเสี่ยงเป็นอย่างยิ่ง การจะดูว่าองค์กรของเรามีความเสี่ยงหรือไม่นั้น ต้องพิจารณาว่าองค์กรของเรามี Server หรือ Component ที่ให้บริการที่มีการใช้ OpenSSL Version 1.0.1, 1.0.1f, 1.0.2-beta, และ 1.0.2-beta1 อยู่หรือไม่ซึ่งจะทำให้ Server หรือ Component นั้นๆมีความเสี่ยงต่อ Heartbleed bug จากภาพด้านล่างเป็นข้อความที่ทาง openssl.org แถลงเรื่องช่องโหว่ Heartbleed

openssl

ทาง ACinfotec ไม่ได้วางเฉยในเรื่องนี้ พวกเราได้แจ้งเตือนไปยังกลุ่มลูกค้าหลายแห่ง และตระหนักว่า Heartbleed bug ยังคงมีโอกาสที่รอการถูกตรวจพบอยู่ในองค์กรเกือบทุกที่ หากองค์กรนั้นไม่ได้มีการตรวจสอบอย่างจริงจัง บทความชิ้นนี้จึงได้ถูกนำเสนอให้องค์กรแต่ละแห่งสามารถที่จะตรวจสอบช่องโหว่นี้ได้ด้วยตัวเองได้

การตรวจสอบ Heartbleed bug

วิธีการตรวจสอบ หาก Server นั้นๆให้บริการผ่าน Internet ก็สามารถทำได้โดยไปตรวจสอบที่ Heartbleed test โดย http://twitter.com/FiloSottile แต่ถ้า Server หรือบริการของท่านอยู่ใน Internal Network ก็ต้องใช้วิธีการอื่น เช่นการทดสอบด้วย script หรือใช้ Metasploit
1. ให้ใช้ Metasploit Version 4.9 ขึ้นไป

heartbleed_check1

2. run คำสั่งดังภาพ

> use auxiliary/scanner/ssl/openssl_heartbleed
> set VERBOSE true
> set RHOSTS 192.168.0.1-254
> run

heartbleed_check2

3. หากพบช่องโหว่ จะมีข้อความว่า “Heartbeat response with leak” และข้อมูลบางอย่างพ่นออกมา มากน้อย แล้วแต่ช่วงเวลานั้นๆ(อย่าพึ่งตกใจว่าสะกดผิด Heartbleed bug เป็นช่องโหว่บน Function Heartbeat)

heartbleed_check3

ข้อควรพิจารณา

วิธีการแก้ไขคือต้องทำการ update OpenSSL ก็จะแก้ไข Heartbleed bug ได้ (SSL บน Window ไม่มีปัญหานะครับ) แต่ความเสี่ยงที่ตามมาก็คือ
1. เราไม่รู้ว่าโดนขโมยเอาข้อมูลอะไรออกไปแล้วบ้าง ถ้าหากมีการ implement Extrusion Detection ก็ต้องลองไปดูว่ามีอะไรถูกขโมยข้อมูลออกไปแล้วบ้างหรือไม่(วิธีนี้จัดว่ายากเกินไป อาจจะต้องรอ vendor ทำ flow analysis ออกมาโดยเฉพาะ)
2. สืบเนื่องจากข้อ 1 การโจมตีจะไม่มี log ปรากฎ หากเราดูแต่ web server log เราจะไม่สามารถรู้ได้เลยว่ามันเสียหากมากน้อยแค่ไหน เป็นสถานการณ์ที่เราเสียเปรียบเป็นอย่างยิ่ง
3. คุณ Update และแก้ปัญหาฝั่ง server-side ได้ก็จริง แต่ฝั่ง client-side ยังมีความเสี่ยงอยู่ ลองคิดดูว่าถ้าเราบังคับให้ client ทำการ connect กับ server ที่เรา control ได้ client-side attack ก็สามารถเกิดขึ้นได้ ซึ่งจะทำให้เราสามารถอ่านข้อมูลใน memory ของ client ได้ และตอนนี้นักวิจัยได้ออกมา confirm แล้วว่า Android versions 4.1.0 และ 4.1.1a มีโอกาสโดน Heartbleed bug เล่นงาน

Client กับความเสี่ยงกับ Heartbleed bug

เราจะตรวจสอบได้อย่างไรว่า client มีความเสี่ยงกับ Heartbleed bug หรือไม่ ซึ่งความเสี่ยงฝั่ง client-side เราจะเรียกว่า Reverse Heartbleed bug

1. ไปที่ http://reverseheartbleed.com ทำการ click “Generate URL” และ Copy URL นั้นเอาไว้ โดยอย่าพึ่งปิดหน้าจอนี้

reverse_heartbleed_check1

2. เปิดใช้งานอุปกรณ์ฝั่ง client-side เช่น Browser บน SmartPhone ดังภาพได้ทำการทดสอบกับ Android Ver 4.1.2 โดยเปิด Browser และทำการพิมพ์ URL ที่ copy มาจากข้อ 1

reverse_heartbleed_check2

3. กลับมาที่หน้าจอเดิมในข้อ 1 เลือก “See Test Results” พบว่า Android เครื่องนี้มีปัญหา reverse heartbleed bug ซึ่งอาจจะถูกโจมตีจาก malicious server ได้

reverse_heartbleed_check3

องค์กรใดที่ยังไม่เคยทำการตรวจสอบ แนะนำว่าให้รีบทำการตรวจสอบและปิดช่องโหว่ Heartbleed อย่างเร่งด่วน และที่สำคัญมากกว่านั้นต้องแจ้งเตือนไปยังพนักงานที่เกี่ยวข้องว่าหากมี email แจ้งเตือนให้ทำการ reset password อันเนื่องมาจากช่องโหว่ Heartbleed bug ต้องพิจารณาให้ดี อย่าให้ถูกโจมตีจาก Phishing และอย่ากด Link แปลกๆหากไม่แน่ใจ

หากองค์กรใดต้องการปรึกษาเรื่อง Heartbleed bug ก็สามารถติดต่อมาทาง ACinfotec ได้ทันที และหวังเป็นอย่างยิ่งว่าองค์กรของท่านจะปลอดภัยจาก Heartbleed bug

ข้อมูลเพิ่มเติม

หากอยากรู้จักกับ Heartbleed bug มากขึ้นสามารถไปติดตามได้ที่ heartbleed.com