เชื่อมโยง ชุมชนโลก - Temasek Foundation...เร องเด นในป 2561/2562 มองย อน การช วยเหล อแม ในอ
เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ...
Transcript of เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ...
เครองมอคนหาชองโหวของแอนดรอยดแอพพลเคชน
Vulnerability Scanner for Android Application
เอกพนธ สขเจรญทรพย
สารนพนธนเปนสวนหนงของการศกษา
หลกสตรวทยาศาสตรมหาบณฑต สาขาวชา ความมนคงทางระบบสารสนเทศ
คณะวทยาการและเทคโนโลยสารสนเทศ
มหาวทยาลยเทคโนโลยมหานคร
ปการศกษา 2561
I
หวขอ เครองมอคนหาชองโหวของแอนดรอยดแอพพลเคชน
Vulnerability Scanner for Android Application
ชอนกศกษา เอกพนธ สขเจรญทรพย
รหสนกศกษา 5617810006
หลกสตร ความม&นคงของระบบสารสนเทศ
ปการศกษา 2018
อาจารยท8ปรกษา ผศ.ดร.สรณพร ภมวฒสาร
บทคดยอ
สารนพนธฉบบนจดทำเพอพฒนาโปรแกรมสำหรบคนหาชองโหวของแอนดรอยด
แอพพลเคชนเพอลดขนตอนการคนหาชองโหวแกผททำการทดสอบคนหาชองโหว
II
กตตกรรมประกาศ
สารนพนธฉบบนเกดขนเนองจากพบวาการคนหาชองโหวของแอนดรอยดแอพพลเคชนม
ความซบซอนและยงไมมเครองมอชวยเหลอในการทำงานมากนก จงไดแนวคดในการทำโครงงานและ
ความอนเคราะหจากอาจารยทปรกษา ผศ.ดร.สรณพร ภมวฒสาร และ ดร.โสฬส พานชปรชา ซงเปน
ผทชแนะแนวทางและมมมองทเกดประโยชนเพอใหโครงงานประสบความสำเรจ
ทงนความสำเรจนไมอาจเกดขนไดถาปราศจากคณาจารยสาขาเทคโนโลยสารสนเทศ
มหาวทยาลยมหานครทก ๆ ทาน ทไดทอดถายความรและประสบการณทมคาตาง ๆ ใหแกขาพเจา
สดทายนขอขอบพระคณอาจารยทปรกษา และคณาจารยตาง ๆ ทก ๆ ทาน ทมความกรณา
ใหตลอดมาเปนอยางสง
เอกพนธ สขเจรญทรพย
15 ตลาคม 2561
III
สารบญ
หนา
บทคดยอ ................................................................................................................................................ I
กตตกรรมประกาศ ................................................................................................................................ II
สารบญ ................................................................................................................................................ III
สารบญ (ตอ) ....................................................................................................................................... IV
สารบญรป ............................................................................................................................................ V
สารบญรป (ตอ) .................................................................................................................................. VI
สารบญรป (ตอ) ................................................................................................................................. VII
สารบญตาราง ................................................................................................................................... VIII
บทท 1 ................................................................................................................................................. 1
1.1 ปญหาและแรงจงใจ ...................................................................................................................... 1
1.2 แนวทางการแกปญหา ................................................................................................................... 2
1.3 วตถประสงค ................................................................................................................................. 3
1.4 ภาพรวมของระบบท&จดทา ........................................................................................................... 3
1.5 ขอบเขตของการศกษาคนควา ...................................................................................................... 3
1.6 ประโยชนทคาดวาจะไดรบ ............................................................................................................ 3
1.7 โครงสรางของสารนพนธ ............................................................................................................... 4
บทท 2 ................................................................................................................................................. 5
2.1 ระบบปฏบตการแอนดรอยด ......................................................................................................... 5
2.2 แอนดรอยดแอพพลเคชน ............................................................................................................ 13
2.3 ชองทางการโจมตบนแอนดรอยดแอพพลเคชน ........................................................................... 15
2.4 ชองโหวของแอนดรอยดแอพพลเคชน ........................................................................................ 16
บทท 3 ............................................................................................................................................... 24
IV
สารบญ (ตอ)
หนา
3.1 ภาพรวมของระบบทจดทำ .......................................................................................................... 24
3.2 องคประกอบของเครองมอคนหาชองโหวในแอนดรอยดแอพพลเคชน ....................................... 25
3.3 วธการทดสอบชองโหว ................................................................................................................ 31
บทท 4 ............................................................................................................................................... 39
4.1 วธการทดลอง .............................................................................................................................. 39
4.2 สภาพแวดลอมการทดลอง .......................................................................................................... 40
4.3 ผลการทดลอง ............................................................................................................................. 40
บทท 5 ............................................................................................................................................... 61
5.1 สรปผลการดำเนนงาน ................................................................................................................. 61
5.2 ปญหาและอปสรรคของการดาเนนการ ..................................................................................... 61
5.3 ขอเสนอแนะในการพฒนาโครงงานตอไปในอนาคต ............................................................... 61
เอกสารอางอง .................................................................................................................................... 62
V
สารบญรป
หนา
รปท 1.1 แสดงถงสวนแบงทางการตลาดของระบบปฏบตการบนอปกรณมอถอจากป 2009 ถงป
2018 [1] .............................................................................................................................................. 2
รปท 2.1 แสดงถงลกษณะโครงสรางของระบบปฏบตการแอนดรอยด [6] .......................................... 7
รปท 2.2 แสดงถงApplication ID ของแอพพลเคชนทชอ mutbank .............................................. 12
รปท 2.3 แสดงถงสทธในไฟลAndroidManifest.xmlทไดทำการรองขอจากแอพพลเคชนเมอตดตง12
รปท 2.4 แสดงถงโครงสรางของไฟลapkหลงการแยกไฟล ................................................................ 13
รปท 2.5 แสดงถงโครงสรางการออกแบบสำหรบแอนดรอยดแบบ3-Tier ......................................... 15
รปท 2.6 แสดงถง Magic number ของไฟล SQLite database [8] ............................................... 18
รปท 3.1 แสดงถงวธการเชอมตอของเครองมอคนหาชองโหวไปยงแอนดรอยดแอพพลเคชน ........... 24
รปท 3.2 แสดงถงผลลพธจากคำสง adb shell ls ........................................................................... 25
รปท 3.3 แสดงองคประกอบของเครองมอคนหาชองโหว .................................................................. 26
รปท 3.4 แสดงกระบวนการทำงานของ Scan Engine เพอเตรยมสภาพแวดลอมกอนการทดสอบชอง
โหว ..................................................................................................................................................... 27
รปท 3.5 แสดงสวนของผใชงานในขณะเลอกแอพพลเคชนทจะทดสอบจากรายการทงหมด ............ 29
รปท& M.O แสดงถงสถานะเสรจสมบรณบนCherryPy หลงจากเตรยมสภาพแวดลอมเรยบรอยแลว 30
รปท 3.7 แสดงสถานะเสรจสมบรณจากการเตรยมสภาพแวดลอมบนสวนผใชงาน .......................... 31
รปท 3.8 แสดงขนตอนการทำงานจอง Scan Engine ในการคนหาชองโหวตาง ๆ ........................... 32
รปท 4.1 แสดงหนาตางแรกหลงจากเปดแอพพลเคชนทชอ Insecure Bank ................................... 39
รปท 4.2 แสดงผลการทำ Prepare Environment และ Reverse Engineering ไดสำเรจ ............. 41
รปท 4.3 แสดงถงขอมลทว ๆ ไปของแอพพลเคชนและ Permission ของ InsecureBank .............. 41
รปท 4.4 แสดงถงขอมลทว ๆ ไปของแอพพลเคชนและ Permission ของ Book Shopping S ....... 42
รปท 4.5 แสดงถงขอมลทว ๆ ไปของแอพพลเคชนและ Permission ของ Printer B ...................... 42
รปท 4.6 แสดงถงขอมลทว ๆ ไปของแอพพลเคชนและ Permission ของ Ticket R ....................... 43
รปท 4.7 แสดงจำนวน Activity ทสามารถเขาถงไดโดยตรงของ InsecureBank ............................. 43
รปท 4.8 แสดงถงหนาจอหลงจากเขาสระบบของแอพพลเคชนน ซงถกเรยกโดยตรง ....................... 44
VI
สารบญรป (ตอ)
หนา
รปท 4.9 แสดงจำนวน Activity ทสามารถเขาถงไดโดยตรงของ Book Shopping S ...................... 44
รปท 4.10 แสดงจำนวน Activity ทสามารถเขาถงไดโดยตรงของ Printer B ................................... 45
รปท 4.11 แสดงจำนวน Activity ทสามารถเขาถงไดโดยตรงของ Ticket R .................................... 45
รปท 4.12 แสดงไฟล SQLite ทคาดวาอาจมขอมลสำคญของ InsecureBank ................................. 45
รปท 4.13 แสดงถงตารางและขอมลภายในฐานขอมลทงหมดทอาจมขอมลสำคญ ........................... 46
รปท 4.14 แสดงไฟล SQLite ทคาดวาอาจมขอมลสำคญของ Book Shopping S .......................... 46
รปท 4.15 แสดงไฟล SQLite ทคาดวาอาจมขอมลสำคญของ Ticket R .......................................... 46
รปท 4.16 แสดงรายชอไฟล XML ทอาจมชองโหวของ InsecureBank ........................................... 47
รปท 4.17 แสดงขอมลภายในไฟล mySharedPreferences.xml ซงมขอมลรหสผใชงานและ
รหสผาน ............................................................................................................................................. 47
รปท 4.18 แสดงรายชอไฟล XML ทอาจมชองโหวของ Book Shopping S .................................... 47
รปท 4.19 แสดงรหสผานในไฟล account.xml ซงถกเกบไวโดยไมมการใช Hash .......................... 48
รปท 4.20 แสดงจำนวนไฟล XML ทงหมด ของ Ticket R ทคาดวาอาจมขอมลสำคญทอาจเปนชอง
โหวได ................................................................................................................................................. 48
รปท 4.21 แสดงไฟลทงหมดทคาดวามการใชงาน Internal Storage Class ของ InsecureBank .. 49
รปท 4.22 แสดงไฟลทงหมดทคาดวามการใชงาน Internal Storage Class ของ Printer B ........... 50
รปท 4.23 แสดงไฟลทงหมดทคาดวามการใชงาน Internal Storage Class ของ Ticket R ............ 50
รปท 4.24 แสดงไฟลทใช External Storage Class ทงหมดจาก Scan Engine .............................. 51
รปท 4.25 แสดงตำแหนงทพบการใชงาน External Storage Class ................................................ 51
รปท 4.26 แสดงขอมลรายการทางการเงนของไฟล Statements_jack.html ................................. 51
รปท 4.27 แสดงไฟลทใช External Storage Class ใน Book Shopping S ................................... 52
รปท 4.28 แสดงไฟลทใช External Storage Class ใน Printer B .................................................. 52
รปท 4.29 แสดงไฟลทใช External Storage Class ใน Ticket R .................................................... 53
รปท 4.30 แสดงรายการไฟลทใช Log class ของ InsecureBank ................................................... 53
รปท 4.31 แสดงตำแหนงทพบการบนทก Log บนไฟล DoLogin.java ............................................ 54
รปท 4.32 แสดงไฟลทงหมดทมการบนทก Log ของ Book Shopping S ........................................ 54
VII
สารบญรป (ตอ)
หนา
รปท 4.33 แสดงไฟลทงหมดทมการบนทก Log ของ Printer B ....................................................... 54
รปท 4.34 แสดงไฟลทงหมดทมการบนทก Log ของ Ticket R ........................................................ 55
รปท 4.35 แสดงผลการตรวจสอบจาก Scan Engine วาสามารถ Debug ได .................................. 55
รปท 4.36 แสดงผลการทดสอบของ Ticket วาไมไดเปด allowBackup ไว ..................................... 56
รปท 4.37 แสดงไฟลทงหมดทคาดวามขอมลสำคญของ Book Shopping S ................................... 56
รปท 4.38 แสดงไฟลทงหมดทคาดวามขอมลสำคญของ Ticket R .................................................... 57
รปท 4.39 แสดงไฟลทใชงาน Class เขารหสลบทงหมดจาก Scan Engine ..................................... 57
รปท 4.40 แสดง Method ทใชเขาและถอดรหสลบบนไฟล CryptoClass.java .............................. 57
รปท 4.41 แสดงผลลพธไฟลทงหมดทใช Class เขารหสลบของ Book Shopping S ....................... 58
รปท 4.42 แสดงผลลพธไฟลทงหมดทใช Class เขารหสลบของ Printer B ...................................... 58
รปท 4.43 แสดงผลลพธไฟลทงหมดทใช Class เขารหสลบของ Ticket R ....................................... 58
รปท 4.44 แสดงผลลพธวา InsecureBank สามารถ Debug ได ...................................................... 59
รปท 4.45 แสดงผลลพธวา Book Shopping S ไมสามารถ Debug ได เนองจากถกปดไว .............. 59
VIII
สารบญตาราง
หนา
ตารางท 2.1 แสดงถงจำนวนเวอรชนของแอนดรอยดทงหมดทมจนถงปจจบน [4] ............................. 5
ตารางท 2.2 แสดงถงจำนวนเวอรชนของแอนดรอยดทงหมดทมจนถงปจจบน [4] (ตอ) .................... 6
ตารางท 2.3 แสดงถงจำนวนผใชงานแอนดรอยยทงหมด จากผลสำรวจทงหมด 7 วน สนสดวนท 23
กรกฏาคม 2018 [5] ............................................................................................................................ 6
ตารางท 2.4 แสดงถงจำนวนผใชงานแอนดรอยยทงหมด จากผลสำรวจทงหมด 7 วน สนสดวนท 23
กรกฏาคม 2018 [5] (ตอ) .................................................................................................................... 7
ตารางท 2.5 แสดงถงสวนทเปลยนแปลงไปจากเคอรเนลปกตของลนกซ [3] ...................................... 8
ตารางท 2.6 แสดงถงสวนทเปลยนแปลงไปจากเคอรเนลปกตของลนกซ [3] (ตอ) .............................. 9
ตารางท 2.7 แสดงถงตวอยางSystem Service ของแอนดรอยดแอพพลเคชนเฟรมเวรค [3] .......... 10
ตารางท 3.1 แสดงถงความหมายของ Parameter ตาง ๆ ทสงไปยง Scan Engine ........................ 28
ตารางท 3.2 แสดงถงความหมาย Parameter แตละตวใน HTTP Post method ทสงกลบไปยง
Backend Server .............................................................................................................................. 37
ตารางท 3.3 แสดงถงความหมาย Parameter แตละตวใน HTTP Post method ทสงกลบไปยง
Backend Server (ตอ) ...................................................................................................................... 38
ตารางท 4.1 แสดงตารางสรปการทดสอบหาชองโหวโดยใชเครองมอทสรางขนตอกลมทดลองทงหมด
4 กลม ................................................................................................................................................ 60
1
บทท 1
บทนา
1.1 ปญหาและแรงจงใจ ปจจบนอปกรณมอถอ ไดเขามามบทบาทในชวตประจำวนเปนอยางมาก มความแพรหลาย
และเปนทนยมอนเนองมาจากความสะดวกสบายในการพกพา รวมถงสามารถนำไปใชงานไดสารพดประโยชน ไมวาจะเพอความบนเทง เชน การทองเวบ ดหนง ฟงเพลง เลนเกมส เชอมตอกบ Social
Network หรอแมแตเพอการทางาน เชน รบ-สงอเมล การทำธรกรรมทางการเงน จดบนทก แกไขงาน ในโมบายแอพพลเคชนตาง ๆ ดงนนองคกรตาง ๆ จงเรมใหความสาคญกบ Bring Your Own
Device (BYOD) โดยมการอนญาตใหพนกงานนาอปกรณสวนตวของตนเอง ไมวาจะเปน แลปทอป โนตบค แทบเลต มาใชในสถานททางาน เพอความสะดวกของตวพนกงานเองทไมตองถายโอนไฟลไปมา รวมถงลดคาใชจายขององคกร ในการสงซออปกรณ
ดงนนในปจจบนจงเกดโมบายแอพพลเคชนตาง ๆ เปนจานวนมาก เพอตอบสนองความตองการของผใชงานทวไปและองคกร โดยมการสรางและพฒนาแอพพลเคชนตาง ๆ บน โทรศพทมอถอ เพอเพมประสทธภาพในการทำงาน และลดคาใชจายตาง ๆ อยางไรกตามการทโลกธรกจนนมการเปลยนอยางรวดเรว ทาใหโมบายแอพพลเคชนนนไมไดถกตรวจสอบความปลอดภยอยางละเอยดกอนถกนาไปใชงาน
ดวยเหตนเองโทรศพทมอถอจงตกเปนเปาหมายตอผไมหวงดในการโจมตตาง ๆ ทำใหหลาย
ๆ หนวยงานมการตนตวมากขน เชน OWASP ซงเปนหนวยงานทรวบรวมและเผยแผชองโหวสดสด
10 อนดบจากแอพพลเคชนบนมอถอใหแกผทเกยวของทดสอบความปลอดภยของแอพพลเคชน
กอนทจะนำไปใชงานจรง แตอนเนองจากเนอหาทมจำนวนมากและซบซอนตอการทดสอบ ทำให
หลาย ๆ ครง ชองโหวไมไดโดนตรวจสอบใหครบถวน เนองจากกระบวนการตาง ๆ มกจะถกทดสอบ
โดยวธการแบบ Manual ทำใหชองโหวบางสวนไมไดถกตรวจสอบครบถวน หรอปฏบตดวยความ
ยากลำบาก รวมไปถงเครองมอทแจกจายอยนนไมสามารถหาชองโหวไดครบถวนในเครองมอเดยว
จากเหตผลขางตน ทำใหผจดทำโครงงานเหนถงปญหาน อยางไรกตามจำนวน
ระบบปฏบตการบนโทรศพทมอถอ นนมจำนวนคอนขางหลากหลาย ซงวธแกปญหาทดทสดคอเลอก
จำนวนปฏบตการทผคนใชมากทสด ซงจากขอมลในรปท 1.1 แสดงใหเหนวาสวนแบงทางตลาดของ
2
ระบบปฏบตการทเปนอนดบท 1 ไดแก ระบบปฏบตการแอนดรอยด โดยมสวนแบงตลาดอยประมาณ
88% และอนดบท 2 คอ ระบบปฏบตการ IOS ซงมสวนแบงอยราว 11.9% เทานน
รปท 1.1 แสดงถงสวนแบงทางการตลาดของระบบปฏบตการบนอปกรณมอถอจากป 2009 ถงป
2018 [1]
จากขอมลดงกลาวจงสรปไดวาระบบปฏบตการแอนดรอยดเปนระบบปฏบตการทมผใชงาน
มากทสด ดงนนโครงงานนจงเลอกระบบปฏบตการแอนดรอยดในการนำมาทดลองในการพฒนา
เครองมอคนหาชองโหวแบบอตโนมต
1.2 แนวทางการแกปญหา จากปญหาดงกลาวสามารถแกไขไดโดยการคนหาชองโหวของแอนดรอยดแอพพลเคชน
กอนทจะถกนำไปใชงานจรง ซงการคนหาชองโหวจะอางองจากชองโหวสงสด 10 อนดบของ OWASP
2016 [2] โดยโครงงานนจะพฒนาซอฟตแวรสำหรบคนหาชองโหวแบบอตโนมต
3
1.3 วตถประสงค พฒนาซอฟตแวรคนหาชองโหวสำหรบแอนดรอยดแอพพลเคชน โดยคนหาชองโหว 10
อนดบสงสดอางองจาก OWASP Mobile ซงเปนมาตรฐานกลางสำหรบชองโหวบน Mobile
Application เพอทแอพพลเคชนทถกพฒนาจะสามารถนำไปใชทดสอบความปลอดภย ทงนใน
โครงงานนจะทำเฉพาะในสวนของหวขอ M2, M5, M7และ M9 เทานน เนองจากขอจำกดในการ
ตรวจสอบแบบอตโนมต รวมไปถงหวขอบางสวนเปนเนอหาทเกยวของกบ Web Application
1.4 ภาพรวมของระบบท8จดทา เครองมอคนหาชองโหวของแอนดรอยดแอพพลเคชนจะทำงานอยภายใตระบบหลก ๆ 3
สวน คอ สวนของผใชงาน ฐานขอมล และ Scan Engine ซงเปนสวนของอลกอรทมทใชคนหาชอง
โหวทงหมด ทงในการเชอมตอไปยงอปกรณพกพาทมระบบปฏบตการแอนดรอยดจะใชเครองมอทชอ
ADB และ Drozer ในการเชอมตอไปยงอปกรณ
1.5 ขอบเขตของการศกษาคนควา 1.5.1 ศกษาชองโหวของ แอนดรอยดแอพพลเคชน แบบ Native Client โดยอางองชองโหว
สงสด 10 อนดบจาก OWASP
1.5.2 ศกษากระบวนการจดเกบขอมลลงฐานขอมลเพอใชแสดงผล 1.5.3 พฒนาซอฟตแวรเพอใชคนหาชองโหวของ Android Application
1.6 ประโยชนทคาดวาจะไดรบ 1.6.1 ผทดสอบหาชองโหวสามารถคนพบชองโหวโดยใชซอฟตแวรทพฒนาขนได 1.6.2 ผทดสอบหาชองโหวสามารถจดเกบขอมล และสามารถแสดงผลไดเพอใชในการ
วเคราะหตอไปได
1.6.3 ผสนใจทวไปสามารถนำโครงงานนไปเปนแนวทางในการพฒนาตอยอดไดในอนาคต 1.6.4 ผใชงานทวไป และองคกรตาง ๆ สามารถใชงานแอนดรอยดแอพพลเคชน ไดอยาง
ปลอดภยมากยงขน
4
1.7 โครงสรางของสารนพนธ บทท 1 บทนา กลาวถงปญหา แรงจงใจ วตถประสงค และขอบเขตในการทาโครงงาน
บทท 2 พนฐานและทฤษฎทเกยวของ กลาวถงขอมลและทฤษฎตาง ๆ ทใชในโครงงานน
บทท 3 ระบบทนาเสนอและวธการดาเนนงาน กลาวถงรายละเอยดระบบทงหมด รวมถง
หลกการและวธทใชในการพฒนาระบบ
บทท 4 วธการทดลอง กลาวถงวธการทดสอบระบบทพฒนาขน รวมถงผลการทดสอบตาง ๆ
บทท 5 สรปผลการดาเนนงาน กลาวสรปดาเนนงานทงหมด รวมถงรายละเอยดทจะปรบปรง
และเพมเตมในอนาคต
5
บทท 2
พนฐานและทฤษฎทเกยวของ
2.1 ระบบปฏบตการแอนดรอยด แอนดรอยด (Android) เปนระบบปฏบตการทสรางมาจากพนฐานของ Linux Kernel และ
นยมตดตงในโทรศพทมอถอ (Smart Phone), Tablet และคอมพวเตอรพกพาตาง ๆ
แอนดรอยดเรมแรกถกพฒนาโดย Andy Rubin, Chris White, Nick Sears และRich
Mineในป2003 [3] ตอมาบรษท Google ไดเขามาดแลแอนดรอยด [3] และพฒนามาอยางตอเนอง
จนถงปจจบน โดยโปรเจคทพฒนาภายใต Google นนมชอวา Android Open Source Project
(AOSP) ปจจบนเวอรชนของแอนดรอยดนนคอเวอรชนท 8.1 ดงตารางท 2.1 ซงแสดงถงเวอรชนของ
ระบบปฏบตการแอนดรอยดทงหมด
ตารางท 2.1 แสดงถงจำนวนเวอรชนของแอนดรอยดทงหมดทมจนถงปจจบน [4]
Code name Version API level
Oreo 8.1.0 API Level 27
Oreo 8.0.0 API Level 26
Nougat 7.1 API Level 25
Nougat 7.0 API level 24
Marshmallow 6 API level 23
Lollipop 5.1 API level 22
Lollipop 5 API level 21
KitKat 4.4 - 4.4.4 API level 19
Jelly Bean 4.3.x API level 18
Jelly Bean 4.2.x API level 17
Jelly Bean 4.1.x API level 16
Ice Cream Sandwich 4.0.3 - 4.0.4 API level 15, NDK 8
6
ตารางท 2.2 แสดงถงจำนวนเวอรชนของแอนดรอยดทงหมดทมจนถงปจจบน [4] (ตอ)
Code name Version API level
Ice Cream Sandwich 4.0.1 - 4.0.2 API level 14, NDK 7
Honeycomb 3.2.x API level 13
Honeycomb 3.1 API level 12, NDK 6
Honeycomb 3 API level 11
Gingerbread 2.3.3 - 2.3.7 API level 10
Gingerbread 2.3 - 2.3.2 API level 9, NDK 5
Froyo 2.2.x API level 8, NDK 4
Eclair 2.1 API level 7, NDK 3
Eclair 2.0.1 API level 6
Eclair 2 API level 5
Donut 1.6 API level 4, NDK 2
Cupcake 1.5 API level 3, NDK 1
(no code name) 1.1 API level 2
(no code name) 1 API level 1
ทงนในการศกษาครงนจะใชแอนดรอยดเวอรชน 5.0 เนองจากชองโหวทพบจะคลอบคลม
จำนวนผใชประมาณ 86.8% ของผใชแอนดรอยดทงหมด ดงตารางท 2.3
ตารางท 2.3 แสดงถงจำนวนผใชงานแอนดรอยยทงหมด จากผลสำรวจทงหมด 7 วน สนสดวนท 23
กรกฏาคม 2018 [5]
Version Codename API Distribution
2.3.3 - 2.3.7 Gingerbread 10 0.2%
4.0.3 - 4.0.4 Ice Cream
Sandwich 15 0.3%
4.1.x Jelly Bean 16 1.2%
4.2.x 17 1.9%
4.3 18 0.5%
7
ตารางท 2.4 แสดงถงจำนวนผใชงานแอนดรอยยทงหมด จากผลสำรวจทงหมด 7 วน สนสดวนท 23
กรกฏาคม 2018 [5] (ตอ)
Version Codename API Distribution
4.4 KitKat 19 9.1%
5 Lollipop 21 4.2%
5.1 22 16.2%
6 Marshmallow 23 23.5%
7.0 Nougat 24 21.2%
7.1 25 9.6%
8.0 Oreo 26 10.1%
8.1 27 2.0%
2.1.1 สถาปตยกรรมของระบบปฏบตการแอนดรอยด ระบบปฏบตการแอนดรอยด มองคประกอบหาสวน ไดแก Linux Kernel,
Hardware Abstraction layer (HAL), Android Runtime และ Libraries, Android Framework
และ แอพพลเคชน การเชอมตอกนขององคประกอบแสดงอยในรปท 2.1
รปท 2.1 แสดงถงลกษณะโครงสรางของระบบปฏบตการแอนดรอยด [6]
8
• เคอรเนล (Kernel)
ชนลางสดของสถาปตยกรรมนนคอลนกซ เคอรเนล ถงแมวาเคอรเนลของ
แอนดรอยดนนจะมพนฐานมาจากลนกซ เคอรเนล แตกยงมสวนทแตกตางกนอยบาง เชน Android
Binder, Paranoid Networking, และ Shared Memory เปนตน สาเหตทตองปรบปรงลนกซเคอร
เนลของแอนดรอยดนน เนองมาจากแอนดรอยถกสรางขนเพอใหเหมาะกบอปกรณพกพา จงควรใช
พลงงานไฟฟาทนอยกวาอปกรณแบบใชไฟฟาภายในบาน นอกจากนระบบปฏบตการแอนดรอยดยง
ไดปรบปรงระบบความปลอดภยทแตกตางจากลนกซ เคอรเนลอกดวย เชน Binder ทเปนสวนสาคญ
ใน การควบคมสทธเพอใชแลกเปลยนขอมลระหวางโปรเซส ซงจะเหน สวนทเปลยนแปลงทงหมดได
ตามตารางท 2.5
ตารางท 2.5 แสดงถงสวนทเปลยนแปลงไปจากเคอรเนลปกตของลนกซ [3]
Kernel Change Description
Binder IPC mechanism with additional features such as security
validation of callers/callees; used by numerous system
and framework services
ashmem Anonymous Shared Memory; file-based shared memory
allocator;uses Binder IPC to allow processes to identify
memory region file descriptors
pmem Process Memory Allocator; used for managing large,
contiguous regions of shared memory
logger System-wide logging facility
RAM_CONSOLE Sores kernel log messages in RAM for Viewing after kernel
panic
"oom"
modifications
"Out of memory"-killer kills processes as memory runs
low; in Android fork, OOM kills processes sooner than
vanilla kernel, as memory is being depleted
9
ตารางท 2.6 แสดงถงสวนทเปลยนแปลงไปจากเคอรเนลปกตของลนกซ [3] (ตอ)
Kernel Change Description
wakelocks Power management feature to keep a device from
entering low-power state, and staying responsive
Alarm Timers Kernel inter for AlarmManager, to instruct kernel to
schedule "waking up"
Paranoid
Networking
Restricts certain networking operations and features to
specific group IDs
timed output /
gpio
Allow user-space programs to change and restore GPIO
registers after a period of time
yaffs2 Support for the yaffs2 flash file system
• Hardware Abstract Layer (HAL)
เปนสวนททำการตดตอกบฮารดแวรโดยตรง เชน กลอง, หนวยประมวลผล
กราฟฟค, บลทธ (Bluetooth), เซนเซอรตาง ๆ ซงในชนนจะเปนการควบคมเกยวกบการทำงานกบ
อปกรณ ทงในสวนของการจายไฟ หรอการใชคณสมบตพเศษบางอยางของอปกรณนน จะเหนไดวา
โดยทวไปผพฒนาแอนดรอยดแอพพลเคชนจะแทบไมไดเรยกใชงานใน HALโดยตรงเลย แต HAL จะ
ถกชนทสงกวาเรยกใชงานแทน
• Android Runtime และ Library
แอนดรอยดแอพพลเคชน, System Service และไลบราร (Library) สวน
ใหญนนถกเขยนขนดวยภาษาจาวา (Java) และเมอใชงาน จะทำงานบน Java Virtual Machine
(JVM) อยางไรกตาม JVM ของแอนดรอยดนนมลกษณะการทำงานทแตกตางไปจาก JVM แบบปกต
เพอใหเหมาะสมกบสภาพแวดลอมของแอนดรอยดทมทรพยากรจำกด
JVM ของแอนดรอยดนนดงเดมมชอวา Dalvik Virtual Machine (DVM)
Dalvik นนถกออกแบบใหสามารถทำงานกบจาวาไบทโคด (Java Bytecode)ได ดงนนไฟลทถกเขยน
จะตองแปลงเปน Dex กอนจงจะใชงานได อยางไรกตามในระบบปฏบตการแอนดรอยดตงแตเวอรชน
ท 5 เปนตนมา JVM นนถกเปลยนเปน ART (Android Runtime) ซงถกพฒนาใหมประสทธภาพมาก
ขนในขณะทกนทรพยากรตวอปกรณนอยลง
10
• Android Application Framework
แอนดรอยดแอพพลเคชนเฟรมเวรค (Android Application Framework)
ถกแบงออกเปน 2 สวน คอ Common Framework Package และ System Service [3] ซงไลบรา
รเหลานถกสรางขนมาเพอใหนกพฒนาสามารถทำงานไดสะดวกและรวดเรวยงขน เชน การสราง
User Interface, การจดการกบระบบโทรศพท, การจดการแอคทวต (Activity) และ การจดการ
ระบบตำแหนงสถานท เปนตน
Common Framework Package เปนแพคเกจ (Package) ทแอนดรอยด
เฟรมเวรคเตรยมไวใหกบนกพฒนา สวนใหญจะอยในรปของ Android.* เมอมการประกาศใช โดย
นกพฒนาสามารถดขอมลไดจาก https://developer.android.com
ในขณะท System Service นนจะตดตอกบ HAL และจะถกเรยกใชงาน
ตงแตเปดเครอง และจะถกปดการใชงานเมอมการปดตวอปกรณ ตวอยางในตารางท 2.7 คอ System
Service ของแอนดรอยดแอพพลเคชนเฟรมเวรค
ตารางท 2.7 แสดงถงตวอยางSystem Service ของแอนดรอยดแอพพลเคชนเฟรมเวรค [3]
Framework Description
Activity Manager Manges Intent resolution/destinations, app/activity launch, and
so on
View System Manages views (UI compositions that a user sees) in activities
Package Manager Manages information and tasks about packages currently and
previously queued to be installed on the system
Telephony Manager Manages information and tasks related to telephony services
Resource Manager Provide access to non-code app resources such as graphics, UI
layouts, string data, and so on
Location Manager Provides an interface for setting and retrieving (GPS, cell, WIFI)
location information, such as location fix/coordinates
Notification Manager Manages various event notification, such as playing sounds,
vibrating, flashing LEDs, and displaying icons in the status bar
11
• แอนดรอยดแอพพลเคชน (Android Application)
ชนนจะเปนชนทใกลกบผใชงานมากทสด ซงแอนดรอยดแอพพลเคชนจะม
สองแบบคอ ตดตงมาใหตงแตแรก หรอผใชตดตงเองทหลง
ทงนแอพพลเคชนทตดตอมาใหตงแตแรกนน จะไมสามารถลบได และจะ
ถกตดตงอยในพาธ (Path) /system/app ตวอยางของแอพพลเคชนนไดแก แอพลเคชนนดหมาย,
บราวเซอร และแอพพลเคชนรายชอตดตอ เปนตน
ในขณะทแอพพลเคชนทตดตงเองจะมความแตกตางตรงทสามารถลบได
และจะถกตดตงอยในพาธ /data/app นอกจากนการตดตงแอพพลเคชนน จะสามารถตดตงผาน
Google Playstore หรอผาน Android Application Package (APK) ไฟลกได
2.1.2 ระบบความปลอดภยของแอนดรอยดแอพพลเคชน แอนดรอยดแตละเวอรชนนนมการพฒนาเรองระบบความปลอดภยมาอยางตอเนอง
ซงในแตละเวอรชนกจะมคณสมบตใหม ๆ เพมขน เนองจากการศกษานจะทำบนแอนดรอยดเวอรชน
4.2 จงมระบบความปลอดภยทสำคญดงน
• แซนดบอกซ Sandbox
แซนดบอกซในระบบปฏบตการแอนดรอยดนนจะแยกโปรเซส (Process
Isolation) ของแตละแอพพลเคชนออกจากกนเพอใหแตละแอพพลเคชนไมสามารถเขาถงทรพยากร
ของแอพพลเคชนอนได ดงนนถามการตดตงแอพพลเคชนทประสงคราย (Malicious Application)
ลงไป แอพพลเคชนนจะถกกนใหอยแตในพนทของตวเองเทานน จะเหนไดวาระบบนไดเพมความ
ปลอดภยใหกบตวอปกรณมากขน
อยางไรกตามแอพพลเคชนจะตองมการสอสารกนในกรณทตองแชรขอมล
ตอกน ซงจะกระทำผานสงทเรยกวา อนเทนท (Intent) จงตองมกระบวนการในการพสจนตวตน
(Authentication) และการอนญาต (Authorization) [7]
ในระบบปฎบตการลนกซนนโปรเซสจะใช User ID (UID) เพอระบตวตน
และสทธการใชงานในไฟลซสเตม (File System Permission) ในการควบคมความปลอดภยภายใน
ระบบ แตในแอนดรอยดนนไมม User ID แตจะใช Application ID แทน โดยจะอยในรปแบบของ
u0_axx โดยท xx นนเปนตวเลข และ u0_a จะเปนคาคงทเสมอ ดงรปท 2.2 ทงนขอมลตรงนจะถก
ใชเพอตรวจสอบสทธ (Permission) ตอไป
12
รปท 2.2 แสดงถงApplication ID ของแอพพลเคชนทชอ mutbank
• สทธ (Permission)
วธควบคมการขาถงแอนดรอยดแอพพลเคชนนน จะใชสทธเขามาชวย ม
การบงคบใช (Enfocement) อยหลายระดบ เชน ระดบเคอรเนล, ระดบNative Daemon หรอระดบ
เฟรมเวรค [7] เคอรเนลนนจะมการบงคบสทธผานไฟลของระบบ โดยเปนลกษณะเดยวกบระบบ
ปฎบตการลนกซ สวนในระดบ Native Daemon นนจะควบคมผานโดนเมนซอกเกต (Domain
Socket) เปนหลก และในสวนสดทายซงเปนสวนสำคญทสดคอระดบเฟรมเวรค การควบคมสทธนน
จะถกควบคมโดย Package Manager ซงเปนหนงใน System Service ทไดกลาวไวกอนหนา ในขณะ
ทแอพพลเคชนถกตดตง จะมการรองขอสทธตามขอมลในไฟลทชอ AndroidManifest.xmlโดยจะอย
ในแทก (Tag) <uses-permission>ดงรปท 2.3 เมอผใชงานอนญาตแลว Package Manager จะ
บนทกลงขอมลใน /data/system/package.xml
รปท 2.3 แสดงถงสทธในไฟลAndroidManifest.xmlทไดทำการรองขอจากแอพพลเคชนเมอตดตง
13
2.2 แอนดรอยดแอพพลเคชน 2.2.1 โครงสรางของแอนดรอยดแอพพลเคชนแพคเกจ (Android Application Package)
ไฟลจะมนามสกล apk โดยปกตไฟล apk จะถกบบอดดวยวธการ Zip ดงนนการ
ตรวจสอบโครงสรางภายในของแอพพลเคชนสามารถทำไดโดยการแตกไฟล เมอแตกไฟลออกมาแลว
จะไดดงโครงสรางดงรปท 2.4
รปท 2.4 แสดงถงโครงสรางของไฟลapkหลงการแยกไฟล
• AndroidManifest.xml
เปนไฟลคอนฟกกเรชน (Configuration) ของโครงสรางทงหมดของ
แอพพลเคชน เชน ชอแพคเกจ (Package), การรองขอสทธ (Permission) และ การกำหนด
องคประกอบตาง ๆ ของแอนดรอดย เปนตน
• META-INF
เกบขอมลของ Manifest ไฟล และลายเซนของโคด (Code Signature)
• res
เกบขอมลทใชอางถงทรพยากรตาง ๆ ในแอพพลเคชน
• assets
เกบขอมล Raw Data เชน ไฟลรปภาพ, เสยง หรอวดโอ (Video)
• classes.dex
เกบชดคำสงหลกทใชทำงานกบ DVM โดยอาจจะมมากกวาไฟลเดยวกได
14
2.2.2 องคประกอบของแอนดรอยดแอพพลเคชน ในแอนดรอยดแอพพลเคชน จะมองคประกอบหลาย สวน ซงผพฒนาจะเลอกใชงาน
องคประกอบแตละชนดรวมกนเพอใหทำงานไดอยางสมบรณ โดยแบงออกเปนสประเภทดงน
• แอคทวต (Activity)
เปนสวนทเกบสวนตางของ Graphic User Interface (GUI) ภายในหนง
หนาจอ เชน วตเกต (Widget), เทกซฟลด (TextField) หรอเลยเอาท (Layout) ในหนงแอพพลเคชน
สามารถประกอบไปดวยแอคทวตจำนวนมาก เชน แอคทวตสำหรบ Login และแอคทวตสำหรบแดช
บอรด (Dash board)แสดงขอมลของแอพพลเคชนเมอลอกอน (Login) สำเรจ
• เซอรวส (Service)
เมอแอพพลเคชนตองการคณสมบตบางอยางททำงานอยเบองหลง
(Background) โดยไมตองการใหมผลกระทบจากงานททำอย จะจำเปนตองใชเซอรวสในการชวยงาน
นนๆ เซอรวสนนจะเหมาะกบการงานทตองใชเวลานานและไมตองการมบลอกกง (Blocking) จากยส
เซอร อนเทอเฟส (User Interface) หรอสภาวะทแอพพลเคชนหยดทำงานอนเนองมาจากงานททำ
กอนหนานนยงไมเสรจลลวง
• บรอดแคส รซฟเวอร (Broadcast Receiver)
เปนสวนทคอยตรวจสอบเหตการณตาง ๆ ภายในอปกรณ เชน แบตเตอร
หมด ในกรณนจะมการสงขอมลกระจายออกไป (Broadcast) ซงถาแอพพลเคชนมการสรางบรอด
แคส รซฟเวอรไว จะสามารถสงการทำงานได เชน ใหบนทกขอมลอตโนมตเมอแบตเตอรหมด
• คอนเทนต โพรไวเดอร (Content Provider)
เปนสวนททำหนาทตดตอฐานขอมลตาง ๆ ภายในแอพพลเคชน ซงสวนน
สามารถใชไดโดยภายในแอพพลเคชนเองหรออาจจะใหแอพพลเคชนอนใชงานกได
ปกตเครองมอทใชพฒนาแอนดรอยจะมการตดตงฐานขอมลทมชอวา
SQLite มาใหอตโนมต SQLite นนเหมาะกบการใชงานเปนลกษณะแบบโลคอล ดาตาเบส (Local
Database) นนคอเกบฐานขอมลไวในตวเครองนนเอง
2.2.3 ประเภทของแอนดรอยดแอพพลเคชน ปกตแอนดรอยดแอพพลเคชนสามารถพฒนาไดหลายรปแบบ นนคอ
15
• Native
เปนลกษณะทพฒนาโดยใชภาษา Java เปนหลก ดงนนทกสวนภายใน
แอพพลเคชนสามารถเขาถงฮารดแวรไดอยางเตมท
• Hybrid
แอพพลเคชนจะถกพฒนาดวยโปรแกรมมงแบบเวปแอพพลเคชน และจะ
นำมาหอหมดวย Native application อกท
• Web Application
ขอมลทกอยางจะอยฝง Server-side ทงหมด ฝงอปกรณพกพาจะตองใชเบ
ราเซอร (Browser) แอพพลเคชนในการเปดโปรแกรม
โดยในการศกษาครงนจะทดสอบกบ Native Application เทานน เนองจากชอง
โหวจะครอบคลมมากกวา และในสวนของ Web Application จะถกทดสอบเหมอนกบ Web
Application ทวไป
2.3 ชองทางการโจมตบนแอนดรอยดแอพพลเคชน แอนดรอยดนนสามารถทำงานไดในหลายรปแบบขนอยกบคนทออกแบบระบบ แตโดยสวน
ใหญแลวจะนยมออกแบบในลกษณะแบบ Client-Server ทเปน 3-Tier ดงรปท 2.5 ซงจะเหนไดวา
การจะโจมตไดนนจะตองเปนชองทางทเปดสภายนอก โดยหลก ๆ แลว คอ อปกรณพกพา (Mobile
Device), เวปเซอรวส (Web Service) และระบบเครอขาย (Network)
รปท 2.5 แสดงถงโครงสรางการออกแบบสำหรบแอนดรอยดแบบ3-Tier
16
2.3.1 Web Service
ในสวนของเวปเซอรวส จะทำหนาทเปน Server ใหกบระบบ มหนาทคอเรยกขอ,
บนทก หรอแกไขขอมลจากดาตาเบส (Database) ในปจจบน Web Service นยมเขยนอยสอง
รปแบบ คอ SOAP และ REST ทงนชองโหวทเกดจากWeb Service จะเปนลกษณเดยวกบเวป
แอพพลเคชน (Web Application) ทวไป
2.3.2 Network
ในการตดตอสอสารระหวางอปกรณและเวปเซอรวสนน จะใชโปรโตคอล เอชททพ
(HTTP) ในการสอสาร ซงในการปกปองขอมลสวนนจะตองมการใชการเขารหสลบ (Encryption)
เขามาชวย ยกตวอยาง เชน AES ในโปรโตคอล เอชททพเอส (HTTPS) เพอปองการกนโจมตประเภท
การดกฟง (Sniffing) หรอการโจมตแบบ Man in the Middle (MITM)
2.3.3 Client
Client คอสวนของแอนดรอยดแอพพลเคชนทตดตงอยบนอปกรณพกพาดงทได
กลาวมาขางตน ซงในการศกษานจะเนนทชองโหวฝงนเปนหลกเนองจากการหาชองโหวในสวนของ
ระบบเครอขายและเวปเซอรวส จะเหมอนกบการหาชองโหวในเวปแอพพลเคชน
2.4 ชองโหวของแอนดรอยดแอพพลเคชน ชองโหวของแอนดรอยดแอพพลเคชนนนถกคนพบใหมอยเสมอ ซงชองโหวเหลานเกดจาก
การทนกวจยรายงานใหเจาของแอพพลเคชนทราบ อยางไรกตามการรายละเอยดชองโหวตาง ๆ ของ
แอพพลเคชนไมไดถกรวบรวมไวใหเปนระเบยบ จงยากตอการตรวจสอบ กลมองกรคอสระทชอวา
OWASP (Open Web Application Security Project) จงรวบรวมรายการชองโหวพรอมทง
รายละเอยด และสรปเปนชองโหว 10 อนดบทพบมากทสด ดวยเหตน OWASP จงถกใชเปนแนวทาง
ในการพฒนาแอพพลเคชน
ใน OWASP นนมแนวทางในการทดสอบความปลอดภยของแอพพลเคชนหลายประเภท ซง
หนงในนนคอเรองของการพฒนาแอพพลเคชนบนอปกรณพกพา (Mobile Application) ซงขอมลท
รวบรวมและทนสมยทสด คอของป 2016
17
2.4.1 M1 Improper Usage Platform
ชองโหวในกลมนจะมลกษณะตางจากชองโหวในกลมอน ๆ เปนพเศษ เนองจาก
เกยวของกบการออกแบบและ Implementation เชน
• Violation of Published Guideline
บางแอพพลเคชนนนจะมการกำหนดแนวทางปฏบตจากผพฒนา ซงถาไมปฏบตตาม
โดยระมดระวง อาจจะตกอยในความเสยง
• Violation of convention or common practice
บางแอพพลเคชนกมการใช Best Practice ตาง ๆ เชน การตงชอตวแปร การใช
Design Pattern ถงแมวาบางอยางจะไมรนแรงนก ถามการละเมด แตกอาจะ
กอใหเกดความเสยงได
• Unintentional misuse
แอพพลเคชนนนอาจจะทำงานไดถกตองตามทตองการ แตดวย Implementation
ทผดวธ กอาจจะกอใหเกดความเสยงได สาเหตอาจจะเกดจากการเขาใจในระบบ
ปองกนตาง ๆ ไมดพอ เชน ผพฒนาเรยกรอง Permission มาจากเจาของอปกรณ
มากเกนความจำเปน
2.4.2 M2 Insecure Data Storage
ชองโหวในกลมนจะกลาวถงวาการจดเกบขอมลนนควรมการปกปองอยางถกวธ เชน
แฮช (Hash) หรอการเขารหสลบ (Encryption) เพอปกปองขอมลสำคญทอยภายใน เชน รหสผาน,
ทอย หรอขอมลบตรเครดตเปนตน ขอมลเหลานอาจจะถกเกบอยในรปของ เอสควแอลไลท ดาตาเบส
(SQLite Database), แชรเพรฟเฟอเรน (Shared Preferences), ลอกไฟล (Log Files), เพลนเทกซ
(Plaintext) หรอทจดเกบภายนอก (External Storage) นอกจากนชองโหวกลมนยงรวมไปถงการรว
ไหลของขอมลทไมไดตงใจดวย เชน Logging
• SQLite Database
คอฐานขอมลทมขนาดเลก ถกตดตงอยในเครองมอสำหรบพฒนาแอน
ดรอยดแอพพลเคชน และเหมาะกบการใชงานทไมตองการประสทธภาพมากนก ปกต SQLite จะม
18
ขอมลสวนหว (Header) ซงเปนเลขชดเฉพาะ เรยกวา Magic Number ซงจะมขนาดเทากบ 16
bytes ดงรปท 2.6
รปท 2.6 แสดงถง Magic number ของไฟล SQLite database [8]
• Shared Preference
คอไลบรารชนดพเศษเพอใหผพฒนาแอพพลเคชนเกบขอมลไดอยางสะดวก
และรวดเรว โดยทไมตองตดตงดาตาเบสกอนจะใชงาน ปกตแลว Shared Preference สามารถถก
เรยกใชงาน ได 2 วธ คอ จากคลาส PreferenceActivity หรอฟงชน getPreferences และจะถก
เกบขอมลอยในรปของ XML ซงจะมนามสกล xml ตอทายชอไฟล
• External Storage
อปกรณเกบขอมลชนดภายนอกของอปกรณพกพาจะอยในรปของ SD
Card (Secure Digital Card) ซงเปนแฟลชเมมโมร (Flash memory) ทถกออกแบบใหมขนาดเลก
และสะดวกตอการพกพา หนวยความจำประเภทนจะชวยเพมทจดเกบขอมลใหกบตวอปกรณ เจาของ
อปกรณสามารถใสขอมลตาง ๆ เพมไดอยางสะดวก เชน ไฟลเพลง ไฟลหนง รปภาพ และอน ๆ
อยางไรกตาม ปญหาทพบกบExternal storageคอไมมเรองของระบบ
ความปลอดภย เนองจากแอพพลเคชนทมสทธ
“android.permissions.READ_EXTERNAL_STORAGE” หรอ
“android.permissions.WRITE_EXTERNAL_STORAGE” นนจะสามารถทำการอานหรอเขยนลงไป
ท External Storage ทเดยวกน นอกจากนถานำ SD Card ออกจากตวอปกรณ และไปตอกบ
อปกรณอน กสามารถอานขอมลจาก SD Card ได
ดงนนนกพฒนาจงควรระมดระวงในการบนทกขอมลลงบน External
Storage โดยเฉพาะขอมลทมความสำคญ
19
• Logging
ปกตนกพฒนาจะใชกระบวนดบก (Debug) เพอตรวจสอบการทำงานของ
แอพพลเคชนวาทำงานอยางถกตอง กอนทจะนำไปใชงานจรง ซงมความเปนไปไดวานกพฒนาอาจจะ
เผลอใสขอมลบางอยางเพอทดสอบการทำงาน แลวไมไดลบออกหลงจากพฒนาเสรจสน จงเปนชอง
โหวทแอพพลเคชนอน ๆ เขาไปเกบขอมลจาก Log ได อยางไรกตามตงแต 4.1 (Jelly Bean) ขนไป
READ_LOGS permission ไดถกจำกดเฉพาะการเขาถงภายในแอพพลเคชนนน ๆ เทานน
• Sensitive Data on Backup
โดยคาปรยายแลว คา allowBackup จะถกกำหนดไวเปน True ซง
อนญาตใหระบบ Backup อตโนมตของเครองมอถอนนสามารถทำการ Backup ขอมลออกไปได
ขอมลตรงนอาจจะมขอมลทมความสำคญตาง ๆ ดงนนจงควรปองกนโดย ตรวจสอบวาขอมล
ทBackupออกไปไดนนมขอมลทมความสำคญหรอไมถารวไหล หรออาจจะกำหนด allowBackup
เปนคา False เลยเพอตดปญหากไดเชนกน
2.4.3 M3 Insecure Communication
การสงขอมลผานระบบเครอขาย (Network) ควรจะมการปกปองขอมล
ดวยการเขารหสลบ (Encryption) เนองจากขอมลทถกสงนนอาจถกดกจบระหวางกลางทางได ซง
ปกตแลวโมบายแอพพลเคชนควรถกตรวจสอบวามความปลอดภยในการสงขอมลผานระบบเครอขาย
หรอไม
• ขอมลทมความสำคญควรสงผานโปรโตคอล SSL
ตรวจสอบวาขอมลตาง ๆ ทมความสำคญภายในแอพพลเคชน เชน รหส
ผใชงาน รหสผาน Tokenตาง ๆ ทสงไปยง Server ตองใชโปรโตคอล SSL ทกครง
• Encryption Strength
ตรวจสอบวาอลกอรทมของการเขารหสลบทใชใน SSL นนมความแขงแกรง
เพยงพอ หรอไมใชอลกอรทมทลาสมยไปแลว อยาง DES หรอ 3DES
• SSL Certification Validation
ตรวจสอบอาย SSL Certification และขอมลตางวาถกตองหรอไม เชน วน
หมดอาย ชอผออก และอน ๆ
20
• Self-signed Certification
ในโมบายแอพพลเคชน จะไมแจงเตอนผใชงานเมอการใช Certification ท
ไมไดลงทะเบยนกบ Authorized Certificate Authority ดงนนควรมฟงกชนสำหรบการตรวจสอบ
Certification กอนทจะนำมาใชงาน
• Certificate Pinning
โมบายแอพพลเคชนทตองการความปลอดภยสง เชน การโอนเงน ควรจะม
การทำ Certificate Pinning นนคอการฝง Key ไวในแอพพลเคชนนนเอง โดยปกตแลวจะการ
เชอมตอดวย SSL จะมการรองขอ Public Certificate ซงถาอปกรณมการตดตง Malicious
Certificate จากผทไมหวงด กจะสามารถดกขอมลได วธการนจงเปนการปองกนเสรมทไดผลอยาง
มาก
2.4.4 M4 Insecure Authentication
ในกรณทแอพพลเคชนมการพสจนตวตนหรอการอนญาตในการเขาถง ควรจะมการ
ทำอยางถกวธ ตวอยาง เชน
• กระบวนการพสจนตวตนหรอการอนญาตควรทำบนฝง Server เทานน
ในบางครงนกพฒนาอาจออกแบบกระบวนการพสจนตวตนแบบผด ๆ เชน
การสมสรางหมายเลข OTP (One Time Password) โดยปกตหมายเลข OTP ควรจะสมจากฝง
Server แตผบรหารอาจมองวาเปลองงบเกนไปทจะใช SMS ในการสงรหสOTP จงใช Client ในการ
สรางรหส OTP แทน ซงวธการเหลานมความผดพลาดตรงท Userสามารถแกไขขอมลตาง ๆ บนฝง
Clientไดอยางอสระ รวมถงขามกระบวนการ OTP ดวย
• สรางนโยบายสำหรบรหสผานทงายเกนไป การตงนโยบายสำหรบรหสผานทงายเกน เชน รหสผานเปนหมายเลข 6
หลก ซงผไมหวงดสามารถเดาไดโดยใชโปรแกรมชดคำสงเพอทำการทายรหสผานไปเรอย ๆ จนกวา
จะถกตองได กรณทมความจำเปนจะใชรหสผานสน ๆ ดงตวอยางทกลาวมาน ควรม Security
Control อน ๆ มาชวย เชน กำหนดจำนวนครงทใหรหสผานผดได
2.4.5 M5 Insufficient Cryptography
นกพฒนามกจะใชการเขารหสลบ (Encryption) หรอแฮช (Hash) รวมดวยในการ
พฒนาแอพพลเคชนในการรกษาความลบหรอความสมบรณของขอมล ซงจะมความเกยวของใน
21
OWASPหวขออน ๆ อกดวย ตวอยางเชน M2 ทกลาวถงการปกปองและจดเกบขอมล หรอ M3 ท
กลาวถงการปกปองขอมลทสงผานระบบเครอขาย
การเขารหสลบและแฮชมอลกอรทมใหเลอกมากมาย เชน Blowfish, AES, SHA,
MD5, RC4 ซงนกพฒนาแอพพลเคชน ควรจะเลอกใชใหถกตองดงน
• เลอกใชอลกอรทมทมความแขงแกรงเพยงพอ การใชอลกอรทมทลาสมยไปแลวกเปรยบเสมอนกบไมมการเขารหสลบ
อลกอรทมตาง ๆ ทใชงานไดในชวงเวลาหนง ๆ แตเมอเวลาผานไปอาจจะมปญหาได สาเหตมาจาก
การทเทคโนโลยตางมการพฒนาอยางรวดเรว ดงนนระยะเวลาทใชในการถอดรหสกนอยลงเรอย ๆ
ดงนนนกพฒนาควรตามขอมลขาวสารในการใชอลกอรทมตาง ๆ อยเสมอ
เนองจาก OWASP ไมไดระบรายละเอยดลงไป จงตองหาหลกเกณฑทมความนาเชอถอ เชน NIST ซง
ณ เดอนกรกฎาคมป 2561 ทาง NIST แนะนำวาการเขารหสลบแบบสมมาตรควรใช AES แบบ 128
bits ขนไป หรอการเขารหสลบแบบไมสมมาตรควรใช DSA, RSA หรอ ECDSA ในสวนรายละเอยด
อน ๆ นน อาจอางองจากเอกสารของ NIST [9] ได
• ไมใชงานผดวธ นกพฒนาบางครงกใชการเขารหสลบไมตรงตามจดประสงคของงาน เชน
การใชการเขารหสแบบสมมาตรเพอเขารหสลบสำหรบรหสผาน แตใช Key ชดเดยวสำหรบทก ๆ
Client นนกจะไมเกดประโยชน เพราะถาขอมลรหสผานถกดกจบ กจะสามารถถอดรหสไดทนท
เนองจากเปน Key ชดเดยวกน ซงกรณนควรใชแฮชแทนเปนตน
2.4.6 M6 Insecure Authorization
ชองโหวในกลมนจะเนนเรองการตรวจสอบสทธของผใชงาน ในฟงชนตาง ๆ วามสทธในการเขาถง
หรอไม เชน
• Insecure Direct Object Reference
เกดจากการทผใชงานนนอาจเขาถงขอมลของผอนได โดยการเปลยนการ
อางอง (Reference) เชน ID ผใชงาน
22
• Hidden Entrypoints
บางครงผพฒนาอาจจะซอนฟงชนตาง ๆ ทมความสำคญไวสำหรบคนบาง
กลม ซงฟงชนเหลานกไมไดการตรวจสอบสทธเขาใชงาน เพราะผพฒนาคดไปเองวาคนทมสทธเขาใช
งานจะสามารถเหนฟงชนเหลานไดเทานน
• User Role or Permission
บางครงผพฒนาแอพพลเคชนอาจจะมการรองขอบทบาท (Role)ของ
ผใชงาน โดยมการสงมาจากฝง Client ซงเปนวธการทไมถกตองเนองจากสามารถถกแกไขได
2.4.7 M7 Client Code Quality
ชองโหวในกลมนเกดจากการเขยนโปรแกรมทไมไดระมดระวง หรอผดพลาดอน
เนองมาจากการใชผดวธ หรอแมแตใชฟงชนทเกาเกนไป จงอาจทำใหเกดความเสยงได ยกตวอยาง
ฟงชนทไมมการตรวจสอบความยาวของ Input อาจะทำใหเกด Buffer Overflow ได นอกจากนชอง
โหวในกลมนอาจจะเกดตวภาษาคอมพวเตอรเองกได จงควรมการตดตามขาวจากผพฒนา
ภาษาคอมพวเตอรอยางตอเนอง
• คา Debuggable
โดยคาปรยายแลว แอพพลเคชนจะถกกำหนดคา Debuggable ใหเปน
False แตบางครงนกพฒนาอาจจะกำหนดไวเปน True แลวไมไดแกกลบเมอปลอยใหใชงานจรง ซง
ตรงนจะเปนชองโหวอาจจะกอใหเกดความเสยงทอาจตามมาทหลงได จงควรตรวจสอบใหละเอยด
กอนปลอยแอพพลเคชนใหผใชงานจรงไดใช
2.4.8 M8 Code Tampering
หลาย ๆ ครง นนแอพพลเคชนอาจถกแกไขเพอจดประสงครายตาง ๆ เชน แกไข
ฟงชนเขาสระบบใหมการสง Username และ Password ไปยงผโจมต และหลอกใหเหยอตดตง
แอพพลเคชนทแกไขนลงในเครองสมารทโฟน
• ตรวจสอบการRootเครอง
โดยทวไปแลวแอพพลเคชนทมการแกไขจะถกตดตงลงบนเครองทมการ
Root หรอมการปลดลอกสทธสงสดใหกบผใชงาน ซงโดยคาปรยายผใชงานจะไมสามารถใชสทธ
23
Root ได นกพฒนาควรเขยนฟงกชนตรวจสอบวาเครองทจะทำการลงแอพพลเคชน ไดทำการ Root
เครองหรอไม
2.4.9 M9 Reverse Engineering
วศวกรรมยอนกลบ (Reverse Engineering) นน มการใชอยางแพรหลายในวงการ
ตาง ๆ ซงในอตสาหกรรมซอฟแวรนนกมการใชเชนเดยวกน โดยหลกการนน วศวกรรมยอนกลบจะ
ถกนำมาใชเพอหา Source Code ของแอพพลเคชนทมการ Compile แลว โดยเดมมจดประสงคเพอ
ทำความเขาใจ Compiler ในการปรบปรงประสทธภาพการทำงานของแอพพลเคชน อยางไรกตาม
วธการนกถกนำมาใชในทางไมดไดเชนเดยวกน ยกตวอยางเชน เพอทำการหาขอมลสำคญทฝงอยใน
แอพพลเคชน ทอาจจะอยในรปของการ HardCode หรอเพอทำความเขาใจแอพพลเคชนเพอคนหา
ชองโหวบางอยาง
• Hardcode
บางครงผพฒนาแอพพลเคชนอาจใสขอมลสำคญลงแอพพลเคชนโดยตรง
เชน เชน รหสผาน ขอความลบ
• Obfuscate แอพพลเคชนทมความสำคญมาก ๆ
การ Obfuscate แอพพลเคชนนนทำเพอใหผลจากการทำวศวกรรม
ยอนกลบมประสทธภาพนอยลง เนองจากชอฟงชนหรอตวแปรใน Source Code ทไดจากการทำ
วศวกรรมยอนกลบนน ถกแทนดวยคำทไมมความหมาย เพอใหยากตอการเขาใจตว Source Code
2.4.10 M10 Extraneous Functionality
ชองโหวในกลมนจะกลาวถงฟงชนพเศษตาง ๆ ทผพฒนาสรางขนมาเพอทดสอบ
แอพพลเคชนโดยอาจจะเพอลดระยะเวลาการทดสอบตาง ๆ เชน มการขามการตรวจสอบ OTP หรอ
อาจจะModeพเศษเพอใชสำหรบการทดสอบคณสมบตตาง ๆ ซงฟงชนเหลานอาจจะกอใหเกดความ
เสยงได
24
บทท 3
ระบบท8นาเสนอ / การดาเนนงาน
3.1 ภาพรวมของระบบทจดทำ โครงงานนถกสรางเพอพฒนาเครองมอสำหรบคนหาชองโหวในแอนดรอยดแอพพลเคชน ซง
เครองนจะมขอจำกดบางอยาง ซงจะกลาวถงในบทน
จาก Mobile OWASP ทง 10 ลำดบแสดงใหเหนวามชองโหวของฝง Server, Client และ
ระบบเครอขาย ซงชองโหวของฝง Server และระบบเครอขาย จะซำกบ OWASP ทเปนแบบเวป
แอพพลเคชนเนองจากฝง Server นนนยมใชโปรโตคอล HTTP ในการตดตอสอสาร ในโครงงานนจง
เลอกเฉพาะสวนทเปน Client เทานน นอกจากนในสวนของการทดสอบประเภทแบบ Manual เชน
Business Logic หรอ การอนญาตตาง ๆ ภายในแอพพลเคชน จะไมสามารถทจะทำแบบอตโนมตได
อนเนองจากความแตกตางของแอพพลเคชนแตละตว จงจะไมถกทดสอบโดยเครองมอนเชนเดยวกน
ทงนชองโหวทเกยวของกบ Client นนม M2,M5,M7,M9 ซงเครองมอทพฒนาจะทำการ
เชอมตอไปยงแอพพลเคชนทมชองโหวผานเครองมอทชอ ADB [5] ซงเปนเครองมอทใชในการเชอม
ตอไปยงระบบปฏบตการแอนดรอยดดงรปท 3.1
รปท 3.1 แสดงถงวธการเชอมตอของเครองมอคนหาชองโหวไปยงแอนดรอยดแอพพลเคชน
25
ดวยวธการขางตน ทำใหเครองมอคนหาชองโหวสามารถเชอมตอไปยงอปกรณและสามารถ
สง Shell command ได ดงผลลพธในรปท 3.2 ซงเกดจากคำสงทแสดงรายการไดเรคเทอรในพาธ /
ในอปกรณผานเครองมอทชอ ADB
รปท 3.2 แสดงถงผลลพธจากคำสง adb shell ls
และสวนทสองคอการเชอมตอไปยงอปกรณโดนผานเครองมอทชอวา Drozer [10] ซงจะใช
เกบขอมลตาง ๆ จากแอนดรอยดแอพพลเคชนทจะนำมาทดลอง โดยการใชงาน Drozer นนจะตอง
ตดตง Agent ซงเปนโปรแกรมททำหนาทเปรยบเสมอน Server บนอปกรณมอถอ นอกจากน
Drozer ยงมความสามารถในการคนหาชองโหวจากคอมโพเนนท ตาง ๆ ดวย
3.2 องคประกอบของเครองมอคนหาชองโหวในแอนดรอยดแอพพลเคชน โดยหลก ๆ แลวตวเครองมอจะมองคประกอบ 3 สวน คอ สวนของผใชงาน สวน Engine ท
ใชในการคนหาชองโหว และสวนของฐานขอมล ดงรปท 3.3
26
รปท 3.3 แสดงองคประกอบของเครองมอคนหาชองโหว
ซงมรายละเอยดดงตอไปน
3.2.1 สวนของผใชงาน User interface
องคประกอบสวนน คอ แสดงผลการใชงานใหแกผใชงาน ทงในสวนของการแสดง
เครองมอการทำงาน ผลลพธทไดจากคนหาชองโหว และอนๆ โดยรายละเอยดหลก ๆ จะแบงเปน !
สวนคอ
• Bootstrap 3 ซงเปนโมดล ทรวบรวมปม เครองมอ พาเนลและอนๆ เพอใชใน
การแสดผลบน Browser ซง Bootstrap นถกพฒนาโดยใชภาษา CSS และ HTML
• Django Framework ซงเปน Framework ของภาษา Python โดยหนาทหลก
ๆ ของสวนน เพอทำการควบคมสวนของผใชงาน จาก Bootstrap เพอสงงานไปยง Scan Engine
3.2.2 Scan engine
องคประกอบน เปนหวใจของเครองมอทพฒนาขน ซงทำหนารวม Logic ตาง ๆ ใน
การคนหาชองโหว สาเหตทแยกองคประกอบนออกมาตางหาก เพอใหงายตอการแกไขในอนาคต และ
ตดปญหา Thread ของ Django ทไมรองรบการทำงานแบบ Multi Thread
Scan Engine จะถกพฒนาขน โดยใช CherryPy ซงเปน Module ของ Python
โดยทตว Scan Engine จะ Listening แบบ Localhost เพอใหสวนผใชงานตดตอเขามาสงงาน
เทานน นอกจากน Scan Engine กเปนสวนสำคญในการตดตอไปยงอปกรณมอถอ ซงจะทำงานผาน
เครองมอทชอ ADB และ Drozer ดงทกลาวไวขางตน
27
ปกต Scan Engine จะทำงานออกเปนสองสวนคอ เตรยมสภาพแวดลอมและทำ
การทดสอบหาชองโหว ซงในสวนของการทดสอบชองโหวจะกลาวในสวนสดทาย อยางไรก Scan
Engine จะเตรยมกระบวนการสรางสภาพแวดลอมกอนการทดสอบชองโหวดงรปท 3.4
รปท 3.4 แสดงกระบวนการทำงานของ Scan Engine เพอเตรยมสภาพแวดลอมกอนการทดสอบชอง
โหว
28
• รบคา Input
เรมแรกจะมการรบคา Input เขามา 3 Parameter ผาน HTTP GET
method จาก สวนของผใชงาน ซงมความหมายดงตารางท 3.1
ตารางท 3.1 แสดงถงความหมายของ Parameter ตาง ๆ ทสงไปยง Scan Engine
ชอ Parameter ความหมาย
appname คอชอของแอพพลเคชนทผใชงานตงชอไวเองเพอตรวจสอบชองโหว เชน
InsecureBankV1-0
apkname คอชอของPackage name ซงตดตงบนอปกรณมอถก
apk_id หมายเลขแอพพลเคชนทถกสรางขนบนฐานขอมล
• ตรวจสอบการเชอมตอของอปกรณ
หลงจากผใชงานกดปมสงคนหาชองโหว Scan Engine จะทำการทดสอบ
การเชอมตอไปยงอปกรณวาไดหรอไม ดวยการใชคำสงดงตอไปน
./adb devices
ซงถาพบ ผลลพธจะแสดงรายการอปกรณขนมา แตถาไมพบจะจบการ
ทำงาน
• ตรวจสอบไฟล APK วาถกตดตงหรอไม
หลงจากนนจงทำการตรวจสอบไฟล APK โดยอางองจากชอแอพพลเคชนท
ไดเลอกไวกอนเรมสงใหเครองมอคนหาชองโหวทำงานดงรปท 3.5
29
รปท 3.5 แสดงสวนของผใชงานในขณะเลอกแอพพลเคชนทจะทดสอบจากรายการทงหมด
โดยใชคำสงดงตอไปน
./adb shell ls /data/app
ซงจะแสดงรายการแอพพลเคชนทถกตดตงทงหมดในอปกรณมอถอ
• Clear Folder and Create Folder
กอนท&จะทาการดงขอมลจากอปกรณมอถอมา Scan Engine จะลบโฟลเดอรท&ช&อ [appname] และ
สรางข[นมาใหมทกคร[ งท&เร&มส&งตรวจสอบชองโหว
• Download ไฟล APK
หลงจากนน Scan Engine จะ Download ไฟล APK ไปยงเครอง เพอใช
ทดสอบตอไป ซงคำสงทใชDownloadไฟลจากอปกรณมดงน
./adb pull [name.apk]
โดยท [name.apk] คอชอของไฟลทตองการทำDownload
• Download Cache
ปกตขอมลแคชของแอนดรอยดแอพพลเคช&นจะถกตดต[งใน /data/data/[package name] โดยท&
[package name] คอช&อ [apkname] แตลบ extension .apk ออก ซ& งขอมลท[งหมดน[จะถกเกบ
ไวใน [appname]/[package name] บนเคร&อง Scan Engine
30
• Reverse Engineering
เปนกระบวนการแปลงไฟล APK ใหกลบเปน Source Code เพอใชในการ
วเคราะหบางสวนใน OWASP โดยหลกการแรกคอแปลงไฟล APK ใหอยในรปของ JAR กอน โดยเรา
จะใชเครองมอทชอ d2j-dex2jar เพอทำการทดสอบดงคำสงตอไปน
./d2j-dex2jar [name.apk]
โดยท [name.apk] คอชอของไฟล APK ทจะทำการแปลงเปน JAR และ
เมอไดไฟล JAR มาแลว จงทำการวศวกรรมยอนกลบใหเปน Source Code โดยใชเครองมอทชอ
Procyon โดยใชคำสงดงตอไปน
Java -jar procyon-decompiler-0.5.30.jar -o [dir] [name.jar]
โดยท [dir] หมายถง Directory ทใชเกบ Source Code และ [name.jar]
คอไฟลทไดจากการแปลงกอนหนา
• แยกAndroidManifest.xml
กระบวนการตอไปคอแยกไฟล AndroidManifest.xml ออกมาจากตว
APK ซงเราไมสามารถแยกไฟลออกมาตรง ๆได เครองมอทชวยในการแยกไฟลน ชอวา Androaxml
ซงอยในเซตเครองมอทชอAndroguard โดยเราจะใชคำสงดงตอไปน
Androaxml.py -i [name.apk] -o AndroManifest.xml
โดยท [name.apk] คอชอไฟลของแอพพลเคชนทจะทำการทดสอบ
หลงจากท Scan Engine เตรยมระบบเรยบรอยแลวจะแจงกลบไปยง
Django Application วามการทำงานเสรจสน ซงในสวนของ CherryPy จะแสดงผลดงรปท& M.O
รปท& M.O แสดงถงสถานะเสรจสมบรณบนCherryPy หลงจากเตรยมสภาพแวดลอมเรยบรอยแลว
31
ในขณะททางสวนแสดงของผใชงานจะแสดงรายการวามเตรยมพรอมเรยบรอยแลว
ดงรปท 3.7
รปท 3.7 แสดงสถานะเสรจสมบรณจากการเตรยมสภาพแวดลอมบนสวนผใชงาน
3.2.3 Database
สวนของฐานขอมลนจะใช SQLite เพอทำหนาเกบผลการคนหาชองโหวตาง ๆ รวม
ไปถงเพอใชในแสดงผลและยอนดภายหลง
3.3 วธการทดสอบชองโหว จากทกลาวไววาชองโหวจะถกทดสอบดวย Scan Engine ซงในสวนนจะแสดงถงวธการ
ทดสอบชองโหวทง 4 กลม โดยการทดสอบนนจะนำมารวมกนไมไดแยกตามกลม เนองจากจะมชอง
โหวทคนพบอาจจะอยมากกวา 1 กลมกได ซงจะมขนตอนการทดสอบดงรปท 3.8
32
รปท 3.8 แสดงขนตอนการทำงานจอง Scan Engine ในการคนหาชองโหวตาง ๆ
3.3.1 ขอมลเบองตนและ Permission
ขนตอนนเปนการคนหาขอมลเบองตนของแอพพลเคชน และ Permission ทถกขอ
ใชงาน โดยใช Drozer ในการดงขอมลตามคำสงดงตอไปน
drozer console connect -c “run app.package.info -a [package_name]
3.3.2 Exported Activities
ขนตอนนเปนการคนหา Activity ท Config ไมถกตอง โดยใชคำสง
Drozer console connect -c “run app.activity.info -a %s“
3.3.3 SQLite
ขนตอนนเปนการคนหาไฟล SQLite โดยอางองจาก Magic Header ซงใชคำสง
xxd -p -l 16 [filename]
จากนนจงเอาไปเปรยบเทยบกบคา Magic Number 5351 4c69 7465 2066
6f72 6d61 7420 3300 เพอแยกไฟล SQLite ดงรายละเอยดในขอ 2.4.2
33
3.3.4 Retrieve SQLite data
ขนตอนนจะใช Sqlite3 เพอดงตารางและขอมลจากผลลพธใน 3.3.3 จากนนจง
บนทกเกบขอมลในไฟลทเปนนามสกล pdb
3.3.5 Vulnerable SQLite
ขนตอนนเปนการคนหาไฟล SQLite ทม Sensitive Keyword จากผลลพธใน
3.3.4 โดยใชคำสง
grep -i [multiple_keyword]
3.3.6 คนหาไฟล xml ทมsensitive word
ในสวนขนตอนนนน จะทำการคนหา Sensitive Keyword จาก xml ไฟล โดยใช
คำสง
grep –include=*.xml -r -n -i [multiple_keyword] ถาคนพบจะถกบนทกเกบ
ในตวแปรทชอ xml
3.3.7 คนหา Internal Storage class
ขนตอนนเปนการคนหาไฟลทใช External Storage Class จาก Source Code
Folder ซงไดจาก 3.2.2 โดยจะคนหา Class ดงตอไปน
• getExternal
โดยใชคำสง
grep -r -n -i [multiple_keyword] [source code folder]
3.3.8 External Storage class
หลงจากขนตอนกอนนไดเสรจสน ขนตอนนจะคนหาไฟลทใช External Storage
Class จาก Source Code Folder ซงไดจาก 3.2.2 โดยจะคนหา Class ดงตอไปน
• getExternal
โดยใชคำสง
grep -r -n -i [multiple_keyword] [source code folder]
34
3.3.9 Log class
คนหาไฟลทใช Log Class จาก Source Code Folder ซงไดจาก 3.2.2 โดยจะ
คนหา Class ดงตอไปน
• logs
• Log[.]d
• Log[.]e
• Log[.]i
• Log[.]v
• Log[.]w
• Log[.]wtf
• logfile
• logging
• Logger
• System[.]out[.]print
• System[.]out[.]print
โดยใชคำสง
grep -r -n -i [multiple_keyword] [source code folder]
3.3.10 ทดสอบ Allowbackup
ขนตอนนจะตรวจสอบการกำหนดคาของ allowBackup ในไฟล
AndroidManifest.xml วามการกำหนดไวถกตองหรอไม โดยใชคำสงดานลาง
grep -i ‘allowBackup=\”false\”’ AndroidManifest.xml
ถาผลลพธออกมาวาไมพบ แสดงวาเปนชองโหว
3.3.11 Hardcode keyword
คนหาไฟลอน ๆ ทม Sensitive Keyword ดงตอไปน
• password
35
• pass
• secret
• share
• username
• user
• account
• code
• pin
• credit
• card
• emei
• udid
• cookie
• token
• admin
• root
• administrator
• encrypt
โดยใชคำสง
grep –exclude=*.pdb –exclude=*.db –exclude=*.xml -I -r -I -n [multiple
keywords] [datadir]
3.3.12 Weak Cryptography
คนหาไฟลทใชการเขารหสลบทออนแอ จาก Source Code Folder ซงไดจาก
3.2.2 โดยจะคนหาตาม Keyword ดงตอไปน
• 3DES
36
• RC2
• RC4
• BLOWFISH
• MD5
• SHA1
• Cipher
• MessageDigest
• Signature
• Keystore
• PrivateKey
• PublicKey
• SecretKeySpec
• java[.]security
• java[.]crypto
โดยใชคำสง
grep -r -n -i [multiple_keyword] [source code folder]
3.3.13 Debuggable
ขนตอนนจะตรวจสอบการกำหนดคาของ debuggable ในไฟล
AndroidManifest.xml วามการกำหนดไวถกตองหรอไม โดยใชคำสงดานลาง
grep -i ‘allowBackup=\”true\”’ AndroidManifest.xml
ถาผลลพธออกมาวาพบ แสดงวาเปนชองโหว
3.3.14 บนทกผล เมอประมวลผลทงหมดเสรจสน ขอมลจะถกสงกลบไปท Backend Server เพอ
บนทกลง Database โดยใช HTTP POST และformat ดงตอไปน
"app_id": appid,
37
"vuln_sql_file_list": "$".join(sql),
"vuln_xml_file_list": "$".join(xml),
"internal_file_list": "$".join(internal),
"external_file_list": "$".join(external),
"log_file_list": "$".join(vuln_log),
"axml_file_list": "".join(axml),
"hardcode_file_list": "$".join(hardcode_list),
"crypto_file_list": "$".join(crypto),
"permission": "$".join(permission),
"exported_activity_list": "$".join(exported_activity_list),
"debug": "$".join(debug),
โดยมความหมายของ Parameter ดงตารางท 3.2
ตารางท 3.2 แสดงถงความหมาย Parameter แตละตวใน HTTP Post method ทสงกลบไปยง
Backend Server
ช&อ Parameter ความหมาย
app_id หมายเลขแอพพลเคชนทสรางโดยฐานขอมล
status สถานะของ scan วาเสรจสมบรณหรอไม โดย 0 ยงไมเรม และ 100
หมายถงเสรจสมบรณ
vuln_sql_file_list จำนวนไฟล SQLite ทคาดวามชองโหวทงหมด โดยทแตละรายการท
พบเจอจะถกคนดวย “$” เพอใชแยกไฟลทพบออกจากกน
vuln_xml_file_list จำนวนไฟล XML ไฟลทคาดวามชองโหวทงหมด โดยทแตละรายการท
พบเจอจะถกคนดวย “$” เพอใชแยกไฟลทพบออกจากกน
internal_file_list จำนวนไฟลทพบการใชงาน Internal Storage Class โดยทแตละ
รายการทพบเจอจะถกคนดวย “$” เพอใชแยกไฟลทพบออกจากกน
external_file_list จำนวนไฟลทพบการใชงาน External Storage Class โดยทแตละ
รายการทพบเจอจะถกคนดวย “$” เพอใชแยกไฟลทพบออกจากกน
38
ตารางท 3.3 แสดงถงความหมาย Parameter แตละตวใน HTTP Post method ทสงกลบไปยง
Backend Server (ตอ)
ช&อ Parameter ความหมาย
log_file_list จำนวนไฟลทพบการใชงาน Log Class โดยทแตละรายการทพบเจอจะ
ถกคนดวย “$” เพอใชแยกไฟลทพบออกจากกน
axml_file_list ผลการตรวจสอบ Config Auto Backup ใน AndroidManifest.xml
hardcode_file_list จำนวนไฟลอน ๆ ทคาดวามชองโหวทงหมด โดยทแตละรายการทพบ
เจอจะถกคนดวย “$” เพอใชแยกไฟลทพบออกจากกน
crypto_file_list จำนวนไฟลทพบการใชงาน Cryptography Class โดยทแตละรายการ
ทพบเจอจะถกคนดวย “$” เพอใชแยกไฟลทพบออกจากกน
permission ขอมล Detail และ Permission ของแอพพลเคชน
exported_activity_list จำนวน Activity ทมการ Config ไมถกตอง
debug ผลการตรวจสอบ Debuggable ใน AndroidManifest.xml
39
บทท 4
ผลการทดลอง / ผลการดาเนนงาน
4.1 วธการทดลอง การทดลองนนจะใชเครองมอทสรางขนทดสอบหาชองโหวกบแอพพลเคชนดงตอไปน
4.1.1 Insecure Bank
เปนโปรเจคอสระของ Dinesh Shetty [10] โดยมจดประสงคในการสรางแอน
ดรอยดแอพพลเคชนทมชองโหวเพอใชในศกษา เมอเปดแอพพลเคชนจะเจอหนาตางดงรปท 4.1
รปท 4.1 แสดงหนาตางแรกหลงจากเปดแอพพลเคชนทชอ Insecure Bank
เนองจากแอพพลเคชนทสรางขนมาโดยออกแบบใหมชองโหว (Vulnerable by design) จง
เหมาะสมทจะนำมาทดสอบกบการโครงงานน
4.1.2 Book Shopping S
แอพพลเคชนของบรษท S ทใชงานเพอสงซอหรออานหนงสอผานระบบอนเตอรเนต
40
4.1.3 Printer B
แอพพลเคชนสำหรบควบคมเครองปรน เพอใชในการสแกน หรอสงพมพเอกสาร
สำหรบเครองพมพ B
4.1.4 Ticket R
แอพพลเคชนของบรษท R สำหรบใชเพอโดยสารระบบรถไฟฟาและแลกพอยตอน ๆ
4.2 สภาพแวดลอมการทดลอง
แอพพลเคชน Insecure Bank จะถกตดตงบนสมารทโฟนทมระบบปฏบตการแอนดรอยด
โดยเมอ Scan Engine ทำงานจะมตรวจสอบการเชอมตอไปยงอปกรณ และทำการคนหาชองโหวใน
ตาง ๆ ตามทไดกลาวไวในบทท 3.3
ในสวนของเครองมอคนหาชองโหวนนจะถกตดตงบน CentOS ซงถกตดตงบน Virtual
Machine อกท
กอนทำการทดลอง อปกรณสมารทโฟนจะนำมาเชอมตอกบเครองมอคนหาชองโหวดวยสาย
USB รวมถงตองทำการ Root เครองเพอปลดระบบความปลอดภยออกดวย
4.3 ผลการทดลอง
หลงจากทดสอบคนหาชองโหวกบกลมทดลองขางตนดวยเครองมอคนหาชองโหวแลว พบวา
ละเอยดชองโหวดงตอไปน
4.3.1 ชวง Prepare Environment
พบวาสามารถแยกไฟล AndroidManifest.xml และทำ Reverse Engineering
จากกลมทดลองทงหมดไดสำเรจดงรปท 4.2
41
รปท 4.2 แสดงผลการทำ Prepare Environment และ Reverse Engineering ไดสำเรจ
4.3.2 ขอมลเบองตนและ Permission
ในสวนนจะแสดงขอมลเบองตนของแอพพลเคชนและอปกรณทใชทดสอบ
• InsecureBank
พบวาแอพพลเคชนตองการ Permission 12 ประเภทดงรปท 4.3
รปท 4.3 แสดงถงขอมลทว ๆ ไปของแอพพลเคชนและ Permission ของ InsecureBank
• Book Shopping S
พบวาแอพพลเคชนตองการ Permission 10 ประเภทดงรปท 4.4
42
รปท 4.4 แสดงถงขอมลทว ๆ ไปของแอพพลเคชนและ Permission ของ Book Shopping S
• Printer B
พบวาแอพพลเคชนตองการ Permission 14 ประเภทดงรปท 4.5
รปท 4.5 แสดงถงขอมลทว ๆ ไปของแอพพลเคชนและ Permission ของ Printer B
• Ticket R
ในสวนแอพพลเคชน Ticket พบวามการรองขอ Permission จำนวนมาก
ดงรปท 4.6
43
รปท 4.6 แสดงถงขอมลทว ๆ ไปของแอพพลเคชนและ Permission ของ Ticket R
4.3.3 Exported Activities
• InsecureBank
พบ Activity ทสามารถเขาถงไดโดยตรงเปนจำนวน 5 Activity ดงรปท
4.7
รปท 4.7 แสดงจำนวน Activity ทสามารถเขาถงไดโดยตรงของ InsecureBank
เมอ Click จะสามารถเรยก Activity ใหแสดงผลบนหนาจอมอถอได
ผลลพธคอสามารถขามในสวนการพสจนตวตนไดเลย เชนเรยก Activity PostLogin ดงรปท 4.8
44
รปท 4.8 แสดงถงหนาจอหลงจากเขาสระบบของแอพพลเคชนน ซงถกเรยกโดยตรง
• Book Shopping S
พบแต MainActivity เทานนดงรปท 4.9 ซงเมอตรวจสอบดแลวไมมปญหา
แตอยางใด
รปท 4.9 แสดงจำนวน Activity ทสามารถเขาถงไดโดยตรงของ Book Shopping S
• Printer B
พบ Activity ดงรปท 4.10 พบวา Activity ตาง ๆ สามารถเขาถงได
โดยตรง โดยไมตองพสจนตวตน อยางไรกตาม ตองตรวจสอบอกทวาสามารถเพมระดบความรนแรง
ของชองโหวไดหรอไม
45
รปท 4.10 แสดงจำนวน Activity ทสามารถเขาถงไดโดยตรงของ Printer B
• Ticket R
พบ Activity ดงรปท 4.11 แตเมอตรวจสอบดแลวไมพบวามชองโหวแต
อยางใด
รปท 4.11 แสดงจำนวน Activity ทสามารถเขาถงไดโดยตรงของ Ticket R
4.3.4 Vulnerable SQL Files
• InsecureBank
พบไฟล SQLite แตไมพบชองโหวแตอยางใด เมอเปดผลลพธจากการ
คนหาชองโหว จะพบไฟลทคาดวามชองโหวดงรปท 4.12
รปท 4.12 แสดงไฟล SQLite ทคาดวาอาจมขอมลสำคญของ InsecureBank
แตเมอเปดดแลวจะพบวามแตชอตารางดงรปท 4.13
46
รปท 4.13 แสดงถงตารางและขอมลภายในฐานขอมลทงหมดทอาจมขอมลสำคญ
• Book Shopping S
พบวามใชงานไฟล SQLite ทคาดวาจะมชองโหว 1 ไฟลดงรปท 4.14 แต
เมอตรวจสอบแลวไมพบวามชองโหว
รปท 4.14 แสดงไฟล SQLite ทคาดวาอาจมขอมลสำคญของ Book Shopping S
• Printer B
ไมพบไฟล SQLite ทคาดวามชองโหว
• Ticket R
พบวามใชงานไฟล SQLite ทคาดวาจะมชองโหว 3 ไฟลดงรปท 4.15 แต
เมอตรวจสอบแลวไมพบวามขอมลสำคญ
รปท 4.15 แสดงไฟล SQLite ทคาดวาอาจมขอมลสำคญของ Ticket R
47
4.3.5 Vulnerable XML Files
• InsecureBank
ในสวนนจะพบ XML Files ทมปญหาเพยง 2 ไฟล ดงรปท 4.16
รปท 4.16 แสดงรายชอไฟล XML ทอาจมชองโหวของ InsecureBank
แตมเพยงไฟล mySharedPreferences.xml เทานนทมชองโหวเนองจากมการ
บนทกรหสผใชงานและรหสผานไว อยางไรกตามรหสผานยงมการเขารหสลบไวดงรปท 4.17
รปท 4.17 แสดงขอมลภายในไฟล mySharedPreferences.xml ซงมขอมลรหสผใชงานและ
รหสผาน
• Book Shopping S
พบวามไฟลทคาดวาจะมชองโหวอย 3 ไฟล ดงรปท 4.18
รปท 4.18 แสดงรายชอไฟล XML ทอาจมชองโหวของ Book Shopping S
48
เมอตรวจสอบพบวาไฟล account.xml บนทกรหสผานไวเปนแบบ
Plaintext ดงรปท 4.19
รปท 4.19 แสดงรหสผานในไฟล account.xml ซงถกเกบไวโดยไมมการใช Hash
• Printer B
ไมพบไฟล XML ทคาดวามชองโหว
• Ticket R
พบไฟลดงรปท 4.20 แตไมพบขอมลสำคญ
รปท 4.20 แสดงจำนวนไฟล XML ทงหมด ของ Ticket R ทคาดวาอาจมขอมลสำคญทอาจเปนชอง
โหวได
49
4.3.6 Internal Storage Class
• InsecureBank
พบไฟลทใช Internal Storage Class ดงรปท 4.21 แตเมอทำการ
ตรวจสอบแลว ไมพบชองโหวแตอยางใด
รปท 4.21 แสดงไฟลทงหมดทคาดวามการใชงาน Internal Storage Class ของ InsecureBank
• Book Shopping S
ไมพบไฟลทใช Internal Storage Class น
• Printer B
พบไฟลทใช Internal Storage Class ดงรปท 4.22 แตเมอทำการ
ตรวจสอบแลว ไมพบชองโหวแตอยางใด
50
รปท 4.22 แสดงไฟลทงหมดทคาดวามการใชงาน Internal Storage Class ของ Printer B
• Ticket R
พบไฟลทใช Internal Storage Class ดงรปท 4.23 แตเมอทำการ
ตรวจสอบแลว ไมพบชองโหวแตอยางใด
รปท 4.23 แสดงไฟลทงหมดทคาดวามการใชงาน Internal Storage Class ของ Ticket R
4.3.7 External Storage Class
• InsecureBank
จากผลการทดสอบ พบวามไฟลทใช External Storage Class ทงหมดดง
รปท 4.24
51
รปท 4.24 แสดงไฟลทใช External Storage Class ทงหมดจาก Scan Engine
พบจดทนาสนใจวาไฟล ViewStatement.java มการใช External Storage Class
ดงรปท 4.25
รปท 4.25 แสดงตำแหนงทพบการใชงาน External Storage Class
จากตรงนแสดงใหเหนวามการบนทก Statement ของบญช ลงบนไฟล html บน
sdcard เมอเปดไปทยงอปกรณจะพบไฟล Statements_jack.html แลวเมอเปดจะพบขอมลรายการ
ดงรปท 4.26
รปท 4.26 แสดงขอมลรายการทางการเงนของไฟล Statements_jack.html
52
• Book Shopping S
พบไฟล App.java ดงรปท 4.27 วามการจดเกบหนงสออเลกทรอนกสอย
ใน SD Card อยางไรกตามยงไมสามารถสรปไดชดเจนวาเปนชองโหวเนองจากตองตรวจสอบกบ
ขอบเขตของเจาของแอพพลเคชน
รปท 4.27 แสดงไฟลทใช External Storage Class ใน Book Shopping S
• Printer B
พบวาไฟล TheDir.java จากไฟลทพบทงหมดในรปท 4.28 เกบไฟลทScan
ไวใน /sdcard/[app name]/Scan โฟลเดอรซง Malicious Application สามารถเขาถงไดถาได
สทธ READ_EXTERNAL_STORAGE
รปท 4.28 แสดงไฟลทใช External Storage Class ใน Printer B
• Ticket R
พบไฟลทใช External Storage Class ดงรปท 4.29 แตเมอทำการ
ตรวจสอบแลว ไมพบชองโหวแตอยางใด
53
รปท 4.29 แสดงไฟลทใช External Storage Class ใน Ticket R
4.3.8 Log Class
• InsecureBank
จากการทดสอบพบวามการใช Log Class จำนวนมากตามทเหนดงรปท
4.30
รปท 4.30 แสดงรายการไฟลทใช Log class ของ InsecureBank
ทงนจากการตรวจสอบในสวนของ Source Code พบวามการบนทกขอมล
ผใชงานและรหสผานบนไฟล DoLogin.java เมอเขาสระบบสำเรจดงรปท 4.31
54
รปท 4.31 แสดงตำแหนงทพบการบนทก Log บนไฟล DoLogin.java
• Book Shopping S
พบไฟลทใชมการสงออก Log ดงรปท 4.32 แตไมพบการสงออกขอมลท
สำคญ
รปท 4.32 แสดงไฟลทงหมดทมการบนทก Log ของ Book Shopping S
• Printer B
พบวามไฟลทสงออก Log จำนวนมากดงรปท 4.33 แตไมพบการสงออก
ขอมลสำคญ
รปท 4.33 แสดงไฟลทงหมดทมการบนทก Log ของ Printer B
55
• Ticket R
พบวามไฟลทสงออก Log จำนวนมากดงรปท 4.34 แตไมพบการสงออก
ขอมลสำคญ
รปท 4.34 แสดงไฟลทงหมดทมการบนทก Log ของ Ticket R
4.3.9 Backup
• InsecureBank
พบวาแอพพลเคชนเปด Debug ไวดงรปท 4.35 จงเปนชองโหวใหถกโจมต
ได
รปท 4.35 แสดงผลการตรวจสอบจาก Scan Engine วาสามารถ Debug ได
• Book Shopping S
พบวามชองโหว
56
• Printer B
พบวามชองโหว
• Ticket R
พบวาแอพพลเคชนปด Debug ไวดงรปท 4.36 จงไมมชองโหว
รปท 4.36 แสดงผลการทดสอบของ Ticket วาไมไดเปด allowBackup ไว
4.3.10 Hardcode and Secret
• InsecureBank
ไมพบการตรวจเจอไฟลทคาดวาจะเปนชองโหว
• Book Shopping S
พบไฟลทอาจจะมขอมลทมความสำคญดงรปท 4.37 แสดงไฟลทงหมดท
คาดวามขอมลสำคญของ Book Shopping S แตเมอตรวจแลวสอบไมพบความผดปกต
รปท 4.37 แสดงไฟลทงหมดทคาดวามขอมลสำคญของ Book Shopping S
• Printer B
ไมพบการตรวจเจอไฟลทคาดวาจะเปนชองโหว
• Ticket R
พบไฟลทอาจจะมขอมลทมความสำคญดงรปท 4.38 แสดงไฟลทงหมดท
คาดวามขอมลสำคญของ Ticket R แตเมอตรวจแลวสอบไมพบความผดปกต
57
รปท 4.38 แสดงไฟลทงหมดทคาดวามขอมลสำคญของ Ticket R
4.3.11 Crypto Class
• InsecureBank
ในสวนของ Class เขารหสลบ พบจำนวนไฟลทใชงานทงหมดดงรปท 4.39
รปท 4.39 แสดงไฟลทใชงาน Class เขารหสลบทงหมดจาก Scan Engine
พบวาไฟล CryptoClass.java เปนไฟลทใชเขาและถอดรหสลบในไฟล
mySharedPreference.xml ดงรปท 4.40
รปท 4.40 แสดง Method ทใชเขาและถอดรหสลบบนไฟล CryptoClass.java
58
• Book Shopping S
พบจำนวนไฟลทใชการเขารหสลบดงรปท 4.41 แสดงผลลพธไฟลทงหมดท
ใช Class เขารหสลบของ Book Shopping S แตเมอตรวจสอบไมพบจดทเปนชองโหว
รปท 4.41 แสดงผลลพธไฟลทงหมดทใช Class เขารหสลบของ Book Shopping S
• Printer B
พบไฟลทใช Class การเขารหสลบดงรปท 4.42 แสดงผลลพธไฟลทงหมดท
ใช Class เขารหสลบของ Printer B แตเมอตรวจสอบไมพบจดทเปนชองโหว
รปท 4.42 แสดงผลลพธไฟลทงหมดทใช Class เขารหสลบของ Printer B
• Ticket R
พบไฟลทใช Class การเขารหสลบดงรปท 4.43 แสดงผลลพธไฟลทงหมดท
ใช Class เขารหสลบของ Ticket R แตเมอตรวจสอบไมพบจดทเปนชองโหว
รปท 4.43 แสดงผลลพธไฟลทงหมดทใช Class เขารหสลบของ Ticket R
59
4.3.12 Debug
• InsecureBank
พบวาไมไดปด Debug ไว ดงรปท 4.44 แสดงผลลพธวา InsecureBank
สามารถ Debug ได
รปท 4.44 แสดงผลลพธวา InsecureBank สามารถ Debug ได
• Book Shopping S
พบวามการปด Debug ไว ดงรปท 4.45 แสดงผลลพธวา Book Shopping
S ไมสามารถ Debug ได เนองจากถกปดไว
รปท 4.45 แสดงผลลพธวา Book Shopping S ไมสามารถ Debug ได เนองจากถกปดไว
• Printer B
พบวาปด Debug ไว
• Ticket R
พบวาปด Debug ไว
4.3.13 สรปผลชองโหวทงหมด จากขอมลดงกลาวสามารถสรปผลชองโหวทงหมดไดดงรปท 4.41 แสดงผลลพธไฟล
ทงหมดทใช Class เขารหสลบของ Book Shopping S โดยท
สญลกษณ ✓ หมายถงพบวาเปนชองโหว
60
สญลกษณ ✕ หมายถงไมพบชองโหว
สญลกษณ ◉ หมายถงชองโหวนตองมการวเคราะหเพมเตม หรอตรวจสอบกบ
ขอบเขตของเจาของแอพพลเคชนเพอดความตองการ
ตารางท 4.1 แสดงตารางสรปการทดสอบหาชองโหวโดยใชเครองมอทสรางขนตอกลมทดลองทงหมด
4 กลม
Insecure
Bank
Book
Shopping S
Printer B Ticket R
Reverse Engineering ✓ ✓ ✓ ✓
Exported Activities ✓ ✕ ◉ ✕ Vulnerable SQLite ✕ ✕ ✕ ✕ Vulnerable SharePreferences ✓ ✓ ✕ ✕ Internal Storage Class ✕ ✕ ✕ ✕ External Storage Class ✓ ◉ ✓ ✕ Log Class ✓ ✕ ✕ ✕ Backup ✓ ✓ ✓ ✕ Hardcode ✕ ◉ ✕ ◉ Crypto class ✓ ✕ ✕ ✕ Debug ✓ ✕ ✕ ✕
61
บทท 5
สรปผลการดาเนนงาน
5.1 สรปผลการดำเนนงาน เครองมอคนหาชองโหวของแอนดรอยดแอพพลเคชนทจดทำขนนนสามารถใชเพอหาชองโหว
หรอลดระยะเวลาในการชองโหวของผทดสอบเจาะระบบได โดยสามารถตรวจหาชองโหวดงตอไปนได
5.1.1 Reverse Engineering
5.1.2 Exported Activities
5.1.3 Vulnerable SQL File
5.1.4 Vulnerable XML File
5.1.5 Vulnerable Internal Storage Class
5.1.6 Vulnerable External Storage Class
5.1.7 Crypto Class
5.1.8 Log Class
5.1.9 Backup configuration
5.1.10 Hardcode and Secret
5.1.11 Debug configuration
5.2 ปญหาและอปสรรคของการดาเนนการ ชองโหวบางประเภทไมสามารถใชเครองมอคนหาชองโหวแบบอตโนมตได ยงตองมการ
ตรวจสอบดวยวธการแบบ Manual หรอมการวเคราะหตอเพมเตมอกท
5.3 ขอเสนอแนะในการพฒนาโครงงานตอไปในอนาคต จากการศกษาครงนพบวา ยงสามารถทจะพฒนาเครองมอใหดขนไดโดย
5.3.1 พฒนา Interface ใหใชงานงายยงขน
5.3.2 เพม Feature ตาง ๆ เชน การกำหนดคาตงระบบ
5.3.3 เพมและพฒนาวธการตรวจสอบชองโหวใหม ๆ ในอนาคต
62
เอกสารอางอง
[1] Statista, “Statista,” [ออนไลน]. Available:
https://www.statista.com/statistics/266136/global-market-share-held-by-
smartphone-operating-systems/.
[2] OWASP, “OWASP,” [ออนไลน]. Available:
https://www.owasp.org/index.php/Mobile_Top_10_2016-Top_10.
[3] J. D. Drake, Android Hacker's Handbook, Indianapolis: John Wiley & Sons,Inc.,
2014.
[4] AOSP, “Android Open Source Project,” [ออนไลน]. Available:
https://source.android.com/source/build-numbers.html.
[5] A. Developer, “Android Developer,” [ออนไลน]. Available:
https://developer.android.com/about/dashboards/index.html.
[6] AOSP, “Android Stack,” [ออนไลน]. Available: https://source.android.com/setup.
[7] N. Elenkov, Android Security Internals, San Francisco: No Starch Press, 2015.
[8] Gary, “GaryKessler,” [ออนไลน]. Available:
http://www.garykessler.net/library/file_sigs.html.
[9] NIST, “NIST,” [ออนไลน]. Available:
https://csrc.nist.gov/CSRC/media/Publications/sp/800-131a/rev-
2/draft/documents/sp800-131Ar2-draft.pdf.
[10] M. Infosecurity. [ออนไลน]. Available:
https://labs.mwrinfosecurity.com/tools/drozer/.
[11] D. Shetty, “Insecure Bank,” [ออนไลน]. Available:
https://github.com/dineshshetty.