เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ...

71
เครื่องมือค้นหาช่องโหว่ของแอนดรอยด์แอพพลิเคชั่น Vulnerability Scanner for Android Application เอกพนธ์ สุขเจริญทรัพย์ สารนิพนธ์นี้เป็นส่วนหนึ่งของการศึกษา หลักสูตรวิทยาศาสตรมหาบัณฑิต สาขาวิชา ความมั่นคงทางระบบสารสนเทศ คณะวิทยาการและเทคโนโลยีสารสนเทศ มหาวิทยาลัยเทคโนโลยีมหานคร ปีการศึกษา 2561

Transcript of เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ...

Page 1: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

เครองมอคนหาชองโหวของแอนดรอยดแอพพลเคชน

Vulnerability Scanner for Android Application

เอกพนธ สขเจรญทรพย

สารนพนธนเปนสวนหนงของการศกษา

หลกสตรวทยาศาสตรมหาบณฑต สาขาวชา ความมนคงทางระบบสารสนเทศ

คณะวทยาการและเทคโนโลยสารสนเทศ

มหาวทยาลยเทคโนโลยมหานคร

ปการศกษา 2561

Page 2: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

I

หวขอ เครองมอคนหาชองโหวของแอนดรอยดแอพพลเคชน

Vulnerability Scanner for Android Application

ชอนกศกษา เอกพนธ สขเจรญทรพย

รหสนกศกษา 5617810006

หลกสตร ความม&นคงของระบบสารสนเทศ

ปการศกษา 2018

อาจารยท8ปรกษา ผศ.ดร.สรณพร ภมวฒสาร

บทคดยอ

สารนพนธฉบบนจดทำเพอพฒนาโปรแกรมสำหรบคนหาชองโหวของแอนดรอยด

แอพพลเคชนเพอลดขนตอนการคนหาชองโหวแกผททำการทดสอบคนหาชองโหว

Page 3: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

II

กตตกรรมประกาศ

สารนพนธฉบบนเกดขนเนองจากพบวาการคนหาชองโหวของแอนดรอยดแอพพลเคชนม

ความซบซอนและยงไมมเครองมอชวยเหลอในการทำงานมากนก จงไดแนวคดในการทำโครงงานและ

ความอนเคราะหจากอาจารยทปรกษา ผศ.ดร.สรณพร ภมวฒสาร และ ดร.โสฬส พานชปรชา ซงเปน

ผทชแนะแนวทางและมมมองทเกดประโยชนเพอใหโครงงานประสบความสำเรจ

ทงนความสำเรจนไมอาจเกดขนไดถาปราศจากคณาจารยสาขาเทคโนโลยสารสนเทศ

มหาวทยาลยมหานครทก ๆ ทาน ทไดทอดถายความรและประสบการณทมคาตาง ๆ ใหแกขาพเจา

สดทายนขอขอบพระคณอาจารยทปรกษา และคณาจารยตาง ๆ ทก ๆ ทาน ทมความกรณา

ใหตลอดมาเปนอยางสง

เอกพนธ สขเจรญทรพย

15 ตลาคม 2561

Page 4: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 5: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 6: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 7: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 8: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 9: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 10: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

1

บทท 1

บทนา

1.1 ปญหาและแรงจงใจ ปจจบนอปกรณมอถอ ไดเขามามบทบาทในชวตประจำวนเปนอยางมาก มความแพรหลาย

และเปนทนยมอนเนองมาจากความสะดวกสบายในการพกพา รวมถงสามารถนำไปใชงานไดสารพดประโยชน ไมวาจะเพอความบนเทง เชน การทองเวบ ดหนง ฟงเพลง เลนเกมส เชอมตอกบ Social

Network หรอแมแตเพอการทางาน เชน รบ-สงอเมล การทำธรกรรมทางการเงน จดบนทก แกไขงาน ในโมบายแอพพลเคชนตาง ๆ ดงนนองคกรตาง ๆ จงเรมใหความสาคญกบ Bring Your Own

Device (BYOD) โดยมการอนญาตใหพนกงานนาอปกรณสวนตวของตนเอง ไมวาจะเปน แลปทอป โนตบค แทบเลต มาใชในสถานททางาน เพอความสะดวกของตวพนกงานเองทไมตองถายโอนไฟลไปมา รวมถงลดคาใชจายขององคกร ในการสงซออปกรณ

ดงนนในปจจบนจงเกดโมบายแอพพลเคชนตาง ๆ เปนจานวนมาก เพอตอบสนองความตองการของผใชงานทวไปและองคกร โดยมการสรางและพฒนาแอพพลเคชนตาง ๆ บน โทรศพทมอถอ เพอเพมประสทธภาพในการทำงาน และลดคาใชจายตาง ๆ อยางไรกตามการทโลกธรกจนนมการเปลยนอยางรวดเรว ทาใหโมบายแอพพลเคชนนนไมไดถกตรวจสอบความปลอดภยอยางละเอยดกอนถกนาไปใชงาน

ดวยเหตนเองโทรศพทมอถอจงตกเปนเปาหมายตอผไมหวงดในการโจมตตาง ๆ ทำใหหลาย

ๆ หนวยงานมการตนตวมากขน เชน OWASP ซงเปนหนวยงานทรวบรวมและเผยแผชองโหวสดสด

10 อนดบจากแอพพลเคชนบนมอถอใหแกผทเกยวของทดสอบความปลอดภยของแอพพลเคชน

กอนทจะนำไปใชงานจรง แตอนเนองจากเนอหาทมจำนวนมากและซบซอนตอการทดสอบ ทำให

หลาย ๆ ครง ชองโหวไมไดโดนตรวจสอบใหครบถวน เนองจากกระบวนการตาง ๆ มกจะถกทดสอบ

โดยวธการแบบ Manual ทำใหชองโหวบางสวนไมไดถกตรวจสอบครบถวน หรอปฏบตดวยความ

ยากลำบาก รวมไปถงเครองมอทแจกจายอยนนไมสามารถหาชองโหวไดครบถวนในเครองมอเดยว

จากเหตผลขางตน ทำใหผจดทำโครงงานเหนถงปญหาน อยางไรกตามจำนวน

ระบบปฏบตการบนโทรศพทมอถอ นนมจำนวนคอนขางหลากหลาย ซงวธแกปญหาทดทสดคอเลอก

จำนวนปฏบตการทผคนใชมากทสด ซงจากขอมลในรปท 1.1 แสดงใหเหนวาสวนแบงทางตลาดของ

Page 11: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

2

ระบบปฏบตการทเปนอนดบท 1 ไดแก ระบบปฏบตการแอนดรอยด โดยมสวนแบงตลาดอยประมาณ

88% และอนดบท 2 คอ ระบบปฏบตการ IOS ซงมสวนแบงอยราว 11.9% เทานน

รปท 1.1 แสดงถงสวนแบงทางการตลาดของระบบปฏบตการบนอปกรณมอถอจากป 2009 ถงป

2018 [1]

จากขอมลดงกลาวจงสรปไดวาระบบปฏบตการแอนดรอยดเปนระบบปฏบตการทมผใชงาน

มากทสด ดงนนโครงงานนจงเลอกระบบปฏบตการแอนดรอยดในการนำมาทดลองในการพฒนา

เครองมอคนหาชองโหวแบบอตโนมต

1.2 แนวทางการแกปญหา จากปญหาดงกลาวสามารถแกไขไดโดยการคนหาชองโหวของแอนดรอยดแอพพลเคชน

กอนทจะถกนำไปใชงานจรง ซงการคนหาชองโหวจะอางองจากชองโหวสงสด 10 อนดบของ OWASP

2016 [2] โดยโครงงานนจะพฒนาซอฟตแวรสำหรบคนหาชองโหวแบบอตโนมต

Page 12: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 ผใชงานทวไป และองคกรตาง ๆ สามารถใชงานแอนดรอยดแอพพลเคชน ไดอยาง

ปลอดภยมากยงขน

Page 13: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

4

1.7 โครงสรางของสารนพนธ บทท 1 บทนา กลาวถงปญหา แรงจงใจ วตถประสงค และขอบเขตในการทาโครงงาน

บทท 2 พนฐานและทฤษฎทเกยวของ กลาวถงขอมลและทฤษฎตาง ๆ ทใชในโครงงานน

บทท 3 ระบบทนาเสนอและวธการดาเนนงาน กลาวถงรายละเอยดระบบทงหมด รวมถง

หลกการและวธทใชในการพฒนาระบบ

บทท 4 วธการทดลอง กลาวถงวธการทดสอบระบบทพฒนาขน รวมถงผลการทดสอบตาง ๆ

บทท 5 สรปผลการดาเนนงาน กลาวสรปดาเนนงานทงหมด รวมถงรายละเอยดทจะปรบปรง

และเพมเตมในอนาคต

Page 14: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 15: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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%

Page 16: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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]

Page 17: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 18: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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) ซงถกพฒนาใหมประสทธภาพมาก

ขนในขณะทกนทรพยากรตวอปกรณนอยลง

Page 19: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 20: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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) ตอไป

Page 21: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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ทไดทำการรองขอจากแอพพลเคชนเมอตดตง

Page 22: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 โดยอาจจะมมากกวาไฟลเดยวกได

Page 23: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 ประเภทของแอนดรอยดแอพพลเคชน ปกตแอนดรอยดแอพพลเคชนสามารถพฒนาไดหลายรปแบบ นนคอ

Page 24: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 25: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 26: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 จะม

Page 27: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 โดยเฉพาะขอมลทมความสำคญ

Page 28: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 และขอมลตางวาถกตองหรอไม เชน วน

หมดอาย ชอผออก และอน ๆ

Page 29: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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) รวมดวยในการ

พฒนาแอพพลเคชนในการรกษาความลบหรอความสมบรณของขอมล ซงจะมความเกยวของใน

Page 30: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 ผใชงาน

Page 31: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 หรอมการปลดลอกสทธสงสดใหกบผใชงาน ซงโดยคาปรยายผใชงานจะไมสามารถใชสทธ

Page 32: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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พเศษเพอใชสำหรบการทดสอบคณสมบตตาง ๆ ซงฟงชนเหลานอาจจะกอใหเกดความ

เสยงได

Page 33: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 แสดงถงวธการเชอมตอของเครองมอคนหาชองโหวไปยงแอนดรอยดแอพพลเคชน

Page 34: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

25

ดวยวธการขางตน ทำใหเครองมอคนหาชองโหวสามารถเชอมตอไปยงอปกรณและสามารถ

สง Shell command ได ดงผลลพธในรปท 3.2 ซงเกดจากคำสงทแสดงรายการไดเรคเทอรในพาธ /

ในอปกรณผานเครองมอทชอ ADB

รปท 3.2 แสดงถงผลลพธจากคำสง adb shell ls

และสวนทสองคอการเชอมตอไปยงอปกรณโดนผานเครองมอทชอวา Drozer [10] ซงจะใช

เกบขอมลตาง ๆ จากแอนดรอยดแอพพลเคชนทจะนำมาทดลอง โดยการใชงาน Drozer นนจะตอง

ตดตง Agent ซงเปนโปรแกรมททำหนาทเปรยบเสมอน Server บนอปกรณมอถอ นอกจากน

Drozer ยงมความสามารถในการคนหาชองโหวจากคอมโพเนนท ตาง ๆ ดวย

3.2 องคประกอบของเครองมอคนหาชองโหวในแอนดรอยดแอพพลเคชน โดยหลก ๆ แลวตวเครองมอจะมองคประกอบ 3 สวน คอ สวนของผใชงาน สวน Engine ท

ใชในการคนหาชองโหว และสวนของฐานขอมล ดงรปท 3.3

Page 35: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 ดงทกลาวไวขางตน

Page 36: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

27

ปกต Scan Engine จะทำงานออกเปนสองสวนคอ เตรยมสภาพแวดลอมและทำ

การทดสอบหาชองโหว ซงในสวนของการทดสอบชองโหวจะกลาวในสวนสดทาย อยางไรก Scan

Engine จะเตรยมกระบวนการสรางสภาพแวดลอมกอนการทดสอบชองโหวดงรปท 3.4

รปท 3.4 แสดงกระบวนการทำงานของ Scan Engine เพอเตรยมสภาพแวดลอมกอนการทดสอบชอง

โหว

Page 37: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 38: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 39: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 หลงจากเตรยมสภาพแวดลอมเรยบรอยแลว

Page 40: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

31

ในขณะททางสวนแสดงของผใชงานจะแสดงรายการวามเตรยมพรอมเรยบรอยแลว

ดงรปท 3.7

รปท 3.7 แสดงสถานะเสรจสมบรณจากการเตรยมสภาพแวดลอมบนสวนผใชงาน

3.2.3 Database

สวนของฐานขอมลนจะใช SQLite เพอทำหนาเกบผลการคนหาชองโหวตาง ๆ รวม

ไปถงเพอใชในแสดงผลและยอนดภายหลง

3.3 วธการทดสอบชองโหว จากทกลาวไววาชองโหวจะถกทดสอบดวย Scan Engine ซงในสวนนจะแสดงถงวธการ

ทดสอบชองโหวทง 4 กลม โดยการทดสอบนนจะนำมารวมกนไมไดแยกตามกลม เนองจากจะมชอง

โหวทคนพบอาจจะอยมากกวา 1 กลมกได ซงจะมขนตอนการทดสอบดงรปท 3.8

Page 41: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 42: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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]

Page 43: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 44: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 45: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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,

Page 46: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 โดยทแตละ

รายการทพบเจอจะถกคนดวย “$” เพอใชแยกไฟลทพบออกจากกน

Page 47: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 48: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 ทใชงานเพอสงซอหรออานหนงสอผานระบบอนเตอรเนต

Page 49: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 50: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 51: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

42

รปท 4.4 แสดงถงขอมลทว ๆ ไปของแอพพลเคชนและ Permission ของ Book Shopping S

• Printer B

พบวาแอพพลเคชนตองการ Permission 14 ประเภทดงรปท 4.5

รปท 4.5 แสดงถงขอมลทว ๆ ไปของแอพพลเคชนและ Permission ของ Printer B

• Ticket R

ในสวนแอพพลเคชน Ticket พบวามการรองขอ Permission จำนวนมาก

ดงรปท 4.6

Page 52: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 53: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

44

รปท 4.8 แสดงถงหนาจอหลงจากเขาสระบบของแอพพลเคชนน ซงถกเรยกโดยตรง

• Book Shopping S

พบแต MainActivity เทานนดงรปท 4.9 ซงเมอตรวจสอบดแลวไมมปญหา

แตอยางใด

รปท 4.9 แสดงจำนวน Activity ทสามารถเขาถงไดโดยตรงของ Book Shopping S

• Printer B

พบ Activity ดงรปท 4.10 พบวา Activity ตาง ๆ สามารถเขาถงได

โดยตรง โดยไมตองพสจนตวตน อยางไรกตาม ตองตรวจสอบอกทวาสามารถเพมระดบความรนแรง

ของชองโหวไดหรอไม

Page 54: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 55: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 56: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 57: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

48

เมอตรวจสอบพบวาไฟล account.xml บนทกรหสผานไวเปนแบบ

Plaintext ดงรปท 4.19

รปท 4.19 แสดงรหสผานในไฟล account.xml ซงถกเกบไวโดยไมมการใช Hash

• Printer B

ไมพบไฟล XML ทคาดวามชองโหว

• Ticket R

พบไฟลดงรปท 4.20 แตไมพบขอมลสำคญ

รปท 4.20 แสดงจำนวนไฟล XML ทงหมด ของ Ticket R ทคาดวาอาจมขอมลสำคญทอาจเปนชอง

โหวได

Page 58: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 แตเมอทำการ

ตรวจสอบแลว ไมพบชองโหวแตอยางใด

Page 59: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 60: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 61: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 แตเมอทำการ

ตรวจสอบแลว ไมพบชองโหวแตอยางใด

Page 62: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 63: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 64: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

พบวามชองโหว

Page 65: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 แตเมอตรวจแลวสอบไมพบความผดปกต

Page 66: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 67: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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

Page 68: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 โดยท

สญลกษณ ✓ หมายถงพบวาเปนชองโหว

Page 69: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 ✓ ✕ ✕ ✕

Page 70: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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 เพมและพฒนาวธการตรวจสอบชองโหวใหม ๆ ในอนาคต

Page 71: เอกพนธ์ สุขเจริญทรัพย์MISS...ความซ บซ อนและย งไม ม เคร องม อช วยเหล อในการทำงานมากน

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.