Disclaimer: ข้อมูลทั้งหมดใน blog นี้ มิได้หวังผลในเชิงการค้าแต่อย่างใดสามารถนำไปใช้ประโยชน์ต่างๆ ได้ ตราบใดที่มีการอ้างอิงต้นฉบับ และแจ้งให้สมาชิกของประชาคมทราบว่าขอนำไปใช้ที่ใด ห้ามผู้อื่นนำไปข้อความในเว็บนี้ไปพิมพ์จำหน่ายโดยไม่ได้รับอนุญาตจากเจ้าของข้อเขียน โปรดติดต่อกันเองระหว่างผู้ขอใช้และผู้เขียน การเสนอความเห็น ขอให้ใช้ภาษาที่สุภาพและเขียนอยู่ในเนื้อเรื่อง หากท่านพบข้อความที่ไม่เหมาะสม โปรดแจ้งลบพร้อมอธิบายเหตุผลด้วย

วันพฤหัสบดีที่ 29 เมษายน พ.ศ. 2553

เรื่องราวเกี่ยวกับ Mobile Application Security

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

อันตรายที่มาพร้อมกับของการให้บริการต่างๆ ของโปรแกรมบนโทรศัพท์บนมือถือ ทั้งผู้พัฒนาและผู้ใช้สามารถเรียนรู้ และทดสอบขั้นตอนวิธีการสร้างความเสียหาย รวมไปถึงแนวทางการป้องกันเบื้องต้นโดยคร่าวๆ ไปด้วยกันนะครับ ในขั้นต้น เรามาทำความรู้จักก่อนว่า โปรแกรมต่างๆ ที่ทำงานผ่านโทรศัพท์มือถือนั้นมี 2 แบบ คือ

1. Mobile Installable Applications
2. Mobile Browser Based Applications

โดยมีรายละเอียดดังนี้นะครับ

1. Mobile Installable Applications
โปรแกรมประเภทนี้ก่อนจะติดตั้งบนโทรศัพท์ ผู้ใช้งานต้องมีความตระหนักเองว่าโหลดมาจากแหล่งที่น่าเชื่อถือหรือไม่ เนื่องจากอาจเป็นโปรแกรมที่ถูกก๊อบปี้โค้ดมา reverse engineering แล้วฝังโค้ดแปลกปลอมลงไปสร้างความเสียหายให้กับโทรศัพท์หรือเงินในกระเป๋า ของเราที่ต้องเอาไปจ่ายค่าบริการ ในที่นี้จะยกตัวอย่างการ reverse โปรแกรมพวก Java MIDlet ที่นิยมกันอย่างแหร่หลาย โดยสามารถนำไฟล์ .jar มา extract ออกด้วยโปรแกรม WinZip ก็จะเห็นรายละเอียดของไฟล์เกี่ยวกับโปรแกรมทั้งหมดและสามารถ Decompiling, code analysis and modification แล้ว compile ใหม่ได้ง่ายมาก


ภาพที่ 1 การ extract ไฟล์ .jar ด้วยโปรแกรม WinZip

รวมไปถึงพวก Symbian ที่ติดตั้งบนเครื่อง Nokia ก็สามารถใช้โปรแกรมพวก SISWare and SISplorer ในการ reversing ได้เช่นกัน
ภาพที่ 2 การใช้โปรแกรม SISWare ในการ Reverse Engineering โปรแกรมสำหรับ Symbian

ภาพที่ 3 การใช้โปรแกรม SISXplorer ในการ Reverse Engineering โปรแกรมสำหรับ Symbian

2. Mobile Browser Based Applications
โปรแกรมประเภทนี้ไม่มีความจำเป็นที่จะต้องติดตั้งลงบนเครื่องโทรศัพท์มือถือ เป็นเป็นการเรียกใช้งานผ่านเว็บบราวเซอร์จากโทรศัพท์ เมื่อ web server ได้รับ request จะตรวจสอบ header และจะส่งเพจที่ถูกต้องกับอุปกรณ์นั้นๆ กลับไปให้เครื่องมือถือที่เรียกมาก สามารถทดสอบ header ได้โดยใช้ firefox add-on (User Agent Switcher)


ภาพที่ 4 การใช้งาน Firefox add-on User Agent Switcher

รายละเอียดเกี่ยวกับ User Agent Header สำหรับ
Blackberry:
BlackBerry8700/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1

iPhone: iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3

Nokia: Link

สำหรับอันตรายของโปรแกรมประเภท Mobile Browser Based Applications นี้ก็เช่นเดียวกับอันตรายที่เกิดจากการใช้งานโปรแกรมผ่านเว็บทั่วๆ ไปครับ เช่นการทำ Intercepting ด้วย Web Proxy ซึ่งจะได้มาเล่าให้ฟังต่อไปในคราวหน้า

วันนี้พอก่อนเดี๋ยววันหลังอ่านต่อแล้วมาเล่าให้ฟังใหม่ครับ...

เรียบเรียงจาก: G. Kalra, "Moblie Application Security Testing", [online: http://www.foundstone.com]