อัพเดทการป้องกัน screen recording ของ mobile app แต่ละธนาคาร (ภาคต่อ)

จากในกระทู้นี้ https://pantip.com/topic/41826176 ที่คุณ 6587410 ได้ตั้งไว้ และได้มีการตั้งข้อสงสัยกันว่า

มีโปรแกรม Remote ที่มองทะลุจอดำได้ หรือไม่ ?

จากการลองทดสอบหลาย ๆ โปรแกรม Remote และลอง App ธนาคารจำนวน 16 Apps

ก็พบว่ายังไม่เจอเจอโปรแกรม Remote ที่มองทะลุจอดำได้

แต่ไปเจอที่หนักกว่านั้น คือไปเจอโปรแกรม Remote ที่มัน "ทะลุ" ผ่านการตรวจจับ Remote ได้ขึ้นมา

ทำให้การบังคับ Force Exit App ไม่ทำงาน ทำได้แค่เพียงจอดำธรรมดา ๆ ซึ่ง "จอดำ"  ไม่มีความปลอดภัยอะไรเลย มีก็เหมือนไม่มี

ขอยกมาพูดถึงแค่ 2 App นะครับ คือกรุงไทย Next กับ เกียรตินาคินภัทร เพราะ 2 ธนาคารนี้ ถือว่ามี Security ที่ดีที่สุดแล้ว คือมีการพยายามตรวจจับการ Remote ส่วนธนาคารอื่น ๆ อีก 14 ธนาคาร App Version ที่ผมนำมาทดสอบ ไม่พบว่ามีการตรวจสอบการ Remote แต่อย่างใด

Krung Thai Next Version 12.1.1


สำหรับ App กรุงไทย Next ตั้งแต่ Version 11.11.11 ขึ้นไปมีการตรวจจับการ Remote แล้ว ถ้าตรวจเจอก็จะบังคับ "ปิดแอป" ส่วนฝั่ง Remote ก็จะเป็นจอดำ

ซึ่งผมก็มีข้อสงสัยติดอยู่ในใจก็คือ แล้วมันจะมีแอป Remote ที่ตรวจจับไม่เจอหรือเปล่า คำตอบก็คือมี


เมื่อตรวจจับไม่เจอ โปรแกรมก็ยังคงทำงานได้ตามปกติ ซึ่งทางฝั่ง Remote ก็จอดำ แต่ยังสามารถคลิกเพื่อสั่งงานต่าง ๆ ได้อยู่ดี

หลายคนคงมีคำถามว่า อ้าวก็จอดำแล้วจะคลิกได้อย่างไร คำตอบก็คือได้ซิ ก็เขียนโปรแกรมเอาซิครับ Mouse Move, Mouse Click ฯลฯ แค่รู้ว่าหน้าจอต่อไปจะมีปุ่มอะไรบ้าง และตำแหน่งปุ่มอยู่ตรงไหน เมื่อหาค่าพิกัด X, Y ได้  การเขียนโปรแกรมเตรียมการไว้ล่วงหน้าไม่ใช่เรื่องยากอะไร จริงไหมครับ

KKP Mobile Version 2.3.4
เกียรตินาคินภัทร ก็เป็นอีก 1 App ที่มีการตรวจจับการ Remote เมื่อตรวจจับเจอ ก็จะบังคับ "ปิดแอป" เช่นเดียวกันกับกรุงไทย


แต่ถ้าเป็น App Remote ที่ตรวจไม่เจอ ก็จะใช้งานได้ตามปกติเช่นเดียวกัน


เมื่อตรวจไม่เจอก็จะมีอาการหลุด ๆ เกิดขึ้น

จากภาพข้างบน เป็นการใช้ Input Keyboard ที่ไม่ใช่แป้นพิมพ์นิรภัย การกรอกข้อมูลทั่วไป มิจฉาชีพจะมองเห็นข้อมูลได้หมดเลย



จากภาพข้างบนเป็นการใช้ Keyboard ที่เป็นแป้นพิมพ์นิรภัย ที่ทำให้ฝั่ง Remote มองไม่เห็นว่า User กดอะไรลงไป

ซึ่งถ้าถามผมว่า รูปแบบไหนปลอดภัย รูปแบบที่ 1 หรือ รูปแบบที่ 2

ผมตอบเลยว่า ไม่ปลอดภัยทั้ง 2 แบบ ไม่ว่าจะใช้แป้นพิมพ์ที่ไม่นิรภัย หรือแป้นพิมพ์นิรภัย มันก็ไม่แตกต่างกัน

คือต่อให้มันจอดำ Input ปุ่มกด มันก็ยังอยู่ในตำแหน่งเดิมของมัน โจรมันก็สามารถเขียนโปรแกรมเพื่อไปกดปุ่มตรงตำแหน่งพิกัด X, Y ตรงนั้น ๆ ได้อยู่ดีนั่นแหล่ะ การจะกดปุ่มโดยหน้าจอดำ / หน้าจอขาว หรือจะหน้าจอสีอะไรก็ตาม มันมีวิธีการที่จะทำได้อย่างน้อย 4 วิธี ซึ่งขอข้ามไม่อธิบายนะครับ (โจรมันคงรู้วิธีการพวกนี้อยู่แล้ว แต่ปัญหาก็คือ Dev ไม่รู้, ผู้บริหารไม่รู้, ผู้ใช้งานไม่รู้ มันเลย "เรือหาย" กันยังไงล่ะครับ)

สำหรับ App ธนาคารอื่น ๆ ที่ผมไม่ได้ยกมาพูดถึง ไม่ใช่ว่า App ของพวกคุณ "รอด" นะครับ แต่ App ของพวกคุณ "แย่กว่า" ต่างหาก ผมเลยไม่ยกมาเป็นตัวอย่าง

2 ธนาคารนี้ต้องชื่นชมมาก ๆ เลยครับ ที่มีความพยายามตรวจจับการ Remote แม้ว่าจะยังมีหลุดอยู่บ้าง แต่ผมเชื่อว่าไม่นานเค้าคงออก Version ใหม่มาแก้ปัญหานี้ครับ เพราะผมเห็นถึงความพยายามในการพัฒนาในเรื่อง Security อย่างต่อเนื่องจาก 2 ธนาคารนี้

App Mobile Banking ที่ดีควรเป็นอย่างไร ?
1. ต้องมีการตรวจจับการ Remote เมื่อตรวจพบต้อง "ปิดแอป" ในทันที
2. ต้องตรวจจับการ Root เครื่อง เมื่อตรวจพบต้อง "ปิดแอป" ในทันที
3. ต้องตรวจจับการเปิด USB Debugging เมื่อตรวจพบกต้อง "ปิดแอป" ในทันที
4. ต้องใส่จอดำ / จอขาว หรือจอสีอะไรก็แล้วแต่ในทุก ๆ หน้า ไม่ใช่ใส่เฉพาะหน้าจอที่มีข้อมูลส่วนบุคคล เพื่อป้องกันการที่ Dev ลืมใส่ การที่ใส่ในบางหน้าโอกาส "ลืม" มันเกิดขึ้นได้ง่ายกว่า การบังคับใส่ใน "ทุกหน้า"
5. Input Keyboard ในการใส่ข้อมูลที่เป็นตัวอักษร ต้องใช้ Secure Keyboard ในทุก ๆ ฟิลด์ ไม่ว่าจะเป็นชื่อ ที่อยู่ เบอร์โทร ฯลฯ
6. Keyboard สำหรับการกด PIN ต้องเขียนขึ้นมาเองเท่านั้น เป็น Shuffle Keyboard แบบ Random 100% และต้องเป็น Secure Keyboard คือมองไม่เห็นจากฝั่ง Remote ทั้งนี้เพื่อไม่ให้โจรตั้ง Script Auto ในการกดหมายเลขบัญชีได้
7. ต้องมีการทดสอบกับโปรแกรม Remote ทุกยี่ห้อที่มีในตลาด เพื่อทดสอบว่ามี App ไหนที่หลุดไปบ้างหรือไม่ จะได้รีบมาแก้ไข ไม่ใช่ให้ User มานั่งทดสอบเอง เจอเอง แล้วแจ้งธนาคาร
8. การทำธุรกรรมที่สำคัญ ๆ หรือผิดปกติ เช่น การปรับเปลี่ยนวงเงิน, การโอนเงินมูลค่าสูง ๆ, การโอนเงินถี่ ๆ มาก ๆ ติดต่อกัน เช่น เกินกว่า 3 ครั้งต่อเนื่องกัน ต้องมีการใช้ OTP เพิ่มเติม << ก็ใช่ครับ ที่มันก็ไม่ได้ช่วยอะไร ถ้า OTP มันอยู่ในเครื่องเดียวกันกับ App Remote ของโจร มันก็มองเห็นอยู่ดี แต่อย่างน้อยมันก็ช่วยให้ใช้เวลานานขึ้นครับ โอกาสที่เจ้าของบัญชีจะรู้ตัวก็จะเพิ่มขึ้นด้วย
9. [Option] มีการพัฒนา Captcha ที่มีการใช้ Sensor หลาย ๆ อย่างมายืนยันว่าการทำธุรกรรมนั้น ๆ เกิดขึ้นจากผู้ใช้งานที่อยู่หน้าเครื่องจริง ๆ ไม่ใช่การทำธุรกรรมโดยการ Remote มา เช่น
- Proximity Sensor ตรวจจับระยะห่างระหว่างผู้ใช้กับเครื่องสมาร์ทโฟน
- Temperature Sensor ตรวจจับอุณหภูมิ
- Gyroscope Sensor ตรวจจับการหมุนของสมาร์ทโฟน โดยต้องหมุน Captcha ตามที่ App ระบุ เพื่อยืนยันว่าเป็นคนทำธุรกรรมด้วยตัวเอง

10. ต้องตรวจสอบ Client Version ของ Mobile Banking ผู้ใช้งานต้อง Update App ให้เป็น Version ล่าสุดเสมอ
เพราะหากธนาคารแก้ไข App ให้มีความปลอดภัยที่ดีขึ้นแล้ว แต่ผู้ใช้งานใช้ App Version เก่าอยู่ ก็ไม่มีประโยชน์อะไร โจรก็ยังคงโอนเงินออกไปได้อยู่ดี แถมยังสร้างความงุนงง ให้กับ Dev อีกว่า ก็แก้ไขเรื่องความปลอดภัยไปแล้ว ทำไมถึงยังเกิดกรณีโอนเงินออกไปได้อีก ซึ่งบางธนาคารก็มีการตรวจสอบ Client Version แล้ว เช่นของธนาคารเกียรตินาคินภัทร ซึ่งเป็นตัวอย่างที่ดี และน่าชื่นชมมากครับ

จากการทดสอบทั้ง 16 App ธนาคาร พบว่ายังต้องปรับปรุงกันอยู่ครับ เนื่องจาก

หลาย App ยังหลุดอยู่ในหลาย ๆ ข้อ บาง App มองเห็นหน้าจอ บาง App มองเห็น Keyboard และเห็น Animation ตอนกดปุ่ม Keyboard บาง App มองเห็น Keyboard ตอนใส่ Password สำหรับ Login เข้าใช้ App ซึ่งผมขอพูดในภาพรวม ๆ นะครับ เพื่อจะได้ปรับปรุงพัฒนาให้มีความปลอดภัยที่ดียิ่งขึ้นครับ

รายชื่อและ Version ของ App ธนาคารที่ทดสอบ
1. All Gen 1.4.0
2. A-Mobile 1.10.5
3. A-Mobile Plus 1.4.0
4. BualuangM 3.22.1
5. Citibank TH 14.3
6. iBank Financing 1.1
7. K Plus 5.16.8
8. KMA 3.17.24
9. KKP Mobile 2.3.4
10. LH Bank M Choice 1.19.5
11. MyMo 2.12.0
12. Next 12.1.1
13. SCB Easy 3.63.0
14. ttb Touch 4.0.7
15. UOB TMRW TH 14.1.1
16. ICBC 7.0.2.0

สุดท้ายนี้สิ่งที่อยากจะบอกก็คือ ถ้าจะป้องกันไม่ให้ถูกโจรขโมยเงินผ่านการ Remote App ธนาคารก็ต้องมีการพัฒนาปรับปรุงในเรื่องของ Security ให้มากขึ้นกว่าในปัจจุบันด้วยนะครับ ไม่ใช่แค่เตือน User อย่างเดียว ว่าต้องระวังนะ อย่าลง App นะ อย่าหลงเชื่อมิจฉาชีพนะ

การระวังที่ฝั่ง User มันทำได้ยากครับ มันถึงเกิดเหตุการณ์ถูกขโมยเงินกันอย่างต่อเนื่องยังไงล่ะครับ

ปล. ถ้าจะให้ดีก็จับมือกับบริษัทประกันภัย ให้ความคุ้มครอง เป็นประกันหมู่ ไปเลยก็ดีครับ เช่น ค่าธรรมเนียมรายเดือน 50 บาท คุ้มครองกรณีถูกมิจฉาชีพโอนเงินในวงเงิน 5 หมื่นบาท อะไรประมาณนี้

Update 1

คลิป ทดสอบ App จอดำ ว่าปลอดภัยจริงหรือไม่
คลิกเพื่อดูคลิปวิดีโอ

App อะไรก็ตาม ไม่ว่าจะเป็นตัว OS เอง, App ธนาคาร, App Games ฯลฯ เมื่อเลือกใช้จอดำ นั่นหมายความว่า Dev ต้องการปกป้องข้อมูลในหน้าจอนั้น ๆ เนื่องจากมีข้อมูลที่เป็น Privacy อยู่ ไม่ต้องการให้มีการ Capture รูปภาพ บันทึกหน้าจอ หรือ Share Screen ไปยังเครื่องอื่น ๆ ซึ่งการกระทำเหล่านี้จะเห็นเป็นจอดำ

แต่ตัว App เองมันก็ยังทำงานอยู่ตามปกติ ถ้าเครื่องถูกควบคุมผ่าน App Remote Control มันก็สามารถส่งคำสั่งต่าง ๆ มาได้ทุกอย่าง
ไม่ว่าจะเป็นการคลิก Mouse, การ Drag Mouse, การพิมพ์ข้อมูลจาก Keyboard เรียกได้ว่าแทบไม่แตกต่างจากการใช้งานอยู่หน้าเครื่องเลย

หลาย ๆ คนเชื่อมั่นว่า App จอดำ คือปลอดภัยแล้ว

ผมอยากถามว่า มันปลอดภัยแล้ว จริง ๆ อย่างนั้นหรือ ?

ลองดูคลิปข้างบนว่าถ้ามันปลอดภัย มันจะตั้ง Script ให้ทำงานได้อย่างไร ?

บางคนอาจโต้แย้งว่า แล้วจะไปตั้ง Script ล่วงหน้าได้ยังไง Device Android มี DPI หลากหลาย มากมาย จะรู้ได้ไงว่าเครื่องปลายทางเค้าใช้หน้าจอกี่ DPI ก็บอกไว้เลยว่าไม่ต้องรู้ครับ ก็ทำ Script รอไว้เลยจะเป็น ldpi, mdpi, hdpi, xhdpi ก็แล้วแต่ จากนั้นพอ Remote เข้าเครื่องเหยื่อได้แล้วก็แค่ไปดูว่าใช้โทรศัพท์รุ่นอะไร หน้าจอกี่ DPI แล้วก็เรียกใช้ Script ที่มันตรงกันก็จบแล้ว

โลกของคอมพิวเตอร์มันมีแค่ 0 กับ 1 ดังนั้นมันมีแค่ "เป็นไปได้" กับ "เป็นไปไม่ได้" เท่านั้น การที่มิจฉาชีพ ยังสามารถโอนเงินออกจาก App ธนาคารหลากหลายธนาคารได้อยู่ในปัจจุบัน ผมคิดว่าทุกคนน่าจะรู้คำตอบอยู่แล้ว ว่ามันคืออะไร

ลองตั้งคำถามดูครับ

1. จอดำ แล้วมีความเป็นไปได้หรือไม่ ที่จะมีคนมาใช้งาน App ต่อโดยที่มองไม่เห็นจอ ?

2. จอดำ เพียงอย่างเดียวโดยไม่มี Security อื่น ๆ เพิ่มเติม เป็นความปลอดภัยที่ดีเพียงพอแล้วหรือไม่ ?

3. จอดำ เพียงอย่างเดียว สามารถป้องกันไม่ให้โจรโอนเงินจากบัญชีผู้ใช้งานได้ใช่หรือไม่ ?

4. โปรแกรม Remote ที่สามารถเชื่อมต่อมายังเครื่องเหยื่อ สามารถเป็นโปรแกรม Multi Platform ได้หรือไม่ เช่น PC, Mac, Linux, Android, iOS, Bada, Symbian, Windows Phone, Feature Phone ?

5. จำเป็นหรือไม่ ที่โจรจะต้องใช้ App Remote ที่เป็น Platform Android เพื่อติดต่อมายังเครื่องเหยื่อเท่านั้น ?

6. Script / Bot ที่จะ Run แบบ Auto จำเป็นต้องอยู่ในเครื่องเหยื่อ หรือไม่ ?

7. Script / Bot ที่จะ Run แบบ Auto โจรจะส่งให้ Google / Antivirus ตรวจสอบหรือไม่ ?

แลกเปลี่ยนความคิดเห็นกันได้นะครับ ว่าทุกท่านคิดเห็นอย่างไรกันบ้าง
แก้ไขข้อความเมื่อ

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