Network Access Control Software On Layer 2 Devices¹‚ปรแกรม... · Network Access...
Transcript of Network Access Control Software On Layer 2 Devices¹‚ปรแกรม... · Network Access...
โปรแกรมปองกนการเขาถงเครอขายเบองตนในระดบเลเยอรท 2
Network Access Control Software On Layer 2 Devices
เกยรตศกด ภกด
สารนพนธนเปนสวนหนงของการศกษา
หลกสตรวทยาศาสตรมหาบณฑต สาขาวชาวศวกรรมเครอขาย
คณะวทยาการและเทคโนโลยสารสนเทศ
มหาวทยาลยเทคโนโลยมหานคร
ปการศกษา 2558
โปรแกรมปองกนการเขาถงเครอขายเบองตนในระดบเลเยอรท 2
Network Access Control Software On Layer 2 Devices
เกยรตศกด ภกด
สารนพนธนเปนสวนหนงของการศกษา
หลกสตรวทยาศาสตรมหาบณฑต สาขาวชาวศวกรรมเครอขาย
คณะวทยาศาสตรและเทคโนโลยสารสนเทศ
มหาวทยาลยเทคโนโลยมหานคร
ปการศกษา 2558
หวขอ โปรแกรมปองกนการเขาถงเครอขายเบองตนในระดบเลเยอรท 2
ชอนกศกษา เกยรตศกด ภกด
รหสนกศกษา 5617660042
หลกสตร วทยาศาสตรมหาบณฑต สาขาวศวกรรมเครอขาย
ปการศกษา 2558
อาจารยทปรกษา ผศ.ดร.วรพล ลลาเกยรตสกล
บทคดยอ
สารนพนธนเปนการจดทาโปรแกรมขนเพอชวยปองกนการเขาใชงานผานเครอขายทไม
ตองการใหอปกรณของบคคลภายนอกหรอบคคลทไมไดรบอนญาตเขามาใชงานได โดยเฉพาะ
สาหรบเครอขายทใชงานสวตชทไมสามารถทาการ manage ได โดยการทางานจะอาศยการ
ตรวจสอบ MAC Address อปกรณของผทเขาสเครอขายผานทาง ARP Packet หาก MAC address
ไมตรงกบขอมลทถกเกบอยหรอ ไมถกตองโปรแกรมจะทาการสรางและสง ARP Packet ดวย MAC
address ทไมถกตองกลบไปยงอปกรณนน ทาใหอปกรณดงกลาวไมสามารถใชงานผานเครอขายได
I
กตตกรรมประกาศ
สารนพนธนสาเรจไดดวยด โดยสารนพนธนจะไมสามารถเกดขนมาไดหากไมไดร บ
คาปรกษา แนวคด แนวทางในการดาเนนงาน และความชวยเหลอตางๆ ขาพเจาจงอยากขอบคณ
ผคนเหลาน ทานอาจารย ดร.วรพล ลลาเกยรตสกล อาจารยทปรกษาทคอยใหคาแนะนาคาปรกษา
ตางๆ และทสาคญทสดคอสอนใหรจกแรงบนดาลใจทวาขาพเจาสามารถทางานนใหสาเรจทนเวลา
ได ซงเปนแรงบนดาลใจทขาพเจาไมเคยรจกมากอน จากสงทอาจารยใหนขาพเจาคดวามนเปน
ประโยชนทขาพเจาสามารถทจะนาไปใชในชวตตอไปของขาพเจาไดตลอด ขอขอบคณพสทธา จาร
รกษ ทคอยใหคาปรกษาเกยวกบการเขยนโปรแกรมอยเสมอๆขอขอบคณอาจารยบลลากรใน
มหาวทยาลยเทคโนโลยมหานครสาหรบความรทขาพเจาไดรบจากแตละทานเหลานน และ
ขอขอบคณครอบครวของขาพเจาทใหการสนบสนนและใหกาลงใจขาพเจาเสมอมา
เกยรตศกด ภกด
พฤษภาคม 2559
II
สารบญ
หนา
บทคดยอ…………………………………………………………………………………………………I
กตตกรรมประกาศ………………………………………………………………………………………II
สารบญ………………………………………………………………………………………………….III
สารบญ (ตอ) ………………………………………………………………………………………..…IV
สารบญ (ตอ) ………………………………………………………………………………………...…V
สารบญ (ตอ) ……………………………………………………………………………………….….VI
สารบญรป....…………………………………………………………………………………………..VII
สารบญรป (ตอ) ……………………………………………………………………………………...VIII
สารบญรป (ตอ) …………………………………………………………………………….…………IX
สารบญรป (ตอ) ………………………………………………………………………………..………X
สารบญรป (ตอ) …………………………………………………………………………….…………XI
สารบญรป (ตอ) ………………………………………………………………………………………XII
สารบญรป (ตอ) ………………………………………………………………………………...……XIII
สารบญตาราง……………………………………………………………………………………...…XIV
บทท 1 บทนา…………………………………………………………………………………………...1
1.1 ปญหาและแรงจงใจ……………………………………………………………………….1
1.2 วตถประสงค………………………………………………………………………………1
1.3 ขอบเขตการทางาน……………………………………………………………………….2
1.4 ประโยชนทคาดวาจะไดรบ………………………………………………………….....…2
III
สารบญ (ตอ)
หนา
1.5 โครงสรางของสารนพนธ………………………………………………………………….2
บทท 2 พนฐานและทฤษฏทเกยวของ…………………………………………………………………4
2.1 OSI layer……………………………………………………………………………........4
2.1.1 การสงขอมลในรปแบบมาตรฐาน OSI………………………………………..5
2.2 Media Access Control…………………………………………………………………..6
2.2.1 MAC address Format…………………………………………………….….6
2.3 ARP (Address Resolution Protocol) ………………………………………………….7
2.3.1 การทางาน…………………………………………………………………..…7
2.3.2 ARP Packet format…………………………………………………………10
2.3.3 Encapsulation………………………………………………………….…....11
2.3.4 ARP Caching……………………………………………………………..…11
2.4 ARP Spoofing………………………………………………………………………..…13
2.5 JAVA…………………………………………………………………………………..…15
2.6 MySQL……………………………………………………………………………..……15
2.7 JPCAP………………………………………………………………………………..….15
บทท 3 การออกแบบระบบ……………………………………………………………………….…..17
3.1 ภาพรวมและโครงสรางของระบบ……………………………………………………….17
3.2 ขนตอนการทางานของระบบ……………………………………………………………21
3.3 การออกแบบการทางานในสวนยอยของระบบ…………………………………………22
IV
สารบญ (ตอ)
หนา
3.3.1 สวน Service…………………………………………………………………22
3.3.1.1 การตรวจสอบฐานขอมล………………………………………….22
3.3.1.2 การดกจบ ARP Packet……………………………………….…24
3.3.1.3 การสง ARP Packet…………………………………………...…27
3.3.2 สวน GUI……………………………………………………………………..38
3.3.2.1 การแสดงผล Network Interface Card…………………….……38
3.3.2.2 การแสดงผลขอมลอปกรณในเครอขาย……………………….…39
3.3.2.3 การเปลยนสทธการใชงานของอปกรณในฐานขอมล……………40
3.4 โครงสางฐานขอมล………………………………………………………………………42
บทท 4 การทดลอง……………………………………………………………………………………43
4.1 โครงสรางของระบบทใชในการทดลอง…………………………………………………43
4.1.1 เครองมอทใชในการทดลอง…………………………………………….……43
4.2 การ Login เขาใชงาน……………………………………………………………………44
4.2.1 การ login ดวย user และ password ทถกตอง……………………….……44
4.2.2 การ login ดวย user และ password ทถกตอง………………………….…45
4.3 การเลอก Network Interface Card…………………………………………………….46
4.4 การสง ARP Packet …………………………………………………………………….47
4.4.1 การทดสอบการปองกนการเขาใชงานเครอขายดวย……………………..…47
4.4.1.1 การสง ARP reply (unicast) ………………………………….…47
V
สารบญ (ตอ)
หนา
4.4.1.2 การสง ARP reply (broadcast).…………………………………49
4.4.1.3 การสง ARP request (unicast).…………………………………52
4.4.1.4 การสง ARP request (broadcast).…………………………...…54
4.4.2 การตรวจสอบเครอขายในลกษณะ host-to-gateway………………………57
4.4.3 การตรวจสอบเครอขายในลกษณะ host-to-host……………………………59
4.4.4 การปองกนการเขาใชงานเครอขายดวย ARP reply………………..………63
4.5 การดกจบ ARP Packet…………………………………………………………………65
4.5.1 การดกจบ ARP reply……………………………………………………..…65
4.5.2 การดกจบ ARP request……………………………………………….……66
บทท 5 สรปผลการทดลอง……………………………………………………………………………69
5.1 ผลการดาเนนการโครงการ………………………………………………………...……69
5.2 ปญหาและอปสรรค………………………………………………………………………69
5.3 แนวทางในการพฒนา…………………………………………………………………...70
เอกสารอางอง………………………………………………………………………………………….71
ภาคผนวก ก…………………………………………………………………………………………...72
1. การตดตงโปรแกรม………………………………………………………………………ก 1
2. ขนตอนการใชงานโปรแกรม....……………………………………………………….....ก 2
VI
สารบญรป
หนา
รปท 2.1 OSI Layer……………………………………………………………………………………4
รปท 2.2 การแลกเปลยนขอมลของ OSI Model………………………………………………………5
รปท 2.3 MAC address Datagram…………………………………………………………...………6
รปท 2.4 การทางานของ ARP…………………………………………………………………………7
รปท 2.5 ตวอยางการสง ARP request………………………………………………………….……8
รปท 2.6 ตวอยางการสง ARP reply………………………………………………………………..…9
รปท 2.7 ARP Packet format……………………………………………………………………..…10
รปท 2.8 การ Encapsulation ของ ARP Packet……………………………………………………11
รปท 2.9 ตวอยาง ARP Table บนระบบปฎบตงาน Windows……………………………..………12
รปท 2.10 ARP request กบการทางานของ ARP Poison…………………………………………13
รปท 2.11 ARP reply กบการทางานของ ARP Poison………………………………………….…14
รปท 3.1 ภาพโครงสรางจาลองของระบบ……………………………………………………………17
รปท 3.2 Model การทางาน………………………………………………………………………..…18
รปท 3.3 การทางานแตละสวน Model………………………………………………………….……19
รปท 3.4 การทางานของระบบ……………………………………………………………………..…21
รปท 3.5 Flow Chart การตรวจสอบและการสรางฐานขอมล……………………………….………23
รปท 3.6 Flow Chart การตรวจสอบและการสราง table……………………………………………24
รปท 3.7 ARP Packet format………………………………………………………………..………25
รปท 3.8 Flow chart การดกจบ ARP packet………………………………………………….……26
VII
สารบญรป (ตอ)
หนา
รปท 3.9 การเตรยม ARP packet ทจะทาการสงโดยการอานคาจากตาราง ………………………28
รปท 3.10 Flow chart การทางานในสวนการปองกนการเขาถงเครอขาย………………………....29
รปท 3.11 Model การทางานสาหรบตรวจสอบอปกรณในเครอขาย……………………………..…30
รปท 3.12 Diagram การสง ARP request เพอตรวจสอบอปกรณในกรณ….…...………..……….31
มการใชของอปกรณอย
รปท 3.13 Flow chart การทางานการตรวจสอบเพอคนหาอปกรณ ………………………………..32
ทมการใชงานกอนการเปดโปรแกรม
รปท 3.14 Diagram การสง ARP request ในกรณการตรวจสอบเพอ……………………………..33
update สถานะเวลาของอปกรณ
รปท 3.15 Flow chart การทางานการตรวจสอบเพอ update สถานะเวลา………………………...34
ของอปกรณ
รปท 3.16 การทางานของการตรวจสอบการสอสารระหวางอปกรณ (1) …………………………..35
รปท 3.17 การทางานของการตรวจสอบการสอสารระหวางอปกรณ (2) …………………………..36
รปท 3.18 Flow chart การทางานของการตรวจสอบการสอสารระหวางอปกรณ....…….…………37
รปท 3.19 Flow chart การแสดงผล Network Interface Card……………………………………..38
รปท 3.20 Flow chart การแสดงผลขอมลอปกรณในเครอขาย……………………………………..39
รปท 3.21 Diagram การทางานการเปลยนสทธการใชงานของอปกรณ……………………………40
รปท 3.22 Flow chart การทางานการเปลยนสทธการใชงานของอปกรณ…………………..……..41
รปท 4.1 โครงสรางของระบบทใชในการทดลอง…………………………………………………….43
VIII
สารบญรป (ตอ)
หนา
รปท 4.2 หนาตางการ login เขาสระบบ……………………………………………………………..44
รปท 4.3 ผลของการ login ถกตอง…………………………………………………………………..45
รปท 4.4 หนาตางแจงเตอนกรณ login ดวย user และ password ไมถกตอง……………………..45
รปท 4.5 การเลอก Network Interface Card………………………………………………………..46
รปท 4.6 ผลการตรวจสอบ Network Interface Card ผาน cmd……………………………………46
รปท 4.7 รปแบบ Parameter ของ ARP reply (unicast) …………………………………………..47
รปท 4.8 การดกจบ ARP reply (unicast) ท Computer A…………………………………………47
รปท 4.9 การดกจบ ARP reply (unicast) ท Computer B……………………………………..…..48
รปท 4.10 ผลจากการถกสง ARP (unicast) ดวย MAC address ทไมถกตอง………………..…..48
รปท 4.11 ARP cache table ท Computer B กรณ ARP reply (unicast)………………………...49
รปท 4.12 รปแบบ Parameter ของ ARP reply (broadcast)………………………………………49
รปท 4.13 การดกจบ ARP reply (broadcast) ท Computer A………………………………….....50
รปท 4.14 การดกจบ ARP reply (broadcast) ท Computer B………………………………….....50
รปท 4.15 ผลจากการถกสง ARP reply (broadcast) ดวย MAC address ทไมถกตอง………….51
รปท 4.16 ARP cache table ท Computer B กรณ ARP reply (broadcast)……………………..51
รปท 4.17 รปแบบ Parameter ของ ARP request (unicast)………………………………………52
รปท 4.18 การดกจบ ARP request (unicast) ท Computer A…………………………………….52
รปท 4.19 การดกจบ ARP request (unicast) ท Computer B…………………………………….53
รปท 4.20 ผลจากการถกสง ARP request (unicast) ดวย MAC address ทไมถกตอง………….53
IX
สารบญรป (ตอ)
หนา
รปท 4.21 ARP cache table ท Computer B กรณ ARP request (unicast)……………………..54
รปท 4.22 รปแบบ Parameter ของ ARP request (broadcast)…………………………………...54
รปท 4.23 การดกจบ ARP request (broadcast) ท Computer A…………………………………55
รปท 4.24 การดบจบ ARP request (broadcast) ท Computer B…………………………………55
รปท 4.25 ผลจากการถกสง ARP request (broadcast) ดวย MAC address ทไมถกตอง……....56
รปท 4.26 ARP cache table ท Computer B กรณ ARP request (broadcast)………………….56
รปท 4.27 ป มกด Scan host to gateway…………………………………………………………...57
รปท 4.28 รปแบบ Parameter ของ ARP request ในการ scan network host to gateway…….57
รปท 4.29 การดกจบ ARP packet กรณตรงกบ Computer B……………………………………..58
รปท 4.30 การดกจบ ARP packet กรณท Computer B ตอบกลบ………………………………..58
รปท 4.31 ผลการดกจบ ARP packet หลงจากการ scan ทตวโปรแกรม………………………....59
รปท 4.32 ป ม Scan host to host……………………………………………………………………60
รปท 4.33 รปแบบ Parameter ของ ARP request ในการ scan network host to host.………....60
รปท 4.34 ผลการดกจบ ARP packet ท Computer A สงไปยง Computer B…………………….61
รปท 4.35 ผลการดกจบ ARP packet ท Computer B รบไดจาก Computer A…………………..61
รปท 4.36 ผลการดกจบ ARP packet ท Computer B สงออกมาหลงรบ ARP packet…………..62
จาก Computer A
รปท 4.37 ผลการดกจบ ARP packet ท Computer A สามารถดกจบ ARP packet…………......62
จาก Computer B
X
สารบญรป (ตอ)
หนา
รปท 4.38 ผลของการดกจบบนสวนแสดงผลของตวโปรแกรม……………………………………..63
รปท 4.39 ป มกดสาหรบเรมการปองกนเครอขาย…………………………………………………...63
รปท 4.40 การดกจบ ARP packet ท Computer A สงออกมา……………………………….........64
รปท 4.41 การดกจบ ARP packet ท Computer B…………………………………………………64
รปท 4.42 ผลของ ARP cache table ท Computer B………………………………………………65
รปท 4.43 ผลของโปรแกรมกรณยงไมไดทาการดกจบ ARP reply…………………………….…..65
รปท 4.44 ผลการดกจบ ARP reply ทมาจาก Computer B………………………………………..66
รปท 4.45 ผลของโปรแกรมกรณเมอมการดกจบ ARP reply……………………………………....66
รปท 4.46 ผลของโปรแกรมกรณยงไมไดทาการดกจบ ARP request…………………………......67
รปท 4.47 ผลการดกจบ ARP request ทมาจาก Computer B….…………………………………67
รปท 4.48 ผลของโปรแกรมกรณเมอสามารถดกจบ ARP request ได…………………………….68
รปท ก-1 ขนตอนการตดตง MySQL (1)……………………………………………………………ก-2
รปท ก-2 ขนตอนการตดตง MySQL (2)……………………………………………………………ก-3
รปท ก-3 ขนตอนการตดตง MySQL (3)……………………………………………………………ก-3
รปท ก-4 ขนตอนการตดตง MySQL (4)……………………………………………………………ก-4
รปท ก-5 ขนตอนการตดตง MySQL (5)..……………………………………………………….....ก-4
รปท ก-6 ขนตอนการตดตง MySQL (6)……………………………………………………………ก-5
รปท ก-7 ขนตอนการตดตง MySQL (7)……………………………………………………………ก-5
รปท ก-8 ขนตอนการตดตง MySQL (8)……………………………………………………………ก-6
XI
สารบญรป (ตอ)
หนา
รปท ก-9 ขนตอนการตดตง MySQL (9)……………………………………………………………ก-6
รปท ก-10 ขนตอนการตดตง MySQL (10)…………………………………………………………ก-7
รปท ก-11 ขนตอนการตดตง MySQL (11)…………………………………………………………ก-7
รปท ก-12 ขนตอนการตดตง MySQL (12)…………………………………………………………ก-8
รปท ก-13 ขนตอนการตดตง MySQL (13)…………………………………………………………ก-8
รปท ก-14 ขนตอนการตดตง WinPcap (1)………………………………………………………...ก-9
รปท ก-15 ขนตอนการตดตง WinPcap (2)………………………………………………………...ก-9
รปท ก-16 ขนตอนการตดตง WinPcap (3)……………………………………………………….ก-10
รปท ก-17 ขนตอนการตดตง WinPcap (4)………………………………………………....…....ก-10
รปท ก-18 ขนตอนการตดตง Java Runtime Environment (JRE) (1)……………………........ก-11
รปท ก-19 ขนตอนการตดตง Java Runtime Environment (JRE) (2)……………………........ก-11
รปท ก-20 ขนตอนการตดตง Java Runtime Environment (JRE) (3)………………………….ก-12
รปท ก-21 ขนตอนการตดตง Java Runtime Environment (JRE) (4)………………………….ก-12
รปท ก-22 ขนตอนการตดตง Java Runtime Environment (JRE) (5)……………………........ก-13
รปท ก-23 ขนตอนการตดตง Java Runtime Environment (JRE) (6)………………………….ก-13
รปท ก-24 ขนตอนการตดตง Jpcap library (1)…………………………………………………..ก-14
รปท ก-25 ขนตอนการตดตง Jpcap library (2)…………………………………………………..ก-14
รปท ก-26 ขนตอนการตดตง Jpcap library (3)…………………………………………………..ก-15
รปท ก-27 ขนตอนการใชงานโปรแกรม (1)……………………………………………………….ก-15
XII
สารบญรป (ตอ)
หนา
รปท ก-28 ขนตอนการใชงานโปรแกรม (2)……………………………………………………….ก-16
รปท ก-29 ขนตอนการใชงานโปรแกรม (3)……………………………………………………….ก-16
รปท ก-30 ขนตอนการใชงานโปรแกรม (4)……………………………………………………….ก-17
รปท ก-31 ขนตอนการใชงานโปรแกรม (5)……………………………………………………….ก-17
รปท ก-32 ขนตอนการใชงานโปรแกรม (6)……………………………………………………….ก-18
รปท ก-33 ขนตอนการใชงานโปรแกรม (7)……………………………………………………….ก-19
รปท ก-34 ขนตอนการใชงานโปรแกรม (8)……………………………………………………….ก-19
รปท ก-35 ขนตอนการใชงานโปรแกรม (9)……………………………………………………….ก-20
รปท ก-36 ขนตอนการใชงานโปรแกรม (10)…………………………………………………......ก-20
รปท ก-37 ขนตอนการใชงานโปรแกรม (11)…………………………………………………......ก-21
รปท ก-38 ขนตอนการใชงานโปรแกรม (12)……………………………………………………..ก-22
รปท ก-39 ขนตอนการใชงานโปรแกรม (13)……………………………………………………..ก-22
รปท ก-40 ขนตอนการใชงานโปรแกรม (14)……………………………………………………..ก-23
รปท ก-41 ขนตอนการใชงานโปรแกรม (15)……………………………………………………..ก-23
รปท ก-42 ขนตอนการใชงานโปรแกรม (16)……………………………………………………..ก-24
XIII
สารบญตาราง
หนา
ตารางท 3.1 รายละเอยดตารางสวนทอนญาตในการเขาถง ………………………………………42
ตารางท 3.2 รายละเอยดตารางสวนทไมอนญาตในการเขาถง………………………………….…42
XIV
บทท 1
บทนา
1.1 ปญหาและแรงจงใจ
องคกรหรอภาคครวเรอนสวนใหญในปจจบนจะมอปกรณทขาดไมไดเลย คอ
คอมพวเตอรและอปกรณสาหรบเชอมตอผานเครอขาย ในการสอสารรวมกนระหวางอปกรณ
สอสารผานทางเครอขายไมวาจะเปนทงสวนเครอภายในและภายนอก ขอมลทใชสงผาน
เครอขายนนควรถอวาเปนความลบควรมเพยงผทไดรบสทธหรอบคคลภายในเทานนทจะ
สามารถเขาถงขอมลได หากมผประสงครายตองการนาขอมลทเปนความลบและมความสาคญ
ไปเผยแพรหรอกระทาการตางๆทไมถกตอง อาจจะสามารถทาใหเกดผลเสยทงในสวนของ
องคกรหรอตวบคคลไดไมมากกนอย
การสอสารผานเครอขายในปจจบนยงมชองโหวอย การโจมตนนมไดหลากหลาย
รปแบบการปองกนกเชนกน โดยเฉพาะความปลอดภยในระดบเลเยอร ท 2 ทการสอสารใน
ปจจบนสวนใหญมรปแบบจาก OSI Model ซงหากจะมการสอสารจาเปนจะตองผานเลเยอรน
ในระดบเลเยอร 2 อปกรณทกอปกรณจะมคาหนงทใชในการระบตวตนของอปกรณนนเรยกวา
MAC Address (Media Access Control Address) และ ยงม protocol อกตวหนงทใชสาหรบ
แลกเปลยนคา MAC address กบ IP address เรยกวา ARP หรอเรยกอกแบบวา Address
Resolution Protocol ถาหากอปกรณตวหนงตองการทจะสอสารไปยงอปกรณอกตวหนง
อปกรณทงสองตองรจก MAC Address ของกนและกนกอน หากอปกรณตวใดตวหนงไมทราบ
วาปลายทางมคา MAC address เปนอะไรจะใช ARP ในการทาการแลกเปลยน MAC address
กน หากมผประสงครายตองการทาการโจมตจะทาการดกจบ packet ของ ARP ทอาจจะเปน
ลกษณะในการสงทงแบบ unicast และ broadcast แลวทาการสง ARP packet กลบไปยง
เปาหมายดวย MAC address ปลอมหรอ MAC Address ของผประสงครายเอง เปนตน โดยสาร
นพนธนเลงเหนวาการกระทาเชนนเปนไดทงขอดและขอเสย สามารถทจะนามาประยกตใชใน
มมมองการปองกนการเขาถงเครอขายเพอเพมความปลอดภยใหกบระบบไดในระดบหนง
1.2 วตถประสงค
1.2.2 เพอเปนตวชวยสาหรบเพมความปลอดภยในการเขาถงของแตละอปกรณ
ในเครอขายสาหรบกรณทมใชงาน unmanaged สวตซ
1.2.3 เพอชวยในการประเมนความเสยงหรอเปนตวชวยในการตรวจสอบอปกรณ
ทมการใชงานผานเครอขายในขณะนน
1.2.4 เพอเปนตวชวยในการจดการบรหารอปกรณทใชงานผานเครอขาย
1
1.3 ขอบเขตการทางาน
1.3.1 การดกจบ ARP packet
- สามารถทาการดกจบ ARP request ทมการ broadcast จากของ
อปกรณภายในเครอขาย
- สามารถทาการดบจบ ARP reply ของอปกรณของอปกรณใน
เครอขาย เมอมการสงมายงอปกรณทใชงานโปรแกรมปองกนการ
เขาถงเครอขายเบองตนในระดบเลเยอรท 2
1.3.2 การเขยน,การอานขอมล และการสง ARP packet
- สามารถทาการบนทกขอมล เชน MAC address, IP address จาก
ARP packet ทดกจบไดไปยงฐานขอมลทจดเตรยมไว
- สามารถทาการอานคาทถกบนทกไวจากฐานขอมลมาใชงานในการ
สง packet และแสดงผล
- สามารถทาการปองกนการเขาถงเครอขายได
- สามารถทาการเปลยนสทธในการอนญาตในการเขาถงเครอขาย
ของผใชงานได
1.3.3 การแสดงผล
- สามารถทาการแสดงผลเวลาทดกจบ ARP packet ได
- สามารถทาการแสดงผล MAC address, IP address ของอปกรณ
ทใชงานอยในเครอขาย
- สามารถทาการแสดงผลแยกในสวนของ ผทไดรบอนญาต และผท
ไมไดรบอนญาตในการใชงานผานเครอขาย
- สามารถทาการเปลยนสทธในการอนญาตในการเขาถงเครอขาย
ของผใชงานไดโดยผาน GUI ได
1.4 ประโยชนของสารนพนธทคาดวาจะไดรบ
1.4.1 เปนสวนหนงทชวยเพมความปลอดภยใหกบเครอขายในระดบหนง
1.4.2 เปนโปรแกรมทงายตอการใขงาน
1.5 โครงสรางของสารนพนธ
สารนพนธฉบบนถกแบงออกทงหมดเปน 5 บท ดวยกน โดยรายะเอยดในแตละ
บทสามารถสรปไดดงน
2
บทท 1 บทนา นาเสนอในสวนของแรงจงใจและปญหารวมถงวตถประสงคและ
ขอบเขตการทางานเพอใชเปนบรรทดฐานหรอขอบเขตการทาสารนพนธ
บทท 2 ทฤษฎทเกยวของ นาเสนอในสวนของทฤษฎและพนฐานทเกยวของใน
สารนพนธ ดงเชนโครงสรางของ ARP packet และการโจมตในลกษณะ ARP spoofing
ไวใชเพอเปนองคความรในการอางองหรอทาความเขาใจยงขน
บทท 3 การออกแบบระบบ ในสวนนจะนาเสนอการอธบายโครงสรางการ
ทางานของตวโปรแกรมวามการการทางานอยางไรบาง โดยจะใชเปนการอธบายทงใน
ภาพรวมและเจาะจงในแตละสวนการทางาน
บทท 4 การทดลอง ในสวนนจะนาเสนอผลของการดาเนนการจากการทดลอง
โดยจะแสดงผลทไดจากการทดลองของการทางานของโปรแกรมแตละสวน
บทท 5 สรปผลการดาเนนงาน เปนสวนสรปการดาเนนการของสารนพนธ
ปญหาทเกดขนรวมถงแนวทางในการพฒนาในอนาตค
3
บทท 2
พนฐานและทฤษฎทเกยวของ
2.1 OSI layer
[1] Behrouz A. Forouzan OSI layer ห ร อ Open System Interconnection เ ป น
มาตรฐานหรอ model ตนแบบทถกใชเปนตนแบบสาหรบการสอสารผายเครอขาย หากในการ
ทาความเขาใจในการอางองถง OSI model จะทาใหมองเหนภาพไดมากกวา โดยในปจจบน
model ทจะพบเหนไดบอยทสดจะเปน model ทชอวา TCP/IP ซงกมพนฐานมาจาก OSI model
เชนกน OSI model จะแบงออกไดเปน 7 เลเยอรดวยกน ซง แสดงดงรปท 2.1 ในแตละเลเยอร
ถกกาหนดขนมาโดยมบทบาทและหนาททแตกตางกน การทางานแตละชนเลเยอรกเปน
เชนเดยวกน การแยกการทางานแตละเลเยอรเนองมาจากตองการกาหนดการสอสารใหเปนไป
ในมาตรฐานหรอทศทางเดยวกน หากปราศจากการจดหรอกาหนดมาตรฐานในแตละเลเยอร
การสอสารจะเปนเรองทมความสบสนมากผผลตอปกรณแตละรายจะทาการสรางอปกรณทม
มาตรฐานของตวเองเทานนหากเมอนาอปกรณสองอปกรณทถกผลตมาจากผผลตทแตกตางกน
มาทาการเชอมตอหรอนามาใชงานรวมกนผลทไดจะทาใหอปกรณทงสองดงกลาวไมสามารถ
สอสารกนไดเนองจากความไมตรงกนของมาตรฐานการสอสารนนเอง
รปท 2.1 OSI Layer
ทมา : [1] Behrouz A. Forouzan
4
2.1.1 การสงขอมลในรปแบบมาตรฐานของ OSI
[1] Behrouz A. Forouzan รปท 2.2 แสดงใหเหนถงขนตอนทถกสงจากผสง
ขอมลไปยงผรบขอมลการบวนการสงขอมลเรมตนจากทผสงตองการทจะสงขอมลโดย
จะสงขอมลลงไปยง application layer ซงชน application layer จะทาการเพม header
ไปกบขอมลนนแลวทาการสงไปยง layer ดานลางตอไป โดยชนลางไมวาจะเปน
presentation, session, transport, network, data link และ physical layer จะมองวา
ขอมลทมาจาก layer ดานบนเปนกลมของขอมลโดยไมสนใจวา header ของ layer บน
เปนอะไร จากนนจะทาการเพม header ของแตละชนแลวสงไปยง layer ทอยช นลางสด
ซงเปนจะแปลงขอมลทงหมดทรบมาใหกลายเปนกระแสบต และทาการสงผานตวกลาง
ไปยงผรบจากนนทางผรบเรมไดรบขอมลจะเรมกระบวนการรบขอมลโดยเรมตนจะรบ
ขอมลเขามาแบบกระแสบตผานตวกลางแลวสงขอมลทไดรบมาขนไปยง layer บนเมอ
layer บนไดรบขอมล layer เหลานจะอาศยขอมลสวนของ header เพอทาความเขาใจ
กบลกษณะของขอมลทรบมารวมทงอาจจะมการตรวจสอบความถกตองดวย หลงจากท
เขาใจกบลกษณะของขอมลทไดรบมาแลว layer นนกจะทาการลบขอมลสวน header
ในสวนของ layer ตวเองออกแลวทาการสงขอมลทเหลอขนไปยง layer ดานบน
ตามลาดบจนกระทงไปถงชน layer บนสดจนกลายเปนการแสดงผลขอมลใหผรบ
รปท 2.2 การแลกเปลยนขอมลของ OSI Model
ทมา : [1] Behrouz A. Forouzan
5
2.2 Media Access Control
MAC address หรอ media access control address คอ หมายเลขทถกใชในการ
กาหนดหรอระบตวตนของอปกรณในระดบ hardware เชน Network Interface Card (NIC) เพอ
ใชในการสอสาร โดยคา MAC address นจะมคาแตละอปกรณไมเหมอนและไมซาคากน เรา
อาจจะเรยกคา MAC address อกอยางไดวา Physical address โดยปกต MAC address จะม
ขนาดเทากบ 6 ไบต หรอ 48 บต นยมเขยนกนในรปแบบของเลขฐานสบหก เชน 10-0B-A9-
E7-17-E9 เปนตน
2.2.1 MAC address Format
[5] Wikipedia (2016) กลาววาโดยทวไป MAC address จะมขนาด 6 ไบต หรอ
48 บต จะทาการแบงออกทละ 2 ไบตเพอใหสามารถอานคาจากสายตาไดงายดายมาก
ขน โดยอาจจะใช อกขระ เชน dash(-) , semi colon(:) เปนตวเลกหรอตวใหญขนอยกบ
แตละ platform ทใชงาน แตโดยความจรง MAC address จะถกแบงออกเปน 2 สวน ใน
แตละสวนจะมขนาดเทากบ 3 ไบต หรอ 24 บต ดงแสดงดงรปท 2.3
รปท 2.3 MAC address Datagram
ทมา : [5] Wikipedia (2016)
จากรปท 2.3 จะแบง MAC address ของเปน 2 สวน คอ Organizationally
Unique Identifier (OUI) กบ Network Interface Controller (NIC) โดยแตละสวนจะม
ความหมายดงน
Organizationally Unique Identifier (OUI) คอ address 3 ไบตแรกทถก
กาหนดโดยหนวยงาน IEEE-SA เพอจดสรรใหกบผผลตใชในการอางองการผลตเพอ
ปองกนการซากน
6
Network Interface Controller (NIC) คอ address 3 ไบตหลงจะถกกาหนดโดย
ผผลตเองหลงจากทไดรบคา 3 ไบตแรกมาเรยบรอยแลว
2.3 ARP (Address Resolution Protocol)
[2] Charles M. Kozierok กอนทอปกรณในเครอขายสามารถทจะสง Packet จากตน
ทางไปยงปลายทาง ผสงจาเปนตองรจก hop ทอยตดกนทถกใชเพอทจะสามารถสงไปขอมลไป
ยงปลายทางได โดยปกตการสงขอมลดวย IP จะอาศยการตรวจสอบเสนทางผานทาง routing
table เพอทจะหา IP address ของ hop ตอไป แตเ นองจากการสงขอมลจาเปนตองถก
encapsulation ผานทาง layer ท 2 ใน OSI model จงเปนทจะตองรจก Physical address หรอ
MAC address ของ hop ตอไป ซง protocol ทถกใชในการคนหา MAC address ของ hop
ตอไปนนคอ ARP นนเอง
2.3.1 การทางาน
IPNetwork layer
ARP
Physical address
Logicaladdress
รปท 2.4 การทางานของ ARP
[2] Charles M. Kozierok การสอสารกนระหวาง hop ตอ hop นนจาเปนตอง
รจกกนโดยใชคา Physical address หรอเรยกอกแบบวา MAC address ซงการเชอมตอ
ค ว า มสมพน ธ ข อ ง Logical address (IP address) กบ Physical address (MAC
address) จะใช protocol ทชอวา ARP หรอเรยกอกแบบวา Address Resolution
Protocol เปนตวจดการ ถามองอกนยหนง ARP จะทาหนาทในการคนหาหมายเลข
MAC address ของหมายเลข IP ตองตองการจะสงขอมลไปหรอทตองการทราบโดยผ
สงจะทาการ broadcast packet ทชอ ARP request ทภายในจะประกอบไปดวย MAC
7
address ของผสงเองและหมายเลข IP ทตองการทราบ MAC address ไปยงทกผรบทก
คนทอยในเครอขายเดยวกน ถาหากผรบพบวามหมายเลย IP ตรงกบใน ARP request
ผรบกจะทาบนทก MAC address ของผสง และทาการสง ARP reply แบบ unicast
กลบไปยงผสง ARP request จากนนเครองตนทางและปลายกจะรจกกนและเครองตน
ทางและปลายทางทงสองเครองจะสามารถสอสารกนไดตอไป
...
Computer A
Computer B Computer C
Computer DMAC address - AA:AA:AA:AA:AA:AA
MAC address - BB:BB:BB:BB:BB:BB MAC address - CC:CC:CC:CC:CC:CC
MAC address - DD:DD:DD:DD:DD:DD
ARP Request ARP Request
ARP
Requ
est
IP address - 192.168.1.1
IP address - 192.168.1.2 IP address - 192.168.1.3
IP address - 192.168.1.4
MAC address - EE:EE:EE:EE:EE:EEIP address - 192.168.1.254
Subnet mask - 255.255.255.0
รปท 2.5 ตวอยางการสง ARP request
ถาหาก Computer A ตองการททราบ MAC address ของ IP หมายเลข
192.168.1.4 หรอ Computer D มนจะสง ARP request แบบ broadcast ออกไป โดย
ใน ARP request จะประกอบไปดวย IP address, MAC address ของ Computer A
และ IP ของอปกรณทตองการทราบเลข MAC address เนองจาก Computer A ไม
ทราบหมายเลข MAC address ของ IP 192.168.1.4 จงจาเปนตองทาการสง ARP
request ไปเปนแบบ broadcast ทงเครอขาย ดงแสดงในรปท 2.5 จากนนจะทาการรอ
ทางหมายเลข IP 192.168.1.4 หรอ Computer D ตอบกลบมาในรปแบบของ ARP
reply
8
...
Computer A
Computer B Computer C
Computer D
MAC address - AA:AA:AA:AA:AA:AA
MAC address - BB:BB:BB:BB:BB:BB MAC address - CC:CC:CC:CC:CC:CC
MAC address - DD:DD:DD:DD:DD:DD
ARP Reply ARP Reply
IP address - 192.168.1.1
IP address - 192.168.1.2 IP address - 192.168.1.3
IP address - 192.168.1.4
MAC address - EE:EE:EE:EE:EE:EEIP address - 192.168.1.254
Subnet mask - 255.255.255.0
รปท 2.6 ตวอยางการสง ARP reply
เมอ Computer D ไดรบ ARP request กจะทาการตรวจสอบขอมลภายใน ARP
request วาสวนของ field ของ TPA (Target protocol address) ซงจะกลาวในหวขอ
ถดไป มหมายเลข IP ตรงกบตวของมนเองหรอไม หากไมตรงกน Computer จะทาการ
drop packet ทง แตถาหากวาตรงกน Computer D จะทาบนทกคาของ field SHD
(Sender hardware address) กบ SPA (Sender protocol address) เกบไวใน ARP
table ทของตวเอง เพอใชในกรณ Computer D ตองการทจะสอสารกบ Computer A จะ
ไดไมตองทาการสง ARP request ไปถามอกครงหนง จากนน Computer D จะทาการ
สง ARP reply โดยจะใสค า MAC address ของตว เองไปกบ field THA (Target
hardware address) ไปยง Computer A จากนน Computer A กบ Computer D กจะ
สามารถสอสารกนไดตอไป ซงการสง ARP reply ของ Computer D แสดงอยดงรปท
2.6
9
2.3.2 ARP Packet format
รปท 2.7 ARP Packet format
ทมา : [1] Behrouz A. Forouzan
- Hardware type คอ field ทบอกมาตรฐานชนดของ hardware ทใชในการสง
ขอความ ARP บนเครอขายมขนาด 16 บต หรอ 2 ไบต ซงในทนใชชนดของ
hardware คอ Ethernet ซงมคาเทากบ 1
- Protocol type คอ field ทใชกาหนดวาชนดของ address ทใชสอสารในชน layer ท
3 เปนชนดใดในทนจะใช IPv4 ในการสอสารซงจะมคาเทากบ 2048 หรอ 0x0800
โดยขนาดของ field นมขนาด 16 บต หรอ 2 ไบท
- Hardware length คอ field ทใชในการกาหนดขนาดของ hardware address หรอ
MAC address ซงมคาเทากบ 6 ไบต โดยขนาดของ field นมขนาด 8 บต หรอ 1
ไบต
- Protocol length คอ field ทใชในการกาหนดขนาดของ Protocol address ซงจะ
กาหนดตาม protocol ทใชใน field Protocol type ในทนคอ IPv4 จะมคาเทากบ 4
ไบต โดยใน field มขนาดเทากบ 1 ไบต
- Operation (Opcode) คอ field ทเปนตวกาหนดชนดของ ARP เชน ARP
request(1), ARP reply(2) ขนาดของ field นมขนาด 2 ไบต
10
- Sender hardware address (SHA) คอ field ทใชบอกขนาดของ physical address
ของผสงวามขนาดเปนเทาใด ซงในทนเปนคา MAC address ซงมคาเทากบ 6
ไบต
- Sender protocol address (SPA) คอ field ทใชบอกขนาดของ logical address
ของผสงวามขนาดเทาใด ซงในทนเปนคา IP address ซงมคาเทากบ 4 ไบต
- Target hardware address (THA) คอ field ทใชบอกขนาดของ physical address
ของผรบวามขนาดเปนเทาใด ซงในทนเปนคา MAC address ซงมคาเทากบ 6
ไบต
- Target protocol address (TPA) คอ field ทใชบอกขนาดของ logical address
ของผรบวามขนาดเทาใด ซงในทนเปนคา IP address ซงมคาเทากบ 4 ไบต
2.3.3 Encapsulation
[1] Behrouz A. Forouzan ARP packet จะถก encapsulation หรอ ถกหอหม
โดยตรงใน data link frame ซงตวอยาง frame ในรปแบบทถกหอหมใน Ethernet
frame แสดงในรปท 2.8 ซงใน field Type ของ Ethernet frame จะเปนตวกาหนดวา
data ใน frame ทมอยเปน ARP packet โดยปกตหาก data ท encapsulation เปน
ARP packet คาใน field Type จะมคาเทากบ 0x0806
รปท 2.8 การ Encapsulation ของ ARP Packet
ทมา : [1] Behrouz A. Forouzan
2.3.4 ARP Caching
[2] Charles M. Kozierok ดงทไดกลาวมาในหวขอกอนหนาน ARP ทาหนาท
ในการเสาะหาและการแลกเปลยนระหวาง IP กบ MAC address ในการจดเกบ
คอมพวเตอรหรออปกรณจะทาการจดเกบไวเปนตารางหรอเชน IP-to-Physical
11
address translation tables ใน Windows OS ดงรป 2.9 ซงวธทใชในการจดเกบจะแบง
ออกเปน 2 วธดงน
รปท 2.9 ตวอยาง ARP Table บนระบบปฎบตงาน Windows
2.3.4.1 Static Cache Entries
เปนการทาการเพมการจบคระหวาง IP address กบ MAC address
โดยวธ manual เขาไปยง ARP table ภายในหนวยความจาชวคราว โดยจะทา
การเกบแบบถาวรจะไมมการเปลยนแมจะม ARP reply จากเครอขายมากตาม
2.3.4.2 Dynamic ARP Cache Entries
วธน IP address กบ MAC address จะถกจบคกนดวย software โดย
อตโนมต คาทงสองจะถกจดเกบไวใน ARP table แตการเกบนนจะเปนการเกบ
แบบชวคราวเปนชวงเวลาหากไมมการใชแลกเปลยน ARP คา IP address กบ
MAC address ทถกเกบไวกอนหนานนจะถกลบออกไป
12
2.4 ARP Spoofing
เปนชอเรยกการโจมตชนดหนง โดยมลกษณะในการโจมตหลกๆ 2 ลกษณะ คอลกษณะ
การโจมตเพอตองการทา Denial of service และ การโจมตเพอตองการทา Man in the middle
การโจมตจะเปนการโจมตโดยอาศย protocol ARP ซงถอเปนจดออนจดหนงทใชในการโจมต
เนองจากอปกรณทมการสอสารกนจะมการสง ARP packet เพอแลกเปลยน MAC address
หรอ IP address กนอยเสมอ ARP ถอเปน protocol ทมความเชอถอและ ไมมการตรวจสอบ
ตวตนใดๆในการสงขอมล อกทงการสงขอมลนนสามารถสงโดยใครกได หากมผประสงคราย
ตองการโจมตสามารถทาไดในเครอขายเดยวกน
2.4.1 หลกการทางาน
[4] ธวชชย ชมศร ในสวนนจะทาการอธบายลกษณะการโจมตเพอตองการทา
Denial of service หลกการทางานของ ARP Spoofing จะเรมจากการทผประสงคราย
ตองการทจะทาการดกจบ packet ARP request ของเปาหมายซงมการสงขอมลแบบ
broadcast ออกไปภายในเครอขาย เมอผประสงครายไดรบ ARP request แลวจะทา
การตอบกลบดวย ARP reply ซงเปนการสงขอมลแบบ unicast ดวย MAC address ท
ไมใชของ IP ทเปาหมายตองการ เมอเปาหมายไดรบ MAC address กจะทาการบนทก
MAC Address ปลอมกบ IP address ทตองการทราบ MAC address เขาไปใน ARP
table หากเปาหมายตองการทจะสงขอมลไปยง IP address นอกครง จะอานขอมลจาก
ARP table นซงเปน MAC address ทไมถกตองทาให เปาหมายไมสามารถทจะสง
ขอมลไปยงปลายทางทแทจรงได
...
Computer A
Computer B Computer C
AttackerMAC address - AA:AA:AA:AA:AA:AA
MAC address - BB:BB:BB:BB:BB:BB MAC address - CC:CC:CC:CC:CC:CC
MAC address - DD:DD:DD:DD:DD:DD
ARP Request ARP Request
ARP
Requ
est ARP
Request
ARP
Requ
est
IP address - 192.168.1.1
IP address - 192.168.1.2 IP address - 192.168.1.3
IP address - 192.168.1.4
MAC address - EE:EE:EE:EE:EE:EEIP address - 192.168.1.254
Subnet mask - 255.255.255.0
รปท 2.10 ARP request กบการทางานของ ARP Spoofing
13
จากรปท 2.10 สมมต Computer A ทราบ IP address ของ Computer C และ
ตองการทจะทราบ MAC address ของ Computer C เพอใชในการตดตอสอกบ
Computer C ดงนน Computer A จะทาการสง ARP request แบบ broadcast ออกไป
ภายในเครอขาย ซงในขณะนนมผไมประสงคดหรอ Attacker ใชงานอยภายในเครอขาย
หาก Attacker ตองการจะโจมต Computer A ดวยวธการ ARP Spoofing จะทาการดก
จบ ARP request ท Computer A สงออกมาถามหา MAC address ของ Computer C
เมอ Attacker ทาการดบจบไดแลวจะเอาขอมลของผสงหรอ Computer A จาก ARP
request มาใสใน ARP reply ในสวนของปลายทางแลวทาการปลอม MAC address
แทนทในสวนของ MAC address ของ Computer C ดงแสดงในรปท 2.11
เม อ Computer C ไดร บ packet ARP reply ทม IP address เด ย วกนกบ
Computer C และถก Attacker ปลอม MAC address Computer A กจะไมสามารถ
สอสารกบ Computer C ได ซงวธการ ARP Spoofing นเปนพนฐานในการโจมตของอก
ลกษณะเรยกวา Man-in-the-Middle หากวาในการปลอม MAC address จากเดมให
เปน MAC address ทไมถกตองอาจจะโดยการสมหรอปลอม MAC address ใหเปน
ของ Attacker เอง Computer A จะมองวาเครองของ Attacker คอ Computer C โดย
ทนท ซง traffic ขอมลท Computer A ตองการทจะสงไปยง Computer C จะถกสงไป
ยง Attacker แทน
...
Computer A
Computer B Computer C
AttackerMAC address - AA:AA:AA:AA:AA:AA
MAC address - BB:BB:BB:BB:BB:BB MAC address - CC:CC:CC:CC:CC:CC
MAC address - DD:DD:DD:DD:DD:DD
ARP Reply with fake
MAC address
IP address - 192.168.1.1
IP address - 192.168.1.2 IP address - 192.168.1.3
IP address - 192.168.1.4
MAC address - EE:EE:EE:EE:EE:EEIP address - 192.168.1.254
Subnet mask - 255.255.255.0
ARP Reply with fake
MAC address
รปท 2.11 ARP reply กบการทางานของ ARP Spoofing
14
2.5 JAVA
[3] ผศ.สดา เธยรมนตร ภาษา JAVA เปนภาษาทถกพฒนาเพอใชพฒนาภาษาทใช
สรางโปรแกรม จดประสงคหลกสวนหนงในการพฒนาคอตองการใหการใชงานสามารถใชงานได
ในทกๆระบบหรอทกแพลตฟอรม ภาษา JAVA ยงเปน ภาษาทเนนการเขยนโปรแกรมใน
ลกษณะการแบงงานใหเปนสวนยอยทความสมพนธกบสวนยอยอนๆ รวมถงสามารถนามาใช
ใหมไดทาใหเกดขอดคอชวยลดเวลาในการพฒนาโปรแกรม เราสามารถเรยกการเขยน
โปรแกรมลกษณะนในอกแบบวาการเขยนโปรแกรมเชงวตถ ซงจากคณสมบตเดนหลาย
คณสมบตรวมกนเหลาน ทาให JAVA เปนภาษาทไดรบความนยมสง
การทางานของภาษา JAVA จะมการขนตอนการทางานโดยหลงทมการเขยนโคด
เรยบรอยแลวหรอไดไฟลทเปนนามสกล .class สามารถเรยกอกลกษณะวา Java Byte Code
จากนนเมอมการทาการใชงานโปรแกรมดงกลาวบนอปกรณ Java Byte Code จะถกแปลงเปน
ภาษาทอปกรณดงกลาวดวยสวนหนงของในการทางานของภาษา JAVA เรยกวา Java Virtual
Machine หรอ JVM เพอทโปรแกรมทถกเขยนดวยภาษา JAVA สามารถทจะทางานไดทก
แพลตฟอรม
2.6 MySQL
[6] Wikipedia (2559) ไดลาววา MySQL เปนโปรแกรม open source หนงททาหนาท
ในการจดการฐานขอมลทเปนในลกษณะโครงสรางโดยใชภาษา SQL หรอ Structured Query
Language โดยจะทาการเกบขอมลในลกษณะรปแบบตาราง ในแตละตารางสามารถเชอมโยง
เขาหากนไดสามารถเรยกการจดการฐานขอมลนไดอกแบบวา ระบบการจดการฐานขอมลแบบ
relational
การทางาน MySQL จะทางานในลกษณะเปนตวกลางในการเชอมตอระหวางฐานขอมล
กบผใชหรอตวโปรแกรมในการทตวโปรแกรมหนงจะทาการตดตอกบฐานขอมล หากถา
ฐานขอมลทใชนนเปน MySQL แลว ตว MySQL จะเปนตวสรางและเชอมตอกบฐานขอมลให
ซงในการทางานกบภาษา Java นน จะใช library ของตวภาษา Java เองทเรยกวา MySQL
JDBC Driver สาหรบการใชงาน MySQL หากเมอตองการสรางฐานขอมล เขยนหรออาน ตว
ภาษา JAVA สามารถเรยกใชงาน library ไดเลย
2.7 JPCAP
[7] Github (2014) ไดกลาววา JPCAP คอ open source JAVA library สาหรบใชในการ
ดกจบและสงขอมลในเครอขาย JPCAP ม library พนฐานจาก WinPcap หรอ libpcap ซงคอ
15
library open source สาหรบดกจบและ ใชในการ monitor เพอวเคราะหในระบบเครอขาย
สาหรบแตละ Platform ตวอยาง Application ทใชงาน library WinPcap เชน Wireshark เปนตน
WinPcap ถกออกแบบมาใหใชงานกบ Windows platform หากตองการใชงาน platform เชน
Unix หรอ Linux จะตองใช library อกตวทชอวา libPcap แทน เราสามารถประยกตใช JPCAP
ในการสราง Application สาหรบทางานบนเครอขายไดโดยใชภาษา JAVA ในการพฒนา
Application ในสารนพนธนจะใชงาน WinPcap version 4.1.3 ขนไปสาหรบ Windows platform
และ JPCAP version 0.7 สาหรบ protocol ท JPCAP สามารถใชงานไดมหมาย protocol เชน
IPv4, ARP, TCP, UDP, ICMPv4 เปนตน
16
บทท 3
การออกแบบระบบ
3.1 ภาพรวมและโครงสรางของระบบ
โปรแกรมปองกนการเขาถงเครอขายเบองตนในระดบเลเยอรท 2 หรอเรยกไดอกแบบ
วา PARP (Play ARP) เปนโปรแกรมทใชในการปองกนการเขาถงเบองตนในเครอขาย โดย
อาศยการโจมตทเรยกวา ARP Spoofing มาชวยประยกตใชในการปองกนการเขาถงและอาศย
จากการตรวจสอบ MAC address ของผตองการเขาถงเครอขาย หากโปรแกรมพบวา MAC
address ของ ผตองการเขาถงเครอขายนนไมตรงกบขอมลทมอยกจะทาการโจมตไปยงผนน
สงผลทาใหไมสามารถใชงานผานเครอขายได
Router
Swtich
Computer A
Administrator
Computer B
Computer C
รปท 3.1 ภาพโครงสรางจาลองของระบบ
จากรปท 3.1 เปน Network Diagram ภาพรวมการทางานทวไปของระบบ ทโปรแกรม
สามารถใชงานได โดยเปาหมายในการทางานหลกคอตองการปองกนการเขาถงเครอขาย หาก
อปกรณทใชงานผานเครอขายไมถกอนญาตในการเขาถง และจะอนญาตเฉพาะผทถกอนญาต
เทานน ซงภาพรวมของระบบจะประกอบไปดวยดงน
17
- Router เปนสวนททาหนาทเปนตวเชอมตอกนเครอขายอน หาก client ใดตองการ
เชอมตอไปยงเครอขายอนๆตองเชอมตอผานทาง Router เทานน หรอในบางกรณ
ทพบไดบอย คอกรณท หนาทของ Router และ Switch ทางานอยในอปกรณตว
เดยว เชน Wireless Router เปนตน
- Switch เปนสวนหนงททาหนาทในการสงผาน packet ไปยงปลายทางในระดบ
Layer ท 2 อปกรณบางอปกรณ ดงเชนกรณเดยวกบ Router สามารถมอปกรณท
ทาหนาทนควบคกนระหวาง Router กบ Switch ได
- Client เปนอปกรณทมการใชงานผานในเครอขาย เมอมการใชงานจะมการ
ตดตอสอสารกนผานอปกรณตางๆ เชน Router และ Switch
- Administrator client เปนอปกรณทมการใชงานผานเครอขายเชนเดยวกนกบ
Client อนๆ แตอปกรณนจะถกลงโปรแกรมเพอใชในการตรวจสอบและปองกนการ
เขาถง โดยโปรแกรมปองกนการเขาถงเครอขายเบองตนในระดบ layer 2 จะถกใช
งานจากอปกรณน ซงอปกรณนจะมสทธในการควบคมการใชงานผานเครอขาย
ลกษณะการทางานภาพรวมของโปรแกรมจะแบงออกเปน 3 สวนหลก ไดแก Service,
GUI และ Database โดยแบงออกดงรปท 3.2
Service GUI
Database
รปท 3.2 Model การทางาน
18
ในการทางานของแตละสวนนนมความเกยวของกนและมหนาทแตกตางกน สามารถ
แบงหนาทตามลกษณะการทางานภายในแตละสวนไดดงแสดงดงรปท 3.3
Send ARP Packet
Scan Network Check status time
Sniff ARP Packet
Display client on network
Choose interface card
Change rule of each client
Connect DB Create DB
Keep Data
Service GUI
Database
Start Service
รปท 3.3 การทางานของแตละสวน Model
การทางานในสวนของ Service
- Sniff ARP Packet ทาหนาทในการดกจบ ARP packet ทงในสวนของ
ARP request และ ARP reply หลงจากทาการดกจบไดจะนาขอมล
บางสวนทจาเปนไปเกบยงสวนของ Database ตอไป
- Send ARP Packet ทาหนาในการสง ARP packet ทงในสวนของ ARP
request และ ARP reply ซงจะทาการสงในหลายกรณ เชน การสงเพอทา
การ Scan network หรอ การตรวจสอบ Client หรอ การสง packet เพอ
ยบยงการเขาถงเครอขาย
- Scan Network ทาหนาทในการ Scan อปกรณในเครอขายโดยการทาการ
สง ARP request ไปยงทก IP ใน subnet และรอรบ packet หากมการ
ตอบกลบมาทาใหรวามอปกรณนนอยยงทราบหมายเลข IP และ MAC
address อกดวย
19
- Check Status time ทาหนาทเปนสวนทตรวจสอบและ update เวลาการคง
อยของอปกรณในเครอขายโดยอางองอปกรณทจะทาการตรวจสอบจาก
ฐานขอมล โดยจะทาการตรวจสอบเปนชวงเวลาทก 30 วนาทนบจากทา
การดกจบ packet ไดครงแรก
การทางานในสวนของ GUI
- Display Client on network ทาหนาทในการแสดงรายการอปกรณผทอยใน
เครอขายหรอผทเคยอยโดยจะแสดงผลโดยมรายละเอยดหลกคอ IP
address, MAC address, เวลาทดกจบ packet ไดครงแรก และ เวลาทดก
จบไดครงลาสด
- Choose interface card ทาหนาทในการเลอก interface card ทตองการจะ
ใชในการดกจบหรอสง packet ของโปรแกรม
- Change rule of each client ทาหนาทในการเปลยนสวนในการเกบขอมล
ในฐานขอมลเพอยายไปสวนทมการอานทถกใชในการสง packet เพอยบ
การใชงานของอปกรณนนผานเครอขายหรอ ยายไปยงสวนทถกใชสาหรบ
อปกรณทไดรบการอนญาตในการเขาถงเครอขาย
- Start Service ทาหนาทในการเรมการทางานในสวนตางๆ
การทางานในสวนของ Database
- Connect to DB ทาหนาทในการเชอมตอของโปรแกรมเขากบสวนของ
ฐานขอมล
- Create DB ทาหนาทในการสรางฐานขอมลทมการใชงานรวมกบโปรแกรม
โดยจะมการตรวจสอบหากไมมฐานขอมลนนอยจะทาการสรางฐานขอมล
หรอหากตรวจแลวพบวามฐานขอมลนนอยแลวจะไมทาการสรางฐานขอมล
ทบ
- Keep data ทาหนาทในการเกบขอมลซงเปนหนาทหลกของฐานขอมล
20
3.2 ขนตอนการทางานของระบบ
PARP
Service(Main)Thread of Service Database GUI
Start
Verify database
name,table
Create database and componentNo
Yes
Display GUI
Create GUI component and
display login page
Database
Get and check data from database
StartGUI Thread
Waiting input from GUI
GUI input
Button Input
select interface,start
capture,start send
packet,stop send
packet,Scan(1),Scan(2)
Change tableinput
Interface,cap,gw have
been selected
Scan(1)
Scan(2)
Start or Stop send packet
Yes
Yes
No
No
Capture packet
Start
Database
ARP packet
Yes
No
Thread
Database
Send ARP to all client for
scan network
Yes
A
Send ARP to all in backlist
client for scan
Yes
B
B
Send ARP packet to all
in backlist client
AStop
Database
A
No
No
Check time and Send
ARP packet
Check user and password
Yes
Display login fail and end
No
รปท 3.4 การทางานของระบบ
21
จากรปท 3.4 การทางานจะเรมทสวนของ Service ซงเปนสวนหลกในการทางาน พรอม
กนนสวนของ GUI จะเรมทางานไปพรอมๆกนในสวนโครงสรางของตวระบบ โดยสวน Service
หลงจากเรมตนการทางานจะทาการเรยกแสดงผลหนา login โดย จะเปนการ login เพอเขาใช
งานฐานขอมลเมอ login สาเรจจะทาการตรวจสอบตอไปวาฐานขอมล วามฐานขอมลทใชงานอย
หรอไมหากไมมจะทาการสรางฐานขอมลทสามารถใชงานได ถาไมมจะแสดงหนา login
ผดพลาดขน จากนน Service จะทาการแสดงเรยกแสดงผลหนา GUI ทถกกาหนดโครงสราง
และเรยกตรวจสอบฐานขอมลทกๆ ชวงเวลา หลงจากสวน Service ทาการแสดงผล GUI แลวจะ
ทาการรอรบคาสงโดยคาสงจะอางองกบสวนตางๆของหนา GUI คาสงสวนของหนา GUI ม
หลายคาสงขนการใชงานแตคาสงแรกทจะตองทาการสงการคอการเลอก Interface card สาหรบ
ใชในการดกจบหรอสงขอมล หลงจากมคาสงเลอก Interface card แลว จะมการทางานเพมเตม
คอสวนของ Thread of service คอสวนของการรอรบหรอดกจบ ARP packet ภายในเครอขาย
ในสวนนจะเปนการทางานในลกษณะ Thread หรอการทางานในลกษณะ background process
คอมการทางานอยตลอดเวลาในการจดสรรชวงการทางานจะเปนหนาทของ CPU เปนคน
จดการ หลงจากเรมการทางานในสวนของ Thread of service แลวจะกลบไปรอรบคาสงจาก
GUI จนกวาจะมคาสงตอไป ซงในทกครงสวนของการรอรบคาสงจะมเงอนไขหากไมมคาสงเขา
มาจะไปทาการตรวจสอบสวนของการสง ARP packet ไปยบยงการใชงานผานเครอขายของ
อปกรณทถก blacklist ทแสดงอยในฐานขอมลจากนนกจะกลบมายงสวนของการรอรบคาสง
เชนเดม
3.3 การออกแบบการทางานในสวนยอยของระบบ
จากหวขอทผานมาจะสามารถเหนภาพรวมการทางานของระบบรวมถงการทางานใน
สวนตางๆ แตในการทางานจะมความชดเจนขนในหวขอน โดยในหวขอนจะแสดงในสวนของ
การออกแบบ flow chart ในสวนตางๆ ซงหากทาการอธบายพรอมกบภาพรวมแลวอาจจะเปน
การยากในการทาความเขาใจกระบวนการการทางานสวนยอย โดยจะทาการแบงหวขอการ
ออกแบบในสวนยอยของระบบดงน
3.3.1 สวน Service
3.3.1.1 การตรวจสอบฐานขอมล
- Database name
22
การทางานในสวนนทาหนาทในการตรวจสอบการมอยของชอ
ฐานขอมล เพอปองการเขยนขอมลทบซอนกน โดยขนตอนจะทาการ
ตรวจสอบจากชอของ ฐานขอมลทมอยหากไมมชอดงกลาวจะทาการ
สรางฐานขอมลใหมขนมาเพอใชในการเกบขอมลตางๆ สาหรบ
โปรแกรมโดยในโปรแกรมนจะใชฐานขอมลเดยวในการเกบขอมล
เนองจากเปนขอมลทไมมความซบซอน แสดงดงรปท 3.5
Start
Connect to database
Query to database for check database
name
Yes
Found database name
Yes
No Create new database
End
No
รปท 3.5 Flow chart การตรวจสอบและการสรางฐานขอมล
- Table name
การทางานในสวนนมลกษณะการทางานจะคลายกบการ
ทางานในสวนของการตรวจสอบ Database name จะใชชอของ
ฐานขอมลทไดมการสรางไวกอนหนานในการสรางตารางในการจดเกบ
ขอมล โดยตารางจะถกสรางทงหมดสองตารางตารางหนงจะถกใช
สาหรบเกบขอมลทจะอนญาตใหสามารถใชงานผานเครอขายได สวน
23
อกตารางหนงจะเปนสวนทไมอนญาตใหผทมขอมลอยในตารางน
สามารถใชงานผานเครอขายได การทางานจะแสดงตามรปท 3.5
Start
Connect to database with
database name
Query to database for check table
name for database the have been created before
Yes
Found table name
Yes
No Create new table
End
No
รปท 3.6 Flow chart การตรวจสอบและการสราง table
3.3.1.2 การดกจบ ARP Packet
ในสวนการดกจบ ARP packet จะทาการดกจบ ARP packet ชนด
request และ reply การตรวจสอบจะตรวจสอบจากคา parameter ทอยใน ARP
packet ดงแสดงดงรปท 3.7 ถาหากสวน Operation มค า เท ากบ 1 จะ
หมายความวา ARP packet นนเปนชนด ARP request หากคา Operation ม
ค า เท ากบ 0 จะหมายความว า ARP packet น น เ ปนช นด ARP reply
นอกเหนอจากสวนของ Operation จะมการนาสวนอนมาใชงานดวยดงน
- Sender hardware address (MAC_sender)
เปนสวนทใชบอกคา MAC address ของผสง ARP packet จะ
ถกใชในการอางองวาใครเปนคนสง packet น
24
- Sender protocol address (IP_sender)
เปนสวนทใชบอกคา IP address ของผสง ARP packet จะถก
ใชในการอางองวาใครเปนคนสง packet น
- Target hardware address (MAC_target)
เปนสวนทใชบอกคาวา MAC address ของเปาหมายทผสง
ตองการจะสงไป
- Target protocol address (IP_target)
เปนสวนทใชบอกคาวา IP address ของเปาหมายทผสง
ตองการจะสงไป
รปท 3.7 ARP Packet format
ทมา : [1] Behrouz A. Forouzan
ในการทางานกรณทสามารถดกจบ ARP packet และสามารถระบไดวา
เปนชนดใดจะทางานไมเหมอนกน ดงแสดงดงรปท 3.8
25
Start
ARP Request or ARP Reply
Choose network interface card
Request ReplyVerify (M,IP,Iptar)
in database(T1,T2)
Verify (M,IP,IPtar) in database
(T1,T2) and IPtar is gateway
Database Database
Found data in T1
NOTET1 = permit tableT2 = backlist tableM = MAC address
IP = IP addressIPtar = IP destination
Found data in T2
No
Found ARP request source
condition
Update in T1
Update in T2
Insert (MAC,IP,IPtar) to
database(T2)
Yes
Yes
No
No
Found data in T1
Found data in T2
Found ARP reply source condition
Insert (MAC,IP,IPtar) to
database(T2)
No
No
No
Yes Bypass
Yes Update in T2
Yes Update in T1
Yes Bypass
End
รปท 3.8 Flow chart การดกจบ ARP packet
26
สามารถแบงกรณการดกจบไดเปน 2 กรณ คอ
กรณท 1 ARP request ในกรณนเมอสามารถดกจบไดจะนา
สวนของ MAC_sender , IP_sender และ IP_target มาใชตรวจสอบใน
ตารางสวนทเกบขอมลของผทอนญาตในการเขาถงเครอขายถาพบจะ
ทาการ update ขอมลพรอมทงเวลาในขณะนนลงไปยงตาราง แตหาก
ไมพบจะนาไปตรวจสอบในตารางของผทไมอนญาตในการเขาถงหาก
พบจะทาการ update ขอมลดงกลาวพรอมกนเวลาในขณะนนลงตาราง
แตหากไมพบ จะนาไปตรวจสอบกบเงอนไขนอกเหนอจากทผานมา
เชน ผสงเปน gateway หรอ ตวเครองของโปรแกรมเอง จะกระทาการ
ในลกษณะ bypass แลวจบการทางาน แตหากไมพบวา ARP packet
ทดกจบไดไมตรงกบเงอนไขใดๆทผานมาจะมองวา packet นนเปนผท
เพงเขาสเครอขาย จะทาการบนทกคา MAC_sender , IP_sender และ
IP_target และเวลาลงไปยง ตารางทไมอนญาตใหมการใชงานผาน
เครอขาย
กรณท 2 ARP reply ในกรณนเมอสามารถดกจบไดจะนาสวน
เฉพาะ MAC_sender และ IP_sender มาใชเทานน สวน IP_target จะ
ถกอางองเปนหมายเลย IP address ของ gateway ในเครอขายนน
โดยเงอนไขทใชในการตรวจสอบจะเหมอนกนกบกรณ ARP request
เกอบทงหมด หากไมพบวาขอมลไมตรงกบเงอนไขใดเลยจะทาการ
บนทกคา คา MAC_sender , IP_sender และ IP_target ลงในตาราง
ของผทไมไดรบอนญาตในการเขาถงเครอขาย
3.3.1.3 การสง ARP Packet
ในสวนการสง ARP packet หนาทหลกคอการสงเพอยบยงการเขาถง
เครอขายในสวนของผทไมไดรบอนญาต หรอทาการสงในกรณทตองการ
ตรวจสอบอปกรณทมอยในเครอขาย สามารถแบงการทางานไดหลายสวน
ดงตอไปน
- การปองกนการเขาถงเครอขาย
27
หลกการในการปองกนการเขาถงเครอขาย จะทาการอานคา
จากตารางใน ฐานขอมลสวนทไมอนญาตใหมการเขาถง เมอสามารถ
อานคาไดแลวจะทาการสราง ARP packet โดยอางองจากคา
MAC_sender , IP_sender และ IP_target ทอานไดจากตาราง โดยจะ
ทาการสลบคากลบกนแสดงดงรปท 3.8
MAC_sender
IP_sender
MAC_targetIP_target
Read from table
MAC_sender_fake
IP_sender
IP_target
Prepare ARP Packet before send
รปท 3.9 การเตรยม ARP packet ทจะทาการสงโดยการอาน
คาจากตาราง
เมอโปรแกรมทาการอานขอมลจากตารางทเกบคาของผท
ไมไดรบอนญาตในการเขาถงเครอขาย โดยจะอานคา MAC_sender ,
IP_sender และ IP_target จากตารางทละบรรทด โดยเมออานเสรจ
แลวจะนาคาทอานไดไปแทนคาใน packet ทถกเตรยมไวสาหรบการสง
เพอปองกนหรอยบยงการเขาถงของอปกรณ โดยจะให MAC_sender
เ ป นส วนของ MAC_target ส วนของ IP_sender เ ป นส วนของ
IP_target สวนของ IP_target เ ปนสวนของ IP_sender และสวน
สดทายของ MAC_sender_fake จะเปนการปลอมแปลงคา MAC
address โดยหลงจากสง ARP packet นเมอผรบไดรบ packet นแลว
ผรบจะนาคา MAC_sender_fake ไปใสไวใน ตาราง ARP cache table
คกบ IP_sender หากผรบตองการจะสอสารไปยง IP_sender จะไม
สามารถทาการสอสารไปในทสด เนองจาก MAC address ของ IP
address นนไมถกตอง Flow chart การทางานจะแสดงดงรปท 3.9
28
Start
Query database for get each row
(MAC,IP,IPtar)in table
Database
Convert (MAC,IP,IPtar) from
string to byte[]
Send ARP packet reference to
parameter and data that have been
coverted
Receive parameter to choose table
name and ARP type
End
Data in table
No
Yes
รปท 3.10 Flow chart การทางานในสวนการปองกนการเขาถง
เครอขาย
ในการทางานทนอกเหนอจากทกลาวมาขางตนจะเปนการ
แปลงคาจาก String ไปเปน Byte[] เนองจากโดยปกตการเกบคาจะใช
การเกบคาเปน String ไวในฐานขอมลเปนหลกแตในการสงและรบ
ขอมลจาเปนตองทาใหอยรปของ Byte[]กอนเสมอ
29
- การตรวจสอบการมอยของอปกรณในเครอขาย
การทางานในสวนนจะทาหนาทในการตรวจสอบผทมการใช
งานอยในเครอขายโดยจะแบงออกเปน 2 กรณ ดงน
กรณท 1 การตรวจสอบเพอคนหาอปกรณทมการใชงานกอน
การเปดโปรแกรม ในสวนนมหนาทหลกในการตรวจสอบอปกรณใน
เครอขาย จะทาการตรวจสอบโดยใชทก IP ใน subnet ในการอางอง
การตรวจสอบ ลกษณะการสราง ARP packet จะใช ARP ชนด ARP
request ในการสงไป เพราะหากเมอมอปกรณทมการใชงานอยใน IP
address นนไดรบ ARP request กจะทาการตอบกลบมายงอปกรณ
ของตวโปรแกรมทาใหทราบวา IP address นนมหมายเลข MAC
address เปนหมายเลขอะไรโดยอาศยการตรวจสอบจาก MAC_sender
และ IP_sender ของ ARP reply ทไดรบกลบมา ดงแสดงดงรปท 3.10
เปน Diagram ทจะใชอางองเพอทาความเขา โดย Computer A จะเปน
เครองทมการลงโปรแกรม ในการคนหาอปกรณทมการใชงาน
Computer A Computer B
MAC address – aa:bb:cc:aa:bb:11IP address - 192.168.1.10
MAC address - EE:EE:EE:EE:EE:EEIP address - 192.168.1.1Subnet mask - 255.255.255.0
Subnet mask - 255.255.255.0MAC address – aa:bb:cc:aa:bb:22IP address - 192.168.1.12
Subnet mask - 255.255.255.0
Computer C
MAC address – aa:bb:cc:aa:bb:33IP address - 192.168.1.15
Subnet mask - 255.255.255.0
รปท 3.11 Model การทางานสาหรบตรวจสอบอปกรณในเครอขาย
30
จากรปท 3.10 เมอมการใชงานของอปกรณอยในเครอขาย
กอนทตวโปรแกรมจะถกเปดใชงาน เชน Computer B กบ Computer
Router มการเชอมตอกนอยแลวการแลกเปลยน ARP packet จะทา
กนในลกษณะ Unicast ทาให Computer A ไมสามารถทราบไดวา
Computer B มการใชงานอยในเครอขาย หากตวโปรแกรมตองการท
จะทราบวาม Computer B อยในเครอขายจะทาการสง ARP request
ดงรปท 3.11
MAC_sender = aa:bb:cc:aa:bb:11IP_sender = 192.168.1.10MAC_target = ff:ff:ff:ff:ff:ffIP_target = 192.168.1.12
MAC_sender = aa:bb:cc:aa:bb:22IP_sender = 192.168.1.12MAC_target = aa:bb:cc:aa:bb:11IP_target = 192.168.1.11
Computer BComputer A
รปท 3.12 Diagram การสง ARP request เพอตรวจสอบอปกรณใน
กรณมการใชของอปกรณอย
จากรปท 3.11 Computer A จะทาการสง ARP request ใน
ลกษณะ broadcast เมอ Computer B ไดรบ packet ดงกลาว จะทา
การสง ARP reply กลบมา ทาใหตวโปรทราบวา Computer B มการใช
งานอยในเครอขายและจากขอมลนจะถกบนทกลงตารางในฐานขอมลท
จะถกใชในการอางองในการปองการการใชงานผานเครอขายในครง
ตอไป Flow chart การทางานแสดงดงรปท 3.3.12
31
Start
Assign parameter and
Int variable = 1
Check IP of gateway or IP of
yourself
Int variable > 254
Send ARP packet reference to
parameter and int variable++
No
Yes
End
NoYes
รปท 3.13 Flow chart การทางานการตรวจสอบเพอคนหาอปกรณทม
การใชงานกอนการเปดโปรแกรม
การทางานโดยรวมจะทาการสงเพอตรวจสอบโดยอางองกบ
ขนาดของ Subnet ใน class C เพอใหแนใจวาสามารถรวามใครทมการ
32
ใชงานผานเครอขายบาง ในสวนนจะถกออกแบบเปนลกษณะเปนป ม
สาหรบกดเมอเปดใชงานโปรแกรม
กรณท 2 การตรวจสอบเพอ update สถานะเวลาของอปกรณ
การทางานในกรณนมหนาทเพอทาการ update สถานะเวลา
โดยการสง ARP packet ไปในลกษณะของ ARP request แบบ
Unicast โดยอางองจากตารางทกตารางในฐานขอมลการสงขอมลใน
กรณจะคลายกบการสงในหวขอการตรวจสอบเพอคนหาอปกรณทม
การใชงานกอนการเปดโปรแกรม จะแตกตางกนตรงท การสง ARP
packet จะเปนในลกษณะ Unicast และจะไมสงไปทก IP address ใน
Subnet และอาจะใชเวลาและ สถานะเปนตวชวยตดสนในการ update
โดยจะแสดงการสงเปนรปแบบ diagram แสดงดงรปท 3.12 และอางอง
กบ Model ในรปท 3.10 และ Flow chart การทางานจะแสดงดงรปท
3.13
MAC_sender = aa:bb:cc:aa:bb:11IP_sender = 192.168.1.10MAC_target = aa:bb:cc:aa:bb:22IP_target = 192.168.1.12
MAC_sender = aa:bb:cc:aa:bb:22IP_sender = 192.168.1.12MAC_target = aa:bb:cc:aa:bb:11IP_target = 192.168.1.11
Computer BComputer A
รปท 3.14 Diagram การสง ARP request ในกรณการตรวจสอบเพอ
update สถานะเวลาของอปกรณ
33
Start
Database
Query database for get each row
(MAC,IP,IPtar,time2,Status)
in table each row
Receive parameter to choose table
name and ARP type
Covert (MAC,IP,Iptar) from
string to byte[]
Compare time between time
current and time2
about 30 seconds
> 45 secondsUpdate status in table
No
< 0 seconds
Send ARP request Packet
with(MAC,IP,IP yourself)
No
No
Yes
Yes
Status = Off
Send ARP request Packet
with(MAC,IP,IP yourself)
Yes
End
Status = On
Data in table
Yes
Delete that device in tableYes
No
Yes
รปท 3.15 Flow chart การทางานการตรวจสอบเพอ update สถานะ
เวลาของอปกรณ
34
- การตรวจสอบการสอสารระหวางอปกรณ
หนาทหลกของหวขอนคอการตองการทราบในกรณทมการ
เชอมหรอสงขอมลกน ของอปกรณทมการใชงานกอนการเปดโปรแกรม
อางองจาก Model การทางานจากรปท 3.10 หากเกดกรณ Computer
B กบ Computer C มการสอสารกนระหวางกนกอนทจะมการเปดใช
งานโปรแกรมขน เมอเปดโปรแกรมขนมาเปนการยากทจะรวา มการ
สอสารกนระหวาง Computer B กบ C เนองจากการสอสารระหวาง 2
อปกรณนเปนไปในลกษณะ Unicast การทจะทราบวา B กบ C มการ
สอสารกนอยตวโปรแกรมจะตองม MAC และ IP address ของเครอง
ทงสองกอนโดยอาจจะทาการตรวจสอบหลงจากทมการตรวจสอบ
อปกรณทอยในเครอขายจากหวขอการตรวจสอบเพอคนหาอปกรณทม
การใชงานกอนการเปดโปรแกรม การทางานจะนา MAC และ IP
address จากตารางไปใชอางองในสวน MAC_sender, IP_sender
ตามลาดบ สวน IP_target จะอางองกบหมายเลข IP_sender อนท
ไมใชตวของ IP_sender เอง และสวน MAC_target จะเปนอะไรกได
จากนนจะทาการสงไปยงเปาหมาย หากเมอเปาหมายมการเชอมตอ
กนอยแลวเปาหมายจะขาดการเชอมตอเปนชวงเวลาหนงหรอในอก
มมมองหนงคอเปาหมายถกตวโปรแกรมเปลยนคา MAC address ของ
IP นนใน ARP cache table แทน เปาหมายจะทาการสง ARP request
แบบ broadcast ออกมาเพอสอบถามวาผทเคยตดตอยงอยหรอไม ทา
ใหโปรแกรมสามารถดกจบไดวามการเชอมตอนอยนนเอง ตวอยางการ
ทางานแสดงดงรปท 3.14 และอางอง Model จากรปท 3.10
MAC_sender = aa:bb:cc:aa:bb:22IP_sender = 192.168.1.12MAC_target = aa:bb:cc:aa:bb:33IP_target = 192.168.1.15
MAC_sender = aa:bb:cc:aa:bb:33IP_sender = 192.168.1.15MAC_target = aa:bb:cc:aa:bb:22IP_target = 192.168.1.12
Computer CComputer B
รปท 3.16 การทางานของการตรวจสอบการสอสารระหวางอปกรณ (1)
35
MAC_sender = aa:aa:aa:aa:aa:aaIP_sender = 192.168.1.15MAC_target = aa:bb:cc:aa:bb:22IP_target = 192.168.1.12
MAC_sender = aa:bb:cc:aa:bb:22IP_sender = 192.168.1.12MAC_target = ff:ff:ff:ff:ff:ffIP_target = 192.168.1.15
Computer BComputer A
MAC_sender = aa:bb:cc:aa:bb:22IP_sender = 192.168.1.12MAC_target = aa:aa:aa:aa:aa:aaIP_target = 192.168.1.15
รปท 3.17 การทางานของการตรวจสอบการสอสารระหวางอปกรณ (2)
จากรปท 3.15 เมอ Computer B ถกเปลยนแปลง ARP cache
table ของ IP address 192.168.1.15 เมอขาดการตดตอกจะทาการสง
ARP request เพอถามหาคา MAC address ของ 192.168.1.15 ทาให
โปรแกรมทมการทางานอยสามารถทาการดกจบได ทาใหทราบวาม
การสอสารระหวาง Computer B กบ Computer C โปรแกรมจะทางาน
ในลกษณะนไปเรอยๆจนกวาขอมลทใชอางองในการสงทอานไดจาก
ตารางในฐานขอมลจะหมด จะใหการทางานในลกษณะนเปนลกษณะ
ของป มกด โดยควรจะมการใชการโดยเมอเรมตนใชงานโปรแกรม ใน
สวน Flow chart การทางานแสดงดงรปท 3.16
36
Start
Query database for get (MAC,IP)
in table to array varibale and keep
row count
Database
Receive parameter to choose table
name and ARP type
Int A variable = 1 and use A to
reference point of array
Substring(1) IP[A]
Int B variable = 1 and use A to
reference point of array
Substring(1) IP[B]
IP[A] = IP[B]&&
A = B
No
Yes
B > row count
Covert (MAC[A],IP[A],
IP[B]) from string to byte[]
Send ARP packet reference to
parameter and data that have been
coverted
++B No
Yes
A > row count
++A
No
Yes End
รปท 3.18 Flow chart การทางานของการตรวจสอบการสอสาร
ระหวางอปกรณ
37
3.3.2 สวน GUI
3.3.2.1 การแสดงผล Network Interface Card
สวนการแสดงผลนจะหนาทในการอานคาของ Network Interface
Card วาเครองทมการใชงานโปรแกรมอยนนม Interface card ใดบางและนา
คาทไดไปแสดงผลบนหนา GUI โดย Flow chart แสดงดงรปท 3.17
Start
Find NIC
Found
Yes
No
End
Display on ComboBox
รปท 3.19 Flow chart การแสดงผล Network Interface card
38
3.3.2.2 การแสดงผลขอมลอปกรณในเครอขาย
การแสดงผลขอมลในสวนนจะเปนสวนหลกในการแสดงผลของสวน
GUI หนาทของมนจะทาการแสดงผลของอปกรณทตวโปรแกรมสามารถดกจบ
ARP packet ทงหมดโดยจะแบงออกเปนตารางสองตาราง โดยความหมายคอ
ตารางหนงทาหนาทแสดงผลของอปกรณในเครอขายทอนญาตใหมการใชงาน
ได สวนอกตารางหนงจะเปนตารางสาหรบแสดงอปกรณทไมอนญาตใหมการใช
งานผานเครอขาย Flow chart แสดงดงรปท 3.18
เมอโปรแกรมมการใชงานสวนตารางแสดงผลอปกรณทมพบใน
เครอขายจะมการวนลปเรยกอานคาจากฐานขอมลทก 2 วนาท เพอใหมการ
แสดงผลตอบสนองอยางรวดเรว
Start
Create GUI componant
Create timer every 2 seconds to get data
in table from database
Database
Display on GUI
รปท 3.20 Flow chart การแสดงผล Network Interface card
39
3.3.2.3 การเปลยนสทธการใชงานของอปกรณในฐานขอมล
การทางานสวนนเปนสวนททาหนาในการเปลยนตารางของอปกรณท
อานคาไดจาก ฐานขอมลหากตองการเปลยนสทธในการเขาถงของอปกรณนน
เชน ถาตองการเปลยนสทธในการใชงานของอปกรณหนงจากตารางทไม
อนญาตในการใชงานผานเครอขาย ขนตอนแรกจะทาการเรยกอานคา MAC
address ของอปกรณนนมาแสดงผล จากนนเมอถกทาการเลอก MAC address
ทตองการแลว โปรแกรมจะนา MAC address นนไปอางองการคนหาคาเพอใช
ขอมลอนๆของ MAC address นดวยขณะการยายขอมล เมอสามารถคนหาได
แลวจะทาการลบขอมลในตารางเดม และทาการบนทกคาทอานไดกอนหนาท
ในตารางสวนทไดรบอนญาตในการเขาถงเครอขายตอไป ซงสามารถแสดง
กระบวนการทางานไดดงรปท 3.19 และ Flow chart ดงรปท 3.20
DatabaseProgram
Table_name1Table_name2
รปท 3.21 Diagram การทางาน การเปลยนสทธการใขงานของ
อปกรณ
40
Start
Get data from database to display
on GUIDatabase
Create GUI component
“Get Data” button is pressed
Yes
Select database with data that been
chosen previous Then delete and
insert in other table
Choose “Data” and “Change
table” button is pressed
Yes
Listener for “Change table” button
No
Listener for “Get data” button
No
รปท 3.22 Flow chart การทางาน การเปลยนสทธการใขงานของ
อปกรณ
41
3.4 โครงสรางฐานขอมล
ในสวนนเปนสวนการออกแบบโครงสรางของฐานขอมล โดยในโปรแกรมนจะมเพยงแค
ฐานขอมลเดยวเทานน แตภายในนนจะแบงออกเปน 2 ตารางทมโครงสรางเหมอนกน ดงน
ตารางท 3.1 รายละเอยดตารางสวนทอนญาตในการเขาถง
ชอขอมล ชนด ความหมาย
mac_c varchar(17) MAC address ของอปกรณในเครอขายทดก
จบได
ip_c varchar(16) IP address ของอปกรณในเครอขายทดกจบได
iptar_c varchar(16) IP address target ของอปกรณในเครอขายท
ตองการมการเชอมตอ
time_c varchar(20) เวลาทดกจบ ARP packet อปกรณไดในครง
แรก
time2_c varchar(20) เวลาทดกจบ ARP packet อปกรณไดในครง
ลาสด
status_c varchar(5) สถานะการคงอยในเครอขาย
ตารางท 3.2 รายละเอยดตารางสวนทไมอนญาตในการเขาถง
ชอขอมล ชนด ความหมาย
mac_c varchar(17) MAC address ของอปกรณในเครอขายทดก
จบได
ip_c varchar(16) IP address ของอปกรณในเครอขายทดกจบได
iptar_c varchar(16) IP address target ของอปกรณในเครอขายท
ตองการมการเชอมตอ
time_c varchar(20) เวลาทดกจบ ARP packet อปกรณไดในครง
แรก
time2_c varchar(20) เวลาทดกจบ ARP packet อปกรณไดในครง
ลาสด
status_c varchar(5) สถานะการคงอยในเครอขาย
42
บทท 4
การทดลอง
4.1 โครงสรางของระบบทใชในการทดลอง
ADSL Router
Computer A192.168.1.106
a0:99:9b:0f:51:71(PARP)
Ipad mini192.168.1.103
6c:70:9f:4b:e3:78
Android phone192.168.1.100
A0:32:99:4d:4b:cd
Computer B192.168.1.104
60:57:18:9b:83:36
192.168.1.1e8:94:f6:49:cf:77
Internet
รปท 4.1 โครงสรางของระบบทใชในการทดลอง
4.1.1 เครองมอทใชในการทดลอง
Software
- Windows 8.1
- Java Runtime Environment (JRE)
- Java Developer Kit (JDK)
- Netbean 8.1
- MySQL 5.7.10
43
- Wireshark
- Ping Application
- PARP (Play ARP)
Hardware
- ADSL Wireless Router 1 เครอง
- Personal Notebook Computer 2 เครอง
- Tablet or smart phone 2 เครอง
4.2 การ Login เขาใชงาน
4.2.1 การ login ดวย user และ password ทถกตอง
รปท 4.2 หนาตางการ login เขาสโปรแกรม
จากรปท 4.2 การเรมตนการใชงานโปรแกรมในสวนแรกทจะทาการแสดงผล
ขนมานน คอสวนของการใส user และ password ซง user และ password ทถกใชนน
จะเปน user และ password ในการเชอมตอเขากบฐานขอมล MySQL ทมการตดตงอย
แลวไวสาหรบทาการเกบขอมลตางๆของตวโปรแกรม เมอทาการ login ดวย user และ
password ทถกตองแลวกระบวนการถดไปจะเปนการดงขอมลมาจากฐานขอมลนน
จากนนจะนาขอมลทอานไดจากฐานขอมลมาทาการแสดงผล ซงจะแสดงผลดงรปท 4.3
44
รปท 4.3 ผลของการ login ถกตอง
4.2.2 การ login ดวย user และ password ทไมถกตอง
รปท 4.4 หนาตางแจงเตอนกรณ login ดวย user และ password ไมถกตอง
จากรปท 4.4 แสดงผลในกรณทมการ login ดวย user และ password สาหรบ
การเขาถงฐานขอมลทไมถกตองจะม dialog message ขนมาแสดงเตอนวาการ login
ไมสาเรจ ตวโปรแกรมจงไมสามารถทจะไปดงขอมลจากฐานขอมลมาแสดงผลได ซง
อาจจะหมายความไดอกวา ตวโปรแกรมจะไมสามารถตดตอกบ ฐานขอมลไดนนเอง
45
4.3 การเลอก Network Interface Card
รปท 4.5 การเลอก Network Interface Card
จากรปท 4.5 แสดงผลของการอานคาของ Network interface card จากอปกรณทมการ
ใชงานโปรแกรมอย สวนในรปท 4.6 แสดงใหเหนวาในอปกรณทมการใชงาน นนม Network
interface card ใดอยบางจากการใชการ run cmd บน Windows OS โดยจะทาการอางองกบ IP
address ของแตละ Network interface card
รปท 4.6 ผลการตรวจสอบ Network Interface Card ผาน cmd
46
4.4 การสง ARP Packet
4.4.1 การทดสอบการปองกนการเขาใชงานเครอขาย
ในการปองกนการเขาถงเครอขายโดยใช ARP packet สามารถทาไดหลายวธ
โดยการเปลยนแปลง parameter บางคาใน ARP packet เราสามารถแบงการออกได
ประมาณ 4 วธ
4.4.1.1 การสง ARP reply (unicast)
อางองจากรปท 4.1 โดยจะสง ARP packet จาก Computer A ไปยง
Computer B เพอปองกนไมให Computer B สามารถใชงาน Internet ผาน
เครอขายได รปแบบ parameter ของ ARP packet แสดงดงรปท 4.7 สวนรปท
4.8 แสดงการดกจบ ARP packet ท Computer A และ รปท 4.9 แสดงการดก
จบ ARP packet ท Computer B
Opcode : reply (2)Sender MAC address : aa:aa:aa:aa:aa:aa (fake)Sender IP address : 192.168.1.1Target mac address : 60:57:18:9b:83:36Target IP address : 192.168.1.104
รปท 4.7 รปแบบ Parameter ของ ARP reply (unicast)
รปท 4.8 การดกจบ ARP reply (unicast) ท Computer A
47
รปท 4.9 การดกจบ ARP reply (unicast) ท Computer B
รปท 4.10 ผลจากการถกสง ARP reply (unicast) ดวย MAC address ทไมถกตอง
จากรปท 4.10 การทดลอง Computer B จะมการ ping ออกไปยง
Internet โดยใชหมายเลข IP 8.8.8.8 ซงเปน DNS ของ Google อยตลอดเวลา
แตจากการท Computer A ทาการสง ARP packet มายง Computer B ทาให
MAC address ทไปยง ADSL router เปลยนไป ทาให Computer B ไมสามารถ
ping ไปยง IP 8.8.8.8 ได และจากรปท 4.11 จะแสดง ARP cache table ท
Computer B
48
รปท 4.11 ARP cache table ท Computer B กรณ ARP reply (unicast)
4.4.1.2 การสง ARP reply (broadcast)
อางองจากรปท 4.1 โดยจะสง ARP packet จาก Computer A ไปยง
Computer B เพอปองกนไมให Computer B สามารถใชงาน Internet ผาน
เครอขายได รปแบบ parameter ของ ARP packet แสดงดงรปท 4.12 สวนรป
ท 4.13 แสดงการดกจบ ARP packet ท Computer A และ รปท 4.14 แสดง
การดกจบ ARP packet ท Computer B
Opcode : reply (2)Sender MAC address : aa:aa:aa:aa:aa:aa (fake)Sender IP address : 192.168.1.1Target mac address : ff:ff:ff:ff:ff:ffTarget IP address : 192.168.1.104
รปท 4.12 รปแบบ Parameter ของ ARP reply (broadcast)
49
รปท 4.13 การดกจบ ARP reply (broadcast) ท Computer A
รปท 4.14 การดกจบ ARP reply (broadcast) ท Computer B
50
รปท 4.15 ผลจากการถกสง ARP reply (broadcast) ดวย MAC address ทไมถกตอง
จากรปท 4.15 การทดลอง Computer B จะมการ ping ออกไปยง
Internet โดยใชหมายเลข IP 8.8.8.8 ซงเปน DNS ของ Google อยตลอดเวลา
แตจากการท Computer A ทาการสง ARP packet มายง Computer B ทาให
MAC address ทไปยง ADSL router เปลยนไป ทาให Computer B ไมสามารถ
ping ไปยง IP 8.8.8.8 ได และจากรปท 4.16 จะแสดง ARP cache table ท
Computer B
รปท 4.16 ARP cache table ท Computer B กรณ ARP reply (broadcast)
51
4.4.1.3 การสง ARP request (unicast)
อางองจากรปท 4.1 โดยจะสง ARP packet จาก Computer A ไปยง
Computer B เพอปองกนไมให Computer B สามารถใชงาน Internet ผาน
เครอขายได รปแบบ parameter ของ ARP packet แสดงดงรปท 4.17 สวนรป
ท 4.18 แสดงการดกจบ ARP packet ท Computer A และ รปท 4.19 แสดง
การดกจบ ARP packet ท Computer B
Opcode : request (1)Sender MAC address : aa:aa:aa:aa:aa:aa (fake)Sender IP address : 192.168.1.1Target mac address : 60:57:18:9b:83:36Target IP address : 192.168.1.104
รปท 4.17 รปแบบ Parameter ของ ARP request (unicast)
รปท 4.18 การดกจบ ARP request (unicast) ท Computer A
52
รปท 4.19 การดกจบ ARP request (unicast) ท Computer B
รปท 4.20 ผลจากการถกสง ARP request (unicast) ดวย MAC address ทไมถกตอง
จากรปท 4.20 การทดลอง Computer B จะมการ ping ออกไปยง
Internet โดยใชหมายเลข IP 8.8.8.8 ซงเปน DNS ของ Google อยตลอดเวลา
แตจากการท Computer A ทาการสง ARP packet มายง Computer B ทาให
MAC address ทไปยง ADSL router เปลยนไป ทาให Computer B ไมสามารถ
ping ไปยง IP 8.8.8.8 ได และจากรปท 4.21 จะแสดง ARP cache table ท
Computer B
53
รปท 4.21 ARP cache table ท Computer B กรณ ARP request (unicast)
4.1.1.4 การสง ARP request (broadcast)
อางองจากรปท 4.1 โดยจะสง ARP packet จาก Computer A ไปยง
Computer B เพอปองกนไมให Computer B สามารถใชงาน Internet ผาน
เครอขายได รปแบบ parameter ของ ARP packet แสดงดงรปท 4.17 สวนรป
ท 4.18 แสดงการดกจบ ARP packet ท Computer A และ รปท 4.19 แสดง
การดกจบ ARP packet ท Computer B
Opcode : request (1)Sender MAC address : aa:aa:aa:aa:aa:aa (fake)Sender IP address : 192.168.1.1Target mac address : ff:ff:ff:ff:ff:ffTarget IP address : 192.168.1.104
รปท 4.22 รปแบบ Parameter ของ ARP request (broadcast)
54
รปท 4.23 การดกจบ ARP request (broadcast) ท Computer A
รปท 4.24 การดกจบ ARP request (broadcast) ท Computer B
55
รปท 4.25 ผลจากการถกสง ARP request (broadcast) ดวย MAC address ทไมถกตอง
จากรปท 4.20 การทดลอง Computer B จะมการ ping ออกไปยง
Internet โดยใชหมายเลข IP 8.8.8.8 ซงเปน DNS ของ Google อยตลอดเวลา
แตจากการท Computer A ทาการสง ARP packet มายง Computer B ทาให
MAC address ทไปยง ADSL router เปลยนไป ทาให Computer B ไมสามารถ
ping ไปยง IP 8.8.8.8 ได และจากรปท 4.21 จะแสดง ARP cache table ท
Computer B
รปท 4.26 ARP cache table ท Computer B กรณ ARP request (broadcast)
56
4.4.2 การตรวจสอบเครอขายในลกษณะ host-to-gateway
การทางานจะเรมตนเมอมการกดป ม “Scan host to gateway” ดงรปท
4.27 โดยอางองกบรปท 4.1 จากนนตวโปรแกรม ท Computer A จะเรมทา
การสง ARP packet แสดงขอมล parameter ดงรปท 4.28 ไปยงทก IP บน
subnet เมอคาใน parameter “Target MAC address” กบ “Target IP address”
ตรงกบ Computer B ดงรปท 4.29 Computer B จะตอบกลบไปยง Computer
A ดวยดงแสดงดงรปท 4.30 ทาใหโปรแกรมสามารถตรวจสอบไดวา Computer
B อยในระบบดงรปท 4.31
รปท 4.27 ป มกด Scan host to gateway
Opcode : request (1)Sender MAC address : a0:99:9b:0f:51:71Sender IP address : 192.168.1.106Target mac address : ff:ff:ff:ff:ff:ffTarget IP address : 192.168.1.1-254
รปท 4.28 รปแบบ Parameter ของ ARP request ในการ scan network host to
gateway
57
รปท 4.29 การดกจบ ARP packet กรณตรงกบ Computer B
รปท 4.30 การดกจบ ARP packet กรณท Computer B ตอบกลบ
58
รปท 4.31 ผลการการดกจบ ARP packet หลงจากการ scan ทตวโปรแกรม
4.4.3 การตรวจสอบเครอขายในลกษณะ host-to-host
จะทาการจาลองหากมการเชอมตอกนระหวาง Computer B กบ Ipad
mini โดยอปกรณทงสองจะทาการ ping หากนกอนทจะมการเปดใชงาน
โปรแกรม การทางานจะเรมตนเมอมการกดป ม “Scan host to host” ดงรปท
4.32 โดยจะทาการอางองกบรปท 4.1 จากนนตวโปรแกรม ท Computer A จะ
เรมทาการสง ARP packet แสดงขอมล parameter ดงรปท 4.33 ไปยง IP ทก
IP ทอยบนตารางทไมอนญาตใหมการใชงานผานเครอขาย ซงสามารถทาการ
ดกจบ ARP packet ท Computer A สงไปยง Computer B ดงรปท 4.34 และ
Computer B ดงรปท 4.35 เมอ Computer B ไดรบ ARP packet จะทาการสง
packet ดงรปท 4.36 นนจะทาให Computer A หรอ ตวโปรแกรมสามารถดก
จบ ARP packet นไวไดแสดงดงรปท 4.37 และ 4.38 ตามลาดบ
59
รปท 4.32 ป ม Scan host to host
Opcode : request (1)Sender MAC address : a0:99:9b:0f:51:71Sender IP address : 192.168.1.103Target mac address : 60:57:18:9b:83:36Target IP address : 192.168.1.104
รปท 4.33 รปแบบ Parameter ของ ARP request ในการ scan network host to host
60
รปท 4.34 ผลการดกจบ ARP packet ท Computer A สงไปยง Computer B
รปท 4.35 ผลการดกจบ ARP packet ท Computer B รบไดจาก Computer A
61
รปท 4.36 ผลการดกจบ ARP packet ท Computer B สงออกมาหลงรบ ARP
packet จาก Computer A
รปท 4.37 ผลการดกจบ ARP packet ท Computer A สามารถดกจบ ARP
packet จาก Computer B
62
รปท 4.38 ผลของการดกจบบนสวนแสดงผลของตวโปรแกรม
4.4.4 การปองกนการเขาใชงานเครอขายดวย ARP reply
ในการปองกนของตวโปรแกรมจะทาการอานคาจากตารางสวนทไม
อนญาตในการใชงานผานเครอขายโดยในสวน Computer A ทมการใชงาน
โปรแกรม แสดงดงรปท 4.39 และ 4.40 และท Computer B แสดงดงรปท
4.41 และ 4.42
รปท 4.39 ป มกดเรมการปองกนเครอขาย
63
รปท 4.40 การดกจบ ARP packet ท Computer A สงออกมา
รปท 4.41 การดกจบ ARP packet ท Computer B
64
รปท 4.42 ผลของ ARP cache table ท Computer B
4.5 การดกจบ ARP Packet
4.5.1 การดกจบ ARP reply
การทดลองการดกจบ ARP reply จะทาการเปรยบเทยบตวโปรแกรม PARP
กบ Wireshark ท Computer A โดยทาการสง ARP request ไป Computer B เพอให
Computer B ทาการสง ARP reply กลบมา แสดงดงรป 4.43 4.44 และ 4.45 ตามลาดบ
รปท 4.43 ผลของโปรแกรมกรณยงไมไดดกจบ ARP reply
65
รปท 4.44 ผลการดกจบ ARP reply ทมาจาก Computer B
รปท 4.45 ผลของโปรแกรมกรณเมอมการดกจบ ARP reply
4.5.2 การดกจบ ARP request
การทดลองการดกจบ ARP request จะทาการเปรยบเทยบตวโปรแกรม
PARP กบ Wireshark ท Computer A โดยการเรมการเชอมตอการเขาสเครอขายใหม
ของ Computer B แสดงดงรป 4.46 , 4.47 และ 4.48 ตามลาดบ
66
รปท 4.46 ผลของโปรแกรมกรณยงไมไดดกจบ ARP request
รปท 4.47 ผลการดกจบ ARP request ทมาจาก Computer B
67
รปท 4.48 ผลของโปรแกรมกรณเมอมการดกจบ ARP request
68
บทท 5
สรปผลการดาเนนงาน
5.1 ผลการดาเนนโครงการ
จากการทดสอบการทางานของโปรแกรมการปองกนการเขาถงเครอขายเบองตนใน
ระดบเลเยอรท 2 สามารถทาการดกจบ ARP packet ทงประเภท ARP reply และ request
สามารถนา ARP packet ทดกจบมาทาการตรวจสอบรวมกบฐานขอมลทมอยไดรวมถงทาการ
บนทก ARP packet ลงไปยงฐานขอมลและสามารถนามาแสดงผลในสวนของ GUI ไดอยาง
ถกตอง ขนตอนระหวางทาการบนทกขอมลตวโปรแกรมยงสามารถทาการบนทกเวลาทสามารถ
ทาการดกจบ ARP packet ไดทาใหสามารถระบไดวาเวลาทดกจบไดเปนเวลาใดเปนครงแรก
และเวลาลาสดรวมถงยงมการแสดงสถานะของอปกรณอกดวย
สวนการแสดงผลของโปรแกรม หรอ GUI จะแสดงผลในสวนของผทไดรบอนญาตใน
การเขาถงเครอขาย และผทไมไดรบอนญาต รวมถงตวชวยตางๆในการจดการอปกรณท
สามารถดกจบได เชน การทตวโปรแกรมสามารถทาการจดการสทธการใชงานผานเครอขาย
เปนตน
5.2 ปญหาและอปสรรค
ปญหาทพบคอกอนทจะเปดใชงานโปรแกรม ในการทางานในสวนของการ
คนหาอปกรณทมการเชอมตอกนอยระหวางอปกรณดวยกนเอง การทางานของโปรแกรม
สามารถคนหาไดอปกรณดงกลาวไดแตจะไมสามารถทาการตรวจสอบตารางสวนทอนญาตใน
การเขาถงเครอขายเนองจากการตรวจสอบในลกษณะนเปนการสง ARP request ออกไปดวย
MAC address ทไมถกตองอปกรณทรบการตรวจสอบจะมอาการหลดจากการเชอมตอระหวาง
อปกรณดวยกนเปนชวงเวลาสนๆทาใหไมเหมาะกบการใชตรวจสอบกบตารางสวนทไดรบ
อนญาตในการเขาถงเครอขายรวมถงทาใหสถานะจะไมอพเดทไปดวย อกกรณหนงคอในการสง
ARP packet ของโปรแกรม จะทา ARP cache table ของตวอปกรณทใชงานโปรแกรมอยจะม
การเปลยนตามการสง ARP packet สามารถแกไขไดดวยการ fix ARP cache table
โปรแกรมปองกนการเขาถงเครอขายเบองตนในระดบเลเยอรท 2 จะใชการโจมตในสวน
ของ ARP เปนตวชวยในการปองกนการเขาถงซงหากเครอขายทใชงานอยมอปกรณจาพวก
switch ทอยในระดบ enterprise grade อปกรณเหลานสวนใหญจะม feature ในการปองกนการ
โจมตชนดนอยภายในอปกรณ ทาใหโปรแกรมไมสามาถใชงานไดในเงอนไขน
นอกเหนอจากปญหาทกลาวมาขางตนในสวนของตวโปรแกรมจะมขอจากดในดานการ
ถกจากดขนาดของเครอขายท ใชจะมขนาดเ ปนเท ากบ class C หรอ subnet mask
255.255.255.0 เทานน
69
5.3 แนวทางในการพฒนา
เนองจากโปรแกรมนสามารถทาการดกจบ ARP packet ไดเพยงเครอขายเดยว
เนองจากขอจากดของ Protocol หากตองการทาการตรวจสอบไดหลายๆเครอขายพรอมกน
อาจจะพฒนาในรปแบบของ agent ทางานรวมกบ Web server ในลกษณะ Server - Client
สาหรบการจดการและ Monitor อปกรณในหลายๆเครอขาย รวมถงสามารถพฒนาในลกษณะ
การแจงเตอนไปท Client หากอปกรณทใชงานอยไมไดถกอนญาตในการเขาถงเครอขาย
ในสวนของการโจมตหากโดยปกตจะไมมการปกปดตวตน เพอเพมสวนของ
ประสทธภาพของตวโปรแกรมในการพฒนาการปกปดตวตน สามารถเพมการโจมตในอก
ลกษณะหนงทเรยกวา MAC spoofing เขาไปได
70
เอกสารอางอง
[1] Behrouz A. Forouzan, TCP/IP protocol suite 4th ed. R. R. Donnelley
Crawfordsville, IN:Raghothaman Srinivasan, 2010.
[2] Charles M. Kozierok, The TCP/IP guide : a comprehensive, illustrated
internet protocols reference. San Francisco:No Strach Press, Inc., 2005
[3] ผศ.สดา เธยรมนตร, คมอการเรยนเขยนโปรแกรมภาษา Java ฉบบสมบรณ (2nd
Edition). นนทบร:ไอดซฯ, 2556
[4] ธวชชย ชมศร, Computer and Network Security. กรงเทพฯ:โปรวชน, 2553
[5] Wikipedia (2016). "MAC address". [Online]. Available:
https://en.wikipedia.org/wiki/MAC_address
[6] Wikipedia (2559). "มายเอสควเอล". [Online]. Available:
https://th.wikipedia.org/wiki/มายเอสควเอล
[7] Github (2014). "Jpcap". [Online]. Available:
https://github.com/mgodave/Jpcap
71
ภาคผนวก ก
คมอการตดตงและใชงาน
1. การตดตงโปรแกรม
โปรแกรมและ library ทตองทาการตดตง
- MySQL
- WinPcap
- Java Runtime Environment (JRE) 32 bit
- Jpcap library
1.1 ขนตอนการตดตง MySQL
สามารถ download ไดท dev.mysql.com
รปท ก-1 ขนตอนการตดตง MySQL (1)
ก-2
รปท ก-2 ขนตอนการตดตง MySQL (2)
รปท ก-3 ขนตอนการตดตง MySQL (3)
ก-3
รปท ก-4 ขนตอนการตดตง MySQL (4)
รปท ก-5 ขนตอนการตดตง MySQL (5)
ก-4
รปท ก-6 ขนตอนการตดตง MySQL (6)
รปท ก-7 ขนตอนการตดตง MySQL (7)
ก-5
รปท ก-8 ขนตอนการตดตง MySQL (8)
รปท ก-9 ขนตอนการตดตง MySQL (9)
ก-6
รปท ก-10 ขนตอนการตดตง MySQL (10)
รปท ก-11 ขนตอนการตดตง MySQL (11)
ก-7
รปท ก-12 ขนตอนการตดตง MySQL (12)
รปท ก-13 ขนตอนการตดตง MySQL (13)
ก-8
1.2 ขนตอนการตดตง WinPcap
สามารถ download ไดท www.winpcap.org
รปท ก-14 ขนตอนการตดตง WinPcap (1)
รปท ก-15 ขนตอนการตดตง WinPcap (2)
ก-9
รปท ก-16 ขนตอนการตดตง WinPcap (3)
รปท ก-17 ขนตอนการตดตง WinPcap (4)
1.3 ขนตอนการตดตง Java Runtime Environment (JRE)
สามารถ download ไดท www.oracle.com
ก-10
รปท ก-18 ขนตอนการตดตง Java Runtime Environment (JRE) (1)
รปท ก-19 ขนตอนการตดตง Java Runtime Environment (JRE) (2)
ก-11
รปท ก-20 ขนตอนการตดตง Java Runtime Environment (JRE) (3)
รปท ก-21 ขนตอนการตดตง Java Runtime Environment (JRE) (4)
ก-12
รปท ก-22 ขนตอนการตดตง Java Runtime Environment (JRE) (5)
รปท ก-23 ขนตอนการตดตง Java Runtime Environment (JRE) (6)
ก-13
1.4 ขนตอนการตดตง Jpcap library
สามารถ download ได
ท www.github.com/mgodave/Jpcap
1.4.1 ไปท folder src ใน Jpcap ดงรปท ก 24
รปท ก-24 ขนตอนการตดตง Jpcap library (1)
รปท ก-25 ขนตอนการตดตง Jpcap library (2)
ก-14
1.4.2 ทาการคดลอก Jpcap.dll ไปวางไวท folder ดง
รปท ก 26
รปท ก-26 ขนตอนการตดตง Jpcap library (3)
2. ขนตอนการใชงานโปรแกรม
2.1 การเปดใชงานโปรแกรม
ในการเปดใชงานใหทาไฟลนามสกล jar ของตว
โปรแกรมจากนนทาการ login ดวย user และ password
ของ MySQL server ทไดมการตดตงไปกอนหนาน แสดงดง
รปท ก 27
รปท ก-27 ขนตอนการใชงานโปรแกรม (1)
2.2 การเลอก Network Interface Card
ก-15
หลงจากเปดโปรแกรมขนตอนถดไปควรทาการเลอก
Network Interface Card เพอใชสาหรบการดกจบและสง
ขอมล แสดงการเลอก Network Interface Card ดงรปท ก
28 เมอทาการเลอกเสรจแลวใหทาการกดป ม “Select” เพอ
ยนยนการเลอก แสดงดงรปท ก 29
รปท ก-28 ขนตอนการใชงานโปรแกรม (2)
รปท ก-29 ขนตอนการใชงานโปรแกรม (3)
2.3 การใส IP และ MAC address ของ Gateway
ก-16
เมอทาหารเลอก Network Interface Card เรยบรอย
แลวใหทาการใสคา IP และ MAC address ของ Gateway ดงรป
ท ก 30 เมอใสขอมลเรยบรอยแลว ใหทาการบนทกคา ดงรปท ก
31
รปท ก-30 ขนตอนการใชงานโปรแกรม (4)
รปท ก-31 ขนตอนการใชงานโปรแกรม (5)
2.4 การเรมการดกจบขอมล
ก-17
โปรแกรมจะเรมทางานในสวนของการดกจบเครอขาย
หลงจากกดป ม Start Capture ดงรปท ก 32
รปท ก-32 ขนตอนการใชงานโปรแกรม (6)
2.5 การตรวจสอบเครอขาย
จะใชการตรวจสอบเครอขายในตอนเรมตน ในกรณเมอ
หากอยากจะรวาในเครอขายมใครใชงานอยบาง หากพบวาม
อปกรณใดใชงานอยจะนาคา IP และ MAC address มาใชในการ
อางองการตรวจสอบตอไป ดงรปท ก 33แสดงการตรวจสอบ
เครอขายในตอนเรมตนโดยการกดป ม Scan host to gateway
นอกเหนอจากการตรวจสอบเครอขายลกษณะนยงมการ
ตรวจสอบเครอขายอกลกษณะหนงหรอการกดป ม Scan host to
host เปนลกษณะการตรวจสอบเครอขายระหวางอปกรณดวย
กนเองยกเวน Gateway ซงในการตรวจสอบเรมตนควรใชป ม
Scan host to host หลงกจากทกดป ม Scan host to gateway
แสดงป มกด Scan host to host ดงรปท ก-34
ก-18
รปท ก-33 ขนตอนการใชงานโปรแกรม (7)
รปท ก-34 ขนตอนการใชงานโปรแกรม (8)
ก-19
2.6 การสงขอมลเพอปองกนการเขาถงเครอขาย
การปองกนการเขาถงเครอขายจะใชการสง ARP packet
ออกไปยงเปาหมายโดยอางองกบอปกรณทพบอยบนเครอขาย
จากขนตอนทผานมาขางตน การเรมตนการสง ARP packet
โดยการกดป ม Start Send ดงรปท ก 35 และสามารถทาการ
หยดการสงไดดงรปท ก 36
รปท ก-35 ขนตอนการใชงานโปรแกรม (9)
รปท-ก 36 ขนตอนการใชงานโปรแกรม (10)
ก-20
2.7 การเปลยนสทธในการเขาถงเครอขาย
สทธในการเขาถงเครอขายตวโปรแกรมจะทาการอางองจาก
ตารางทแสดงอยโดยจะแบงตารางออกเปน 2 ตารางดวยกน คอ
1. Blacklist table 2. Permit table การเปลยนสทธเรมแรกจะ
กระทาโดยการเลอกตารางทตองการทจะเลอกโดยเลอกตาราง
ซงแสดงดงรปท ก 37 ตอมาใหเลอกกดป ม Get Data ดงแสดง
ดงรปท ก 38 เพอเรยกขอมลอปกรณจากตารางนนมาแสดงใน
ชองตวเลอกขางลาง จากนนจะทาการเลอกอปกรณทตองการจะ
เปลยนสทธแสดงดงรปท ก 39 เมอเลอกอปกรณไดเรยบรอย
แลวจะทาการเปลยนอปกรณใหอยในตารางทตองการโดยการ
กดป ม Change Table ดงแสดงในรปท 40 จะเหนไดวาอปกรณ
จะถกเปลยนสทธไปอยในอกตารางหนง
รปท ก-37 ขนตอนการใชงานโปรแกรม (11)
ก-21
รปท ก-38 ขนตอนการใชงานโปรแกรม (12)
รปท ก-39 ขนตอนการใชงานโปรแกรม (13)
ก-22
รปท ก-40 ขนตอนการใชงานโปรแกรม (14)
2.8 การลบอปกรณทตรวจสอบพบ
การลบอปกรณจะอางองกบในตารางทงสองตารางโดย
จะตองทาการเลอกตารางกอน จากนนทาการเลอกอปกรณใน
ตารางนนแลวทาการกดป ม Delete MAC แสดงดงรปท ก 41
และ ก 42
รปท ก-41 ขนตอนการใชงานโปรแกรม (15)
ก-23
รปท ก-42 ขนตอนการใชงานโปรแกรม (16)
ก-24