2
บทความ Cyber Threats 2011
โดย ThaiCERT
ชื่อเรื่อง บทความ Cyber Threats 2011 โดย ThaiCERT
เรียบเรียงโดย นายสรณันท์ จิวะสุรัตน์, นายเสฏฐวุฒิ แสนนาม,
นายไพชยนต์ วิมุกตะนันทน์, นายศุภกรณ์ ฤกษ์ดิถีพร,
นายพรพรหม ประภากิตติกุล, นายเจษฎา ช้างสีสังข์,
นายวิศัลย์ ประสงค์สุข และ ทีมไทยเซิร์ต
เลข ISBN : 978-974-9765-32-6
พิมพ์ครั้งที่ 1 ธันวาคม 2554
พิมพ์จานวน 1,000 เล่ม
ราคา 200 บาท
สงวนลิขสิทธิ์ตามพระราชบัญญัติลิขสิทธิ์ พ.ศ. 2537
จัดพิมพ์และเผยแพร่โดย
ศูนย์ประสานงานการรักษาความมั่นคงระบบคอมพิวเตอร์ประเทศไทย (ThaiCERT)
สานักงานพัฒนาธุรกรรมทางอิเล็กทรอนิกส์ (องค์การมหาชน) หรือ สพธอ.
เลขที่ 120 หมู่ 3 ศูนย์ราชการเฉลิมพระเกียรติ 80 พรรษา 5 ธันวาคม 2550
ถนนแจ้งวัฒนะ แขวงทุ่งสองห้อง เขตหลักสี่ กรุงเทพฯ 10210
โทรศัพท์ 0-2142-2483
โทรสาร 0-2143-8071
เว็บไซต์ไทยเซิร์ต http://www.thaicert.or.th
เว็บไซต์ สพธอ. http://www.etda.or.th
เว็บไซต์กระทรวงฯ http://www.mict .or.th
3
บทความ Cyber Threats 2011
โดย
4
5
คานา
ศูนย์ประสานงานการรักษาความมั่นคงระบบคอมพิวเตอร์
ประเทศไทย หรือไทยเซิร์ต ได้เริ่มดาเนินการภายใต้สานักงานพัฒนาธุรกรรมทาง
อิเล็กทรอนิกส์ (องค์การมหาชน) กระทรวงเทคโนโลยีสารสนเทศและการสื่อสาร
มาตั้งแต่วันที่ 1 กรกฎาคม พ.ศ. 2554 โดยให้บริการรับแจ้งเหตุภัยคุกคามด้าน
สารสนเทศ และประสานงานกับหน่วยงานที่เกี่ยวข้องในการแก้ไขปัญหาที่ได้รับแจ้ง
ไทยเซิร์ตมีวิสัยทัศน์ให้สังคมออนไลน์มีความมั่นคงปลอดภัย เกิดความเชื่อมั่นกับ
ผู้ทาธุรกรรมทางอิเล็กทรอนิกส์ และมีพันธกิจมุ่งเน้นการประสานงานกับหน่วยงาน
ในเครือข่าย และหน่วยงานที่เกี่ยวข้องในการดาเนินการแก้ไขเหตุภัยคุกคามด้าน
สารสนเทศที่ได้รับแจ้ง
ไทยเซิร์ตมีพันธกิจเชิงรุกในการเพิ่มขีดความสามารถของทรัพยากรบุคคลด้านการ
รักษาความมั่นคงปลอดภัยสารสนเทศ และมีกิจกรรมสร้างความตระหนักและ
พัฒนาทักษะความรู้ต่างๆ เช่น การซักซ้อมรับมือภัยคุกคามด้านสารสนเทศ และ
การแลกเปลี่ยนและเผยแพร่ข้อมูลข่าวสารเกี่ยวกับภัยคุกคามด้านสารสนเทศ
หนังสือเล่มนี้เป็นรวบรวมบทความที่ได้เผยแพร่ผ่านเว็บไซต์ของไทยเซิร์ต
(www.thaicert.or.th) ในช่วงระยะเวลาวันที่ 1 กรกฎาคม - 30 พฤศจิกายน พ.ศ.
2554 ซึ่งมีเนื้อหาสาหรับกลุ่มบุคคลทั่วไป และผู้ดูแลระบบสารสนเทศ ผู้จัดทาหวัง
เป็นอย่างยิ่งว่าหนังสือเล่มนี้ จะมีส่วนช่วยในการสร้างภูมิคุ้มกันให้กับสังคมออนไลน์
ของประเทศไทย
คณะผู้จัดทา
ศูนย์ประสานงานการรักษาความมั่นคงระบบคอมพิวเตอร์ประเทศไทย
สานักงานพัฒนาธุรกรรมทางอิเล็กทรอนิกส์ (องค์การมหาชน)
6
7
สารบัญ
หน้า
คานา........................................................................................................................5
สารบัญ.....................................................................................................................7
สารบัญรูป...............................................................................................................13
สารบัญตาราง.........................................................................................................15
ความรู้ทั่วไป.....................................................................................17
1. ความเป็นมาของไทยเซิร์ต จากกระทรวงวิทย์ฯ สู่กระทรวงไอซีที................19
1.1 บริการของไทยเซิร์ต..............................................................................20
1.2 สถิติภัยคุกคามที่รายมาที่ไทยเซิร์ต........................................................22
1.3 ช่องทางการติดต่อกับไทยเซิร์ต..............................................................26
2. ข้อเสนอแนะกรอบขั้นตอนการปฏิบัติงานการรับมือภัยคุกคามด้านเทคโนโลยี
สารสนเทศและการสื่อสาร................................................................................27
2.1 เอกสารอ้างอิง........................................................................................30
3. Fall of SSL???.............................................................................................35
3.1 เอกสารอ้างอิง........................................................................................41
4. ข้อแนะนาในการใช้งาน Social Media สาหรับผู้ใช้งานทั่วไป.....................43
4.1 การใช้งานรหัสผ่านอย่างมั่นคงปลอดภัย...............................................43
4.2 การใช้บริการสื่อและเครือข่ายสังคมทางเว็บอย่างมั่นคงปลอดภัย........45
4.3 การใช้งานคอมพิวเตอร์อย่างมั่นคงปลอดภัย.........................................46
8
5. การจัดการไดเรกทอรีและไฟล์ในระบบยูนิกซ์..............................................49
5.1 ไดเรกทอรีและไฟล์ในระบบยูนิกซ์.........................................................49
5.2 โครงสร้างของไดเรกทอรีในระบบยูนิกซ์................................................50
5.3 คาสั่งที่เกี่ยวข้องกับการใช้งานไดเรกทอรีและไฟล์................................51
5.4 การกาหนดสิทธิการใช้งาน (Permission) ............................................58
5.5 เอกสารอ้างอิง........................................................................................64
6. การบริหารจัดการผู้ใช้บนระบบ UNIX.........................................................65
6.1 ประเภทของผู้ใช้....................................................................................65
6.2 ไฟล์ที่ใช้กาหนดค่าให้กับผู้ใช้.................................................................66
6.3 คาสั่งพื้นฐานที่ใช้บริหารจัดการผู้ใช้บนระบบ........................................71
6.4 เอกสารอ้างอิง........................................................................................74
7. คาสั่งที่เกี่ยวข้องกับการประมวลผลข้อความในระบบปฏิบัติการ UNIX.......77
7.1 ตัวอย่างคาสั่งที่เกี่ยวข้องกับการประมวลผลข้อความที่ใช้งานบ่อย.......77
7.2 เอกสารอ้างอิง........................................................................................87
8. เพิ่มความปลอดภัยให้ SSH Server ด้วย Key Authentication................89
8.1 วิธีการใช้งาน Secure Shell (SSH) ด้วย Key Authentication.........91
8.2 เอกสารอ้างอิง........................................................................................97
9. เชื่อมต่ออย่างปลอดภัยด้วย SSH Tunnel...................................................99
9.1 การทา Local Port Forward และ Remote Port Forward.........100
9.2 เอกสารอ้างอิง.....................................................................................106
รู้ทันภัยคุกคาม...............................................................................107
10. ช่องโหว่ของ Apache HTTPD 1.3/2.X Range Header (CVE-2011-
9
3192).............................................................................................................109
10.1 ข้อมูลทั่วไป.......................................................................................109
10.2 ผลกระทบ.........................................................................................109
10.3 วิธีการแก้ไข......................................................................................110
10.4 แหล่งข้อมูลอื่นๆ ที่เกี่ยวข้อง............................................................111
10.5 เอกสารอ้างอิง..................................................................................112
11. เซิร์ฟเวอร์ในโครงการ Kernel.org ถูกเจาะระบบ..................................113
11.1 ข้อมูลทั่วไป.......................................................................................113
11.2 ผลกระทบ.........................................................................................114
11.3 ระบบที่มีผลกระทบ..........................................................................114
11.4 วิธีการแก้ไข......................................................................................114
11.5 เอกสารอ้างอิง..................................................................................114
12. ระวังภัย แฮกเกอร์ออกใบรับรองปลอมของ Google, Yahoo!, Mozilla
และอื่นๆ.........................................................................................................115
12.1 ข้อมูลทั่วไป.......................................................................................115
12.2 ผลกระทบ.........................................................................................116
12.3 ระบบที่มีผลกระทบ..........................................................................116
12.4 วิธีการแก้ไข......................................................................................117
12.5 เอกสารอ้างอิง..................................................................................118
13. APT ภัยคุกคามใหม่หรือแค่ชื่อใหม่ของภัยเดิม .......................................121
13.1 ตัวอย่างการโจมตีแบบ APT.............................................................122
13.2 ภัยคุกคามใหม่หรือแค่ชื่อใหม่ของภัยเดิม.........................................122
13.3 เอกสารอ้างอิง..................................................................................123
10
14. การแก้ไขช่องโหว่เรื่องความมั่นคงปลอดภัยใน Adobe Reader และ
Adobe Acrobat...........................................................................................125
14.1 ข้อมูลทั่วไป.......................................................................................125
14.2 ผลกระทบ.........................................................................................125
14.3 ระบบที่มีผลกระทบ..........................................................................126
14.4 วิธีการแก้ไข......................................................................................127
14.5 เอกสารอ้างอิง..................................................................................129
15. Man-in-the-Middle 101......................................................................131
15.1 Man-in-the-Browser.....................................................................132
15.2 Man-in-the-Mailbox.....................................................................133
15.3 ควรรับมืออย่างไร?...........................................................................134
15.4 เอกสารอ้างอิง..................................................................................135
16. Zeus Trojan (Zbot) ม้าโทรจันปล้นธนาคารทั่วโลก.............................137
16.1 เอกสารอ้างอิง..................................................................................140
17. รู้จักและป้องกันภัยจาก Website Defacement...................................141
17.1 ตัวอย่างการโจมตีลักษณะ Website Defacement........................146
17.2 ควรรับมืออย่างไร.............................................................................147
17.3 เอกสารอ้างอิง..................................................................................150
18. ระวังภัย มัลแวร์ DuQu โจมตีวินโดวส์ด้วยฟอนต์..................................153
18.1 ข้อมูลทั่วไป.......................................................................................153
18.2 การทางาน........................................................................................154
18.3 วิธีการแก้ไข......................................................................................155
18.4 แหล่งข้อมูลอื่นๆ ที่เกี่ยวข้อง............................................................155
11
18.5 เอกสารอ้างอิง..................................................................................155
19. ช่องโหว่ BIND9 (CVE-2011-4313)........................................................157
19.1 ข้อมูลทั่วไป.......................................................................................157
19.2 ผลกระทบ.........................................................................................157
19.3 ระบบที่ได้รับผลกระทบ....................................................................158
19.4 วิธีแก้ไข.............................................................................................158
19.5 แหล่งข้อมูลที่เกี่ยวข้อง.....................................................................158
19.6 เอกสารอ้างอิง..................................................................................158
20. การกู้ข้อมูลจากฮาร์ดดิสก์ที่ถูกน้าท่วม....................................................159
20.1 โครงสร้างการทางานของฮาร์ดดิสก์.................................................159
20.2 ความเสียหายที่อาจเกิดขึ้นได้กับฮาร์ดดิสก์......................................161
20.3 ทาอย่างไรหากฮาร์ดดิสก์จมน้า........................................................162
20.4 การกู้ข้อมูลจากฮาร์ดดิสก์ที่ถูกลบหรือเขียนข้อมูลทับ.....................163
20.5 การป้องกันข้อมูลสูญหาย.................................................................164
20.6 ข้อมูลเพิ่มเติม...................................................................................164
20.7 เอกสารอ้างอิง..................................................................................165
12
13
สารบัญรูป
หน้า
รูปที่ 1 (1-1) สถิติภัยคุกคามในระหว่างวันที่ 1 กรกฎาคม ถึง 30 พฤศจิกายน
2554 แยกตามประเภทภัยคุกคาม.......................................................................25
รูปที่ 2 (3-1) SSL Certificate ที่ผิดปกติหรือไม่เป็นที่ยอมรับ..............................37
รูปที่ 3 (4-1) การตั้งค่ารหัสผ่านอย่างมั่นคงปลอดภัย............................................44
รูปที่ 4 (4-2) ไม่ควรเปิดเผยรหัสผ่าน.....................................................................44
รูปที่ 5 (4-3) การใช้บริการสื่อและเครือข่ายสังคมทางเว็บ....................................45
รูปที่ 6 (4-4) Facebook.......................................................................................46
รูปที่ 7 (5-1) โครงสร้างของไดเรกทอรีในระบบยูนิกซ์...........................................50
รูปที่ 8 (5-2) แสดงรายชื่อไดเรกทอรีหรือไฟล์ทั้งหมดในไดเรกทอรีที่ระบุข้อมูลแบบ
ละเอียด ใช้คาสั่ง ls -l............................................................................................54
รูปที่ 9 (5-3) แสดงรายชื่อไดเรกทอรีหรือไฟล์ทั้งหมดในไดเรกทอรีที่ระบุแสดงผล
อธิบายได้ตามหมายเลข..........................................................................................54
รูปที่ 10 (5-4) การสร้างลิงก์ Hard Link...............................................................56
รูปที่ 11 (5-5) การสร้างลิงก์ Symbolic Link.......................................................56
รูปที่ 12 (5-6) การตรวจสอบประเภทของไฟล์......................................................57
รูปที่ 13 (5-7) การกาหนดสิทธิการใช้งาน (Permission).....................................60
รูปที่ 14 (6-1) ตัวอย่างรายละเอียดผู้ใช้ชื่อ Oracle [6-4] ....................................67
รูปที่ 15 (6-2) ตัวอย่างข้อมูลรายละเอียดในไฟล์ /etc/shadow [6-6] ...............68
รูปที่ 16 (6-3) ตัวอย่างข้อมูลรายละเอียดในไฟล์ /etc/group [6-9]...................70
รูปที่ 17 (7-1) Standard Streams [7-2]............................................................82
14
รูปที่ 18 (7-2) การใช้ Redirection กับ stdout และ stderr..............................83
รูปที่ 19 (9-1) แสดงให้เห็นถึงเส้นทางการรับส่งข้อมูลเมื่อมีการใช้ฟังก์ชัน Port
Forward ในอุปกรณ์ Router.............................................................................100
รูปที่ 20 (9-2) สภาพแวดล้อมของระบบ............................................................101
รูปที่ 21 (9-3) แบบจาลองการเชื่อมต่อจากคาสั่ง ssh -L 8080:164.115.4.3:80
user1@164.115.4.3..........................................................................................102
รูปที่ 22 (9-4) แบบจาลองการเชื่อมต่อจากคาสั่ง ssh -L 8080:172.25.1.5:80
user1@164.115.4.3..........................................................................................103
รูปที่ 23 (9-5) แบบจาลองการเชื่อมต่อจากคาสั่ง ssh -R
8080:122.248.233.17:80 user1@164.115.4.3.............................................105
รูปที่ 24 (9-6) แบบจาลองการเชื่อมต่อจากคาสั่ง ssh -R 8080:192.168.1.5:80
user1@164.115.4.3..........................................................................................105
รูปที่ 25 (15-1) ภาพประกอบอ้างอิงจาก nakedsecurity................................134
รูปที่ 26 (16-1) เว็บไซต์ปลอมที่สร้างขึ้นเพื่อหลอกลวงเหยื่อ [16-4] ................138
รูปที่ 27 (16-2) โดเมน .com ที่ตกเป็นเป้าหมายของซุส [16-5].......................139
รูปที่ 28 (17-1) แสดงให้เห็นถึงการแจ้งเตือนถึงเว็บไซต์ที่ถูกโจมตีจากเว็บไซต์
Search engine ของ Google............................................................................142
รูปที่ 29 (17-2) แสดงให้เห็นถึงหน้าเว็บไซต์หลักแห่งหนึ่งที่ถูก Defacement.142
รูปที่ 30 (17-3) แสดงให้เห็นหน้าเว็บไซต์เมื่อมีการเรียกไฟล์สคริปต์ประเภท Web
Shell...................................................................................................................144
รูปที่ 31 (20-1) ฮาร์ดดิสก์แบบจานแม่เหล็ก [20-1]..........................................159
รูปที่ 32 (20-2) ฮาร์ดดิสก์แบบ Solid-state [20-3].........................................160
รูปที่ 33 (20-3) คราบฝุ่นที่ติดอยู่บนฮาร์ดดิสก์เมื่อน้าแห้ง [20-12]..................163
15
สารบัญตาราง
หน้า
ตารางที่ 1 (1-1) ประเภทภัยคุกคามของเทคโนโลยีสารสนเทศโดย eCSIRT........22
ตารางที่ 2 (5-1) โครงสร้างไดเรกทอรีหลักๆ ของระบบยูนิกซ์..............................50
ตารางที่ 3 (7-1) คาสั่ง head.................................................................................78
ตารางที่ 4 (7-2) คาสั่ง tail...................................................................................78
ตารางที่ 5 (7-3) คาสั่ง echo.................................................................................79
ตารางที่ 6 (7-4) คาสั่ง cat....................................................................................79
ตารางที่ 7 (7-5) คาสั่ง wc.....................................................................................80
ตารางที่ 8 (7-6) คาสั่ง grep..................................................................................84
ตารางที่ 9 (7-7) ตัวอย่าง Regular Expression...................................................85
16
17
ความรู้ทั่วไป
18
19
1. ความเป็นมาของไทยเซิร์ต จากกระทรวงวิทย์ฯ
สู่กระทรวงไอซีที
ในเดือนกุมภาพันธ์ที่ผ่านมา คณะรัฐมนตรีได้มีมติให้จัดตั้ง
สานักงานพัฒนาธุรกรรมทางอิเล็กทรอนิกส์ (องค์การมหาชน) หรือ สพธอ. ภายใต้
กระทรวงเทคโนโลยีสารสนเทศและการสื่อสาร และได้มีการโอนภารกิจของศูนย์
ประสานงานการรักษาความมั่นคงระบบคอมพิวเตอร์ประเทศไทย หรือ ไทยเซิร์ต
จากศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ สานักงานพัฒนา
วิทยาศาสตร์และเทคโนโลยีแห่งชาติ กระทรวงวิทยาศาสตร์และเทคโนโลยี มายัง
สพธอ. เพื่อให้การดาเนินงานของ สพธอ. ด้านการสร้างความเชื่อมั่นในการทา
ธุรกรรมทางอิเล็กทรอนิกส์มีความเข้มแข็ง
ไทยเซิร์ตได้เปิดให้บริการอย่างเต็มรูปแบบภายใต้ สพธอ. มาตั้งแต่วันที่
1 กรกฎาคม 2554 โดยมีวิสัยทัศน์ให้สังคมออนไลน์มีความมั่นคงปลอดภัย เกิด
ความเชื่อมั่นกับผู้ทาธุรกรรมทางอิเล็กทรอนิกส์ พันธกิจของไทยเซิร์ต มุ่งเน้นการ
ประสานงานกับหน่วยงานในเครือข่าย และหน่วยงานที่เกี่ยวข้องในการดาเนินการ
แก้ไขเหตุภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสารที่ได้รับแจ้ง
นอกจากนี้ไทยเซิร์ตยังมีพันธกิจเชิงรุกที่ให้ความสาคัญกับการพัฒนาทรัพยากร
บุคคลเพื่อเพิ่มขีดความสามารถด้านการรักษาความมั่นคงปลอดภัย
เนื่องจากงานของไทยเซิร์ตมีลักษณะเป็นการประสานงานกับหน่วยงานต่างๆ
ไทยเซิร์ตจึงมุ่งมั่นที่จะสร้างความร่วมมือกับหน่วยงานทุกประเภททั้งในและ
ต่างประเทศในการแก้ไขเหตุภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร
เช่น ผู้ให้บริการอินเทอร์เน็ต และ สานักป้องกันและปราบปรามการกระทา
ความผิดทางเทคโนโลยีสารสนเทศ สานักงานปลัดกระทรวงเทคโนโลยีสารสนเทศ
และการสื่อสาร ไทยเซิร์ตสร้างความร่วมมือระหว่างประเทศผ่านเวที FIRST
20
(Forum of Incident Response and Security Teams) สาหรับความร่วมมือกับ
ประเทศทั่วโลก และเวที APCERT (Asia Pacific CERT) สาหรับความร่วมมือกับ
ประเทศในภาคพื้นเอเชียแปซิฟิก
ด้านการพัฒนาทรัพยากรบุคคล ไทยเซิร์ตให้ความสาคัญกับการเผยแพร่ความรู้และ
ข้อมูลข่าวสารเกี่ยวกับการรักษาความมั่นคงปลอดภัยสารสนเทศ เพื่อเป็นการสร้าง
ภูมิคุ้มกันเบื้องต้นทางด้านไอที และจัดอบรมสัมมนาให้กับผู้ทาธุรกรรมทาง
อิเล็กทรอนิกส์เฉพาะกลุ่มที่มีความต้องการข้อมูลข่าวสารเป็นการเฉพาะ เช่น กลุ่ม
ธุรกิจการเงินการธนาคาร หรือกลุ่มสถาบันวิจัยและสถาบันการศึกษา นอกจากนี้
เพื่อให้เกิดความเข้าใจและได้ลงมือปฏิบัติ ไทยเซิร์ตยังจัดและร่วมในกิจกรรม
ซักซ้อมการรับมือภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสารกับหน่วยงาน
ทั้งในประเทศและต่างประเทศอีกด้วย
1.1 บริการของไทยเซิร์ต
ในการสนับสนุนให้สังคมออนไลน์มีความมั่นคงปลอดภัยและเกิดความเชื่อมั่นกับ
ผู้ทาธุรกรรมทางอิเล็กทรอนิกส์ ไทยเซิร์ต ให้บริการหลัก คือ บริการประสานงาน
แก้ไขภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร บริการข้อมูลข่าวสาร
ความมั่นคงปลอดภัยสารสนเทศ และบริการวิชาการเกี่ยวกับการรักษาความมั่นคง
ปลอดภัยสารสนเทศ
บริการประสานงานแก้ไขภัยคุกคามด้านเทคโนโลยีสารสนเทศและ
การสื่อสาร
ปัจจุบันไทยเซิร์ตให้บริการประสานงานแก้ไขเหตุภัยคุกคามด้านเทคโนโลยี
สารสนเทศและการสื่อสาร ทางโทรศัพท์และทางอีเมลแก่บุคคลทั่วไป
สถาบันการศึกษาและสถาบันวิจัย หน่วยงานภาครัฐและเอกชนทั่วโลก เมื่อได้รับ
แจ้งเหตุผู้เชี่ยวชาญของไทยเซิร์ตจะตรวจสอบข้อมูลที่ได้รับแจ้งเพื่อยืนยันว่าเหตุภัย
คุกคามที่ได้รับแจ้งได้เกิดขึ้นและมีอยู่จริง แล้วจึงวิเคราะห์ข้อมูลต่อเพื่อหา
21
หน่วยงานที่เป็นต้นเหตุของปัญหา และดาเนินการประสานงานไปยังหน่วยงาน
ดังกล่าวเพื่อให้ดาเนินการแก้ไขปัญหา ไทยเซิร์ตมีระบบการติดตามความคืบหน้า
ของการจัดการปัญหาภัยคุกคาม และได้กาหนดมาตรฐานการให้บริการไว้คือ
ไทยเซิร์ตจะดาเนินการแจ้งหน่วยงานที่เกี่ยวข้องเพื่อแก้ปัญหาที่ได้รับแจ้งและ
รายงานสถานะการดาเนินงานภายใน 2 วันทาการ มีการติดตามผลการดาเนินงาน
ทุก 3 วันทาการ
บริการข้อมูลข่าวสารความมั่นคงปลอดภัยสารสนเทศ
ไทยเซิร์ตอยู่ในเครือข่ายความร่วมมือของหน่วยงานที่มีบทบาทในการตอบสนองต่อ
การแจ้งเหตุภัยคุกคาม (Computer Security Incident Response Team:
CSIRT หรือ Computer Emergency Response Team: CERT) ซึ่งมีภารกิจใน
การแจ้งเตือนภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสารที่ได้รับแจ้งจาก
หน่วยงาน CSIRT อื่นๆในเครือข่ายหรือที่ตรวจพบกับผู้ใช้งานภายในประเทศไทย
เพื่อสร้างความตระหนักและความพร้อมในการรับมือต่อภัยคุกคามที่เกิดขึ้น โดย
ผู้เชี่ยวชาญของไทยเซิร์ตจะวิเคราะห์ข้อมูลภัยคุกคามที่มีผลกระทบสูงกับผู้ใช้งาน
พร้อมเสนอแนะข้อควรปฏิบัติในการรับมือ แก้ไขหรือป้องกันภัยคุกคามในบทความ
แจ้งเตือนภัยคุกคามของไทยเซิร์ต นอกจากนั้น ไทยเซิร์ตจัดทาข้อมูลเชิงสถิติของ
ภัยคุกคามที่รายงานมาที่ไทยเซิร์ตเผยแพร่บนเว็บไซต์ไทยเซิร์ตเป็นรายเดือน เพื่อ
ใช้วิเคราะห์แนวโน้มของภัยคุกคามที่เกิดภายในประเทศไทย
บริการวิชาการในการรักษาความมั่นคงปลอดภัยสารสนเทศ
ไทยเซิร์ตมีผู้เชี่ยวชาญที่มีศักยภาพและความรู้ที่สามารถให้บริการวิชาการในการ
รักษาความมั่นคงปลอดภัยสารสนเทศกับหน่วยงานทั้งภายในและต่างประเทศ ไทย
เซิร์ตให้บริการกับหน่วยงานภายในประเทศในส่วนของการให้คาปรึกษาในการ
วิเคราะห์ข้อมูลภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร การจัดทาแผน
และนโยบายทางด้านเทคโนโลยีสารสนเทศ เพื่อให้สอดคล้องกับมาตรฐานสากล
ทางด้านเทคโนโลยีสารสนเทศและสอดคล้องกับข้อกาหนดของกฎหมาย จัด
22
ฝึกอบรมสัมมนา เพื่อสร้างความตระหนักหรือเสริมสร้างศักยภาพของบุคลากรของ
หน่วยงานให้สามารถป้องกันและแก้ไขภัยคุกคามด้านเทคโนโลยีสารสนเทศและการ
สื่อสารจัดการซักซ้อมรับมือภัยคุกคาม เพื่อเสริมทักษะและสร้างความพร้อมในการ
รับมือภัยคุกคามของหน่วยงาน รวมถึงการสนับสนุนวิทยากรในการบรรยาย เพื่อ
สร้างความตระหนักและให้ความรู้กับหน่วยงานทั้งในและต่างประเทศ
1.2 สถิติภัยคุกคามที่รายงานมาที่ไทยเซิร์ต
ตั้งแต่วันที่ 1 กรกฎาคม ถึง 30 พฤศจิกายน 2554 ไทยเซิร์ตได้รับแจ้งเหตุภัย
คุกคามจากหน่วยงานทั้งในและต่างประเทศโดยเฉลี่ยมากกว่า 100 เรื่องต่อเดือน
ข้อมูลเชิงสถิติเกี่ยวกับเหตุภัยคุกคามที่ไทยเซิร์ตได้รับแจ้งสามารถจาแนกเป็น 9
ประเภทตามที่ได้กาหนดโดย The European Computer Security Incident
Response Team (eCSIRT) ซึ่งเป็นเครือข่ายความร่วมมือของหน่วยงาน CSIRT
ในสหภาพยุโรป ตารางที่ 1 (1-1)
ตารางที่ 1 (1-1) ประเภทภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร โดย
eCSIRT
ประเภทภัย
คุกคาม
คาอธิบาย
1 เนื้อหาที่เป็น
ภัยคุกคาม
(Abusive
Content)
ภัยคุกคามที่เกิดจากการใช้/เผยแพร่ข้อมูลที่ไม่เป็นจริงหรือไม่
เหมาะสม (Abusive Content) เพื่อทาลายความน่าเชื่อถือ
ของบุคคลหรือสถาบัน เพื่อก่อให้เกิดความไม่สงบ หรือข้อมูลที่
ไม่ถูกต้องตามกฎหมาย เช่น ลามก อนาจาร หมิ่นประมาท
และรวมถึงการโฆษณาขายสินค้าต่างๆ ทางอีเมลที่ผู้รับไม่ได้มี
ความประสงค์จะรับข้อมูลโฆษณานั้นๆ (SPAM)
2 โปรแกรมไม่พึง
ประสงค์
(Malicious
Code)
ภัยคุกคามที่เกิดจากโปรแกรมหรือซอฟต์แวร์ที่ถูกพัฒนาขึ้น
เพื่อส่งให้เกิดผลลัพธ์ที่ไม่พึงประสงค์ กับผู้ใช้งานหรือระบบ
(Malicious Code) เพื่อทาให้เกิดความขัดข้องหรือเสียหายกับ
ระบบที่โปรแกรมหรือซอฟต์แวร์ประสงค์ร้ายนี้ติดตั้งอยู่ โดย
ปกติโปรแกรมหรือซอฟต์แวร์ประสงค์ร้ายประเภทนี้ต้องอาศัย
23
ประเภทภัย
คุกคาม
คาอธิบาย
ผู้ใช้งานเป็นผู้เปิดโปรแกรมหรือซอฟต์แวร์ก่อน จึงจะสามารถ
ติดตั้งตัวเองหรือทางานได้ เช่น Virus, Worm, Trojan หรือ
Spyware ต่างๆ
3 ความพยายาม
รวบรวมข้อมูล
ของระบบ
(Information
Gathering)
ภัยคุกคามที่เกิดจากความพยายามในการรวบรวมข้อมูล
จุดอ่อนของระบบของผู้ไม่ประสงค์ดี (Scanning) ด้วยการ
เรียกใช้บริการต่างๆที่อาจจะเปิดไว้บนระบบ เช่น ข้อมูล
เกี่ยวกับระบบปฏิบัติการ ระบบซอฟต์แวร์ที่ติดตั้งหรือใช้งาน
ข้อมูลบัญชีชื่อผู้ใช้งาน (User Account) ที่มีอยู่บนระบบเป็น
ต้น รวมถึงการเก็บรวบรวมหรือตรวจสอบข้อมูลจราจรบน
ระบบเครือข่าย (Sniffing) และการล่อลวงหรือใช้เล่ห์กลต่างๆ
เพื่อให้ผู้ใช้งานเปิดเผยข้อมูลที่มีความสาคัญของระบบ (Social
Engineering)
4 ความพยายาม
จะบุกรุกเข้า
ระบบ
(Intrusion
Attempts)
ภัยคุกคามที่เกิดจากความพยายามจะบุกรุก/เจาะเข้าระบบ
(Intrusion Attempts) ทั้งที่ผ่านจุดอ่อนหรือช่องโหว่ที่เป็นที่
รู้จักในสาธารณะ (CVE- Common Vulnerabilities and
Exposures) หรือผ่านจุดอ่อนหรือช่องโหว่ใหม่ที่ยังไม่เคยพบ
มาก่อน เพื่อจะได้เข้าครอบครองหรือทาให้เกิดความขัดข้องกับ
บริการต่างๆของระบบ ภัยคุกคามนี้รวมถึงความพยายามจะบุก
รุก/เจาะระบบผ่านช่องทางการตรวจสอบบัญชีชื่อผู้ใช้งานและ
รหัสผ่าน (Login) ด้วยวิธีการสุ่ม/เดาข้อมูล หรือวิธีการทดสอบ
รหัสผ่านทุกค่า (Brute Force)
5 การบุกรุกหรือ
เจาะระบบได้
สาเร็จ
(Intrusions)
ภัยคุกคามที่เกิดกับระบบที่ถูกบุกรุก/เจาะเข้าระบบได้สาเร็จ
(Intrusions) และระบบถูกครอบครองโดยผู้ที่ไม่ได้รับอนุญาต
6 การโจมตี
สภาพความ
พร้อมใช้งาน
ของระบบ
ภัยคุกคามที่เกิดจากการโจมตีสภาพความพร้อมใช้งานของ
ระบบ เพื่อทาให้บริการต่างๆของระบบไม่สามารถให้บริการได้
ตามปกติ มีผลกระทบตั้งแต่เกิดความล่าช้าในการตอบสนอง
ของบริการจนกระทั่งระบบไม่สามารถให้บริการต่อไปได้ ภัย
24
ประเภทภัย
คุกคาม
คาอธิบาย
(Availability) คุกคามอาจจะเกิดจากการโจมตีที่บริการของระบบโดยตรง
เช่น การโจมตีประเภท DOS (Denial of Service) แบบต่างๆ
หรือการโจมตีโครงสร้างพื้นฐานที่สนับสนุนการให้บริการของ
ระบบ เช่น อาคาร สถานที่ ระบบไฟฟ้า ระบบปรับอากาศ
7 การเข้าถึงหรือ
เปลี่ยนแปลง
แก้ไขข้อมูล
สาคัญโดยไม่ได้
รับอนุญาต
(Information
Security)
ภัยคุกคามที่เกิดจากการที่ผู้ไม่ได้รับอนุญาตสามารถเข้าถึง
ข้อมูลสาคัญ (Unauthorized Access) หรือเปลี่ยนแปลงแก้ไข
ข้อมูล (Unauthorized modification) ได้
8 การฉ้อฉล
ฉ้อโกงหรือ
หลอกลวงเพื่อ
ผลประโยชน์
(Fraud)
ภัยคุกคามที่เกิดจากการฉ้อฉล ฉ้อโกงหรือการหลอกลวงเพื่อ
ผลประโยชน์ (Fraud) สามารถเกิดได้ในหลายลักษณะ เช่น
การลักลอบใช้งานระบบหรือทรัพยากรทางสารสนเทศที่ไม่ได้
รับอนุญาตเพื่อแสวงหาผลประโยชน์ของตนเอง หรือการขาย
สินค้าหรือซอฟต์แวร์ที่ละเมิดลิขสิทธิ
9 ภัยคุกคามอื่นๆ
นอกเหนือจาก
ที่กาหนดไว้
ข้างต้น
(Other)
ภัยคุกคามประเภทอื่นๆ นอกเหนือจากที่กาหนดไว้ข้างต้น ระบุ
ไว้เพื่อเป็นตัวชี้วัดถึงภัยคุกคามประเภทใหม่หรือไม่สามารถจัด
ประเภทได้ตามที่ระบุไว้ข้างต้น โดยถ้าจานวนภัยคุก คามอื่นๆ
ในข้อนี้มีจานวนมากขึ้น แสดงถึงความจาเป็นที่จะต้องปรับปรุง
การจัดแบ่งประเภทภัยคุกคามนี้ใหม่
เรื่องที่ได้รับรายงานสามารถแบ่งแยกตามประเภทภัยคุกคามด้านเทคโนโลยี
สารสนเทศและการสื่อสาร แสดงดังรูปที่ 1 (1-1) โดยสามารถจัดลาดับตามจานวน
เหตุภัยคุกคามได้รับแจ้งได้เป็นประเภทใหญ่ๆได้ 6 ด้าน ภัยคุกคามส่วนใหญ่
ประมาณ 48% จะเป็นภัยคุกคามด้าน การฉ้อฉล ฉ้อโกงหรือหลอกลวง เพื่อ
ผลประโยชน์ (Fraud) ซึ่งทั้งหมดในส่วนนี้เป็นกรณี Phishing ที่เกิดกับสถานบัน
การเงินทั้งในประเทศและต่างประเทศ ซึ่งเป็นภัยคุกคามที่ส่งผลกระทบต่อโดยตรง
25
ผู้ใช้บริการชาระเงินทางอิเล็กทรอนิกส์ ในส่วนภัยคุกคามที่รองลงมาเป็นภัยคุกคาม
ที่เกี่ยวความพยายามที่จะโจมตีและเจาะระบบ โดยเป็นภัยคุกคามด้าน การบุกรุก
หรือเจาะระบบได้สาเร็จ (Intrusions) จานวน 13.6% และภัยคุกคามด้านความ
พยายามรวบรวมข้อมูลของระบบ (Information Gathering) จานวน 13.5%
สาหรับภัยคุกคามในลาดับถัดไปเป็นภัยคุกคามทางด้านเนื้อหาที่เป็นภัยคุกคาม
(Abusive Content) จานวน 9.9% ซึ่งทั้งหมดเป็นรายงานภัยคุกคามด้าน
เทคโนโลยีสารสนเทศและการสื่อสาร ที่ได้รับแจ้งจากหน่วยงานในต่างประเทศ
และพบว่ามีลักษณะเป็นการแจ้งเตือน SPAM ในลาดับสุดท้ายเป็นภัยคุกคาม
ทางด้าน โปรแกรมไม่พึงประสงค์ (Malicious Code) จานวน 9.9%
รูปที่ 1 (1-1) สถิติภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร ในระหว่าง
วันที่ 1 กรกฎาคม ถึง 30 พฤศจิกายน 2554 แยกตามประเภทภัยคุกคาม
ไทยเซิร์ตได้ดาเนินการแก้ปัญหาภัยคุกคามที่ได้รับแจ้งไปได้ประมาณ 80%
ส่วนอีก 20% ที่เหลือมีการติดตามความคืบหน้าของการแก้ไขปัญหาทุก 3 วัน
สาหรับข้อมูลเชิงสถิติเกี่ยวกับภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร
สามารถดูได้ที่ www.thaicert.or.th/statistics.html
26
1.3 ช่องทางการติดต่อกับไทยเซิร์ต
ไทยเซิร์ตได้จัดเตรียมช่องทางการติดต่อเพื่อแจ้งเหตุภัยคุกคามไว้ 2 ช่องทาง
ประกอบด้วย ทางโทรศัพท์หมายเลข 02-142-2483 เวลา 8.30 – 17.30 น. ทุกวัน
ยกเว้นวันหยุดราชการ และทางอีเมลที่ report@thaicert.or.th
27
2. ข้อเสนอแนะกรอบขั้นตอนการปฏิบัติงานการ
รับมือภัยคุกคามด้านเทคโนโลยีสารสนเทศและ
การสื่อสาร
ผู้เรียบเรียง: สรณันท์ จิวะสุรัตน์
วันที่เผยแพร่: 5 ก.ย. 2554
ปรับปรุงล่าสุด: 5 ก.ย. 2554
ศูนย์ประสานงานการรักษาความมั่นคงระบบคอมพิวเตอร์ประเทศไทย (ThaiCERT)
จัดทาข้อเสนอแนะกรอบขั้นตอนการปฏิบัติงานการรับมือภัยคุกคามด้านเทคโนโลยี
สารสนเทศและการสื่อสาร โดยยึดรูปแบบและกรอบขั้นตอนการปฏิบัติงานที่อ้างอิง
หลักปฏิบัติสากล [2-1] [2-2] เพื่อให้หน่วยงานหรือองค์กรต่างๆ สามารถ
ดาเนินการรับมือภัยคุกคามฯ ได้อย่างมีประสิทธิภาพ บรรเทาความเสียหายที่
เกิดขึ้นให้ส่งผลกระทบน้อยที่สุด ป้องกันไม่มีการลุกลามหรือขยาย
วงกว้างไปยังจุดอื่นๆ รวมถึงป้องกันไม่ให้เกิดเหตุการณ์ดังกล่าวซ้าขึ้นอีก โดยมี
ขั้นตอนในการปฏิบัติงานบริหารจัดการภัยคุกคามด้านเทคโนโลยีสารสนเทศและ
การสื่อสาร 5 ขั้นตอนดังนี้
1. การระบุเหตุและรายงานภัยคุกคามฯ (Identification and
Reporting)
วัตถุประสงค์ เพื่อตรวจสอบและบันทึกภัยคุกคามฯ ประเมินผลกระทบ
ของภัยคุกคามฯ และระบุถึงหน่วยงาน/บุคคลที่เกี่ยวข้องในการแจ้งเหตุ
และรับมือกับภัยคุกคามฯ
 ตรวจสอบ วิเคราะห์และบันทึกข้อมูลต่างๆ เกี่ยวกับภัยคุกคามฯ
ที่ได้รับแจ้ง ได้แก่
o ผู้แจ้ง
28
o วันเวลาที่ได้รับแจ้ง
o รายละเอียดทางกายภาพของภัยคุกคามฯ ประกอบ-
ด้วย ประเภทของภัยคุกคาม ข้อมูลของเครื่องที่ก่อเหตุ
และเครื่องที่ถูกโจมตี รวมถึงเหตุการณ์ภัยคุกคามที่
สังเกตได้
o ระดับผลกระทบ/ความรุนแรงของภัยคุกคาม
 ระบุหน่วยงาน/ผู้เกี่ยวข้องที่ต้องแจ้งเหตุภัยคุกคามฯ เพื่อ
ดาเนินการรับมือและแก้ไขภัยคุกคามฯ รวมถึงการแจ้งเหตุไปยัง
ผู้บริหารในกรณีที่ภัยคุกคามฯ มีระดับความรุนแรงสูง ซึ่งอาจ
ส่งผลกระทบและความเสียหายกับหน่วยงานในวงกว้าง
2. การควบคุมภัยคุกคามฯ (Containment)
วัตถุประสงค์ บรรเทาความเสียหายที่เกิดจากภัยคุกคาม ให้ส่งผลกระทบ
น้อยที่สุดและป้องกันไม่ให้มีการลุกลามหรือขยายวงไปยังจุดอื่นๆ
 ประเมินผลกระทบและความเสียหายที่จากภัยคุกคามฯ และ
ดาเนินการบรรเทาหรือควบคุมความเสียหายที่เกิดขึ้นไม่ให้มีการ
ลุกลามเพิ่มเติม
 ระบุแหล่งที่มาของภัยคุกคามฯ และดาเนินการกาจัดหรือปิดช่อง
ทางการติดต่อต่างๆ กับแหล่งที่มาของภัยคุกคามฯ
 เก็บรวบรวม บันทึกผลการตรวจสอบ และสาเนาข้อมูลทั้งหมดที่
พบหรือเกี่ยวข้องกับภัยคุกคามฯ หลังดาเนินการควบคุมภัย
คุกคามฯ ได้สาเร็จ เพื่อใช้ในกระบวนการตรวจพิสูจน์หลักฐาน
ทางคอมพิวเตอร์
3. การแก้ไขและจากัดภัยคุกคามฯ (Eradication)
วัตถุประสงค์ เพื่อกาจัดเหตุของภัยคุกคามฯที่เกิด และป้องกันไม่ให้เกิดภัย
คุกคามในลักษณะเดิมซ้าอีก
29
 วิเคราะห์และหาสาเหตุของภัยคุกคามฯ ที่เกิดขึ้น และพร้อม
ดาเนินการแก้ไขเพื่อกาจัดเหตุ ซึ่งอาจจะเป็นการดาเนินการ
ภายในของหน่วยงานเอง หรือ ติดต่อขอความช่วยเหลือจาก
หน่วยงานภายนอกที่มีศักยภาพให้ดาเนินการให้ความช่วยเหลือ
 กาจัดข้อมูล โปรแกรม หรือสิ่งแปลกปลอมทั้งหลายออกจาก
ระบบที่ถูกโจมตี
4. การกู้คืนระบบ (Recovery)
วัตถุประสงค์ เพื่อกู้คืนระบบให้อยู่ในสภาพการให้บริการแบบปกติ
 ดาเนินการกู้ข้อมูลหรือระบบสารสนเทศให้กลับคืนสู่สภาวะปกติ
หลังกาจัดเหตุได้แล้ว
 ตรวจสอบอย่างถี่ถ้วน เพื่อให้มั่นใจว่าระบบสารสนเทศที่กู้คืน
หรือที่เกี่ยวข้องจะได้รับการปกป้องอย่างเหมาะสม เพื่อป้องกัน
การเกิดเหตุซ้า รวมถึงต้องมีการเฝ้าระวังเหตุอย่างใกล้ชิด
5. กิจกรรมหลังภัยคุกคามฯ (Post-Incident Activity)
วัตถุประสงค์ ประเมินผลดาเนินการรับมือภัยคุกคามฯ แจ้งผลดาเนินการ
ให้ผู้ที่เกี่ยวข้องรับทราบ และบันทึกรายงานการดาเนิน
เพื่อรับมือกับภัยคุกคามฯ
 ประเมินสถานะของระบบและผลกระทบต่อข้อมูลหลัง
ดาเนินการกู้คืนระบบ และแจ้งผลต่อผู้เกี่ยวข้องให้ทราบ
 บันทึกรายละเอียดการดาเนินการเพื่อรับมือภัยคุกคามฯ ได้แก่
o ผู้รับผิดชอบดาเนินการ
o วันเวลาที่ดาเนินการ
o รายละเอียดที่ดาเนินการในแต่ละขั้นตอน
 จัดทารายงานสรุปสาเหตุและแนวทางในการป้องกันไม่ให้เกิดภัย
คุกคามฯ ในลักษณะเดิมซ้าอีก โดยอย่างน้อยต้องประกอบด้วย
30
o เหตุที่ทาให้เกิดภัยคุกคาม
o ข้อผิดพลาดที่พบในการดาเนินการรับมือภัยคุกคามฯ
o ข้อเสนอแนะในปรับปรุงขั้นตอนการดาเนินการรับมือ
ภัยคุกคามฯ
o ทรัพยากรที่จาเป็นจะต้องจัดหาเพื่อป้องกันไม่ให้เกิดภัย
คุกคามในลักษณะเดิมซ้าอีก
สามารถใช้แบบฟอร์มรายงานการรับมือภัยคุกคามด้านเทคโนโลยีสารสนเทศและ
การสื่อสารในการบันทึกรายละเอียดของภัยคุกคามฯ ในการดาเนินการรับมือและ
แก้ไขภัยคุกคามฯ รวมถึงการสรุปสาเหตุและแนวทางในการป้องกันไม่ให้เกิดภัย
คุกคามฯ ตามข้อเสนอแนะข้างต้น
2.1 เอกสารอ้างอิง
[2-1] NIST SP800-61 Revision 1 – Computer Security Incident
Handling Guide
[2-2] ENISA, A step-by-step approach on how to setup a CSIRT –
Doing Incident Handling
31
โปรดอ่านคาแนะนาก่อนการบันทึกข้อมูล
แบบฟอร์มรายงานการรับมือภัยคุกคามฯ นี้ ใช้สาหรับบันทึกรายละเอียดของภัยคุกคาม ขั้นตอนที่ดาเนินการในการรับมือและแก้ไข
ภัยคุกคามฯ รวมถึงการสรุปสาเหตุและแนวทางในการป้องกันไม่ให้เกิดภัยคุกคามฯ
ส่วนที่ 1 การระบุเหตุและรายงานภัยคุกคามฯ
(01) ข้อมูลของผู้พบ / ผู้แจ้งเหตุ
ชื่อ-นามสกุล (นาย/นาง/นางสาว/ยศ) .................................................................................................................................
หน่วยงานที่สังกัด .................................................................................................................................................................
หมายเลขโทรศัพท์ : .…......................................... E-mail : .................................................................................................
วว/ดด/ปป ที่พบ/ได้รับแจ้งภัยคุกคามฯ ….../...../.... เวลา …... : .... น. อ้างอิงเวลาสากลเชิงพิกัดของประเทศไทย (UTC+7)
(02) รายละเอียดทางกายภาพของภัยคุกคามฯโดยละเอียด
ระบุสถาานการณ์หรือเหตุภัยคุกคามฯ ................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
ประเภทของภัยคุกคาม …................................................................................................................................................
เครื่องที่ได้รับผลกระทบ :
(ระบุ IP Address, OS,
Application, และหน้าที่ของ
เครื่อง)
…................................................................................................................................................
…................................................................................................................................................
…................................................................................................................................................
เครื่องที่ต้องสงสัยว่าก่อเหตุ
(ระบุ IP Address, ชื่อผู้
ลงทะเบียนโดเมน/IP Address
และประเทศที่ตั้ง)
…................................................................................................................................................
…................................................................................................................................................
…................................................................................................................................................
ความเสียหายที่พบต่อระบบ /
ข้อมูล :
…................................................................................................................................................
…................................................................................................................................................
(03) ระดับความรุนแรงของภัยคุกคามฯ
ประเมินผลกระทบและความเสียหายของภัยคุกคามฯต่อหน่วยงาน
................................................................................................................................................................................................
................................................................................................................................................................................................
(04) รายชื่อผู้เกี่ยวข้องในการรับมือภัยคุกคาม
ผู้รับแจ้งเหตุ ........................................................................................................................................................................
ผู้ควบคุมและสั่งการในการรับมือภัยคุกคามฯ ........................................................................................................................
ผู้ดาเนินการควบคุมเหตุ .......................................................................................................................................................
ผู้ดาเนินการแก้ไขและกาจัดเหตุ ............................................................................................................................................
ผู้ดาเนินการกู้คืนระบบ ........................................................................................................................................................
ผู้จัดทาสรุปรายงานภัยคุกคามฯ ..........................................................................................................................................
แบบฟอร์มรายงานการรับมือภัยภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร
สานักงานพัฒนาธุรกรรมทางอิเล็กทรอนิกส์ (องค์การมหาชน)
32
ส่วนที่ 2 การควบคุมภัยคุกคามฯ (Containment)
(05) การควบคุมเหตุ :
ระบุรายละเอียดขั้นตอนในการดาเนินการเพื่อบรรเทาหรือควบคุมความเสียหาย
................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
ดาเนินการเสร็จเมื่อ …..../........./.......(วว/ดด/ปป) ….... : …... (ชั่วโมง:นาที) อ้างอิงเวลาสากลเชิงพิกัดของประเทศไทย (UTC+7)
ส่วนที่ 3 การดาเนินการแก้ไขและกาจัดภัยคุกคามฯ (Eradication)
(06) การกาจัดเหตุ :
ระบุรายละเอียดขั้นตอนในการดาเนินการเพื่อกาจัดเหตุและป้องกันไม่ให้เกิดภัยคุกคามฯ ซ้าอีก
................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
ดาเนินการเสร็จเมื่อ …..../........./.......(วว/ดด/ปป) ….... : …... (ชั่วโมง:นาที) อ้างอิงเวลาสากลเชิงพิกัดของประเทศไทย (UTC+7)
ส่วนที่ 4 การกู้คืนระบบ (Recovery)
(07) การกู้คืนระบบ :
ระบุรายละเอียดขั้นตอนในการดาเนินการเพื่อกู้ข้อมูลหรือระบบให้กลับคืนสภาวะปกติ
................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
ดาเนินการเสร็จเมื่อ …..../........./.......(วว/ดด/ปป) ….... : …... (ชั่วโมง:นาที) อ้างอิงเวลาสากลเชิงพิกัดของประเทศไทย (UTC+7)
แบบฟอร์มรายงานการรับมือภัยภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร
สานักงานพัฒนาธุรกรรมทางอิเล็กทรอนิกส์ (องค์การมหาชน)
33
ส่วนที่ 5 กิจกรรมหลังภัยคุกคามฯ (Post-Incident Activity)
(08) ประเมินสถานะของระบบเทคโนโลยีสารสนเทศหลังจากดาเนินการ
[ ] สามารถให้บริการได้ตามปกติ และมีความมั่นคงปลอดภัย [ ] สามารถให้บริการได้เพียงบางส่วน
[ ] ไม่สามารถให้บริการได้ เนื่องจากเหตุผลด้านความมั่นคงปลอดภัย [ ] ไม่สามารถให้บริการได้ เนื่องจากเหตุอื่น
รายละเอียด ........................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
(09) ผลกระทบต่อข้อมูลหลังการดาเนินการ
[ ] ข้อมูลอยู่ในสภาพปกติ [ ] สามารถกู้คืนข้อมูลได้เป็นส่วนมาก
[ ] สามารถกู้คืนข้อมูลได้บางส่วน [ ] ไม่สามารถกู้คืนข้อมูลได้ หรือข้อมูลที่กู้คืนไม่สามารถใช้งานได้
รายละเอียด ........................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
(21) การแจ้งผลการดาเนินการต่อผู้เกี่ยวข้อง (ระบุ ชื่อผู้รับแจ้ง/วันเวลาที่แจ้ง/รายละเอียดเรื่องที่แจ้ง) :
................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
(22) สรุปเหตุที่ทาให้เกิดภัยคุกคาม :
................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
(13) ข้อผิดพลาดที่พบในการรับมือภัยคุกคาม :
................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
(14) ข้อเสนอเพื่อปรับปรุง :
. ................................................................................................................................................................................................
................................................................................................................................................................................................
................................................................................................................................................................................................
ลงนาม :….........................................................ผู้สรุปรายงานภัยคุกคามฯ …......../............../............... (วว/ดด/ปป)
ETDA-OOS-ThaiCERT-2554 Rev.01 ศูนย์ประสานงานการรักษาความมั่นคงระบบคอมพิวเตอร์ประเทศไทย (ThaiCERT)
แบบฟอร์มรายงานการรับมือภัยภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร
สานักงานพัฒนาธุรกรรมทางอิเล็กทรอนิกส์ (องค์การมหาชน)
34
35
3. Fall of SSL???
ผู้เรียบเรียง: ไพชยนต์ วิมุกตะนันทน์ และ สรณันท์ จิวะสุรัตน์
วันที่เผยแพร่: 22 ก.ย. 2554
ปรับปรุงล่าสุด: 23 ก.ย. 2554
หลายคนคงจะทราบดีอยู่แล้วว่าเทคโนโลยี SSL (Secure Sockets Layer) [8-1]
มีประโยชน์ในการรักษาความมั่นคงปลอดภัย (Security) ของข้อมูลที่ส่งผ่านระบบ
เครือข่ายโดยเฉพาะบนเครือข่ายอินเทอร์เน็ต ซึ่งการสื่อสารข้อมูลระหว่างผู้ใช้งาน
บนเครือข่ายอินเทอร์เน็ตและเครื่องแม่ข่ายปลายทาง (เช่น Web Server) จาเป็นที่
จะต้องส่งต่อผ่านเครือข่ายอินเทอร์เน็ตสาธารณะหลายเครือข่ายกว่าข้อมูลจะถึง
ปลายทาง
ในรูปแบบการสื่อสารผ่านเครือข่ายอินเทอร์เน็ตนี้ ภัยคุกคาม (Threat) ที่อาจจะ
เกิดขึ้นจากผู้ไม่ประสงค์ดีคือ "การถูกดักฟัง(อ่าน)ข้อมูล" (Eavesdropping) ดังนั้น
SSL จึงเป็นเทคโนโลยีที่ถูกพัฒนาขึ้นมาใช้จัดการกับภัยคุกคามชนิดนี้โดยตรง
เพราะด้วยความสามารถในการเข้ารหัสลับข้อมูล (Encrypt) ก่อนที่จะถูกส่งผ่าน
เครือข่ายไปถึงผู้รับปลายทาง ถึงแม้ผู้ใช้งานบางส่วนจะไม่เข้าใจหลักการทางานของ
เทคโนโลยี SSL เท่าใดนัก แต่ผู้ใช้ส่วนใหญ่มักจะรับทราบว่า หากเว็บไซต์ปลายทาง
ใช้โพรโทคอล HTTPS แทนที่จะเป็นโพรโทคอล HTTP ตามปกติแล้ว แสดงว่า
ข้อมูลที่สื่อสารกันอยู่นั้นถูกเข้ารหัสลับเอาไว้ ซึ่งเป็นความเข้าใจที่ถูกต้องเพียงแต่ว่า
ตามหลักการเข้ารหัสลับทุกชนิดนั้น ข้อมูลจะยังคงเป็นความลับและมีความมั่นคง
ปลอดภัยจากการถูกปลอมแปลงหรือดักอ่านข้อมูลได้ ก็ต่อเมื่อกุญแจ (Key) ที่ใช้
เข้ารหัสลับนั้นไม่รั่วไหลหรือถูกเปิดเผยกับผู้อื่นที่ไม่ใช่คู่สนทนา เพื่อให้เกิดความ
เข้าใจในเรื่องนี้ จึงจาเป็นจะต้องเข้าใจกลไกของ SSL ในเบื้องต้นก่อน
กลไกของ SSL มีการทางานสองขั้นตอน โดยขั้นตอนแรกอาจจะเรียกว่าขั้นตอน
Hand-shaking คือเป็นการตรวจสอบข้อกาหนดระหว่าง Client กับ Server ว่าจะ
36
ยอมสื่อสารข้อมูลกันหรือไม่ ซึ่งตามกลไกของ SSL จะเป็นการตรวจสอบข้างเดียว
คือ Client ซึ่งในที่นี้คือ Web Browser จะเป็นผู้ตรวจสอบใบรับรอง SSL (SSL
Certificate) ที่ Web Server ส่งมาให้ และตรวจสอบการตั้งค่าสาหรับการเข้ารหัส
ลับข้อมูลต่างๆ (Encryption specification) ของ Web Server ว่าถูกต้อง
เหมาะสมหรือไม่ จากนั้น Client จะเป็นผู้สร้าง Key สาหรับการเข้ารหัสลับข้อมูล
แบบกุญแจสมมาตร (Symmetric Key Cryptography) แล้วส่งไปให้ Server ใช้
ในการเข้ารหัสลับข้อมูลเพื่อสื่อสารกับ Client ในขั้นตอนที่ 2 ของ SSL ต่อไป
[3-1]
Symmetric Key ที่ Client ส่งไปให้ Server จะถูกเข้ารหัสลับเพื่อป้องกันไม่ให้ถูก
ลักลอบอ่านได้ด้วยรูปแบบการเข้ารหัส ลับข้อมูลแบบกุญแจอสมมาตร
(Asymmetric Cryptography) เพื่อป้องกันไม่ให้ผู้อื่นนอกเหนือจาก Server
ซึ่งเป็นผู้เดียวที่มี Private Key ของ SSL Certificate นั้นใช้ถอดรหัสลับข้อมูล
เพื่ออ่าน Symmetric Key ที่ Client ส่งมาให้ ซึ่งกลไกนี้ได้รับการยอมรับว่าเป็น
กลไกที่มีความมั่นคงปลอดภัยและสมบูรณ์แบบอยู่แล้ว [3-2] เพียงแต่ความสาคัญ
ของกลไกนี้อยู่ที่ขั้นตอนแรกของกลไก SSL ที่ Client จะรับ SSL Certificate มา
เพื่อตรวจสอบในขั้นนี้ Client จะต้องแน่ใจว่า SSL Certificate ที่ได้รับนั้น เป็น
SSL Certificate ของ Server ที่กาลังติดต่ออยู่จริง โดยปกติ Web Browser จะทา
การตรวจสอบ SSL Certificate โดยอัตโนมัติ หาก Web Browser พบว่ามีความ
ผิดปกติ เช่น ชื่อโดเมนเนมของเว็บไซต์ไม่ตรงกับ SSL Certificate ที่ใช้งานบน
Server หรือ ผู้ให้บริการออกใบรับรอง CA (Certificate Authority) ที่ออก SSL
Certificate ไม่เป็นที่รู้จัก (หรือไม่ได้รับความเชื่อถือจาก Web Browser) หรือ SSL
Certificate หมดอายุการใช้งาน Web Browser จะขึ้นข้อความเตือนผู้ใช้ว่าเกิด
ความผิดปกติขึ้น
ถ้าผู้ใช้งานเลือก ที่จะยอมรับ Certificate ที่ Web Browser พบว่าความผิดปกตินี้
กลไกการสื่อสารด้วย SSL ก็จะเข้าสู่ขั้นตอนการแลกเปลี่ยน Symmetric Key ที่จะ
ใช้ในการสื่อสารข้อมูลระหว่าง Server กับ Client และเริ่มการสื่อสารข้อมูลต่อไป
ตามปกติ ซึ่งตามหลักการแล้วในเมื่อ SSL Certificate นั้นผิดปกติ อาจมีสาเหตุ
37
จากผู้ไม่ประสงค์ดีกาลังพยายามโจรกรรมข้อมูล (Traffic Hijacking) ในรูปแบบใด
รูปแบบหนึ่งอยู่ เช่น การดักอ่านข้อมูล การปลอมแปลงข้อมูล เป็นต้น SSL
Certificate ที่ผิดปกตินี้อาจถือเป็นสิ่งบอกเหตุแบบหนึ่งว่าการสื่อสารข้อมูลนี้กาลัง
ถูกโจมตีอยู่ และตามหลักทฤษฎีของการใช้งานสารสนเทศอย่างมั่นคงปลอดภัยได้
แนะนาให้ผู้ใช้งานควรยกเลิกสื่อสารข้อมูลกับ Web Server นั้นต่อไป เพราะมี
ความเสี่ยงที่ข้อมูลที่สื่อสารกันอาจจะถูกดักอ่านหรือปลอมแปลงจากผู้ไม่ประสงค์ดี
ได้
รูปที่ 2 (3-1) SSL Certificate ที่ผิดปกติหรือไม่เป็นที่ยอมรับ
อย่างไรก็ตามในทางปฏิบัติ ในบางสถานการณ์ Web Server ที่ใช้งาน SSL
Certificate ที่ผิดปกติหรือไม่เป็นที่ยอมรับ อาจเกิดจากการที่ SSL Certificate นั้น
ถูกสร้างขึ้นโดยใช้วิธีที่เรียกว่า Self-Sign [3-3] โดยเฉพาะ Web Server ที่ใช้
ภายในองค์กรหลายแห่ง SSL Certificate ชนิดนี้ Web Browser จะถือว่าไม่ได้ถูก
รับรองโดย CA ที่ Web Browser เชื่อถือ ทาให้ Web Browser ขึ้นข้อความเตือน
38
ผู้ใช้ว่าเป็น SSL Certificate ที่ผิดปกติ บางครั้ง SSL Certificate ที่ใช้กับ Server
ภายในเหล่านี้อาจจะมีความผิดพลาดในการกาหนดค่าอื่นๆ อีกหลายอย่าง
เนื่องจากการขาดความตระหนักของภัยคุกคามที่อาจจะเกิดขึ้นของผู้ดูแลระบบ
เพราะคิดว่าเป็นเรื่องของ Server ที่ใช้งานภายใน จึงไม่มีความจาเป็นจะต้องตั้งค่า
ติดตั้งต่างๆ ให้ถูกต้อง ทาให้ผู้ใช้งานในองค์กรเหล่านี้เกิดความเคยชินที่จะยอมรับ
SSL Certificate ที่ผิดปกติ หรือมองว่าการตรวจสอบ Certificate เป็นเรื่องไม่
จาเป็น
เมื่อ ผู้ใช้งานเคยชินที่จะยอมรับ SSL Certificate ที่ผิดปกติ ทาให้คุณสมบัติของ
การใช้งานเทคโนโลยี SSL ในการรักษาความมั่นคงปลอดภัยของข้อมูล ทั้งในด้าน
การพิสูจน์ความแท้จริง (Authenticity) และ การรักษาความลับ
(Confidentiality) เสื่อมลง เพราะเมื่อไม่สามารถรับประกันได้ว่า SSL Certificate
มาจาก Server ที่แท้จริง ก็ไม่สามารถรับประกันได้ว่าข้อมูลที่สื่อสารภายใต้ SSL
จะไม่รั่วไหลไปสู่ผู้อื่นที่ไม่ใช่คู่สนทนาเช่นกัน
แต่ถึงแม้ผู้ใช้งานจะมีความตระหนักในเรื่อง Security ที่ดี ไม่ยอมรับ SSL
Certificate ที่ผิดปกติ ระบบการทางานของ SSL ก็ยังมีช่องโหว่ที่สาคัญ นั่นคือ
ช่องโหว่ในกลไกการทางานของ SSL และความเชื่อถือของหน่วยงานกลางที่ทา
หน้าที่ออกใบรับรอง ซึ่งในที่นี้คือ CA ที่มีหน้าที่รับรองความถูกต้องของ Server
ปลายทางให้กับผู้ใช้งานในลักษณะเดียวกับการที่ลูกค้าให้ความเชื่อถือผลิตภัณฑ์
ใดๆ เพราะผลิตภัณฑ์นั้นได้รับการรับรองจากหน่วยงานที่ลูกค้าเชื่อถือนั่นเอง
จะเกิดอะไรขึ้นหาก CA ที่ได้รับการยอมรับในระดับสากลมีกระบวนการทางานที่
หละหลวม ไม่มีการตรวจสอบผู้ขอ Certificate ให้แน่ชัดว่าเป็นเจ้าของ Server
จริงหรือไม่ เช่น ผู้ไม่ประสงค์ดีที่ต้องการดักข้อมูลของ Gmail มาขอให้ CA ออก
Certificate ของ Gmail ถ้าหาก CA ไม่มีการตรวจสอบที่ดีว่าผู้ขอเป็นผู้รับผิดชอบ
หรือเป็นเจ้าของ Gmail หรือไม่ แล้ว CA ออก Certificate ให้ไป Certificate นั้นก็
จะสามารถนาไปใช้ดักข้อมูลของ Gmail ในลักษณะ Traffic Hijacking ได้อย่าง
แนบเนียน เพราะ Certificate ที่ออกมาจาก CA ที่ได้รับการยอมรับในระดับสากล
39
โดยตรงแบบนี้ และเป็น CA ที่ Web Browser เชื่อถือก็จะไม่ทาให้ Web Browser
แสดงข้อความเตือนแต่อย่างใด
ที่ผ่านมาหลายคนคงจะจาได้ว่ามีรายงานข่าวกรณีเกี่ยวกับการโจมตี CA เพื่อ
ลักลอบออก Certificate ปลอมของเว็บไซต์ชื่อดังหลายแห่งมาแล้ว 2 ครั้ง อย่างใน
ครั้งล่าสุดมีรายงานว่ามีการตรวจพบในช่วงเดือน ก.ค. ที่ผ่านมานี้เอง โดย Hacker
ไม่ทราบกลุ่ม และจุดประสงค์ที่แน่ชัด ได้ทาการโจมตีระบบการออก Certificate
ของ DigiNotar ซึ่งเป็น CA ระดับ Root CA ของประเทศ Netherland [3-4] ใน
รายงานการวิเคราะห์ที่เชื่อถือได้ พบว่า Hacker กลุ่มหรือบุคคลดังกล่าว ได้ออก
Certificate ปลอมสาหรับเว็บไซต์ต่างๆ ไปมากกว่า 200 ใบ (บางรายงานอ้างว่า
มากกว่า 500 ใบ) รวมถึงการออก Certificate ปลอมกับโดเมนเนมของ
google.com ในกลุ่มผู้เชี่ยวชาญทางด้าน Security กล่าวว่ามีข้อมูลที่ไม่สามารถ
ยืนยันแหล่งข่าวได้ระบุว่ามีรัฐบาลของบางประเทศ พยายามลักลอบดูข้อมูลการใช้
อีเมลของบุคคลที่รัฐบาลประเทศดังกล่าว เชื่อว่ามีแนวคิดในทางต่อต้านรัฐบาล
โดยความพยายามดังกล่าวได้มีมาต่อเนื่องเป็นระยะเวลาไม่ต่ากว่า 1 ปีแล้ว
หากมีการตรวจพบการทุจริตหรือการโจมตีตามที่กล่าวข้างต้นในบริการการออก
ใบรับรอง CA สามารถยกเลิก (Revoke) Certificate ที่มีปัญหาได้ตลอดเวลาตาม
เงื่อนไขของการให้บริการ โดย CA อาจจะเผยแพร่รายการของ Certificate ที่ถูก
ยกเลิกออกมาตามระยะเวลาที่กาหนด (อาจเร็วกว่ากาหนดได้หากมีเหตุจาเป็น
ฉุกเฉิน) รายการนี้เรียกว่า CRL (Certificate Revocation List) ซึ่งมักจะมีอยู่ใน
เว็บไซต์ของ CA แต่ละราย หรือที่อื่นๆ ตามที่ CA กาหนด และ Client จะต้อง
Update ข้อมูลนี้อย่างสม่าเสมอ เพื่อให้สามารถตรวจจับ Certificate ที่มีปัญหาได้
อย่างทันท่วงที อีกวิธีคือ CA จะใช้กลไกที่เรียกว่า OCSP (Online Certificate
Status Protocol) ซึ่งคล้ายกับ Directory service ที่ Client สามารถเข้ามา
ตรวจสอบสถานะของ Certificate ได้แบบ Real-time
แต่ในความเป็นจริงผู้ใช้งานส่วนมากไม่ได้ตั้งค่าให้ Web Browser ทาการติดต่อกับ
CA เพื่อปรับปรุงข้อมูลของ CRL อยู่ตลอดเวลา หรือไม่ได้ตั้งค่าให้ทาการตรวจสอบ
40
กับ OCSP ทุกครั้งที่มีการเชื่อมต่อแบบ SSL ทาให้กว่าที่จะรู้ว่า Certificate ใดมี
ปัญหาก็อาจสายเกินไป และถึงแม้ Web Browser จะรับรู้ว่า Certificate นี้ถูก
ยกเลิกแล้ว และขึ้นข้อความเตือนผู้ใช้ก็ตามก็ยังขึ้นอยู่กับผู้ใช้ว่าจะสนใจคาเตือนนั้น
หรือไม่อีกขั้นหนึ่งด้วย
ยิ่งไปกว่านั้นในงาน Ekoparty ซึ่งเป็นงานสัมมนาด้านความมั่นคงปลอดภัย
สารสนเทศที่จะจัดขึ้นในประเทศอาร์เจนตินา ในวันที่ 23 กันยายน 2554 จะมีการ
บรรยายและแสดงวิธีการโจมตีการเชื่อมต่อแบบ SSL (และ TLS ซึ่งเป็นรูปแบบที่
ใหม่กว่า) ด้วยโปรแกรมซึ่งมีชื่อเรียกว่า BEAST (Browser Exploit Against
SSL/TLS) โดยการโจมตีรูปแบบนี้จะอาศัยการทางานของ Malicious code
ที่ทางานอยู่บน Client เพื่อดักจับข้อมูลใน Web Browser ซึ่งผู้ที่ค้นพบรูปแบบ
การโจมตีนี้ระบุว่า ข้อมูลที่ดักจับมาได้นี้สามารถช่วยให้การถอดรหัสข้อมูลที่ป้องกัน
ด้วย SSL ของ Client ได้โดยไม่ต้องใช้ Key หรือไม่ต้องวุ่นวายกับการทา Traffic
Hijacking แต่อย่างใด [3-5]
ในความเป็นจริงรูปแบบการโจมตีนี้ไม่ใช่ของใหม่ เพราะเป็นการอาศัยจุดอ่อนใน
กลไกการเข้ารหัสลับข้อมูลของ SSL และ TLS รุ่นแรกที่ทราบกันมานานแล้ว[8-6]
และแม้จะมีการพัฒนาและปรับปรุง TLS 1.1 และ 1.2 เพื่อแก้ไขจุดอ่อนดังกล่าว
แต่เนื่องจากยังไม่มีการค้นพบว่ามีผู้สามารถใช้ประโยชน์จากจุดอ่อนนี้ได้ อย่าง
จริงจังทาให้ยังไม่มีการสนับสนุน TLS รุ่นใหม่เท่าที่ควร ทั้งในด้าน Server และ
Client ซึ่งการค้นพบการโจมตีที่ใช้จุดอ่อนนี้ และมีการพิสูจน์ว่าสามารถใช้งานได้
จริง น่าจะเป็นการกระตุ้นให้เกิดความตระหนักในภัยคุกคามของเทคโนโลยี SSL ใน
กลุ่มอุตสาหกรรม IT ได้อย่างจริงจัง หรือแม้กระทั่งเกิดผลกระทบทาให้ผู้ให้บริการ
ธุรกรรมทางอิเล็กทรอนิกส์บางราย จาเป็นต้องหยุดให้บริการชั่วคราวเพื่อแก้ไข
ปัญหาดังกล่าว
ดังจะเห็น ได้ว่า SSL เป็นกลไกในด้านความมั่นคงปลอดภัยที่ขึ้นอยู่กับปัจจัย
ภายนอกอย่างมาก ทั้งความน่าเชื่อถือของหน่วยงานกลางที่ทาหน้าที่ออกใบรับรอง
(CA) และความตระหนักในภัยคุกคามที่เกี่ยวข้องกับการใช้งาน Certificate ที่ไม่
41
ถูกต้องของผู้ใช้งาน หรือการใช้งานเทคโนโลยี SSL ในรุ่นแรกที่มีช่องโหว่ ซึ่งได้เห็น
แล้วว่าปัจจัยภายนอกทั้งหลายนี้กาลังถูกท้าทายอย่างหนัก จนอาจจะเริ่มมีคาถาม
ว่าถึงเวลาหรือยังที่ผู้ที่เกี่ยวข้องจะต้องใส่ใจและให้ความตระหนักถึงภัยคุกคามที่
เกิดกับเทคโนโลยี SSL อย่างจริงจัง เพื่อการรักษาความมั่นคงปลอดภัยของการ
สื่อสารข้อมูลหรือบริการธุรกรรมทางอิเล็กทรอนิกส์บนเครือข่ายอินเทอร์เน็ต
3.1 เอกสารอ้างอิง
[3-1] TLS, http://en.wikipedia.org/wiki/Secure_Sockets_Layer
[3-2] HTTP_Secure, http://en.wikipedia.org/wiki/HTTP_Secure
[3-3] Self-signed certificate, http://en.wikipedia.org/wiki/Self-
signed_certificate
[3-4] ระวังภัยแฮกเกอร์ออกใบรับรองปลอมของ Google Yahoo! Mozilla
และอื่นๆ, http://www.thaicert.or.th/alerts/home/2011/
al2011ho0001.html
[3-5] Hackers break SSL encryption used by millions of sites,
http://www.theregister.co.uk/2011/09/19/beast_exploits_payp
al_ssl/
[3-6] A CHALLENGING BUT FEASIBLE BLOCKWISE-ADAPTIVE CHOSEN-
PLAINTEXT ATTACK ON SSL,
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.61.5
887
42
43
4. ข้อแนะนาในการใช้งาน Social Media
สาหรับผู้ใช้งานทั่วไป
ผู้เรียบเรียง: ทีมไทยเซิร์ต
วันที่ประกาศ: 3 ต.ค. 2554
ปรับปรุงล่าสุด: 10 ต.ค. 2554
ปัจจุบันสื่อสังคมและเครือข่ายสังคมออนไลน์ (Social media and Social
network) ได้ถูกนามาใช้เพื่อแบ่งปันเรื่องราว ประชาสัมพันธ์หน่วยงาน หรือใช้เป็น
แหล่งแลกเปลี่ยนข้อมูล เนื่องจาก สามารถใช้งานได้อย่างสะดวกสบายและรวดเร็ว
ทาให้ได้รับความนิยมเป็นอย่างสูง ศูนย์ประสานงานการรักษาความมั่นคงระบบ
คอมพิวเตอร์ประเทศไทย (ThaiCERT) มีข้อแนะนาเบื้องต้นในการใช้งานสื่อสังคม
และเครือข่ายสังคม สาหรับผู้ใช้ทั่วไป ดังนี้
4.1 การใช้งานรหัสผ่านอย่างมั่นคงปลอดภัย
• การตั้งค่ารหัสผ่านที่ใช้ในการล็อกอินเข้าสู่เว็บไซต์หรือระบบต่างๆ จะต้อง
เป็นรหัสผ่านที่คาดเดาได้ยาก เพื่อลดความเสี่ยงกรณีที่ผู้ประสงค์ร้ายที่
พยายามจะสุ่มรหัสผ่านเพื่อใช้ล็อกอินบัญชีผู้ใช้งานของผู้อื่น การตั้งค่า
รหัสผ่านที่มั่นคงปลอดภัยมีข้อแนะนา ดังนี้
1. รหัสผ่านควรมีความยาวไม่ต่ากว่า 8 ตัวอักษร เช่น Ro23w%9T
2. รหัสผ่านควรประกอบไปด้วยตัวอักษรพิมพ์เล็ก พิมพ์ใหญ่ ตัวเลข และ
อักขระพิเศษ
44
รูปที่ 3 (4-1) การตั้งค่ารหัสผ่านอย่างมั่นคงปลอดภัย
• การตั้งคาถามที่ใช้ในกรณีกู้คืนบัญชีผู้ใช้งาน (Forget password) ควร
เลือกใช้ข้อมูลหรือคาถามที่เป็นส่วนบุคคลและควรเป็นข้อมูลที่ผู้อื่นคาด
เดายาก เพื่อป้องกันการสุ่มคาถามคาตอบจากผู้ประสงค์ร้าย
• ไม่ควรบันทึกรหัสผ่านไว้ในที่ซึ่งง่ายต่อการสังเกตเห็นของบุคคลอื่น เช่น
จดรหัสผ่านวางไว้บนโต๊ะ หรือเขียนโน้ตติดไว้บนหน้าจอคอมพิวเตอร์
รูปที่ 4 (4-2) ไม่ควรเปิดเผยรหัสผ่าน
• ไม่ควรเปิดเผยรหัสผ่านให้แก่บุคคลอื่นล่วงรู้ เพื่อลดความเสี่ยงต่อการถูก
ขโมยรหัสผ่านจากบุคคลที่สาม
• ไม่ควรกาหนดค่าให้เว็บเบราว์เซอร์ (web browser) ช่วยจารหัสผ่านที่ใช้
ในการเข้าถึงเว็บไซต์ (Remember password) เนื่องจาก มีความเสี่ยงที่
จะถูกขโมยบัญชีผู้ใช้งานหรือแกะรอยรหัสผ่านจาก เครื่องคอมพิวเตอร์
นั้นๆ
45
4.2 การใช้บริการสื่อและเครือข่ายสังคมทางเว็บอย่างมั่นคง
ปลอดภัย
• การได้รับอีเมลแจ้งเตือนจากเว็บไซต์ต่างๆ ในลักษณะเชื้อเชิญให้คลิกลิงก์
ที่แนบมาในอีเมล ผู้ใช้งานควรสงสัยว่าลิงก์ดังกล่าวเป็นลิงก์ที่ไม่ปลอดภัย
(ลิงก์ที่มีความประสงค์จะหลอกลวงเพื่อขโมยข้อมูลส่วนบุคคล เช่น
รหัสผ่าน โดยวิธีการต่างๆ) และสามารถแจ้งลิงก์ต้องสงสัยมายัง
report@thaicert.or.th เพื่อตรวจสอบต่อไป
• ปัจจุบันเว็บไซต์ที่ให้บริการสื่อและเครือข่ายสังคมได้เปิดช่องทางเกี่ยวกับ
ความมั่นคงปลอดภัยเพิ่มเติม เพื่อให้ผู้ใช้งานสามารถเชื่อมต่อเว็บไซต์ผ่าน
ช่องทางที่มีการเข้ารหัสลับข้อมูล เพื่อป้องกันการดักจับข้อมูลระหว่างทาง
จากผู้ประสงค์ร้าย โดยกระบวนการดังกล่าวเป็นการเชื่อมต่อเว็บไซต์ผ่าน
รูปแบบที่เรียกกันว่า HTTPS ซึ่งผู้ใช้งานทั่วไปสามารถใช้ช่องทางดังกล่าว
ได้ทันที โดยเรียนใช้ผ่านการพิมพ์ https:// ตามด้วยชื่อเว็บไซต์ เช่น
https://www.facebook.com
รูปที่ 5 (4-3) การใช้บริการสื่อและเครือข่ายสังคมทางเว็บ
• ใช้กระบวนการยืนยันตัวตน (Authentication) แบบ Two-factor
Authentication ซึ่งเป็นวิธีการที่มีความมั่นคงปลอดภัยสูงกว่าการเข้าสู่
เว็บไซต์โดยการล็อกอินโดยใช้รหัสผ่านเพียงอย่างเดียว ซึ่งกระบวนการ
ยืนยันตัวตนดังกล่าว จะใช้การยืนยันตัวตนด้วยรหัสผ่านร่วมกับวิธีการ
อื่นๆ เช่น การยืนยันรหัสผ่านชั่วคราวที่ได้จาก SMS หลังจากล็อกอินครั้ง
แรกแล้ว เป็นต้น โดยปัจจุบันเว็บไซต์ที่ให้บริการสื่อและเครือข่ายสังคมที่
รองรับกระบวนการดังกล่าว ได้แก่ Facebook
46
รูปที่ 6 (4-4) Facebook
• เนื่องจากเว็บไซต์บริการสื่อและเครือข่ายสังคมออนไลน์ส่วนใหญ่ มีการ
จัดเตรียมช่องทางในการกู้คืนบัญชีผู้ใช้งานหรือกู้คืนรหัสผ่าน (Forget
password) โดยส่วนใหญ่จะใช้ช่องทางสื่อสารผ่านอีเมลของผู้ใช้งาน ซึ่งก็
อาจเป็นปัจจัยหนึ่งให้ผู้ประสงค์ร้ายเข้าโจมตีผ่านช่องทางอีเมล จากนั้น
จึงใช้ช่องทางดังกล่าวเข้าควบคุมบัญชีเครือข่ายสังคมต่างๆ ต่อไป
• ไม่เผยแพร่ข้อมูลสาคัญไม่ว่าส่วนบุคคลของของตนเอง ผู้อื่น และของ
องค์กร ในเว็บไซต์บริการสื่อและเครือข่ายสังคมออนไลน์
• พึงระลึกไว้เสมอว่าข้อมูลต่างๆ ที่เผยแพร่ไว้บนบริการสื่อและเครือข่าย
สังคมนั้น คงอยู่ถาวร ผู้อื่นอาจเข้าถึง และเผยแพร่ของข้อมูลนี้ได้
• ไม่ควรใช้บริการสื่อและเครือข่ายสังคมออนไลน์ในการเผยแพร่ข้อความ
หรือข้อมูลที่ไม่เหมาะสมต่างๆ ซึ่งมีผลกระทบต่อสิทธิของผู้อื่นโดยไม่เป็น
ธรรม
4.3 การใช้งานคอมพิวเตอร์อย่างมั่นคงปลอดภัย
• ติดตั้งซอฟต์แวร์ป้องกันไวรัส และอัพเดทฐานข้อมูลไวรัสของโปรแกรมอยู่
เสมอ
• อัพเดทระบบปฏิบัติการและซอฟต์แวร์เว็บเบราว์เซอร์ (web browser)
47
อยู่เสมอ
• ไม่ควรติดตั้งโปรแกรมเสริมจากผู้พัฒนาอื่น (3rd
Party Application)
นอกเหนือจากโปรแกรมที่พัฒนาโดยเจ้าของบริการสื่อและเครือข่ายสังคม
เนื่องจาก ผู้ใช้งานมีความเสี่ยงจากการถูกลักลอบ ปลอมแปลง หรือขโมย
ข้อมูลสาคัญของผู้ใช้งานได้
• ควรละเว้นการใช้เครือข่ายอินเทอร์เน็ตหรือเครื่องคอมพิวเตอร์ที่ให้บริการ
ในที่สาธารณะ หรือจากผู้ให้บริการที่ไม่น่าเชื่อถือ เช่น เครือข่ายไร้สาย
(Wi-Fi) หรือเครื่องคอมพิวเตอร์ที่ไม่สามารถระบุผู้ให้บริการได้ ซึ่งอาจเป็น
ช่องทางให้ผู้ไม่ประสงค์ดีลักลอบขโมยข้อมูลสาคัญ เช่น รหัสผ่านของ
ผู้ใช้งาน เป็นต้น
48
49
5. การจัดการไดเรกทอรีและไฟล์ในระบบยูนิกซ์
ผู้เรียบเรียง: เสฏฐวุฒิ แสนนาม
วันที่เผยแพร่: 5 พ.ย. 2554
ปรับปรุงล่าสุด: 9 พ.ย. 2554
ยูนิกซ์ (นิยมเขียนว่า Unix แต่ชื่อตามเครื่องหมายการค้าคือ UNIX) เป็นชื่อของ
ระบบปฏิบัติการที่ถูกพัฒนาขึ้นโดยนักวิจัยที่ศูนย์วิจัย Bell Labs จากบริษัท AT&T
ในปี ค.ศ. 1969 ถูกออกแบบมาเพื่อให้มีความสามารถหลักๆ คือรองรับการ
ประมวลผลโปรแกรมได้หลายตัวพร้อมกัน (Multi-tasking) และรองรับผู้ใช้งาน
หลายคน (Multi-user) ในปัจจุบันระบบยูนิกซ์ได้มีการพัฒนาเพิ่มเติมเพื่อให้
สามารถทางานได้บนฮาร์ดแวร์ที่หลากหลาย รวมถึงถูกใช้เป็นโครงสร้างของ
ระบบปฏิบัติการสมัยใหม่หลายระบบปฏิบัติการ เช่น BSD, Solaris, Mac OSX
หรือ ระบบปฏิบัติการที่ทางานคล้ายยูนิกซ์ (Unix-like) เช่น Linux หรือ Android
อีกด้วย [5-1]
ในระบบยูนิกซ์นั้น จะมีการจัดการไดเรกทอรีและไฟล์ที่เป็นมาตรฐาน โดยพิจารณา
ทรัพยากรทุกอย่างบนระบบในรูปของไฟล์ไม่เว้นแม้กระทั่งฮาร์ดแวร์ หรือโปรเซสที่
รันอยู่ในหน่วยความจา ซึ่งการออกแบบโครงสร้างดังกล่าวนี้มีข้อดีคือ ถ้าผู้ใช้
สามารถกาหนดสิทธิการใช้งานให้กับไฟล์ใดๆ ได้ ก็จะสามารถกาหนดสิทธิให้กับ
ทรัพยากรอื่นๆ ที่อยู่ในระบบยูนิกซ์ได้ ดังนั้น ในบทความนี้จึงนาเสนอเนื้อหาที่
เกี่ยวข้องกับการจัดการไดเรกเทอรีและไฟล์ในระบบยูนิกซ์ เบื้องต้นสาหรับผู้ที่สนใจ
หรือผู้ที่เริ่มใช้งานระบบยูนิกซ์
5.1 ไดเรกทอรีและไฟล์ในระบบยูนิกซ์
• ไฟล์ (File) คือสิ่งที่ใช้แทนตาแหน่งของข้อมูลที่อยู่ในหน่วยความจา
โดยทั่วไปการตั้งชื่อไฟล์นิยมใช้เครื่องหมาย . ในการแยกชื่อกับส่วนขยาย
50
ของไฟล์ (File Extension) เพื่อระบุว่าไฟล์นี้เป็นประเภทอะไร
• ไดเรกทอรี (Directory) คือพื้นที่เสมือนในคอมพิวเตอร์ มีไว้สาหรับจัดเก็บ
ไฟล์หรือไดเรกทอรีอื่นๆ ให้อยู่ในพื้นที่เดียวกัน
5.2 โครงสร้างของไดเรกทอรีในระบบยูนิกซ์
ไดเรกทอรีในระบบยูนิกซ์จะอ้างอิงโครงสร้างข้อมูลแบบต้นไม้หัวกลับ จากรากของ
ต้นไม้ที่แตกรากสาขาจากด้านบนลงสู่ด้านล่าง โดยมีส่วนที่อยู่ด้านบนสุดเรียกว่า
root ซึ่งแทนด้วยเครื่องหมาย / ดังรูปที่ 7 (5-1)
ภาพจาก: http://www.ualberta.ca/
รูปที่ 7 (5-1) โครงสร้างของไดเรกทอรีในระบบยูนิกซ์
จาก root จะประกอบด้วยไดเรกทอรีย่อยอยู่ภายใน แต่ละไดเรกทอรีจะใช้สาหรับ
จัดเก็บไฟล์ที่มีการทางานคล้ายคลึงกัน โครงสร้างไดเรกทอรีหลักๆ ของระบบยูนิกซ์
เป็นดังนี้
ตารางที่ 2 (5-1) โครงสร้างไดเรกทอรีหลักๆ ของระบบยูนิกซ์
ไดเรกทอรี หน้าที่
/ root
/bin เก็บโปรแกรมที่เป็นคาสั่งของระบบ
/boot เก็บ Kernel (โปรแกรมส่วนที่เป็นการทางานหลักของระบบปฏิบัติการ)
และไฟล์ที่เกี่ยวข้องกับการเริ่มต้นระบบ
51
ไดเรกทอรี หน้าที่
/dev เก็บไฟล์ที่เป็นส่วนติดต่อของอุปกรณ์ต่างๆ เช่น ดิสก์ เครื่องพิมพ์ ฯลฯ
/etc เก็บไฟล์ที่ใช้สาหรับกาหนดค่าการทางานและไฟล์ที่เกี่ยวข้องกับการ
เริ่มต้นระบบ
/home ไดเรกทอรี home ของผู้ใช้ ตั้งชื่อตามชื่อบัญชีผู้ใช้
/lib เก็บไฟล์ไลบรารีของระบบ
/media mount point ของอุปกรณ์เก็บข้อมูลแบบถอดได้ (มีใน
ระบบปฏิบัติการสมัยใหม่)
/mnt mount point ของอุปกรณ์เก็บข้อมูลแบบถอดได้
/opt เก็บโปรแกรมที่ผู้ใช้ติดตั้งเพิ่มเติมซึ่งไม่เกี่ยวข้องกับระบบหลัก
/proc ไฟล์ข้อมูลของโปรเซสทั้งหมดที่อยู่ในหน่วยความจา
/root ไดเรกทอรี home ของ root (บางระบบปฏิบัติการจะอยู่ใน /home)
/sbin เก็บโปรแกรมที่เป็นคาสั่งของระบบที่ต้องใช้สิทธิของ root ในการรัน
/tmp เก็บไฟล์ชั่วคราว (Temporary file) จะถูกลบทิ้งเมื่อเปิดเครื่องขึ้นมา
ใหม่
/usr เก็บข้อมูลคาสั่งอื่นๆเพิ่มเติม โครงสร้างภายในคล้ายโครงสร้างของ /
/var เก็บไฟล์ที่เกี่ยวข้องกับการตั้งค่าและการทางานของระบบ
5.3 คาสั่งที่เกี่ยวข้องกับการใช้งานไดเรกทอรีและไฟล์
สร้างไดเรกทอรี
• การสร้างไดเรกทอรี สามารถทาได้โดยใช้คาสั่ง mkdir DIR_NAME เช่น
mkdir abc เป็นการสร้างไดเรกทอรีชื่อ abc
• ในกรณีที่ต้องการสร้างหลายไดเรกทอรีพร้อมกันในครั้งเดียว ใช้คาสั่ง
mkdir {DIR1,DIR2,DIR3,...} เช่น mkdir {a,b,c} จะเป็นการสร้าง 3
ไดเรกทอรี คือ a, b และ c
• ในกรณีที่ต้องการสร้างไดเรกทอรีที่มีไดเรกทอรีย่อยอยู่ภายใน ใช้คาสั่ง
mkdir -p /PARENT1/PARENT2/CHILD เช่น mkdir -p q/w/e จะเป็น
52
การสร้างไดเรกทอรี q ซึ่งมีไดเรกทอรี w อยู่ภายใน และมีไดเรกทอรี e
อยู่ภายในไดเรกทอรี w อีกที
ลบไดเรกทอรี
• การลบไดเรกทอรี ใช้คาสั่ง rm -r DIRECTORY_NAME
• ถ้าไดเรกทอรีที่ต้องการลบนั้นมีไฟล์หรือไดเรกทอรีอยู่ภายใน จะไม่
สามารถทาการลบได้ถ้าไม่ลบไฟล์หรือไดเรกทอรีทั้งหมดที่อยู่ภายในก่อน
แต่ถ้าต้องการลบทิ้งทั้งไดเรกทอรีโดยไม่สนใจสิ่งที่อยู่ภายใน สามารถใช้
คาสั่ง rm -rf DIRECTORY_NAME เพื่อบังคับให้ระบบลบไดเรกทอรีนั้น
ได้
สร้างไฟล์
• การสร้างไฟล์เปล่าๆ ขึ้นมาโดยไม่มีเนื้อหาอะไร สามารถทาได้โดยใช้คาสั่ง
touch FILENAME เช่น คาสั่ง touch test.txt จะได้ไฟล์ชื่อ test.txt
ลบไฟล์
• การลบไฟล์ ใช้คาสั่ง rm FILENAME เช่น คาสั่ง rm test.txt เป็นการลบ
ไฟล์ test.txt
คัดลอกไฟล์/ไดเรกทอรี
• การคัดลอกไฟล์หรือไดเรกทอรี ใช้คาสั่ง cp SOURCE TARGET เช่น cp
test.txt test2.txt เป็นการคัดลอกไฟล์ test.txt มาสร้างเป็นไฟล์ชื่อ
test2.txt
ย้าย/เปลี่ยนชื่อไฟล์หรือไดเรกทอรี
• ในระบบยูนิกซ์ การย้ายและการเปลี่ยนชื่อไฟล์หรือไดเรกทอรี สามารถทา
ได้โดยใช้คาสั่ง mv
53
• การย้ายไฟล์หรือไดเรกทอรีไปไว้ที่ใหม่ ใช้คาสั่ง mv FILENAME
NEW_DIR เช่น mv test.txt /tmp จะเป็นการย้ายไฟล์ test.txt จาก
ตาแหน่งปัจจุบันไปไว้ที่ /tmp
• การเปลี่ยนชื่อไฟล์หรือไดเรกทอรี ใช้คาสั่ง mv OLD_NAME
NEW_NAME เช่น mv file1.txt file2.txt จะเป็นการเปลี่ยนชื่อไฟล์จาก
file1.txt เป็น file2.txt
เปลี่ยนไดเรกทอรี
• การเปลี่ยนไดเรกทอรีจากตาแหน่งปัจจุบันไปยังตาแหน่งอื่น ใช้คาสั่ง cd
DIRECTORY_NAME ซึ่งการระบุ DIRECTORY_NAME สามารถทาได้
หลายแบบ ดังนี้
• ระบุ เป็น absolute path จะอ้างอิงตาแหน่งที่อยู่จาก / เช่น ถ้า
ปัจจุบันอยู่ที่ /home/user/files/ เมื่อพิมพ์ cd /bin จะเป็น
การย้ายไปที่ไดเรกทอรี /bin
• ระบุ เป็น relative path จะอ้างอิงตาแหน่งจากจุดที่อยู่ปัจจุบัน
เช่น ถ้าปัจจุบันอยู่ที่ /home/user/files/ เมื่อพิมพ์ cd work
จะเป็นการย้ายไปที่ไดเรกทอรี /home/user/files/work
• ตาแหน่งปัจจุบัน แทนด้วยเครื่องหมาย .
• ตาแหน่งของไดเรกทอรีที่อยู่ด้านบนขึ้นไป (parent directory)
แทนด้วยเครื่องหมาย .. เช่น ถ้าปัจจุบันอยู่ที่
/home/user/files/ เมื่อพิมพ์ cd .. จะเป็นการย้ายไปที่
ไดเรกทอรี /home/user/
• ตาแหน่งของไดเรกทอรี home ของผู้ใช้ แทนด้วยเครื่องหมาย ~
ถ้าปัจจุบันอยู่ที่ /home/user/files/work เมื่อพิมพ์ cd ~ จะ
เป็นการย้ายไปที่ไดเรกทอรี /home/user/ นอกจากนี้การพิมพ์
คาสั่ง cd โดยไม่ระบุ path ปลายทาง ก็จะเป็นการย้ายตาแหน่ง
มาที่ไดเรกทอรี home ของผู้ใช้ด้วยเช่นกัน
54
ตรวจสอบตาแหน่งของไดเรกทอรีที่อยู่ในปัจจุบัน
• การตรวจสอบตาแหน่งของไดเรกทอรีที่อยู่ในปัจจุบัน สามารถทาได้โดยใช้
คาสั่ง pwd (ย่อมาจาก Print Working Directory) ซึ่งจะได้ผลลัพธ์
ออกมาเป็น absolute path ของไดเรกทอรีที่ทางานอยู่ในขณะนั้น
แสดงรายชื่อไดเรกทอรีหรือไฟล์ทั้งหมดในไดเรกทอรีที่ระบุ
• ในการแสดงรายชื่อไดเรกทอรีหรือไฟล์ทั้งหมดที่อยู่ในไดเรกทอรีที่ระบุ
สามารถทาได้โดยใช้คาสั่ง ls DIRECTORY_NAME ถ้าไม่ระบุชื่อ
ไดเรกทอรี จะเป็นการแสดงข้อมูลในไดเรกทอรีที่ทางานอยู่ในปัจจุบัน
• ถ้าต้องการดูข้อมูลในไดเรกทอรีย่อยด้วย ใช้คาสั่ง ls -R
• ถ้าต้องการดูข้อมูลแบบละเอียด ใช้คาสั่ง ls -l ซึ่งจะได้ผลดังภาพด้านล่าง
รูปที่ 8 (5-2) แสดงรายชื่อไดเรกทอรีหรือไฟล์ทั้งหมดในไดเรกทอรีที่ระบุ
ข้อมูลแบบละเอียด ใช้คาสั่ง ls -l
รายละเอียดของข้อมูลต่างๆ ที่แสดงผลอธิบายได้ตามหมายเลข ดังนี้
รูปที่ 9 (5-3) แสดงรายชื่อไดเรกทอรีหรือไฟล์ทั้งหมดในไดเรกทอรีที่ระบุ
แสดงผลอธิบายได้ตามหมายเลข
55
1. จานวนของลิงก์ทั้งหมดที่มีในไดเรกทอรีนั้น ซึ่งประกอบด้วยจานวน
ไฟล์หรือไดเรกทอรีที่อยู่ภายใน บวกกับลิงก์ของตัวไดเรกทอรีเอง
2. ประเภทของไฟล์และสิทธิในการใช้งาน (Permission) ตัวอักษรตัว
แรกคือประเภทของไฟล์ ถ้าเป็นเครื่องหมาย - หมายถึงไฟล์ธรรมดา
ถ้าเป็น d หมายถึงไดเรกทอรี และถ้าเป็น l หมายถึงลิงก์
3. จานวนลิงก์ทั้งหมดที่อยู่ภายในไดเรกทอรีนั้น ถ้าเป็นไฟล์จะมีแค่ 1
ลิงก์
4. เจ้าของไฟล์ (Owner)
5. กลุ่ม (Group)
6. ขนาด (Size) มีหน่วยเป็นไบต์ ถ้าเป็นไฟล์จะเป็นขนาดของไฟล์ ถ้า
เป็นไดเรกทอรีจะเป็นจานวนบล็อกที่ใช้ต่อ 1 ไดเรกทอรี ซึ่งโดยปกติ
แล้วจะเป็น 4096
7. วันที่เข้าใช้งานล่าสุด
8. เวลาที่เข้าใช้งานล่าสุด
9. ชื่อไฟล์หรือชื่อไดเรกทอรีนั้นๆ ถ้าเป็นลิงก์จะแสดงเครื่องหมาย ->
ไปที่ตาแหน่งของไฟล์จริง
การสร้างลิงก์
• ลิงก์ (Link) ในระบบยูนิกซ์ จะเป็นการอ้างอิงถึงไฟล์หรือตาแหน่งของ
ข้อมูลบนดิสก์ มีอยู่ด้วยกัน 2 แบบ คือ Hard Link และ Symbolic Link
• Hard Link เป็นการสร้างตัวอ้างอิงข้อมูลที่อยู่ในดิสก์ โดยใช้
inode (ส่วนที่เก็บเนื้อหาและคุณสมบัติของข้อมูล) เดียวกัน ทา
ให้ข้อมูลชุดเดียวสามารถปรากฏในหลายที่พร้อมกันได้ การสร้าง
Hard Link จาเป็นที่จะต้องสร้างบนระบบไฟล์ (File System)
ชนิดเดียวกันเท่านั้น ข้อดีของ Hard Link คือ เมื่อไฟล์ใดไฟล์
หนึ่งถูกลบ ข้อมูลในดิสก์ส่วนนั้นยังคงเข้าถึงจากไฟล์ที่เหลืออยู่
ได้ [13-2]
56
รูปที่ 10 (5-4) การสร้างลิงก์ Hard Link
• Symbolic Link เป็นการสร้างตัวอ้างอิงจากไฟล์ที่มีอยู่แล้ว ทา
ให้เมื่อไฟล์ต้นฉบับถูกลบ ข้อมูลในส่วนนั้นก็จะไม่สามารถเข้าถึง
ได้จาก Link ที่สร้างไว้ได้ การสร้าง Symbolic Link สามารถ
สร้างบนระบบไฟล์ที่แตกต่างกันได้
รูปที่ 11 (5-5) การสร้างลิงก์ Symbolic Link
• เมื่อใช้คาสั่ง ls -l เพื่อดูข้อมูลในไดเรกทอรี จะพบว่า ไฟล์ที่เป็นลิงก์จะมี
การแสดงเครื่องหมาย -> เพื่อบอกว่าไฟล์นี้จะลิงก์ไปยังไฟล์ไหน
• การสร้างลิงก์แบบ Hard Link ใช้คาสั่ง ln FILENAME LINKNAME เช่น
ln def ghi จะเป็นการสร้างลิงก์ชื่อ ghi โดยลิงก์นี้จะเชื่อมต่อไปที่
ตาแหน่งของข้อมูลเดียวกันกับไฟล์ def
• การสร้างลิงก์แบบ Symbolic Link ใช้คาสั่ง ln -s FILENAME
LINKNAME เช่น ln -s def ghi จะเป็นการสร้างลิงก์ชื่อ ghi โดยลิงก์นี้จะ
เชื่อมต่อที่ไฟล์ def
57
การตรวจสอบประเภทของไฟล์
• ในกรณีที่ต้องการตรวจสอบไฟล์ที่ไม่รู้จักว่าไฟล์นั้นเป็นไฟล์ประเภทไหน
สามารถใช้คาสั่ง file FILENAME เพื่อดูข้อมูลของไฟล์นั้นได้ เช่น คาสั่ง
file /bin/ls เป็นการดูประเภทของไฟล์ /bin/ls ซึ่งจะได้ผลลัพธ์ดังนี้
รูปที่ 12 (5-6) การตรวจสอบประเภทของไฟล์
จากผลลัพธ์ดังกล่าว จะพบว่า ไฟล์ /bin/ls เป็นไฟล์ประเภท executable
(สามารถประมวลผลได้) ของระบบปฏิบัติการ Linux
• คาสั่ง file เป็นการวิเคราะห์ประเภทของไฟล์ จากส่วนหัว (header) ของ
ไฟล์นั้นๆ
การค้นหาไฟล์
• การค้นหาไฟล์ที่อยู่ในไดเรกทอรีที่กาหนด ใช้คาสั่ง find PATH -name
FILENAME เช่น คาสั่ง find /etc -name passwd เป็นการค้นหาว่ามี
ไฟล์ชื่อ passwd อยู่ในไดเรกทอรี /etc หรือไม่
• ถ้าต้องการค้นหาไฟล์โดยไม่ระบุไดเรกทอรี ใช้คาสั่ง locate FILENAME
เช่น locate php.ini
การสร้าง archive และการบีบอัดข้อมูล
• การสร้าง archive คือการรวมไฟล์ทุกไฟล์ในไดเรกทอรีให้เป็นไฟล์เดียว
สามารถทาได้โดยใช้คาสั่ง tar cvf ARCHIVE.tar DIRECTORY เช่น tar
cvf docs.tar /home/user/document จะเป็นการรวมไฟล์ทุกไฟล์ใน
58
ไดเรกทอรี /home/user/document ให้เป็นไฟล์ชื่อว่า docs.tar
• การเพิ่มไฟล์ใน archive ทาได้โดยใช้คาสั่ง tar -r NEWFILE -f
ARCHIVE.tar
• ในการบีบอัดข้อมูลจาเป็นต้องทา 2 ขั้นตอน คือ สร้าง archive แล้วจึง
เอา archive นั้นมาบีบอัด
• การบีบอัดข้อมูลในระบบยูนิกซ์สามารถทาได้หลายแบบ แต่ที่นิยมใช้กัน
ทั่วไปคือใช้วิธีบีบอัดแบบ gzip และ bzip โดยที่ bzip จะสามารถบีบอัด
ข้อมูลได้มากกว่าแต่จะใช้เวลาบีบอัดนานกว่า gzip
• การบีบอัดแบบ gzip ผลลัพธ์ที่ได้จะเป็นไฟล์ .tar.gz สามารถทา
ได้โดยใช้คาสั่ง tar czvf ARCHIVE.tar.gz DIRECTORY
• การบีบอัดแบบ bzip ผลลัพธ์ที่ได้จะเป็นไฟล์ .tar.bz
หรือ .tar.bz2 ขึ้นอยู่กับขั้นตอนวิธีที่ใช้ในการบีบอัด สามารถทา
ได้โดยใช้คาสั่ง tar cjvf ARCHIVE.tar.bz DIRECTORY
• การแตกไฟล์ (Extract) จาก archive ใช้คาสั่ง tar xvf ARCHIVE.tar
• ในกรณีที่ต้องการแตกไฟล์จาก archive ที่ถูกบีบอัด ต้องตรวจสอบว่าไฟล์
นั้นถูกบีบอัดมาโดยใช้วิธีอะไร
• ถ้าบีบอัดด้วย gzip ใช้คาสั่ง tar xzvf ARCHIVE.tar.gz
• ถ้าบีบอัดด้วย bzip ใช้คาสั่ง tar xjvf ARCHIVE.tar.bz2
5.4 การกาหนดสิทธิการใช้งาน (Permission)
การกาหนดสิทธิในการใช้งาน มีไว้เพื่อจากัดขอบเขตการเข้าถึงข้อมูลของผู้ใช้ และ
เพื่อป้องกันความเสียหายที่อาจจะเกิดขึ้นจากการกระทาโดยไม่ตั้งใจ การกาหนด
สิทธิสามารถทาได้ทั้งไฟล์และไดเรกทอรี โดยมีรายละเอียดและขั้นตอนดังนี้
59
การกาหนดความเป็นเจ้าของไฟล์ (File ownership)
• ทุกไฟล์ในระบบสามารถมีเจ้าของ (Owner) และกลุ่ม (Group) ได้แค่
อย่างละ 1 เท่านั้น
• ผู้ที่เป็นเจ้าของไฟล์ หรืออยู่ในกลุ่มที่กาหนดสามารถดาเนินการกับไฟล์
(อ่าน,เขียน,ประมวลผล) ได้ตามสิทธิที่กาหนดใน Permission bit ซึ่งเป็น
ตัวเลขที่ใช้ในการกาหนดสิทธิการใช้งาน
• การเปลี่ยน Owner ของไฟล์ ใช้คาสั่ง chown USER FILENAME
• การเปลี่ยน Group ของไฟล์ ใช้คาสั่ง chgrp GROUP FILENAME
การกาหนดสิทธิการใช้งาน (Permission)
• สิทธิการใช้งาน สามารถมารถกาหนดได้ 6 อย่าง ได้แก่
• Read แทนด้วยเครื่องหมาย r
• Write แทนด้วยเครื่องหมาย w
• Execute แทนด้วยเครื่องหมาย x
• SUID แทนด้วยเครื่องหมาย S
• SGID แทนด้วยเครื่องหมาย S
• Sticky แทนด้วยเครื่องหมาย t
ซึ่งความหมายของสิทธิทั้ง 6 อย่างจะอธิบายในลาดับถัดไป
• สิทธิการใช้งาน แบ่งออกเป็น 3 ส่วน ตามประเภทของผู้ใช้งาน ซึ่งได้แก่
• User เจ้าของไฟล์นั้นๆ แทนด้วยเครื่องหมาย u
• Group คนที่อยู่ในกลุ่มเดียวกันกับกลุ่มที่เจ้าของไฟล์นั้นอยู่แทน
ด้วยเครื่องหมาย g
• Other คนอื่นๆ ที่ไม่ใช่เจ้าของไฟล์และไม่ได้อยู่ในกลุ่มที่เจ้าของ
ไฟล์อยู่ แทนด้วยเครื่องหมาย o
60
• การตรวจสอบสิทธิการใช้งานสามารถทาได้โดยใช้คาสั่ง ls -l FILENAME
เช่น ls -l /etc/passwd จะได้ผลดังรูปที่ 13 (5-7)
รูปที่ 13 (5-7) การกาหนดสิทธิการใช้งาน (Permission)
รายละเอียดของสิทธิการใช้งานจะอยู่ในส่วนแรกสุดของบรรทัดที่เป็นผลลัพธ์ โดย
จะเป็นตัวอักษร 9 ตัว ที่อยู่ถัดมาจากตัวอักษรที่ใช้บอกประเภทของไฟล์ ตัวอักษร
แต่ละตัวแทนการกาหนดค่าต่างๆ ดังนี้
User Group Other
Read Write Execute Read Write Execute Read Write Execute
จากตัวอย่าง จะพบว่าสิทธิการใช้งานของไฟล์ /etc/passwd คือ rw-r--r-- แบ่งดู
รายละเอียดทีละส่วน ดังนี้
• r-- คือสิทธิของคนที่อยู่ในกลุ่มเดียวกันกับเจ้าของไฟล์
• rw- คือสิทธิของเจ้าของไฟล์
• r-- คือสิทธิของคนอื่นๆที่ไม่ใช่เจ้าของไฟล์และไม่ได้อยู่ในกลุ่มเดียวกันกับ
เจ้าของไฟล์
จากรูปจะพบว่า เจ้าของไฟล์ /etc/passwd คือ root และอยู่ในกลุ่มที่ชื่อ root
จากข้อกาหนด rw- แสดงว่าเจ้าของไฟล์สามารถอ่านและเขียนไฟล์นี้ได้ แต่ไม่
สามารถสั่งประมวลผลไฟล์นี้ได้ ส่วนคนที่อยู่ในกลุ่มที่ชื่อ root จะได้รับสิทธิ r-- คือ
อ่านได้อย่างเดียว ซึ่งคนอื่นๆ นอกเหนือจากนี้จะได้สิทธิ r—ก็จะสามารถอ่านได้
อย่างเดียวเช่นกัน
61
ในส่วนของไฟล์ /bin/bash จะพบว่ามีสิทธิการใช้งานคือ rwxr-xr-x หมายความว่า
เจ้าของไฟล์ได้สิทธิ rwx คือสามารถอ่าน เขียน และสั่งประมวลผลไฟล์นี้ได้ แต่คนที่
อยู่ในกลุ่มเดียวกับเจ้าของไฟล์และคนอื่นๆ นอกเหนือจากนี้จะได้สิทธิ r-x คืออ่าน
และสั่งประมวลผลไฟล์ได้อย่างเดียว ไม่สามารถแก้ไขได้
SUID, SGID และ Sticky
ทั้ง SUID, SGID และ Sticky ต่างก็เป็นบิทพิเศษที่เอาไว้กาหนดค่าการนางานใน
กรณีที่มีการประมวลผลไฟล์ นั้นๆ โดยทั้ง 3 บิทนี้จะแสดงในส่วนของ Execute bit
โดยแต่ละแบบมีการทางานดังนี้
• SUID เมื่อมีใครก็ตามรันไฟล์นี้ โปรเซสนั้นจะถูกรันโดยใช้ชื่อของเจ้าของ
ไฟล์
• SGID เมื่อมีใครก็ตามรันไฟล์นี้ โปรเซสนั้นจะถูกรันโดยใช้ชื่อของกลุ่มที่
ระบุ
• Sticky ใครก็ตามสามารถอ่านหรือแก้ไขไฟล์นี้ได้ แต่ไฟล์นี้จะไม่สามารถ
ถูกคนอื่นลบได้ นอกจากเจ้าของไฟล์เท่านั้น
• เมื่อมีการกาหนดค่า SUID หรือ SGID แล้ว บิทที่เป็นส่วนของ Execute
bit จะแสดงสัญลักษณ์ตัว S เช่น ถ้ากาหนด SUID ให้กับไฟล์ ไฟล์นั้นจะมี
สิทธิการใช้งานเป็น rwS------
• เมื่อมีการกาหนดค่า Sticky bit ให้กับไฟล์ บิทที่เป็นส่วนของ Execute
bit จะแสดงสัญลักษณ์ตัว t
การกาหนดหรือแก้ไขสิทธิการใช้งาน
ในการกาหนดหรือแก้ไขสิทธิการใช้งานของไฟล์หรือไดเรกทอรี ใช้คาสั่ง chmod
{parameter} FILENAME การกาหนด parameter สามารถทาได้ 2 วิธี คือ ใช้
แบบตัวอักษร และแบบตัวเลข
62
• การกาหนดสิทธิโดยใช้ตัวอักษร
o การกาหนดผู้ใช้
 ใช้ u แทน User (เจ้าของไฟล์)
 ใช้ g แทน Group (กลุ่มที่ไฟล์นั้นอยู่)
 ใช้ o แทน Other (คนอื่นๆ นอกเหนือจากนี้)
 ใช้ a แทน All (ทั้ง 3 ประเภทที่กล่าวมา)
o การกาหนดสิทธิ
 ใช้ r แทน Read (อ่าน)
 ใช้ w แทน Write (เขียน)
 ใช้ x แทน Execute (ประมวลผล)
 ใช้ s แทนการเซ็ต SUID หรือ SGID
 ใช้ t แทนการเซ็ต Sticky
o การเพิ่มสิทธิ ใช้เครื่องหมาย + และการยกเลิกสิทธิ ใช้
เครื่องหมาย -
o การกาหนดหรือแก้ไขสิทธิ ใช้คาสั่ง chmod [user][+/-
][permission] FILENAME เช่น chmod g+rw file เป็นการ
เพิ่มสิทธิในการอ่านและเขียนไฟล์ให้กับ group หรือคาสั่ง
chmod ug-w+s เป็นการกาหนดสิทธิในการห้ามเขียนไฟล์
พร้อมทั้งกาหนด SUID และ SGID ให้กับ User และ Group
• การกาหนดสิทธิโดยใช้ตัวเลข
o ใส่ parameter เป็นตัวเลข 4 ตัว
 ตัวแรกสุดเป็นการเซ็ต SUID, SGID หรือ stickey
 ตัวที่สองเป็นการกาหนดสิทธิของ User
 ตัวที่สามเป็นการกาหนดสิทธิของ Group
 ตัวที่สี่เป็นการกาหนดสิทธิของ Other
63
o ตัวเลขแต่ละตัวมีความหมายดังนี้
สิทธิการใช้งาน ค่า
SUID 4
SGID 2
Sticky 1
Read 4
Write 2
Execute 1
• การกาหนดสิทธิในส่วนของ SUID, SGID หรือ Sticky จะใส่
หรือไม่ใส่ก็ได้ ซึ่งถ้าไม่ใส่โดยปกติจะมีค่าเป็น 0
• ถ้าเอาค่าของตัวเลขแต่ละส่วนมาบวกกันจะสามารถกาหนดสิทธิ
ได้หลากหลายแบบ เช่น
0 7 5 5
- rwx r-x r-x
4 6 4 1
- rwS r-- --x
5 2 3 1
- -wS -wx --t
จากตารางที่ยกตัวอย่างไว้ด้านบน จะพบว่า ถ้ากาหนด Permission เป็น 0755 จะ
มีค่าเป็น rwxr-xr-x หรือถ้ากาหนด Permission เป็น 4641 จะมีค่าเป็น rwSr----x
เป็นต้น
ตัวเลข 0755 ในตารางด้านบนเกิดขึ้นเนื่องจาก
• กาหนดให้ User สามารถ Read, Write และ Execute ได้
ซึ่งเมื่อนาเลข 4 + 2 + 1 จะได้เท่ากับ 7
• กาหนดให้ Group สามารถ Read และ Execute ได้ ซึ่งเมื่อนา
เลข 4 + 1 จะได้เท่ากับ 5
64
• สิทธิของ Other มีที่มาเช่นเดียวกับสิทธิของ Group
ตัวเลข 4641 ในตารางด้านบนเกิดจาก
• กาหนดค่า SUID ซึ่งจากตาราง SUID มีค่าเท่ากับ 4
• กาหนดให้ User สามารถ Read และ Write ได้ ซึ่งเมื่อนาเลข 4
+ 2 จะได้เท่ากับ 6
• กาหนดให้ Group สามารถ Read ได้อย่างเดียว จึงมีค่าเป็น 4
• กาหนดให้ Other สามารถ Execute ได้อย่างเดียว จึงมีค่าเป็น 1
จะเห็นได้ว่า การจัดการไดเรกทอรีและไฟล์ในระบบยูนิกซ์นั้น อาจจะต้องใช้เวลาใน
การทาความเข้าใจอยู่บ้าง แต่เมื่อเข้าใจหลักการทางานและสามารถใช้งานได้อย่าง
คล่องแคล่วแล้วจะพบว่าคา สั่งหลายๆ อย่างช่วยให้ประหยัดเวลาอีกทั้งยังสามารถ
ทางานได้อย่างสะดวกและรวดเร็ว
5.5 เอกสารอ้างอิง
[5-1] http://en.wikipedia.org/wiki/Unix
[5-2] http://en.wikipedia.org/wiki/Hard_link
65
6. การบริหารจัดการผู้ใช้บนระบบ UNIX
ผู้เรียบเรียง: เจษฎา ช้างสีสังข์
วันที่เผยแพร่: 12 พ.ย. 2554
ปรับปรุงล่าสุด: 12 พ.ย. 2554
UNIX เป็นระบบปฏิบัติการที่ถูกออกแบบมาให้สามารถใช้งานได้หลายคนในเวลา
เดียวกัน (Multi-user) และสามารถทางานได้หลายๆ อย่างพร้อมกัน
(Multitasking) [6-1] ด้วยความสามารถเหล่านี้ UNIX จึงนิยมนามาใช้เป็น
ระบบปฏิบัติการในเครื่องเซิร์ฟเวอร์ ดังนั้น เพื่อให้สามารถใช้งานระบบ UNIX ได้
อย่างมีประสิทธิภาพ ผู้ดูแลระบบจึงควรมีความเข้าใจในการบริหารจัดการผู้ใช้และ
การกาหนดสิทธิต่างๆ ซึ่งในบทความนี้ จะแนะนาคาสั่งในการใช้งานเบื้องต้น พร้อม
ทั้งแสดงไฟล์หลักๆ ที่เกี่ยวข้อง ซึ่งคาสั่งต่างๆ ในบทความนี้สามารถใช้งานได้กับ
ระบบปฏิบัติการ UNIX ทุกระบบ
6.1 ประเภทของผู้ใช้
สาหรับระบบปฏิบัติการตระกูล UNIX นั้น มีการออกแบบให้สามารถกาหนดสิทธิใน
การเข้าถึงข้อมูลได้หลายระดับ เพื่อจากัดขอบเขตการใช้งานทรัพยากรต่างๆ ของ
ระบบตามระดับของผู้ใช้ เช่น กาหนดสิทธิไม่ให้แก้ไขไฟล์สาคัญ ซึ่งในระบบ UNIX
สามารถจาแนกผู้ใช้ออกได้เป็น 2 ประเภทด้วยกัน คือ
User
คือผู้ใช้ทั่วไปที่มีสิทธิในการใช้งานระบบอยู่อย่างจากัด หรือเป็น ผู้ใช้ที่ถูกสร้างมา
เพื่อใช้งานสาหรับโปรแกรมประยุกต์ที่ติดตั้งในระบบ เช่น Web Server
66
Superuser
คือผู้ใช้ที่มีสิทธิในการบริหารจัดการระบบทุกอย่างไม่ว่าจะเป็นการ สร้างหรือ
กาหนดสิทธิใช้งานให้กับผู้ใช้ [6-2] หรือการปิดการทางานของ Process ที่สาคัญ
เช่น Web Server การแก้ไขไฟล์ของระบบ เป็นต้น ซึ่งในระบบปฏิบัติการ UNIX
นั้น จะมีชื่อเรียกของ Superuser ว่า root
6.2 ไฟล์ที่ใช้กาหนดค่าให้กับผู้ใช้
ในการกาหนดความสามารถและรายละเอียดของผู้ใช้ไฟล์ข้อความที่ใช้งานร่วมกัน
3 ไฟล์ คือ passwd, shadow และ group โดยแต่ละไฟล์จะมีการกาหนดสิทธิใน
การเข้าถึงไม่เหมือนกัน เนื่องจากมีบางไฟล์ที่ใช้เก็บข้อมูลที่เป็นความลับซึ่งไม่
ต้องการให้ผู้ใช้งานอื่นเห็น เช่น รหัสผ่าน ผู้อ่านสามารถศึกษาการตั้งค่าสิทธิการ
เข้าถึงไฟล์ได้จากบทความ การจัดการไดเรกทอรีและไฟล์ในระบบยูนิกซ์ [6-3]
การเข้าถึงระบบนั้น ผู้ใช้จะมีชื่อที่ใช้เข้าถึงระบบเรียกว่า Username และมี
รหัสผ่านของแต่ละ Username ด้วย หรือบางครั้งผู้ดูแลระบบอาจมีการกาหนด
Username ที่ไม่จาเป็นต้องใส่รหัสผ่าน เพื่อใช้งานชั่วคราวโดยมีการกาหนดสิทธิใน
การเข้าถึงที่จากัด เช่น มหาวิทยาลัยแห่งหนึ่งมีการสร้าง Username ให้กับ
นักศึกษาเข้ามาใช้งาน โดยยอมให้ใช้งานโปรแกรมประยุกต์ได้บางโปรแกรม หรือให้
สิทธิในการเขียนไฟล์ได้บางส่วนเท่านั้น สาหรับการระบุตัวตนของผู้ใช้นั้น ระบบจะ
ดูหมายเลขที่ใช้อ้างอิงกับผู้ใช้ เรียกว่า User Identifier หรือ UID ซึ่งหากมีการ
กาหนด Username โดยมี UID เดียวกัน ระบบจะเข้าใจว่าผู้ใช้นั้นมีสิทธิเท่าเทียม
กัน และระบบยังสามารถจัดการผู้ใช้ให้เป็นกลุ่มได้โดยสามารถกาหนดชื่อ และ
อ้างอิงจากหมายเลขที่เรียกว่า Group Identifier หรือ GID ซึ่งในแต่ละไฟล์นั้น
มีการกาหนดรูปแบบการเก็บค่าแตกต่างกัน มีรายละเอียดดังนี้
/etc/passwd
เป็นไฟล์ข้อความที่ใช้เก็บข้อมูลรายละเอียดของผู้ใช้ในระบบ เช่น UID, GID และ
67
ไดเรกทอรีหลักของผู้ใช้ (Home directory) เป็นต้น โดยระบบจะกาหนดให้ผู้ใช้มี
สิทธิในการอ่านไฟล์นี้ และกาหนดสิทธิในการแก้ไขให้กับ root เท่านั้น ซึ่งในแต่ละ
บรรทัดของไฟล์จะใช้แทนรายละเอียดต่อหนึ่ง Username และจะประกอบไปด้วย
รายละเอียดของผู้ใช้ในส่วนต่างๆ โดยแต่ละส่วนจะคั่นด้วยเครื่องหมาย “:” ดังที่
แสดงในภาพด้านล่าง
รูปที่ 14 (6-1) ตัวอย่างรายละเอียดผู้ใช้ชื่อ Oracle [6-4]
1. Username: เป็นส่วนที่ใช้เก็บค่าของ Username ที่ใช้เข้าสู่ระบบ มีความ
ยาวไม่เกิน 32 ตัวอักษร
2. Password: เป็นส่วนที่ใช้บอกว่ามีการเข้าถึงระบบโดยใช้รหัสผ่านหรือไม่
ซึ่งหากเป็นค่า “x” แสดงว่าผู้ใช้มีการใช้รหัสผ่าน ซึ่งรหัสผ่านนี้จะถูก
เข้ารหัสลับและเก็บไว้ที่ไฟล์ /etc/shadow หากเป็นค่า “*” หรือ “!” จะ
เป็นการบ่งบอกว่า ให้ปิดการเข้าถึงระบบด้วยการใส่รหัสผ่าน มักใช้กับ
Username ที่ติดตั้งมากับโปรแกรม
3. User ID (UID): เป็นส่วนที่ใช้ระบุหมายเลขให้กับผู้ใช้ โดยหมายเลข 0 จะ
ถูกจองให้กับ Superuser หรือ root เท่านั้น หมายเลข 1-99 จะถูกจอง
ให้กับโปรแกรมของระบบ และ หมายเลข 100-999 จะถูกจองให้กับ
โปรแกรมต่างๆ ที่ติดตั้งโดย ผู้ดูแลระบบหรือใช้ในการกาหนดกลุ่ม ของ
ระบบ ดังนั้น สาหรับการกาหนดหมายเลขให้กับผู้ใช้ทั่วไปจึงควร
กาหนดค่าตั้งแต่ 1000 ขึ้นไป
4. Group ID (GID): เป็นส่วนที่ระบุหมายเลขของกลุ่มที่ผู้ใช้นั้นอยู่
ซึ่งรายละเอียดแต่ละกลุ่ม จะถูกเก็บไว้ที่ /etc/group
5. User ID Info: เป็นส่วนที่ใช้แสดงรายละเอียดเพิ่มเติมเกี่ยวกับผู้ใช้ เช่น
68
ระบุชื่อ-นามสกุลของผู้ใช้ หมายเลขโทรศัพท์ เป็นต้น
6. Home directory: เป็นส่วนที่ระบุตาแหน่งไดเรกทอรีที่จะปรากฏเมื่อผู้ใช้
เข้าสู่ระบบ โดยการกาหนดนั้นจะต้องระบุเป็น Absolute path ซึ่งอ้างอิง
จากตาแหน่งของ root คือ / หากเว้นว่าง ไว้หรือไดเรกทอรีที่กาหนดไม่มี
อยู่จริง ระบบจะกาหนดให้เป็น /
7. Command/shell: เป็นส่วนที่เก็บตาแหน่งของโปรแกรม shell หรือ
โปรแกรมที่ทาหน้าที่รับคาสั่งจากผู้ใช้ไปประมวลผลบนระบบ [15-5] โดย
การกาหนดนั้นจะต้องระบุเป็น Absolute path
/etc/shadow
เป็นไฟล์ข้อความที่เก็บรหัสผ่านจริงของผู้ใช้โดยจะอยู่ในรูปของการเข้ารหัสลับ และ
เก็บค่าที่ใช้กาหนดคุณสมบัติของการใช้รหัสผ่าน เช่น วันหมดอายุ โดยจะใช้หนึ่ง
บรรทัดต่อหนึ่ง Username ไฟล์นี้กาหนดสิทธิในการอ่านเขียนให้กับ root เท่านั้น
เพื่อป้องกันไม่ให้ผู้ใช้เห็นรหัสผ่านของผู้ใช้คนอื่น และประกอบไปด้วยรายละเอียด
ของผู้ใช้ในส่วนต่างๆ โดยแต่ละส่วนจะคั่นด้วยเครื่องหมาย “:” ดังรูปที่ 15 (6-2)
รูปที่ 15 (6-2) ตัวอย่างข้อมูลรายละเอียดในไฟล์ /etc/shadow [6-6]
1. Username: เป็นส่วนที่ใช้เก็บค่าชื่อของผู้ใช้ที่ใช้เข้าสู่ระบบ มีความยาว
ตัวอักษรไม่เกิน 32 ตัวอักษร
2. Encrypted password: เป็นส่วนที่แสดง รหัสผ่านของผู้ใช้ที่ถูกเข้ารหัส
ลับไว้ โดยรูปแบบการเข้ารหัสลับ จะอ้างอิงจากฟังก์ชันของระบบที่ชื่อว่า
crypt [6-4] เช่น จากตัวอย่างจะมีส่วนที่ใช้อธิบายคั่นด้วยเครื่องหมาย $
69
โดยค่าแรกจะเป็นหมายเลขกาหนดชนิดวิธีการ Hash หรือขั้นตอนในการ
เข้ารหัสลับข้อมูล ซึ่งค่า 1 เป็นการกาหนด Hash แบบหนึ่งที่เรียกว่า
MD5 ค่าถัดมาเรียกว่า Salt คือค่าที่สร้างขึ้นมาเพื่อนาไปรวมกับ รหัสผ่าน
จริงก่อนทาการ Hash เพื่อป้องกันโอกาสการเกิดผลลัพธ์ของการ Hash
(Message Digest) ซ้ากัน
3. Date of last password change: เป็นส่วนที่แสดงวันที่ล่าสุดที่มีการ
เปลี่ยนแปลงรหัสผ่าน เป็นตัวเลขในรูปของ UNIX timestamp (จานวน
วินาทีที่ถูกนับจากวันที่ 1 มกราคม ค.ศ. 1970 อ้างอิงตามเวลาสากลเชิง
พิกัด หรือ UTC) [6-7] จากตัวอย่างเมื่อนามาแปลงจะได้ วันที่ 1 มกราคม
ค.ศ. 1970 เวลา 03:37:44 น.
4. Minimum password age: เป็นส่วนที่ระบุจานวนวันที่น้อยที่สุด
ที่อนุญาตให้ผู้ใช้ทาการเปลี่ยนรหัสผ่านได้ สาหรับการกาหนดค่า 0 หรือ
เว้นว่างไว้ จะเป็นการกาหนดว่าไม่มีค่า Minimum
5. Maximum password age: เป็นส่วนที่ระบุจานวนวันสูงสุดที่อนุญาตให้
ผู้ใช้สามารถเปลี่ยนรหัสผ่านของตนเองได้ สาหรับการกาหนดค่า 99999
หรือไม่ใส่อะไร จะเป็นการกาหนดว่าสามารถเปลี่ยนรหัสผ่านได้ทุกเมื่อ
*หมายเหตุ
หากไม่ต้องการให้ผู้ใช้เปลี่ยนรหัสผ่านของตนเองได้ ผู้ดูแลระบบสามารถทา
ได้โดยการกาหนดค่าในส่วนของ Maximum ให้มีค่าน้อยกว่า Minimum
1. Password warning period: เป็นส่วนที่กาหนดจานวนวัน ให้ระบบเริ่ม
แจ้งเตือน ก่อนที่รหัสผ่านจะหมดอายุการใช้งาน เมื่อถึงวันที่ต้องแจ้งเตือน
ระบบจะแสดงข้อความให้ทาการเปลี่ยนรหัสผ่าน และบอกจานวนวันที่
เหลือก่อนหมดอายุการใช้งาน [6-8]
2. Password Inactivity Period: เป็นส่วนที่แสดงจานวนวัน หากไม่มีการ
เปลี่ยนรหัสผ่านภายในวันที่กาหนดจะทาให้ผู้ใช้นั้นถูกปิดการใช้งาน
3. Account expiration date: เป็นส่วนที่ใช้กาหนดวันหมดอายุของผู้ใช้
โดยมีรูปแบบเป็น UNIX timestamp ซึ่งเมื่อครบกาหนดระบบจะทาการ
70
ปิดการทางานของผู้ใช้นั้นโดยทันที
/etc/group
เป็นไฟล์ข้อความที่ใช้กาหนดคุณสมบัติและสมาชิกของแต่ละกลุ่ม ไฟล์นี้จะถูก
กาหนดสิทธิให้ผู้ใช้งานสามารถอ่านได้เท่านั้น โดยผู้ที่มีสิทธิในการแก้ไขไฟล์มีเพียง
root เท่านั้น โดยทั่วไปแล้วในระบบใหญ่ๆ ควรมีการสร้างกลุ่มขึ้นมา เพื่อให้เกิด
ความสะดวกในการบริหารจัดการสิทธิในการเข้าถึงระบบให้กับกลุ่มผู้ใช้ต่างๆ เช่น
กาหนดให้กลุ่ม A สามารถแก้ไขไฟล์ได้เฉพาะไดเรกทอรี /var/opt เท่านั้น, หรือ
การกาหนดให้ผู้ใช้มีสิทธิเท่าเทียมกับโปรแกรมของระบบเช่น Web Server เป็นต้น
รูปที่ 16 (6-3) ตัวอย่างข้อมูลรายละเอียดในไฟล์ /etc/group [6-9]
1. Group Name: เป็นส่วนที่ระบุชื่อของ group
2. Password: เป็นส่วนที่ระบุว่า จะให้มีการกาหนดรหัสผ่านเมื่อผู้ใช้ต้องการ
เข้าไปยัง Group นั้นหรือไม่ ซึ่งหากเป็นค่า “x” แสดงว่ามีการใช้รหัสผ่าน
ซึ่งรหัสผ่านนี้จะถูกเข้ารหัสลับและเก็บไว้ที่ไฟล์ /etc/shadow หากไม่
ต้องการกาหนดสามารถทาได้โดยการเว้นว่างไว้
3. Group ID (GID): เป็นส่วนที่แสดงหมายเลข Group ID
4. User List: เป็นส่วนที่แสดงรายชื่อ User ที่เป็นสมาชิกของ Group
สามารถเพิ่มสมาชิก โดยใส่เครื่องหมาย “,” คั่น
71
จากความสัมพันธ์ของไฟล์ทั้งสามข้างต้นนั้น เมื่อมีความเข้าใจแล้วผู้ดูแลระบบ
สามารถทาการจัดการบริหารผู้ใช้ได้โดยการแก้ไขไฟล์โดยตรง หรืออาจมีการ
ประยุกต์โดยการเขียนสคริปต์ เพื่อสร้างผู้ใช้ให้กับระบบหลายๆ คนพร้อมกัน
นอกจากนี้ ระบบปฏิบัติการ UNIX ยังมีคาสั่งที่สร้างความสะดวกในการบริหาร
จัดการผู้ใช้ และเพื่อไม่ให้ผู้ดูแลระบบเสียเวลาแก้ไขไฟล์เอง ซึ่งมีโอกาสผิดพลาดได้
โดยมีคาสั่งมาตรฐานที่ติดตั้งมากับระบบ UNIX ที่แนะนาดังนี้
6.3 คาสั่งพื้นฐานที่ใช้บริหารจัดการผู้ใช้บนระบบ
การเพิ่มผู้ใช้ให้กับระบบ
ผู้ดูแลระบบสามารถเพิ่มผู้ใช้ โดยการใช้คาสั่ง useradd ซึ่งมี option ทั่วไปดังนี้
useradd [-u UID] [-g GID] [-d HOME_DIR] [-s SHELL] [-m] [-c COMMENT]
USER_NAME
[-u UID] กาหนดหมายเลข UID ให้กับผู้ใช้
[-g GID] กาหนดหมายเลข GID หรือชื่อกลุ่มให้กับผู้ใช้
[-d HOME_DIR] กาหนดไดเรกทอรีแรกให้กับผู้ใช้
[-s SHELL] กาหนดโปรแกรม Shell ที่จะใช้ให้กับผู้ใช้
[-m] กาหนดให้มีการสร้าง Home Directory หากยังไม่มี
[-c COMMENT] กาหนดค่า String เพื่อแสดงรายละเอียดเพิ่มเติมของผู้ใช้
USER_NAME กาหนด ชื่อที่ใช้เข้าถึงระบบ
ตัวอย่างคาสั่ง
# useradd -u 777 -g test -d /home/test -s /bin/sh -m -c test_comment
test
72
การกาหนดรหัสผ่านให้กับผู้ใช้
ผู้ดูแลระบบสามารถเพิ่มหรือเปลี่ยนแปลงรหัสผ่านให้กับผู้ใช้ได้โดยการใช้คาสั่ง
passwd ดังนี้
passwd USER_NAME
ตัวอย่างคาสั่ง
# passwd test
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
จากตัวอย่าง เมื่อพิมพ์คาสั่งกาหนดรหัสผ่านให้กับผู้ใช้ชื่อ test ระบบจะให้กาหนด
รหัสผ่านใหม่สองครั้ง ถ้าตรงกันระบบจะสร้าง รหัสผ่านให้
การแก้ไขข้อมูลผู้ใช้
ผู้ดูแลระบบสามารถแก้ไขข้อมูลผู้ใช้ด้วยคาสั่ง usermod ซึ่งมี option ทั่วไปดังนี้
usermod [-u UID] [-g GID] [-d HOME_DIR] [-s SHELL] [-m] [-c
COMMENT] [-e EXPIRE_DATE] USER_NAME
[-u UID] กาหนดหมายเลข UID ให้กับผู้ใช้
[-g GID] กาหนดหมายเลข GID หรือชื่อกลุ่มให้กับผู้ใช้
[-d HOME_DIR] กาหนดไดเรกทอรีแรกให้กับผู้ใช้
[-s SHELL] กาหนดโปรแกรม Shell ที่จะใช้ให้กับผู้ใช้
[-m] กาหนดให้มีการสร้าง Home Directory หากยังไม่มี
[-c COMMENT] กาหนดค่า String เพื่อแสดงรายละเอียดเพิ่มเติมของผู้ใช้
73
[-e
EXPIRE_DATE]
กาหนดวันหมดอายุการใช้งานของผู้ใช้ โดยมีรูปแบบเป็น
YYYY-MM-DD
[-L ] กาหนดให้ปิดการใช้งานผู้ใช้
[-U ] กาหนดให้เปิดการใช้งานผู้ใช้
USER_NAME กาหนดชื่อที่ใช้เข้าถึงระบบ
ตัวอย่างคาสั่ง
#usermod -d /home/test02 test
#usermod -c "Mr.test test02" test
การลบผู้ใช้ออกจากระบบ
ผู้ดูแลระบบสามารถลบผู้ใช้ออกจากระบบ โดยการใช้คาสั่ง userdel เช่น
userdel USER_NAME
ตัวอย่างคาสั่ง
# userdel test02
การสร้างกลุ่ม
ผู้ดูแลระบบสามารถสร้างกลุ่มได้โดยการใช้คาสั่ง groupadd ได้โดยการใช้คาสั่ง
ดังนี้
groupadd [-g GID] GROUP_NAME
ตัวอย่างคาสั่ง
#groupadd -g 1000 etda
74
คาสั่งการแสดงรายละเอียดผู้ใช้
ผู้ใช้สามารถใช้คาสั่ง id เพื่อแสดงรายละเอียดผู้ใช้เช่น Username, UID, GID
โดยใช้คาสั่งดังนี้
id USER_NAME
ตัวอย่างคาสั่ง
$ id jezt
uid=1000(jezt) gid=1000(jezt)
groups=1000(jezt),4(adm),20(dialout),24(cdrom),33(www-
data),46(plugdev),112(lpadmin),120(admin),122(sambashare)
จากคาสั่งพื้นฐานที่ได้แนะนานั้น ผู้ใช้สามารถดูรายละเอียดเพิ่มเติมได้จากคู่มือการ
ใช้งาน (Man pages) ด้วยการใช้คาสั่ง man [COMMAND_NAME] เช่น $man
useradd
6.4 เอกสารอ้างอิง
[6-1] http://en.wikipedia.org/wiki/Unix
[6-2] http://en.wikipedia.org/wiki/Superuser
[6-3] http://www.thaicert.or.th/papers/normal/2011/
pp2011no0003.html
[6-4] http://www.cyberciti.biz/faq/understanding-etcpasswd-file-
format/
[6-5] http://en.wikipedia.org/wiki/Unix_shell
[6-6] http://www.cyberciti.biz/faq/understanding-etcshadow-file/
[6-7] http://en.wikipedia.org/wiki/Unix_time
[6-8] http://www.thegeekstuff.com/2009/04/chage-linux-password-
75
expiration-and-aging/
[6-9] http://www.cyberciti.biz/faq/understanding-etcgroup-file/
76
77
7. คาสั่งที่เกี่ยวข้องกับการประมวลผลข้อความใน
ระบบปฏิบัติการ UNIX
ผู้เรียบเรียง: วิศัลย์ ประสงค์สุข
วันที่เผยแพร่: 15 พ.ย. 2554
ปรับปรุงล่าสุด: 15 พ.ย. 2554
เนื่องจากระบบปฏิบัติการ UNIX พิจารณาทรัพยากรทุกอย่างบนระบบในรูปแบบ
ของไฟล์ไม่เว้นแม้กระทั่งฮาร์ดแวร์ หรือโปรเซสที่รันอยู่ในหน่วยความจา [7-1]
การแก้ไขการตั้งค่าระบบส่วนใหญ่จึงทาในไฟล์การตั้งค่า (Configuration file)
ในบางครั้งไฟล์เหล่านี้ก็ความยาวมากทาให้ไม่สะดวกในการค้นหาสิ่งที่ต้องการ
แก้ไขแต่ปัญหานี้สามารถแก้ไขได้ หากผู้ใช้มีความสามารถในการใช้งานคาสั่งที่
เกี่ยวข้องกับการประมวลผลข้อความ (Text Processing)
ในบทความนี้ จะยกตัวอย่างการใช้งานคาสั่งที่เกี่ยวข้องกับการประมวลข้อความที่
ใช้บ่อย เพื่อให้ผู้เริ่มต้นหรือผู้สนใจสามารถใช้งานคาสั่งที่เกี่ยวข้องกับการ
ประมวลผลข้อความขั้นพื้นฐานได้ โดยใช้ไฟล์ /etc/passwd ในการสาธิตวิธีใช้งาน
คาสั่งต่างๆ ไฟล์ /etc/passwd นี้เป็นไฟล์ของระบบ UNIX ซึ่งเก็บข้อมูลบัญชีชื่อ
ผู้ใช้ของระบบ UNIX
7.1 ตัวอย่างคาสั่งที่เกี่ยวข้องกับการประมวลผลข้อความที่
ใช้งานบ่อย
head และ tail
head เป็นคาสั่งที่ใช้แสดงเนื้อหาส่วนต้นของไฟล์ (โดยค่าตั้งต้นจะแสดง 10
บรรทัดแรก) ส่วนมากจะใช้กับไฟล์หรือผลลัพธ์ที่เกิดจากการทางานจากคาสั่งอื่น
78
โดยมีรูปแบบคือ head [option] [filename] มีตัวอย่างการใช้งานดังนี้
ตารางที่ 3 (7-1) คาสั่ง head
คาสั่ง ความหมาย
head /etc/passwd แสดง 10 บรรทัดแรกของไฟล์ /etc/passwd
head -c10 /etc/passwd แสดง 10 ไบต์แรกของไฟล์ /etc/passwd
head -n5 /etc/passwd แสดง 5 บรรทัดแรกของไฟล์ /etc/passwd
tail เป็นคาสั่งที่คล้ายกับคาสั่ง head ใช้แสดงเนื้อหาส่วนท้ายของไฟล์ (โดยค่าตั้ง
ต้นจะแสดง 10 บรรทัดสุดท้าย) นอกจากนี้ผู้ใช้สามารถใช้คาสั่ง tail เพื่อเฝ้าดูไฟล์
ที่มีการเปลี่ยนแปลงตลอดเวลาเช่น Log file เป็นต้น สามารถใช้งานคาสั่งโดยมี
รูปแบบคือ tail [option] [filename] มีตัวอย่างการใช้งานดังนี้
ตารางที่ 4 (7-2) คาสั่ง tail
คาสั่ง ความหมาย
tail /etc/passwd แสดง 10 บรรทัดสุดท้ายของไฟล์ /etc/passwd
tail -c10 /etc/passwd แสดง 10 ไบต์สุดท้ายของไฟล์ /etc/passwd
tail -f file.log แสดง 10 บรรทัดสุดท้ายขณะที่ไฟล์มีการ
เปลี่ยนแปลง
tail -n5 /etc/passwd แสดง 5 บรรทัดสุดท้ายของไฟล์ /etc/passwd
more และ less
ทั้งสองเป็นคาสั่งที่ใช้แสดงเนื้อหาของไฟล์ทีละหน้าจอ มีประโยชน์มากหากไฟล์นั้น
มีความยาวเกินกว่าที่จะแสดงได้ในหน้าจอเดียว คาสั่ง less พัฒนาเพิ่มเติมจาก
คาสั่ง more จึงมีความสามารถมากกว่า เช่น แสดงข้อความได้โดยไม่ต้องรอให้
ระบบปฏิบัติการโหลดทั้งไฟล์ไปไว้ที่หน่วยความจาเป็นต้น สามารถใช้คาสั่งโดยมี
รูปแบบ more [filename] และ less [filename] เช่น more /etc/passwd
79
echo
เป็นคาสั่งที่ใช้แสดงข้อความที่พิมพ์เข้าไปในเครื่องคอมพิวเตอร์ออกทางหน้าจอ
เช่น หากต้องการแสดงคาว่า “hello world” ออกทางหน้าจอสามารถใช้งานคาสั่ง
โดยมีรูปแบบคือ echo [option] [text] มีตัวอย่างการใช้งานดังนี้
ตารางที่ 5 (7-3) คาสั่ง echo
คาสั่ง ความหมาย
echo “hello world” แสดงข้อความ hello world ทางหน้าจอ เมื่อ
แสดงข้อความแล้วจะขึ้นบรรทัดใหม่
echo -n “hello world” ไม่ต้องขึ้นบรรทัดใหม่เมื่อแสดงข้อความ hello
world จบ
echo -e “hello tworld” อนุญาตให้ใช้ Escape Character (ตัวอักษรพิเศษ
ที่ทาให้ตัวอักษรที่ตามมามีความหมายอื่น ส่วน
ใหญ่มักใช้ตัวอักษรพิเศษคือ  ) เช่น
t หมายถึง เลื่อนตาแหน่งไปทางขวา 1 ย่อหน้า
n หมายถึง ขึ้นบรรทัดใหม่
 หมายถึง เติมเครื่องหมาย 
” หมายถึง เติมเครื่องหมาย “ เป็นต้น
cat
คาสั่ง cat แสดงเนื้อหาทั้งหมดของไฟล์ที่ระบุ สามารถใช้งานคาสั่งโดยมีรูปแบบ
การใช้งานคือ cat [option] [file] มีตัวอย่างการใช้งานดังนี้
ตารางที่ 6 (7-4) คาสั่ง cat
คาสั่ง ความหมาย
cat /etc/passwd แสดงเนื้อหาทั้งหมดของไฟล์ /etc/passwd
cat -b /etc/passwd แสดงเนื้อหาทั้งหมดของไฟล์โดยจะแสดงเลข
บรรทัดซึ่งไม่นับรวมบรรทัดว่าง
cat -n /etc/passwd แสดงเนื้อหาทั้งหมดของไฟล์โดยจะแสดงเลข
80
คาสั่ง ความหมาย
บรรทัดซึ่งนับรวมบรรทัดว่างด้วย
cat -E /etc/passwd แสดงคาสุดท้ายของแต่ละบรรทัดของเนื้อหาใน
ไฟล์
Pipe
สัญลักษณ์ “|” เรียกว่า Pipe ทาหน้าที่นาผลลัพธ์ของคาสั่งแรกไปเป็นข้อมูลนาเข้า
ของคาสั่งที่สอง ยกตัวอย่างเช่น หากผู้ใช้ต้องการแสดงเลขบรรทัด เนื้อหาของไฟล์
/etc/passwd ทีละหน้าจอสามารถใช้โปแกรม cat ร่วมกับคาสั่ง more ได้เช่น
cat -n /etc/passwd | more เป็นต้น
wc
คาสั่ง wc ใช้ในการนับจานวนคา จานวนบรรทัด หรือ จานวนไบต์ ของไฟล์ที่ระบุ
สามารถนาไปประยุกต์ใช้ได้อย่างกว้างขวาง เช่น หากต้องการทราบจานวนผู้ใช้
ภายในเครื่องคอมพิวเตอร์สามารถใช้คาสั่งนี้ เพื่อนับจานวนบรรทัดของไฟล์
/etc/passwd ได้ เป็นต้น สามารถใช้คาสั่งโดยมีรูปแบบคือ wc [option]
[filename] มีตัวอย่างการใช้งานดังนี้
ตารางที่ 7 (7-5) คาสั่ง wc
คาสั่ง ความหมาย
wc /etc/passwd แสดงจานวนบรรทัด จานวนคา จานวนไบต์ จาก
ไฟล์ /etc/passwd
wc -l /etc/passwd แสดงจานวนบรรทัดของไฟล์ /etc/passwd
wc -w /etc/passwd แสดงจานวนคาของไฟล์ /etc/passwd
wc -c /etc/passwd แสดงจานวนไบต์ของไฟล์ /etc/passwd
81
Redirection
หลายครั้งเมื่อผลลัพธ์ที่ได้จากการทางานของคาสั่งมีความยาวมากทาให้ไม่สะดวกที่
จะอ่านที่หน้าจอ ระบบปฏิบัติการ UNIX จึงมีวิธีเปลี่ยนการแสดงผลลัพธ์ให้ไปยังที่
ซึ่งผู้ใช้ต้องการ เพื่อใช้ในการตรวจสอบภายหลัง เช่น อาจจะนาผลลัพธ์มาเขียนเป็น
ไฟล์ หรือจะให้พิมพ์ออกมาทางเครื่องพิมพ์ เป็นต้น เรียกวิธีการเช่นนี้ว่า
Redirection ซึ่งนอกจากจะเปลี่ยนการแสดงผลลัพธ์จากการทางานของคาสั่งได้
แล้ว ยังสามารถใช้เพื่อเปลี่ยนวิธีนาข้อมูลเข้าสู่คาสั่งได้ด้วย เช่น สามารถกาหนดให้
ไฟล์เป็นข้อมูลนาเข้าของคาสั่งได้แทนที่จะนาเข้าข้อมูลผ่านแป้นพิมพ์แบบทั่วไป
เป็นต้น ในการใช้งาน ผู้ใช้จะใช้สัญลักษณ์ “<” เพื่อแทนการเปลี่ยนวิธีนาเข้าข้อมูล
และใช้ “>” แทนการเปลี่ยนวิธีแสดงผลลัพธ์ แต่ก่อนจะเริ่มสาธิตการใช้งาน
Redirection ผู้ใช้ควรทาความเข้าใจกับ Standard Streams เพื่อทราบหลักการ
ทางานของคาสั่งในระบบ UNIX เบื้องต้นก่อน
Standard Streams
การไหลของข้อมูลจากที่หนึ่งไปยังอีกที่หนึ่ง เรียกว่า Streams โดยทั่วไปการไหล
ของข้อมูลในระบบ UNIX มี 3 ประเภทดังรูปที่ 17 (7-1) เรียกการไหลของข้อมูล
เหล่านี้ว่า Standard Streams ประกอบไปด้วย
1. Standard Input (stdin) เป็นข้อมูลที่นาเข้าสู่คาสั่ง ซึ่งโดยทั่วไปมี
Terminal (ส่วนที่ทาหน้าที่ติดต่อระหว่างผู้ใช้กับคอมพิวเตอร์) เป็น
แป้นพิมพ์ มี File descriptor เป็น 0
2. Standard Output (stdout) เป็นผลลัพธ์ที่ได้จากการประมวลผลคาสั่ง
ซึ่งโดยทั่วไปมี Terminal เป็น หน้าจอคอมพิวเตอร์ มี File descriptor
เป็น 1
3. Standard Error (stderr) เป็นผลลัพธ์ที่ได้จากการประมวลผลคาสั่ง เมื่อ
มีการทางานผิดพลาด ซึ่งโดยทั่วไปมี Terminal เป็น หน้าจอคอมพิวเตอร์
มี File descriptor เป็น 2
82
รูปที่ 17 (7-1) Standard Streams [7-2]
ตรงจุดนี้น่าจะมีผู้สงสัยไม่น้อยเกี่ยวกับ File descriptor ซึ่งสามารถอธิบายอย่าง
ง่ายคือ ในขณะที่ระบบปฏิบัติการ UNIX เปิดไฟล์ที่ต้องการใช้งาน ระบบจะ
กาหนดค่าตัวเลขให้กับไฟล์นั้น เพื่อให้คาสั่งต่างๆ เรียกใช้งานเมื่อต้องการอ่านหรือ
เขียนข้อมูลในไฟล์นั้น เลขที่ระบบปฏิบัติการกาหนดให้ไฟล์นี้เรียกว่า File
Descriptor โดยทั่วไประบบ UNIX จะเปิดไฟล์ทั้งสามที่กล่าวไว้ข้างต้น เพื่อให้
คาสั่งต่างๆ เรียกใช้งาน [7-3] ผู้ใช้สามารถใช้งาน Redirection ได้ดังนี้
ตัวอย่าง การใช้ข้อมูลจากไฟล์เป็นข้อมูลนาเข้า
cat < /etc/passwd
คาสั่งนี้เป็นการกาหนดให้ไฟล์ /etc/passwd เป็นข้อมูลนาเข้าของคาสั่ง cat
ตัวอย่าง การเปลี่ยนวิธีแสดงผลลัพธ์ที่ได้จากคาสั่งไปสู่ไฟล์
echo “hello world” > sample1
คาสั่งนี้เป็นการกาหนดผลลัพธ์ของคาสั่ง echo ไว้ที่ไฟล์ sample1
ตัวอย่าง การใช้ข้อมูลจากไฟล์เป็นข้อมูลนาเข้า และเปลี่ยนวิธีการแสดงผลลัพธ์ไปสู่
ไฟล์
cat < /etc/passwd > sample2
คาสั่งนี้เป็นการกาหนดให้ไฟล์ /etc/password เป็นข้อมูลนาเข้าของคาสั่ง cat
และนาผลลัพธ์เขียนลงในไฟล์ sample2
83
การใช้งาน Redirection นั้นมีประโยชน์อย่างมาก เพราะช่วยให้ผู้ใช้ทางานได้
สะดวกมากขึ้น เช่น ในบางกรณีหากชุดคาสั่งที่ใช้งานเกิดข้อผิดพลาด ผู้ใช้สามารถ
ใช้ Redirection ร่วมกับ stdout และ stderr เพื่อเปลี่ยนการแสดงผลข้อความ
แจ้งข้อผิดพลาดมาเขียนลงไฟล์ดังรูปที่ 18 (7-2)
รูปที่ 18 (7-2) การใช้ Redirection กับ stdout และ stderr
• บรรทัดแรกใช้คาสั่ง more x แต่ไม่มีไฟล์ดังกล่าวอยู่ในไดเรกทอรีที่ระบุ
ดังนั้น ในบรรทัดที่สองระบบจึงแจ้งข้อผิดพลาด
• ทาการเปลี่ยนวิธีการแสดงผลลัพธ์ให้เขียนลงในไฟล์ sample3
• เมื่อสั่ง cat sample3 พบว่าไม่มีข้อความใด ๆ ปรากฏ เนื่องจากในการ
สั่ง more x ไม่ได้มีผลลัพธ์ใน stdout นั่นเอง
• ทาการสั่ง more x > sample3 2>&1
• ซึ่งตัวเลข 1 และ 2 คือ File descriptor ของ stdout และ
stderr ตามลาดับ
• 2>&1 หมายความว่า ให้ระบบนาผลลัพธ์ของ stderr เก็บไว้ที่
เดียวกันกับ stdout
• สั่ง cat sample3 อีกครั้งจะพบว่ามีข้อความแจ้งข้อผิดพลาดอยู่ภายใน
ไฟล์
84
grep
grep เป็นคาสั่งที่ใช้ในการค้นหารูปแบบของข้อความในไฟล์หรือไดเรกทอรี
โดย grep จะอ่านข้อมูลในไฟล์ทีละบรรทัดมาเปรียบเทียบกับรูปแบบที่ผู้ใช้กาหนด
[7-4] ผู้ใช้สามารถใช้ grep โดยมีรูปแบบ grep [option] [PATTERN] [FILE] ได้
โดยมีรูปแบบดังนี้
ตารางที่ 8 (7-6) คาสั่ง grep
คาสั่ง ความหมาย
grep “root” /etc/passwd ค้นหาข้อความ “root” ในไฟล์ /etc/passwd
หากพบจะแสดงข้อความของบรรทัดที่พบและ
highlight ข้อความ ออกมาที่หน้าจอ
grep -n “root”
/etc/passwd
ค้นหาข้อความ “root” ในไฟล์ /etc/passwd
หากพบจะแสดงข้อความและหมายเลขของ
บรรทัดที่พบและ highlight ข้อความ ออกมาที่
หน้าจอ
grep -v “root” /etc/passwd highlight ข้อความที่ไม่ตรงกับ “root”
grep -i “ROOT”
/etc/passwd
ค้นหารูปแบบข้อความโดยไม่สนใจว่าจะเป็น
ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก (case insensitive)
grep -A3 “root”
/etc/passwd
-A[number] เป็นการสั่งให้ grep แสดงข้อ
ความหลังพบรูปแบบที่ตรงกับการค้นหา เช่น -A3
แสดง 3 บรรทัดหลังบรรทัดที่พบ “root”
Regular Expression
grep รองรับ Regular Expression 3 ประเภท คือ Basic (BRE), Extended
(ERE), Perl (PRCE) [7-5] ทั้งสามประเภทมีวิธีใช้แตกต่างกัน โดยที่ grep จะใช้
BRE เป็นค่าตั้งต้น หากผู้ใช้ต้องการใช้ ERE หรือ PRCE สามารถใส่ option “-E”
หรือ “-P” ตามลาดับ ผู้ใช้สามารถศึกษา Regular Expression ได้จากแหล่งข้อมูล
ในส่วนอ้างอิง หรือจากแหล่งอื่นๆ เพิ่มเติมได้ในตารางต่อไปนี้ จะยกตัวอย่าง BRE
ที่ใช้บ่อย พร้อมยกตัวอย่างวิธีใช้งานร่วมกับ grep โดยใช้ไฟล์ sample4 ซึ่งมี
85
ข้อความ “abcdefghijklmnopqrstuvwxyz12345” อยู่
ตารางที่ 9 (7-7) ตัวอย่าง Regular Expression
สัญลักษณ์ คาอธิบาย
. จุด(.) หมายถึง อักขระใดก็ได้ 1 อักขระ
ตัวอย่างการใช้งานร่วมกับ grep
คาสั่ง: grep . sample4
ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345
[abc] เป็น การประกาศกลุ่มอักขระในตัวอย่าง grep จะนาอักขระที่
ประกาศออกไปค้นหาทีละตัวจนกว่าจะครบนอกจะประกาศทีละ
ตัวอักษร แล้ว ยังสามารถประกาศเป็นช่วงอักขระได้ เช่น [a-c] จะ
ประกอบเหมือนกับประกาศ [abc]
ตัวอย่างการใช้งานร่วมกับ grep
คาสั่ง: grep [abc] sample4
ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345
[^abc] จากตัวอย่างอักขระที่นอกเหนือจาก a,b,c จะถูก grep นาไปใช้ใน
การค้นหา
ตัวอย่างการใช้งานร่วมกับ grep
คาสั่ง: grep [^abc] sample4
ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345
^ เป็นสัญลักษณ์ บอกถึงอักขระแรกของบรรทัด เช่น หากต้องการ
ค้นหาบรรทัดที่ขึ้นต้นด้วยตัวอักษร a จะใช้รูปแบบ ^a
ตัวอย่างการใช้งานร่วมกับ grep
คาสั่ง: grep ^a sample4
ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345
$ เป็นสัญลักษณ์ บอกถึงอักขระสุดท้ายของบรรทัด เช่น หากต้องการ
ค้นหาบรรทัดที่จบด้วยตัวเลข5 จะใช้รูปแบบ 5$
86
สัญลักษณ์ คาอธิบาย
ตัวอย่างการใช้งานร่วมกับ grep
คาสั่ง: grep 5$ sample4
ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345
* ใช้เมื่อต้องการกาหนดปริมาณ โดย * มีค่าปริมาณคือ มากกว่าหรือ
เท่ากับ 0
ตัวอย่างการใช้งานร่วมกับ grep
คาสั่ง: grep abc.*j sample4
ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345
[[:alpha:]] ใช้ประกาศรูปแบบกลุ่มตัวอักษรทั้งหมดไม่ว่าจะอักษรใหญ่หรืออักษร
เล็ก เหมือนกับการประกาศรูปแบบกลุ่มอักษร [A-Za-z]
ตัวอย่างการใช้งานร่วมกับ grep
คาสั่ง: grep [[:alpha:]] sample4
ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345
[[:alnum:]] ใช้ประกาศรูปแบบกลุ่มตัวอักษรทั้งหมดไม่ว่าจะอักษรใหญ่หรืออักษร
เล็กและตัวเลข เหมือนกับการประกาศรูปแบบกลุ่มอักษร [A-Za-z0-
9]
ตัวอย่างการใช้งานร่วมกับ grep
คาสั่ง: grep [[:alnum:]] sample4
ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345
[[:digit:]] ใช้ประกาศรูปแบบกลุ่มตัวเลข เหมือนกับการประกาศรูปแบบกลุ่ม
อักษร [0-9]
ตัวอย่างการใช้งานร่วมกับ grep
คาสั่ง: grep [[:digit:]] sample4
ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345
87
7.2 เอกสารอ้างอิง
[7-1] http://www.thaicert.or.th/papers/normal/2011/
pp2011no0003.html
[7-2] http://en.wikipedia.org/wiki/File:Stdstreams-notitle.svg
[7-3] http://www.livefirelabs.com/unix_tip_trick_shell_script/
june_2003/06092003.htm
[7-4] http://www.regular-expressions.info/grep.html
[7-5] http://www.gnu.org/s/grep/manual/html_node/Regular-
Expressions.html#Regular-Expressions
88
89
8. เพิ่มความปลอดภัยให้ SSH Server ด้วย Key
Authentication
ผู้เรียบเรียง: เจษฎา ช้างสีสังข์
วันที่เผยแพร่: 21 พ.ย. 2554
ปรับปรุงล่าสุด: 21 พ.ย. 2554
Secure Shell (SSH) คือ โพรโทคอล (Protocol) ที่ใช้ในการติดต่อสื่อสารระหว่าง
เครื่องคอมพิวเตอร์บนระบบเครือข่ายผ่านพอร์ท (Port) หมายเลข 22 ซึ่งโพรโท-
คอล SSH มีวัตถุประสงค์หลัก เพื่อให้ผู้ใช้งานสามารถเข้าควบคุมหรือสั่งการเครื่อง
คอมพิวเตอร์ที่ให้บริการ SSH ตามสิทธิของผู้ใช้งานซึ่งได้มาจากการพิสูจน์ตัวตน
ด้วยการล็อกอิน (Login) ด้วยการใช้ชื่อผู้ใช้และรหัสผ่าน โดยผ่านช่องทางการ
สื่อสารที่มีการรักษาความมั่นคงปลอดภัยด้วยการเข้ารหัสลับ ข้อมูล (Encryption)
ซึ่งถูกออกแบบมาเพื่อใช้แทนที่การสื่อสารข้อมูลบนระบบเครือข่ายที่ส่งข้อมูลแบบ
ไม่ได้เข้ารหัสลับ (Plaintext) เช่น Telnet, Rlogin หรือ FTP ปัจจุบันโพรโทคอล
SSH มีสองเวอร์ชั่นคือ SSH-1 และ SSH-2 (ถูกพัฒนาจาก SSH-1 เพื่อแก้ไขช่อง
โหว่หรือข้อผิดพลาดที่ทาให้ผู้โจมตีสามารถโจมตีเข้ามายังเครื่องคอมพิวเตอร์ที่
ให้บริการ SSH ได้ [8-1])
การทางานของโพรโทคอล SSH จะทางานในลักษณะไคลเอนต์และเซิร์ฟเวอร์
(Client-Server) โดยรูปแบบการใช้งานจะประกอบไปด้วยโปรแกรม 2 ส่วนคือ
โปรแกรมส่วนที่ทาหน้าที่เป็นเครื่องที่ให้บริการ (Server) จะถูกติดตั้งลงที่เครื่อง
คอมพิวเตอร์ที่ต้องการให้บริการ SSH เช่น โปรแกรม OpenSSH-Server บน
ระบบปฏิบัติการ Linux โดยส่วนใหญ่แล้วเครื่องคอมพิวเตอร์ที่ติดตั้งโปรแกรมที่
ให้บริการ SSH จะติดตั้งเพื่ออานวยความสะดวกแก่ผู้ใช้งานร่วมกับบริการอื่นๆ
ควบคู่ไป เช่น บริการเว็บเซิร์ฟเวอร์ หรือบริการอัพโหลดไฟล์ เป็นต้น และ
โปรแกรมอีกส่วนจะทาหน้าที่เป็นผู้เชื่อมต่อ (Client) ไปยังเครื่องคอมพิวเตอร์ที่
ให้บริการ SSH เช่น โปรแกรม PuTTY [8-2] บนระบบปฏิบัติการ Windows หรือ
90
โปรแกรม OpenSSH-Client บนระบบปฏิบัติการ Linux
ถึงแม้โพรโทคอล SSH จะมีข้อดีในเรื่องของการรักษาความมั่นคงปลอดภัยโดยมี
การเข้ารหัสลับข้อมูล และมีการล็อกอินก่อนการเข้าใช้งาน แต่ก็ยังพบว่ามีโอกาสสูง
ที่จะถูกโจมตีจากผู้ไม่หวังดี เนื่องจากผลลัพธ์และความสาเร็จในการเข้าโจมตีอาจ
หมายถึงการได้รับสิทธิในการเข้าควบคุมและสั่งการเครื่องคอมพิวเตอร์ที่ให้บริการ
นั้นทันที โดยลักษณะการโจมตีที่เกิดขึ้นมักจะมาจากการใช้เทคนิคในการเข้าโจมตีที่
เครื่องคอมพิวเตอร์ที่ให้บริการโดยตรง เช่น การโจมตีด้วยวิธีการสุ่มรหัสผ่าน
(Brute-force) เพื่อพยายามเข้าสู่ระบบเครื่องคอมพิวเตอร์ที่ให้บริการ SSH ซึ่งหาก
ผู้ใช้งานหรือผู้ดูแลระบบตั้งค่ารหัสผ่านในการล็อกอินง่ายเกินไปก็จะทาให้โอกาสใน
การโจมตีสาเร็จง่ายมากขึ้น โดยแนวทางในการป้องกันที่ได้ผลลัพธ์ดีที่สุด คือ การ
รู้ทันการโจมตีและรู้วิธีในการป้องกันการโจมตีดังกล่าว ซึ่งหนึ่งในวิธีการป้องกันที่
ผู้ดูแลระบบส่วนใหญ่นิยมใช้ และจะกล่าวถึงในบทความนี้ คือ การเปลี่ยนวิธีการ
ล็อกอินจากวิธีการปกติที่ใช้รหัสผ่าน เป็นการใช้เทคนิคการใช้คู่กุญแจ (Key
Authentication) [8-3] ซึ่งเป็นรูปแบบการเข้ารหัสแบบอสมมาตร (Asymmetric-
key cryptography) โดยมีการสร้างคู่กุญแจ ซึ่งจะประกอบไปด้วยกุญแจ
สาธารณะ (Public Key) และ กุญแจส่วนตัว (Private Key) มีหลักการทางานคือ
ถ้าใช้กุญแจ A ในการเข้ารหัสลับ จะต้องใช้กุญแจ B ในการถอดรหัสลับ โดยการ
เข้ารหัสและถอดรหัสดังกล่าวจะใช้ฟังก์ชันทางคณิตศาสตร์เข้ามาช่วย
[8-4] ซึ่งการใช้หลักการดังกล่าวในการพิสูจน์ตัวตนของผู้ใช้งานกับเครื่อง
คอมพิวเตอร์ที่ให้บริการ SSH จะช่วยป้องกันการโจมตีด้วยวิธีการ Brute-force
จากผู้โจมตีได้ และยังสามารถเพิ่มความมั่นคงปลอดภัยจากการใช้งาน Key
Authentication ได้โดยการเข้ารหัสลับ Private key ด้วยรหัสผ่านอีกขั้นตอนหนึ่ง
เพื่อป้องกันบุคคลอื่นนากุญแจดังกล่าวไปใช้งาน ซึ่งวิธีการใช้งาน SSH ด้วยวิธีการ
Key Authentication สามารถอธิบายได้ดังนี้
91
8.1 วิธีการใช้งาน Secure Shell (SSH) ด้วย Key
Authentication
สาหรับการเริ่มต้นใช้งาน Key Authentication บนโพรโทคอล SSH ผู้ใช้งาน
จะต้องสร้าง Public Key และ Private Key โดย Public Key จะถูกเก็บไว้ที่
เครื่องคอมพิวเตอร์ที่ให้บริการ SSH ส่วน Private Key จะเก็บไว้ที่เครื่องผู้ใช้งาน
ซึ่งจากข้อมูลดังกล่าวแสดงให้เห็นว่า Private Key ควรจะต้องได้รับการดูแลรักษา
ที่ดีจากผู้ใช้งาน เนื่องจากเป็นส่วนสาคัญในการล๊อกอินเข้าไปยังระบบ หากผู้อื่นได้
Private Key ไปแล้วอาจทาให้ผู้อื่นสามารถเข้าถึงบริการ SSH ได้โดยง่าย
ตัวอย่างการใช้งาน SSH Key Authentication
จาลองระบบดังนี้
เครื่องผู้ใช้งานฝั่งไคลเอนต์ :
• ใช้ระบบปฏิบัติการ Ubuntu 11.04
• โปรแกรมที่ใช้คือ OpenSSH-Client
เครื่องคอมพิวเตอร์ที่ให้บริการ SSH :
• ใช้ระบบปฏิบัติการ Ubuntu Server 11.04
• โปรแกรมที่ใช้คือ OpenSSH-Server
• IP Address เป็น 10.10.10.10
• มี Account ของผู้ใช้เป็น user01 และมี Home directory เป็น
/home/user01 ( สามารถเขียนแทนด้วยเครื่องหมาย “~” )
หมายเหตุ: คาสั่งการใช้งาน SSH อาจมีความแตกต่างกันตามโปรแกรมที่ใช้งาน
ซึ่งในที่นี้จะใช้คาสั่งของโปรแกรม OpenSSH [8-5]
92
1. สร้าง Key Pair ที่เครื่องของผู้ใช้งาน
ทาการสร้าง Key Pair เพื่อจะได้ Public Key และ Private Key
1.1 ใช้คาสั่ง ssh-keygen ด้วยรูปแบบดังนี้
ssh-keygen [-b bits] -t type [-f output_keyfile]
[-b bits] เป็นการระบุขนาดบิตของ Key ที่สร้าง หากไม่มีการกาหนด
โปรแกรมจะใช้ค่าตั้งต้นคือ 2048 บิต
-t เป็นการกาหนดรูปแบบของ Key โดยค่าที่เป็นไปได้คือ rsa1
เป็นการกาหนดโพรโทคอล RSA Version 1 rsa และ dsa
เป็นการกาหนดโพรโทคอล RSA และ DSA Version 2
ตามลาดับ
[-f output_keyfile] เป็นการกาหนดชื่อ ไฟล์ของ Key ที่สร้าง โดยผู้ใช้งาน
สามารถระบุไดเรกทอรีที่ต้องการเก็บ Key ลงไปด้วยได้ หาก
ไม่ได้กาหนด โปรแกรมจะสร้าง Key ไว้ที่ไดเรกทอรี ~/.ssh/
โดยจะสร้าง Private Key เป็นไฟล์ชื่อ id_rsa และสร้าง
Public Key เป็นไฟล์ชื่อ id_rsa.pub
พิมพ์คาสั่งดังนี้
ssh-keygen -t rsa -b 1024 -f ~/.ssh/user01-key
จากคาสั่งข้างต้นจะเป็นการสร้าง Key Pair ชนิด RSA Version 2 มีขนาด 1024
บิต และถูกสร้างไว้ที่ไดเรกทอรี ~/.ssh/ ซึ่งจะปรากฏไฟล์ user01-key และ
user01-key.pub
1.2 หลังจากพิมพ์คาสั่งแล้วกดปุ่ม Enter จากนั้นโปรแกรมจะให้ใส่ค่า
Passphrase หรือรหัสผ่านที่ใช้ในการเข้ารหัสลับเพื่อป้องกันการใช้งาน Private
Key จากผู้ไม่หวังดี ซึ่งทุกครั้งที่มีการใช้งาน Private Key จะต้องใส่ Passphrase
93
นี้เพื่อปลดล็อคจึงจะใช้งานได้ โดยผลลัพธ์ที่ได้หลังจากการใช้คาสั่งจะพบว่ามีไฟล์
user01-key (Private Key) และ user01-key.pub (Public Key) อยู่ที่
/home/user01/ หรือ ~/
1.3 เมื่อสร้าง Key เสร็จ ควรปรับปรุงสิทธิในการเข้าถึง Key เช่นกาหนดสิทธิให้
ผู้ใช้งานสามารถอ่านและเขียน Private Key ได้เท่านั้น และกาหนดสิทธิให้ผู้ใช้อื่น
สามารถอ่าน Public Key ได้อย่างเดียว
คาสั่งในการตั้งค่าสิทธิให้ผู้ใช้งานเท่านั้นที่สามารถอ่านและเขียน Private Key ได้มี
ดังนี้
chmod 600 user01-key
คาสั่งในการตั้งค่าสิทธิให้ผู้อื่นสามารถอ่าน Public Key ได้อย่างเดียวมีดังนี้
chmod 644 user01-key.pub
ตัวอย่างคาสั่งการสร้าง Key
user01@test:/home/user01$ ssh-keygen -t rsa -b 1024 -f
~/.ssh/user01-key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user01/.ssh/user01-key.
Your public key has been saved in /home/user01/.ssh/user01-key.pub.
The key fingerprint is:
48:34:5a:68:a0:77:a1:3e:b8:55:20:25:51:8c:f5:fe user01@test
หากต้องการเปลี่ยน Passphrase สามารถทาได้โดยใช้คาสั่ง ssh-keygen โดย
กาหนดพารามิเตอร์ -p และระบุตาแหน่งของ Private Key ด้วยพารามิเตอร์ -f
ตัวอย่างคาสั่งการเปลี่ยน Passphrase ที่ล็อกการใช้งาน Private Key
94
user01@test:/home/user01$ ssh-keygen -p -f
/home/user01/.ssh/user01-key
Enter old passphrase:
Key has comment '/home/user01/.ssh/user01-key'
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.
2. คัดลอก Public Key ไปยังเครื่องคอมพิวเตอร์ที่ให้บริการ SSH
2.1 คัดลอก Public Key ไปยังเครื่องคอมพิวเตอร์ที่ให้บริการ SSH ด้วยคาสั่ง
scp ~/.ssh/user01-key.pub user01@10.10.10.10
หมายเหตุ: คาสั่ง scp (Secure copy) เป็นคาสั่งในการคัดลอกไฟล์ไปยังเครื่อง
คอมพิวเตอร์ปลายทาง โดยข้อมูลที่ส่งจะผ่านช่องทางที่มีการเข้ารหัสลับ ซึ่ง
ความหมายของคาสั่งข้างต้นคือการคัดลอกไฟล์ชื่อ user01-key.pub ที่อยู่ใน
~/.ssh/ ไปที่ /home/user01/ ของเครื่องคอมพิวเตอร์ปลายทางที่มี IP Address
10.10.10.10
2.2 ให้ผู้ใช้งานล็อกอินเข้าไปยังเซิร์ฟเวอร์ที่ให้บริการ SSH จากนั้นทาการย้าย
Public Key ของตน ไปไว้ที่ไดเรกทอรี ~/.ssh/ แล้วเปลี่ยนชื่อจาก user01-
key.pub เป็น authorized_keys ด้วยคาสั่งดังนี้
mv user01-key.pub ~/.ssh/authorized_keys
หมายเหตุ: การเพิ่ม Public Key มากกว่า 1 key เข้าไปยังระบบของผู้ใช้งาน
สามารถทาได้โดยการนา Public Key ใหม่มาต่อท้ายเนื้อหาในไฟล์
authorized_keys ด้วยคาสั่ง
cat ~/user01-key2.pub >> ~/.ssh/authorized_keys
95
2.3 กาหนดสิทธิในการเข้าถึง Public Key ให้เหมาะสม เช่น กาหนดให้ผู้อื่น
สามารถอ่านไฟล์ได้เท่านั้น ด้วยคาสั่ง chmod 644 authorized_keys
3. ตั้งค่าการเชื่อมต่อของโปรแกรม OpenSSH-Client
การตั้งค่าการเชื่อมต่อของโปรแกรม OpenSSH-Client ที่เครื่องผู้ใช้งาน ทาให้เกิด
ความสะดวกในการเรียกคาสั่งในการเชื่อมต่อไปยังเครื่องคอมพิวเตอร์ ทีให้บริการ
SSH โดยผู้ใช้งานสามารถกาหนดค่าเบื้องต้นในการเชื่อมต่อ เช่น ตาแหน่งของ
Private Key หรือ IP Address ของเครื่องคอมพิวเตอร์ที่ให้บริการ SSH ซึ่งทาได้
โดยการสร้างไฟล์ชื่อ config ไว้ที่ไดเรกทอรี ~/.ssh ของผู้ใช้ จากนั้นกาหนดค่าดัง
ตัวอย่างลงในไฟล์
Host server
Hostname 10.10.10.10
User user01
IdentitiesOnly yes
IdentityFile ~/.ssh/user01-key
จากการตั้งค่าข้างต้น เป็นการกาหนดชื่อที่ใช้แทนการตั้งค่าเพื่อใช้เข้าถึงเครื่อง
ปลายทาง โดยที่:
• Hostname คือการกาหนดชื่อหรือ IP Address ที่ระบุที่อยู่ของเครื่อง
คอมพิวเตอร์ที่ให้บริการ SSH
• User คือการกาหนดชื่อผู้ใช้งานที่จะใช้ ล็อกอินไปยังเครื่องคอมพิวเตอร์ที่
ให้บริการ SSH
• IdentityFile เป็นการกาหนดที่อยู่ของ Private Key
จากนั้นผู้ใช้งานสามารถทดสอบการเชื่อมต่อไปยังเครื่องคอมพิวเตอร์ที่ให้บริการ
SSH ได้ด้วยคาสั่ง ssh server ตัวอย่างการใช้งานคาสั่ง ssh-server
user01@test:/home/user01/.shh# ssh server
96
Enter passphrase for key 'user01-key':
ซึ่งหลังจากการใช้คาสั่งแล้ว ระบบจะให้ใส่ Passphrase ของ Private Key ในกรณี
ที่ไม่ได้ตั้งค่าการเชื่อมต่อในไฟล์ config ผู้ใช้งานสามารถกาหนดการเข้าถึงเครื่อง
คอมพิวเตอร์ที่ให้บริการ SSH ได้โดยตรง ด้วยรูปแบบคาสั่งดังนี้
ssh [-i private_key_file] username@hostname
Option -i หมายถึง การระบุที่อยู่ Private Key ของผู้ใช้งาน
ตัวอย่างการใช้งาน
ssh -i ~/.ssh/user01-key user01@10.10.10.10
จากคาสั่งข้างต้น เป็นการล็อกอินไปยังเครื่องคอมพิวเตอร์ที่ให้บริการ SSH โดยมี
IP Address เป็น 10.10.10.10 ด้วย account ของผู้ใช้งานชื่อ user01 และใช้
Private Key ที่กาหนดไว้ที่ไฟล์ ~/.ssh/user01-key
4. ตั้งค่าการทางานของโปรแกรม OpenSSH-server
โดยปกติแล้วโปรแกรม OpenSSH-Server จะมีการกาหนดค่าตั้งต้นของโปรแกรม
ให้ใช้การล็อกอินด้วยรหัสผ่าน ซึ่งผู้ดูแลระบบสามารถปรับปรุงการตั้งค่าเพื่อให้
สอดคล้องกับการใช้งาน Key Authentication ด้วยการปรับแต่งค่าที่ไฟล์
/etc/ssh/sshd_config โดยมีรายละเอียดดังนี้
PasswordAuthentication no
PubkeyAuthentication yes
RSAAuthentication yes
จากนั้น Restart โปรแกรม Openssh-server ด้วยคาสั่ง
/etc/init.d/sshd restart
97
8.2 เอกสารอ้างอิง
[8-1] http://en.wikipedia.org/wiki/Secure_Shell
[8-2] http://www.chiark.greenend.org.uk/~sgtatham/putty/
[8-3] http://en.wikipedia.org/wiki/Key_authentication
[8-4] http://th.wikipedia.org/wiki/วิทยาการเข้ารหัสลับ
[8-5] http://www.openssh.com/
98
99
9. เชื่อมต่ออย่างปลอดภัยด้วย SSH Tunnel
ผู้เรียบเรียง: วิศัลย์ ประสงค์สุข
วันที่เผยแพร่: 29 พ.ย. 2554
ปรับปรุงล่าสุด: 29 พ.ย. 2554
การใช้งานอินเทอร์เน็ตจากผู้ให้บริการเครือข่ายไร้สายสาธารณะ (Wi-Fi) หรือจาก
ผู้ให้บริการร้านอินเทอร์เน็ตคาเฟ่ทั่วไป ล้วนแล้วแต่เป็นการเชื่อมต่อบนเครือข่ายที่
ไม่ปลอดภัยและมีความเสี่ยงต่อการถูกผู้ไม่หวังดี หรืออาจหมายถึงผู้ให้บริการเองใน
การลักลอบขโมยข้อมูลการใช้งานของผู้ใช้บนเครือข่ายนั้นๆ เช่น การดักจับข้อมูล
รหัสผ่านที่ผู้ใช้ส่งผ่านเครือข่ายไร้สายสาธารณะ เป็นต้น ซึ่งในเวลาต่อมาได้มีการ
พัฒนารูปแบบการเชื่อมต่อที่มีความสามารถในการทาให้การเข้าใช้งานระบบบน
เครือข่ายใดๆ มีการรักษาความปลอดภัยในการรับส่งข้อมูล โดยหนึ่งในวิธีที่ผู้ดูแล
ระบบสามารถนามาประยุกต์และปรับใช้ในการทางาน เพื่อทาให้การรับส่งข้อมูลบน
เครือข่ายมีความปลอดภัยคือ การสร้างช่องทางการรับส่งข้อมูลเฉพาะที่เรียกว่า
Tunnel ผ่านโพรโทคอล SSH (Secure Shell) ที่มีรูปแบบการสื่อสารที่มีมาตรการ
รักษาความปลอดภัยของข้อมูลด้วยการเข้ารหัสลับข้อมูล โดย SSH Tunnel มีชื่อ
เรียกอีกชื่อหนึ่งว่า SSH Port Forward เนื่องจากมีการทางานลักษณะเดียวกับ
Port Forward ซึ่งใช้กาหนดเส้นทางการรับส่งข้อมูลระหว่างเครือข่ายภายนอก
(WAN) กับเครือข่ายภายใน (LAN) โดยปกติการใช้งาน Port Forward จะนิยมใช้
ในฟังก์ชันการทางานของอุปกรณ์ Router เพื่อให้เครื่องคอมพิวเตอร์จากเครือข่าย
อินเทอร์เน็ตสามารถเชื่อมต่อมายังเครือข่ายภายใน Router ดังกล่าว โดยสามารถ
ระบุช่องทางการเชื่อมต่อแยกแต่ละ Port ได้ดังรูปที่ 19 (9-1)
100
รูปที่ 19 (9-1) แสดงให้เห็นถึงเส้นทางการรับส่งข้อมูลเมื่อมีการใช้ฟังก์ชัน Port
Forward ในอุปกรณ์ Router
รูปแบบการสร้างการเชื่อมต่อของ SSH Tunnel สามารถทาได้ 2 แบบคือ Local
Port Forward และ Remote Port Forward [20-1] ซึ่งจะกล่าวถึงในหัวข้อถัดไป
โดยการใช้งาน SSH Tunnel ผู้ใช้จะต้องติดตั้งโปรแกรม SSH Client ลงในเครื่อง
คอมพิวเตอร์ ซึ่งในระบบปฏิบัติการลินุกซ์ส่วนใหญ่ จะมีการติดตั้งโปรแกรม
OpenSSH-Client มาพร้อมกับระบบอยู่แล้ว ส่วนในระบบปฏิบัติการวินโดวส์ผู้ใช้
สามารถดาวน์โหลดและติดตั้งโปรแกรมชื่อ PuTTY [20-2] ซึ่งทางานในลักษณะ
SSH Client เช่นกัน แต่ในบทความนี้จะขอแสดงวิธีการทา SSH Tunnel โดยใช้
โปรแกรม OpenSSH-Client
9.1 การทา Local Port Forward และ Remote Port
Forward
จาลองระบบดังนี้
เครือข่าย คอมพิวเตอร์ Web Server SSH Server SSH Client
A Com1 / /
Com2 / / /
B Com3 / /
Com4 / /
101
หมายเหตุ
1. คอมพิวเตอร์ภายในเครือข่ายเดียวกันสามารถเชื่อมต่อกันได้
2. Com2 และ Com3 เชื่อมต่อกันได้ผ่านอินเทอร์เน็ต
รูปที่ 20 (9-2) สภาพแวดล้อมของระบบ
1. Local Port Forward
หรือเรียกอีกชื่อหนึ่งว่า Outgoing Tunnels เป็นการกาหนดช่องทางการเชื่อมต่อ
จากเครือข่ายต้นทางไปยังเครือข่ายปลายทางผ่าน Port ที่กาหนด ใช้เมื่อต้องการ
ให้เครื่องคอมพิวเตอร์ที่อยู่ในเครือข่ายต้นทางสามารถเชื่อมต่อผ่าน Tunnel ไปยัง
เครื่องคอมพิวเตอร์ที่อยู่ในเครือข่ายปลายทาง โดยเครื่องคอมพิวเตอร์ที่ใช้สร้าง
Tunnel หรือเครื่องคอมพิวเตอร์ต้นทางจะต้องเชื่อมต่อและยืนยันสิทธิผ่านเครื่อง
SSH Server ที่เครือข่ายปลายทาง และกาหนดค่า Port ที่จะเชื่อมระหว่าง
เครือข่ายทั้งสองผู้ใช้สามารถทา Local Port Forward ได้โดยใช้คาสั่งซึ่งมีรูปแบบ
ดังนี้
ssh -L local_listen_port:destination_host:destination_port
user@hostname โดยที่
สัญลักษณ์ ความหมาย
-L กาหนดให้เครื่อง SSH Server ทา Local Port Forward
local_listen_port กาหนดให้เครื่อง SSH Server ทราบว่าหากมีการเชื่อมต่อ
102
สัญลักษณ์ ความหมาย
เข้ามาที่ Port ที่กาหนด ให้ส่งต่อไปยัง
destination_port ของเครื่องเป้าหมาย
destination_host กาหนดให้เครื่อง SSH Server ทราบว่าเครื่อง
คอมพิวเตอร์เครื่องใดเป็นเครื่องเป้าหมายของผู้ใช้
destination_port กาหนดให้เครื่องให้บริการ SSH ทราบว่าผู้ใช้ต้องการส่ง
ต่อการเชื่อมต่อเข้าสู่ Port ใดของเครื่องเป้าหมาย
user@hostname ชื่อผู้ใช้และเครื่อง SSH Server ที่ใช้งาน
ตัวอย่างการใช้งาน Local Port Forward
ในกรณีผู้ใช้อยู่ที่ Com2 ต้องการเข้าถึง Web Server (Port 80) ของเครื่อง Com3
สามารถใช้คาสั่งได้ดังนี้
ssh -L 8080:164.115.4.3:80 user1@164.115.4.3
คาสั่งนี้หมายความว่าให้ใช้สิทธิของ user1 บน SSH Server (Com3) เพื่อส่งต่อ
การเชื่อมต่อจาก Port 8080 ของเครื่อง Com2 ไปยัง Port 80 ของเครื่อง Com3
สามารถแสดงแบบจาลองการเชื่อมต่อได้ดังรูปที่ 21 (9-3) ผู้ใช้สามารถเข้าถึง
เว็บไซต์ของ Com3 ได้โดยพิมพ์ URL: http://164.115.4.3:8080 ที่เว็บ
เบราว์เซอร์ (web browser)
รูปที่ 21 (9-3) แบบจาลองการเชื่อมต่อจากคาสั่ง ssh -L 8080:164.115.4.3:80
user1@164.115.4.3
ในกรณีผู้ใช้อยู่ที่ Com2 ต้องการเข้าถึง Web Server ของเครื่อง Com4 สามารถ
103
ใช้คาสั่งได้ดังนี้
ssh -L 8080:172.24.1.5:80 user1@164.115.4.3
คาสั่งนี้หมายความว่าให้ใช้สิทธิของ user1 บน SSH Server (Com3) เพื่อส่งต่อ
การเชื่อมต่อจาก Port 8080 ของเครื่อง Com2 ไปยัง Port 80 ของเครื่อง Com4
สามารถแสดงแบบจาลองการเชื่อมต่อได้ดังรูปที่ 22 (9-4) ผู้ใช้สามารถเข้าถึง
เว็บไซต์ของ Com4 ได้โดยพิมพ์ URL: http://164.115.4.3:8080 ที่เว็บ
เบราว์เซอร์ (web browser)
รูปที่ 22 (9-4) แบบจาลองการเชื่อมต่อจากคาสั่ง ssh -L 8080:172.25.1.5:80
user1@164.115.4.3
2. Remote Port Forward
หรือเรียกอีกชื่อหนึ่งว่า Incoming Tunnels มีการทางานและวัตถุประสงค์ที่ตรง
ข้ามกับ Local Port Forward กล่าวคือเป็นการกาหนดช่องทางการเชื่อมต่อจาก
เครือข่ายปลายทางกลับมายังเครือข่ายต้นทางผ่าน Port ที่กาหนด ใช้เมื่อต้องการ
ให้เครื่องคอมพิวเตอร์ที่อยู่ในเครือข่ายปลายทางสามารถเชื่อมต่อผ่าน Tunnel
กลับมายังเครื่องคอมพิวเตอร์ที่อยู่ในเครือข่ายต้นทาง โดยเครื่องคอมพิวเตอร์ที่ใช้
สร้าง Tunnel หรือเครื่องคอมพิวเตอร์ต้นทางจะต้องเชื่อมต่อและยืนยันสิทธิผ่าน
เครื่อง SSH Server ที่เครือข่ายปลายทาง และกาหนดค่า Port ที่จะเชื่อมระหว่าง
เครือข่ายทั้งสอง ผู้ใช้สามารถทา Remote Port Forward ได้โดยใช้คาสั่งซึ่งมี
รูปแบบดังนี้
104
ssh -R remote_listen_port:destination_host:destination_port
user@hostname โดยที่
สัญลักษณ์ ความหมาย
- R กาหนดให้เครื่อง SSH Server ทา Remote Port
Forward
remote_listen_port กาหนดให้เครื่อง SSH Server ทราบว่าหากมีการเชื่อมต่อ
เข้ามาที่ Port ที่กาหนดให้ส่งต่อไปยัง destination_port
ของเครื่องเป้าหมาย
destination_host กาหนดให้เครื่อง SSH Server ทราบว่าเครื่องคอมพิวเตอร์
เครื่องใดเป็นเครื่องเป้าหมายของผู้ใช้
destination_port กาหนดให้เครื่อง SSH Server ทราบว่าหากมีการเชื่อมต่อ
เข้ามาที่ Port นี้ ให้ส่งต่อการเชื่อมต่อไปยัง
remote_listen_port
user@hostname ชื่อผู้ใช้และเครื่อง SSH Server ที่ใช้งาน
ตัวอย่างการใช้งาน Remote Port Forward
ในกรณีผู้ใช้ต้องการแสดงหน้าเว็บไซต์ภายใน Web Server ของ Com2 ให้บุคคล
ภายนอกเครือข่าย A เห็น ผู้ใช้สามารถใช้คาสั่งต่อไปนี้ที่ Com2 ได้
ssh -R 8080:122.248.233.17:80 user1@164.115.4.3
โดยคาสั่งนี้เป็นการบอกให้ SSH Server (Com3) ทราบว่าหากมีการติดต่อเข้ามาที่
Port 8080 ให้ทาการส่งต่อการเชื่อมต่อไปยัง Port 80 ของเครื่อง Com2 สามารถ
แสดงแบบจาลองการเชื่อมต่อได้ดังรูปที่ 23 (9-5)
105
รูปที่ 23 (9-5) แบบจาลองการเชื่อมต่อจากคาสั่ง ssh -R 8080:122.248.233.17:80
user1@164.115.4.3
ในกรณีผู้ใช้ต้องการแสดงหน้าเว็บไซต์ภายใน Web Server ของ Com1 ให้บุคคล
ภายนอกเครือข่าย A เห็น ผู้ใช้สามารถใช้คาสั่งต่อไปนี้ที่ Com2 ได้
ssh -R 8080:192.168.1.5:80 user1@164.115.4.3
โดยคาสั่งนี้เป็นการบอกให้ SSH Server (Com3) ทราบว่าหากมีการติดต่อเข้ามาที่
Port 8080 ให้ทาการส่งต่อการเชื่อมต่อไปยัง Port 80 ของเครื่อง Com1 สามารถ
แสดงแบบจาลองการเชื่อมต่อได้ดังรูปที่ 24 (9-6)
รูปที่ 24 (9-6) แบบจาลองการเชื่อมต่อจากคาสั่ง ssh -R 8080:192.168.1.5:80
user1@164.115.4.3
จะเห็นได้ว่า การเชื่อมต่อผ่าน SSH Tunnel สามารถทาได้ง่ายและทาให้การรับส่ง
ข้อมูลมีความมั่นคงปลอดภัย แต่อย่างไรก็ตามการใช้งาน SSH Tunnel ควรมีการ
106
กาหนดการเข้าใช้อย่างระมัดระวัง เนื่องจากการเชื่อมต่อผ่าน SSH ผู้เชื่อมต่อจะ
ได้รับสิทธิของผู้ใช้ในระบบของเครื่องปลายทาง ซึ่งหากสิทธิการใช้งานดังกล่าวถูก
กาหนดไว้แบบไม่ระมัดระวัง ก็อาจเกิดความเสียหายต่อระบบได้หากผู้ไม่หวังดี
สามารถล่วงรู้ข้อมูลที่ใช้ใน การเชื่อมต่อเข้าสู่ SSH Server เช่น หมายเลข IP,
Username หรือ Password
9.2 เอกสารอ้างอิง
[9-1] http://www.debianadmin.com/howto-use-ssh-local-and-
remote-port-forwarding.html
[9-2] http://www.chiark.greenend.org.uk/~sgtatham/putty/
download.html
107
รู้ทันภัยคุกคาม
108
109
10. ช่องโหว่ของ Apache HTTPD 1.3/2.X
Range Header (CVE-2011-3192)
ผู้เรียบเรียง: สรณันท์ จิวะสุรัตน์
วันที่ประกาศ: 1 ก.ย. 2554
ปรับปรุงล่าสุด: 1 ก.ย. 2554
ประเภทภัยคุกคาม: DoS (Denial-of-Service)
10.1 ข้อมูลทั่วไป
พบช่องโหว่ของซอฟต์แวร์เครื่องแม่ข่ายเว็บ Apache ในเวอร์ชั่น 1.3 และ 2.X
ซึ่งช่องโหว่นี้สามารถถูกโจมตีจากผู้ใดก็ตามที่สามารถเรียกใช้บริการเว็บในลักษณะ
HTTP-based Range [10-1] ซึ่งจะทาให้เครื่องแม่ข่ายเกิดการใช้งาน CPU และ
Memory ที่สูงผิดปกติจนกระทั่งเครื่องแม่ข่ายเว็บไม่สามารถให้บริการต่อไปได้
และเกิดสภาวะหยุดการทางาน (Denial-of-Service) จากการวิเคราะห์ช่องโหว่
พบว่าสาเหตุของปัญหาน่าจะเกิด 2 สาเหตุ คือ ความบกพร่องในการบริหารจัดการ
การใช้ทรัพยากรของเครื่องแม่ข่ายของซอฟต์แวร์ Apache เอง และความบกพร่อง
ในส่วนของการออกแบบโปรโตคอล HTTP ที่ยอมรับการ Request ในลักษณะ
Byte serving ได้พร้อมๆ กันหลายๆ ช่วงของข้อมูล [10-1] [10-2] โดยไม่ได้
กาหนดข้อห้ามในการเรียกใช้ช่วงข้อมูลที่มีลักษณะซ้อนทับ (Overlap) กัน ซึ่งเป็น
ช่องทางให้ผู้ใช้เรียกใช้ซอฟต์แวร์ Apache เพื่ออ่านข้อมูลพร้อมๆ กันหลายครั้งๆ
ได้โดยง่าย จนกระทั่งทรัพยากรในเครื่องแม่ข่ายถูก Process Apache ใช้งานจน
หมด
10.2 ผลกระทบ
ทาให้เครื่องแม่ข่ายเกิดการใช้งาน CPU และ Memory สูงจนกระทั่งเกิดสภาวะ
หยุดการทางาน (Denial-of-Service)
110
10.3 วิธีการแก้ไข
ผู้ดูแลระบบเครื่องแม่ข่ายเว็บ Apache ที่ได้รับผลกระทบจากช่องโหว่นี้ สามารถ
เลือกวิธีในการแก้ไข/บรรเทาปัญหาได้ตามข้อเสนอต่างๆ [10-1] [10-2] [10-3]
ดังนี้
1. ดาเนินการปรับปรุงซอฟต์แวร์ Apache ให้เป็นเวอร์ชั่น 2.2.20 หรือใหม่กว่า
2. หากไม่สามารถปรับปรุงซอฟต์แวร์ให้เป็นเวอร์ชั่นที่ปรับปรุงแก้ไขช่องโหว่นี้ได้
แล้ว ให้พิจารณาวิธีการดังต่อไปนี้
2.1. สาหรับ Apache 2.0 และ 2.2 ให้จากัด Request Range Header ให้มีความ
ยาวไม่เกิน 5 ช่วง โดยสามารถกาหนดค่า Configuration ของซอฟต์แวร์ Apache
ดังต่อไปนี้
# Drop the Range header when more than 5 ranges.
# CVE-2011-3192
SetEnvIf Range (,.*?){5,} bad-range=1
RequestHeader unset Range env=bad-range
# optional logging.
CustomLog logs/range-CVE-2011-3192.log common env=bad-range
Configuration นี้ จะปฏิเสธ Request Range Header ที่มีจานวนมากกว่า 5 ช่วง
ขึ้นไป โดยระบบจะดาเนินการบันทึก Log ของการ Request นี้ ลงใน [Apache
Log Path]/logs/range-CVE-2011-3192.log เพื่อนาข้อมูลไปตรวจสอบดู
ภายหลังได้ (สามารถแก้ไข path ได้ตามความเหมาะสม)
2.2 สาหรับ Apache 1.3 จาเป็นต้องอาศัยวิธีการจากัด Request Range Header
ให้มีจานวนไม่เกิน 5 ช่วง ด้วย mod rewrite โดยใช้ configuration ดังต่อไปนี้
# Reject request when more than 5 ranges in the Range: header.
# CVE-2011-3192
111
#
RewriteEngine on
RewriteCond %{HTTP:range} !(^bytes=[^,]+(,[^,]+){0,4}$|^$)
RewriteRule .* - [F]
ซึ่งวิธีการทางานจะคล้ายกับ 2.1 แต่ระบบจะไม่สามารถบันทึก Log ของ Request
Range ที่เกิน 5 ช่วงข้อมูลเอาไว้ได้
หมายเหตุ วิธีการจากัดจานวน Request Range ที่กาหนดไว้เป็น 5 ช่วง ใน
configuration ข้างต้น อาจเปลี่ยนแปลงได้ตามความเหมาะสม เพราะ
application บางชนิด เช่น e-book reader หรือ video streaming player อาจ
มีการใช้งาน http range request ที่ซับซ้อน ซึ่งต้องการการกาหนดค่า range
มากกว่า 5 ช่วง หากกาหนดค่า range ไว้ต่าเกินไป อาจทาให้ application
ดังกล่าว มีปัญหาในการใช้งานได้
3. สาหรับวิธีการทางเลือกอื่น นอกเหนือการจากัดจานวน Request Range คือ
การจากัดความยาวของ HTTP Request Header ให้มีขนาดเหมาะสม เช่น
LimitRequestFieldSize 200
เป็น การจากัดความยาวของ header ให้ไม่เกิน 200 bytes แต่อาจมีผลกระทบกับ
Header อื่นๆ ที่มีขนาดใหญ่ เช่น cookie ได้ หรือยกเลิก Byte Range Request
ด้วย mod headers โดยตั้ง configuration ดังนี้
RequestHeader unset Range
10.4 แหล่งข้อมูลอื่นๆ ที่เกี่ยวข้อง
1. http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2011-
3192
2. http://www.kb.cert.org/vuls/id/405811
112
3. http://blog.spiderlabs.com/2011/08/mitigation-of-apache-
range-header-dos-attack.html
4. http://www.apache.org/dist/httpd/CHANGES_2.2.20
10.5 เอกสารอ้างอิง
[10-1] http://en.wikipedia.org/wiki/Byte_serving
[10-2] http://tools.ietf.org/html/rfc2616#section-14.35
[10-3] https://mail-archives.apache.org/mod_mbox/httpd-
announce/201108.mbox/%3C20110824161640.122D387DD@m
inotaur.apache.org%3E
113
11. เซิร์ฟเวอร์ในโครงการ Kernel.org ถูกเจาะ
ระบบ
ผู้เรียบเรียง: เสฏฐวุฒิ แสนนาม
วันที่ประกาศ: 6 ก.ย. 2554
ปรับปรุงล่าสุด: 6 ก.ย. 2554
ประเภทภัยคุกคาม: Intrusion
11.1 ข้อมูลทั่วไป
ทีมงาน Kernel.org ซึ่งเป็นหน่วยงานที่ดูแล Linux Kernel ได้รายงานว่า
เซิร์ฟเวอร์จานวนหลายเครื่องที่ใช้ในการดูแลและแจกจ่ายซอร์สโค้ดของระบบ
ปฏิบัติการ Linux ถูกเจาะระบบและใช้สิทธิของ root เพื่อฝัง Malware [11-1]
การโจมตีครั้งนี้ถูกตรวจพบ เมื่อวันที่ 28 สิงหาคม 2554 ทีมงานพบว่าระบบถูก
โจมตีก่อนวันที่ 12 สิงหาคม 2554 ผู้บุกรุกเข้าสู่เครื่องเซิร์ฟเวอร์ที่ชื่อ Hera ด้วย
บัญชีผู้ใช้ที่ขโมยมา และเปลี่ยนสิทธิของผู้ใช้ให้เป็นสิทธิของผู้ดูแลระบบ (root)
ซึ่งวิธีการที่ใช้ในการเปลี่ยนสิทธินั้นยังอยู่ระหว่างการวิเคราะห์ หลังจากได้รับสิทธิ
ของ root แล้วผู้บุกรุกก็ได้แก้ไขไฟล์ที่เกี่ยวข้องกับการกาหนดค่า ssh (เช่น
openssh, openssh-server และ openssh-clients) ของเครื่องแม่ข่ายของ
kernel.org แล้วทาการฝังโทรจันไว้เพื่อให้ทางานทุกครั้งที่เริ่มระบบ ในขณะนี้ ทาง
ทีมงาน Kernel.org ได้ทาการปิดระบบลงทั้งหมด เพื่อทาการสารองข้อมูลและ
ตรวจสอบข้อมูลการโจมตี หลังจากนั้น จะทาการติดตั้งระบบปฏิบัติการใหม่ทั้งหมด
[11-2] [11-3]
114
11.2 ผลกระทบ
ผู้ใช้ที่ดาวน์โหลดซอร์สโค้ดของ Linux จาก Kernel.org ตั้งแต่วันที่ 12 สิงหาคม
2554 อาจได้รับไฟล์ที่ถูกปลอมแปลงเพื่อสร้างความเสียหายได้
11.3 ระบบที่มีผลกระทบ
Linux Kernel เวอร์ชั่นที่พัฒนาหลังจาก วันที่ 12 สิงหาคม ถึง วันที่ 28 สิงหาคม
2554 (Kernel รุ่น 3.0.2 - 3.0.3)
11.4 วิธีการแก้ไข
ตรวจสอบลายเซ็น GPG จากซอร์สโค้ดที่ดาวน์โหลดมาจาก Kernel.org เนื่องจาก
ไฟล์อาจถูกปลอมแปลงได้ [4-4]
11.5 เอกสารอ้างอิง
[11-1] http://www.kernel.org/
[11-2] http://www.theregister.co.uk/2011/08/31/linux_kernel_
security_breach/
[11-3] http://php.webtutor.pl/en/2011/09/01/kernel-org-has-
been-hacked/
[11-4] http://kernel.org/signature.html
115
12. ระวังภัย แฮกเกอร์ออกใบรับรองปลอมของ
Google, Yahoo!, Mozilla และอื่นๆ
ผู้เรียบเรียง: เสฏฐวุฒิ แสนนาม
วันที่ประกาศ: 2 ก.ย. 2554
ปรับปรุงล่าสุด: 7 ก.ย. 2554
ประเภทภัยคุกคาม: Fraud
12.1 ข้อมูลทั่วไป
ใบรับรอง SSL (SSL Certificate) ใช้ในการยืนยันเครื่องให้บริการเว็บ ทาให้ผู้ใช้
สามารถมั่นใจได้ว่าเครื่องให้บริการที่ติดต่อด้วยนั้นเป็น เครื่องที่อ้างถึงจริง การใช้
ใบรับรองเป็นการรับรองความมั่นคงปลอดภัยของข้อมูลที่รับ-ส่งระหว่าง เครื่อง
ให้บริการและเครื่องใช้บริการด้วยการเข้ารหัสลับข้อมูล (Encryption) โดยปกติ
เมื่อผู้ใช้เข้าสู่เว็บไซต์ที่มีการเชื่อมต่อแบบ SSL (Secure Socket Layer) ที่มี
ใบรับรองอย่างถูกต้อง เบราว์เซอร์จะแสดงไอคอนรูปแม่กุญแจ และในส่วนของ
Address Bar จะแสดงที่อยู่เว็บไซต์เป็น https:// ถ้าเว็บไซต์ที่ใช้ใบรับรองไม่
ถูกต้องเบราว์เซอร์จะแสดงหน้าจอ เพื่อแจ้งเตือนว่าการรับส่งข้อมูลนี้ไม่มั่นคง
ปลอดภัย [12-1] [12-2] [12-3]
ในช่วงปลายเดือนสิงหาคมที่ผ่านมา พบว่ามีใบรับรองปลอมของเว็บไซต์ในเครือ
ของ Google เผยแพร่อยู่ในอินเทอร์เน็ต ซึ่งผู้ที่มีใบรับรองนี้สามารถสร้างเว็บไซต์
ปลอมเพื่อหลอกว่าเป็นเว็บไซต์ของ Google ได้โดยที่เบราว์เซอร์ไม่สามารถ
ตรวจสอบได้ว่าใบรับรองของเว็บไซต์ Google นี้เป็นของปลอม
ใบรับรองปลอมนี้พบว่าได้สร้างขึ้นเมื่อวันที่ 10 กรกฎาคม 2554 โดย DigiNotar
116
ซึ่งเป็นผู้ให้บริการออกใบรับรองอิเล็กทรอนิกส์ในประเทศเนเธอร์แลนด์ ทาง
DigiNotar แจ้งผ่านหน้าเว็บไซต์ว่าการออกใบรับรองปลอมนี้เกิดจากการถูกเจาะ
ระบบที่ใช้ ในการออกใบรับรอง นอกจากนี้ยังพบว่า ผู้ที่ปลอมใบรับรองนี้ ได้สร้าง
ใบรับรองปลอมให้กับโดเมนต่างๆ นอกจาก *.google.com อีกด้วย เช่น โดเมนใน
เครือของ Yahoo!, Mozilla, Wordpress และ Tor Project ปัจจุบันทาง
DigiNotar ได้ออกใบประกาศเพิกถอน (Revoke Certificate) ใบรับรองปลอมแล้ว
แต่ยังไม่สามารถยืนยันได้ว่าจะสามารถเพิกถอนใบรับรองปลอมได้ทั้งหมด [12-4]
12.2 ผลกระทบ
ผู้ใช้งานที่เข้าสู่เว็บไซต์หลอกลวง จะเข้าใจว่าเว็บไซต์นั้นเป็นของ Google, Yahoo!,
Mozilla หรือบริการอื่นๆ เนื่องจากเบราว์เซอร์ไม่มีการแจ้งเตือนว่าใบรับรองไม่
ถูกต้อง ทาให้อาจเปิดเผยข้อมูลส่วนบุคคลที่ใช้ในบริการดังกล่าว เช่น ชื่อผู้ใช้หรือ
รหัสผ่าน นอกจากนี้ยังมีโอกาสที่จะเกิดความเสี่ยงด้านความมั่นคงปลอดภัยอื่นๆ
จากเว็บไซต์หลอกลวงดังกล่าวได้
เช่น ผู้ใช้ที่ดาวน์โหลดโปรแกรมที่มีการรับรองว่ามาจาก Google จะไม่สามารถ
ตรวจสอบได้ว่า โปรแกรมนี้ถูกรับรองโดย Google จริงๆ หรือถูกรับรองโดยการใช้
ใบรับรองปลอม
12.3 ระบบที่มีผลกระทบ
ระบบปฏิบัติการและเบราว์เซอร์ต่างๆ ที่มีการใช้งานใบรับรองของ DigiNotar เช่น
• Microsoft Windows และ Internet Explorer ทุกรุ่น
• Mac OS X และ Safari ทุกรุ่น
• Mozilla Firefox รุ่นต่ากว่า 6.0.1
117
12.4 วิธีการแก้ไข
• Microsoft Windows และ Internet Explorer ปัจจุบันทาง Microsoft
ได้ออกเครื่องมืออัพเดทเพื่อถอดถอนใบรับรองปลอมออกจากระบบแล้ว
ผู้ใช้สามารถติดตั้งโปรแกรมอัพเดทอัตโนมัติได้ผ่านทาง Windows
Update หรือติดตั้งด้วยตนเองที่
http://support.microsoft.com/kb/2328240 [12-6]
• Google Chrome สามารถตรวจสอบใบรับรองปลอมได้ และได้ออก
อัพเดทรุ่น 13.0.782.218 ที่เพิกถอนใบรับรองปลอมแล้ว [12-5]
• Opera จะตรวจสอบข้อมูลกับเว็บไซต์ที่รายงานเรื่องใบรับรองปลอมอยู่
แล้ว ดังนั้นจึงไม่จาเป็นต้องอัพเดท [12-8]
• Mozilla Firefox ออกอัพเดทรุ่น 6.0.1 ที่เพิกถอนใบรับรองปลอมแล้ว ใน
กรณีที่ไม่สามารถติดตั้งอัพเดทรุ่นใหม่ได้ ผู้ใช้ Mozilla Firefox สามารถ
ลบใบรับรองของ DigiNotar ได้ดังนี้ [12-3]
1. ที่ด้านบนของหน้าต่าง Firefox ให้คลิกที่ปุ่ม Firefox (เมนู Tools ใน
Windows หรือเมนู Edit ใน Linux) จากนั้นคลิก Preferences
2. คลิกที่แท็บ Advance
3. เลือกแท็บ Encryption
4. คลิก View Certificates
5. ในหน้าต่าง Certificate Manages ให้คลิกที่แท็บ Authorities
6. เลื่อนลงไปจนถึงส่วนของ DigiNotar เลือก DigiNotar Root CA
7. คลิกที่ Delete or Distrust...
8. คลิก OK เพื่อยืนยันการลบใบรับรอง
• Mac OS X และ Safari ไม่สามารถตรวจสอบใบรับรองปลอมได้ ผู้ใช้
จาเป็นต้องใช้โปรแกรม Keychain Access เพื่อลบใบรับรองดังกล่าวออก
จากระบบด้วยตนเอง ซึ่งสามารถทาได้ดังนี้ [12-7] [12-9]
118
1. เปิดโปรแกรม Keychain Access
2. ในช่องค้นหา พิมพ์คาว่า DigiNotar
3. คลิกขวาที่ DigiNotar Root CA เลือก Delete
4. คลิกปุ่ม Delete เพื่อยืนยันการลบ
ผู้ใช้สามารถตรวจสอบเบราว์เซอร์ที่ตนเองใช้อยู่ ว่าได้ถูกเพิกถอนใบรับรองของ
DigiNotar แล้วหรือยัง ด้วยการเข้าไปตรวจสอบที่เว็บไซต์ https://diginotar.com/
12.5 เอกสารอ้างอิง
[12-1] http://www.theregister.co.uk/2011/08/29/fraudulent_
google_ssl_certificate/
[12-2] http://blog.mozilla.com/security/2011/08/29/fraudulent-
google-com-certificate/
[12-3] http://support.mozilla.com/en-US/kb/deleting-diginotar-ca-
cert
[12-4] http://www.vasco.com/company/press_room/news_
archive/2011/news_diginotar_reports_security_incident.aspx
[12-5] http://googlechromereleases.blogspot.com/2011/08/
stable-update.html
[12-6] http://www.microsoft.com/technet/security/advisory/
2607712.mspx
[12-7] http://arstechnica.com/apple/news/2011/09/safari-users-still-
susceptible-to-attacks-using-fake-diginotar-certs.ars
[12-8] http://my.opera.com/rootstore/blog/2009/05/15/diginotar-ev-
enabled-and-new-verisign-roots
[12-9] http://www.tuaw.com/2011/09/01/how-to-get-rid-of-diginotar-
digital-certificates-from-os-x/
119
[12-10] http://www.net-security.org/secworld.php?id=11555
120
121
13. APT ภัยคุกคามใหม่หรือแค่ชื่อใหม่ของภัย
เดิม
ผู้เรียบเรียง: เสฏฐวุฒิ แสนนาม
วันที่เผยแพร่: 9 ก.ย. 2554
ปรับปรุงล่าสุด: 9 ก.ย. 2554
APT หรือ Advanced Persistent Threat คือประเภทหนึ่งของอาชญากรรมทาง
คอมพิวเตอร์ ที่มีเป้าหมายเพื่อโจมตีหน่วยงานที่มีข้อมูลสาคัญ เช่น หน่วยงานทาง
ทหารหรือหน่วยงานทางด้านความมั่นคงปลอดภัยของประเทศ หน่วยงานทาง
การเมือง หรือองค์กรธุรกิจขนาดใหญ่ รูปแบบการโจมตีแบบ APT ส่วนใหญ่
ผู้ดาเนินการมักจะเป็นกลุ่มบุคคลมากกว่าเป็นการดาเนินการของบุคคลใดบุคคล
หนึ่ง ซึ่งอาจเป็นไปได้ว่ากลุ่มบุคคลนี้มักจะมีองค์กรหรือรัฐบาลของประเทศใด
ประเทศหนึ่งคอยให้การสนับสนุนอยู่เบื้องหลังการโจมตีมีเป้าหมายที่แน่ชัด ผู้โจมตี
มักพยายามแฝงตัวอยู่ในระบบของเป้าหมายให้ได้นานที่สุด และใช้ทุกวิถีทางเพื่อให้
การโจมตีสาเร็จผล
คานิยามของ APT นั้นค่อนข้างหลากหลาย แต่สามารถสรุปคร่าวๆ ได้ดังนี้ [13-1]
[13-2]
Advanced - ผู้ที่โจมตี มีความสามารถและมีทรัพยากรที่พร้อมสาหรับการโจมตี
วิธีการโจมตีจะใช้เครื่องมือและเทคนิคหลายอย่างด้วยกัน ซึ่งเป็นไปได้ตั้งแต่การใช้
ความรู้ทางคอมพิวเตอร์ขั้นสูงเพื่อเจาะระบบ ไปจนถึงการใช้เทคนิคพื้นฐาน เช่น
Social Engineering ซึ่งเป็นการโจมตีโดยอาศัยหลักจิตวิทยาเพื่อหลอกลวงคนให้
เปิดเผยข้อมูลสาคัญ [13-3]
Persistent - การโจมตีจะเป็นแบบค่อยเป็นค่อยไปและสม่าเสมอ เนื่องจากผู้โจมตี
ต้องแฝงเข้าไปอยู่ในระบบโดยไม่ให้เป้าหมายรู้ตัว เพื่อสร้างความเสียหายหรือ
122
รวบรวมข้อมูลที่ต้องการให้ได้มากที่สุด
Threat – จัดเป็นภัยคุกคามที่เกิดขึ้นกับระบบเทคโนโลยีสารสนเทศและการ
สื่อสาร
13.1 ตัวอย่างการโจมตีแบบ APT
Operation Aurora - Google ประกาศเมื่อวันที่ 12 มกราคม 2553 ว่าถูกโจมตี
ด้วยวิธี APT ตั้งแต่ช่วงกลางปี 2552 ถึงเดือนธันวาคม 2552 โดยที่มาของการ
โจมตีมาจากประเทศจีน [13-4] [13-5] สาเหตุการโจมตีคาดว่าเกิดจากกลุ่มผู้โจมตี
ไม่พอใจที่ Google ไม่ยอมรับเงื่อนไขของรัฐบาลจีนว่าให้เซ็นเซอร์ผลการค้นหา
ข้อมูลจากเว็บไซต์ Google ประเทศจีน จากการสืบสวนพบว่า ผู้โจมตีใช้ช่องโหว่ที่
ค้นพบแต่ยังไม่มีการแก้ไข (Zero-day) ของ Internet Explorer โดยมีเป้าหมาย
คือข้อมูลใน Gmail ของนักสิทธิมนุษยชนในประเทศจีน ผลจากการโจมตีครั้งนี้ทา
ให้ Google ตัดสินใจถอนตัวและย้ายสานักงานใหญ่ออกจากประเทศจีน
13.2 ภัยคุกคามใหม่หรือแค่ชื่อใหม่ของภัยเดิม
ผู้เชี่ยวชาญด้านความมั่นคงปลอดภัยบางกลุ่มไม่เห็นด้วยกับการจัดให้ APT เป็นภัย
คุกคามประเภทใหม่ เนื่องจากเห็นว่าเป็นการสร้างคาใหม่เพื่อหวังผลทางการตลาด
ของหน่วยงานที่เกี่ยวข้องกับระบบความมั่นคงปลอดภัย [13-6] [13-7] ด็อกเตอร์
Anup Ghosh ผู้ก่อตั้งบริษัท Invincea ซึ่งเป็นบริษัทพัฒนาซอฟต์แวร์เพิ่มความ
ปลอดภัยให้กับเบราว์เซอร์และไฟล์เอกสาร ได้ให้สัมภาษณ์กับเว็บไซต์
eWEEK.com ว่าการโจมตีแบบ APT นั้นไม่ใช่การโจมตีรูปแบบใหม่แต่อย่างใด เป็น
แค่การอาศัยช่องโหว่ของระบบที่ไม่ได้รับการปรับปรุงเรื่องความมั่นคงปลอดภัย
และจากความไม่ระมัดระวังของผู้ดูแลระบบที่ไม่ตรวจสอบว่ามีเหตุการณ์ผิดปกติ
เกิดขึ้น [13-8]
123
วิธีการโจมตีแบบ APT นั้นมีการปฏิบัติมานานแล้ว ตัวอย่างเช่น ในยุคสงครามเย็น
สหภาพโซเวียตได้ทาการส่งสายลับ KGB เข้าไปแฝงตัวในเขตแดนของศัตรูเพื่อขโมย
ข้อมูล [13-9] ซึ่งการโจมตีแบบ APT นั้นก็ใช้หลักการเดียวกัน เพียงแต่การนาวิธีนี้
มาใช้เพื่อโจมตีระบบคอมพิวเตอร์นั้นเพิ่งจะมีขึ้น ดังนั้น การโจมตีแบบ APT จึงเป็น
ภัยคุกคามในรูปแบบเดิม แต่เป็นการโจมตีที่เพิ่งนามาใช้ในระบบคอมพิวเตอร์
13.3 เอกสารอ้างอิง
[13-1] http://en.wikipedia.org/wiki/Advanced_persistent_threat
[13-2] http://searchsecurity.techtarget.com/definition/advanced-
persistent-threat-APT
[13-3] http://th.wikipedia.org/wiki/วิศวกรรมสังคม
[13-4] http://en.wikipedia.org/wiki/Operation_Aurora
[13-5] http://googleblog.blogspot.com/2010/01/new-approach-to-
china.html
[13-6] http://www.greebo.net/2010/02/03/advanced-persistent-
threat-risk-management-by-a-new-name/
[13-7] http://kevinfielder.wordpress.com/2011/07/25/apt-new-threat-
or-just-a-new-name-and-just-what-does-it-mean/
[13-8] http://www.eweek.com/c/a/Security/Advanced-CyberAttack-
Claims-Are-Usually-False-Overhyped-520523/
[13-9] http://en.wikipedia.org/wiki/KGB
124
125
14. การแก้ไขช่องโหว่เรื่องความมั่นคงปลอดภัย
ใน Adobe Reader และ Adobe Acrobat
ผู้เรียบเรียง: ทีมไทยเซิร์ต
วันที่ประกาศ: 15 ก.ย. 2554
ปรับปรุงล่าสุด: 15 ก.ย. 2554
หมายเลขช่องโหว่: APSB11-24 (รหัสอ้างอิงของ Adobe)
ประเภทภัยคุกคาม: Intrusion
14.1 ข้อมูลทั่วไป
เมื่อวันที่ 13 กันยายน 2554 Adobe ได้เผยแพร่ซอฟต์แวร์เพื่อแก้ไขช่องโหว่เรื่อง
ความมั่นคงปลอดภัยสาหรับ โปรแกรม Adobe Reader และ Adobe Acrobat
โดยมีการแก้ไขช่องโหว่ทั้งหมด 13 จุด ซึ่งมีหลายช่องโหว่ที่สามารถถูกผู้ไม่หวังดีใช้
เป็นช่องทางทาให้เกิดความเสียหายกับซอฟต์แวร์ Adobe Reader/Acrobat หรือ
ใช้เป็นช่องทางในการควบคุมเครื่องคอมพิวเตอร์จากระยะไกลเพื่อสร้างความ
เสียหายกับระบบปฏิบัติการหรือข้อมูลต่างๆบนเครื่องคอมพิวเตอร์ที่ถูกโจมตีได้
[14-1]
14.2 ผลกระทบ
รายละเอียดของช่องโหว่ทั้ง 13 จุดมีดังนี้
• CVE-2011-1353 - เปลี่ยนสิทธิของผู้ใช้ให้เป็นสิทธิของผู้ดูแลระบบ
(เฉพาะ Adobe Reader X (21.x) บน Windows เท่านั้น)
• CVE-2011-2431 - หลบเลี่ยงการตรวจสอบความมั่นคงปลอดภัยเพื่อ
ประมวลผลคาสั่งที่ไม่พึงประสงค์ได้
126
• CVE-2011-2432 - ช่องโหว่ Buffer overflow ใน U3D TIFF Resource
สามารถถูกใช้เพื่อประมวลผลคาสั่งที่ไม่พึงประสงค์ได้
• CVE-2011-2433 - ช่องโหว่ Heap overflow สามารถถูกใช้เพื่อ
ประมวลผลคาสั่งที่ไม่พึงประสงค์ได้
• CVE-2011-2434 - ช่องโหว่ Heap overflow สามารถถูกใช้เพื่อ
ประมวลผลคาสั่งที่ไม่พึงประสงค์ได้
• CVE-2011-2435 - ช่องโหว่ Buffer overflow สามารถถูกใช้เพื่อ
ประมวลผลคาสั่งที่ไม่พึงประสงค์ได้
• CVE-2011-2436 - ช่องโหว่ Heap overflow ในไลบรารี Adobe image
parsing สามารถถูกใช้เพื่อประมวลผลคาสั่งที่ไม่พึงประสงค์ได้
• CVE-2011-2437 - ช่องโหว่ Heap overflow สามารถถูกใช้เพื่อ
ประมวลผลคาสั่งที่ไม่พึงประสงค์ได้
• CVE-2011-2438 - ช่องโหว่ Stack overflow ในไลบรารี Adobe image
parsing library สามารถถูกใช้เพื่อประมวลผลคาสั่งที่ไม่พึงประสงค์ได้
• CVE-2011-2439 - ช่องโหว่ Memory leak (จองพื้นที่ของหน่วยความจา
แล้วไม่คืน) สามารถถูกใช้เพื่อประมวลผลคาสั่งที่ไม่พึงประสงค์ได้
• CVE-2011-2440 - ช่องโหว่ use-after-free (เรียกใช้งานตัวแปรที่ถูกคืน
ค่าไปแล้ว) สามารถถูกใช้เพื่อประมวลผลคาสั่งที่ไม่พึงประสงค์ได้
• CVE-2011-2441 - ช่องโหว่ Stack overflow ในไลบรารี CoolType.dll
สามารถถูกใช้เพื่อประมวลผลคาสั่งที่ไม่พึงประสงค์ได้
• CVE-2011-2442 – ช่องโหว่จากการประมวลผลตรรกะที่ผิดพลาด
สามารถถูกใช้เพื่อประมวลผลคาสั่งที่ไม่พึงประสงค์ได้
14.3 ระบบที่มีผลกระทบ
• Adobe Reader X (21.1) และเวอร์ชั่นต่ากว่า 10.x สาหรับ Windows
127
และ Macintosh
• Adobe Reader 9.4.5 และเวอร์ชั่นต่ากว่า 9.x สาหรับ Windows,
Macintosh และ UNIX
• Adobe Reader 8.3 และเวอร์ชั่นต่ากว่า 8.x สาหรับ Windows และ
Macintosh
• Adobe Acrobat X (21.1) และเวอร์ชั่นต่ากว่า 10.x สาหรับ Windows
และ Macintosh
• Adobe Acrobat 9.4.5 และเวอร์ชั่นต่ากว่า 9.x สาหรับ Windows และ
Macintosh
• Adobe Acrobat 8.3 และเวอร์ชั่นต่ากว่า 8.x สาหรับ Windows และ
Macintosh
14.4 วิธีการแก้ไข
ผู้ใช้ซอฟต์แวร์ Adobe Reader และ Adobe Acrobat สามารถแก้ไขปัญหาได้ 2
วิธีคือ
1. ปรับปรุงซอฟต์แวร์ให้เป็นเวอร์ชั่นล่าสุดโดยการ
1.1 เปิดโปรแกรม Adobe Reader หรือ Adobe Acrobat
1.2 คลิกที่เมนู Help เลือกคาสั่ง Check for updates เพื่อให้โปรแกรม
ตรวจสอบและปรับรุ่นโดยอัตโนมัติ
2. ติดตั้งซอฟต์แวร์ Adobe Reader/Acrobat เวอร์ชั่น 10.1.1 หรือใหม่กว่า ซึ่ง
เป็นโปรแกรมที่ได้รับการแก้ไขช่องโหว่แล้ว สามารถดาวน์โหลดได้ตามลิงก์ด้านล่าง
128
Adobe Reader
ผู้ใช้ Adobe Reader บน Windows ดาวน์โหลดโปรแกรมได้ที่
http://www.adobe.com/support/downloads/product.jsp?product=10&
platform=Windows
ผู้ใช้ Adobe Reader บน Macintosh ดาวน์โหลดโปรแกรมได้ที่
http://www.adobe.com/support/downloads/product.jsp?product=10&
platform=Macintosh
Adobe Acrobat
ผู้ใช้ Acrobat Standard และ Pro บน Windows ดาวน์โหลดโปรแกรมได้ที่
http://www.adobe.com/support/downloads/product.jsp?product=1&p
latform=Windows
ผู้ใช้ Acrobat Pro Extended บน Windows ดาวน์โหลดโปรแกรมได้ที่
http://www.adobe.com/support/downloads/product.jsp?product=1&p
latform=Windows
ผู้ใช้ Acrobat 3D บน Windows ดาวน์โหลดโปรแกรมได้ที่
http://www.adobe.com/support/downloads/product.jsp?product=1&p
latform=Windows
ผู้ใช้ Acrobat Pro บน Macintosh ดาวน์โหลดโปรแกรมได้ที่
http://www.adobe.com/support/downloads/product.jsp?product=1&p
latform=Macintosh
สาหรับโปรแกรม Adobe Reader 9.4.6 บน UNIX ที่ได้รับการแก้ไขช่องโหว่แล้ว
จะเผยแพร่ให้ดาวน์โหลดในวันที่ 7 พฤศจิกายน 2554
129
หมายเหตุ: การสนับสนุนสาหรับซอฟต์แวร์ Adobe Reader 8.x และ Adobe
Acrobat 8.x บน Windows และ Macintosh จะสิ้นสุดลงในวันที่ 3 พฤศจิกายน
2554 ทาง Adobe แนะนาให้ผู้ใช้เปลี่ยนมาใช้ซอฟต์แวร์รุ่นล่าสุดเพื่อแก้ไขปัญหา
[14-2]
14.5 เอกสารอ้างอิง
[14-1] http://www.adobe.com/support/security/bulletins/apsb11-
24.html
[14-2] http://blogs.adobe.com/adobereader/2011/09/adobe-reader-
and-acrobat-version-8-end-of-support.html
130
131
15. Man-in-the-Middle 101
ผู้เรียบเรียง: เสฏฐวุฒิ แสนนาม
วันที่เผยแพร่: 16 ก.ย. 2554
ปรับปรุงล่าสุด: 30 ก.ย. 2554
การโจมตีแบบ Man-in-the-Middle (MitM) หมายถึง การที่มีผู้ไม่หวังดีเข้ามา
แทรกกลางในการสนทนาระหว่างคน 2 คน แล้วทาหน้าที่เป็นตัวกลางในการรับส่ง
ข้อมูลของคู่สนทนา โดยที่คู่สนทนาไม่สามารถทราบได้ว่ามีผู้อื่นเป็นผู้รับและส่งสาร
ต่อกับคู่สนทนาของตนอยู่ ทาให้ผู้ไม่หวังดีสามารถใช้รูปแบบการโจมตีในลักษณะนี้
ในการดักรับหรือเปลี่ยนแปลงข้อมูลที่ทั้ง 2 ฝั่งสื่อสารกันอยู่ได้ ซึ่งการโจมตีใน
รูปแบบนี้ถูกนามาประยุกต์ใช้กับการสื่อสารต่างๆ ในระบบคอมพิวเตอร์
ตัวอย่างเช่น การโจมตีแบบ MitM ในระบบเครือข่าย Wi-Fi ทาให้ผู้ไม่หวังดี
สามารถแทรกแซงการเชื่อมต่อระหว่างเครื่องคอมพิวเตอร์และ อุปกรณ์ Wi-Fi
Access Point เพื่ออ่าน ปลอมแปลง หรือแก้ไขข้อมูลที่รับส่งระหว่างคอมพิวเตอร์
ทั้ง 2 เครื่องนั้นได้ ซึ่งการเข้ารหัสลับข้อมูลในการสื่อสารเพียงอย่างเดียวไม่สามารถ
ป้องกันการโจมตีในรูปแบบนี้ได้เสมอไป [15-1]
ถ้าผู้รับและผู้ส่งสารไม่ได้มีกลไกใดๆ ในการยืนยันคู่สนทนาได้อย่างถูกต้องการโจมตี
แบบ MitM สามารถใช้โจมตีการสื่อสารข้อมูลของระบบต่างๆ ในเครือข่าย
อินเทอร์เน็ตได้โดยง่าย เนื่องจากรูปแบบและมาตรฐานของการสื่อสารข้อมูลต่างๆ
ในระบบอินเทอร์เน็ตไม่ได้ถูกออกแบบมาให้มีการรักษาความมั่นคงปลอดภัยของ
ข้อมูล เช่น การสื่อสารข้อมูลผ่านโพรโทคอล HTTP สาหรับเรียกดูข้อมูลเว็บไซต์
ต่างๆ ซึ่งส่วนใหญ่จะไม่มีการเข้ารหัสลับ ทาให้ผู้โจมตีสามารถใช้โปรแกรมสาหรับ
ดักจับข้อมูลในระบบเครือข่าย เช่น โปรแกรม WireShark หรือ TCPDump ได้
ถึงแม้ว่าในปัจจุบัน การเรียกดูข้อมูลเว็บไซต์ที่สื่อสารผ่านโพรโทคอล HTTP จะถูก
ออกแบบให้รองรับการเข้ารหัสลับข้อมูลด้วยการเชื่อมต่อผ่านโพรโทคอล HTTPS
132
ซึ่งใช้การเข้ารหัสลับข้อมูลด้วยโพรโทคอล SSL [15-7] แต่ยังไม่สามารถป้องกันการ
โจมตีแบบ MitM ได้ถ้าผู้ใช้งานไม่ได้ระมัดระวังในการตรวจสอบว่าเป็นเซิร์ฟเวอร์ที่
ให้บริการเว็บไซต์จริงหรือเป็นเครื่องที่เป็น MitM ด้วยวิธีการตรวจสอบใบรับรอง
SSL (SSL Certificate) ในกรณีนี้ผู้ใช้งานอาจจะถูกหลอกลวงให้ติดต่อกับเครื่องที่
เป็น MitM ผ่านโพรโทคอล HTTPS และในขณะเดียวกันข้อมูลหรือบริการที่ผู้ใช้
เรียกใช้งานกับเครื่อง MitM นี้ จะถูกส่งต่อผ่านโพรโทคอล HTTPS ไปยังเซิร์ฟเวอร์
ที่ให้บริการเว็บไซต์จริงเพื่อเรียกข้อมูลหรือบริการและส่ง ต่อผ่านกลับไปให้ผู้ใช้งาน
เพราะฉะนั้น ในการเรียกดูเว็บไซต์ผ่านเครื่อง MitM ด้วยโพรโทคอล HTTPS นี้
ผู้ใช้งานจะไม่สังเกตความผิดปกติกับข้อมูลหรือบริการที่เรียกใช้งานเมื่อ เทียบกับ
การเรียกจากเว็บไซต์จริงแต่อย่างใด ในบางกรณีผู้โจมตีสามารถหลอกเบราว์เซอร์
ไม่ให้แจ้งเตือนว่าใบรับรองไม่ถูกต้องได้ โดยการใช้ใบรับรองปลอมที่ได้มาจากการ
เจาะระบบของผู้ให้บริการออกใบรับรองอิเล็กทรอนิกส์ CA (Certificate
Authorities) ที่ได้รับการยอมรับในระดับสากลได้ [15-2] นอกจากนี้ ยังมีการทา
SSL Strip ซึ่งเป็นการดัก Request/Response ระหว่างเครื่องผู้ใช้งานกับเครื่อง
เซิร์ฟเวอร์ ในกรณีที่ผู้ใช้เข้าเว็บไซต์ผ่านโพรโทคอล HTTP แต่เว็บไซต์นั้นต้องการ
การเชื่อมต่อแบบ SSL จึงส่งคาร้องขอให้ผู้ใช้เรียก URL ที่เป็น HTTPS ซึ่งผู้โจมตีก็
จะเข้ามาเป็นตัวกลางในการเชื่อมต่อ โดยหลอกเครื่องผู้ใช้ว่าให้เรียก URL เป็น
HTTP ตามเดิม และหลอกเซิร์ฟเวอร์ว่าผู้ใช้ได้เชื่อมต่อผ่าน HTTPS แล้ว ทาให้ผู้
โจมตีสามารถรู้ข้อมูลทุกอย่างที่รับส่งระหว่างผู้ใช้กับเครื่องเซิร์ฟเวอร์ [15-8]
ปัจจุบันได้มีการใช้รูปแบบ Man-in-the-Middle ไปพัฒนาการโจมตีในรูปแบบใหม่
ได้แก่ Man-in-the-Browser และ Man-in-the-Mailbox ซึ่งแต่ละแบบก็ใช้วิธีการ
และได้ผลลัพธ์ที่แตกต่างกันไป
15.1 Man-in-the-Browser
การโจมตีแบบ Man-in-the-Browser (MitB) มีความแตกต่างจากการโจมตีแบบ
MitM คือ การโจมตีแบบ MitB เกิดจากโทรจันที่ฝังตัวอยู่ในเบราว์เซอร์ คอยดักจับ
และแก้ไขหน้าเว็บไซต์หรือข้อมูลที่มีการรับส่ง โดยที่ทางฝั่งผู้ใช้หรือฝั่งผู้ให้บริการไม่
133
รู้ว่าข้อมูลถูกแก้ไข ซึ่งโดยส่วนมากแล้วการโจมตีด้วยวิธีนี้จะมุ่งเน้นไปที่เว็บไซต์ที่
เกี่ยวข้องกับสถาบันการเงิน เช่น เว็บไซต์ของธนาคาร [15-3] การโจมตีแบบ MitB
สามารถดักจับข้อมูลได้ทุกอย่าง ไม่ว่าเว็บไซต์นั้นจะใช้วิธีเข้ารหัสลับด้วยโพรโทคอล
SSL ก็ตาม เพราะโทรจันที่ฝังอยู่ในเบราว์เซอร์จะใช้วิธีดักจับข้อมูลการเข้าระบบ
เช่น ชื่อผู้ใช้หรือรหัสผ่านก่อนที่เบราว์เซอร์จะเอาข้อมูลนั้นมาเข้ารหัสลับและ
ส่งออกไป [15-4] ตัวอย่างโปรแกรมที่เป็นการโจมตีแบบ MitB เช่น Zeus, Zbot,
URLZone, SpyEye [15-5]
15.2 Man-in-the-Mailbox
การโจมตีแบบ Man-in-the-Mailbox (MitMb) เป็นการโจมตีด้วยวิธี MitM แบบ
ล่าสุดที่เพิ่งค้นพบ โดยอาศัยความผิดพลาดที่เกิดจากการพิมพ์ที่อยู่อีเมลผิดพลาด
เช่น การไม่ได้พิมพ์ . ในระหว่างชื่อโดเมนขององค์กรที่มีความน่าจะเป็นที่อาจจะ
เกิดขึ้นได้ ซึ่งผู้โจมตีจะสร้างระบบเพื่อรับอีเมลที่เกิดความผิดเหล่านี้ไว้สาหรับใช้ใน
การโจมตีในรูปแบบ MitMb
การโจมตีแบบ MitMb นั้นจะเกิดขึ้นเมื่อมีผู้ส่งอีเมลจากหน่วยงานหนึ่งไปยังอีก
หน่วยงานหนึ่ง โดยที่ผู้ส่งนั้นพิมพ์ที่อยู่อีเมลผิด เช่น ผู้ใช้จาก @th.biz.com
ต้องการส่งอีเมลหาผู้ใช้ที่อยู่ใน @th.bank.com แต่พิมพ์ที่อยู่อีเมลผิดกลายเป็น
@thbank.com อีเมลฉบับนั้นจะถูกส่งไปยังอีเมลของผู้โจมตี จากนั้นผู้โจมตีจะ
ปรับแต่งเนื้อหาของอีเมล รวมถึงแก้ไขส่วนหัวของอีเมล (E-mail header) ว่าถูกส่ง
มาจาก @thbiz.com แล้วส่งต่ออีเมลฉบับนั้นไปยัง @th.bank.com ซึ่งเป็นผู้รับที่
แท้จริง เมื่อทาง @th.bank.com ตอบอีเมลกลับมา อีเมลฉบับนั้นก็จะถูกส่งมาที่ที่
อยู่อีเมลของผู้โจมตี จากนั้นผู้โจมตีก็จะแก้ไขเนื้อหาและส่วนหัวของอีเมลแล้ว
ส่งกลับไปให้ผู้ส่งตัวจริงอีกครั้งหนึ่ง
134
รูปที่ 25 (15-1) ภาพประกอบอ้างอิงจาก nakedsecurity
นักวิจัยพบว่า จากการทดลองจดชื่อโดเมนจานวน 30 โดเมน แล้วรอรับอีเมลที่ส่ง
ผิด ปรากฏว่าภายในเวลา 6 เดือน มีอีเมลที่พิมพ์ที่อยู่อีเมลผิดแล้วถูกส่งออกมา
มากกว่า 120,000 ฉบับ ซึ่งเนื้อหาบางส่วนในอีเมลเหล่านั้นเป็นความลับทางการค้า
ข้อมูลพนักงาน หรือแม้กระทั่งรหัสผ่าน [15-6]
15.3 ควรรับมืออย่างไร?
การโจมตีด้วยวิธี Man-in-the-X นั้นประสบความสาเร็จง่ายและตรวจจับได้ยาก
เนื่องจากผู้ถูกโจมตีส่วนใหญ่มักจะไม่รู้ตัวและค่อนข้างละเลยในเรื่องของความ
ปลอดภัย ดังนั้น วิธีการป้องกันที่ดีที่สุดคือสร้างความตระหนักในเรื่องของความ
ปลอดภัยให้กับผู้ใช้ เช่น ตรวจสอบความถูกต้องของใบรับรองของเว็บไซต์ทุกครั้งที่
ต้องทาธุรกรรมทางอิเล็กทรอนิกส์ หมั่นปรับปรุงโปรแกรมตรวจจับไวรัสและไม่
ติดตั้งโปรแกรมที่น่าสงสัย หรือในกรณีที่ต้องการส่งข้อมูลที่เป็นความลับผ่านทาง
อีเมลควรทาการเข้ารหัสลับข้อมูลก่อนที่จะส่งออกไป
135
15.4 เอกสารอ้างอิง
[15-1] http://en.wikipedia.org/wiki/Man-in-the-middle_attack
[15-2] https://www.owasp.org/index.php/Man-in-the-middle_attack
[15-3] http://en.wikipedia.org/wiki/Man_in_the_Browser
[15-4] https://www.owasp.org/index.php/Man-in-the-browser_attack
[15-5] http://www.entrust.com/mitb
[15-6] http://nakedsecurity.sophos.com/2011/09/12/missing-dots-
from-email-addresses-opens-20gb-data-leak/
[15-7] http://en.wikipedia.org/wiki/Https
[15-8] http://thaicomsec.citec.us/?p=739
136
137
16. Zeus Trojan (Zbot) ม้าโทรจันปล้น
ธนาคารทั่วโลก
ผู้เรียบเรียง: ศุภกรณ์ ฤกษ์ดิถีพร
วันที่เผยแพร่: 5 พ.ย. 2554
ปรับปรุงล่าสุด: 5 พ.ย. 2554
Zeus (ซุส) หรือที่รู้จักในอีกชื่อหนึ่งคือ Zbot เป็นมัลแวร์ที่โด่งดังในปี 2006
มีแหล่งกาเนิดจากยุโรปตะวันออก ถูกสร้างขึ้นเพื่อเป็นใช้เป็นเครื่องมือสาหรับ
อาชญากรในการขโมยข้อมูลสาคัญของผู้ใช้งานบริการสถาบันการเงินออนไลน์
ดังแสดงในรูปที่ 26 (16-1) และ รูปที่ 27 (16-2) ซุสสามารถแพร่กระจายได้หลาย
วิธี เช่น แนบไฟล์หรือลิงก์มากับอีเมล ฝังตัวอยู่ในช่องโหว่ของเอกสารประเภท PDF
แฝงมากับอุปกรณ์บันทึกข้อมูลภายนอก (External drive) ติดมากับซอฟต์แวร์
ละเมิดลิขสิทธิ หรือส่งต่อลิงก์ผ่านเครือข่ายสังคมออนไลน์ (Social network) เป็น
ต้น เมื่อซุสได้ติดตั้งตัวเองลงบนเครื่องคอมพิวเตอร์ของเหยื่อ เครื่องนั้นก็จะ
กลายเป็น Botnet ของซุสในทันที [16-1] ทาให้ผู้โจมตีสามารถเข้ามาโจรกรรม
ข้อมูลสาคัญภายในเครื่องคอมพิวเตอร์ของเหยื่อได้ ไม่ว่าจะหมายเลขบัญชีธนาคาร
รหัสผ่าน หรือข้อมูลอื่นๆ [16-2] นอกจากนี้ ซุสยังพยายามรวบรวมข้อมูลของ
ผู้ใช้งานที่ขโมยมาได้แล้วส่งมาเก็บไว้ที่เซิร์ฟเวอร์ของผู้โจมตี ซุสถูกขายเป็น
เครื่องมือในตลาดมืดโดยมีราคาประมาณ 3,000-4,000 ดอลลาร์สหรัฐ [16-3]
ซุสมีกระบวนการในการสั่งการและควบคุมระบบ คือ
1. รอเวลาที่เหยื่อเข้ามาทารายการธุรกรรมออนไลน์ตามช่องทางของธนาคาร
2. รายงานการดาเนินการต่างๆ ของเหยื่อไปยังหน่วยสั่งการและควบคุม
เซิร์ฟเวอร์ในระบบธนาคาร
3. หน่วยสั่งการและควบคุมระบบสั่งการให้ซุสเปลี่ยนแปลงการโอนเงินจาก
ธนาคารของเหยื่อ
138
4. ดาเนินการเปลี่ยนแปลงการโอนเงินจากธนาคารของเหยื่อโดยตรวจสอบ
ยอดเงินในบัญชี กาหนดวงเงินใหม่ให้มากที่สุดที่จะขโมยได้โดยไม่เกิน
วงเงินที่ธนาคารกาหนด จากนั้นจึงโอนเงินไปยังบัญชีเป้าหมายแล้วส่ง
ต่อไปยังบัญชีต่างประเทศของผู้ขโมย
5. รายงานผลการดาเนินการให้หน่วยสั่งการและควบคุมระบบธนาคาร
เพื่อให้ทราบว่าสาเร็จหรือล้มเหลว
ตัวอย่างการโจมตี เช่น ผู้ใช้งานต้องการชาระเงิน 100,000 บาทให้กับคนขายบ้าน
เมื่อผู้ใช้เข้าสู่ระบบออนไลน์ของธนาคาร ซุสจะเปลี่ยนจานวนเงินให้เป็นวงเงินสูงสุด
เช่น 1,000,000 บาท และเปลี่ยนให้โอนเงินไปที่บัญชีของอาชญากร จากนั้น
ธนาคารจะแจ้งว่ามีการชาระเงินมาที่เครื่องของเหยื่อ แต่ซุสจะเปลี่ยนแปลง
ข้อความเหล่านั้นให้กลายเป็นว่าโอนเงิน 100,000 บาทได้สาเร็จ ดังนั้น เหยื่อจะไม่
มีทางรู้ตัวเลยว่าเงินนั้นถูกโจรกรรมไปแล้วจนกว่าปลายทาง คือ คนขายบ้านจะแจ้ง
ว่าไม่ได้รับเงิน
รูปที่ 26 (16-1) เว็บไซต์ปลอมที่สร้างขึ้นเพื่อหลอกลวงเหยื่อ [16-4]
139
รูปที่ 27 (16-2) โดเมน .com ที่ตกเป็นเป้าหมายของซุส [16-5]
จากรายงานการรับแจ้งเหตุภัยคุกคามของศูนย์ประสานงานการรักษาความมั่นคง
ระบบคอมพิวเตอร์ประเทศไทย (ThaiCERT) ยังคงพบการแพร่กระจายของซุสที่ใช้
ในการโจมตีผู้ใช้งานบริการออนไลน์ของสถาบันการเงิน ทั้งสถาบันการเงินใน
ประเทศและต่างประเทศอยู่อย่างต่อเนื่อง ผู้ใช้งานสามารถปฏิบัติตามแนวปฏิบัติ
ของการใช้งานเครื่องคอมพิวเตอร์อย่างมั่นคงปลอดภัย เพื่อป้องกันตนเองจากภัย
คุกคามของซุสได้ดังนี้
• ติดตั้งซอฟต์แวร์ป้องกันไวรัสและอัพเดทฐานข้อมูลอย่างสม่าเสมอ เพื่อลด
ความเสี่ยงของการถูกโจมตีจากโปรแกรมไม่พึงประสงค์ต่างๆ
• อัพเดทซอฟต์แวร์ระบบปฏิบัติการ (OS) อย่างสม่าเสมอ เพื่อป้องกันช่อง
โหว่ที่สาเหตุให้สิ่งที่ไม่พึงประสงค์ใช้เป็นช่องทางเข้ามาแพร่กระจายใน
เครื่องคอมพิวเตอร์
• ไม่ควรติดตั้งหรือดาวน์โหลดโปรแกรมจากเว็บไซต์ที่ไม่น่าเชื่อถือหรือ
แม้แต่การเปิดไฟล์แนบจากอีเมลที่มีลักษณะผิดปกติ เช่น เป็นอีเมลที่มี
ข้อความเชิญชวนหรือโฆษณาชวนเชื่อว่าเราเป็นผู้ถูกคัดเลือกให้ ได้รับ
รางวัลหรือผลประโยชน์ต่างๆ หรือเป็นอีเมลของถูกส่งบุคคลที่เรารู้จักแต่
140
ใช้ภาษาหรือสานวนที่ต่างจากรูปแบบที่เคยใช้ในอดีต เป็นต้น เนื่องจาก
อีเมลเหล่านี้มักเป็นรูปแบบของอีเมลที่ใช้ในเผยแพร่โปรแกรมไม่พึง
ประสงค์
• ควรตรวจหาโปรแกรมไม่พึงประสงค์ด้วยซอฟต์แวร์ป้องกันไวรัสทุกครั้ง
ก่อนการใช้งานอุปกรณ์บันทึกข้อมูลแบบพกพา เนื่องจากอุปกรณ์เหล่านี้
มักถูกใช้เป็นช่องทางในการแพร่กระจายโปรแกรมไม่พึงประสงค์ต่างๆ
• ในกรณีที่ท่านต้องสงสัยว่าเครื่องคอมพิวเตอร์ของท่านถูกโจมตีจากซุส
ท่านสามารถขอรับความคาแนะนาในการแก้ไขได้จากศูนย์ประสานงาน
การรักษาความมั่นคงระบบคอมพิวเตอร์ประเทศไทย (ThaiCERT)
16.1 เอกสารอ้างอิง
[16-1] http://searchsecurity.techtarget.com/definition/Zeus-Trojan-
Zbot
[16-2] http://www.pcmag.com/article2/0,2817,2370013,00.asp
[16-3] http://malwaresurvival.net/2011/01/19/the-zeus-trojan-and-
popular-domains/
[16-4] http://news.cnet.com/8301-27080_3-20013246-245.html
[16-5] http://www.securelist.com/en/analysis/204792107/ZeuS_
on_the_Hunt&usg=ALkJrhiqPrhLMgBX2duUrz84p-JLWjj76Q
141
17. รู้จักและป้องกันภัยจาก Website
Defacement
ผู้เรียบเรียง: พรพรหม ประภากิตติกุล
วันที่เผยแพร่: 5 พ.ย. 2554
ปรับปรุงล่าสุด: 5 พ.ย. 2554
เว็บไซต์ถูกใช้เป็นเครื่องมือที่สาคัญของหน่วยงานต่างๆ ในการสื่อสาร ประชา-
สัมพันธ์ หรือให้บริการออนไลน์ต่างๆ กับผู้ใช้งานผ่านเครือข่ายอินเทอร์เน็ต
สาธารณะ ด้วยลักษณะของบริการเว็บไซต์ที่เปิดให้ผู้ใช้งานสามารถเข้าถึงได้อยู่
ตลอดเวลา ทาให้บริการเว็บไซต์ที่ไม่มีการรักษาความมั่นคงปลอดภัยที่ดีมีความ
เสี่ยงจากการถูกโจมตีจากผู้ไม่ประสงค์ดีได้อยู่ตลอดเวลาเช่นกัน โดยภัยคุกคาม
รูปแบบหนึ่งที่มักจะเกิดขึ้นกับบริการเว็บไซต์ คือ การโจมตีเว็บไซต์
เพื่อเปลี่ยนแปลงข้อมูลเผยแพร่หน้าเว็บ (Website Defacement) ซึ่งผู้โจมตีมี
วัตถุประสงค์เพื่อปรับเปลี่ยนหน้าเว็บไซต์แรกของเว็บไซต์เป้าหมาย หรือทั้งเว็บไซต์
จากเดิมไปเป็นหน้าเว็บไซต์ใหม่ การกระทาเช่นนี้อาจไม่ได้ก่อความเสียหายที่
รุนแรงอะไรมากนัก เพียงแต่มีความต้องการเพื่อทาลายความน่าเชื่อถือของ
หน่วยงานเจ้าของเว็บไซต์ ซึ่งในเว็บไซต์ที่ถูกโจมตีส่วนใหญ่จะปรากฏรูปภาพหรือ
ข้อความที่บ่งบอกถึงว่าเว็บไซต์ได้ถูกโจมตีได้สาเร็จ
โดยรูปแบบของการโจมตีในลักษณะ Website Defacement เป็นการโจมตีที่นิยม
มากที่สุดในหมู่ผู้โจมตีหรือแฮกเกอร์ เนื่องจากสามารถเข้าโจมตีได้ง่ายและการ
โจมตีมักได้ผลทางด้านการสูญเสียความน่าเชื่อถืออย่างรวดเร็ว รวมถึงสามารถต่อ
ยอดในการโจมตีส่วนประกอบหรือบริการอื่นๆ บนเครื่องแม่ข่ายนั้นๆ ด้วย ยิ่งหาก
ผู้พัฒนาหรือผู้ดูแลระบบไม่มีการปิดช่องโหว่ดังกล่าวแล้ว อาจทาให้ผู้โจมตีสามารถ
ทาความเสียหายซ้าแล้วซ้าเล่าจากรูปแบบเดิมๆ จนสุดท้ายอาจทาให้ถูกแจ้งเตือน
บนหน้าเว็บไซต์ของผู้ให้บริการ Search engine ต่างๆเช่น Google, Yahoo เป็น
ต้น
142
รูปที่ 28 (17-1) แสดงให้เห็นถึงการแจ้งเตือนถึงเว็บไซต์ที่ถูกโจมตีจากเว็บไซต์ Search
engine ของ Google
รูปที่ 29 (17-2) แสดงให้เห็นถึงหน้าเว็บไซต์หลักแห่งหนึ่งที่ถูก Defacement
143
วิธีการหรือเทคนิคที่ผู้โจมตีใช้ในการเข้าปรับเปลี่ยนข้อมูลเผยแพร่ต่างๆ บนหน้า
เว็บไซต์ได้มีอยู่หลายวิธี เช่น การโจมตีต่อเว็บไซต์โดยตรง หรือการโจมตีต่อ
ระบบปฏิบัติการของเครื่องที่ให้บริการเว็บไซต์จนสามารถเข้าควบคุมการทางาน
ของเครื่องบริการเว็บไซต์ (Web Server) นั้นๆ ได้ส่งผลให้ผู้โจมตีสามารถเข้า
ปรับเปลี่ยนข้อมูลในเว็บไซต์เป้าหมายได้ตามต้องการ ซึ่งในที่นี้ขอยกตัวอย่างช่อง
โหว่และเทคนิคที่ผู้โจมตีใช้ เพื่อเข้าปรับเปลี่ยนหน้าเว็บไซต์เป้าหมายที่พบอยู่เสมอ
ดังนี้
1. ช่องโหว่ที่เกิดจากการเรียกใช้ฟังก์ชั่น Include File พบในการพัฒนาโปรแกรม
ด้วยภาษา PHP ที่มีความซับซ้อนและเป็นระบบที่มีองค์ประกอบหลายส่วน จึงทา
ให้ต้องมีการแยกพัฒนาแต่ละโมดูลของระบบ และสุดท้ายนากลับมารวบรวมที่หน้า
หลักด้วยการเรียกใช้ฟังก์ชั่น include ซึ่งในที่นี้ขอยกตัวอย่างการใช้งานดังนี้
//ไฟล์ index.php
<?php
// รับค่าจากโพรโตคอล HTTP ใน method GET ผ่านพารามิเตอร์ชื่อ page แล้วเก็บลง
ตัวแปรชื่อ page
$page = $_GET['page'];
// ฟังก์ชั่น include ไฟล์ซึ่งในที่นี้ให้เรียกตามชื่อไฟล์ตรงๆคือ config.php
include (“config.php”);
// ฟังก์ชั่น include ไฟล์ซึ่งในที่นี้ให้เป็นลักษณะ dynamic include จากตัวแปรชื่อ
page
include ($page);
?>
//
ซึ่งจากตัวอย่างข้างต้น ผู้โจมตีจะอาศัยช่องโหว่จากการใช้งานฟังก์ชั่น include นี้
เพื่อลักลอบแทรกส่วนประกอบของซอร์สโค้ดที่เป็นอันตรายลงไปผ่านโพรโทคอล
HTTP ใน method GET โดยวิธีการแทรกซอร์สโค้ดอันตราย ผู้โจมตีสามารถทาได้
โดยการเรียก URL ผ่านเว็บเบราว์เซอร์ (web browser) ได้ทันที ยกตัวอย่าง
144
ลักษณะการโจมตี เช่น
1.1 ผู้โจมตีจะเปิดเว็บเบราว์เซอร์ (web browser) และเรียกไป URL =>
http://donothackme/index.php?page=http://iamhacker/shell.php
ซึ่งสามารถอธิบายความหมายแต่ละส่วนดังนี้
http://donothackme => เป็นโดเมนที่ผู้โจมตีมีจุดประสงค์จะเข้าเปลี่ยนหน้า
เว็บไซต์ index.php?page.... => เป็นการเรียกใช้งานไฟล์สคริปต์ชื่อ
index.php ซึ่งในที่นี้มีการส่งค่าผ่านไปยัง method GET ของระบบ โดยการ
ส่งค่าผ่านตัวแปรชื่อ page ในการเรียกไฟล์สคริปต์นี้ด้วย
http://iamhacker/shell.php => เป็น URL ปลายทางที่เก็บไฟล์สคริปต์
อันตรายของผู้โจมตี โดยจุดประสงค์ของการส่งค่า URL นี้ เพื่อต้องการให้
เว็บไซต์เป้าหมายรันไฟล์สคริปต์อันตรายที่ต้องการ ซึ่งโดยปกติไฟล์สคริปต์
อันตรายที่ผู้โจมตีนามาใช้มักจะเป็นไฟล์สคริปต์ที่มีคุณสมบัติในการค้นหาช่อง
โหว่บนเว็บไซต์เป้าหมาย ซึ่งปกติเรียกเราจะเรียกไฟล์สคริปต์พวกนี้ว่าเป็น
Web Shell ยกตัวอย่างเช่น C99 R57 หรือ WSO Shell เป็นต้น
รูปที่ 30 (17-3) แสดงให้เห็นหน้าเว็บไซต์เมื่อมีการเรียกไฟล์สคริปต์ประเภท Web Shell
145
1.2 เมื่อผู้โจมตีเปิดไปยัง URL ในข้อ 1 แล้ว ซึ่งจะพบว่าเว็บเบราว์เซอร์ (web
browser) จะแสดงหน้าที่เป็นไฟล์สคริปต์ชื่อ shell.php ซึ่งเป็นไฟล์สคริปต์
อันตรายที่ผู้โจมตีต้องการใช้ โดยฟังก์ชั่นการใช้งานของผู้โจมตีพบว่าจะเลือกใช้
งานในส่วนที่เป็นโมดูลการอัพโหลดหรือจัดการไฟล์บนเว็บไซต์ เพื่อทาการ
อัพโหลดหรือปรับเปลี่ยนไฟล์ของเว็บไซต์เป้าหมายในส่วนต่างๆ ตามที่ได้กล่าว
ไว้ตอนต้นเกี่ยวกับจุดประสงค์ของผู้โจมตี การโจมตีในลักษณะนี้จะเรียกว่าการ
โจมตีแบบ Remote File Inclusion [17-1]
2. ช่องโหว่จากการเรียกใช้ระบบการอัพโหลดไฟล์บนหน้าเว็บไซต์เป้าหมาย โดย
ปกติการอัพโหลดไฟล์รูปภาพหรือไฟล์ใดๆ ขึ้นบนเว็บไซต์จะพบว่าการเก็บไฟล์
นั้นๆ ระบบจะเก็บไฟล์ที่ถูกอัพโหลดไว้บนเว็บไซต์ และหากระบบที่พัฒนาในการ
อัพโหลดไฟล์ไม่ได้มีการตรวจสอบเนื้อหาหรือส่วนประกอบต่างๆ ของไฟล์ก่อน
นาไปวางบนเครื่องแม่ข่ายจริงแล้วนั้น เท่ากับว่าผู้โจมตีจะสามารถใช้ช่องโหว่
ดังกล่าวในการอัพโหลดไฟล์สคริปต์อันตรายดังเช่น ในไฟล์ shell.php ในข้อ 1 ขึ้น
ไปบนเว็บไซต์ได้ทันที ส่งผลลัพธ์ให้ผู้โจมตีสามารถรันไฟล์สคริปต์อันตรายบนเครื่อง
เว็บไซต์เป้าหมาย และเข้าทาการอัพโหลดหรือปรับเปลี่ยนไฟล์ของเว็บไซต์
เป้าหมายในส่วนต่างๆ ตามที่ได้กล่าวไว้ตอนต้นเกี่ยวกับจุดประสงค์ของผู้โจมตี
การโจมตีในลักษณะนี้จะเรียกว่าการโจมตีแบบ Unrestricted File Upload
[17-2] สามารถพบได้แพร่หลายและเป็นที่นิยมในหมู่ผู้โจมตี เนื่องจากค้นหาช่อง
โหว่ได้ง่าย
3. ช่องโหว่จากการเรียกใช้ข้อมูลที่ป้อนเข้าสู่ระบบโดยผู้ใช้งาน โดยปกติเว็บไซต์
ส่วนใหญ่มักจะมีช่องทางให้ผู้ใช้งานสามารถกรอกข้อมูลหรือพิมพ์ข้อความต่างๆ ใน
เว็บไซต์ เช่น เพื่อให้ข้อมูลต่างๆ ในระบบลงทะเบียนพิมพ์บัญชีชื่อและรหัสผ่านใน
ระบบการพิสูจน์ตัวจริง (Authentication) หรือการพิมพ์ข้อความเพื่อแสดงความ
คิดเห็นต่างๆ บนเว็บบอร์ด ซึ่งหากระบบที่พัฒนาไม่มีการตรวจสอบ Input/
Output ก็จะส่งผลให้ผู้โจมตีสามารถใช้ช่องโหว่ตรงนี้ ในการแทรก HTML syntax
ต่างๆ เข้าสู่ระบบได้ ซึ่งเมื่อผู้โจมตีกรอกข้อมูลดังกล่าวและ submit ข้อมูลเข้าใน
ระบบสาเร็จแล้ว จะทาให้ผู้ใช้งานที่เปิดเข้ามายังเว็บไซต์เป้าหมายดังกล่าวก็จะเจอ
146
กับ HTML syntax ที่ผู้โจมตีแทรกเข้าไป ซึ่งโดยปกติผู้โจมตีจะส่งค่า syntax ที่สั่ง
การให้เว็บเบราว์เซอร์ redirect ไปยังเว็บไซต์ปลายทางที่ตั้งไว้
โดยตัวอย่างของ syntax ในลักษณะนี้เช่น <META HTTP-EQUIV=”refresh”
content=”1; URL=http://youcanhack”> อธิบายตามคาสั่งของ syntax ได้
ว่าให้ Refresh หน้าเว็บไซต์ไปยังเว็บไซต์ปลายทางที่ http://youcanhack
โดยผลลัพธ์ที่ปรากฏถึงแม้เว็บไซต์เป้าหมายจะยังไม่ได้ถูกเข้าควบคุมได้ โดยผู้โจมตี
หรือถูกแก้ไขหน้าเว็บไซต์เหมือนดังข้อ 1, 2 เพียงแต่มีการถูกสอดแทรก HTML
syntax เพื่อตั้งค่า Redirect page ไว้เท่านั้น แต่ก็ทาให้ผู้เข้าชมเข้าใจว่าเว็บไซต์นี้
ได้ถูกผู้โจมตีเข้าควบคุมแล้ว การโจมตีในลักษณะนี้จะเรียกว่าการโจมตีแบบ HTML
Injection [17-3]
4. ช่องโหว่จากการใช้บริการจากผู้ให้บริการภายนอก (Third-Party Service
[17-4]) เช่น บริการ DNS หรือ บริการ Hosting หรือ Web Hosting เป็นต้น
ในบางครั้งการโจมตีอาจไม่ได้เกิดขึ้นที่เว็บไซต์เป้าหมายโดยตรง แต่เกิดขึ้นกับ
บริการภายนอกอื่นๆ ที่เราเลือกใช้ เช่นบริการ DNS หรือบริการ Hosting ที่เป็น
ระบบโครงสร้างพื้นฐานของบริการเว็บไซต์ ซึ่งเมื่อผู้โจมตีสามารถเจาะผ่านช่องโหว่
ต่างๆ จนเข้าควบคุมบริการนั้นๆ ได้แล้ว ก็จะเข้าทาการปรับแก้ไขฟังก์ชั่นการ
ทางานส่วนต่างๆ ของบริการนั้นๆ เพื่อทาให้หน้าเว็บไซต์ของเราเปลี่ยนแปลงไป
ในกรณีของการเข้าควบคุม Hosting Control Panel ก็จะมีการปรับปรุงหรือ
เปลี่ยนแปลงซอร์สโค้ดของเว็บไซต์ เพื่อให้เห็นว่าหน้าเว็บไซต์เป้าหมายถูกโจมตี
สาเร็จ แต่ถ้าเป็นลักษณะของผู้โจมตีสามารถเข้าถึงบริการ DNS ได้โดยตรง ทาให้
ผู้โจมตีสามารถปรับเพิ่ม Redirect record ในส่วนของระบบเพื่อให้ผู้ใช้งานเข้าใจ
ว่าเว็บไซต์ดังกล่าวถูกควบคุมได้สาเร็จแล้วต่อไป
17.1 ตัวอย่างการโจมตีลักษณะ Website Defacement
Zone-H : เมื่อวันที่ 4 กันยายน 2554 เว็บไซต์ Zone-H.org ได้รายงานถึงเว็บไซต์
ที่โดนปรับเปลี่ยนหน้าเว็บไซต์ ( Website Defacement ) ประกอบไปด้วยเว็บไซต์
147
UPS, TheRegister, Acer, Telegraph, Vodafone [17-5] [17-6] ซึ่งผู้โจมตีใช้
การโจมตีด้วยวิธีการ Sql Injection [17-7] ผ่านทาง DNS control panel
(netnames.co.uk) [17-8] เพื่อปรับค่า DNS Record ของเว็บไซต์ดังกล่าว ซึ่ง
ผลลัพธ์ของการโจมตีครั้งนี้ คือผู้ที่เปิดหน้าเว็บไซต์ดังกล่าวจะพบว่าหน้าเว็บไซต์ที่
ต้องการเข้าถึงได้ถูกกลุ่มผู้โจมตีปรับเปลี่ยนหน้าแรกและแสดงข้อความในลักษณะที่
แจ้งว่า เว็บไซต์ถูกแฮก (“4 Sept. We TurkGuvenligi declare this day as
World Hackers Day - Have fun ; ) h4ck y0u”)
17.2 ควรรับมืออย่างไร
1. สาหรับเว็บไซต์ที่พัฒนาด้วยภาษา PHP ควรปรับปรุงค่าที่อยู่ใน php.ini [17-9]
(เป็นไฟล์ที่ใช้ปรับแต่งการตั้งค่าต่างๆ ของ PHP) โดยการตั้งค่าเพื่อไม่ให้สคริปต์
ต่างๆ สามารถเรียกใช้งานฟังก์ชั่นที่อาจก่อให้ช่องโหว่ในการเรียกใช้ไฟล์สคริปต์
อันตรายจาก URL ภายนอกได้ ซึ่งมีค่าที่ควรกาหนดดังนี้
allow_URL_fopen off -> ไม่อนุญาตให้ใช้ฟังก์ชั่น fopen สาหรับการเปิด
ไฟล์ข้อมูลที่ส่งมาเป็น URL (fopen เป็นฟังก์ชั่นที่ใช้สาหรับเปิดไฟล์โดยสามารถ
ระบุเป็นชื่อไฟล์บนเครื่องแม่ข่ายหรือเป็น URL จากเครื่องภายนอก)
allow_URL_include off -> ไม่อนุญาตให้ใช้ฟังก์ชั่น include ไฟล์สคริปต์ที่
เป็น URL เพื่อป้องกันการโจมตีผ่านช่องโหว่ Remote file inclusion
2. ควรมีการตรวจสอบ Input/Output ในทุกๆ ครั้งที่มีการรับส่งข้อมูลบนเว็บไซต์
เพื่อป้องกันการส่งค่าที่เป็นอันตรายในการเข้าโจมตีเว็บไซต์ หรือในทุกๆ เว็บไซต์ที่
พัฒนาขึ้นควรแบ่งแยกประเภทและชนิดของข้อมูลที่รับส่งให้ชัด เพื่อให้ง่ายต่อการ
พัฒนาฟังก์ชั่นสาหรับตรวจสอบต่อไป ยกตัวอย่างเช่น หากมีรับค่าการกรอกข้อมูล
สิ่งที่ผู้พัฒนาระบบ/เว็บไซต์ควรทาคือ ต้องมีการตรวจสอบแบ่งว่าข้อมูลที่ได้รับจาก
ผู้ใช้งานในแต่ละส่วนนั้น จะต้องตรงตามรูปแบบและข้อกาหนดของแต่ละประเภท
ก่อนจะนาไปประมวลผลต่อ ไม่ควรปล่อยให้ข้อมูลที่ส่งเข้ามาไปประมวลผลเลย
เพื่อป้องกันความเสียหายที่อาจเกิดขึ้นจากการถูกโจมตี
148
3. ควรมีการตรวจสอบประเภทของไฟล์ (File Extension) ในส่วนที่ผ่าน
กระบวนการอัพโหลดไฟล์เข้ามา เพื่อป้องกันการอัพโหลดไฟล์สคริปต์อันตรายหรือ
ไฟล์ที่จะก่อให้เกิดปัญหาบนเครื่องแม่ข่ายของเว็บไซต์ ซึ่งผู้พัฒนาเว็บไซต์เองควรมี
การกาหนดขอบเขตและประเภทของไฟล์ที่อนุญาตให้สามารถอัพโหลดได้
(Whitelist)
4. ไม่เปิดสิทธิในการอ่านเขียนไฟล์ซอร์สโค้ดของเว็บไซต์ให้กับผู้อื่นและหมั่น
ตรวจสอบการวันที่มีการอัพเดทไฟล์อยู่เสมอ เนื่องจากการโจมตีโดยการปรับ-
เปลี่ยนหน้าเว็บไซต์ส่วนใหญ่เกิดขึ้นจากการที่ผู้โจมตีใช้สิทธิของไฟล์สคริปต์
อันตรายซึ่งเป็นสิทธิของผู้ให้บริการเว็บไซต์ (Webserver) [17-10] ที่ใช้ในการ
ดาเนินการใดๆ เช่น การแก้ไขหรืออัพโหลดไฟล์ซอร์สโค้ดของเว็บไซต์, การอ่าน
ไฟล์ที่ตั้งค่าเชื่อมต่อฐานข้อมูลของเว็บไซต์ เพราะฉะนั้น จึงควรระมัดระวังในการให้
สิทธิของไฟล์ซอร์สโค้ดของเว็บไซต์ให้ดี โดยการจัดการสิทธิของไฟล์ซอร์สโค้ดของ
เว็บไซต์ที่ดีควรเริ่มจากการที่อัพโหลดไฟล์ต่างๆ ด้วยสิทธิผู้ใช้งานของตนเอง ไม่ใช่
ผ่านหน้าเว็บอัพโหลดใดๆ เพราะจะทาให้สิทธิของไฟล์ต่างๆ ที่อยู่บนระบบเป็นของ
เว็บเซิร์ฟเวอร์ไปโดยปริยาย และหากมีไฟล์ส่วนไหนที่จาเป็นต้องถูกแก้ไขได้โดยเว็บ
เซิร์ฟเวอร์จึงค่อยเปิดสิทธิและคอยระวังตรวจสอบไฟล์เหล่านั่นว่ามีการถูก
เปลี่ยนแปลงหรือไม่ เพื่อเป็นข้อมูลสาหรับการพิจารณาความผิดปกติที่อาจจะ
เกิดขึ้น
5. หากเป็นระบบที่ใช้ซอฟต์แวร์แพคเกจที่พัฒนาจากผู้พัฒนาภายนอก (Third
party) เช่น Joomla [17-11] Wordpress [17-12] หรือ Drupal [17-13] ให้
ผู้ดูแลระบบคอยหมั่นตรวจเช็คข้อมูลจากเว็บไซต์ผู้พัฒนาอยู่เสมอๆ ว่ามีช่องโหว่
ใดๆ เกิดขึ้นกับระบบบ้าง และพิจารณาถึงช่องโหว่ดังกล่าวว่ามีใช้งานบนระบบ
หรือเว็บไซต์ของเราหรือไม่ เพื่อเป็นข้อมูลในการตัดสินใจว่ามีความจาเป็นต้อง
อัพเดทซอฟต์แวร์แพคเกจนั้นๆ หรือไม่
6. เมื่อได้รับแจ้งหรือพบว่าเว็บไซต์ที่ดูแลถูกโจมตีและเปลี่ยนแปลงแก้ไข
(Defacement) ให้ตรวจสอบ URL ที่พบเห็นเพื่อวิเคราะห์ว่าผู้โจมตีนั้น โจมตีเข้า
149
มาด้วยวิธีการใด โดยสามารถแนะนาขั้นตอนในการตรวจสอบปัญหาเบื้อง ดังนี้
6.1 ตรวจสอบโดยการเปิดเว็บเบราว์เซอร์ (web browser) ไปยัง URL ที่ได้รับ
แจ้ง จากนั้นให้พิจารณาดูว่าการ Defacement ที่แจ้งมาเป็นการสั่ง Redirect
ต่อไปยังเว็บไซต์ปลายทางของผู้โจมตีหรือไม่ (สามารถตรวจสอบได้จากชื่อ Url
ที่เปลี่ยนไปแสดงว่าเป็นการ Redirect) ซึ่งหากเป็นลักษณะของการ Redirect
URL ต่อไปยังเว็บไซต์อื่น ให้ผู้ดูแลเข้าตรวจสอบฐานข้อมูลว่ามีข้อมูล
แปลกปลอมจาพวก Syntax ของการ Redirect ซ่อนอยู่ที่ใดหรือไม่ เช่น อาจ
พบว่ามีการแทรกข้อมูล <meta HTTP-EQUIV="REFRESH" content="0;
url=http://......"> หรือ <script
language="JavaScript">window.location='http://......';</script>
อยู่ในฐานข้อมูลของกระดานสนทนาทาให้เกิดการ Redirect ไปยังหน้าเว็บไซต์
ผู้โจมตีอยู่ตลอดเวลา ซึ่งเมื่อพบข้อมูลดังที่กล่าวมาให้ผู้ดูแลรีบลบข้อมูล
เหล่านั้นทิ้งทันที และรีบแก้ไขช่องโหว่ที่คาดว่าเป็นต้นเหตุให้ผู้โจมตีเข้ามาสร้าง
ปัญหาซ้าได้อีก แต่หากไม่พบข้อมูลต้องสงสัยบนเว็บไซต์หรือฐานข้อมูลของ
เว็บไซต์ให้ผู้ดูแลแจ้งไปยังผู้ให้บริการภายนอกต่างๆ เพื่อตรวจสอบว่ามีการเข้า
โจมตีที่เว็บไซต์ผู้ให้บริการเหล่านั้นหรือไม่
6.2 ตรวจสอบว่ามีไฟล์สคริปต์อันตรายประเภท Web shell อยู่บนเครื่องแม่
ข่ายที่ให้บริการเว็บไซต์อยู่หรือไม่ โดยการใช้โปรแกรมแอนตี้ไวรัสทั่วไปสแกน
ไปยังพื้นที่ของเว็บไซต์บนเครื่องแม่ข่ายของเว็บไซต์ที่ดูแล แต่หากเป็นการใช้
งานเครื่องแม่ข่ายจากผู้ให้บริการภายนอกซึ่งไม่สามารถติดตั้งโปรแกรมแอนตี้
ไวรัสได้ให้ก๊อปปี้ข้อมูลออกมาจากเครื่องแม่ข่ายผู้ให้บริการดังกล่าวแล้วนามา
สแกนยังเครื่องตนเอง ซึ่งโดยปกติแล้วไฟล์สคริปต์อันตรายประเภท Web
shell จะถูกสแกนพบได้จากโปรแกรมแอนตี้ไวรัสทั่วไปอยู่แล้ว ซึ่งเมื่อพบไฟล์
ดังกล่าวให้ลบทิ้ง เพื่อเป็นการจากัดการเข้าโจมตีซ้าในอนาคต และหาช่องโหว่ที่
คาดว่าจะเป็นต้นเหตุของการสั่งรันไฟล์สคริปต์อันตรายนั้นได้ (แนวทางการ
ค้นหาช่องโหว่ได้กล่าวไว้ในข้างต้นแล้ว) จากนั้นจึงตรวจสอบว่ามีไฟล์อื่นที่พบ
การเปลี่ยนแปลงอีกหรือไม่แล้วจึงกู้คืนไฟล์ซอร์สโค้ดที่ถูกผู้โจมตีเปลี่ยนแปลง
150
ไปกลับคืน
หมายเหตุ: ขั้นตอนการกู้คืนซอร์สโค้ดอาจกระทาก่อนการหาช่องโหว่ของ
ปัญหาก็ได้ เพราะอาจส่งผลในแง่ของความน่าเชื่อถือของเว็บไซต์ แต่ผู้เขียน
พยายามจะให้เห็นถึงความสาคัญของการปิดกั้นช่องโหว่เพราะจะได้เป็นการ
แก้ปัญหาอย่างถาวร
7. ข้อเสนอแนะที่มีเกี่ยวกับการใช้บริการจากภายนอกสามารถแนะนาได้ดังนี้
7.1 ควรตรวจสอบผู้ให้บริการที่มีความน่าเชื่อถือและมีความตระหนักถึงความ
ปลอดภัยของระบบ ดังจะสังเกตได้จากการให้ความรู้บนเว็บไซต์ของผู้ให้บริการ
ต่างๆ และการสอบถามถึงกระบวนการดูแลรักษาความปลอดภัยของข้อมูล
โดยตรงจากผู้ให้บริการ
7.2 ควรมีการสารองข้อมูลของเว็บไซต์ไว้ที่อื่นนอกเหนือจากบนเครื่องแม่ข่ายที่
เช่าใช้บริการอยู่ เพราะหากพบกรณีที่เว็บไซต์ถูกเปลี่ยนแปลงหรือแก้ไข
ซอร์สโค้ดจะได้สามารถกู้คืนข้อมูลได้อย่างสมบูรณ์และรวดเร็ว
17.3 เอกสารอ้างอิง
[17-1] http://en.wikipedia.org/wiki/Remote_file_inclusion#
Programming_languages
[17-2] https://www.owasp.org/index.php/Unrestricted_File_Upload
[17-3] http://foro.elhacker.net/hacking_basico/tutorial_html_
injection-t232019.0.html
[17-4] http://wiki.answers.com/Q/What_do_you_mean_by_third_
party_service_providers
[17-5] http://www.zone-h.org/news/id/4741
[17-6] http://www.itpro.co.uk/635926/hackers-deface-the-register-
vodafone-and-more
151
[17-7] https://www.owasp.org/index.php/SQL_Injection
[17-8] http://www.netnames.co.uk/
[17-9] http://www.slideshare.net/pritisolanki/understanding-phpini-
presentation
[17-10] http://en.wikipedia.org/wiki/Web_server
[17-11] http://docs.joomla.org/Vulnerable_Extensions_List
[17-12] http://wordpress.org/tags/vulnerability
[17-13] http://drupal.org/security
152
153
18. ระวังภัย มัลแวร์ DuQu โจมตีวินโดวส์ด้วย
ฟอนต์
ผู้เรียบเรียง: เสฏฐวุฒิ แสนนาม
วันที่ประกาศ : 11 พฤศจิกายน 2554
ปรับปรุงล่าสุด : 11 พฤศจิกายน 2554
ประเภทภัยคุกคาม : Malware
18.1 ข้อมูลทั่วไป
เมื่อวันที่ 15 ตุลาคม 2554 ไมโครซอฟท์ได้ประกาศว่ามีการแพร่ระบาดของมัลแวร์
ชื่อ DuQu (CVE-2011-3402) โจมตีโดยอาศัยช่องโหว่ของไฟล์ win32k.sys
ซึ่งเป็นส่วนที่ใช้สาหรับการแสดงผลรูปแบบตัวอักษร TrueType Font ของ
ระบบปฏิบัติการ Windows ทุกเวอร์ชั่น ผู้โจมตีสามารถใช้ช่องโหว่นี้ในการสั่งการ
เครื่องคอมพิวเตอร์เป้าหมาย จากระยะไกลเพื่อให้ประมวลผลคาสั่งที่เป็นอันตราย
ได้ ซึ่งคาสั่งดังกล่าวจะได้รับสิทธิในระดับเดียวกับ Kernel ของระบบปฏิบัติการ
ส่งผลให้ผู้โจมตีสามารถติดตั้งโปรแกรม อ่าน เขียน หรือลบข้อมูล รวมทั้งสามารถ
สร้างบัญชีผู้ใช้ใหม่ที่มีสิทธิในระดับเดียวกับผู้ดูแลระบบ (Administrator) ได้
การโจมตีอาจจะมาในรูปแบบของอีเมล HTML ที่มีคาสั่งให้ดาวน์โหลดฟอนต์โดย
อัตโนมัติ หรือมากับเอกสารไฟล์แนบซึ่งใช้ช่องโหว่ดังกล่าว [18-1]
จากการวิเคราะห์ การทางานของ DuQu โดยผู้เชี่ยวชาญ พบว่าเป็นมัลแวร์
ประเภท โทรจัน (Trojan) ซึ่งผู้พัฒนาอาจเป็นกลุ่มเดียวกันกับกลุ่มที่พัฒนา
Stuxnet เนื่องจาก โค้ดหลายส่วนมีความคล้ายคลึงกัน แต่มีความแตกต่างกันตรงที่
DuQu มีจุดมุ่งหมายเพื่อการขโมยข้อมูลเท่านั้น และยังไม่พบว่ามีการทางานที่เป็น
154
การโจมตีระบบใดระบบหนึ่งเป็นพิเศษ ซึ่งแตกต่างจาก Stuxnet ที่มีเป้าหมาย
เพื่อโจมตีระบบโรงไฟฟ้านิวเคลียร์ของประเทศอิหร่านโดยเฉพาะ [18-2] [18-3]
18.2 การทางาน
DuQu ใช้เทคนิคการฝังโค้ดที่เป็น Payload ลงในโปรเซส (Injects payload
instructions) มีส่วนการทางานหลักๆ อยู่ 2 ส่วน คือ การติดตั้ง และ การฝัง
Payload โดยมีขั้นตอนการทางานดังนี้ [18-3]
การติดตั้ง
DuQu จะติดตั้งไดรเวอร์ปลอมของอุปกรณ์โดยใช้ชื่อ JmiNET3.sys หรือ
cmi4432.sys ซึ่งไดรเวอร์ดังกล่าวจะถูกโหลดให้เป็น Service ในทุกครั้งที่
Windows เริ่มทางาน เครื่องที่ติด DuQu จะพบอุปกรณ์เหล่านี้อยู่ในระบบ
• Device{3093AAZ3-1092-2929-9391}
• DeviceGpd1
การฝัง Payload
DuQu จะฝัง Payload ให้ติดไปกับโปรเซสอื่นๆ โดยจะอ่านค่าการทางานจาก
ข้อมูลที่ถูกเข้ารหัสลับไว้ในรีจิสทรี (Registry) ซึ่งรีจิสทรีที่ถูกสร้างโดยมัลแวร์
มีดังนี้
• HKLMSYSTEMCurrentControlSetServicesJmiNET3FILTER
• HKLMSYSTEMCurrentControlSetServicescmi4432FILTER
รีจิสทรีดังกล่าว จะใช้ Payload จากไฟล์ที่ถูกสร้างโดยมัลแวร์ ดังนี้
• %systemroot%infnetp191.PNF
• %systemroot%infcmi4432.PNF
155
18.3 วิธีการแก้ไข
ไมโครซอฟท์ได้ออกซอฟต์แวร์ Fix It หมายเลข 2639658 เพื่อปรับปรุงช่องโหว่
ดังกล่าว เมื่อวันที่ 3 พฤศจิกายน 2554 [18-5] อย่างไรก็ตาม ซอฟต์แวร์นี้เป็นเพียง
การปิดกั้นการเข้าถึงไฟล์ระบบที่มีช่องโหว่ (T2embed.dll) แต่ไม่ใช่การปรับปรุง
แก้ไขปัญหา โดยไมโครซอฟท์แจ้งว่าจะออกแพทช์ (Patch) เพื่อแก้ปัญหานี้ผ่าน
ทาง Windows Update ในภายหลัง [18-6] [18-7]
หากยังไม่ได้ทาการติดตั้งซอฟต์แวร์ปรับปรุงช่องโหว่ดังกล่าว ผู้ใช้สามารถจากัด
ความเสียหายที่อาจเกิดขึ้นได้โดยการกาหนดค่าระดับ Security ในเว็บเบราว์เซอร์
(web browser) หรือโปรแกรมรับส่งอีเมลของไมโครซอฟท์ให้เป็น Restricted
Zone เพื่อไม่ให้มีการดาวน์โหลดฟอนต์จากเว็บไซต์ภายนอกมาโดยอัตโนมัติ
รวมถึงไม่เปิดไฟล์เอกสารที่แนบมากับอีเมลที่น่าสงสัย
ศูนย์วิจัย CrySyS จากประเทศฮังการี ได้ทาการวิเคราะห์การทางานของ DuQu
และได้ออกซอฟต์แวร์ DuQu Detector Toolkit เพื่อให้ผู้ดูแลระบบใช้ในการ
ตรวจสอบเครื่องคอมพิวเตอร์และแก้ไขการทางานของระบบที่ถูกเปลี่ยนแปลงให้
กลับสู่สภาพเดิมได้ [18-8] ผู้ที่สนใจสามารถดาวน์โหลดซอฟต์แวร์ดังกล่าวได้ที่
http://www.crysys.hu/
18.4 แหล่งข้อมูลอื่นๆ ที่เกี่ยวข้อง
1. http://osvdb.org/show/osvdb/76843
2. http://www.net-security.org/malware_news.php?id=1905
18.5 เอกสารอ้างอิง
[18-1] http://technet.microsoft.com/en-us/security/advisory/2639658
[18-2] http://thehackernews.com/2011/11/duqu-another-stuxnet-in-
making.html
156
[18-3] http://thehackernews.com/2011/11/duqu-malware-was-
created-to-spy-on.html
[18-4] http://www.microsoft.com/security/portal/Threat/
Encyclopedia/Entry.aspx?Name=Trojan%3aWinNT%2fDuqu.A
[18-5] http://support.microsoft.com/kb/2639658
[18-6] http://www.theregister.co.uk/2011/11/09/nov_patch_tuesday/
[18-7] http://searchsecurity.techtarget.com/news/2240110565/One-
critical-bulletin-no-Duqu-patch-in-November-2011-Patch-
Tuesday-updates
[18-8] http://thehackernews.com/2011/11/crysys-duqu-detector-
open-source.html
157
19. ช่องโหว่ BIND9 (CVE-2011-4313)
ผู้เรียบเรียง: ศุภกรณ์ ฤกษ์ดิถีพร
วันที่ประกาศ : 18 พฤศจิกายน 2554
ปรับปรุงล่าสุด : 21 พฤศจิกายน 2554
หมายเลขช่องโหว่ : CVE-2011-4313
ประเภทภัยคุกคาม : DoS (Denial-of-Service)
19.1 ข้อมูลทั่วไป
เมื่อวันที่ 16 พฤศจิกายน 2554 หน่วยงาน ISC (Internet Systems
Consortium) ผู้พัฒนาซอฟต์แวร์ BIND ซึ่งเป็นซอฟต์แวร์ที่ใช้สาหรับการให้บริการ
Domain Name System ได้รายงานปัญหาข้อผิดพลาดของซอฟต์แวร์ BIND เวอร์
ชั่น 9 ซึ่งสาเหตุของข้อผิดพลาดดังกล่าวเกิดจากการทางานส่วน Resolver ของ
ซอฟต์แวร์ BIND ประมวลผล Recursive Query ที่ผิดพลาด แล้วบันทึก Query
เก็บไว้ใน Cache จากนั้น เมื่อ Resolver ประมวลผล Query นั้นซ้าอีก ระบบจะ
ไปอ่านค่าจาก Cache แทน ทาให้มีการดึงค่าข้อมูลที่ผิดพลาดนั้นขึ้นมา และเมื่อ
พบว่าข้อมูลผิดพลาด ระบบจะทาการบันทึก Error log ผ่านไฟล์ query.c ซึ่งถูก
พบว่าเมื่อมีการถูกโจมตีโดยการ DoS จะทาให้ระบบทาการบันทึกข้อผิดพลาด
ดังกล่าวซ้าจนส่งผลให้ระบบหยุดทางาน (Crash) [19-1] [19-2] [19-3]
[19-4]
19.2 ผลกระทบ
ระบบหยุดทางานไม่สามารถให้บริการ Domain Name System ต่อได้ [19-5]
158
19.3 ระบบที่ได้รับผลกระทบ
ISC BIND เวอร์ชั่น BIND 9.0.x -> 9.5.x, 9.4-ESV -> 9.4-ESV-R5, 9.6-ESV ->
9.6-ESV-R5, 9.7.0 -> 9.7.4, 9.8.0 -> 9.8.1
19.4 วิธีแก้ไข
ติดตั้งซอฟต์แวร์ปรับปรุงช่องโหว่ ISC BIND ให้เป็นรุ่นปัจจุบัน ดังนี้ BIND 9.8.1-
P1, 9.7.4-P1, 9.6-ESV-R5-P1, 9.4-ESV-R5-P1 [19-6]
19.5 แหล่งข้อมูลที่เกี่ยวข้อง
1. http://www.isc.org/software/bind
2. http://technet.microsoft.com/en-us/library/cc961401.aspx
3. http://pastebin.com/JjaRtACv
19.6 เอกสารอ้างอิง
[19-1] http://osvdb.org/show/osvdb/77159
[19-2] http://searchsecurity.techtarget.com/news/2240111262/ISC-
issues-temporary-patch-for-zero-day-BIND-9-DNS-server-flaw
[19-3] http://thehackernews.com/2011/11/patches-released-for-
bind-denial-of.html
[19-4] http://secunia.com/advisories/46887/
[19-5] http://www.isc.org/software/bind/advisories/cve-2011-tbd
[19-6] http://www.kb.cert.org/vuls/id/725188
159
20. การกู้ข้อมูลจากฮาร์ดดิสก์ที่ถูกน้าท่วม
ผู้เรียบเรียง: เสฏฐวุฒิ แสนนาม
วันที่เผยแพร่: 28 พ.ย. 2554
ปรับปรุงล่าสุด: 28 พ.ย. 2554
จากเหตุการณ์น้าท่วมที่ผ่านมา ส่งผลให้คอมพิวเตอร์ของหน่วยงาน สถาน
ประกอบการ หรือบุคคลทั่วไป หลายแห่งจมอยู่ใต้น้า ซึ่งอาจมีข้อมูลที่สาคัญอยู่ใน
ฮาร์ดดิสก์ และมีความจาเป็นต้องทาการกู้ข้อมูล (Data recovery) เพื่อให้สามารถ
ดาเนินกิจการต่อไปได้โดยเร็วที่สุด แต่การกู้ข้อมูลนั้นมีหลายสิ่งที่ควรรู้และต้อง
คานึงในการปฏิบัติ เพื่อไม่ให้เกิดความเสียหายต่อฮาร์ดดิสก์โดยไม่ตั้งใจ ดังนั้น
การรู้จักการทางานของฮาร์ดดิสก์ รูปแบบความเสียหาย วิธีการการแก้ไข และ
ขั้นตอนการปฏิบัติในการกู้ข้อมูล ก็จะสามารถช่วยป้องกันความเสียหายและเพิ่ม
โอกาสในการกู้ข้อมูลกลับคืนมาได้
20.1 โครงสร้างการทางานของฮาร์ดดิสก์
ปัจจุบัน มีการใช้งานฮาร์ดดิสก์อยู่ 2 แบบ คือแบบจานแม่เหล็ก และแบบ Solid-
state (SSD) ซึ่งทั้ง 2 แบบมีโครงสร้างและการทางานที่แตกต่างกัน ส่งผลให้มี
ความแตกต่างในเรื่องของการเก็บข้อมูลและการกู้ข้อมูลตามไปด้วย
ฮาร์ดดิสก์แบบจานแม่เหล็ก
รูปที่ 31 (20-1) ฮาร์ดดิสก์แบบจานแม่เหล็ก [20-1]
160
นิยมใช้ในคอมพิวเตอร์ทั่วไป รวมถึงกล้องวีดีโอบางรุ่น เนื่องจากมีขนาดความจุ
ค่อนข้างสูงและมีราคาที่ลดลงมาอยู่ในระดับที่ไม่สูงมาก ฮาร์ดดิสก์แบบแม่เหล็กจะ
ใช้แผ่นจานโลหะเพื่อเก็บข้อมูล โดยมีมอเตอร์หมุนอยู่ภายใน และใช้หัวอ่านในการ
อ่านและเขียนข้อมูลลงในแผ่นจานในการอ่านหรือเขียนข้อมูล จะใช้หลักการเปลี่ยน
ทิศทางของสนามแม่เหล็ก เพื่อเก็บข้อมูลในรูปแบบของเลขฐาน 2
ในขณะที่ฮาร์ดดิสก์ทางานหัวอ่านจะลอยอยู่เหนือแผ่นจานประมาณ 10 นาโนเมตร
[20-2] (เส้นผมของมนุษย์มีเส้นผ่านศูนย์กลางเฉลี่ย 99 ไมโครเมตร) แผ่นจานจะ
หมุนด้วยความเร็วสูง ซึ่งในปัจจุบันมีความเร็วในการหมุนประมาณ 7,200 –
10,000 รอบต่อนาที (ประมาณ 270 กิโลเมตรต่อชั่วโมง) ดังนั้น หากฮาร์ดดิสก์มี
การสั่นสะเทือนเกิดขึ้นในขณะที่หัวอ่านกาลังทางานก็มีโอกาสสูงที่หัวอ่านจะไปขูด
กับแผ่นจานแม่เหล็ก ซึ่งส่งผลให้ฮาร์ดดิสก์เสียหายอย่างถาวรได้
ฮาร์ดดิสก์แบบ Solid-state
รูปที่ 32 (20-2) ฮาร์ดดิสก์แบบ Solid-state [20-3]
ฮาร์ดดิสก์แบบ Solid-state ใช้หลักการเดียวกันกับอุปกรณ์เก็บข้อมูลแบบพกพา
เช่น Flash drive ซึ่งเป็นอุปกรณ์เก็บข้อมูลรูปแบบใหม่ที่ไม่มีชิ้นส่วนที่เป็นการ
หมุนหรือหัวอ่านอยู่ภายใน โดยจะเปลี่ยนมาใช้การเก็บข้อมูลบน NAND Chip
ซึ่งเป็นการอ่านและเขียนข้อมูลโดยใช้ไฟฟ้าส่งผลให้ฮาร์ดดิสก์แบบ Solid-state
สามารถอ่านเขียนข้อมูลได้เร็วกว่าฮาร์ดดิสก์แบบจานแม่เหล็ก แต่เนื่องจาก มีราคา
ที่ค่อนข้างสูงและมีความจุน้อยกว่าฮาร์ดดิสก์แบบจานแม่เหล็ก จึงนิยมใช้ใน
อุปกรณ์ที่ต้องการการพกพาสะดวกและมีน้าหนักเบา เช่น คอมพิวเตอร์โน้ตบุ๊ก
161
แบบ Ultra-thin หรือโทรศัพท์มือถือบางรุ่น
ฮาร์ดดิสก์แบบ Solid-state จะแบ่งพื้นที่ในการเก็บข้อมูลออกเป็นบล็อก (หรือ
Cell) ซึ่งแต่ละบล็อกมีจานวนครั้งในการเขียนหรือลบข้อมูลอยู่จากัด ถ้าใช้ครบ
จานวนครั้งที่กาหนดบล็อกนั้นจะไม่สามารถใช้งานได้อีก [20-4] นอกจากนี้ การ
เก็บข้อมูลจะไม่ได้เก็บแบบต่อเนื่องเหมือนฮาร์ดดิสก์แบบจานแม่เหล็ก แต่จะใช้วิธี
Logical mapping ซึ่งเป็นการเชื่อมโยงข้อมูลที่เก็บอยู่จริงในหน่วยความจาให้เป็น
ไฟล์ข้อมูลสาหรับคอมพิวเตอร์ ซึ่งส่วนที่ทาหน้าที่ดังกล่าวเรียกว่า Controller
20.2 ความเสียหายที่อาจเกิดขึ้นได้กับฮาร์ดดิสก์
ความเสียหายทางการภาพ (Physical damage)
ความเสียหายที่เกิดขึ้นกับฮาร์ดดิสก์แบบจานแม่เหล็ก จะเกิดกับส่วนของจาน
แม่เหล็กที่ใช้สาหรับบันทึกข้อมูลไม่ว่าจะเป็นการอยู่ภายใต้สนามแม่เหล็กที่ความ
แรงสูงจนข้อมูลที่เก็บอยู่ผิดเพี้ยน หรือหัวอ่านกระแทกกับจานข้อมูล ทาให้เข้าถึง
ข้อมูลในส่วนนั้นไม่ได้ เป็นต้น ซึ่งถึงแม้ว่าในขณะที่ปิดเครื่องหัวอ่านของฮาร์ดดิสก์
จะถูกเก็บให้ไปอยู่ในที่ที่ปลอดภัยแล้วก็ตาม แต่การที่ฮาร์ดดิสก์ตกจากที่สูงก็มี
โอกาสที่จะเกิดความเสียหายได้เช่นกัน หากหัวอ่านชารุดแต่แผ่นจานแม่เหล็กยัง
สามารถใช้งานได้อยู่ก็ยังสามารถให้ผู้เชี่ยวชาญทาการถอดจานแม่เหล็ก เพื่อนาไป
อ่านข้อมูลออกมาใส่ในฮาร์ดดิสก์อื่นได้ แต่หากแผ่นจานแม่เหล็กชารุดเสียหาย
โอกาสที่จะกู้ข้อมูลได้ก็น้อยลงไปด้วย [20-5] [20-6]
สาหรับฮาร์ดดิสก์แบบ Solid-state ถ้าส่วน Controller เสียหาย การกู้ข้อมูลจะ
ทาได้ยากมากหรือแทบเป็นไปไม่ได้เลย เนื่องจาก การกู้ข้อมูลต้องแกะเอา NAND
Chip ออกมาคัดลอกข้อมูล แล้วนาชิ้นส่วนของข้อมูลที่ได้มาวิเคราะห์เพื่อสร้าง
ตารางข้อมูลใหม่ นอกจากนี้ วิธีการเก็บข้อมูลในฮาร์ดดิสก์แบบ Solid-state
ยังแตกต่างกันออกไปตามวิธีการของผู้ผลิต ปัจจุบันยังไม่มีซอฟต์แวร์ที่ใช้ในการกู้
ข้อมูลในลักษณะนี้จาเป็นต้องให้ผู้เชี่ยวชาญทาเท่านั้น [20-7] [20-8] [20-9]
[20-10]
162
ในประเทศไทยมีบริษัทที่ให้บริการกู้ข้อมูลในฮาร์ดดิสก์ในกรณีที่เกิดความเสียหาย
ทางกายภาพ เช่น ศูนย์กู้ข้อมูล IDR หรือ ศูนย์กู้ข้อมูล i-CU เป็นต้น ซึ่งค่าใช้จ่ายใน
การกู้ข้อมูลก็จะแตกต่างกันออกไปแล้วแต่กรณี อย่างไรก็ตาม ThaiCERT ไม่ได้มี
ส่วนเกี่ยวข้องกับผู้ให้บริการกู้ข้อมูลดังกล่าว
ความเสียหายที่เกิดขึ้นกับข้อมูล (Logical damage)
เป็นความเสียหายที่เกิดขึ้นจากการใช้งาน ซึ่งเกี่ยวข้องกับไฟล์หรือระบบโครงสร้าง
ของการเก็บข้อมูลไม่ว่าจะเป็นการเผลอลบข้อมูล การ Format ฮาร์ดดิสก์ หรือการ
เขียนข้อมูลทับ ซึ่งความเสียหายในส่วนนี้สามารถกู้คืนได้ด้วยซอฟต์แวร์ โดย
ปัจจุบันมีซอฟต์แวร์ที่ใช้สาหรับกู้ข้อมูลอยู่จานวนมากผู้ใช้สามารถดาวน์โหลดมาใช้
งานได้ฟรี เช่น Recuva หรือ TeskDisk เป็นต้น [20-11]
20.3 ทาอย่างไรหากฮาร์ดดิสก์จมน้า
หากฮาร์ดดิสก์จมน้าไม่ว่าฮาร์ดดิสก์จะเสียหายอย่างไรก็ตาม ยังพอมีโอกาสที่จะกู้
ข้อมูลได้ การกู้ข้อมูลจากฮาร์ดดิสก์ที่มีความเสียหายทางกายภาพนั้น ไม่สามารถทา
ได้ด้วยตนเอง แต่สามารถขอความช่วยเหลือในการกู้ข้อมูลจากผู้เชี่ยวชาญได้
ข้อแนะนาในการปฏิบัติในการเก็บและจัดส่งฮาร์ดดิสก์ให้กับบริษัทที่ให้บริการกู้
ข้อมูล มีดังนี้
ฮาร์ดดิสก์แบบจานแม่เหล็ก
1. ไม่ควรทาการกู้ข้อมูลด้วยตนเองโดยเด็ดขาด เพราะเมื่อฮาร์ดดิสก์จมน้า
หัวอ่านอาจจะไปติดอยู่กับจานข้อมูล ถ้าจ่ายไฟเข้าไปจะเกิดการหมุนของ
หัวอ่าน ซึ่งอาจจะไปขูดกับจานข้อมูลทาให้ฮาร์ดดิสก์เสียหายถาวรได้
2. อย่าทาให้ฮาร์ดดิสก์แห้ง เพราะเมื่อฮาร์ดดิสก์แห้งจะเกิดคราบและเศษฝุ่น
เกาะติดอยู่ที่จานหรือหัวอ่านได้
163
รูปที่ 33 (20-3) คราบฝุ่นที่ติดอยู่บนฮาร์ดดิสก์เมื่อน้าแห้ง [20-12]
1. อย่าทาให้ฮาร์ดดิสก์สั่นสะเทือน เนื่องจากหัวอ่านอาจจะขูดกับแผ่นจาน
ทาให้ฮาร์ดดิสก์เสียหายได้
2. ทาให้ฮาร์ดดิสก์อยู่ในสภาพที่จมน้าแบบที่ยังคงเป็นอยู่ โดยอาจจะนา
ฮาร์ดดิสก์ใส่ในภาชนะที่ปิดมิดชิด เช่น กล่องโฟม หรือ กล่องใส่อาหาร
แล้วส่งให้กับผู้เชี่ยวชาญเพื่อทาการกู้ข้อมูลต่อไป [20-13]
ฮาร์ดดิสก์แบบ Solid-state
สาหรับฮาร์ดดิสก์แบบ Solid-state (หรือ Flash drive) เนื่องจากเป็นแผงวงจร
จึงสามารถทนทานต่อการจมน้าได้บ้าง หากฮาร์ดดิสก์ถูกน้าควรรีบนาฮาร์ดดิสก์
ออกมาทาให้แห้งโดยเร็วด้วยการใช้พัดลมเป่า ไม่ควรใช้ไดร์เป่าผมหรือนาไปตาก
แดด จากนั้นเมื่อแน่ใจว่าฮาร์ดดิสก์แห้งสนิทแล้วสามารถนาไปใช้งานต่อได้ แต่หาก
ฮาร์ดดิสก์จมน้าเป็นเวลานานมีโอกาสที่จะทาให้แผงวงจรหรืออุปกรณ์ภายในขึ้น
สนิมได้ ควรรีบทาให้แห้งแล้วส่งไปยังศูนย์กู้ข้อมูลเพื่อให้ผู้เชี่ยวชาญดาเนินการ
ต่อไป [20-14]
20.4 การกู้ข้อมูลจากฮาร์ดดิสก์ที่ถูกลบหรือเขียนข้อมูลทับ
หากฮาร์ดดิสก์ไม่ได้เสียหายทางกายภาพ แต่ข้อมูลสูญหายเนื่องจากอุบัติเหตุใน
ระหว่างการใช้งาน เช่น การเผลอลบไฟล์เอกสารสาคัญ หรือฮาร์ดดิสก์ถูก Format
164
ยังสามารถใช้ซอฟต์แวร์ทาการกู้ข้อมูลได้ เนื่องจากเมื่อระบบทาการลบไฟล์ จะไม่
ลบข้อมูลจริงทิ้ง แต่จะลบส่วนที่เป็นการอ้างอิงตาแหน่ง (Index) ของข้อมูลแทน
หมายความว่า “ชื่อ” ที่ใช้ในการอ้างอิงตาแหน่งของข้อมูลนั้นจะหายไป แต่ตัว
ข้อมูลยังคงอยู่ เมื่อฮาร์ดดิสก์แบบแม่เหล็กเขียนข้อมูลใหม่ทับข้อมูลเดิม จะไม่ได้
เปลี่ยนบิทของข้อมูลเดิมจาก 0 เป็น 1 หรือ 1 เป็น 0 พอดี แต่จะมีการเหลื่อมอยู่
บ้าง ถ้าสามารถอ่านข้อมูลดิบที่อยู่บนดิสก์แล้วทาการวิเคราะห์รูปแบบ (Pattern)
ของการเปลี่ยนค่าจาก 0 เป็น 1 หรือ 1 เป็น 0 ได้ จะสามารถรู้ว่าข้อมูลตรงส่วนนี้
เคยมีค่าเป็นอะไรมาก่อน นอกจากนี้ ยังสามารถใช้กล้องสแกนแถบแม่เหล็กใน
ฮาร์ดดิสก์ เพื่อดูค่าการจัดเรียงของสนามแม่เหล็กในดิสก์ได้ [20-15] อย่างไรก็ตาม
การทาลายข้อมูลบนฮาร์ดดิสก์นั้นก็ยังสามารถทาได้อยู่ จากการวิจัยพบว่า
ถ้าเขียนทับข้อมูลนั้นมากกว่า 25 ครั้งจะไม่สามารถกู้ข้อมูลกลับคืนมาได้ [20-16]
[20-17] [20-18]
20.5 การป้องกันข้อมูลสูญหาย
ในการป้องกันข้อมูลสูญหายวิธีที่ดีที่สุด คือ การสารองข้อมูลอยู่อย่างสม่าเสมอ
ซึ่งการสารองข้อมูลก็สามารถทาได้หลายวิธี เช่น ใช้การต่อฮาร์ดดิสก์แบบ RAID
เพื่อสารองข้อมูลไปยังฮาร์ดดิสก์อีกลูกหนึ่งโดยอัตโนมัติ หรือนาข้อมูลที่สาคัญไป
ฝากไว้กับผู้ให้บริการฝากข้อมูลบนอินเทอร์เน็ต
20.6 ข้อมูลเพิ่มเติม
1. Data Remanence in Semiconductor Devices:
http://www.cypherpunks.to/~peter/usenix01.pdf
2. List of data recovery software:
http://en.wikipedia.org/wiki/List_of_data_recovery_software
3. Reliably Erasing Data From Flash-Based Solid State Drives:
http://www.usenix.org/events/fast11/tech/full_papers/Wei.pdf
4. Redundant array of independent disks:
165
http://en.wikipedia.org/wiki/Redundant_array_of_independent
_disks
20.7 เอกสารอ้างอิง
[20-1] http://en.wikipedia.org/wiki/Hard_drive
[20-2] http://www.pcguide.com/ref/hdd/op/heads/op_Height.htm
[20-3] http://en.wikipedia.org/wiki/Solid-state_drive
[20-4] http://www.datarecovery.net/articles/solid-state-drive-
architecture.html
[20-5] http://en.wikipedia.org/wiki/Data_remanence
[20-6] http://en.wikipedia.org/wiki/Data_loss
[20-7] http://www.datarecovery.net/solid-state-drive-recovery.html
[20-8] http://www.datarecoverytools.co.uk/2010/02/21/is-ssd-data-
recovery-possible-and-different-from-hard-drive-data-
recovery/
[20-8] http://www.recovermyflashdrive.com/articles/how-flash-
drives-fail
[20-9] http://www.recovermyflashdrive.com/articles/5-things-you-
should-know-about-flash-drives
[20-10] http://en.wikipedia.org/wiki/Data_recovery
[20-11] http://www.dataclinic.co.uk/advanced-data-recovery-water-
damaged-hard-disk-drive.htm
[20-12] http://www.storagesearch.com/disklabs-art3-floods.html
[20-13] http://www.associatedcontent.com/article/2556459/
how_to_salvage_a_usb_flash_drive_from.html
[20-14] http://www.nber.org/sys-admin/overwritten-data-
166
guttman.html
[20-15] http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_
del.html
[20-16] http://www.anti-forensics.com/disk-wiping-one-pass-is-enough
[20-17] http://www.anti-forensics.com/disk-wiping-one-pass-is-enough-
part-2-this-time-with-screenshots
Cyber threat alerts 2011

Cyber threat alerts 2011

  • 4.
    2 บทความ Cyber Threats2011 โดย ThaiCERT ชื่อเรื่อง บทความ Cyber Threats 2011 โดย ThaiCERT เรียบเรียงโดย นายสรณันท์ จิวะสุรัตน์, นายเสฏฐวุฒิ แสนนาม, นายไพชยนต์ วิมุกตะนันทน์, นายศุภกรณ์ ฤกษ์ดิถีพร, นายพรพรหม ประภากิตติกุล, นายเจษฎา ช้างสีสังข์, นายวิศัลย์ ประสงค์สุข และ ทีมไทยเซิร์ต เลข ISBN : 978-974-9765-32-6 พิมพ์ครั้งที่ 1 ธันวาคม 2554 พิมพ์จานวน 1,000 เล่ม ราคา 200 บาท สงวนลิขสิทธิ์ตามพระราชบัญญัติลิขสิทธิ์ พ.ศ. 2537 จัดพิมพ์และเผยแพร่โดย ศูนย์ประสานงานการรักษาความมั่นคงระบบคอมพิวเตอร์ประเทศไทย (ThaiCERT) สานักงานพัฒนาธุรกรรมทางอิเล็กทรอนิกส์ (องค์การมหาชน) หรือ สพธอ. เลขที่ 120 หมู่ 3 ศูนย์ราชการเฉลิมพระเกียรติ 80 พรรษา 5 ธันวาคม 2550 ถนนแจ้งวัฒนะ แขวงทุ่งสองห้อง เขตหลักสี่ กรุงเทพฯ 10210 โทรศัพท์ 0-2142-2483 โทรสาร 0-2143-8071 เว็บไซต์ไทยเซิร์ต http://www.thaicert.or.th เว็บไซต์ สพธอ. http://www.etda.or.th เว็บไซต์กระทรวงฯ http://www.mict .or.th
  • 5.
  • 6.
  • 7.
    5 คานา ศูนย์ประสานงานการรักษาความมั่นคงระบบคอมพิวเตอร์ ประเทศไทย หรือไทยเซิร์ต ได้เริ่มดาเนินการภายใต้สานักงานพัฒนาธุรกรรมทาง อิเล็กทรอนิกส์(องค์การมหาชน) กระทรวงเทคโนโลยีสารสนเทศและการสื่อสาร มาตั้งแต่วันที่ 1 กรกฎาคม พ.ศ. 2554 โดยให้บริการรับแจ้งเหตุภัยคุกคามด้าน สารสนเทศ และประสานงานกับหน่วยงานที่เกี่ยวข้องในการแก้ไขปัญหาที่ได้รับแจ้ง ไทยเซิร์ตมีวิสัยทัศน์ให้สังคมออนไลน์มีความมั่นคงปลอดภัย เกิดความเชื่อมั่นกับ ผู้ทาธุรกรรมทางอิเล็กทรอนิกส์ และมีพันธกิจมุ่งเน้นการประสานงานกับหน่วยงาน ในเครือข่าย และหน่วยงานที่เกี่ยวข้องในการดาเนินการแก้ไขเหตุภัยคุกคามด้าน สารสนเทศที่ได้รับแจ้ง ไทยเซิร์ตมีพันธกิจเชิงรุกในการเพิ่มขีดความสามารถของทรัพยากรบุคคลด้านการ รักษาความมั่นคงปลอดภัยสารสนเทศ และมีกิจกรรมสร้างความตระหนักและ พัฒนาทักษะความรู้ต่างๆ เช่น การซักซ้อมรับมือภัยคุกคามด้านสารสนเทศ และ การแลกเปลี่ยนและเผยแพร่ข้อมูลข่าวสารเกี่ยวกับภัยคุกคามด้านสารสนเทศ หนังสือเล่มนี้เป็นรวบรวมบทความที่ได้เผยแพร่ผ่านเว็บไซต์ของไทยเซิร์ต (www.thaicert.or.th) ในช่วงระยะเวลาวันที่ 1 กรกฎาคม - 30 พฤศจิกายน พ.ศ. 2554 ซึ่งมีเนื้อหาสาหรับกลุ่มบุคคลทั่วไป และผู้ดูแลระบบสารสนเทศ ผู้จัดทาหวัง เป็นอย่างยิ่งว่าหนังสือเล่มนี้ จะมีส่วนช่วยในการสร้างภูมิคุ้มกันให้กับสังคมออนไลน์ ของประเทศไทย คณะผู้จัดทา ศูนย์ประสานงานการรักษาความมั่นคงระบบคอมพิวเตอร์ประเทศไทย สานักงานพัฒนาธุรกรรมทางอิเล็กทรอนิกส์ (องค์การมหาชน)
  • 8.
  • 9.
    7 สารบัญ หน้า คานา........................................................................................................................5 สารบัญ.....................................................................................................................7 สารบัญรูป...............................................................................................................13 สารบัญตาราง.........................................................................................................15 ความรู้ทั่วไป.....................................................................................17 1. ความเป็นมาของไทยเซิร์ต จากกระทรวงวิทย์ฯสู่กระทรวงไอซีที................19 1.1 บริการของไทยเซิร์ต..............................................................................20 1.2 สถิติภัยคุกคามที่รายมาที่ไทยเซิร์ต........................................................22 1.3 ช่องทางการติดต่อกับไทยเซิร์ต..............................................................26 2. ข้อเสนอแนะกรอบขั้นตอนการปฏิบัติงานการรับมือภัยคุกคามด้านเทคโนโลยี สารสนเทศและการสื่อสาร................................................................................27 2.1 เอกสารอ้างอิง........................................................................................30 3. Fall of SSL???.............................................................................................35 3.1 เอกสารอ้างอิง........................................................................................41 4. ข้อแนะนาในการใช้งาน Social Media สาหรับผู้ใช้งานทั่วไป.....................43 4.1 การใช้งานรหัสผ่านอย่างมั่นคงปลอดภัย...............................................43 4.2 การใช้บริการสื่อและเครือข่ายสังคมทางเว็บอย่างมั่นคงปลอดภัย........45 4.3 การใช้งานคอมพิวเตอร์อย่างมั่นคงปลอดภัย.........................................46
  • 10.
    8 5. การจัดการไดเรกทอรีและไฟล์ในระบบยูนิกซ์..............................................49 5.1 ไดเรกทอรีและไฟล์ในระบบยูนิกซ์.........................................................49 5.2โครงสร้างของไดเรกทอรีในระบบยูนิกซ์................................................50 5.3 คาสั่งที่เกี่ยวข้องกับการใช้งานไดเรกทอรีและไฟล์................................51 5.4 การกาหนดสิทธิการใช้งาน (Permission) ............................................58 5.5 เอกสารอ้างอิง........................................................................................64 6. การบริหารจัดการผู้ใช้บนระบบ UNIX.........................................................65 6.1 ประเภทของผู้ใช้....................................................................................65 6.2 ไฟล์ที่ใช้กาหนดค่าให้กับผู้ใช้.................................................................66 6.3 คาสั่งพื้นฐานที่ใช้บริหารจัดการผู้ใช้บนระบบ........................................71 6.4 เอกสารอ้างอิง........................................................................................74 7. คาสั่งที่เกี่ยวข้องกับการประมวลผลข้อความในระบบปฏิบัติการ UNIX.......77 7.1 ตัวอย่างคาสั่งที่เกี่ยวข้องกับการประมวลผลข้อความที่ใช้งานบ่อย.......77 7.2 เอกสารอ้างอิง........................................................................................87 8. เพิ่มความปลอดภัยให้ SSH Server ด้วย Key Authentication................89 8.1 วิธีการใช้งาน Secure Shell (SSH) ด้วย Key Authentication.........91 8.2 เอกสารอ้างอิง........................................................................................97 9. เชื่อมต่ออย่างปลอดภัยด้วย SSH Tunnel...................................................99 9.1 การทา Local Port Forward และ Remote Port Forward.........100 9.2 เอกสารอ้างอิง.....................................................................................106 รู้ทันภัยคุกคาม...............................................................................107 10. ช่องโหว่ของ Apache HTTPD 1.3/2.X Range Header (CVE-2011-
  • 11.
    9 3192).............................................................................................................109 10.1 ข้อมูลทั่วไป.......................................................................................109 10.2 ผลกระทบ.........................................................................................109 10.3วิธีการแก้ไข......................................................................................110 10.4 แหล่งข้อมูลอื่นๆ ที่เกี่ยวข้อง............................................................111 10.5 เอกสารอ้างอิง..................................................................................112 11. เซิร์ฟเวอร์ในโครงการ Kernel.org ถูกเจาะระบบ..................................113 11.1 ข้อมูลทั่วไป.......................................................................................113 11.2 ผลกระทบ.........................................................................................114 11.3 ระบบที่มีผลกระทบ..........................................................................114 11.4 วิธีการแก้ไข......................................................................................114 11.5 เอกสารอ้างอิง..................................................................................114 12. ระวังภัย แฮกเกอร์ออกใบรับรองปลอมของ Google, Yahoo!, Mozilla และอื่นๆ.........................................................................................................115 12.1 ข้อมูลทั่วไป.......................................................................................115 12.2 ผลกระทบ.........................................................................................116 12.3 ระบบที่มีผลกระทบ..........................................................................116 12.4 วิธีการแก้ไข......................................................................................117 12.5 เอกสารอ้างอิง..................................................................................118 13. APT ภัยคุกคามใหม่หรือแค่ชื่อใหม่ของภัยเดิม .......................................121 13.1 ตัวอย่างการโจมตีแบบ APT.............................................................122 13.2 ภัยคุกคามใหม่หรือแค่ชื่อใหม่ของภัยเดิม.........................................122 13.3 เอกสารอ้างอิง..................................................................................123
  • 12.
    10 14. การแก้ไขช่องโหว่เรื่องความมั่นคงปลอดภัยใน AdobeReader และ Adobe Acrobat...........................................................................................125 14.1 ข้อมูลทั่วไป.......................................................................................125 14.2 ผลกระทบ.........................................................................................125 14.3 ระบบที่มีผลกระทบ..........................................................................126 14.4 วิธีการแก้ไข......................................................................................127 14.5 เอกสารอ้างอิง..................................................................................129 15. Man-in-the-Middle 101......................................................................131 15.1 Man-in-the-Browser.....................................................................132 15.2 Man-in-the-Mailbox.....................................................................133 15.3 ควรรับมืออย่างไร?...........................................................................134 15.4 เอกสารอ้างอิง..................................................................................135 16. Zeus Trojan (Zbot) ม้าโทรจันปล้นธนาคารทั่วโลก.............................137 16.1 เอกสารอ้างอิง..................................................................................140 17. รู้จักและป้องกันภัยจาก Website Defacement...................................141 17.1 ตัวอย่างการโจมตีลักษณะ Website Defacement........................146 17.2 ควรรับมืออย่างไร.............................................................................147 17.3 เอกสารอ้างอิง..................................................................................150 18. ระวังภัย มัลแวร์ DuQu โจมตีวินโดวส์ด้วยฟอนต์..................................153 18.1 ข้อมูลทั่วไป.......................................................................................153 18.2 การทางาน........................................................................................154 18.3 วิธีการแก้ไข......................................................................................155 18.4 แหล่งข้อมูลอื่นๆ ที่เกี่ยวข้อง............................................................155
  • 13.
    11 18.5 เอกสารอ้างอิง..................................................................................155 19. ช่องโหว่BIND9 (CVE-2011-4313)........................................................157 19.1 ข้อมูลทั่วไป.......................................................................................157 19.2 ผลกระทบ.........................................................................................157 19.3 ระบบที่ได้รับผลกระทบ....................................................................158 19.4 วิธีแก้ไข.............................................................................................158 19.5 แหล่งข้อมูลที่เกี่ยวข้อง.....................................................................158 19.6 เอกสารอ้างอิง..................................................................................158 20. การกู้ข้อมูลจากฮาร์ดดิสก์ที่ถูกน้าท่วม....................................................159 20.1 โครงสร้างการทางานของฮาร์ดดิสก์.................................................159 20.2 ความเสียหายที่อาจเกิดขึ้นได้กับฮาร์ดดิสก์......................................161 20.3 ทาอย่างไรหากฮาร์ดดิสก์จมน้า........................................................162 20.4 การกู้ข้อมูลจากฮาร์ดดิสก์ที่ถูกลบหรือเขียนข้อมูลทับ.....................163 20.5 การป้องกันข้อมูลสูญหาย.................................................................164 20.6 ข้อมูลเพิ่มเติม...................................................................................164 20.7 เอกสารอ้างอิง..................................................................................165
  • 14.
  • 15.
    13 สารบัญรูป หน้า รูปที่ 1 (1-1)สถิติภัยคุกคามในระหว่างวันที่ 1 กรกฎาคม ถึง 30 พฤศจิกายน 2554 แยกตามประเภทภัยคุกคาม.......................................................................25 รูปที่ 2 (3-1) SSL Certificate ที่ผิดปกติหรือไม่เป็นที่ยอมรับ..............................37 รูปที่ 3 (4-1) การตั้งค่ารหัสผ่านอย่างมั่นคงปลอดภัย............................................44 รูปที่ 4 (4-2) ไม่ควรเปิดเผยรหัสผ่าน.....................................................................44 รูปที่ 5 (4-3) การใช้บริการสื่อและเครือข่ายสังคมทางเว็บ....................................45 รูปที่ 6 (4-4) Facebook.......................................................................................46 รูปที่ 7 (5-1) โครงสร้างของไดเรกทอรีในระบบยูนิกซ์...........................................50 รูปที่ 8 (5-2) แสดงรายชื่อไดเรกทอรีหรือไฟล์ทั้งหมดในไดเรกทอรีที่ระบุข้อมูลแบบ ละเอียด ใช้คาสั่ง ls -l............................................................................................54 รูปที่ 9 (5-3) แสดงรายชื่อไดเรกทอรีหรือไฟล์ทั้งหมดในไดเรกทอรีที่ระบุแสดงผล อธิบายได้ตามหมายเลข..........................................................................................54 รูปที่ 10 (5-4) การสร้างลิงก์ Hard Link...............................................................56 รูปที่ 11 (5-5) การสร้างลิงก์ Symbolic Link.......................................................56 รูปที่ 12 (5-6) การตรวจสอบประเภทของไฟล์......................................................57 รูปที่ 13 (5-7) การกาหนดสิทธิการใช้งาน (Permission).....................................60 รูปที่ 14 (6-1) ตัวอย่างรายละเอียดผู้ใช้ชื่อ Oracle [6-4] ....................................67 รูปที่ 15 (6-2) ตัวอย่างข้อมูลรายละเอียดในไฟล์ /etc/shadow [6-6] ...............68 รูปที่ 16 (6-3) ตัวอย่างข้อมูลรายละเอียดในไฟล์ /etc/group [6-9]...................70 รูปที่ 17 (7-1) Standard Streams [7-2]............................................................82
  • 16.
    14 รูปที่ 18 (7-2)การใช้ Redirection กับ stdout และ stderr..............................83 รูปที่ 19 (9-1) แสดงให้เห็นถึงเส้นทางการรับส่งข้อมูลเมื่อมีการใช้ฟังก์ชัน Port Forward ในอุปกรณ์ Router.............................................................................100 รูปที่ 20 (9-2) สภาพแวดล้อมของระบบ............................................................101 รูปที่ 21 (9-3) แบบจาลองการเชื่อมต่อจากคาสั่ง ssh -L 8080:164.115.4.3:80 user1@164.115.4.3..........................................................................................102 รูปที่ 22 (9-4) แบบจาลองการเชื่อมต่อจากคาสั่ง ssh -L 8080:172.25.1.5:80 user1@164.115.4.3..........................................................................................103 รูปที่ 23 (9-5) แบบจาลองการเชื่อมต่อจากคาสั่ง ssh -R 8080:122.248.233.17:80 user1@164.115.4.3.............................................105 รูปที่ 24 (9-6) แบบจาลองการเชื่อมต่อจากคาสั่ง ssh -R 8080:192.168.1.5:80 user1@164.115.4.3..........................................................................................105 รูปที่ 25 (15-1) ภาพประกอบอ้างอิงจาก nakedsecurity................................134 รูปที่ 26 (16-1) เว็บไซต์ปลอมที่สร้างขึ้นเพื่อหลอกลวงเหยื่อ [16-4] ................138 รูปที่ 27 (16-2) โดเมน .com ที่ตกเป็นเป้าหมายของซุส [16-5].......................139 รูปที่ 28 (17-1) แสดงให้เห็นถึงการแจ้งเตือนถึงเว็บไซต์ที่ถูกโจมตีจากเว็บไซต์ Search engine ของ Google............................................................................142 รูปที่ 29 (17-2) แสดงให้เห็นถึงหน้าเว็บไซต์หลักแห่งหนึ่งที่ถูก Defacement.142 รูปที่ 30 (17-3) แสดงให้เห็นหน้าเว็บไซต์เมื่อมีการเรียกไฟล์สคริปต์ประเภท Web Shell...................................................................................................................144 รูปที่ 31 (20-1) ฮาร์ดดิสก์แบบจานแม่เหล็ก [20-1]..........................................159 รูปที่ 32 (20-2) ฮาร์ดดิสก์แบบ Solid-state [20-3].........................................160 รูปที่ 33 (20-3) คราบฝุ่นที่ติดอยู่บนฮาร์ดดิสก์เมื่อน้าแห้ง [20-12]..................163
  • 17.
    15 สารบัญตาราง หน้า ตารางที่ 1 (1-1)ประเภทภัยคุกคามของเทคโนโลยีสารสนเทศโดย eCSIRT........22 ตารางที่ 2 (5-1) โครงสร้างไดเรกทอรีหลักๆ ของระบบยูนิกซ์..............................50 ตารางที่ 3 (7-1) คาสั่ง head.................................................................................78 ตารางที่ 4 (7-2) คาสั่ง tail...................................................................................78 ตารางที่ 5 (7-3) คาสั่ง echo.................................................................................79 ตารางที่ 6 (7-4) คาสั่ง cat....................................................................................79 ตารางที่ 7 (7-5) คาสั่ง wc.....................................................................................80 ตารางที่ 8 (7-6) คาสั่ง grep..................................................................................84 ตารางที่ 9 (7-7) ตัวอย่าง Regular Expression...................................................85
  • 18.
  • 19.
  • 20.
  • 21.
    19 1. ความเป็นมาของไทยเซิร์ต จากกระทรวงวิทย์ฯ สู่กระทรวงไอซีที ในเดือนกุมภาพันธ์ที่ผ่านมาคณะรัฐมนตรีได้มีมติให้จัดตั้ง สานักงานพัฒนาธุรกรรมทางอิเล็กทรอนิกส์ (องค์การมหาชน) หรือ สพธอ. ภายใต้ กระทรวงเทคโนโลยีสารสนเทศและการสื่อสาร และได้มีการโอนภารกิจของศูนย์ ประสานงานการรักษาความมั่นคงระบบคอมพิวเตอร์ประเทศไทย หรือ ไทยเซิร์ต จากศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ สานักงานพัฒนา วิทยาศาสตร์และเทคโนโลยีแห่งชาติ กระทรวงวิทยาศาสตร์และเทคโนโลยี มายัง สพธอ. เพื่อให้การดาเนินงานของ สพธอ. ด้านการสร้างความเชื่อมั่นในการทา ธุรกรรมทางอิเล็กทรอนิกส์มีความเข้มแข็ง ไทยเซิร์ตได้เปิดให้บริการอย่างเต็มรูปแบบภายใต้ สพธอ. มาตั้งแต่วันที่ 1 กรกฎาคม 2554 โดยมีวิสัยทัศน์ให้สังคมออนไลน์มีความมั่นคงปลอดภัย เกิด ความเชื่อมั่นกับผู้ทาธุรกรรมทางอิเล็กทรอนิกส์ พันธกิจของไทยเซิร์ต มุ่งเน้นการ ประสานงานกับหน่วยงานในเครือข่าย และหน่วยงานที่เกี่ยวข้องในการดาเนินการ แก้ไขเหตุภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสารที่ได้รับแจ้ง นอกจากนี้ไทยเซิร์ตยังมีพันธกิจเชิงรุกที่ให้ความสาคัญกับการพัฒนาทรัพยากร บุคคลเพื่อเพิ่มขีดความสามารถด้านการรักษาความมั่นคงปลอดภัย เนื่องจากงานของไทยเซิร์ตมีลักษณะเป็นการประสานงานกับหน่วยงานต่างๆ ไทยเซิร์ตจึงมุ่งมั่นที่จะสร้างความร่วมมือกับหน่วยงานทุกประเภททั้งในและ ต่างประเทศในการแก้ไขเหตุภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร เช่น ผู้ให้บริการอินเทอร์เน็ต และ สานักป้องกันและปราบปรามการกระทา ความผิดทางเทคโนโลยีสารสนเทศ สานักงานปลัดกระทรวงเทคโนโลยีสารสนเทศ และการสื่อสาร ไทยเซิร์ตสร้างความร่วมมือระหว่างประเทศผ่านเวที FIRST
  • 22.
    20 (Forum of IncidentResponse and Security Teams) สาหรับความร่วมมือกับ ประเทศทั่วโลก และเวที APCERT (Asia Pacific CERT) สาหรับความร่วมมือกับ ประเทศในภาคพื้นเอเชียแปซิฟิก ด้านการพัฒนาทรัพยากรบุคคล ไทยเซิร์ตให้ความสาคัญกับการเผยแพร่ความรู้และ ข้อมูลข่าวสารเกี่ยวกับการรักษาความมั่นคงปลอดภัยสารสนเทศ เพื่อเป็นการสร้าง ภูมิคุ้มกันเบื้องต้นทางด้านไอที และจัดอบรมสัมมนาให้กับผู้ทาธุรกรรมทาง อิเล็กทรอนิกส์เฉพาะกลุ่มที่มีความต้องการข้อมูลข่าวสารเป็นการเฉพาะ เช่น กลุ่ม ธุรกิจการเงินการธนาคาร หรือกลุ่มสถาบันวิจัยและสถาบันการศึกษา นอกจากนี้ เพื่อให้เกิดความเข้าใจและได้ลงมือปฏิบัติ ไทยเซิร์ตยังจัดและร่วมในกิจกรรม ซักซ้อมการรับมือภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสารกับหน่วยงาน ทั้งในประเทศและต่างประเทศอีกด้วย 1.1 บริการของไทยเซิร์ต ในการสนับสนุนให้สังคมออนไลน์มีความมั่นคงปลอดภัยและเกิดความเชื่อมั่นกับ ผู้ทาธุรกรรมทางอิเล็กทรอนิกส์ ไทยเซิร์ต ให้บริการหลัก คือ บริการประสานงาน แก้ไขภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร บริการข้อมูลข่าวสาร ความมั่นคงปลอดภัยสารสนเทศ และบริการวิชาการเกี่ยวกับการรักษาความมั่นคง ปลอดภัยสารสนเทศ บริการประสานงานแก้ไขภัยคุกคามด้านเทคโนโลยีสารสนเทศและ การสื่อสาร ปัจจุบันไทยเซิร์ตให้บริการประสานงานแก้ไขเหตุภัยคุกคามด้านเทคโนโลยี สารสนเทศและการสื่อสาร ทางโทรศัพท์และทางอีเมลแก่บุคคลทั่วไป สถาบันการศึกษาและสถาบันวิจัย หน่วยงานภาครัฐและเอกชนทั่วโลก เมื่อได้รับ แจ้งเหตุผู้เชี่ยวชาญของไทยเซิร์ตจะตรวจสอบข้อมูลที่ได้รับแจ้งเพื่อยืนยันว่าเหตุภัย คุกคามที่ได้รับแจ้งได้เกิดขึ้นและมีอยู่จริง แล้วจึงวิเคราะห์ข้อมูลต่อเพื่อหา
  • 23.
    21 หน่วยงานที่เป็นต้นเหตุของปัญหา และดาเนินการประสานงานไปยังหน่วยงาน ดังกล่าวเพื่อให้ดาเนินการแก้ไขปัญหา ไทยเซิร์ตมีระบบการติดตามความคืบหน้า ของการจัดการปัญหาภัยคุกคามและได้กาหนดมาตรฐานการให้บริการไว้คือ ไทยเซิร์ตจะดาเนินการแจ้งหน่วยงานที่เกี่ยวข้องเพื่อแก้ปัญหาที่ได้รับแจ้งและ รายงานสถานะการดาเนินงานภายใน 2 วันทาการ มีการติดตามผลการดาเนินงาน ทุก 3 วันทาการ บริการข้อมูลข่าวสารความมั่นคงปลอดภัยสารสนเทศ ไทยเซิร์ตอยู่ในเครือข่ายความร่วมมือของหน่วยงานที่มีบทบาทในการตอบสนองต่อ การแจ้งเหตุภัยคุกคาม (Computer Security Incident Response Team: CSIRT หรือ Computer Emergency Response Team: CERT) ซึ่งมีภารกิจใน การแจ้งเตือนภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสารที่ได้รับแจ้งจาก หน่วยงาน CSIRT อื่นๆในเครือข่ายหรือที่ตรวจพบกับผู้ใช้งานภายในประเทศไทย เพื่อสร้างความตระหนักและความพร้อมในการรับมือต่อภัยคุกคามที่เกิดขึ้น โดย ผู้เชี่ยวชาญของไทยเซิร์ตจะวิเคราะห์ข้อมูลภัยคุกคามที่มีผลกระทบสูงกับผู้ใช้งาน พร้อมเสนอแนะข้อควรปฏิบัติในการรับมือ แก้ไขหรือป้องกันภัยคุกคามในบทความ แจ้งเตือนภัยคุกคามของไทยเซิร์ต นอกจากนั้น ไทยเซิร์ตจัดทาข้อมูลเชิงสถิติของ ภัยคุกคามที่รายงานมาที่ไทยเซิร์ตเผยแพร่บนเว็บไซต์ไทยเซิร์ตเป็นรายเดือน เพื่อ ใช้วิเคราะห์แนวโน้มของภัยคุกคามที่เกิดภายในประเทศไทย บริการวิชาการในการรักษาความมั่นคงปลอดภัยสารสนเทศ ไทยเซิร์ตมีผู้เชี่ยวชาญที่มีศักยภาพและความรู้ที่สามารถให้บริการวิชาการในการ รักษาความมั่นคงปลอดภัยสารสนเทศกับหน่วยงานทั้งภายในและต่างประเทศ ไทย เซิร์ตให้บริการกับหน่วยงานภายในประเทศในส่วนของการให้คาปรึกษาในการ วิเคราะห์ข้อมูลภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร การจัดทาแผน และนโยบายทางด้านเทคโนโลยีสารสนเทศ เพื่อให้สอดคล้องกับมาตรฐานสากล ทางด้านเทคโนโลยีสารสนเทศและสอดคล้องกับข้อกาหนดของกฎหมาย จัด
  • 24.
    22 ฝึกอบรมสัมมนา เพื่อสร้างความตระหนักหรือเสริมสร้างศักยภาพของบุคลากรของ หน่วยงานให้สามารถป้องกันและแก้ไขภัยคุกคามด้านเทคโนโลยีสารสนเทศและการ สื่อสารจัดการซักซ้อมรับมือภัยคุกคาม เพื่อเสริมทักษะและสร้างความพร้อมในการ รับมือภัยคุกคามของหน่วยงานรวมถึงการสนับสนุนวิทยากรในการบรรยาย เพื่อ สร้างความตระหนักและให้ความรู้กับหน่วยงานทั้งในและต่างประเทศ 1.2 สถิติภัยคุกคามที่รายงานมาที่ไทยเซิร์ต ตั้งแต่วันที่ 1 กรกฎาคม ถึง 30 พฤศจิกายน 2554 ไทยเซิร์ตได้รับแจ้งเหตุภัย คุกคามจากหน่วยงานทั้งในและต่างประเทศโดยเฉลี่ยมากกว่า 100 เรื่องต่อเดือน ข้อมูลเชิงสถิติเกี่ยวกับเหตุภัยคุกคามที่ไทยเซิร์ตได้รับแจ้งสามารถจาแนกเป็น 9 ประเภทตามที่ได้กาหนดโดย The European Computer Security Incident Response Team (eCSIRT) ซึ่งเป็นเครือข่ายความร่วมมือของหน่วยงาน CSIRT ในสหภาพยุโรป ตารางที่ 1 (1-1) ตารางที่ 1 (1-1) ประเภทภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร โดย eCSIRT ประเภทภัย คุกคาม คาอธิบาย 1 เนื้อหาที่เป็น ภัยคุกคาม (Abusive Content) ภัยคุกคามที่เกิดจากการใช้/เผยแพร่ข้อมูลที่ไม่เป็นจริงหรือไม่ เหมาะสม (Abusive Content) เพื่อทาลายความน่าเชื่อถือ ของบุคคลหรือสถาบัน เพื่อก่อให้เกิดความไม่สงบ หรือข้อมูลที่ ไม่ถูกต้องตามกฎหมาย เช่น ลามก อนาจาร หมิ่นประมาท และรวมถึงการโฆษณาขายสินค้าต่างๆ ทางอีเมลที่ผู้รับไม่ได้มี ความประสงค์จะรับข้อมูลโฆษณานั้นๆ (SPAM) 2 โปรแกรมไม่พึง ประสงค์ (Malicious Code) ภัยคุกคามที่เกิดจากโปรแกรมหรือซอฟต์แวร์ที่ถูกพัฒนาขึ้น เพื่อส่งให้เกิดผลลัพธ์ที่ไม่พึงประสงค์ กับผู้ใช้งานหรือระบบ (Malicious Code) เพื่อทาให้เกิดความขัดข้องหรือเสียหายกับ ระบบที่โปรแกรมหรือซอฟต์แวร์ประสงค์ร้ายนี้ติดตั้งอยู่ โดย ปกติโปรแกรมหรือซอฟต์แวร์ประสงค์ร้ายประเภทนี้ต้องอาศัย
  • 25.
    23 ประเภทภัย คุกคาม คาอธิบาย ผู้ใช้งานเป็นผู้เปิดโปรแกรมหรือซอฟต์แวร์ก่อน จึงจะสามารถ ติดตั้งตัวเองหรือทางานได้ เช่นVirus, Worm, Trojan หรือ Spyware ต่างๆ 3 ความพยายาม รวบรวมข้อมูล ของระบบ (Information Gathering) ภัยคุกคามที่เกิดจากความพยายามในการรวบรวมข้อมูล จุดอ่อนของระบบของผู้ไม่ประสงค์ดี (Scanning) ด้วยการ เรียกใช้บริการต่างๆที่อาจจะเปิดไว้บนระบบ เช่น ข้อมูล เกี่ยวกับระบบปฏิบัติการ ระบบซอฟต์แวร์ที่ติดตั้งหรือใช้งาน ข้อมูลบัญชีชื่อผู้ใช้งาน (User Account) ที่มีอยู่บนระบบเป็น ต้น รวมถึงการเก็บรวบรวมหรือตรวจสอบข้อมูลจราจรบน ระบบเครือข่าย (Sniffing) และการล่อลวงหรือใช้เล่ห์กลต่างๆ เพื่อให้ผู้ใช้งานเปิดเผยข้อมูลที่มีความสาคัญของระบบ (Social Engineering) 4 ความพยายาม จะบุกรุกเข้า ระบบ (Intrusion Attempts) ภัยคุกคามที่เกิดจากความพยายามจะบุกรุก/เจาะเข้าระบบ (Intrusion Attempts) ทั้งที่ผ่านจุดอ่อนหรือช่องโหว่ที่เป็นที่ รู้จักในสาธารณะ (CVE- Common Vulnerabilities and Exposures) หรือผ่านจุดอ่อนหรือช่องโหว่ใหม่ที่ยังไม่เคยพบ มาก่อน เพื่อจะได้เข้าครอบครองหรือทาให้เกิดความขัดข้องกับ บริการต่างๆของระบบ ภัยคุกคามนี้รวมถึงความพยายามจะบุก รุก/เจาะระบบผ่านช่องทางการตรวจสอบบัญชีชื่อผู้ใช้งานและ รหัสผ่าน (Login) ด้วยวิธีการสุ่ม/เดาข้อมูล หรือวิธีการทดสอบ รหัสผ่านทุกค่า (Brute Force) 5 การบุกรุกหรือ เจาะระบบได้ สาเร็จ (Intrusions) ภัยคุกคามที่เกิดกับระบบที่ถูกบุกรุก/เจาะเข้าระบบได้สาเร็จ (Intrusions) และระบบถูกครอบครองโดยผู้ที่ไม่ได้รับอนุญาต 6 การโจมตี สภาพความ พร้อมใช้งาน ของระบบ ภัยคุกคามที่เกิดจากการโจมตีสภาพความพร้อมใช้งานของ ระบบ เพื่อทาให้บริการต่างๆของระบบไม่สามารถให้บริการได้ ตามปกติ มีผลกระทบตั้งแต่เกิดความล่าช้าในการตอบสนอง ของบริการจนกระทั่งระบบไม่สามารถให้บริการต่อไปได้ ภัย
  • 26.
    24 ประเภทภัย คุกคาม คาอธิบาย (Availability) คุกคามอาจจะเกิดจากการโจมตีที่บริการของระบบโดยตรง เช่น การโจมตีประเภทDOS (Denial of Service) แบบต่างๆ หรือการโจมตีโครงสร้างพื้นฐานที่สนับสนุนการให้บริการของ ระบบ เช่น อาคาร สถานที่ ระบบไฟฟ้า ระบบปรับอากาศ 7 การเข้าถึงหรือ เปลี่ยนแปลง แก้ไขข้อมูล สาคัญโดยไม่ได้ รับอนุญาต (Information Security) ภัยคุกคามที่เกิดจากการที่ผู้ไม่ได้รับอนุญาตสามารถเข้าถึง ข้อมูลสาคัญ (Unauthorized Access) หรือเปลี่ยนแปลงแก้ไข ข้อมูล (Unauthorized modification) ได้ 8 การฉ้อฉล ฉ้อโกงหรือ หลอกลวงเพื่อ ผลประโยชน์ (Fraud) ภัยคุกคามที่เกิดจากการฉ้อฉล ฉ้อโกงหรือการหลอกลวงเพื่อ ผลประโยชน์ (Fraud) สามารถเกิดได้ในหลายลักษณะ เช่น การลักลอบใช้งานระบบหรือทรัพยากรทางสารสนเทศที่ไม่ได้ รับอนุญาตเพื่อแสวงหาผลประโยชน์ของตนเอง หรือการขาย สินค้าหรือซอฟต์แวร์ที่ละเมิดลิขสิทธิ 9 ภัยคุกคามอื่นๆ นอกเหนือจาก ที่กาหนดไว้ ข้างต้น (Other) ภัยคุกคามประเภทอื่นๆ นอกเหนือจากที่กาหนดไว้ข้างต้น ระบุ ไว้เพื่อเป็นตัวชี้วัดถึงภัยคุกคามประเภทใหม่หรือไม่สามารถจัด ประเภทได้ตามที่ระบุไว้ข้างต้น โดยถ้าจานวนภัยคุก คามอื่นๆ ในข้อนี้มีจานวนมากขึ้น แสดงถึงความจาเป็นที่จะต้องปรับปรุง การจัดแบ่งประเภทภัยคุกคามนี้ใหม่ เรื่องที่ได้รับรายงานสามารถแบ่งแยกตามประเภทภัยคุกคามด้านเทคโนโลยี สารสนเทศและการสื่อสาร แสดงดังรูปที่ 1 (1-1) โดยสามารถจัดลาดับตามจานวน เหตุภัยคุกคามได้รับแจ้งได้เป็นประเภทใหญ่ๆได้ 6 ด้าน ภัยคุกคามส่วนใหญ่ ประมาณ 48% จะเป็นภัยคุกคามด้าน การฉ้อฉล ฉ้อโกงหรือหลอกลวง เพื่อ ผลประโยชน์ (Fraud) ซึ่งทั้งหมดในส่วนนี้เป็นกรณี Phishing ที่เกิดกับสถานบัน การเงินทั้งในประเทศและต่างประเทศ ซึ่งเป็นภัยคุกคามที่ส่งผลกระทบต่อโดยตรง
  • 27.
    25 ผู้ใช้บริการชาระเงินทางอิเล็กทรอนิกส์ ในส่วนภัยคุกคามที่รองลงมาเป็นภัยคุกคาม ที่เกี่ยวความพยายามที่จะโจมตีและเจาะระบบ โดยเป็นภัยคุกคามด้านการบุกรุก หรือเจาะระบบได้สาเร็จ (Intrusions) จานวน 13.6% และภัยคุกคามด้านความ พยายามรวบรวมข้อมูลของระบบ (Information Gathering) จานวน 13.5% สาหรับภัยคุกคามในลาดับถัดไปเป็นภัยคุกคามทางด้านเนื้อหาที่เป็นภัยคุกคาม (Abusive Content) จานวน 9.9% ซึ่งทั้งหมดเป็นรายงานภัยคุกคามด้าน เทคโนโลยีสารสนเทศและการสื่อสาร ที่ได้รับแจ้งจากหน่วยงานในต่างประเทศ และพบว่ามีลักษณะเป็นการแจ้งเตือน SPAM ในลาดับสุดท้ายเป็นภัยคุกคาม ทางด้าน โปรแกรมไม่พึงประสงค์ (Malicious Code) จานวน 9.9% รูปที่ 1 (1-1) สถิติภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร ในระหว่าง วันที่ 1 กรกฎาคม ถึง 30 พฤศจิกายน 2554 แยกตามประเภทภัยคุกคาม ไทยเซิร์ตได้ดาเนินการแก้ปัญหาภัยคุกคามที่ได้รับแจ้งไปได้ประมาณ 80% ส่วนอีก 20% ที่เหลือมีการติดตามความคืบหน้าของการแก้ไขปัญหาทุก 3 วัน สาหรับข้อมูลเชิงสถิติเกี่ยวกับภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร สามารถดูได้ที่ www.thaicert.or.th/statistics.html
  • 28.
    26 1.3 ช่องทางการติดต่อกับไทยเซิร์ต ไทยเซิร์ตได้จัดเตรียมช่องทางการติดต่อเพื่อแจ้งเหตุภัยคุกคามไว้ 2ช่องทาง ประกอบด้วย ทางโทรศัพท์หมายเลข 02-142-2483 เวลา 8.30 – 17.30 น. ทุกวัน ยกเว้นวันหยุดราชการ และทางอีเมลที่ report@thaicert.or.th
  • 29.
    27 2. ข้อเสนอแนะกรอบขั้นตอนการปฏิบัติงานการ รับมือภัยคุกคามด้านเทคโนโลยีสารสนเทศและ การสื่อสาร ผู้เรียบเรียง: สรณันท์จิวะสุรัตน์ วันที่เผยแพร่: 5 ก.ย. 2554 ปรับปรุงล่าสุด: 5 ก.ย. 2554 ศูนย์ประสานงานการรักษาความมั่นคงระบบคอมพิวเตอร์ประเทศไทย (ThaiCERT) จัดทาข้อเสนอแนะกรอบขั้นตอนการปฏิบัติงานการรับมือภัยคุกคามด้านเทคโนโลยี สารสนเทศและการสื่อสาร โดยยึดรูปแบบและกรอบขั้นตอนการปฏิบัติงานที่อ้างอิง หลักปฏิบัติสากล [2-1] [2-2] เพื่อให้หน่วยงานหรือองค์กรต่างๆ สามารถ ดาเนินการรับมือภัยคุกคามฯ ได้อย่างมีประสิทธิภาพ บรรเทาความเสียหายที่ เกิดขึ้นให้ส่งผลกระทบน้อยที่สุด ป้องกันไม่มีการลุกลามหรือขยาย วงกว้างไปยังจุดอื่นๆ รวมถึงป้องกันไม่ให้เกิดเหตุการณ์ดังกล่าวซ้าขึ้นอีก โดยมี ขั้นตอนในการปฏิบัติงานบริหารจัดการภัยคุกคามด้านเทคโนโลยีสารสนเทศและ การสื่อสาร 5 ขั้นตอนดังนี้ 1. การระบุเหตุและรายงานภัยคุกคามฯ (Identification and Reporting) วัตถุประสงค์ เพื่อตรวจสอบและบันทึกภัยคุกคามฯ ประเมินผลกระทบ ของภัยคุกคามฯ และระบุถึงหน่วยงาน/บุคคลที่เกี่ยวข้องในการแจ้งเหตุ และรับมือกับภัยคุกคามฯ  ตรวจสอบ วิเคราะห์และบันทึกข้อมูลต่างๆ เกี่ยวกับภัยคุกคามฯ ที่ได้รับแจ้ง ได้แก่ o ผู้แจ้ง
  • 30.
    28 o วันเวลาที่ได้รับแจ้ง o รายละเอียดทางกายภาพของภัยคุกคามฯประกอบ- ด้วย ประเภทของภัยคุกคาม ข้อมูลของเครื่องที่ก่อเหตุ และเครื่องที่ถูกโจมตี รวมถึงเหตุการณ์ภัยคุกคามที่ สังเกตได้ o ระดับผลกระทบ/ความรุนแรงของภัยคุกคาม  ระบุหน่วยงาน/ผู้เกี่ยวข้องที่ต้องแจ้งเหตุภัยคุกคามฯ เพื่อ ดาเนินการรับมือและแก้ไขภัยคุกคามฯ รวมถึงการแจ้งเหตุไปยัง ผู้บริหารในกรณีที่ภัยคุกคามฯ มีระดับความรุนแรงสูง ซึ่งอาจ ส่งผลกระทบและความเสียหายกับหน่วยงานในวงกว้าง 2. การควบคุมภัยคุกคามฯ (Containment) วัตถุประสงค์ บรรเทาความเสียหายที่เกิดจากภัยคุกคาม ให้ส่งผลกระทบ น้อยที่สุดและป้องกันไม่ให้มีการลุกลามหรือขยายวงไปยังจุดอื่นๆ  ประเมินผลกระทบและความเสียหายที่จากภัยคุกคามฯ และ ดาเนินการบรรเทาหรือควบคุมความเสียหายที่เกิดขึ้นไม่ให้มีการ ลุกลามเพิ่มเติม  ระบุแหล่งที่มาของภัยคุกคามฯ และดาเนินการกาจัดหรือปิดช่อง ทางการติดต่อต่างๆ กับแหล่งที่มาของภัยคุกคามฯ  เก็บรวบรวม บันทึกผลการตรวจสอบ และสาเนาข้อมูลทั้งหมดที่ พบหรือเกี่ยวข้องกับภัยคุกคามฯ หลังดาเนินการควบคุมภัย คุกคามฯ ได้สาเร็จ เพื่อใช้ในกระบวนการตรวจพิสูจน์หลักฐาน ทางคอมพิวเตอร์ 3. การแก้ไขและจากัดภัยคุกคามฯ (Eradication) วัตถุประสงค์ เพื่อกาจัดเหตุของภัยคุกคามฯที่เกิด และป้องกันไม่ให้เกิดภัย คุกคามในลักษณะเดิมซ้าอีก
  • 31.
    29  วิเคราะห์และหาสาเหตุของภัยคุกคามฯ ที่เกิดขึ้นและพร้อม ดาเนินการแก้ไขเพื่อกาจัดเหตุ ซึ่งอาจจะเป็นการดาเนินการ ภายในของหน่วยงานเอง หรือ ติดต่อขอความช่วยเหลือจาก หน่วยงานภายนอกที่มีศักยภาพให้ดาเนินการให้ความช่วยเหลือ  กาจัดข้อมูล โปรแกรม หรือสิ่งแปลกปลอมทั้งหลายออกจาก ระบบที่ถูกโจมตี 4. การกู้คืนระบบ (Recovery) วัตถุประสงค์ เพื่อกู้คืนระบบให้อยู่ในสภาพการให้บริการแบบปกติ  ดาเนินการกู้ข้อมูลหรือระบบสารสนเทศให้กลับคืนสู่สภาวะปกติ หลังกาจัดเหตุได้แล้ว  ตรวจสอบอย่างถี่ถ้วน เพื่อให้มั่นใจว่าระบบสารสนเทศที่กู้คืน หรือที่เกี่ยวข้องจะได้รับการปกป้องอย่างเหมาะสม เพื่อป้องกัน การเกิดเหตุซ้า รวมถึงต้องมีการเฝ้าระวังเหตุอย่างใกล้ชิด 5. กิจกรรมหลังภัยคุกคามฯ (Post-Incident Activity) วัตถุประสงค์ ประเมินผลดาเนินการรับมือภัยคุกคามฯ แจ้งผลดาเนินการ ให้ผู้ที่เกี่ยวข้องรับทราบ และบันทึกรายงานการดาเนิน เพื่อรับมือกับภัยคุกคามฯ  ประเมินสถานะของระบบและผลกระทบต่อข้อมูลหลัง ดาเนินการกู้คืนระบบ และแจ้งผลต่อผู้เกี่ยวข้องให้ทราบ  บันทึกรายละเอียดการดาเนินการเพื่อรับมือภัยคุกคามฯ ได้แก่ o ผู้รับผิดชอบดาเนินการ o วันเวลาที่ดาเนินการ o รายละเอียดที่ดาเนินการในแต่ละขั้นตอน  จัดทารายงานสรุปสาเหตุและแนวทางในการป้องกันไม่ให้เกิดภัย คุกคามฯ ในลักษณะเดิมซ้าอีก โดยอย่างน้อยต้องประกอบด้วย
  • 32.
    30 o เหตุที่ทาให้เกิดภัยคุกคาม o ข้อผิดพลาดที่พบในการดาเนินการรับมือภัยคุกคามฯ oข้อเสนอแนะในปรับปรุงขั้นตอนการดาเนินการรับมือ ภัยคุกคามฯ o ทรัพยากรที่จาเป็นจะต้องจัดหาเพื่อป้องกันไม่ให้เกิดภัย คุกคามในลักษณะเดิมซ้าอีก สามารถใช้แบบฟอร์มรายงานการรับมือภัยคุกคามด้านเทคโนโลยีสารสนเทศและ การสื่อสารในการบันทึกรายละเอียดของภัยคุกคามฯ ในการดาเนินการรับมือและ แก้ไขภัยคุกคามฯ รวมถึงการสรุปสาเหตุและแนวทางในการป้องกันไม่ให้เกิดภัย คุกคามฯ ตามข้อเสนอแนะข้างต้น 2.1 เอกสารอ้างอิง [2-1] NIST SP800-61 Revision 1 – Computer Security Incident Handling Guide [2-2] ENISA, A step-by-step approach on how to setup a CSIRT – Doing Incident Handling
  • 33.
    31 โปรดอ่านคาแนะนาก่อนการบันทึกข้อมูล แบบฟอร์มรายงานการรับมือภัยคุกคามฯ นี้ ใช้สาหรับบันทึกรายละเอียดของภัยคุกคามขั้นตอนที่ดาเนินการในการรับมือและแก้ไข ภัยคุกคามฯ รวมถึงการสรุปสาเหตุและแนวทางในการป้องกันไม่ให้เกิดภัยคุกคามฯ ส่วนที่ 1 การระบุเหตุและรายงานภัยคุกคามฯ (01) ข้อมูลของผู้พบ / ผู้แจ้งเหตุ ชื่อ-นามสกุล (นาย/นาง/นางสาว/ยศ) ................................................................................................................................. หน่วยงานที่สังกัด ................................................................................................................................................................. หมายเลขโทรศัพท์ : .…......................................... E-mail : ................................................................................................. วว/ดด/ปป ที่พบ/ได้รับแจ้งภัยคุกคามฯ ….../...../.... เวลา …... : .... น. อ้างอิงเวลาสากลเชิงพิกัดของประเทศไทย (UTC+7) (02) รายละเอียดทางกายภาพของภัยคุกคามฯโดยละเอียด ระบุสถาานการณ์หรือเหตุภัยคุกคามฯ ................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ ประเภทของภัยคุกคาม …................................................................................................................................................ เครื่องที่ได้รับผลกระทบ : (ระบุ IP Address, OS, Application, และหน้าที่ของ เครื่อง) …................................................................................................................................................ …................................................................................................................................................ …................................................................................................................................................ เครื่องที่ต้องสงสัยว่าก่อเหตุ (ระบุ IP Address, ชื่อผู้ ลงทะเบียนโดเมน/IP Address และประเทศที่ตั้ง) …................................................................................................................................................ …................................................................................................................................................ …................................................................................................................................................ ความเสียหายที่พบต่อระบบ / ข้อมูล : …................................................................................................................................................ …................................................................................................................................................ (03) ระดับความรุนแรงของภัยคุกคามฯ ประเมินผลกระทบและความเสียหายของภัยคุกคามฯต่อหน่วยงาน ................................................................................................................................................................................................ ................................................................................................................................................................................................ (04) รายชื่อผู้เกี่ยวข้องในการรับมือภัยคุกคาม ผู้รับแจ้งเหตุ ........................................................................................................................................................................ ผู้ควบคุมและสั่งการในการรับมือภัยคุกคามฯ ........................................................................................................................ ผู้ดาเนินการควบคุมเหตุ ....................................................................................................................................................... ผู้ดาเนินการแก้ไขและกาจัดเหตุ ............................................................................................................................................ ผู้ดาเนินการกู้คืนระบบ ........................................................................................................................................................ ผู้จัดทาสรุปรายงานภัยคุกคามฯ .......................................................................................................................................... แบบฟอร์มรายงานการรับมือภัยภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร สานักงานพัฒนาธุรกรรมทางอิเล็กทรอนิกส์ (องค์การมหาชน)
  • 34.
    32 ส่วนที่ 2 การควบคุมภัยคุกคามฯ(Containment) (05) การควบคุมเหตุ : ระบุรายละเอียดขั้นตอนในการดาเนินการเพื่อบรรเทาหรือควบคุมความเสียหาย ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ ดาเนินการเสร็จเมื่อ …..../........./.......(วว/ดด/ปป) ….... : …... (ชั่วโมง:นาที) อ้างอิงเวลาสากลเชิงพิกัดของประเทศไทย (UTC+7) ส่วนที่ 3 การดาเนินการแก้ไขและกาจัดภัยคุกคามฯ (Eradication) (06) การกาจัดเหตุ : ระบุรายละเอียดขั้นตอนในการดาเนินการเพื่อกาจัดเหตุและป้องกันไม่ให้เกิดภัยคุกคามฯ ซ้าอีก ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ ดาเนินการเสร็จเมื่อ …..../........./.......(วว/ดด/ปป) ….... : …... (ชั่วโมง:นาที) อ้างอิงเวลาสากลเชิงพิกัดของประเทศไทย (UTC+7) ส่วนที่ 4 การกู้คืนระบบ (Recovery) (07) การกู้คืนระบบ : ระบุรายละเอียดขั้นตอนในการดาเนินการเพื่อกู้ข้อมูลหรือระบบให้กลับคืนสภาวะปกติ ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ ดาเนินการเสร็จเมื่อ …..../........./.......(วว/ดด/ปป) ….... : …... (ชั่วโมง:นาที) อ้างอิงเวลาสากลเชิงพิกัดของประเทศไทย (UTC+7) แบบฟอร์มรายงานการรับมือภัยภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร สานักงานพัฒนาธุรกรรมทางอิเล็กทรอนิกส์ (องค์การมหาชน)
  • 35.
    33 ส่วนที่ 5 กิจกรรมหลังภัยคุกคามฯ(Post-Incident Activity) (08) ประเมินสถานะของระบบเทคโนโลยีสารสนเทศหลังจากดาเนินการ [ ] สามารถให้บริการได้ตามปกติ และมีความมั่นคงปลอดภัย [ ] สามารถให้บริการได้เพียงบางส่วน [ ] ไม่สามารถให้บริการได้ เนื่องจากเหตุผลด้านความมั่นคงปลอดภัย [ ] ไม่สามารถให้บริการได้ เนื่องจากเหตุอื่น รายละเอียด ........................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ (09) ผลกระทบต่อข้อมูลหลังการดาเนินการ [ ] ข้อมูลอยู่ในสภาพปกติ [ ] สามารถกู้คืนข้อมูลได้เป็นส่วนมาก [ ] สามารถกู้คืนข้อมูลได้บางส่วน [ ] ไม่สามารถกู้คืนข้อมูลได้ หรือข้อมูลที่กู้คืนไม่สามารถใช้งานได้ รายละเอียด ........................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ (21) การแจ้งผลการดาเนินการต่อผู้เกี่ยวข้อง (ระบุ ชื่อผู้รับแจ้ง/วันเวลาที่แจ้ง/รายละเอียดเรื่องที่แจ้ง) : ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ (22) สรุปเหตุที่ทาให้เกิดภัยคุกคาม : ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ (13) ข้อผิดพลาดที่พบในการรับมือภัยคุกคาม : ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ (14) ข้อเสนอเพื่อปรับปรุง : . ................................................................................................................................................................................................ ................................................................................................................................................................................................ ................................................................................................................................................................................................ ลงนาม :….........................................................ผู้สรุปรายงานภัยคุกคามฯ …......../............../............... (วว/ดด/ปป) ETDA-OOS-ThaiCERT-2554 Rev.01 ศูนย์ประสานงานการรักษาความมั่นคงระบบคอมพิวเตอร์ประเทศไทย (ThaiCERT) แบบฟอร์มรายงานการรับมือภัยภัยคุกคามด้านเทคโนโลยีสารสนเทศและการสื่อสาร สานักงานพัฒนาธุรกรรมทางอิเล็กทรอนิกส์ (องค์การมหาชน)
  • 36.
  • 37.
    35 3. Fall ofSSL??? ผู้เรียบเรียง: ไพชยนต์ วิมุกตะนันทน์ และ สรณันท์ จิวะสุรัตน์ วันที่เผยแพร่: 22 ก.ย. 2554 ปรับปรุงล่าสุด: 23 ก.ย. 2554 หลายคนคงจะทราบดีอยู่แล้วว่าเทคโนโลยี SSL (Secure Sockets Layer) [8-1] มีประโยชน์ในการรักษาความมั่นคงปลอดภัย (Security) ของข้อมูลที่ส่งผ่านระบบ เครือข่ายโดยเฉพาะบนเครือข่ายอินเทอร์เน็ต ซึ่งการสื่อสารข้อมูลระหว่างผู้ใช้งาน บนเครือข่ายอินเทอร์เน็ตและเครื่องแม่ข่ายปลายทาง (เช่น Web Server) จาเป็นที่ จะต้องส่งต่อผ่านเครือข่ายอินเทอร์เน็ตสาธารณะหลายเครือข่ายกว่าข้อมูลจะถึง ปลายทาง ในรูปแบบการสื่อสารผ่านเครือข่ายอินเทอร์เน็ตนี้ ภัยคุกคาม (Threat) ที่อาจจะ เกิดขึ้นจากผู้ไม่ประสงค์ดีคือ "การถูกดักฟัง(อ่าน)ข้อมูล" (Eavesdropping) ดังนั้น SSL จึงเป็นเทคโนโลยีที่ถูกพัฒนาขึ้นมาใช้จัดการกับภัยคุกคามชนิดนี้โดยตรง เพราะด้วยความสามารถในการเข้ารหัสลับข้อมูล (Encrypt) ก่อนที่จะถูกส่งผ่าน เครือข่ายไปถึงผู้รับปลายทาง ถึงแม้ผู้ใช้งานบางส่วนจะไม่เข้าใจหลักการทางานของ เทคโนโลยี SSL เท่าใดนัก แต่ผู้ใช้ส่วนใหญ่มักจะรับทราบว่า หากเว็บไซต์ปลายทาง ใช้โพรโทคอล HTTPS แทนที่จะเป็นโพรโทคอล HTTP ตามปกติแล้ว แสดงว่า ข้อมูลที่สื่อสารกันอยู่นั้นถูกเข้ารหัสลับเอาไว้ ซึ่งเป็นความเข้าใจที่ถูกต้องเพียงแต่ว่า ตามหลักการเข้ารหัสลับทุกชนิดนั้น ข้อมูลจะยังคงเป็นความลับและมีความมั่นคง ปลอดภัยจากการถูกปลอมแปลงหรือดักอ่านข้อมูลได้ ก็ต่อเมื่อกุญแจ (Key) ที่ใช้ เข้ารหัสลับนั้นไม่รั่วไหลหรือถูกเปิดเผยกับผู้อื่นที่ไม่ใช่คู่สนทนา เพื่อให้เกิดความ เข้าใจในเรื่องนี้ จึงจาเป็นจะต้องเข้าใจกลไกของ SSL ในเบื้องต้นก่อน กลไกของ SSL มีการทางานสองขั้นตอน โดยขั้นตอนแรกอาจจะเรียกว่าขั้นตอน Hand-shaking คือเป็นการตรวจสอบข้อกาหนดระหว่าง Client กับ Server ว่าจะ
  • 38.
    36 ยอมสื่อสารข้อมูลกันหรือไม่ ซึ่งตามกลไกของ SSLจะเป็นการตรวจสอบข้างเดียว คือ Client ซึ่งในที่นี้คือ Web Browser จะเป็นผู้ตรวจสอบใบรับรอง SSL (SSL Certificate) ที่ Web Server ส่งมาให้ และตรวจสอบการตั้งค่าสาหรับการเข้ารหัส ลับข้อมูลต่างๆ (Encryption specification) ของ Web Server ว่าถูกต้อง เหมาะสมหรือไม่ จากนั้น Client จะเป็นผู้สร้าง Key สาหรับการเข้ารหัสลับข้อมูล แบบกุญแจสมมาตร (Symmetric Key Cryptography) แล้วส่งไปให้ Server ใช้ ในการเข้ารหัสลับข้อมูลเพื่อสื่อสารกับ Client ในขั้นตอนที่ 2 ของ SSL ต่อไป [3-1] Symmetric Key ที่ Client ส่งไปให้ Server จะถูกเข้ารหัสลับเพื่อป้องกันไม่ให้ถูก ลักลอบอ่านได้ด้วยรูปแบบการเข้ารหัส ลับข้อมูลแบบกุญแจอสมมาตร (Asymmetric Cryptography) เพื่อป้องกันไม่ให้ผู้อื่นนอกเหนือจาก Server ซึ่งเป็นผู้เดียวที่มี Private Key ของ SSL Certificate นั้นใช้ถอดรหัสลับข้อมูล เพื่ออ่าน Symmetric Key ที่ Client ส่งมาให้ ซึ่งกลไกนี้ได้รับการยอมรับว่าเป็น กลไกที่มีความมั่นคงปลอดภัยและสมบูรณ์แบบอยู่แล้ว [3-2] เพียงแต่ความสาคัญ ของกลไกนี้อยู่ที่ขั้นตอนแรกของกลไก SSL ที่ Client จะรับ SSL Certificate มา เพื่อตรวจสอบในขั้นนี้ Client จะต้องแน่ใจว่า SSL Certificate ที่ได้รับนั้น เป็น SSL Certificate ของ Server ที่กาลังติดต่ออยู่จริง โดยปกติ Web Browser จะทา การตรวจสอบ SSL Certificate โดยอัตโนมัติ หาก Web Browser พบว่ามีความ ผิดปกติ เช่น ชื่อโดเมนเนมของเว็บไซต์ไม่ตรงกับ SSL Certificate ที่ใช้งานบน Server หรือ ผู้ให้บริการออกใบรับรอง CA (Certificate Authority) ที่ออก SSL Certificate ไม่เป็นที่รู้จัก (หรือไม่ได้รับความเชื่อถือจาก Web Browser) หรือ SSL Certificate หมดอายุการใช้งาน Web Browser จะขึ้นข้อความเตือนผู้ใช้ว่าเกิด ความผิดปกติขึ้น ถ้าผู้ใช้งานเลือก ที่จะยอมรับ Certificate ที่ Web Browser พบว่าความผิดปกตินี้ กลไกการสื่อสารด้วย SSL ก็จะเข้าสู่ขั้นตอนการแลกเปลี่ยน Symmetric Key ที่จะ ใช้ในการสื่อสารข้อมูลระหว่าง Server กับ Client และเริ่มการสื่อสารข้อมูลต่อไป ตามปกติ ซึ่งตามหลักการแล้วในเมื่อ SSL Certificate นั้นผิดปกติ อาจมีสาเหตุ
  • 39.
    37 จากผู้ไม่ประสงค์ดีกาลังพยายามโจรกรรมข้อมูล (Traffic Hijacking)ในรูปแบบใด รูปแบบหนึ่งอยู่ เช่น การดักอ่านข้อมูล การปลอมแปลงข้อมูล เป็นต้น SSL Certificate ที่ผิดปกตินี้อาจถือเป็นสิ่งบอกเหตุแบบหนึ่งว่าการสื่อสารข้อมูลนี้กาลัง ถูกโจมตีอยู่ และตามหลักทฤษฎีของการใช้งานสารสนเทศอย่างมั่นคงปลอดภัยได้ แนะนาให้ผู้ใช้งานควรยกเลิกสื่อสารข้อมูลกับ Web Server นั้นต่อไป เพราะมี ความเสี่ยงที่ข้อมูลที่สื่อสารกันอาจจะถูกดักอ่านหรือปลอมแปลงจากผู้ไม่ประสงค์ดี ได้ รูปที่ 2 (3-1) SSL Certificate ที่ผิดปกติหรือไม่เป็นที่ยอมรับ อย่างไรก็ตามในทางปฏิบัติ ในบางสถานการณ์ Web Server ที่ใช้งาน SSL Certificate ที่ผิดปกติหรือไม่เป็นที่ยอมรับ อาจเกิดจากการที่ SSL Certificate นั้น ถูกสร้างขึ้นโดยใช้วิธีที่เรียกว่า Self-Sign [3-3] โดยเฉพาะ Web Server ที่ใช้ ภายในองค์กรหลายแห่ง SSL Certificate ชนิดนี้ Web Browser จะถือว่าไม่ได้ถูก รับรองโดย CA ที่ Web Browser เชื่อถือ ทาให้ Web Browser ขึ้นข้อความเตือน
  • 40.
    38 ผู้ใช้ว่าเป็น SSL Certificateที่ผิดปกติ บางครั้ง SSL Certificate ที่ใช้กับ Server ภายในเหล่านี้อาจจะมีความผิดพลาดในการกาหนดค่าอื่นๆ อีกหลายอย่าง เนื่องจากการขาดความตระหนักของภัยคุกคามที่อาจจะเกิดขึ้นของผู้ดูแลระบบ เพราะคิดว่าเป็นเรื่องของ Server ที่ใช้งานภายใน จึงไม่มีความจาเป็นจะต้องตั้งค่า ติดตั้งต่างๆ ให้ถูกต้อง ทาให้ผู้ใช้งานในองค์กรเหล่านี้เกิดความเคยชินที่จะยอมรับ SSL Certificate ที่ผิดปกติ หรือมองว่าการตรวจสอบ Certificate เป็นเรื่องไม่ จาเป็น เมื่อ ผู้ใช้งานเคยชินที่จะยอมรับ SSL Certificate ที่ผิดปกติ ทาให้คุณสมบัติของ การใช้งานเทคโนโลยี SSL ในการรักษาความมั่นคงปลอดภัยของข้อมูล ทั้งในด้าน การพิสูจน์ความแท้จริง (Authenticity) และ การรักษาความลับ (Confidentiality) เสื่อมลง เพราะเมื่อไม่สามารถรับประกันได้ว่า SSL Certificate มาจาก Server ที่แท้จริง ก็ไม่สามารถรับประกันได้ว่าข้อมูลที่สื่อสารภายใต้ SSL จะไม่รั่วไหลไปสู่ผู้อื่นที่ไม่ใช่คู่สนทนาเช่นกัน แต่ถึงแม้ผู้ใช้งานจะมีความตระหนักในเรื่อง Security ที่ดี ไม่ยอมรับ SSL Certificate ที่ผิดปกติ ระบบการทางานของ SSL ก็ยังมีช่องโหว่ที่สาคัญ นั่นคือ ช่องโหว่ในกลไกการทางานของ SSL และความเชื่อถือของหน่วยงานกลางที่ทา หน้าที่ออกใบรับรอง ซึ่งในที่นี้คือ CA ที่มีหน้าที่รับรองความถูกต้องของ Server ปลายทางให้กับผู้ใช้งานในลักษณะเดียวกับการที่ลูกค้าให้ความเชื่อถือผลิตภัณฑ์ ใดๆ เพราะผลิตภัณฑ์นั้นได้รับการรับรองจากหน่วยงานที่ลูกค้าเชื่อถือนั่นเอง จะเกิดอะไรขึ้นหาก CA ที่ได้รับการยอมรับในระดับสากลมีกระบวนการทางานที่ หละหลวม ไม่มีการตรวจสอบผู้ขอ Certificate ให้แน่ชัดว่าเป็นเจ้าของ Server จริงหรือไม่ เช่น ผู้ไม่ประสงค์ดีที่ต้องการดักข้อมูลของ Gmail มาขอให้ CA ออก Certificate ของ Gmail ถ้าหาก CA ไม่มีการตรวจสอบที่ดีว่าผู้ขอเป็นผู้รับผิดชอบ หรือเป็นเจ้าของ Gmail หรือไม่ แล้ว CA ออก Certificate ให้ไป Certificate นั้นก็ จะสามารถนาไปใช้ดักข้อมูลของ Gmail ในลักษณะ Traffic Hijacking ได้อย่าง แนบเนียน เพราะ Certificate ที่ออกมาจาก CA ที่ได้รับการยอมรับในระดับสากล
  • 41.
    39 โดยตรงแบบนี้ และเป็น CAที่ Web Browser เชื่อถือก็จะไม่ทาให้ Web Browser แสดงข้อความเตือนแต่อย่างใด ที่ผ่านมาหลายคนคงจะจาได้ว่ามีรายงานข่าวกรณีเกี่ยวกับการโจมตี CA เพื่อ ลักลอบออก Certificate ปลอมของเว็บไซต์ชื่อดังหลายแห่งมาแล้ว 2 ครั้ง อย่างใน ครั้งล่าสุดมีรายงานว่ามีการตรวจพบในช่วงเดือน ก.ค. ที่ผ่านมานี้เอง โดย Hacker ไม่ทราบกลุ่ม และจุดประสงค์ที่แน่ชัด ได้ทาการโจมตีระบบการออก Certificate ของ DigiNotar ซึ่งเป็น CA ระดับ Root CA ของประเทศ Netherland [3-4] ใน รายงานการวิเคราะห์ที่เชื่อถือได้ พบว่า Hacker กลุ่มหรือบุคคลดังกล่าว ได้ออก Certificate ปลอมสาหรับเว็บไซต์ต่างๆ ไปมากกว่า 200 ใบ (บางรายงานอ้างว่า มากกว่า 500 ใบ) รวมถึงการออก Certificate ปลอมกับโดเมนเนมของ google.com ในกลุ่มผู้เชี่ยวชาญทางด้าน Security กล่าวว่ามีข้อมูลที่ไม่สามารถ ยืนยันแหล่งข่าวได้ระบุว่ามีรัฐบาลของบางประเทศ พยายามลักลอบดูข้อมูลการใช้ อีเมลของบุคคลที่รัฐบาลประเทศดังกล่าว เชื่อว่ามีแนวคิดในทางต่อต้านรัฐบาล โดยความพยายามดังกล่าวได้มีมาต่อเนื่องเป็นระยะเวลาไม่ต่ากว่า 1 ปีแล้ว หากมีการตรวจพบการทุจริตหรือการโจมตีตามที่กล่าวข้างต้นในบริการการออก ใบรับรอง CA สามารถยกเลิก (Revoke) Certificate ที่มีปัญหาได้ตลอดเวลาตาม เงื่อนไขของการให้บริการ โดย CA อาจจะเผยแพร่รายการของ Certificate ที่ถูก ยกเลิกออกมาตามระยะเวลาที่กาหนด (อาจเร็วกว่ากาหนดได้หากมีเหตุจาเป็น ฉุกเฉิน) รายการนี้เรียกว่า CRL (Certificate Revocation List) ซึ่งมักจะมีอยู่ใน เว็บไซต์ของ CA แต่ละราย หรือที่อื่นๆ ตามที่ CA กาหนด และ Client จะต้อง Update ข้อมูลนี้อย่างสม่าเสมอ เพื่อให้สามารถตรวจจับ Certificate ที่มีปัญหาได้ อย่างทันท่วงที อีกวิธีคือ CA จะใช้กลไกที่เรียกว่า OCSP (Online Certificate Status Protocol) ซึ่งคล้ายกับ Directory service ที่ Client สามารถเข้ามา ตรวจสอบสถานะของ Certificate ได้แบบ Real-time แต่ในความเป็นจริงผู้ใช้งานส่วนมากไม่ได้ตั้งค่าให้ Web Browser ทาการติดต่อกับ CA เพื่อปรับปรุงข้อมูลของ CRL อยู่ตลอดเวลา หรือไม่ได้ตั้งค่าให้ทาการตรวจสอบ
  • 42.
    40 กับ OCSP ทุกครั้งที่มีการเชื่อมต่อแบบSSL ทาให้กว่าที่จะรู้ว่า Certificate ใดมี ปัญหาก็อาจสายเกินไป และถึงแม้ Web Browser จะรับรู้ว่า Certificate นี้ถูก ยกเลิกแล้ว และขึ้นข้อความเตือนผู้ใช้ก็ตามก็ยังขึ้นอยู่กับผู้ใช้ว่าจะสนใจคาเตือนนั้น หรือไม่อีกขั้นหนึ่งด้วย ยิ่งไปกว่านั้นในงาน Ekoparty ซึ่งเป็นงานสัมมนาด้านความมั่นคงปลอดภัย สารสนเทศที่จะจัดขึ้นในประเทศอาร์เจนตินา ในวันที่ 23 กันยายน 2554 จะมีการ บรรยายและแสดงวิธีการโจมตีการเชื่อมต่อแบบ SSL (และ TLS ซึ่งเป็นรูปแบบที่ ใหม่กว่า) ด้วยโปรแกรมซึ่งมีชื่อเรียกว่า BEAST (Browser Exploit Against SSL/TLS) โดยการโจมตีรูปแบบนี้จะอาศัยการทางานของ Malicious code ที่ทางานอยู่บน Client เพื่อดักจับข้อมูลใน Web Browser ซึ่งผู้ที่ค้นพบรูปแบบ การโจมตีนี้ระบุว่า ข้อมูลที่ดักจับมาได้นี้สามารถช่วยให้การถอดรหัสข้อมูลที่ป้องกัน ด้วย SSL ของ Client ได้โดยไม่ต้องใช้ Key หรือไม่ต้องวุ่นวายกับการทา Traffic Hijacking แต่อย่างใด [3-5] ในความเป็นจริงรูปแบบการโจมตีนี้ไม่ใช่ของใหม่ เพราะเป็นการอาศัยจุดอ่อนใน กลไกการเข้ารหัสลับข้อมูลของ SSL และ TLS รุ่นแรกที่ทราบกันมานานแล้ว[8-6] และแม้จะมีการพัฒนาและปรับปรุง TLS 1.1 และ 1.2 เพื่อแก้ไขจุดอ่อนดังกล่าว แต่เนื่องจากยังไม่มีการค้นพบว่ามีผู้สามารถใช้ประโยชน์จากจุดอ่อนนี้ได้ อย่าง จริงจังทาให้ยังไม่มีการสนับสนุน TLS รุ่นใหม่เท่าที่ควร ทั้งในด้าน Server และ Client ซึ่งการค้นพบการโจมตีที่ใช้จุดอ่อนนี้ และมีการพิสูจน์ว่าสามารถใช้งานได้ จริง น่าจะเป็นการกระตุ้นให้เกิดความตระหนักในภัยคุกคามของเทคโนโลยี SSL ใน กลุ่มอุตสาหกรรม IT ได้อย่างจริงจัง หรือแม้กระทั่งเกิดผลกระทบทาให้ผู้ให้บริการ ธุรกรรมทางอิเล็กทรอนิกส์บางราย จาเป็นต้องหยุดให้บริการชั่วคราวเพื่อแก้ไข ปัญหาดังกล่าว ดังจะเห็น ได้ว่า SSL เป็นกลไกในด้านความมั่นคงปลอดภัยที่ขึ้นอยู่กับปัจจัย ภายนอกอย่างมาก ทั้งความน่าเชื่อถือของหน่วยงานกลางที่ทาหน้าที่ออกใบรับรอง (CA) และความตระหนักในภัยคุกคามที่เกี่ยวข้องกับการใช้งาน Certificate ที่ไม่
  • 43.
    41 ถูกต้องของผู้ใช้งาน หรือการใช้งานเทคโนโลยี SSLในรุ่นแรกที่มีช่องโหว่ ซึ่งได้เห็น แล้วว่าปัจจัยภายนอกทั้งหลายนี้กาลังถูกท้าทายอย่างหนัก จนอาจจะเริ่มมีคาถาม ว่าถึงเวลาหรือยังที่ผู้ที่เกี่ยวข้องจะต้องใส่ใจและให้ความตระหนักถึงภัยคุกคามที่ เกิดกับเทคโนโลยี SSL อย่างจริงจัง เพื่อการรักษาความมั่นคงปลอดภัยของการ สื่อสารข้อมูลหรือบริการธุรกรรมทางอิเล็กทรอนิกส์บนเครือข่ายอินเทอร์เน็ต 3.1 เอกสารอ้างอิง [3-1] TLS, http://en.wikipedia.org/wiki/Secure_Sockets_Layer [3-2] HTTP_Secure, http://en.wikipedia.org/wiki/HTTP_Secure [3-3] Self-signed certificate, http://en.wikipedia.org/wiki/Self- signed_certificate [3-4] ระวังภัยแฮกเกอร์ออกใบรับรองปลอมของ Google Yahoo! Mozilla และอื่นๆ, http://www.thaicert.or.th/alerts/home/2011/ al2011ho0001.html [3-5] Hackers break SSL encryption used by millions of sites, http://www.theregister.co.uk/2011/09/19/beast_exploits_payp al_ssl/ [3-6] A CHALLENGING BUT FEASIBLE BLOCKWISE-ADAPTIVE CHOSEN- PLAINTEXT ATTACK ON SSL, http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.61.5 887
  • 44.
  • 45.
    43 4. ข้อแนะนาในการใช้งาน SocialMedia สาหรับผู้ใช้งานทั่วไป ผู้เรียบเรียง: ทีมไทยเซิร์ต วันที่ประกาศ: 3 ต.ค. 2554 ปรับปรุงล่าสุด: 10 ต.ค. 2554 ปัจจุบันสื่อสังคมและเครือข่ายสังคมออนไลน์ (Social media and Social network) ได้ถูกนามาใช้เพื่อแบ่งปันเรื่องราว ประชาสัมพันธ์หน่วยงาน หรือใช้เป็น แหล่งแลกเปลี่ยนข้อมูล เนื่องจาก สามารถใช้งานได้อย่างสะดวกสบายและรวดเร็ว ทาให้ได้รับความนิยมเป็นอย่างสูง ศูนย์ประสานงานการรักษาความมั่นคงระบบ คอมพิวเตอร์ประเทศไทย (ThaiCERT) มีข้อแนะนาเบื้องต้นในการใช้งานสื่อสังคม และเครือข่ายสังคม สาหรับผู้ใช้ทั่วไป ดังนี้ 4.1 การใช้งานรหัสผ่านอย่างมั่นคงปลอดภัย • การตั้งค่ารหัสผ่านที่ใช้ในการล็อกอินเข้าสู่เว็บไซต์หรือระบบต่างๆ จะต้อง เป็นรหัสผ่านที่คาดเดาได้ยาก เพื่อลดความเสี่ยงกรณีที่ผู้ประสงค์ร้ายที่ พยายามจะสุ่มรหัสผ่านเพื่อใช้ล็อกอินบัญชีผู้ใช้งานของผู้อื่น การตั้งค่า รหัสผ่านที่มั่นคงปลอดภัยมีข้อแนะนา ดังนี้ 1. รหัสผ่านควรมีความยาวไม่ต่ากว่า 8 ตัวอักษร เช่น Ro23w%9T 2. รหัสผ่านควรประกอบไปด้วยตัวอักษรพิมพ์เล็ก พิมพ์ใหญ่ ตัวเลข และ อักขระพิเศษ
  • 46.
    44 รูปที่ 3 (4-1)การตั้งค่ารหัสผ่านอย่างมั่นคงปลอดภัย • การตั้งคาถามที่ใช้ในกรณีกู้คืนบัญชีผู้ใช้งาน (Forget password) ควร เลือกใช้ข้อมูลหรือคาถามที่เป็นส่วนบุคคลและควรเป็นข้อมูลที่ผู้อื่นคาด เดายาก เพื่อป้องกันการสุ่มคาถามคาตอบจากผู้ประสงค์ร้าย • ไม่ควรบันทึกรหัสผ่านไว้ในที่ซึ่งง่ายต่อการสังเกตเห็นของบุคคลอื่น เช่น จดรหัสผ่านวางไว้บนโต๊ะ หรือเขียนโน้ตติดไว้บนหน้าจอคอมพิวเตอร์ รูปที่ 4 (4-2) ไม่ควรเปิดเผยรหัสผ่าน • ไม่ควรเปิดเผยรหัสผ่านให้แก่บุคคลอื่นล่วงรู้ เพื่อลดความเสี่ยงต่อการถูก ขโมยรหัสผ่านจากบุคคลที่สาม • ไม่ควรกาหนดค่าให้เว็บเบราว์เซอร์ (web browser) ช่วยจารหัสผ่านที่ใช้ ในการเข้าถึงเว็บไซต์ (Remember password) เนื่องจาก มีความเสี่ยงที่ จะถูกขโมยบัญชีผู้ใช้งานหรือแกะรอยรหัสผ่านจาก เครื่องคอมพิวเตอร์ นั้นๆ
  • 47.
    45 4.2 การใช้บริการสื่อและเครือข่ายสังคมทางเว็บอย่างมั่นคง ปลอดภัย • การได้รับอีเมลแจ้งเตือนจากเว็บไซต์ต่างๆในลักษณะเชื้อเชิญให้คลิกลิงก์ ที่แนบมาในอีเมล ผู้ใช้งานควรสงสัยว่าลิงก์ดังกล่าวเป็นลิงก์ที่ไม่ปลอดภัย (ลิงก์ที่มีความประสงค์จะหลอกลวงเพื่อขโมยข้อมูลส่วนบุคคล เช่น รหัสผ่าน โดยวิธีการต่างๆ) และสามารถแจ้งลิงก์ต้องสงสัยมายัง report@thaicert.or.th เพื่อตรวจสอบต่อไป • ปัจจุบันเว็บไซต์ที่ให้บริการสื่อและเครือข่ายสังคมได้เปิดช่องทางเกี่ยวกับ ความมั่นคงปลอดภัยเพิ่มเติม เพื่อให้ผู้ใช้งานสามารถเชื่อมต่อเว็บไซต์ผ่าน ช่องทางที่มีการเข้ารหัสลับข้อมูล เพื่อป้องกันการดักจับข้อมูลระหว่างทาง จากผู้ประสงค์ร้าย โดยกระบวนการดังกล่าวเป็นการเชื่อมต่อเว็บไซต์ผ่าน รูปแบบที่เรียกกันว่า HTTPS ซึ่งผู้ใช้งานทั่วไปสามารถใช้ช่องทางดังกล่าว ได้ทันที โดยเรียนใช้ผ่านการพิมพ์ https:// ตามด้วยชื่อเว็บไซต์ เช่น https://www.facebook.com รูปที่ 5 (4-3) การใช้บริการสื่อและเครือข่ายสังคมทางเว็บ • ใช้กระบวนการยืนยันตัวตน (Authentication) แบบ Two-factor Authentication ซึ่งเป็นวิธีการที่มีความมั่นคงปลอดภัยสูงกว่าการเข้าสู่ เว็บไซต์โดยการล็อกอินโดยใช้รหัสผ่านเพียงอย่างเดียว ซึ่งกระบวนการ ยืนยันตัวตนดังกล่าว จะใช้การยืนยันตัวตนด้วยรหัสผ่านร่วมกับวิธีการ อื่นๆ เช่น การยืนยันรหัสผ่านชั่วคราวที่ได้จาก SMS หลังจากล็อกอินครั้ง แรกแล้ว เป็นต้น โดยปัจจุบันเว็บไซต์ที่ให้บริการสื่อและเครือข่ายสังคมที่ รองรับกระบวนการดังกล่าว ได้แก่ Facebook
  • 48.
    46 รูปที่ 6 (4-4)Facebook • เนื่องจากเว็บไซต์บริการสื่อและเครือข่ายสังคมออนไลน์ส่วนใหญ่ มีการ จัดเตรียมช่องทางในการกู้คืนบัญชีผู้ใช้งานหรือกู้คืนรหัสผ่าน (Forget password) โดยส่วนใหญ่จะใช้ช่องทางสื่อสารผ่านอีเมลของผู้ใช้งาน ซึ่งก็ อาจเป็นปัจจัยหนึ่งให้ผู้ประสงค์ร้ายเข้าโจมตีผ่านช่องทางอีเมล จากนั้น จึงใช้ช่องทางดังกล่าวเข้าควบคุมบัญชีเครือข่ายสังคมต่างๆ ต่อไป • ไม่เผยแพร่ข้อมูลสาคัญไม่ว่าส่วนบุคคลของของตนเอง ผู้อื่น และของ องค์กร ในเว็บไซต์บริการสื่อและเครือข่ายสังคมออนไลน์ • พึงระลึกไว้เสมอว่าข้อมูลต่างๆ ที่เผยแพร่ไว้บนบริการสื่อและเครือข่าย สังคมนั้น คงอยู่ถาวร ผู้อื่นอาจเข้าถึง และเผยแพร่ของข้อมูลนี้ได้ • ไม่ควรใช้บริการสื่อและเครือข่ายสังคมออนไลน์ในการเผยแพร่ข้อความ หรือข้อมูลที่ไม่เหมาะสมต่างๆ ซึ่งมีผลกระทบต่อสิทธิของผู้อื่นโดยไม่เป็น ธรรม 4.3 การใช้งานคอมพิวเตอร์อย่างมั่นคงปลอดภัย • ติดตั้งซอฟต์แวร์ป้องกันไวรัส และอัพเดทฐานข้อมูลไวรัสของโปรแกรมอยู่ เสมอ • อัพเดทระบบปฏิบัติการและซอฟต์แวร์เว็บเบราว์เซอร์ (web browser)
  • 49.
    47 อยู่เสมอ • ไม่ควรติดตั้งโปรแกรมเสริมจากผู้พัฒนาอื่น (3rd PartyApplication) นอกเหนือจากโปรแกรมที่พัฒนาโดยเจ้าของบริการสื่อและเครือข่ายสังคม เนื่องจาก ผู้ใช้งานมีความเสี่ยงจากการถูกลักลอบ ปลอมแปลง หรือขโมย ข้อมูลสาคัญของผู้ใช้งานได้ • ควรละเว้นการใช้เครือข่ายอินเทอร์เน็ตหรือเครื่องคอมพิวเตอร์ที่ให้บริการ ในที่สาธารณะ หรือจากผู้ให้บริการที่ไม่น่าเชื่อถือ เช่น เครือข่ายไร้สาย (Wi-Fi) หรือเครื่องคอมพิวเตอร์ที่ไม่สามารถระบุผู้ให้บริการได้ ซึ่งอาจเป็น ช่องทางให้ผู้ไม่ประสงค์ดีลักลอบขโมยข้อมูลสาคัญ เช่น รหัสผ่านของ ผู้ใช้งาน เป็นต้น
  • 50.
  • 51.
    49 5. การจัดการไดเรกทอรีและไฟล์ในระบบยูนิกซ์ ผู้เรียบเรียง: เสฏฐวุฒิแสนนาม วันที่เผยแพร่: 5 พ.ย. 2554 ปรับปรุงล่าสุด: 9 พ.ย. 2554 ยูนิกซ์ (นิยมเขียนว่า Unix แต่ชื่อตามเครื่องหมายการค้าคือ UNIX) เป็นชื่อของ ระบบปฏิบัติการที่ถูกพัฒนาขึ้นโดยนักวิจัยที่ศูนย์วิจัย Bell Labs จากบริษัท AT&T ในปี ค.ศ. 1969 ถูกออกแบบมาเพื่อให้มีความสามารถหลักๆ คือรองรับการ ประมวลผลโปรแกรมได้หลายตัวพร้อมกัน (Multi-tasking) และรองรับผู้ใช้งาน หลายคน (Multi-user) ในปัจจุบันระบบยูนิกซ์ได้มีการพัฒนาเพิ่มเติมเพื่อให้ สามารถทางานได้บนฮาร์ดแวร์ที่หลากหลาย รวมถึงถูกใช้เป็นโครงสร้างของ ระบบปฏิบัติการสมัยใหม่หลายระบบปฏิบัติการ เช่น BSD, Solaris, Mac OSX หรือ ระบบปฏิบัติการที่ทางานคล้ายยูนิกซ์ (Unix-like) เช่น Linux หรือ Android อีกด้วย [5-1] ในระบบยูนิกซ์นั้น จะมีการจัดการไดเรกทอรีและไฟล์ที่เป็นมาตรฐาน โดยพิจารณา ทรัพยากรทุกอย่างบนระบบในรูปของไฟล์ไม่เว้นแม้กระทั่งฮาร์ดแวร์ หรือโปรเซสที่ รันอยู่ในหน่วยความจา ซึ่งการออกแบบโครงสร้างดังกล่าวนี้มีข้อดีคือ ถ้าผู้ใช้ สามารถกาหนดสิทธิการใช้งานให้กับไฟล์ใดๆ ได้ ก็จะสามารถกาหนดสิทธิให้กับ ทรัพยากรอื่นๆ ที่อยู่ในระบบยูนิกซ์ได้ ดังนั้น ในบทความนี้จึงนาเสนอเนื้อหาที่ เกี่ยวข้องกับการจัดการไดเรกเทอรีและไฟล์ในระบบยูนิกซ์ เบื้องต้นสาหรับผู้ที่สนใจ หรือผู้ที่เริ่มใช้งานระบบยูนิกซ์ 5.1 ไดเรกทอรีและไฟล์ในระบบยูนิกซ์ • ไฟล์ (File) คือสิ่งที่ใช้แทนตาแหน่งของข้อมูลที่อยู่ในหน่วยความจา โดยทั่วไปการตั้งชื่อไฟล์นิยมใช้เครื่องหมาย . ในการแยกชื่อกับส่วนขยาย
  • 52.
    50 ของไฟล์ (File Extension)เพื่อระบุว่าไฟล์นี้เป็นประเภทอะไร • ไดเรกทอรี (Directory) คือพื้นที่เสมือนในคอมพิวเตอร์ มีไว้สาหรับจัดเก็บ ไฟล์หรือไดเรกทอรีอื่นๆ ให้อยู่ในพื้นที่เดียวกัน 5.2 โครงสร้างของไดเรกทอรีในระบบยูนิกซ์ ไดเรกทอรีในระบบยูนิกซ์จะอ้างอิงโครงสร้างข้อมูลแบบต้นไม้หัวกลับ จากรากของ ต้นไม้ที่แตกรากสาขาจากด้านบนลงสู่ด้านล่าง โดยมีส่วนที่อยู่ด้านบนสุดเรียกว่า root ซึ่งแทนด้วยเครื่องหมาย / ดังรูปที่ 7 (5-1) ภาพจาก: http://www.ualberta.ca/ รูปที่ 7 (5-1) โครงสร้างของไดเรกทอรีในระบบยูนิกซ์ จาก root จะประกอบด้วยไดเรกทอรีย่อยอยู่ภายใน แต่ละไดเรกทอรีจะใช้สาหรับ จัดเก็บไฟล์ที่มีการทางานคล้ายคลึงกัน โครงสร้างไดเรกทอรีหลักๆ ของระบบยูนิกซ์ เป็นดังนี้ ตารางที่ 2 (5-1) โครงสร้างไดเรกทอรีหลักๆ ของระบบยูนิกซ์ ไดเรกทอรี หน้าที่ / root /bin เก็บโปรแกรมที่เป็นคาสั่งของระบบ /boot เก็บ Kernel (โปรแกรมส่วนที่เป็นการทางานหลักของระบบปฏิบัติการ) และไฟล์ที่เกี่ยวข้องกับการเริ่มต้นระบบ
  • 53.
    51 ไดเรกทอรี หน้าที่ /dev เก็บไฟล์ที่เป็นส่วนติดต่อของอุปกรณ์ต่างๆเช่น ดิสก์ เครื่องพิมพ์ ฯลฯ /etc เก็บไฟล์ที่ใช้สาหรับกาหนดค่าการทางานและไฟล์ที่เกี่ยวข้องกับการ เริ่มต้นระบบ /home ไดเรกทอรี home ของผู้ใช้ ตั้งชื่อตามชื่อบัญชีผู้ใช้ /lib เก็บไฟล์ไลบรารีของระบบ /media mount point ของอุปกรณ์เก็บข้อมูลแบบถอดได้ (มีใน ระบบปฏิบัติการสมัยใหม่) /mnt mount point ของอุปกรณ์เก็บข้อมูลแบบถอดได้ /opt เก็บโปรแกรมที่ผู้ใช้ติดตั้งเพิ่มเติมซึ่งไม่เกี่ยวข้องกับระบบหลัก /proc ไฟล์ข้อมูลของโปรเซสทั้งหมดที่อยู่ในหน่วยความจา /root ไดเรกทอรี home ของ root (บางระบบปฏิบัติการจะอยู่ใน /home) /sbin เก็บโปรแกรมที่เป็นคาสั่งของระบบที่ต้องใช้สิทธิของ root ในการรัน /tmp เก็บไฟล์ชั่วคราว (Temporary file) จะถูกลบทิ้งเมื่อเปิดเครื่องขึ้นมา ใหม่ /usr เก็บข้อมูลคาสั่งอื่นๆเพิ่มเติม โครงสร้างภายในคล้ายโครงสร้างของ / /var เก็บไฟล์ที่เกี่ยวข้องกับการตั้งค่าและการทางานของระบบ 5.3 คาสั่งที่เกี่ยวข้องกับการใช้งานไดเรกทอรีและไฟล์ สร้างไดเรกทอรี • การสร้างไดเรกทอรี สามารถทาได้โดยใช้คาสั่ง mkdir DIR_NAME เช่น mkdir abc เป็นการสร้างไดเรกทอรีชื่อ abc • ในกรณีที่ต้องการสร้างหลายไดเรกทอรีพร้อมกันในครั้งเดียว ใช้คาสั่ง mkdir {DIR1,DIR2,DIR3,...} เช่น mkdir {a,b,c} จะเป็นการสร้าง 3 ไดเรกทอรี คือ a, b และ c • ในกรณีที่ต้องการสร้างไดเรกทอรีที่มีไดเรกทอรีย่อยอยู่ภายใน ใช้คาสั่ง mkdir -p /PARENT1/PARENT2/CHILD เช่น mkdir -p q/w/e จะเป็น
  • 54.
    52 การสร้างไดเรกทอรี q ซึ่งมีไดเรกทอรีw อยู่ภายใน และมีไดเรกทอรี e อยู่ภายในไดเรกทอรี w อีกที ลบไดเรกทอรี • การลบไดเรกทอรี ใช้คาสั่ง rm -r DIRECTORY_NAME • ถ้าไดเรกทอรีที่ต้องการลบนั้นมีไฟล์หรือไดเรกทอรีอยู่ภายใน จะไม่ สามารถทาการลบได้ถ้าไม่ลบไฟล์หรือไดเรกทอรีทั้งหมดที่อยู่ภายในก่อน แต่ถ้าต้องการลบทิ้งทั้งไดเรกทอรีโดยไม่สนใจสิ่งที่อยู่ภายใน สามารถใช้ คาสั่ง rm -rf DIRECTORY_NAME เพื่อบังคับให้ระบบลบไดเรกทอรีนั้น ได้ สร้างไฟล์ • การสร้างไฟล์เปล่าๆ ขึ้นมาโดยไม่มีเนื้อหาอะไร สามารถทาได้โดยใช้คาสั่ง touch FILENAME เช่น คาสั่ง touch test.txt จะได้ไฟล์ชื่อ test.txt ลบไฟล์ • การลบไฟล์ ใช้คาสั่ง rm FILENAME เช่น คาสั่ง rm test.txt เป็นการลบ ไฟล์ test.txt คัดลอกไฟล์/ไดเรกทอรี • การคัดลอกไฟล์หรือไดเรกทอรี ใช้คาสั่ง cp SOURCE TARGET เช่น cp test.txt test2.txt เป็นการคัดลอกไฟล์ test.txt มาสร้างเป็นไฟล์ชื่อ test2.txt ย้าย/เปลี่ยนชื่อไฟล์หรือไดเรกทอรี • ในระบบยูนิกซ์ การย้ายและการเปลี่ยนชื่อไฟล์หรือไดเรกทอรี สามารถทา ได้โดยใช้คาสั่ง mv
  • 55.
    53 • การย้ายไฟล์หรือไดเรกทอรีไปไว้ที่ใหม่ ใช้คาสั่งmv FILENAME NEW_DIR เช่น mv test.txt /tmp จะเป็นการย้ายไฟล์ test.txt จาก ตาแหน่งปัจจุบันไปไว้ที่ /tmp • การเปลี่ยนชื่อไฟล์หรือไดเรกทอรี ใช้คาสั่ง mv OLD_NAME NEW_NAME เช่น mv file1.txt file2.txt จะเป็นการเปลี่ยนชื่อไฟล์จาก file1.txt เป็น file2.txt เปลี่ยนไดเรกทอรี • การเปลี่ยนไดเรกทอรีจากตาแหน่งปัจจุบันไปยังตาแหน่งอื่น ใช้คาสั่ง cd DIRECTORY_NAME ซึ่งการระบุ DIRECTORY_NAME สามารถทาได้ หลายแบบ ดังนี้ • ระบุ เป็น absolute path จะอ้างอิงตาแหน่งที่อยู่จาก / เช่น ถ้า ปัจจุบันอยู่ที่ /home/user/files/ เมื่อพิมพ์ cd /bin จะเป็น การย้ายไปที่ไดเรกทอรี /bin • ระบุ เป็น relative path จะอ้างอิงตาแหน่งจากจุดที่อยู่ปัจจุบัน เช่น ถ้าปัจจุบันอยู่ที่ /home/user/files/ เมื่อพิมพ์ cd work จะเป็นการย้ายไปที่ไดเรกทอรี /home/user/files/work • ตาแหน่งปัจจุบัน แทนด้วยเครื่องหมาย . • ตาแหน่งของไดเรกทอรีที่อยู่ด้านบนขึ้นไป (parent directory) แทนด้วยเครื่องหมาย .. เช่น ถ้าปัจจุบันอยู่ที่ /home/user/files/ เมื่อพิมพ์ cd .. จะเป็นการย้ายไปที่ ไดเรกทอรี /home/user/ • ตาแหน่งของไดเรกทอรี home ของผู้ใช้ แทนด้วยเครื่องหมาย ~ ถ้าปัจจุบันอยู่ที่ /home/user/files/work เมื่อพิมพ์ cd ~ จะ เป็นการย้ายไปที่ไดเรกทอรี /home/user/ นอกจากนี้การพิมพ์ คาสั่ง cd โดยไม่ระบุ path ปลายทาง ก็จะเป็นการย้ายตาแหน่ง มาที่ไดเรกทอรี home ของผู้ใช้ด้วยเช่นกัน
  • 56.
    54 ตรวจสอบตาแหน่งของไดเรกทอรีที่อยู่ในปัจจุบัน • การตรวจสอบตาแหน่งของไดเรกทอรีที่อยู่ในปัจจุบัน สามารถทาได้โดยใช้ คาสั่งpwd (ย่อมาจาก Print Working Directory) ซึ่งจะได้ผลลัพธ์ ออกมาเป็น absolute path ของไดเรกทอรีที่ทางานอยู่ในขณะนั้น แสดงรายชื่อไดเรกทอรีหรือไฟล์ทั้งหมดในไดเรกทอรีที่ระบุ • ในการแสดงรายชื่อไดเรกทอรีหรือไฟล์ทั้งหมดที่อยู่ในไดเรกทอรีที่ระบุ สามารถทาได้โดยใช้คาสั่ง ls DIRECTORY_NAME ถ้าไม่ระบุชื่อ ไดเรกทอรี จะเป็นการแสดงข้อมูลในไดเรกทอรีที่ทางานอยู่ในปัจจุบัน • ถ้าต้องการดูข้อมูลในไดเรกทอรีย่อยด้วย ใช้คาสั่ง ls -R • ถ้าต้องการดูข้อมูลแบบละเอียด ใช้คาสั่ง ls -l ซึ่งจะได้ผลดังภาพด้านล่าง รูปที่ 8 (5-2) แสดงรายชื่อไดเรกทอรีหรือไฟล์ทั้งหมดในไดเรกทอรีที่ระบุ ข้อมูลแบบละเอียด ใช้คาสั่ง ls -l รายละเอียดของข้อมูลต่างๆ ที่แสดงผลอธิบายได้ตามหมายเลข ดังนี้ รูปที่ 9 (5-3) แสดงรายชื่อไดเรกทอรีหรือไฟล์ทั้งหมดในไดเรกทอรีที่ระบุ แสดงผลอธิบายได้ตามหมายเลข
  • 57.
    55 1. จานวนของลิงก์ทั้งหมดที่มีในไดเรกทอรีนั้น ซึ่งประกอบด้วยจานวน ไฟล์หรือไดเรกทอรีที่อยู่ภายในบวกกับลิงก์ของตัวไดเรกทอรีเอง 2. ประเภทของไฟล์และสิทธิในการใช้งาน (Permission) ตัวอักษรตัว แรกคือประเภทของไฟล์ ถ้าเป็นเครื่องหมาย - หมายถึงไฟล์ธรรมดา ถ้าเป็น d หมายถึงไดเรกทอรี และถ้าเป็น l หมายถึงลิงก์ 3. จานวนลิงก์ทั้งหมดที่อยู่ภายในไดเรกทอรีนั้น ถ้าเป็นไฟล์จะมีแค่ 1 ลิงก์ 4. เจ้าของไฟล์ (Owner) 5. กลุ่ม (Group) 6. ขนาด (Size) มีหน่วยเป็นไบต์ ถ้าเป็นไฟล์จะเป็นขนาดของไฟล์ ถ้า เป็นไดเรกทอรีจะเป็นจานวนบล็อกที่ใช้ต่อ 1 ไดเรกทอรี ซึ่งโดยปกติ แล้วจะเป็น 4096 7. วันที่เข้าใช้งานล่าสุด 8. เวลาที่เข้าใช้งานล่าสุด 9. ชื่อไฟล์หรือชื่อไดเรกทอรีนั้นๆ ถ้าเป็นลิงก์จะแสดงเครื่องหมาย -> ไปที่ตาแหน่งของไฟล์จริง การสร้างลิงก์ • ลิงก์ (Link) ในระบบยูนิกซ์ จะเป็นการอ้างอิงถึงไฟล์หรือตาแหน่งของ ข้อมูลบนดิสก์ มีอยู่ด้วยกัน 2 แบบ คือ Hard Link และ Symbolic Link • Hard Link เป็นการสร้างตัวอ้างอิงข้อมูลที่อยู่ในดิสก์ โดยใช้ inode (ส่วนที่เก็บเนื้อหาและคุณสมบัติของข้อมูล) เดียวกัน ทา ให้ข้อมูลชุดเดียวสามารถปรากฏในหลายที่พร้อมกันได้ การสร้าง Hard Link จาเป็นที่จะต้องสร้างบนระบบไฟล์ (File System) ชนิดเดียวกันเท่านั้น ข้อดีของ Hard Link คือ เมื่อไฟล์ใดไฟล์ หนึ่งถูกลบ ข้อมูลในดิสก์ส่วนนั้นยังคงเข้าถึงจากไฟล์ที่เหลืออยู่ ได้ [13-2]
  • 58.
    56 รูปที่ 10 (5-4)การสร้างลิงก์ Hard Link • Symbolic Link เป็นการสร้างตัวอ้างอิงจากไฟล์ที่มีอยู่แล้ว ทา ให้เมื่อไฟล์ต้นฉบับถูกลบ ข้อมูลในส่วนนั้นก็จะไม่สามารถเข้าถึง ได้จาก Link ที่สร้างไว้ได้ การสร้าง Symbolic Link สามารถ สร้างบนระบบไฟล์ที่แตกต่างกันได้ รูปที่ 11 (5-5) การสร้างลิงก์ Symbolic Link • เมื่อใช้คาสั่ง ls -l เพื่อดูข้อมูลในไดเรกทอรี จะพบว่า ไฟล์ที่เป็นลิงก์จะมี การแสดงเครื่องหมาย -> เพื่อบอกว่าไฟล์นี้จะลิงก์ไปยังไฟล์ไหน • การสร้างลิงก์แบบ Hard Link ใช้คาสั่ง ln FILENAME LINKNAME เช่น ln def ghi จะเป็นการสร้างลิงก์ชื่อ ghi โดยลิงก์นี้จะเชื่อมต่อไปที่ ตาแหน่งของข้อมูลเดียวกันกับไฟล์ def • การสร้างลิงก์แบบ Symbolic Link ใช้คาสั่ง ln -s FILENAME LINKNAME เช่น ln -s def ghi จะเป็นการสร้างลิงก์ชื่อ ghi โดยลิงก์นี้จะ เชื่อมต่อที่ไฟล์ def
  • 59.
    57 การตรวจสอบประเภทของไฟล์ • ในกรณีที่ต้องการตรวจสอบไฟล์ที่ไม่รู้จักว่าไฟล์นั้นเป็นไฟล์ประเภทไหน สามารถใช้คาสั่ง fileFILENAME เพื่อดูข้อมูลของไฟล์นั้นได้ เช่น คาสั่ง file /bin/ls เป็นการดูประเภทของไฟล์ /bin/ls ซึ่งจะได้ผลลัพธ์ดังนี้ รูปที่ 12 (5-6) การตรวจสอบประเภทของไฟล์ จากผลลัพธ์ดังกล่าว จะพบว่า ไฟล์ /bin/ls เป็นไฟล์ประเภท executable (สามารถประมวลผลได้) ของระบบปฏิบัติการ Linux • คาสั่ง file เป็นการวิเคราะห์ประเภทของไฟล์ จากส่วนหัว (header) ของ ไฟล์นั้นๆ การค้นหาไฟล์ • การค้นหาไฟล์ที่อยู่ในไดเรกทอรีที่กาหนด ใช้คาสั่ง find PATH -name FILENAME เช่น คาสั่ง find /etc -name passwd เป็นการค้นหาว่ามี ไฟล์ชื่อ passwd อยู่ในไดเรกทอรี /etc หรือไม่ • ถ้าต้องการค้นหาไฟล์โดยไม่ระบุไดเรกทอรี ใช้คาสั่ง locate FILENAME เช่น locate php.ini การสร้าง archive และการบีบอัดข้อมูล • การสร้าง archive คือการรวมไฟล์ทุกไฟล์ในไดเรกทอรีให้เป็นไฟล์เดียว สามารถทาได้โดยใช้คาสั่ง tar cvf ARCHIVE.tar DIRECTORY เช่น tar cvf docs.tar /home/user/document จะเป็นการรวมไฟล์ทุกไฟล์ใน
  • 60.
    58 ไดเรกทอรี /home/user/document ให้เป็นไฟล์ชื่อว่าdocs.tar • การเพิ่มไฟล์ใน archive ทาได้โดยใช้คาสั่ง tar -r NEWFILE -f ARCHIVE.tar • ในการบีบอัดข้อมูลจาเป็นต้องทา 2 ขั้นตอน คือ สร้าง archive แล้วจึง เอา archive นั้นมาบีบอัด • การบีบอัดข้อมูลในระบบยูนิกซ์สามารถทาได้หลายแบบ แต่ที่นิยมใช้กัน ทั่วไปคือใช้วิธีบีบอัดแบบ gzip และ bzip โดยที่ bzip จะสามารถบีบอัด ข้อมูลได้มากกว่าแต่จะใช้เวลาบีบอัดนานกว่า gzip • การบีบอัดแบบ gzip ผลลัพธ์ที่ได้จะเป็นไฟล์ .tar.gz สามารถทา ได้โดยใช้คาสั่ง tar czvf ARCHIVE.tar.gz DIRECTORY • การบีบอัดแบบ bzip ผลลัพธ์ที่ได้จะเป็นไฟล์ .tar.bz หรือ .tar.bz2 ขึ้นอยู่กับขั้นตอนวิธีที่ใช้ในการบีบอัด สามารถทา ได้โดยใช้คาสั่ง tar cjvf ARCHIVE.tar.bz DIRECTORY • การแตกไฟล์ (Extract) จาก archive ใช้คาสั่ง tar xvf ARCHIVE.tar • ในกรณีที่ต้องการแตกไฟล์จาก archive ที่ถูกบีบอัด ต้องตรวจสอบว่าไฟล์ นั้นถูกบีบอัดมาโดยใช้วิธีอะไร • ถ้าบีบอัดด้วย gzip ใช้คาสั่ง tar xzvf ARCHIVE.tar.gz • ถ้าบีบอัดด้วย bzip ใช้คาสั่ง tar xjvf ARCHIVE.tar.bz2 5.4 การกาหนดสิทธิการใช้งาน (Permission) การกาหนดสิทธิในการใช้งาน มีไว้เพื่อจากัดขอบเขตการเข้าถึงข้อมูลของผู้ใช้ และ เพื่อป้องกันความเสียหายที่อาจจะเกิดขึ้นจากการกระทาโดยไม่ตั้งใจ การกาหนด สิทธิสามารถทาได้ทั้งไฟล์และไดเรกทอรี โดยมีรายละเอียดและขั้นตอนดังนี้
  • 61.
    59 การกาหนดความเป็นเจ้าของไฟล์ (File ownership) •ทุกไฟล์ในระบบสามารถมีเจ้าของ (Owner) และกลุ่ม (Group) ได้แค่ อย่างละ 1 เท่านั้น • ผู้ที่เป็นเจ้าของไฟล์ หรืออยู่ในกลุ่มที่กาหนดสามารถดาเนินการกับไฟล์ (อ่าน,เขียน,ประมวลผล) ได้ตามสิทธิที่กาหนดใน Permission bit ซึ่งเป็น ตัวเลขที่ใช้ในการกาหนดสิทธิการใช้งาน • การเปลี่ยน Owner ของไฟล์ ใช้คาสั่ง chown USER FILENAME • การเปลี่ยน Group ของไฟล์ ใช้คาสั่ง chgrp GROUP FILENAME การกาหนดสิทธิการใช้งาน (Permission) • สิทธิการใช้งาน สามารถมารถกาหนดได้ 6 อย่าง ได้แก่ • Read แทนด้วยเครื่องหมาย r • Write แทนด้วยเครื่องหมาย w • Execute แทนด้วยเครื่องหมาย x • SUID แทนด้วยเครื่องหมาย S • SGID แทนด้วยเครื่องหมาย S • Sticky แทนด้วยเครื่องหมาย t ซึ่งความหมายของสิทธิทั้ง 6 อย่างจะอธิบายในลาดับถัดไป • สิทธิการใช้งาน แบ่งออกเป็น 3 ส่วน ตามประเภทของผู้ใช้งาน ซึ่งได้แก่ • User เจ้าของไฟล์นั้นๆ แทนด้วยเครื่องหมาย u • Group คนที่อยู่ในกลุ่มเดียวกันกับกลุ่มที่เจ้าของไฟล์นั้นอยู่แทน ด้วยเครื่องหมาย g • Other คนอื่นๆ ที่ไม่ใช่เจ้าของไฟล์และไม่ได้อยู่ในกลุ่มที่เจ้าของ ไฟล์อยู่ แทนด้วยเครื่องหมาย o
  • 62.
    60 • การตรวจสอบสิทธิการใช้งานสามารถทาได้โดยใช้คาสั่ง ls-l FILENAME เช่น ls -l /etc/passwd จะได้ผลดังรูปที่ 13 (5-7) รูปที่ 13 (5-7) การกาหนดสิทธิการใช้งาน (Permission) รายละเอียดของสิทธิการใช้งานจะอยู่ในส่วนแรกสุดของบรรทัดที่เป็นผลลัพธ์ โดย จะเป็นตัวอักษร 9 ตัว ที่อยู่ถัดมาจากตัวอักษรที่ใช้บอกประเภทของไฟล์ ตัวอักษร แต่ละตัวแทนการกาหนดค่าต่างๆ ดังนี้ User Group Other Read Write Execute Read Write Execute Read Write Execute จากตัวอย่าง จะพบว่าสิทธิการใช้งานของไฟล์ /etc/passwd คือ rw-r--r-- แบ่งดู รายละเอียดทีละส่วน ดังนี้ • r-- คือสิทธิของคนที่อยู่ในกลุ่มเดียวกันกับเจ้าของไฟล์ • rw- คือสิทธิของเจ้าของไฟล์ • r-- คือสิทธิของคนอื่นๆที่ไม่ใช่เจ้าของไฟล์และไม่ได้อยู่ในกลุ่มเดียวกันกับ เจ้าของไฟล์ จากรูปจะพบว่า เจ้าของไฟล์ /etc/passwd คือ root และอยู่ในกลุ่มที่ชื่อ root จากข้อกาหนด rw- แสดงว่าเจ้าของไฟล์สามารถอ่านและเขียนไฟล์นี้ได้ แต่ไม่ สามารถสั่งประมวลผลไฟล์นี้ได้ ส่วนคนที่อยู่ในกลุ่มที่ชื่อ root จะได้รับสิทธิ r-- คือ อ่านได้อย่างเดียว ซึ่งคนอื่นๆ นอกเหนือจากนี้จะได้สิทธิ r—ก็จะสามารถอ่านได้ อย่างเดียวเช่นกัน
  • 63.
    61 ในส่วนของไฟล์ /bin/bash จะพบว่ามีสิทธิการใช้งานคือrwxr-xr-x หมายความว่า เจ้าของไฟล์ได้สิทธิ rwx คือสามารถอ่าน เขียน และสั่งประมวลผลไฟล์นี้ได้ แต่คนที่ อยู่ในกลุ่มเดียวกับเจ้าของไฟล์และคนอื่นๆ นอกเหนือจากนี้จะได้สิทธิ r-x คืออ่าน และสั่งประมวลผลไฟล์ได้อย่างเดียว ไม่สามารถแก้ไขได้ SUID, SGID และ Sticky ทั้ง SUID, SGID และ Sticky ต่างก็เป็นบิทพิเศษที่เอาไว้กาหนดค่าการนางานใน กรณีที่มีการประมวลผลไฟล์ นั้นๆ โดยทั้ง 3 บิทนี้จะแสดงในส่วนของ Execute bit โดยแต่ละแบบมีการทางานดังนี้ • SUID เมื่อมีใครก็ตามรันไฟล์นี้ โปรเซสนั้นจะถูกรันโดยใช้ชื่อของเจ้าของ ไฟล์ • SGID เมื่อมีใครก็ตามรันไฟล์นี้ โปรเซสนั้นจะถูกรันโดยใช้ชื่อของกลุ่มที่ ระบุ • Sticky ใครก็ตามสามารถอ่านหรือแก้ไขไฟล์นี้ได้ แต่ไฟล์นี้จะไม่สามารถ ถูกคนอื่นลบได้ นอกจากเจ้าของไฟล์เท่านั้น • เมื่อมีการกาหนดค่า SUID หรือ SGID แล้ว บิทที่เป็นส่วนของ Execute bit จะแสดงสัญลักษณ์ตัว S เช่น ถ้ากาหนด SUID ให้กับไฟล์ ไฟล์นั้นจะมี สิทธิการใช้งานเป็น rwS------ • เมื่อมีการกาหนดค่า Sticky bit ให้กับไฟล์ บิทที่เป็นส่วนของ Execute bit จะแสดงสัญลักษณ์ตัว t การกาหนดหรือแก้ไขสิทธิการใช้งาน ในการกาหนดหรือแก้ไขสิทธิการใช้งานของไฟล์หรือไดเรกทอรี ใช้คาสั่ง chmod {parameter} FILENAME การกาหนด parameter สามารถทาได้ 2 วิธี คือ ใช้ แบบตัวอักษร และแบบตัวเลข
  • 64.
    62 • การกาหนดสิทธิโดยใช้ตัวอักษร o การกาหนดผู้ใช้ ใช้ u แทน User (เจ้าของไฟล์)  ใช้ g แทน Group (กลุ่มที่ไฟล์นั้นอยู่)  ใช้ o แทน Other (คนอื่นๆ นอกเหนือจากนี้)  ใช้ a แทน All (ทั้ง 3 ประเภทที่กล่าวมา) o การกาหนดสิทธิ  ใช้ r แทน Read (อ่าน)  ใช้ w แทน Write (เขียน)  ใช้ x แทน Execute (ประมวลผล)  ใช้ s แทนการเซ็ต SUID หรือ SGID  ใช้ t แทนการเซ็ต Sticky o การเพิ่มสิทธิ ใช้เครื่องหมาย + และการยกเลิกสิทธิ ใช้ เครื่องหมาย - o การกาหนดหรือแก้ไขสิทธิ ใช้คาสั่ง chmod [user][+/- ][permission] FILENAME เช่น chmod g+rw file เป็นการ เพิ่มสิทธิในการอ่านและเขียนไฟล์ให้กับ group หรือคาสั่ง chmod ug-w+s เป็นการกาหนดสิทธิในการห้ามเขียนไฟล์ พร้อมทั้งกาหนด SUID และ SGID ให้กับ User และ Group • การกาหนดสิทธิโดยใช้ตัวเลข o ใส่ parameter เป็นตัวเลข 4 ตัว  ตัวแรกสุดเป็นการเซ็ต SUID, SGID หรือ stickey  ตัวที่สองเป็นการกาหนดสิทธิของ User  ตัวที่สามเป็นการกาหนดสิทธิของ Group  ตัวที่สี่เป็นการกาหนดสิทธิของ Other
  • 65.
    63 o ตัวเลขแต่ละตัวมีความหมายดังนี้ สิทธิการใช้งาน ค่า SUID4 SGID 2 Sticky 1 Read 4 Write 2 Execute 1 • การกาหนดสิทธิในส่วนของ SUID, SGID หรือ Sticky จะใส่ หรือไม่ใส่ก็ได้ ซึ่งถ้าไม่ใส่โดยปกติจะมีค่าเป็น 0 • ถ้าเอาค่าของตัวเลขแต่ละส่วนมาบวกกันจะสามารถกาหนดสิทธิ ได้หลากหลายแบบ เช่น 0 7 5 5 - rwx r-x r-x 4 6 4 1 - rwS r-- --x 5 2 3 1 - -wS -wx --t จากตารางที่ยกตัวอย่างไว้ด้านบน จะพบว่า ถ้ากาหนด Permission เป็น 0755 จะ มีค่าเป็น rwxr-xr-x หรือถ้ากาหนด Permission เป็น 4641 จะมีค่าเป็น rwSr----x เป็นต้น ตัวเลข 0755 ในตารางด้านบนเกิดขึ้นเนื่องจาก • กาหนดให้ User สามารถ Read, Write และ Execute ได้ ซึ่งเมื่อนาเลข 4 + 2 + 1 จะได้เท่ากับ 7 • กาหนดให้ Group สามารถ Read และ Execute ได้ ซึ่งเมื่อนา เลข 4 + 1 จะได้เท่ากับ 5
  • 66.
    64 • สิทธิของ Otherมีที่มาเช่นเดียวกับสิทธิของ Group ตัวเลข 4641 ในตารางด้านบนเกิดจาก • กาหนดค่า SUID ซึ่งจากตาราง SUID มีค่าเท่ากับ 4 • กาหนดให้ User สามารถ Read และ Write ได้ ซึ่งเมื่อนาเลข 4 + 2 จะได้เท่ากับ 6 • กาหนดให้ Group สามารถ Read ได้อย่างเดียว จึงมีค่าเป็น 4 • กาหนดให้ Other สามารถ Execute ได้อย่างเดียว จึงมีค่าเป็น 1 จะเห็นได้ว่า การจัดการไดเรกทอรีและไฟล์ในระบบยูนิกซ์นั้น อาจจะต้องใช้เวลาใน การทาความเข้าใจอยู่บ้าง แต่เมื่อเข้าใจหลักการทางานและสามารถใช้งานได้อย่าง คล่องแคล่วแล้วจะพบว่าคา สั่งหลายๆ อย่างช่วยให้ประหยัดเวลาอีกทั้งยังสามารถ ทางานได้อย่างสะดวกและรวดเร็ว 5.5 เอกสารอ้างอิง [5-1] http://en.wikipedia.org/wiki/Unix [5-2] http://en.wikipedia.org/wiki/Hard_link
  • 67.
    65 6. การบริหารจัดการผู้ใช้บนระบบ UNIX ผู้เรียบเรียง:เจษฎา ช้างสีสังข์ วันที่เผยแพร่: 12 พ.ย. 2554 ปรับปรุงล่าสุด: 12 พ.ย. 2554 UNIX เป็นระบบปฏิบัติการที่ถูกออกแบบมาให้สามารถใช้งานได้หลายคนในเวลา เดียวกัน (Multi-user) และสามารถทางานได้หลายๆ อย่างพร้อมกัน (Multitasking) [6-1] ด้วยความสามารถเหล่านี้ UNIX จึงนิยมนามาใช้เป็น ระบบปฏิบัติการในเครื่องเซิร์ฟเวอร์ ดังนั้น เพื่อให้สามารถใช้งานระบบ UNIX ได้ อย่างมีประสิทธิภาพ ผู้ดูแลระบบจึงควรมีความเข้าใจในการบริหารจัดการผู้ใช้และ การกาหนดสิทธิต่างๆ ซึ่งในบทความนี้ จะแนะนาคาสั่งในการใช้งานเบื้องต้น พร้อม ทั้งแสดงไฟล์หลักๆ ที่เกี่ยวข้อง ซึ่งคาสั่งต่างๆ ในบทความนี้สามารถใช้งานได้กับ ระบบปฏิบัติการ UNIX ทุกระบบ 6.1 ประเภทของผู้ใช้ สาหรับระบบปฏิบัติการตระกูล UNIX นั้น มีการออกแบบให้สามารถกาหนดสิทธิใน การเข้าถึงข้อมูลได้หลายระดับ เพื่อจากัดขอบเขตการใช้งานทรัพยากรต่างๆ ของ ระบบตามระดับของผู้ใช้ เช่น กาหนดสิทธิไม่ให้แก้ไขไฟล์สาคัญ ซึ่งในระบบ UNIX สามารถจาแนกผู้ใช้ออกได้เป็น 2 ประเภทด้วยกัน คือ User คือผู้ใช้ทั่วไปที่มีสิทธิในการใช้งานระบบอยู่อย่างจากัด หรือเป็น ผู้ใช้ที่ถูกสร้างมา เพื่อใช้งานสาหรับโปรแกรมประยุกต์ที่ติดตั้งในระบบ เช่น Web Server
  • 68.
    66 Superuser คือผู้ใช้ที่มีสิทธิในการบริหารจัดการระบบทุกอย่างไม่ว่าจะเป็นการ สร้างหรือ กาหนดสิทธิใช้งานให้กับผู้ใช้ [6-2]หรือการปิดการทางานของ Process ที่สาคัญ เช่น Web Server การแก้ไขไฟล์ของระบบ เป็นต้น ซึ่งในระบบปฏิบัติการ UNIX นั้น จะมีชื่อเรียกของ Superuser ว่า root 6.2 ไฟล์ที่ใช้กาหนดค่าให้กับผู้ใช้ ในการกาหนดความสามารถและรายละเอียดของผู้ใช้ไฟล์ข้อความที่ใช้งานร่วมกัน 3 ไฟล์ คือ passwd, shadow และ group โดยแต่ละไฟล์จะมีการกาหนดสิทธิใน การเข้าถึงไม่เหมือนกัน เนื่องจากมีบางไฟล์ที่ใช้เก็บข้อมูลที่เป็นความลับซึ่งไม่ ต้องการให้ผู้ใช้งานอื่นเห็น เช่น รหัสผ่าน ผู้อ่านสามารถศึกษาการตั้งค่าสิทธิการ เข้าถึงไฟล์ได้จากบทความ การจัดการไดเรกทอรีและไฟล์ในระบบยูนิกซ์ [6-3] การเข้าถึงระบบนั้น ผู้ใช้จะมีชื่อที่ใช้เข้าถึงระบบเรียกว่า Username และมี รหัสผ่านของแต่ละ Username ด้วย หรือบางครั้งผู้ดูแลระบบอาจมีการกาหนด Username ที่ไม่จาเป็นต้องใส่รหัสผ่าน เพื่อใช้งานชั่วคราวโดยมีการกาหนดสิทธิใน การเข้าถึงที่จากัด เช่น มหาวิทยาลัยแห่งหนึ่งมีการสร้าง Username ให้กับ นักศึกษาเข้ามาใช้งาน โดยยอมให้ใช้งานโปรแกรมประยุกต์ได้บางโปรแกรม หรือให้ สิทธิในการเขียนไฟล์ได้บางส่วนเท่านั้น สาหรับการระบุตัวตนของผู้ใช้นั้น ระบบจะ ดูหมายเลขที่ใช้อ้างอิงกับผู้ใช้ เรียกว่า User Identifier หรือ UID ซึ่งหากมีการ กาหนด Username โดยมี UID เดียวกัน ระบบจะเข้าใจว่าผู้ใช้นั้นมีสิทธิเท่าเทียม กัน และระบบยังสามารถจัดการผู้ใช้ให้เป็นกลุ่มได้โดยสามารถกาหนดชื่อ และ อ้างอิงจากหมายเลขที่เรียกว่า Group Identifier หรือ GID ซึ่งในแต่ละไฟล์นั้น มีการกาหนดรูปแบบการเก็บค่าแตกต่างกัน มีรายละเอียดดังนี้ /etc/passwd เป็นไฟล์ข้อความที่ใช้เก็บข้อมูลรายละเอียดของผู้ใช้ในระบบ เช่น UID, GID และ
  • 69.
    67 ไดเรกทอรีหลักของผู้ใช้ (Home directory)เป็นต้น โดยระบบจะกาหนดให้ผู้ใช้มี สิทธิในการอ่านไฟล์นี้ และกาหนดสิทธิในการแก้ไขให้กับ root เท่านั้น ซึ่งในแต่ละ บรรทัดของไฟล์จะใช้แทนรายละเอียดต่อหนึ่ง Username และจะประกอบไปด้วย รายละเอียดของผู้ใช้ในส่วนต่างๆ โดยแต่ละส่วนจะคั่นด้วยเครื่องหมาย “:” ดังที่ แสดงในภาพด้านล่าง รูปที่ 14 (6-1) ตัวอย่างรายละเอียดผู้ใช้ชื่อ Oracle [6-4] 1. Username: เป็นส่วนที่ใช้เก็บค่าของ Username ที่ใช้เข้าสู่ระบบ มีความ ยาวไม่เกิน 32 ตัวอักษร 2. Password: เป็นส่วนที่ใช้บอกว่ามีการเข้าถึงระบบโดยใช้รหัสผ่านหรือไม่ ซึ่งหากเป็นค่า “x” แสดงว่าผู้ใช้มีการใช้รหัสผ่าน ซึ่งรหัสผ่านนี้จะถูก เข้ารหัสลับและเก็บไว้ที่ไฟล์ /etc/shadow หากเป็นค่า “*” หรือ “!” จะ เป็นการบ่งบอกว่า ให้ปิดการเข้าถึงระบบด้วยการใส่รหัสผ่าน มักใช้กับ Username ที่ติดตั้งมากับโปรแกรม 3. User ID (UID): เป็นส่วนที่ใช้ระบุหมายเลขให้กับผู้ใช้ โดยหมายเลข 0 จะ ถูกจองให้กับ Superuser หรือ root เท่านั้น หมายเลข 1-99 จะถูกจอง ให้กับโปรแกรมของระบบ และ หมายเลข 100-999 จะถูกจองให้กับ โปรแกรมต่างๆ ที่ติดตั้งโดย ผู้ดูแลระบบหรือใช้ในการกาหนดกลุ่ม ของ ระบบ ดังนั้น สาหรับการกาหนดหมายเลขให้กับผู้ใช้ทั่วไปจึงควร กาหนดค่าตั้งแต่ 1000 ขึ้นไป 4. Group ID (GID): เป็นส่วนที่ระบุหมายเลขของกลุ่มที่ผู้ใช้นั้นอยู่ ซึ่งรายละเอียดแต่ละกลุ่ม จะถูกเก็บไว้ที่ /etc/group 5. User ID Info: เป็นส่วนที่ใช้แสดงรายละเอียดเพิ่มเติมเกี่ยวกับผู้ใช้ เช่น
  • 70.
    68 ระบุชื่อ-นามสกุลของผู้ใช้ หมายเลขโทรศัพท์ เป็นต้น 6.Home directory: เป็นส่วนที่ระบุตาแหน่งไดเรกทอรีที่จะปรากฏเมื่อผู้ใช้ เข้าสู่ระบบ โดยการกาหนดนั้นจะต้องระบุเป็น Absolute path ซึ่งอ้างอิง จากตาแหน่งของ root คือ / หากเว้นว่าง ไว้หรือไดเรกทอรีที่กาหนดไม่มี อยู่จริง ระบบจะกาหนดให้เป็น / 7. Command/shell: เป็นส่วนที่เก็บตาแหน่งของโปรแกรม shell หรือ โปรแกรมที่ทาหน้าที่รับคาสั่งจากผู้ใช้ไปประมวลผลบนระบบ [15-5] โดย การกาหนดนั้นจะต้องระบุเป็น Absolute path /etc/shadow เป็นไฟล์ข้อความที่เก็บรหัสผ่านจริงของผู้ใช้โดยจะอยู่ในรูปของการเข้ารหัสลับ และ เก็บค่าที่ใช้กาหนดคุณสมบัติของการใช้รหัสผ่าน เช่น วันหมดอายุ โดยจะใช้หนึ่ง บรรทัดต่อหนึ่ง Username ไฟล์นี้กาหนดสิทธิในการอ่านเขียนให้กับ root เท่านั้น เพื่อป้องกันไม่ให้ผู้ใช้เห็นรหัสผ่านของผู้ใช้คนอื่น และประกอบไปด้วยรายละเอียด ของผู้ใช้ในส่วนต่างๆ โดยแต่ละส่วนจะคั่นด้วยเครื่องหมาย “:” ดังรูปที่ 15 (6-2) รูปที่ 15 (6-2) ตัวอย่างข้อมูลรายละเอียดในไฟล์ /etc/shadow [6-6] 1. Username: เป็นส่วนที่ใช้เก็บค่าชื่อของผู้ใช้ที่ใช้เข้าสู่ระบบ มีความยาว ตัวอักษรไม่เกิน 32 ตัวอักษร 2. Encrypted password: เป็นส่วนที่แสดง รหัสผ่านของผู้ใช้ที่ถูกเข้ารหัส ลับไว้ โดยรูปแบบการเข้ารหัสลับ จะอ้างอิงจากฟังก์ชันของระบบที่ชื่อว่า crypt [6-4] เช่น จากตัวอย่างจะมีส่วนที่ใช้อธิบายคั่นด้วยเครื่องหมาย $
  • 71.
    69 โดยค่าแรกจะเป็นหมายเลขกาหนดชนิดวิธีการ Hash หรือขั้นตอนในการ เข้ารหัสลับข้อมูลซึ่งค่า 1 เป็นการกาหนด Hash แบบหนึ่งที่เรียกว่า MD5 ค่าถัดมาเรียกว่า Salt คือค่าที่สร้างขึ้นมาเพื่อนาไปรวมกับ รหัสผ่าน จริงก่อนทาการ Hash เพื่อป้องกันโอกาสการเกิดผลลัพธ์ของการ Hash (Message Digest) ซ้ากัน 3. Date of last password change: เป็นส่วนที่แสดงวันที่ล่าสุดที่มีการ เปลี่ยนแปลงรหัสผ่าน เป็นตัวเลขในรูปของ UNIX timestamp (จานวน วินาทีที่ถูกนับจากวันที่ 1 มกราคม ค.ศ. 1970 อ้างอิงตามเวลาสากลเชิง พิกัด หรือ UTC) [6-7] จากตัวอย่างเมื่อนามาแปลงจะได้ วันที่ 1 มกราคม ค.ศ. 1970 เวลา 03:37:44 น. 4. Minimum password age: เป็นส่วนที่ระบุจานวนวันที่น้อยที่สุด ที่อนุญาตให้ผู้ใช้ทาการเปลี่ยนรหัสผ่านได้ สาหรับการกาหนดค่า 0 หรือ เว้นว่างไว้ จะเป็นการกาหนดว่าไม่มีค่า Minimum 5. Maximum password age: เป็นส่วนที่ระบุจานวนวันสูงสุดที่อนุญาตให้ ผู้ใช้สามารถเปลี่ยนรหัสผ่านของตนเองได้ สาหรับการกาหนดค่า 99999 หรือไม่ใส่อะไร จะเป็นการกาหนดว่าสามารถเปลี่ยนรหัสผ่านได้ทุกเมื่อ *หมายเหตุ หากไม่ต้องการให้ผู้ใช้เปลี่ยนรหัสผ่านของตนเองได้ ผู้ดูแลระบบสามารถทา ได้โดยการกาหนดค่าในส่วนของ Maximum ให้มีค่าน้อยกว่า Minimum 1. Password warning period: เป็นส่วนที่กาหนดจานวนวัน ให้ระบบเริ่ม แจ้งเตือน ก่อนที่รหัสผ่านจะหมดอายุการใช้งาน เมื่อถึงวันที่ต้องแจ้งเตือน ระบบจะแสดงข้อความให้ทาการเปลี่ยนรหัสผ่าน และบอกจานวนวันที่ เหลือก่อนหมดอายุการใช้งาน [6-8] 2. Password Inactivity Period: เป็นส่วนที่แสดงจานวนวัน หากไม่มีการ เปลี่ยนรหัสผ่านภายในวันที่กาหนดจะทาให้ผู้ใช้นั้นถูกปิดการใช้งาน 3. Account expiration date: เป็นส่วนที่ใช้กาหนดวันหมดอายุของผู้ใช้ โดยมีรูปแบบเป็น UNIX timestamp ซึ่งเมื่อครบกาหนดระบบจะทาการ
  • 72.
    70 ปิดการทางานของผู้ใช้นั้นโดยทันที /etc/group เป็นไฟล์ข้อความที่ใช้กาหนดคุณสมบัติและสมาชิกของแต่ละกลุ่ม ไฟล์นี้จะถูก กาหนดสิทธิให้ผู้ใช้งานสามารถอ่านได้เท่านั้น โดยผู้ที่มีสิทธิในการแก้ไขไฟล์มีเพียง rootเท่านั้น โดยทั่วไปแล้วในระบบใหญ่ๆ ควรมีการสร้างกลุ่มขึ้นมา เพื่อให้เกิด ความสะดวกในการบริหารจัดการสิทธิในการเข้าถึงระบบให้กับกลุ่มผู้ใช้ต่างๆ เช่น กาหนดให้กลุ่ม A สามารถแก้ไขไฟล์ได้เฉพาะไดเรกทอรี /var/opt เท่านั้น, หรือ การกาหนดให้ผู้ใช้มีสิทธิเท่าเทียมกับโปรแกรมของระบบเช่น Web Server เป็นต้น รูปที่ 16 (6-3) ตัวอย่างข้อมูลรายละเอียดในไฟล์ /etc/group [6-9] 1. Group Name: เป็นส่วนที่ระบุชื่อของ group 2. Password: เป็นส่วนที่ระบุว่า จะให้มีการกาหนดรหัสผ่านเมื่อผู้ใช้ต้องการ เข้าไปยัง Group นั้นหรือไม่ ซึ่งหากเป็นค่า “x” แสดงว่ามีการใช้รหัสผ่าน ซึ่งรหัสผ่านนี้จะถูกเข้ารหัสลับและเก็บไว้ที่ไฟล์ /etc/shadow หากไม่ ต้องการกาหนดสามารถทาได้โดยการเว้นว่างไว้ 3. Group ID (GID): เป็นส่วนที่แสดงหมายเลข Group ID 4. User List: เป็นส่วนที่แสดงรายชื่อ User ที่เป็นสมาชิกของ Group สามารถเพิ่มสมาชิก โดยใส่เครื่องหมาย “,” คั่น
  • 73.
    71 จากความสัมพันธ์ของไฟล์ทั้งสามข้างต้นนั้น เมื่อมีความเข้าใจแล้วผู้ดูแลระบบ สามารถทาการจัดการบริหารผู้ใช้ได้โดยการแก้ไขไฟล์โดยตรง หรืออาจมีการ ประยุกต์โดยการเขียนสคริปต์เพื่อสร้างผู้ใช้ให้กับระบบหลายๆ คนพร้อมกัน นอกจากนี้ ระบบปฏิบัติการ UNIX ยังมีคาสั่งที่สร้างความสะดวกในการบริหาร จัดการผู้ใช้ และเพื่อไม่ให้ผู้ดูแลระบบเสียเวลาแก้ไขไฟล์เอง ซึ่งมีโอกาสผิดพลาดได้ โดยมีคาสั่งมาตรฐานที่ติดตั้งมากับระบบ UNIX ที่แนะนาดังนี้ 6.3 คาสั่งพื้นฐานที่ใช้บริหารจัดการผู้ใช้บนระบบ การเพิ่มผู้ใช้ให้กับระบบ ผู้ดูแลระบบสามารถเพิ่มผู้ใช้ โดยการใช้คาสั่ง useradd ซึ่งมี option ทั่วไปดังนี้ useradd [-u UID] [-g GID] [-d HOME_DIR] [-s SHELL] [-m] [-c COMMENT] USER_NAME [-u UID] กาหนดหมายเลข UID ให้กับผู้ใช้ [-g GID] กาหนดหมายเลข GID หรือชื่อกลุ่มให้กับผู้ใช้ [-d HOME_DIR] กาหนดไดเรกทอรีแรกให้กับผู้ใช้ [-s SHELL] กาหนดโปรแกรม Shell ที่จะใช้ให้กับผู้ใช้ [-m] กาหนดให้มีการสร้าง Home Directory หากยังไม่มี [-c COMMENT] กาหนดค่า String เพื่อแสดงรายละเอียดเพิ่มเติมของผู้ใช้ USER_NAME กาหนด ชื่อที่ใช้เข้าถึงระบบ ตัวอย่างคาสั่ง # useradd -u 777 -g test -d /home/test -s /bin/sh -m -c test_comment test
  • 74.
    72 การกาหนดรหัสผ่านให้กับผู้ใช้ ผู้ดูแลระบบสามารถเพิ่มหรือเปลี่ยนแปลงรหัสผ่านให้กับผู้ใช้ได้โดยการใช้คาสั่ง passwd ดังนี้ passwd USER_NAME ตัวอย่างคาสั่ง #passwd test Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully จากตัวอย่าง เมื่อพิมพ์คาสั่งกาหนดรหัสผ่านให้กับผู้ใช้ชื่อ test ระบบจะให้กาหนด รหัสผ่านใหม่สองครั้ง ถ้าตรงกันระบบจะสร้าง รหัสผ่านให้ การแก้ไขข้อมูลผู้ใช้ ผู้ดูแลระบบสามารถแก้ไขข้อมูลผู้ใช้ด้วยคาสั่ง usermod ซึ่งมี option ทั่วไปดังนี้ usermod [-u UID] [-g GID] [-d HOME_DIR] [-s SHELL] [-m] [-c COMMENT] [-e EXPIRE_DATE] USER_NAME [-u UID] กาหนดหมายเลข UID ให้กับผู้ใช้ [-g GID] กาหนดหมายเลข GID หรือชื่อกลุ่มให้กับผู้ใช้ [-d HOME_DIR] กาหนดไดเรกทอรีแรกให้กับผู้ใช้ [-s SHELL] กาหนดโปรแกรม Shell ที่จะใช้ให้กับผู้ใช้ [-m] กาหนดให้มีการสร้าง Home Directory หากยังไม่มี [-c COMMENT] กาหนดค่า String เพื่อแสดงรายละเอียดเพิ่มเติมของผู้ใช้
  • 75.
    73 [-e EXPIRE_DATE] กาหนดวันหมดอายุการใช้งานของผู้ใช้ โดยมีรูปแบบเป็น YYYY-MM-DD [-L ]กาหนดให้ปิดการใช้งานผู้ใช้ [-U ] กาหนดให้เปิดการใช้งานผู้ใช้ USER_NAME กาหนดชื่อที่ใช้เข้าถึงระบบ ตัวอย่างคาสั่ง #usermod -d /home/test02 test #usermod -c "Mr.test test02" test การลบผู้ใช้ออกจากระบบ ผู้ดูแลระบบสามารถลบผู้ใช้ออกจากระบบ โดยการใช้คาสั่ง userdel เช่น userdel USER_NAME ตัวอย่างคาสั่ง # userdel test02 การสร้างกลุ่ม ผู้ดูแลระบบสามารถสร้างกลุ่มได้โดยการใช้คาสั่ง groupadd ได้โดยการใช้คาสั่ง ดังนี้ groupadd [-g GID] GROUP_NAME ตัวอย่างคาสั่ง #groupadd -g 1000 etda
  • 76.
    74 คาสั่งการแสดงรายละเอียดผู้ใช้ ผู้ใช้สามารถใช้คาสั่ง id เพื่อแสดงรายละเอียดผู้ใช้เช่นUsername, UID, GID โดยใช้คาสั่งดังนี้ id USER_NAME ตัวอย่างคาสั่ง $ id jezt uid=1000(jezt) gid=1000(jezt) groups=1000(jezt),4(adm),20(dialout),24(cdrom),33(www- data),46(plugdev),112(lpadmin),120(admin),122(sambashare) จากคาสั่งพื้นฐานที่ได้แนะนานั้น ผู้ใช้สามารถดูรายละเอียดเพิ่มเติมได้จากคู่มือการ ใช้งาน (Man pages) ด้วยการใช้คาสั่ง man [COMMAND_NAME] เช่น $man useradd 6.4 เอกสารอ้างอิง [6-1] http://en.wikipedia.org/wiki/Unix [6-2] http://en.wikipedia.org/wiki/Superuser [6-3] http://www.thaicert.or.th/papers/normal/2011/ pp2011no0003.html [6-4] http://www.cyberciti.biz/faq/understanding-etcpasswd-file- format/ [6-5] http://en.wikipedia.org/wiki/Unix_shell [6-6] http://www.cyberciti.biz/faq/understanding-etcshadow-file/ [6-7] http://en.wikipedia.org/wiki/Unix_time [6-8] http://www.thegeekstuff.com/2009/04/chage-linux-password-
  • 77.
  • 78.
  • 79.
    77 7. คาสั่งที่เกี่ยวข้องกับการประมวลผลข้อความใน ระบบปฏิบัติการ UNIX ผู้เรียบเรียง:วิศัลย์ ประสงค์สุข วันที่เผยแพร่: 15 พ.ย. 2554 ปรับปรุงล่าสุด: 15 พ.ย. 2554 เนื่องจากระบบปฏิบัติการ UNIX พิจารณาทรัพยากรทุกอย่างบนระบบในรูปแบบ ของไฟล์ไม่เว้นแม้กระทั่งฮาร์ดแวร์ หรือโปรเซสที่รันอยู่ในหน่วยความจา [7-1] การแก้ไขการตั้งค่าระบบส่วนใหญ่จึงทาในไฟล์การตั้งค่า (Configuration file) ในบางครั้งไฟล์เหล่านี้ก็ความยาวมากทาให้ไม่สะดวกในการค้นหาสิ่งที่ต้องการ แก้ไขแต่ปัญหานี้สามารถแก้ไขได้ หากผู้ใช้มีความสามารถในการใช้งานคาสั่งที่ เกี่ยวข้องกับการประมวลผลข้อความ (Text Processing) ในบทความนี้ จะยกตัวอย่างการใช้งานคาสั่งที่เกี่ยวข้องกับการประมวลข้อความที่ ใช้บ่อย เพื่อให้ผู้เริ่มต้นหรือผู้สนใจสามารถใช้งานคาสั่งที่เกี่ยวข้องกับการ ประมวลผลข้อความขั้นพื้นฐานได้ โดยใช้ไฟล์ /etc/passwd ในการสาธิตวิธีใช้งาน คาสั่งต่างๆ ไฟล์ /etc/passwd นี้เป็นไฟล์ของระบบ UNIX ซึ่งเก็บข้อมูลบัญชีชื่อ ผู้ใช้ของระบบ UNIX 7.1 ตัวอย่างคาสั่งที่เกี่ยวข้องกับการประมวลผลข้อความที่ ใช้งานบ่อย head และ tail head เป็นคาสั่งที่ใช้แสดงเนื้อหาส่วนต้นของไฟล์ (โดยค่าตั้งต้นจะแสดง 10 บรรทัดแรก) ส่วนมากจะใช้กับไฟล์หรือผลลัพธ์ที่เกิดจากการทางานจากคาสั่งอื่น
  • 80.
    78 โดยมีรูปแบบคือ head [option][filename] มีตัวอย่างการใช้งานดังนี้ ตารางที่ 3 (7-1) คาสั่ง head คาสั่ง ความหมาย head /etc/passwd แสดง 10 บรรทัดแรกของไฟล์ /etc/passwd head -c10 /etc/passwd แสดง 10 ไบต์แรกของไฟล์ /etc/passwd head -n5 /etc/passwd แสดง 5 บรรทัดแรกของไฟล์ /etc/passwd tail เป็นคาสั่งที่คล้ายกับคาสั่ง head ใช้แสดงเนื้อหาส่วนท้ายของไฟล์ (โดยค่าตั้ง ต้นจะแสดง 10 บรรทัดสุดท้าย) นอกจากนี้ผู้ใช้สามารถใช้คาสั่ง tail เพื่อเฝ้าดูไฟล์ ที่มีการเปลี่ยนแปลงตลอดเวลาเช่น Log file เป็นต้น สามารถใช้งานคาสั่งโดยมี รูปแบบคือ tail [option] [filename] มีตัวอย่างการใช้งานดังนี้ ตารางที่ 4 (7-2) คาสั่ง tail คาสั่ง ความหมาย tail /etc/passwd แสดง 10 บรรทัดสุดท้ายของไฟล์ /etc/passwd tail -c10 /etc/passwd แสดง 10 ไบต์สุดท้ายของไฟล์ /etc/passwd tail -f file.log แสดง 10 บรรทัดสุดท้ายขณะที่ไฟล์มีการ เปลี่ยนแปลง tail -n5 /etc/passwd แสดง 5 บรรทัดสุดท้ายของไฟล์ /etc/passwd more และ less ทั้งสองเป็นคาสั่งที่ใช้แสดงเนื้อหาของไฟล์ทีละหน้าจอ มีประโยชน์มากหากไฟล์นั้น มีความยาวเกินกว่าที่จะแสดงได้ในหน้าจอเดียว คาสั่ง less พัฒนาเพิ่มเติมจาก คาสั่ง more จึงมีความสามารถมากกว่า เช่น แสดงข้อความได้โดยไม่ต้องรอให้ ระบบปฏิบัติการโหลดทั้งไฟล์ไปไว้ที่หน่วยความจาเป็นต้น สามารถใช้คาสั่งโดยมี รูปแบบ more [filename] และ less [filename] เช่น more /etc/passwd
  • 81.
    79 echo เป็นคาสั่งที่ใช้แสดงข้อความที่พิมพ์เข้าไปในเครื่องคอมพิวเตอร์ออกทางหน้าจอ เช่น หากต้องการแสดงคาว่า “helloworld” ออกทางหน้าจอสามารถใช้งานคาสั่ง โดยมีรูปแบบคือ echo [option] [text] มีตัวอย่างการใช้งานดังนี้ ตารางที่ 5 (7-3) คาสั่ง echo คาสั่ง ความหมาย echo “hello world” แสดงข้อความ hello world ทางหน้าจอ เมื่อ แสดงข้อความแล้วจะขึ้นบรรทัดใหม่ echo -n “hello world” ไม่ต้องขึ้นบรรทัดใหม่เมื่อแสดงข้อความ hello world จบ echo -e “hello tworld” อนุญาตให้ใช้ Escape Character (ตัวอักษรพิเศษ ที่ทาให้ตัวอักษรที่ตามมามีความหมายอื่น ส่วน ใหญ่มักใช้ตัวอักษรพิเศษคือ ) เช่น t หมายถึง เลื่อนตาแหน่งไปทางขวา 1 ย่อหน้า n หมายถึง ขึ้นบรรทัดใหม่ หมายถึง เติมเครื่องหมาย ” หมายถึง เติมเครื่องหมาย “ เป็นต้น cat คาสั่ง cat แสดงเนื้อหาทั้งหมดของไฟล์ที่ระบุ สามารถใช้งานคาสั่งโดยมีรูปแบบ การใช้งานคือ cat [option] [file] มีตัวอย่างการใช้งานดังนี้ ตารางที่ 6 (7-4) คาสั่ง cat คาสั่ง ความหมาย cat /etc/passwd แสดงเนื้อหาทั้งหมดของไฟล์ /etc/passwd cat -b /etc/passwd แสดงเนื้อหาทั้งหมดของไฟล์โดยจะแสดงเลข บรรทัดซึ่งไม่นับรวมบรรทัดว่าง cat -n /etc/passwd แสดงเนื้อหาทั้งหมดของไฟล์โดยจะแสดงเลข
  • 82.
    80 คาสั่ง ความหมาย บรรทัดซึ่งนับรวมบรรทัดว่างด้วย cat -E/etc/passwd แสดงคาสุดท้ายของแต่ละบรรทัดของเนื้อหาใน ไฟล์ Pipe สัญลักษณ์ “|” เรียกว่า Pipe ทาหน้าที่นาผลลัพธ์ของคาสั่งแรกไปเป็นข้อมูลนาเข้า ของคาสั่งที่สอง ยกตัวอย่างเช่น หากผู้ใช้ต้องการแสดงเลขบรรทัด เนื้อหาของไฟล์ /etc/passwd ทีละหน้าจอสามารถใช้โปแกรม cat ร่วมกับคาสั่ง more ได้เช่น cat -n /etc/passwd | more เป็นต้น wc คาสั่ง wc ใช้ในการนับจานวนคา จานวนบรรทัด หรือ จานวนไบต์ ของไฟล์ที่ระบุ สามารถนาไปประยุกต์ใช้ได้อย่างกว้างขวาง เช่น หากต้องการทราบจานวนผู้ใช้ ภายในเครื่องคอมพิวเตอร์สามารถใช้คาสั่งนี้ เพื่อนับจานวนบรรทัดของไฟล์ /etc/passwd ได้ เป็นต้น สามารถใช้คาสั่งโดยมีรูปแบบคือ wc [option] [filename] มีตัวอย่างการใช้งานดังนี้ ตารางที่ 7 (7-5) คาสั่ง wc คาสั่ง ความหมาย wc /etc/passwd แสดงจานวนบรรทัด จานวนคา จานวนไบต์ จาก ไฟล์ /etc/passwd wc -l /etc/passwd แสดงจานวนบรรทัดของไฟล์ /etc/passwd wc -w /etc/passwd แสดงจานวนคาของไฟล์ /etc/passwd wc -c /etc/passwd แสดงจานวนไบต์ของไฟล์ /etc/passwd
  • 83.
    81 Redirection หลายครั้งเมื่อผลลัพธ์ที่ได้จากการทางานของคาสั่งมีความยาวมากทาให้ไม่สะดวกที่ จะอ่านที่หน้าจอ ระบบปฏิบัติการ UNIXจึงมีวิธีเปลี่ยนการแสดงผลลัพธ์ให้ไปยังที่ ซึ่งผู้ใช้ต้องการ เพื่อใช้ในการตรวจสอบภายหลัง เช่น อาจจะนาผลลัพธ์มาเขียนเป็น ไฟล์ หรือจะให้พิมพ์ออกมาทางเครื่องพิมพ์ เป็นต้น เรียกวิธีการเช่นนี้ว่า Redirection ซึ่งนอกจากจะเปลี่ยนการแสดงผลลัพธ์จากการทางานของคาสั่งได้ แล้ว ยังสามารถใช้เพื่อเปลี่ยนวิธีนาข้อมูลเข้าสู่คาสั่งได้ด้วย เช่น สามารถกาหนดให้ ไฟล์เป็นข้อมูลนาเข้าของคาสั่งได้แทนที่จะนาเข้าข้อมูลผ่านแป้นพิมพ์แบบทั่วไป เป็นต้น ในการใช้งาน ผู้ใช้จะใช้สัญลักษณ์ “<” เพื่อแทนการเปลี่ยนวิธีนาเข้าข้อมูล และใช้ “>” แทนการเปลี่ยนวิธีแสดงผลลัพธ์ แต่ก่อนจะเริ่มสาธิตการใช้งาน Redirection ผู้ใช้ควรทาความเข้าใจกับ Standard Streams เพื่อทราบหลักการ ทางานของคาสั่งในระบบ UNIX เบื้องต้นก่อน Standard Streams การไหลของข้อมูลจากที่หนึ่งไปยังอีกที่หนึ่ง เรียกว่า Streams โดยทั่วไปการไหล ของข้อมูลในระบบ UNIX มี 3 ประเภทดังรูปที่ 17 (7-1) เรียกการไหลของข้อมูล เหล่านี้ว่า Standard Streams ประกอบไปด้วย 1. Standard Input (stdin) เป็นข้อมูลที่นาเข้าสู่คาสั่ง ซึ่งโดยทั่วไปมี Terminal (ส่วนที่ทาหน้าที่ติดต่อระหว่างผู้ใช้กับคอมพิวเตอร์) เป็น แป้นพิมพ์ มี File descriptor เป็น 0 2. Standard Output (stdout) เป็นผลลัพธ์ที่ได้จากการประมวลผลคาสั่ง ซึ่งโดยทั่วไปมี Terminal เป็น หน้าจอคอมพิวเตอร์ มี File descriptor เป็น 1 3. Standard Error (stderr) เป็นผลลัพธ์ที่ได้จากการประมวลผลคาสั่ง เมื่อ มีการทางานผิดพลาด ซึ่งโดยทั่วไปมี Terminal เป็น หน้าจอคอมพิวเตอร์ มี File descriptor เป็น 2
  • 84.
    82 รูปที่ 17 (7-1)Standard Streams [7-2] ตรงจุดนี้น่าจะมีผู้สงสัยไม่น้อยเกี่ยวกับ File descriptor ซึ่งสามารถอธิบายอย่าง ง่ายคือ ในขณะที่ระบบปฏิบัติการ UNIX เปิดไฟล์ที่ต้องการใช้งาน ระบบจะ กาหนดค่าตัวเลขให้กับไฟล์นั้น เพื่อให้คาสั่งต่างๆ เรียกใช้งานเมื่อต้องการอ่านหรือ เขียนข้อมูลในไฟล์นั้น เลขที่ระบบปฏิบัติการกาหนดให้ไฟล์นี้เรียกว่า File Descriptor โดยทั่วไประบบ UNIX จะเปิดไฟล์ทั้งสามที่กล่าวไว้ข้างต้น เพื่อให้ คาสั่งต่างๆ เรียกใช้งาน [7-3] ผู้ใช้สามารถใช้งาน Redirection ได้ดังนี้ ตัวอย่าง การใช้ข้อมูลจากไฟล์เป็นข้อมูลนาเข้า cat < /etc/passwd คาสั่งนี้เป็นการกาหนดให้ไฟล์ /etc/passwd เป็นข้อมูลนาเข้าของคาสั่ง cat ตัวอย่าง การเปลี่ยนวิธีแสดงผลลัพธ์ที่ได้จากคาสั่งไปสู่ไฟล์ echo “hello world” > sample1 คาสั่งนี้เป็นการกาหนดผลลัพธ์ของคาสั่ง echo ไว้ที่ไฟล์ sample1 ตัวอย่าง การใช้ข้อมูลจากไฟล์เป็นข้อมูลนาเข้า และเปลี่ยนวิธีการแสดงผลลัพธ์ไปสู่ ไฟล์ cat < /etc/passwd > sample2 คาสั่งนี้เป็นการกาหนดให้ไฟล์ /etc/password เป็นข้อมูลนาเข้าของคาสั่ง cat และนาผลลัพธ์เขียนลงในไฟล์ sample2
  • 85.
    83 การใช้งาน Redirection นั้นมีประโยชน์อย่างมากเพราะช่วยให้ผู้ใช้ทางานได้ สะดวกมากขึ้น เช่น ในบางกรณีหากชุดคาสั่งที่ใช้งานเกิดข้อผิดพลาด ผู้ใช้สามารถ ใช้ Redirection ร่วมกับ stdout และ stderr เพื่อเปลี่ยนการแสดงผลข้อความ แจ้งข้อผิดพลาดมาเขียนลงไฟล์ดังรูปที่ 18 (7-2) รูปที่ 18 (7-2) การใช้ Redirection กับ stdout และ stderr • บรรทัดแรกใช้คาสั่ง more x แต่ไม่มีไฟล์ดังกล่าวอยู่ในไดเรกทอรีที่ระบุ ดังนั้น ในบรรทัดที่สองระบบจึงแจ้งข้อผิดพลาด • ทาการเปลี่ยนวิธีการแสดงผลลัพธ์ให้เขียนลงในไฟล์ sample3 • เมื่อสั่ง cat sample3 พบว่าไม่มีข้อความใด ๆ ปรากฏ เนื่องจากในการ สั่ง more x ไม่ได้มีผลลัพธ์ใน stdout นั่นเอง • ทาการสั่ง more x > sample3 2>&1 • ซึ่งตัวเลข 1 และ 2 คือ File descriptor ของ stdout และ stderr ตามลาดับ • 2>&1 หมายความว่า ให้ระบบนาผลลัพธ์ของ stderr เก็บไว้ที่ เดียวกันกับ stdout • สั่ง cat sample3 อีกครั้งจะพบว่ามีข้อความแจ้งข้อผิดพลาดอยู่ภายใน ไฟล์
  • 86.
    84 grep grep เป็นคาสั่งที่ใช้ในการค้นหารูปแบบของข้อความในไฟล์หรือไดเรกทอรี โดย grepจะอ่านข้อมูลในไฟล์ทีละบรรทัดมาเปรียบเทียบกับรูปแบบที่ผู้ใช้กาหนด [7-4] ผู้ใช้สามารถใช้ grep โดยมีรูปแบบ grep [option] [PATTERN] [FILE] ได้ โดยมีรูปแบบดังนี้ ตารางที่ 8 (7-6) คาสั่ง grep คาสั่ง ความหมาย grep “root” /etc/passwd ค้นหาข้อความ “root” ในไฟล์ /etc/passwd หากพบจะแสดงข้อความของบรรทัดที่พบและ highlight ข้อความ ออกมาที่หน้าจอ grep -n “root” /etc/passwd ค้นหาข้อความ “root” ในไฟล์ /etc/passwd หากพบจะแสดงข้อความและหมายเลขของ บรรทัดที่พบและ highlight ข้อความ ออกมาที่ หน้าจอ grep -v “root” /etc/passwd highlight ข้อความที่ไม่ตรงกับ “root” grep -i “ROOT” /etc/passwd ค้นหารูปแบบข้อความโดยไม่สนใจว่าจะเป็น ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก (case insensitive) grep -A3 “root” /etc/passwd -A[number] เป็นการสั่งให้ grep แสดงข้อ ความหลังพบรูปแบบที่ตรงกับการค้นหา เช่น -A3 แสดง 3 บรรทัดหลังบรรทัดที่พบ “root” Regular Expression grep รองรับ Regular Expression 3 ประเภท คือ Basic (BRE), Extended (ERE), Perl (PRCE) [7-5] ทั้งสามประเภทมีวิธีใช้แตกต่างกัน โดยที่ grep จะใช้ BRE เป็นค่าตั้งต้น หากผู้ใช้ต้องการใช้ ERE หรือ PRCE สามารถใส่ option “-E” หรือ “-P” ตามลาดับ ผู้ใช้สามารถศึกษา Regular Expression ได้จากแหล่งข้อมูล ในส่วนอ้างอิง หรือจากแหล่งอื่นๆ เพิ่มเติมได้ในตารางต่อไปนี้ จะยกตัวอย่าง BRE ที่ใช้บ่อย พร้อมยกตัวอย่างวิธีใช้งานร่วมกับ grep โดยใช้ไฟล์ sample4 ซึ่งมี
  • 87.
    85 ข้อความ “abcdefghijklmnopqrstuvwxyz12345” อยู่ ตารางที่9 (7-7) ตัวอย่าง Regular Expression สัญลักษณ์ คาอธิบาย . จุด(.) หมายถึง อักขระใดก็ได้ 1 อักขระ ตัวอย่างการใช้งานร่วมกับ grep คาสั่ง: grep . sample4 ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345 [abc] เป็น การประกาศกลุ่มอักขระในตัวอย่าง grep จะนาอักขระที่ ประกาศออกไปค้นหาทีละตัวจนกว่าจะครบนอกจะประกาศทีละ ตัวอักษร แล้ว ยังสามารถประกาศเป็นช่วงอักขระได้ เช่น [a-c] จะ ประกอบเหมือนกับประกาศ [abc] ตัวอย่างการใช้งานร่วมกับ grep คาสั่ง: grep [abc] sample4 ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345 [^abc] จากตัวอย่างอักขระที่นอกเหนือจาก a,b,c จะถูก grep นาไปใช้ใน การค้นหา ตัวอย่างการใช้งานร่วมกับ grep คาสั่ง: grep [^abc] sample4 ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345 ^ เป็นสัญลักษณ์ บอกถึงอักขระแรกของบรรทัด เช่น หากต้องการ ค้นหาบรรทัดที่ขึ้นต้นด้วยตัวอักษร a จะใช้รูปแบบ ^a ตัวอย่างการใช้งานร่วมกับ grep คาสั่ง: grep ^a sample4 ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345 $ เป็นสัญลักษณ์ บอกถึงอักขระสุดท้ายของบรรทัด เช่น หากต้องการ ค้นหาบรรทัดที่จบด้วยตัวเลข5 จะใช้รูปแบบ 5$
  • 88.
    86 สัญลักษณ์ คาอธิบาย ตัวอย่างการใช้งานร่วมกับ grep คาสั่ง:grep 5$ sample4 ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345 * ใช้เมื่อต้องการกาหนดปริมาณ โดย * มีค่าปริมาณคือ มากกว่าหรือ เท่ากับ 0 ตัวอย่างการใช้งานร่วมกับ grep คาสั่ง: grep abc.*j sample4 ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345 [[:alpha:]] ใช้ประกาศรูปแบบกลุ่มตัวอักษรทั้งหมดไม่ว่าจะอักษรใหญ่หรืออักษร เล็ก เหมือนกับการประกาศรูปแบบกลุ่มอักษร [A-Za-z] ตัวอย่างการใช้งานร่วมกับ grep คาสั่ง: grep [[:alpha:]] sample4 ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345 [[:alnum:]] ใช้ประกาศรูปแบบกลุ่มตัวอักษรทั้งหมดไม่ว่าจะอักษรใหญ่หรืออักษร เล็กและตัวเลข เหมือนกับการประกาศรูปแบบกลุ่มอักษร [A-Za-z0- 9] ตัวอย่างการใช้งานร่วมกับ grep คาสั่ง: grep [[:alnum:]] sample4 ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345 [[:digit:]] ใช้ประกาศรูปแบบกลุ่มตัวเลข เหมือนกับการประกาศรูปแบบกลุ่ม อักษร [0-9] ตัวอย่างการใช้งานร่วมกับ grep คาสั่ง: grep [[:digit:]] sample4 ผลลัพธ์: abcdefghijklmnopqrstuvwxyz12345
  • 89.
    87 7.2 เอกสารอ้างอิง [7-1] http://www.thaicert.or.th/papers/normal/2011/ pp2011no0003.html [7-2]http://en.wikipedia.org/wiki/File:Stdstreams-notitle.svg [7-3] http://www.livefirelabs.com/unix_tip_trick_shell_script/ june_2003/06092003.htm [7-4] http://www.regular-expressions.info/grep.html [7-5] http://www.gnu.org/s/grep/manual/html_node/Regular- Expressions.html#Regular-Expressions
  • 90.
  • 91.
    89 8. เพิ่มความปลอดภัยให้ SSHServer ด้วย Key Authentication ผู้เรียบเรียง: เจษฎา ช้างสีสังข์ วันที่เผยแพร่: 21 พ.ย. 2554 ปรับปรุงล่าสุด: 21 พ.ย. 2554 Secure Shell (SSH) คือ โพรโทคอล (Protocol) ที่ใช้ในการติดต่อสื่อสารระหว่าง เครื่องคอมพิวเตอร์บนระบบเครือข่ายผ่านพอร์ท (Port) หมายเลข 22 ซึ่งโพรโท- คอล SSH มีวัตถุประสงค์หลัก เพื่อให้ผู้ใช้งานสามารถเข้าควบคุมหรือสั่งการเครื่อง คอมพิวเตอร์ที่ให้บริการ SSH ตามสิทธิของผู้ใช้งานซึ่งได้มาจากการพิสูจน์ตัวตน ด้วยการล็อกอิน (Login) ด้วยการใช้ชื่อผู้ใช้และรหัสผ่าน โดยผ่านช่องทางการ สื่อสารที่มีการรักษาความมั่นคงปลอดภัยด้วยการเข้ารหัสลับ ข้อมูล (Encryption) ซึ่งถูกออกแบบมาเพื่อใช้แทนที่การสื่อสารข้อมูลบนระบบเครือข่ายที่ส่งข้อมูลแบบ ไม่ได้เข้ารหัสลับ (Plaintext) เช่น Telnet, Rlogin หรือ FTP ปัจจุบันโพรโทคอล SSH มีสองเวอร์ชั่นคือ SSH-1 และ SSH-2 (ถูกพัฒนาจาก SSH-1 เพื่อแก้ไขช่อง โหว่หรือข้อผิดพลาดที่ทาให้ผู้โจมตีสามารถโจมตีเข้ามายังเครื่องคอมพิวเตอร์ที่ ให้บริการ SSH ได้ [8-1]) การทางานของโพรโทคอล SSH จะทางานในลักษณะไคลเอนต์และเซิร์ฟเวอร์ (Client-Server) โดยรูปแบบการใช้งานจะประกอบไปด้วยโปรแกรม 2 ส่วนคือ โปรแกรมส่วนที่ทาหน้าที่เป็นเครื่องที่ให้บริการ (Server) จะถูกติดตั้งลงที่เครื่อง คอมพิวเตอร์ที่ต้องการให้บริการ SSH เช่น โปรแกรม OpenSSH-Server บน ระบบปฏิบัติการ Linux โดยส่วนใหญ่แล้วเครื่องคอมพิวเตอร์ที่ติดตั้งโปรแกรมที่ ให้บริการ SSH จะติดตั้งเพื่ออานวยความสะดวกแก่ผู้ใช้งานร่วมกับบริการอื่นๆ ควบคู่ไป เช่น บริการเว็บเซิร์ฟเวอร์ หรือบริการอัพโหลดไฟล์ เป็นต้น และ โปรแกรมอีกส่วนจะทาหน้าที่เป็นผู้เชื่อมต่อ (Client) ไปยังเครื่องคอมพิวเตอร์ที่ ให้บริการ SSH เช่น โปรแกรม PuTTY [8-2] บนระบบปฏิบัติการ Windows หรือ
  • 92.
    90 โปรแกรม OpenSSH-Client บนระบบปฏิบัติการLinux ถึงแม้โพรโทคอล SSH จะมีข้อดีในเรื่องของการรักษาความมั่นคงปลอดภัยโดยมี การเข้ารหัสลับข้อมูล และมีการล็อกอินก่อนการเข้าใช้งาน แต่ก็ยังพบว่ามีโอกาสสูง ที่จะถูกโจมตีจากผู้ไม่หวังดี เนื่องจากผลลัพธ์และความสาเร็จในการเข้าโจมตีอาจ หมายถึงการได้รับสิทธิในการเข้าควบคุมและสั่งการเครื่องคอมพิวเตอร์ที่ให้บริการ นั้นทันที โดยลักษณะการโจมตีที่เกิดขึ้นมักจะมาจากการใช้เทคนิคในการเข้าโจมตีที่ เครื่องคอมพิวเตอร์ที่ให้บริการโดยตรง เช่น การโจมตีด้วยวิธีการสุ่มรหัสผ่าน (Brute-force) เพื่อพยายามเข้าสู่ระบบเครื่องคอมพิวเตอร์ที่ให้บริการ SSH ซึ่งหาก ผู้ใช้งานหรือผู้ดูแลระบบตั้งค่ารหัสผ่านในการล็อกอินง่ายเกินไปก็จะทาให้โอกาสใน การโจมตีสาเร็จง่ายมากขึ้น โดยแนวทางในการป้องกันที่ได้ผลลัพธ์ดีที่สุด คือ การ รู้ทันการโจมตีและรู้วิธีในการป้องกันการโจมตีดังกล่าว ซึ่งหนึ่งในวิธีการป้องกันที่ ผู้ดูแลระบบส่วนใหญ่นิยมใช้ และจะกล่าวถึงในบทความนี้ คือ การเปลี่ยนวิธีการ ล็อกอินจากวิธีการปกติที่ใช้รหัสผ่าน เป็นการใช้เทคนิคการใช้คู่กุญแจ (Key Authentication) [8-3] ซึ่งเป็นรูปแบบการเข้ารหัสแบบอสมมาตร (Asymmetric- key cryptography) โดยมีการสร้างคู่กุญแจ ซึ่งจะประกอบไปด้วยกุญแจ สาธารณะ (Public Key) และ กุญแจส่วนตัว (Private Key) มีหลักการทางานคือ ถ้าใช้กุญแจ A ในการเข้ารหัสลับ จะต้องใช้กุญแจ B ในการถอดรหัสลับ โดยการ เข้ารหัสและถอดรหัสดังกล่าวจะใช้ฟังก์ชันทางคณิตศาสตร์เข้ามาช่วย [8-4] ซึ่งการใช้หลักการดังกล่าวในการพิสูจน์ตัวตนของผู้ใช้งานกับเครื่อง คอมพิวเตอร์ที่ให้บริการ SSH จะช่วยป้องกันการโจมตีด้วยวิธีการ Brute-force จากผู้โจมตีได้ และยังสามารถเพิ่มความมั่นคงปลอดภัยจากการใช้งาน Key Authentication ได้โดยการเข้ารหัสลับ Private key ด้วยรหัสผ่านอีกขั้นตอนหนึ่ง เพื่อป้องกันบุคคลอื่นนากุญแจดังกล่าวไปใช้งาน ซึ่งวิธีการใช้งาน SSH ด้วยวิธีการ Key Authentication สามารถอธิบายได้ดังนี้
  • 93.
    91 8.1 วิธีการใช้งาน SecureShell (SSH) ด้วย Key Authentication สาหรับการเริ่มต้นใช้งาน Key Authentication บนโพรโทคอล SSH ผู้ใช้งาน จะต้องสร้าง Public Key และ Private Key โดย Public Key จะถูกเก็บไว้ที่ เครื่องคอมพิวเตอร์ที่ให้บริการ SSH ส่วน Private Key จะเก็บไว้ที่เครื่องผู้ใช้งาน ซึ่งจากข้อมูลดังกล่าวแสดงให้เห็นว่า Private Key ควรจะต้องได้รับการดูแลรักษา ที่ดีจากผู้ใช้งาน เนื่องจากเป็นส่วนสาคัญในการล๊อกอินเข้าไปยังระบบ หากผู้อื่นได้ Private Key ไปแล้วอาจทาให้ผู้อื่นสามารถเข้าถึงบริการ SSH ได้โดยง่าย ตัวอย่างการใช้งาน SSH Key Authentication จาลองระบบดังนี้ เครื่องผู้ใช้งานฝั่งไคลเอนต์ : • ใช้ระบบปฏิบัติการ Ubuntu 11.04 • โปรแกรมที่ใช้คือ OpenSSH-Client เครื่องคอมพิวเตอร์ที่ให้บริการ SSH : • ใช้ระบบปฏิบัติการ Ubuntu Server 11.04 • โปรแกรมที่ใช้คือ OpenSSH-Server • IP Address เป็น 10.10.10.10 • มี Account ของผู้ใช้เป็น user01 และมี Home directory เป็น /home/user01 ( สามารถเขียนแทนด้วยเครื่องหมาย “~” ) หมายเหตุ: คาสั่งการใช้งาน SSH อาจมีความแตกต่างกันตามโปรแกรมที่ใช้งาน ซึ่งในที่นี้จะใช้คาสั่งของโปรแกรม OpenSSH [8-5]
  • 94.
    92 1. สร้าง KeyPair ที่เครื่องของผู้ใช้งาน ทาการสร้าง Key Pair เพื่อจะได้ Public Key และ Private Key 1.1 ใช้คาสั่ง ssh-keygen ด้วยรูปแบบดังนี้ ssh-keygen [-b bits] -t type [-f output_keyfile] [-b bits] เป็นการระบุขนาดบิตของ Key ที่สร้าง หากไม่มีการกาหนด โปรแกรมจะใช้ค่าตั้งต้นคือ 2048 บิต -t เป็นการกาหนดรูปแบบของ Key โดยค่าที่เป็นไปได้คือ rsa1 เป็นการกาหนดโพรโทคอล RSA Version 1 rsa และ dsa เป็นการกาหนดโพรโทคอล RSA และ DSA Version 2 ตามลาดับ [-f output_keyfile] เป็นการกาหนดชื่อ ไฟล์ของ Key ที่สร้าง โดยผู้ใช้งาน สามารถระบุไดเรกทอรีที่ต้องการเก็บ Key ลงไปด้วยได้ หาก ไม่ได้กาหนด โปรแกรมจะสร้าง Key ไว้ที่ไดเรกทอรี ~/.ssh/ โดยจะสร้าง Private Key เป็นไฟล์ชื่อ id_rsa และสร้าง Public Key เป็นไฟล์ชื่อ id_rsa.pub พิมพ์คาสั่งดังนี้ ssh-keygen -t rsa -b 1024 -f ~/.ssh/user01-key จากคาสั่งข้างต้นจะเป็นการสร้าง Key Pair ชนิด RSA Version 2 มีขนาด 1024 บิต และถูกสร้างไว้ที่ไดเรกทอรี ~/.ssh/ ซึ่งจะปรากฏไฟล์ user01-key และ user01-key.pub 1.2 หลังจากพิมพ์คาสั่งแล้วกดปุ่ม Enter จากนั้นโปรแกรมจะให้ใส่ค่า Passphrase หรือรหัสผ่านที่ใช้ในการเข้ารหัสลับเพื่อป้องกันการใช้งาน Private Key จากผู้ไม่หวังดี ซึ่งทุกครั้งที่มีการใช้งาน Private Key จะต้องใส่ Passphrase
  • 95.
    93 นี้เพื่อปลดล็อคจึงจะใช้งานได้ โดยผลลัพธ์ที่ได้หลังจากการใช้คาสั่งจะพบว่ามีไฟล์ user01-key (PrivateKey) และ user01-key.pub (Public Key) อยู่ที่ /home/user01/ หรือ ~/ 1.3 เมื่อสร้าง Key เสร็จ ควรปรับปรุงสิทธิในการเข้าถึง Key เช่นกาหนดสิทธิให้ ผู้ใช้งานสามารถอ่านและเขียน Private Key ได้เท่านั้น และกาหนดสิทธิให้ผู้ใช้อื่น สามารถอ่าน Public Key ได้อย่างเดียว คาสั่งในการตั้งค่าสิทธิให้ผู้ใช้งานเท่านั้นที่สามารถอ่านและเขียน Private Key ได้มี ดังนี้ chmod 600 user01-key คาสั่งในการตั้งค่าสิทธิให้ผู้อื่นสามารถอ่าน Public Key ได้อย่างเดียวมีดังนี้ chmod 644 user01-key.pub ตัวอย่างคาสั่งการสร้าง Key user01@test:/home/user01$ ssh-keygen -t rsa -b 1024 -f ~/.ssh/user01-key Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user01/.ssh/user01-key. Your public key has been saved in /home/user01/.ssh/user01-key.pub. The key fingerprint is: 48:34:5a:68:a0:77:a1:3e:b8:55:20:25:51:8c:f5:fe user01@test หากต้องการเปลี่ยน Passphrase สามารถทาได้โดยใช้คาสั่ง ssh-keygen โดย กาหนดพารามิเตอร์ -p และระบุตาแหน่งของ Private Key ด้วยพารามิเตอร์ -f ตัวอย่างคาสั่งการเปลี่ยน Passphrase ที่ล็อกการใช้งาน Private Key
  • 96.
    94 user01@test:/home/user01$ ssh-keygen -p-f /home/user01/.ssh/user01-key Enter old passphrase: Key has comment '/home/user01/.ssh/user01-key' Enter new passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved with the new passphrase. 2. คัดลอก Public Key ไปยังเครื่องคอมพิวเตอร์ที่ให้บริการ SSH 2.1 คัดลอก Public Key ไปยังเครื่องคอมพิวเตอร์ที่ให้บริการ SSH ด้วยคาสั่ง scp ~/.ssh/user01-key.pub user01@10.10.10.10 หมายเหตุ: คาสั่ง scp (Secure copy) เป็นคาสั่งในการคัดลอกไฟล์ไปยังเครื่อง คอมพิวเตอร์ปลายทาง โดยข้อมูลที่ส่งจะผ่านช่องทางที่มีการเข้ารหัสลับ ซึ่ง ความหมายของคาสั่งข้างต้นคือการคัดลอกไฟล์ชื่อ user01-key.pub ที่อยู่ใน ~/.ssh/ ไปที่ /home/user01/ ของเครื่องคอมพิวเตอร์ปลายทางที่มี IP Address 10.10.10.10 2.2 ให้ผู้ใช้งานล็อกอินเข้าไปยังเซิร์ฟเวอร์ที่ให้บริการ SSH จากนั้นทาการย้าย Public Key ของตน ไปไว้ที่ไดเรกทอรี ~/.ssh/ แล้วเปลี่ยนชื่อจาก user01- key.pub เป็น authorized_keys ด้วยคาสั่งดังนี้ mv user01-key.pub ~/.ssh/authorized_keys หมายเหตุ: การเพิ่ม Public Key มากกว่า 1 key เข้าไปยังระบบของผู้ใช้งาน สามารถทาได้โดยการนา Public Key ใหม่มาต่อท้ายเนื้อหาในไฟล์ authorized_keys ด้วยคาสั่ง cat ~/user01-key2.pub >> ~/.ssh/authorized_keys
  • 97.
    95 2.3 กาหนดสิทธิในการเข้าถึง PublicKey ให้เหมาะสม เช่น กาหนดให้ผู้อื่น สามารถอ่านไฟล์ได้เท่านั้น ด้วยคาสั่ง chmod 644 authorized_keys 3. ตั้งค่าการเชื่อมต่อของโปรแกรม OpenSSH-Client การตั้งค่าการเชื่อมต่อของโปรแกรม OpenSSH-Client ที่เครื่องผู้ใช้งาน ทาให้เกิด ความสะดวกในการเรียกคาสั่งในการเชื่อมต่อไปยังเครื่องคอมพิวเตอร์ ทีให้บริการ SSH โดยผู้ใช้งานสามารถกาหนดค่าเบื้องต้นในการเชื่อมต่อ เช่น ตาแหน่งของ Private Key หรือ IP Address ของเครื่องคอมพิวเตอร์ที่ให้บริการ SSH ซึ่งทาได้ โดยการสร้างไฟล์ชื่อ config ไว้ที่ไดเรกทอรี ~/.ssh ของผู้ใช้ จากนั้นกาหนดค่าดัง ตัวอย่างลงในไฟล์ Host server Hostname 10.10.10.10 User user01 IdentitiesOnly yes IdentityFile ~/.ssh/user01-key จากการตั้งค่าข้างต้น เป็นการกาหนดชื่อที่ใช้แทนการตั้งค่าเพื่อใช้เข้าถึงเครื่อง ปลายทาง โดยที่: • Hostname คือการกาหนดชื่อหรือ IP Address ที่ระบุที่อยู่ของเครื่อง คอมพิวเตอร์ที่ให้บริการ SSH • User คือการกาหนดชื่อผู้ใช้งานที่จะใช้ ล็อกอินไปยังเครื่องคอมพิวเตอร์ที่ ให้บริการ SSH • IdentityFile เป็นการกาหนดที่อยู่ของ Private Key จากนั้นผู้ใช้งานสามารถทดสอบการเชื่อมต่อไปยังเครื่องคอมพิวเตอร์ที่ให้บริการ SSH ได้ด้วยคาสั่ง ssh server ตัวอย่างการใช้งานคาสั่ง ssh-server user01@test:/home/user01/.shh# ssh server
  • 98.
    96 Enter passphrase forkey 'user01-key': ซึ่งหลังจากการใช้คาสั่งแล้ว ระบบจะให้ใส่ Passphrase ของ Private Key ในกรณี ที่ไม่ได้ตั้งค่าการเชื่อมต่อในไฟล์ config ผู้ใช้งานสามารถกาหนดการเข้าถึงเครื่อง คอมพิวเตอร์ที่ให้บริการ SSH ได้โดยตรง ด้วยรูปแบบคาสั่งดังนี้ ssh [-i private_key_file] username@hostname Option -i หมายถึง การระบุที่อยู่ Private Key ของผู้ใช้งาน ตัวอย่างการใช้งาน ssh -i ~/.ssh/user01-key user01@10.10.10.10 จากคาสั่งข้างต้น เป็นการล็อกอินไปยังเครื่องคอมพิวเตอร์ที่ให้บริการ SSH โดยมี IP Address เป็น 10.10.10.10 ด้วย account ของผู้ใช้งานชื่อ user01 และใช้ Private Key ที่กาหนดไว้ที่ไฟล์ ~/.ssh/user01-key 4. ตั้งค่าการทางานของโปรแกรม OpenSSH-server โดยปกติแล้วโปรแกรม OpenSSH-Server จะมีการกาหนดค่าตั้งต้นของโปรแกรม ให้ใช้การล็อกอินด้วยรหัสผ่าน ซึ่งผู้ดูแลระบบสามารถปรับปรุงการตั้งค่าเพื่อให้ สอดคล้องกับการใช้งาน Key Authentication ด้วยการปรับแต่งค่าที่ไฟล์ /etc/ssh/sshd_config โดยมีรายละเอียดดังนี้ PasswordAuthentication no PubkeyAuthentication yes RSAAuthentication yes จากนั้น Restart โปรแกรม Openssh-server ด้วยคาสั่ง /etc/init.d/sshd restart
  • 99.
    97 8.2 เอกสารอ้างอิง [8-1] http://en.wikipedia.org/wiki/Secure_Shell [8-2]http://www.chiark.greenend.org.uk/~sgtatham/putty/ [8-3] http://en.wikipedia.org/wiki/Key_authentication [8-4] http://th.wikipedia.org/wiki/วิทยาการเข้ารหัสลับ [8-5] http://www.openssh.com/
  • 100.
  • 101.
    99 9. เชื่อมต่ออย่างปลอดภัยด้วย SSHTunnel ผู้เรียบเรียง: วิศัลย์ ประสงค์สุข วันที่เผยแพร่: 29 พ.ย. 2554 ปรับปรุงล่าสุด: 29 พ.ย. 2554 การใช้งานอินเทอร์เน็ตจากผู้ให้บริการเครือข่ายไร้สายสาธารณะ (Wi-Fi) หรือจาก ผู้ให้บริการร้านอินเทอร์เน็ตคาเฟ่ทั่วไป ล้วนแล้วแต่เป็นการเชื่อมต่อบนเครือข่ายที่ ไม่ปลอดภัยและมีความเสี่ยงต่อการถูกผู้ไม่หวังดี หรืออาจหมายถึงผู้ให้บริการเองใน การลักลอบขโมยข้อมูลการใช้งานของผู้ใช้บนเครือข่ายนั้นๆ เช่น การดักจับข้อมูล รหัสผ่านที่ผู้ใช้ส่งผ่านเครือข่ายไร้สายสาธารณะ เป็นต้น ซึ่งในเวลาต่อมาได้มีการ พัฒนารูปแบบการเชื่อมต่อที่มีความสามารถในการทาให้การเข้าใช้งานระบบบน เครือข่ายใดๆ มีการรักษาความปลอดภัยในการรับส่งข้อมูล โดยหนึ่งในวิธีที่ผู้ดูแล ระบบสามารถนามาประยุกต์และปรับใช้ในการทางาน เพื่อทาให้การรับส่งข้อมูลบน เครือข่ายมีความปลอดภัยคือ การสร้างช่องทางการรับส่งข้อมูลเฉพาะที่เรียกว่า Tunnel ผ่านโพรโทคอล SSH (Secure Shell) ที่มีรูปแบบการสื่อสารที่มีมาตรการ รักษาความปลอดภัยของข้อมูลด้วยการเข้ารหัสลับข้อมูล โดย SSH Tunnel มีชื่อ เรียกอีกชื่อหนึ่งว่า SSH Port Forward เนื่องจากมีการทางานลักษณะเดียวกับ Port Forward ซึ่งใช้กาหนดเส้นทางการรับส่งข้อมูลระหว่างเครือข่ายภายนอก (WAN) กับเครือข่ายภายใน (LAN) โดยปกติการใช้งาน Port Forward จะนิยมใช้ ในฟังก์ชันการทางานของอุปกรณ์ Router เพื่อให้เครื่องคอมพิวเตอร์จากเครือข่าย อินเทอร์เน็ตสามารถเชื่อมต่อมายังเครือข่ายภายใน Router ดังกล่าว โดยสามารถ ระบุช่องทางการเชื่อมต่อแยกแต่ละ Port ได้ดังรูปที่ 19 (9-1)
  • 102.
    100 รูปที่ 19 (9-1)แสดงให้เห็นถึงเส้นทางการรับส่งข้อมูลเมื่อมีการใช้ฟังก์ชัน Port Forward ในอุปกรณ์ Router รูปแบบการสร้างการเชื่อมต่อของ SSH Tunnel สามารถทาได้ 2 แบบคือ Local Port Forward และ Remote Port Forward [20-1] ซึ่งจะกล่าวถึงในหัวข้อถัดไป โดยการใช้งาน SSH Tunnel ผู้ใช้จะต้องติดตั้งโปรแกรม SSH Client ลงในเครื่อง คอมพิวเตอร์ ซึ่งในระบบปฏิบัติการลินุกซ์ส่วนใหญ่ จะมีการติดตั้งโปรแกรม OpenSSH-Client มาพร้อมกับระบบอยู่แล้ว ส่วนในระบบปฏิบัติการวินโดวส์ผู้ใช้ สามารถดาวน์โหลดและติดตั้งโปรแกรมชื่อ PuTTY [20-2] ซึ่งทางานในลักษณะ SSH Client เช่นกัน แต่ในบทความนี้จะขอแสดงวิธีการทา SSH Tunnel โดยใช้ โปรแกรม OpenSSH-Client 9.1 การทา Local Port Forward และ Remote Port Forward จาลองระบบดังนี้ เครือข่าย คอมพิวเตอร์ Web Server SSH Server SSH Client A Com1 / / Com2 / / / B Com3 / / Com4 / /
  • 103.
    101 หมายเหตุ 1. คอมพิวเตอร์ภายในเครือข่ายเดียวกันสามารถเชื่อมต่อกันได้ 2. Com2และ Com3 เชื่อมต่อกันได้ผ่านอินเทอร์เน็ต รูปที่ 20 (9-2) สภาพแวดล้อมของระบบ 1. Local Port Forward หรือเรียกอีกชื่อหนึ่งว่า Outgoing Tunnels เป็นการกาหนดช่องทางการเชื่อมต่อ จากเครือข่ายต้นทางไปยังเครือข่ายปลายทางผ่าน Port ที่กาหนด ใช้เมื่อต้องการ ให้เครื่องคอมพิวเตอร์ที่อยู่ในเครือข่ายต้นทางสามารถเชื่อมต่อผ่าน Tunnel ไปยัง เครื่องคอมพิวเตอร์ที่อยู่ในเครือข่ายปลายทาง โดยเครื่องคอมพิวเตอร์ที่ใช้สร้าง Tunnel หรือเครื่องคอมพิวเตอร์ต้นทางจะต้องเชื่อมต่อและยืนยันสิทธิผ่านเครื่อง SSH Server ที่เครือข่ายปลายทาง และกาหนดค่า Port ที่จะเชื่อมระหว่าง เครือข่ายทั้งสองผู้ใช้สามารถทา Local Port Forward ได้โดยใช้คาสั่งซึ่งมีรูปแบบ ดังนี้ ssh -L local_listen_port:destination_host:destination_port user@hostname โดยที่ สัญลักษณ์ ความหมาย -L กาหนดให้เครื่อง SSH Server ทา Local Port Forward local_listen_port กาหนดให้เครื่อง SSH Server ทราบว่าหากมีการเชื่อมต่อ
  • 104.
    102 สัญลักษณ์ ความหมาย เข้ามาที่ Portที่กาหนด ให้ส่งต่อไปยัง destination_port ของเครื่องเป้าหมาย destination_host กาหนดให้เครื่อง SSH Server ทราบว่าเครื่อง คอมพิวเตอร์เครื่องใดเป็นเครื่องเป้าหมายของผู้ใช้ destination_port กาหนดให้เครื่องให้บริการ SSH ทราบว่าผู้ใช้ต้องการส่ง ต่อการเชื่อมต่อเข้าสู่ Port ใดของเครื่องเป้าหมาย user@hostname ชื่อผู้ใช้และเครื่อง SSH Server ที่ใช้งาน ตัวอย่างการใช้งาน Local Port Forward ในกรณีผู้ใช้อยู่ที่ Com2 ต้องการเข้าถึง Web Server (Port 80) ของเครื่อง Com3 สามารถใช้คาสั่งได้ดังนี้ ssh -L 8080:164.115.4.3:80 user1@164.115.4.3 คาสั่งนี้หมายความว่าให้ใช้สิทธิของ user1 บน SSH Server (Com3) เพื่อส่งต่อ การเชื่อมต่อจาก Port 8080 ของเครื่อง Com2 ไปยัง Port 80 ของเครื่อง Com3 สามารถแสดงแบบจาลองการเชื่อมต่อได้ดังรูปที่ 21 (9-3) ผู้ใช้สามารถเข้าถึง เว็บไซต์ของ Com3 ได้โดยพิมพ์ URL: http://164.115.4.3:8080 ที่เว็บ เบราว์เซอร์ (web browser) รูปที่ 21 (9-3) แบบจาลองการเชื่อมต่อจากคาสั่ง ssh -L 8080:164.115.4.3:80 user1@164.115.4.3 ในกรณีผู้ใช้อยู่ที่ Com2 ต้องการเข้าถึง Web Server ของเครื่อง Com4 สามารถ
  • 105.
    103 ใช้คาสั่งได้ดังนี้ ssh -L 8080:172.24.1.5:80user1@164.115.4.3 คาสั่งนี้หมายความว่าให้ใช้สิทธิของ user1 บน SSH Server (Com3) เพื่อส่งต่อ การเชื่อมต่อจาก Port 8080 ของเครื่อง Com2 ไปยัง Port 80 ของเครื่อง Com4 สามารถแสดงแบบจาลองการเชื่อมต่อได้ดังรูปที่ 22 (9-4) ผู้ใช้สามารถเข้าถึง เว็บไซต์ของ Com4 ได้โดยพิมพ์ URL: http://164.115.4.3:8080 ที่เว็บ เบราว์เซอร์ (web browser) รูปที่ 22 (9-4) แบบจาลองการเชื่อมต่อจากคาสั่ง ssh -L 8080:172.25.1.5:80 user1@164.115.4.3 2. Remote Port Forward หรือเรียกอีกชื่อหนึ่งว่า Incoming Tunnels มีการทางานและวัตถุประสงค์ที่ตรง ข้ามกับ Local Port Forward กล่าวคือเป็นการกาหนดช่องทางการเชื่อมต่อจาก เครือข่ายปลายทางกลับมายังเครือข่ายต้นทางผ่าน Port ที่กาหนด ใช้เมื่อต้องการ ให้เครื่องคอมพิวเตอร์ที่อยู่ในเครือข่ายปลายทางสามารถเชื่อมต่อผ่าน Tunnel กลับมายังเครื่องคอมพิวเตอร์ที่อยู่ในเครือข่ายต้นทาง โดยเครื่องคอมพิวเตอร์ที่ใช้ สร้าง Tunnel หรือเครื่องคอมพิวเตอร์ต้นทางจะต้องเชื่อมต่อและยืนยันสิทธิผ่าน เครื่อง SSH Server ที่เครือข่ายปลายทาง และกาหนดค่า Port ที่จะเชื่อมระหว่าง เครือข่ายทั้งสอง ผู้ใช้สามารถทา Remote Port Forward ได้โดยใช้คาสั่งซึ่งมี รูปแบบดังนี้
  • 106.
    104 ssh -R remote_listen_port:destination_host:destination_port user@hostnameโดยที่ สัญลักษณ์ ความหมาย - R กาหนดให้เครื่อง SSH Server ทา Remote Port Forward remote_listen_port กาหนดให้เครื่อง SSH Server ทราบว่าหากมีการเชื่อมต่อ เข้ามาที่ Port ที่กาหนดให้ส่งต่อไปยัง destination_port ของเครื่องเป้าหมาย destination_host กาหนดให้เครื่อง SSH Server ทราบว่าเครื่องคอมพิวเตอร์ เครื่องใดเป็นเครื่องเป้าหมายของผู้ใช้ destination_port กาหนดให้เครื่อง SSH Server ทราบว่าหากมีการเชื่อมต่อ เข้ามาที่ Port นี้ ให้ส่งต่อการเชื่อมต่อไปยัง remote_listen_port user@hostname ชื่อผู้ใช้และเครื่อง SSH Server ที่ใช้งาน ตัวอย่างการใช้งาน Remote Port Forward ในกรณีผู้ใช้ต้องการแสดงหน้าเว็บไซต์ภายใน Web Server ของ Com2 ให้บุคคล ภายนอกเครือข่าย A เห็น ผู้ใช้สามารถใช้คาสั่งต่อไปนี้ที่ Com2 ได้ ssh -R 8080:122.248.233.17:80 user1@164.115.4.3 โดยคาสั่งนี้เป็นการบอกให้ SSH Server (Com3) ทราบว่าหากมีการติดต่อเข้ามาที่ Port 8080 ให้ทาการส่งต่อการเชื่อมต่อไปยัง Port 80 ของเครื่อง Com2 สามารถ แสดงแบบจาลองการเชื่อมต่อได้ดังรูปที่ 23 (9-5)
  • 107.
    105 รูปที่ 23 (9-5)แบบจาลองการเชื่อมต่อจากคาสั่ง ssh -R 8080:122.248.233.17:80 user1@164.115.4.3 ในกรณีผู้ใช้ต้องการแสดงหน้าเว็บไซต์ภายใน Web Server ของ Com1 ให้บุคคล ภายนอกเครือข่าย A เห็น ผู้ใช้สามารถใช้คาสั่งต่อไปนี้ที่ Com2 ได้ ssh -R 8080:192.168.1.5:80 user1@164.115.4.3 โดยคาสั่งนี้เป็นการบอกให้ SSH Server (Com3) ทราบว่าหากมีการติดต่อเข้ามาที่ Port 8080 ให้ทาการส่งต่อการเชื่อมต่อไปยัง Port 80 ของเครื่อง Com1 สามารถ แสดงแบบจาลองการเชื่อมต่อได้ดังรูปที่ 24 (9-6) รูปที่ 24 (9-6) แบบจาลองการเชื่อมต่อจากคาสั่ง ssh -R 8080:192.168.1.5:80 user1@164.115.4.3 จะเห็นได้ว่า การเชื่อมต่อผ่าน SSH Tunnel สามารถทาได้ง่ายและทาให้การรับส่ง ข้อมูลมีความมั่นคงปลอดภัย แต่อย่างไรก็ตามการใช้งาน SSH Tunnel ควรมีการ
  • 108.
    106 กาหนดการเข้าใช้อย่างระมัดระวัง เนื่องจากการเชื่อมต่อผ่าน SSHผู้เชื่อมต่อจะ ได้รับสิทธิของผู้ใช้ในระบบของเครื่องปลายทาง ซึ่งหากสิทธิการใช้งานดังกล่าวถูก กาหนดไว้แบบไม่ระมัดระวัง ก็อาจเกิดความเสียหายต่อระบบได้หากผู้ไม่หวังดี สามารถล่วงรู้ข้อมูลที่ใช้ใน การเชื่อมต่อเข้าสู่ SSH Server เช่น หมายเลข IP, Username หรือ Password 9.2 เอกสารอ้างอิง [9-1] http://www.debianadmin.com/howto-use-ssh-local-and- remote-port-forwarding.html [9-2] http://www.chiark.greenend.org.uk/~sgtatham/putty/ download.html
  • 109.
  • 110.
  • 111.
    109 10. ช่องโหว่ของ ApacheHTTPD 1.3/2.X Range Header (CVE-2011-3192) ผู้เรียบเรียง: สรณันท์ จิวะสุรัตน์ วันที่ประกาศ: 1 ก.ย. 2554 ปรับปรุงล่าสุด: 1 ก.ย. 2554 ประเภทภัยคุกคาม: DoS (Denial-of-Service) 10.1 ข้อมูลทั่วไป พบช่องโหว่ของซอฟต์แวร์เครื่องแม่ข่ายเว็บ Apache ในเวอร์ชั่น 1.3 และ 2.X ซึ่งช่องโหว่นี้สามารถถูกโจมตีจากผู้ใดก็ตามที่สามารถเรียกใช้บริการเว็บในลักษณะ HTTP-based Range [10-1] ซึ่งจะทาให้เครื่องแม่ข่ายเกิดการใช้งาน CPU และ Memory ที่สูงผิดปกติจนกระทั่งเครื่องแม่ข่ายเว็บไม่สามารถให้บริการต่อไปได้ และเกิดสภาวะหยุดการทางาน (Denial-of-Service) จากการวิเคราะห์ช่องโหว่ พบว่าสาเหตุของปัญหาน่าจะเกิด 2 สาเหตุ คือ ความบกพร่องในการบริหารจัดการ การใช้ทรัพยากรของเครื่องแม่ข่ายของซอฟต์แวร์ Apache เอง และความบกพร่อง ในส่วนของการออกแบบโปรโตคอล HTTP ที่ยอมรับการ Request ในลักษณะ Byte serving ได้พร้อมๆ กันหลายๆ ช่วงของข้อมูล [10-1] [10-2] โดยไม่ได้ กาหนดข้อห้ามในการเรียกใช้ช่วงข้อมูลที่มีลักษณะซ้อนทับ (Overlap) กัน ซึ่งเป็น ช่องทางให้ผู้ใช้เรียกใช้ซอฟต์แวร์ Apache เพื่ออ่านข้อมูลพร้อมๆ กันหลายครั้งๆ ได้โดยง่าย จนกระทั่งทรัพยากรในเครื่องแม่ข่ายถูก Process Apache ใช้งานจน หมด 10.2 ผลกระทบ ทาให้เครื่องแม่ข่ายเกิดการใช้งาน CPU และ Memory สูงจนกระทั่งเกิดสภาวะ หยุดการทางาน (Denial-of-Service)
  • 112.
    110 10.3 วิธีการแก้ไข ผู้ดูแลระบบเครื่องแม่ข่ายเว็บ Apacheที่ได้รับผลกระทบจากช่องโหว่นี้ สามารถ เลือกวิธีในการแก้ไข/บรรเทาปัญหาได้ตามข้อเสนอต่างๆ [10-1] [10-2] [10-3] ดังนี้ 1. ดาเนินการปรับปรุงซอฟต์แวร์ Apache ให้เป็นเวอร์ชั่น 2.2.20 หรือใหม่กว่า 2. หากไม่สามารถปรับปรุงซอฟต์แวร์ให้เป็นเวอร์ชั่นที่ปรับปรุงแก้ไขช่องโหว่นี้ได้ แล้ว ให้พิจารณาวิธีการดังต่อไปนี้ 2.1. สาหรับ Apache 2.0 และ 2.2 ให้จากัด Request Range Header ให้มีความ ยาวไม่เกิน 5 ช่วง โดยสามารถกาหนดค่า Configuration ของซอฟต์แวร์ Apache ดังต่อไปนี้ # Drop the Range header when more than 5 ranges. # CVE-2011-3192 SetEnvIf Range (,.*?){5,} bad-range=1 RequestHeader unset Range env=bad-range # optional logging. CustomLog logs/range-CVE-2011-3192.log common env=bad-range Configuration นี้ จะปฏิเสธ Request Range Header ที่มีจานวนมากกว่า 5 ช่วง ขึ้นไป โดยระบบจะดาเนินการบันทึก Log ของการ Request นี้ ลงใน [Apache Log Path]/logs/range-CVE-2011-3192.log เพื่อนาข้อมูลไปตรวจสอบดู ภายหลังได้ (สามารถแก้ไข path ได้ตามความเหมาะสม) 2.2 สาหรับ Apache 1.3 จาเป็นต้องอาศัยวิธีการจากัด Request Range Header ให้มีจานวนไม่เกิน 5 ช่วง ด้วย mod rewrite โดยใช้ configuration ดังต่อไปนี้ # Reject request when more than 5 ranges in the Range: header. # CVE-2011-3192
  • 113.
    111 # RewriteEngine on RewriteCond %{HTTP:range}!(^bytes=[^,]+(,[^,]+){0,4}$|^$) RewriteRule .* - [F] ซึ่งวิธีการทางานจะคล้ายกับ 2.1 แต่ระบบจะไม่สามารถบันทึก Log ของ Request Range ที่เกิน 5 ช่วงข้อมูลเอาไว้ได้ หมายเหตุ วิธีการจากัดจานวน Request Range ที่กาหนดไว้เป็น 5 ช่วง ใน configuration ข้างต้น อาจเปลี่ยนแปลงได้ตามความเหมาะสม เพราะ application บางชนิด เช่น e-book reader หรือ video streaming player อาจ มีการใช้งาน http range request ที่ซับซ้อน ซึ่งต้องการการกาหนดค่า range มากกว่า 5 ช่วง หากกาหนดค่า range ไว้ต่าเกินไป อาจทาให้ application ดังกล่าว มีปัญหาในการใช้งานได้ 3. สาหรับวิธีการทางเลือกอื่น นอกเหนือการจากัดจานวน Request Range คือ การจากัดความยาวของ HTTP Request Header ให้มีขนาดเหมาะสม เช่น LimitRequestFieldSize 200 เป็น การจากัดความยาวของ header ให้ไม่เกิน 200 bytes แต่อาจมีผลกระทบกับ Header อื่นๆ ที่มีขนาดใหญ่ เช่น cookie ได้ หรือยกเลิก Byte Range Request ด้วย mod headers โดยตั้ง configuration ดังนี้ RequestHeader unset Range 10.4 แหล่งข้อมูลอื่นๆ ที่เกี่ยวข้อง 1. http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2011- 3192 2. http://www.kb.cert.org/vuls/id/405811
  • 114.
    112 3. http://blog.spiderlabs.com/2011/08/mitigation-of-apache- range-header-dos-attack.html 4. http://www.apache.org/dist/httpd/CHANGES_2.2.20 10.5เอกสารอ้างอิง [10-1] http://en.wikipedia.org/wiki/Byte_serving [10-2] http://tools.ietf.org/html/rfc2616#section-14.35 [10-3] https://mail-archives.apache.org/mod_mbox/httpd- announce/201108.mbox/%3C20110824161640.122D387DD@m inotaur.apache.org%3E
  • 115.
    113 11. เซิร์ฟเวอร์ในโครงการ Kernel.orgถูกเจาะ ระบบ ผู้เรียบเรียง: เสฏฐวุฒิ แสนนาม วันที่ประกาศ: 6 ก.ย. 2554 ปรับปรุงล่าสุด: 6 ก.ย. 2554 ประเภทภัยคุกคาม: Intrusion 11.1 ข้อมูลทั่วไป ทีมงาน Kernel.org ซึ่งเป็นหน่วยงานที่ดูแล Linux Kernel ได้รายงานว่า เซิร์ฟเวอร์จานวนหลายเครื่องที่ใช้ในการดูแลและแจกจ่ายซอร์สโค้ดของระบบ ปฏิบัติการ Linux ถูกเจาะระบบและใช้สิทธิของ root เพื่อฝัง Malware [11-1] การโจมตีครั้งนี้ถูกตรวจพบ เมื่อวันที่ 28 สิงหาคม 2554 ทีมงานพบว่าระบบถูก โจมตีก่อนวันที่ 12 สิงหาคม 2554 ผู้บุกรุกเข้าสู่เครื่องเซิร์ฟเวอร์ที่ชื่อ Hera ด้วย บัญชีผู้ใช้ที่ขโมยมา และเปลี่ยนสิทธิของผู้ใช้ให้เป็นสิทธิของผู้ดูแลระบบ (root) ซึ่งวิธีการที่ใช้ในการเปลี่ยนสิทธินั้นยังอยู่ระหว่างการวิเคราะห์ หลังจากได้รับสิทธิ ของ root แล้วผู้บุกรุกก็ได้แก้ไขไฟล์ที่เกี่ยวข้องกับการกาหนดค่า ssh (เช่น openssh, openssh-server และ openssh-clients) ของเครื่องแม่ข่ายของ kernel.org แล้วทาการฝังโทรจันไว้เพื่อให้ทางานทุกครั้งที่เริ่มระบบ ในขณะนี้ ทาง ทีมงาน Kernel.org ได้ทาการปิดระบบลงทั้งหมด เพื่อทาการสารองข้อมูลและ ตรวจสอบข้อมูลการโจมตี หลังจากนั้น จะทาการติดตั้งระบบปฏิบัติการใหม่ทั้งหมด [11-2] [11-3]
  • 116.
    114 11.2 ผลกระทบ ผู้ใช้ที่ดาวน์โหลดซอร์สโค้ดของ Linuxจาก Kernel.org ตั้งแต่วันที่ 12 สิงหาคม 2554 อาจได้รับไฟล์ที่ถูกปลอมแปลงเพื่อสร้างความเสียหายได้ 11.3 ระบบที่มีผลกระทบ Linux Kernel เวอร์ชั่นที่พัฒนาหลังจาก วันที่ 12 สิงหาคม ถึง วันที่ 28 สิงหาคม 2554 (Kernel รุ่น 3.0.2 - 3.0.3) 11.4 วิธีการแก้ไข ตรวจสอบลายเซ็น GPG จากซอร์สโค้ดที่ดาวน์โหลดมาจาก Kernel.org เนื่องจาก ไฟล์อาจถูกปลอมแปลงได้ [4-4] 11.5 เอกสารอ้างอิง [11-1] http://www.kernel.org/ [11-2] http://www.theregister.co.uk/2011/08/31/linux_kernel_ security_breach/ [11-3] http://php.webtutor.pl/en/2011/09/01/kernel-org-has- been-hacked/ [11-4] http://kernel.org/signature.html
  • 117.
    115 12. ระวังภัย แฮกเกอร์ออกใบรับรองปลอมของ Google,Yahoo!, Mozilla และอื่นๆ ผู้เรียบเรียง: เสฏฐวุฒิ แสนนาม วันที่ประกาศ: 2 ก.ย. 2554 ปรับปรุงล่าสุด: 7 ก.ย. 2554 ประเภทภัยคุกคาม: Fraud 12.1 ข้อมูลทั่วไป ใบรับรอง SSL (SSL Certificate) ใช้ในการยืนยันเครื่องให้บริการเว็บ ทาให้ผู้ใช้ สามารถมั่นใจได้ว่าเครื่องให้บริการที่ติดต่อด้วยนั้นเป็น เครื่องที่อ้างถึงจริง การใช้ ใบรับรองเป็นการรับรองความมั่นคงปลอดภัยของข้อมูลที่รับ-ส่งระหว่าง เครื่อง ให้บริการและเครื่องใช้บริการด้วยการเข้ารหัสลับข้อมูล (Encryption) โดยปกติ เมื่อผู้ใช้เข้าสู่เว็บไซต์ที่มีการเชื่อมต่อแบบ SSL (Secure Socket Layer) ที่มี ใบรับรองอย่างถูกต้อง เบราว์เซอร์จะแสดงไอคอนรูปแม่กุญแจ และในส่วนของ Address Bar จะแสดงที่อยู่เว็บไซต์เป็น https:// ถ้าเว็บไซต์ที่ใช้ใบรับรองไม่ ถูกต้องเบราว์เซอร์จะแสดงหน้าจอ เพื่อแจ้งเตือนว่าการรับส่งข้อมูลนี้ไม่มั่นคง ปลอดภัย [12-1] [12-2] [12-3] ในช่วงปลายเดือนสิงหาคมที่ผ่านมา พบว่ามีใบรับรองปลอมของเว็บไซต์ในเครือ ของ Google เผยแพร่อยู่ในอินเทอร์เน็ต ซึ่งผู้ที่มีใบรับรองนี้สามารถสร้างเว็บไซต์ ปลอมเพื่อหลอกว่าเป็นเว็บไซต์ของ Google ได้โดยที่เบราว์เซอร์ไม่สามารถ ตรวจสอบได้ว่าใบรับรองของเว็บไซต์ Google นี้เป็นของปลอม ใบรับรองปลอมนี้พบว่าได้สร้างขึ้นเมื่อวันที่ 10 กรกฎาคม 2554 โดย DigiNotar
  • 118.
    116 ซึ่งเป็นผู้ให้บริการออกใบรับรองอิเล็กทรอนิกส์ในประเทศเนเธอร์แลนด์ ทาง DigiNotar แจ้งผ่านหน้าเว็บไซต์ว่าการออกใบรับรองปลอมนี้เกิดจากการถูกเจาะ ระบบที่ใช้ในการออกใบรับรอง นอกจากนี้ยังพบว่า ผู้ที่ปลอมใบรับรองนี้ ได้สร้าง ใบรับรองปลอมให้กับโดเมนต่างๆ นอกจาก *.google.com อีกด้วย เช่น โดเมนใน เครือของ Yahoo!, Mozilla, Wordpress และ Tor Project ปัจจุบันทาง DigiNotar ได้ออกใบประกาศเพิกถอน (Revoke Certificate) ใบรับรองปลอมแล้ว แต่ยังไม่สามารถยืนยันได้ว่าจะสามารถเพิกถอนใบรับรองปลอมได้ทั้งหมด [12-4] 12.2 ผลกระทบ ผู้ใช้งานที่เข้าสู่เว็บไซต์หลอกลวง จะเข้าใจว่าเว็บไซต์นั้นเป็นของ Google, Yahoo!, Mozilla หรือบริการอื่นๆ เนื่องจากเบราว์เซอร์ไม่มีการแจ้งเตือนว่าใบรับรองไม่ ถูกต้อง ทาให้อาจเปิดเผยข้อมูลส่วนบุคคลที่ใช้ในบริการดังกล่าว เช่น ชื่อผู้ใช้หรือ รหัสผ่าน นอกจากนี้ยังมีโอกาสที่จะเกิดความเสี่ยงด้านความมั่นคงปลอดภัยอื่นๆ จากเว็บไซต์หลอกลวงดังกล่าวได้ เช่น ผู้ใช้ที่ดาวน์โหลดโปรแกรมที่มีการรับรองว่ามาจาก Google จะไม่สามารถ ตรวจสอบได้ว่า โปรแกรมนี้ถูกรับรองโดย Google จริงๆ หรือถูกรับรองโดยการใช้ ใบรับรองปลอม 12.3 ระบบที่มีผลกระทบ ระบบปฏิบัติการและเบราว์เซอร์ต่างๆ ที่มีการใช้งานใบรับรองของ DigiNotar เช่น • Microsoft Windows และ Internet Explorer ทุกรุ่น • Mac OS X และ Safari ทุกรุ่น • Mozilla Firefox รุ่นต่ากว่า 6.0.1
  • 119.
    117 12.4 วิธีการแก้ไข • MicrosoftWindows และ Internet Explorer ปัจจุบันทาง Microsoft ได้ออกเครื่องมืออัพเดทเพื่อถอดถอนใบรับรองปลอมออกจากระบบแล้ว ผู้ใช้สามารถติดตั้งโปรแกรมอัพเดทอัตโนมัติได้ผ่านทาง Windows Update หรือติดตั้งด้วยตนเองที่ http://support.microsoft.com/kb/2328240 [12-6] • Google Chrome สามารถตรวจสอบใบรับรองปลอมได้ และได้ออก อัพเดทรุ่น 13.0.782.218 ที่เพิกถอนใบรับรองปลอมแล้ว [12-5] • Opera จะตรวจสอบข้อมูลกับเว็บไซต์ที่รายงานเรื่องใบรับรองปลอมอยู่ แล้ว ดังนั้นจึงไม่จาเป็นต้องอัพเดท [12-8] • Mozilla Firefox ออกอัพเดทรุ่น 6.0.1 ที่เพิกถอนใบรับรองปลอมแล้ว ใน กรณีที่ไม่สามารถติดตั้งอัพเดทรุ่นใหม่ได้ ผู้ใช้ Mozilla Firefox สามารถ ลบใบรับรองของ DigiNotar ได้ดังนี้ [12-3] 1. ที่ด้านบนของหน้าต่าง Firefox ให้คลิกที่ปุ่ม Firefox (เมนู Tools ใน Windows หรือเมนู Edit ใน Linux) จากนั้นคลิก Preferences 2. คลิกที่แท็บ Advance 3. เลือกแท็บ Encryption 4. คลิก View Certificates 5. ในหน้าต่าง Certificate Manages ให้คลิกที่แท็บ Authorities 6. เลื่อนลงไปจนถึงส่วนของ DigiNotar เลือก DigiNotar Root CA 7. คลิกที่ Delete or Distrust... 8. คลิก OK เพื่อยืนยันการลบใบรับรอง • Mac OS X และ Safari ไม่สามารถตรวจสอบใบรับรองปลอมได้ ผู้ใช้ จาเป็นต้องใช้โปรแกรม Keychain Access เพื่อลบใบรับรองดังกล่าวออก จากระบบด้วยตนเอง ซึ่งสามารถทาได้ดังนี้ [12-7] [12-9]
  • 120.
    118 1. เปิดโปรแกรม KeychainAccess 2. ในช่องค้นหา พิมพ์คาว่า DigiNotar 3. คลิกขวาที่ DigiNotar Root CA เลือก Delete 4. คลิกปุ่ม Delete เพื่อยืนยันการลบ ผู้ใช้สามารถตรวจสอบเบราว์เซอร์ที่ตนเองใช้อยู่ ว่าได้ถูกเพิกถอนใบรับรองของ DigiNotar แล้วหรือยัง ด้วยการเข้าไปตรวจสอบที่เว็บไซต์ https://diginotar.com/ 12.5 เอกสารอ้างอิง [12-1] http://www.theregister.co.uk/2011/08/29/fraudulent_ google_ssl_certificate/ [12-2] http://blog.mozilla.com/security/2011/08/29/fraudulent- google-com-certificate/ [12-3] http://support.mozilla.com/en-US/kb/deleting-diginotar-ca- cert [12-4] http://www.vasco.com/company/press_room/news_ archive/2011/news_diginotar_reports_security_incident.aspx [12-5] http://googlechromereleases.blogspot.com/2011/08/ stable-update.html [12-6] http://www.microsoft.com/technet/security/advisory/ 2607712.mspx [12-7] http://arstechnica.com/apple/news/2011/09/safari-users-still- susceptible-to-attacks-using-fake-diginotar-certs.ars [12-8] http://my.opera.com/rootstore/blog/2009/05/15/diginotar-ev- enabled-and-new-verisign-roots [12-9] http://www.tuaw.com/2011/09/01/how-to-get-rid-of-diginotar- digital-certificates-from-os-x/
  • 121.
  • 122.
  • 123.
    121 13. APT ภัยคุกคามใหม่หรือแค่ชื่อใหม่ของภัย เดิม ผู้เรียบเรียง:เสฏฐวุฒิ แสนนาม วันที่เผยแพร่: 9 ก.ย. 2554 ปรับปรุงล่าสุด: 9 ก.ย. 2554 APT หรือ Advanced Persistent Threat คือประเภทหนึ่งของอาชญากรรมทาง คอมพิวเตอร์ ที่มีเป้าหมายเพื่อโจมตีหน่วยงานที่มีข้อมูลสาคัญ เช่น หน่วยงานทาง ทหารหรือหน่วยงานทางด้านความมั่นคงปลอดภัยของประเทศ หน่วยงานทาง การเมือง หรือองค์กรธุรกิจขนาดใหญ่ รูปแบบการโจมตีแบบ APT ส่วนใหญ่ ผู้ดาเนินการมักจะเป็นกลุ่มบุคคลมากกว่าเป็นการดาเนินการของบุคคลใดบุคคล หนึ่ง ซึ่งอาจเป็นไปได้ว่ากลุ่มบุคคลนี้มักจะมีองค์กรหรือรัฐบาลของประเทศใด ประเทศหนึ่งคอยให้การสนับสนุนอยู่เบื้องหลังการโจมตีมีเป้าหมายที่แน่ชัด ผู้โจมตี มักพยายามแฝงตัวอยู่ในระบบของเป้าหมายให้ได้นานที่สุด และใช้ทุกวิถีทางเพื่อให้ การโจมตีสาเร็จผล คานิยามของ APT นั้นค่อนข้างหลากหลาย แต่สามารถสรุปคร่าวๆ ได้ดังนี้ [13-1] [13-2] Advanced - ผู้ที่โจมตี มีความสามารถและมีทรัพยากรที่พร้อมสาหรับการโจมตี วิธีการโจมตีจะใช้เครื่องมือและเทคนิคหลายอย่างด้วยกัน ซึ่งเป็นไปได้ตั้งแต่การใช้ ความรู้ทางคอมพิวเตอร์ขั้นสูงเพื่อเจาะระบบ ไปจนถึงการใช้เทคนิคพื้นฐาน เช่น Social Engineering ซึ่งเป็นการโจมตีโดยอาศัยหลักจิตวิทยาเพื่อหลอกลวงคนให้ เปิดเผยข้อมูลสาคัญ [13-3] Persistent - การโจมตีจะเป็นแบบค่อยเป็นค่อยไปและสม่าเสมอ เนื่องจากผู้โจมตี ต้องแฝงเข้าไปอยู่ในระบบโดยไม่ให้เป้าหมายรู้ตัว เพื่อสร้างความเสียหายหรือ
  • 124.
    122 รวบรวมข้อมูลที่ต้องการให้ได้มากที่สุด Threat – จัดเป็นภัยคุกคามที่เกิดขึ้นกับระบบเทคโนโลยีสารสนเทศและการ สื่อสาร 13.1ตัวอย่างการโจมตีแบบ APT Operation Aurora - Google ประกาศเมื่อวันที่ 12 มกราคม 2553 ว่าถูกโจมตี ด้วยวิธี APT ตั้งแต่ช่วงกลางปี 2552 ถึงเดือนธันวาคม 2552 โดยที่มาของการ โจมตีมาจากประเทศจีน [13-4] [13-5] สาเหตุการโจมตีคาดว่าเกิดจากกลุ่มผู้โจมตี ไม่พอใจที่ Google ไม่ยอมรับเงื่อนไขของรัฐบาลจีนว่าให้เซ็นเซอร์ผลการค้นหา ข้อมูลจากเว็บไซต์ Google ประเทศจีน จากการสืบสวนพบว่า ผู้โจมตีใช้ช่องโหว่ที่ ค้นพบแต่ยังไม่มีการแก้ไข (Zero-day) ของ Internet Explorer โดยมีเป้าหมาย คือข้อมูลใน Gmail ของนักสิทธิมนุษยชนในประเทศจีน ผลจากการโจมตีครั้งนี้ทา ให้ Google ตัดสินใจถอนตัวและย้ายสานักงานใหญ่ออกจากประเทศจีน 13.2 ภัยคุกคามใหม่หรือแค่ชื่อใหม่ของภัยเดิม ผู้เชี่ยวชาญด้านความมั่นคงปลอดภัยบางกลุ่มไม่เห็นด้วยกับการจัดให้ APT เป็นภัย คุกคามประเภทใหม่ เนื่องจากเห็นว่าเป็นการสร้างคาใหม่เพื่อหวังผลทางการตลาด ของหน่วยงานที่เกี่ยวข้องกับระบบความมั่นคงปลอดภัย [13-6] [13-7] ด็อกเตอร์ Anup Ghosh ผู้ก่อตั้งบริษัท Invincea ซึ่งเป็นบริษัทพัฒนาซอฟต์แวร์เพิ่มความ ปลอดภัยให้กับเบราว์เซอร์และไฟล์เอกสาร ได้ให้สัมภาษณ์กับเว็บไซต์ eWEEK.com ว่าการโจมตีแบบ APT นั้นไม่ใช่การโจมตีรูปแบบใหม่แต่อย่างใด เป็น แค่การอาศัยช่องโหว่ของระบบที่ไม่ได้รับการปรับปรุงเรื่องความมั่นคงปลอดภัย และจากความไม่ระมัดระวังของผู้ดูแลระบบที่ไม่ตรวจสอบว่ามีเหตุการณ์ผิดปกติ เกิดขึ้น [13-8]
  • 125.
    123 วิธีการโจมตีแบบ APT นั้นมีการปฏิบัติมานานแล้วตัวอย่างเช่น ในยุคสงครามเย็น สหภาพโซเวียตได้ทาการส่งสายลับ KGB เข้าไปแฝงตัวในเขตแดนของศัตรูเพื่อขโมย ข้อมูล [13-9] ซึ่งการโจมตีแบบ APT นั้นก็ใช้หลักการเดียวกัน เพียงแต่การนาวิธีนี้ มาใช้เพื่อโจมตีระบบคอมพิวเตอร์นั้นเพิ่งจะมีขึ้น ดังนั้น การโจมตีแบบ APT จึงเป็น ภัยคุกคามในรูปแบบเดิม แต่เป็นการโจมตีที่เพิ่งนามาใช้ในระบบคอมพิวเตอร์ 13.3 เอกสารอ้างอิง [13-1] http://en.wikipedia.org/wiki/Advanced_persistent_threat [13-2] http://searchsecurity.techtarget.com/definition/advanced- persistent-threat-APT [13-3] http://th.wikipedia.org/wiki/วิศวกรรมสังคม [13-4] http://en.wikipedia.org/wiki/Operation_Aurora [13-5] http://googleblog.blogspot.com/2010/01/new-approach-to- china.html [13-6] http://www.greebo.net/2010/02/03/advanced-persistent- threat-risk-management-by-a-new-name/ [13-7] http://kevinfielder.wordpress.com/2011/07/25/apt-new-threat- or-just-a-new-name-and-just-what-does-it-mean/ [13-8] http://www.eweek.com/c/a/Security/Advanced-CyberAttack- Claims-Are-Usually-False-Overhyped-520523/ [13-9] http://en.wikipedia.org/wiki/KGB
  • 126.
  • 127.
    125 14. การแก้ไขช่องโหว่เรื่องความมั่นคงปลอดภัย ใน AdobeReader และ Adobe Acrobat ผู้เรียบเรียง: ทีมไทยเซิร์ต วันที่ประกาศ: 15 ก.ย. 2554 ปรับปรุงล่าสุด: 15 ก.ย. 2554 หมายเลขช่องโหว่: APSB11-24 (รหัสอ้างอิงของ Adobe) ประเภทภัยคุกคาม: Intrusion 14.1 ข้อมูลทั่วไป เมื่อวันที่ 13 กันยายน 2554 Adobe ได้เผยแพร่ซอฟต์แวร์เพื่อแก้ไขช่องโหว่เรื่อง ความมั่นคงปลอดภัยสาหรับ โปรแกรม Adobe Reader และ Adobe Acrobat โดยมีการแก้ไขช่องโหว่ทั้งหมด 13 จุด ซึ่งมีหลายช่องโหว่ที่สามารถถูกผู้ไม่หวังดีใช้ เป็นช่องทางทาให้เกิดความเสียหายกับซอฟต์แวร์ Adobe Reader/Acrobat หรือ ใช้เป็นช่องทางในการควบคุมเครื่องคอมพิวเตอร์จากระยะไกลเพื่อสร้างความ เสียหายกับระบบปฏิบัติการหรือข้อมูลต่างๆบนเครื่องคอมพิวเตอร์ที่ถูกโจมตีได้ [14-1] 14.2 ผลกระทบ รายละเอียดของช่องโหว่ทั้ง 13 จุดมีดังนี้ • CVE-2011-1353 - เปลี่ยนสิทธิของผู้ใช้ให้เป็นสิทธิของผู้ดูแลระบบ (เฉพาะ Adobe Reader X (21.x) บน Windows เท่านั้น) • CVE-2011-2431 - หลบเลี่ยงการตรวจสอบความมั่นคงปลอดภัยเพื่อ ประมวลผลคาสั่งที่ไม่พึงประสงค์ได้
  • 128.
    126 • CVE-2011-2432 -ช่องโหว่ Buffer overflow ใน U3D TIFF Resource สามารถถูกใช้เพื่อประมวลผลคาสั่งที่ไม่พึงประสงค์ได้ • CVE-2011-2433 - ช่องโหว่ Heap overflow สามารถถูกใช้เพื่อ ประมวลผลคาสั่งที่ไม่พึงประสงค์ได้ • CVE-2011-2434 - ช่องโหว่ Heap overflow สามารถถูกใช้เพื่อ ประมวลผลคาสั่งที่ไม่พึงประสงค์ได้ • CVE-2011-2435 - ช่องโหว่ Buffer overflow สามารถถูกใช้เพื่อ ประมวลผลคาสั่งที่ไม่พึงประสงค์ได้ • CVE-2011-2436 - ช่องโหว่ Heap overflow ในไลบรารี Adobe image parsing สามารถถูกใช้เพื่อประมวลผลคาสั่งที่ไม่พึงประสงค์ได้ • CVE-2011-2437 - ช่องโหว่ Heap overflow สามารถถูกใช้เพื่อ ประมวลผลคาสั่งที่ไม่พึงประสงค์ได้ • CVE-2011-2438 - ช่องโหว่ Stack overflow ในไลบรารี Adobe image parsing library สามารถถูกใช้เพื่อประมวลผลคาสั่งที่ไม่พึงประสงค์ได้ • CVE-2011-2439 - ช่องโหว่ Memory leak (จองพื้นที่ของหน่วยความจา แล้วไม่คืน) สามารถถูกใช้เพื่อประมวลผลคาสั่งที่ไม่พึงประสงค์ได้ • CVE-2011-2440 - ช่องโหว่ use-after-free (เรียกใช้งานตัวแปรที่ถูกคืน ค่าไปแล้ว) สามารถถูกใช้เพื่อประมวลผลคาสั่งที่ไม่พึงประสงค์ได้ • CVE-2011-2441 - ช่องโหว่ Stack overflow ในไลบรารี CoolType.dll สามารถถูกใช้เพื่อประมวลผลคาสั่งที่ไม่พึงประสงค์ได้ • CVE-2011-2442 – ช่องโหว่จากการประมวลผลตรรกะที่ผิดพลาด สามารถถูกใช้เพื่อประมวลผลคาสั่งที่ไม่พึงประสงค์ได้ 14.3 ระบบที่มีผลกระทบ • Adobe Reader X (21.1) และเวอร์ชั่นต่ากว่า 10.x สาหรับ Windows
  • 129.
    127 และ Macintosh • AdobeReader 9.4.5 และเวอร์ชั่นต่ากว่า 9.x สาหรับ Windows, Macintosh และ UNIX • Adobe Reader 8.3 และเวอร์ชั่นต่ากว่า 8.x สาหรับ Windows และ Macintosh • Adobe Acrobat X (21.1) และเวอร์ชั่นต่ากว่า 10.x สาหรับ Windows และ Macintosh • Adobe Acrobat 9.4.5 และเวอร์ชั่นต่ากว่า 9.x สาหรับ Windows และ Macintosh • Adobe Acrobat 8.3 และเวอร์ชั่นต่ากว่า 8.x สาหรับ Windows และ Macintosh 14.4 วิธีการแก้ไข ผู้ใช้ซอฟต์แวร์ Adobe Reader และ Adobe Acrobat สามารถแก้ไขปัญหาได้ 2 วิธีคือ 1. ปรับปรุงซอฟต์แวร์ให้เป็นเวอร์ชั่นล่าสุดโดยการ 1.1 เปิดโปรแกรม Adobe Reader หรือ Adobe Acrobat 1.2 คลิกที่เมนู Help เลือกคาสั่ง Check for updates เพื่อให้โปรแกรม ตรวจสอบและปรับรุ่นโดยอัตโนมัติ 2. ติดตั้งซอฟต์แวร์ Adobe Reader/Acrobat เวอร์ชั่น 10.1.1 หรือใหม่กว่า ซึ่ง เป็นโปรแกรมที่ได้รับการแก้ไขช่องโหว่แล้ว สามารถดาวน์โหลดได้ตามลิงก์ด้านล่าง
  • 130.
    128 Adobe Reader ผู้ใช้ AdobeReader บน Windows ดาวน์โหลดโปรแกรมได้ที่ http://www.adobe.com/support/downloads/product.jsp?product=10& platform=Windows ผู้ใช้ Adobe Reader บน Macintosh ดาวน์โหลดโปรแกรมได้ที่ http://www.adobe.com/support/downloads/product.jsp?product=10& platform=Macintosh Adobe Acrobat ผู้ใช้ Acrobat Standard และ Pro บน Windows ดาวน์โหลดโปรแกรมได้ที่ http://www.adobe.com/support/downloads/product.jsp?product=1&p latform=Windows ผู้ใช้ Acrobat Pro Extended บน Windows ดาวน์โหลดโปรแกรมได้ที่ http://www.adobe.com/support/downloads/product.jsp?product=1&p latform=Windows ผู้ใช้ Acrobat 3D บน Windows ดาวน์โหลดโปรแกรมได้ที่ http://www.adobe.com/support/downloads/product.jsp?product=1&p latform=Windows ผู้ใช้ Acrobat Pro บน Macintosh ดาวน์โหลดโปรแกรมได้ที่ http://www.adobe.com/support/downloads/product.jsp?product=1&p latform=Macintosh สาหรับโปรแกรม Adobe Reader 9.4.6 บน UNIX ที่ได้รับการแก้ไขช่องโหว่แล้ว จะเผยแพร่ให้ดาวน์โหลดในวันที่ 7 พฤศจิกายน 2554
  • 131.
    129 หมายเหตุ: การสนับสนุนสาหรับซอฟต์แวร์ AdobeReader 8.x และ Adobe Acrobat 8.x บน Windows และ Macintosh จะสิ้นสุดลงในวันที่ 3 พฤศจิกายน 2554 ทาง Adobe แนะนาให้ผู้ใช้เปลี่ยนมาใช้ซอฟต์แวร์รุ่นล่าสุดเพื่อแก้ไขปัญหา [14-2] 14.5 เอกสารอ้างอิง [14-1] http://www.adobe.com/support/security/bulletins/apsb11- 24.html [14-2] http://blogs.adobe.com/adobereader/2011/09/adobe-reader- and-acrobat-version-8-end-of-support.html
  • 132.
  • 133.
    131 15. Man-in-the-Middle 101 ผู้เรียบเรียง:เสฏฐวุฒิ แสนนาม วันที่เผยแพร่: 16 ก.ย. 2554 ปรับปรุงล่าสุด: 30 ก.ย. 2554 การโจมตีแบบ Man-in-the-Middle (MitM) หมายถึง การที่มีผู้ไม่หวังดีเข้ามา แทรกกลางในการสนทนาระหว่างคน 2 คน แล้วทาหน้าที่เป็นตัวกลางในการรับส่ง ข้อมูลของคู่สนทนา โดยที่คู่สนทนาไม่สามารถทราบได้ว่ามีผู้อื่นเป็นผู้รับและส่งสาร ต่อกับคู่สนทนาของตนอยู่ ทาให้ผู้ไม่หวังดีสามารถใช้รูปแบบการโจมตีในลักษณะนี้ ในการดักรับหรือเปลี่ยนแปลงข้อมูลที่ทั้ง 2 ฝั่งสื่อสารกันอยู่ได้ ซึ่งการโจมตีใน รูปแบบนี้ถูกนามาประยุกต์ใช้กับการสื่อสารต่างๆ ในระบบคอมพิวเตอร์ ตัวอย่างเช่น การโจมตีแบบ MitM ในระบบเครือข่าย Wi-Fi ทาให้ผู้ไม่หวังดี สามารถแทรกแซงการเชื่อมต่อระหว่างเครื่องคอมพิวเตอร์และ อุปกรณ์ Wi-Fi Access Point เพื่ออ่าน ปลอมแปลง หรือแก้ไขข้อมูลที่รับส่งระหว่างคอมพิวเตอร์ ทั้ง 2 เครื่องนั้นได้ ซึ่งการเข้ารหัสลับข้อมูลในการสื่อสารเพียงอย่างเดียวไม่สามารถ ป้องกันการโจมตีในรูปแบบนี้ได้เสมอไป [15-1] ถ้าผู้รับและผู้ส่งสารไม่ได้มีกลไกใดๆ ในการยืนยันคู่สนทนาได้อย่างถูกต้องการโจมตี แบบ MitM สามารถใช้โจมตีการสื่อสารข้อมูลของระบบต่างๆ ในเครือข่าย อินเทอร์เน็ตได้โดยง่าย เนื่องจากรูปแบบและมาตรฐานของการสื่อสารข้อมูลต่างๆ ในระบบอินเทอร์เน็ตไม่ได้ถูกออกแบบมาให้มีการรักษาความมั่นคงปลอดภัยของ ข้อมูล เช่น การสื่อสารข้อมูลผ่านโพรโทคอล HTTP สาหรับเรียกดูข้อมูลเว็บไซต์ ต่างๆ ซึ่งส่วนใหญ่จะไม่มีการเข้ารหัสลับ ทาให้ผู้โจมตีสามารถใช้โปรแกรมสาหรับ ดักจับข้อมูลในระบบเครือข่าย เช่น โปรแกรม WireShark หรือ TCPDump ได้ ถึงแม้ว่าในปัจจุบัน การเรียกดูข้อมูลเว็บไซต์ที่สื่อสารผ่านโพรโทคอล HTTP จะถูก ออกแบบให้รองรับการเข้ารหัสลับข้อมูลด้วยการเชื่อมต่อผ่านโพรโทคอล HTTPS
  • 134.
    132 ซึ่งใช้การเข้ารหัสลับข้อมูลด้วยโพรโทคอล SSL [15-7]แต่ยังไม่สามารถป้องกันการ โจมตีแบบ MitM ได้ถ้าผู้ใช้งานไม่ได้ระมัดระวังในการตรวจสอบว่าเป็นเซิร์ฟเวอร์ที่ ให้บริการเว็บไซต์จริงหรือเป็นเครื่องที่เป็น MitM ด้วยวิธีการตรวจสอบใบรับรอง SSL (SSL Certificate) ในกรณีนี้ผู้ใช้งานอาจจะถูกหลอกลวงให้ติดต่อกับเครื่องที่ เป็น MitM ผ่านโพรโทคอล HTTPS และในขณะเดียวกันข้อมูลหรือบริการที่ผู้ใช้ เรียกใช้งานกับเครื่อง MitM นี้ จะถูกส่งต่อผ่านโพรโทคอล HTTPS ไปยังเซิร์ฟเวอร์ ที่ให้บริการเว็บไซต์จริงเพื่อเรียกข้อมูลหรือบริการและส่ง ต่อผ่านกลับไปให้ผู้ใช้งาน เพราะฉะนั้น ในการเรียกดูเว็บไซต์ผ่านเครื่อง MitM ด้วยโพรโทคอล HTTPS นี้ ผู้ใช้งานจะไม่สังเกตความผิดปกติกับข้อมูลหรือบริการที่เรียกใช้งานเมื่อ เทียบกับ การเรียกจากเว็บไซต์จริงแต่อย่างใด ในบางกรณีผู้โจมตีสามารถหลอกเบราว์เซอร์ ไม่ให้แจ้งเตือนว่าใบรับรองไม่ถูกต้องได้ โดยการใช้ใบรับรองปลอมที่ได้มาจากการ เจาะระบบของผู้ให้บริการออกใบรับรองอิเล็กทรอนิกส์ CA (Certificate Authorities) ที่ได้รับการยอมรับในระดับสากลได้ [15-2] นอกจากนี้ ยังมีการทา SSL Strip ซึ่งเป็นการดัก Request/Response ระหว่างเครื่องผู้ใช้งานกับเครื่อง เซิร์ฟเวอร์ ในกรณีที่ผู้ใช้เข้าเว็บไซต์ผ่านโพรโทคอล HTTP แต่เว็บไซต์นั้นต้องการ การเชื่อมต่อแบบ SSL จึงส่งคาร้องขอให้ผู้ใช้เรียก URL ที่เป็น HTTPS ซึ่งผู้โจมตีก็ จะเข้ามาเป็นตัวกลางในการเชื่อมต่อ โดยหลอกเครื่องผู้ใช้ว่าให้เรียก URL เป็น HTTP ตามเดิม และหลอกเซิร์ฟเวอร์ว่าผู้ใช้ได้เชื่อมต่อผ่าน HTTPS แล้ว ทาให้ผู้ โจมตีสามารถรู้ข้อมูลทุกอย่างที่รับส่งระหว่างผู้ใช้กับเครื่องเซิร์ฟเวอร์ [15-8] ปัจจุบันได้มีการใช้รูปแบบ Man-in-the-Middle ไปพัฒนาการโจมตีในรูปแบบใหม่ ได้แก่ Man-in-the-Browser และ Man-in-the-Mailbox ซึ่งแต่ละแบบก็ใช้วิธีการ และได้ผลลัพธ์ที่แตกต่างกันไป 15.1 Man-in-the-Browser การโจมตีแบบ Man-in-the-Browser (MitB) มีความแตกต่างจากการโจมตีแบบ MitM คือ การโจมตีแบบ MitB เกิดจากโทรจันที่ฝังตัวอยู่ในเบราว์เซอร์ คอยดักจับ และแก้ไขหน้าเว็บไซต์หรือข้อมูลที่มีการรับส่ง โดยที่ทางฝั่งผู้ใช้หรือฝั่งผู้ให้บริการไม่
  • 135.
    133 รู้ว่าข้อมูลถูกแก้ไข ซึ่งโดยส่วนมากแล้วการโจมตีด้วยวิธีนี้จะมุ่งเน้นไปที่เว็บไซต์ที่ เกี่ยวข้องกับสถาบันการเงิน เช่นเว็บไซต์ของธนาคาร [15-3] การโจมตีแบบ MitB สามารถดักจับข้อมูลได้ทุกอย่าง ไม่ว่าเว็บไซต์นั้นจะใช้วิธีเข้ารหัสลับด้วยโพรโทคอล SSL ก็ตาม เพราะโทรจันที่ฝังอยู่ในเบราว์เซอร์จะใช้วิธีดักจับข้อมูลการเข้าระบบ เช่น ชื่อผู้ใช้หรือรหัสผ่านก่อนที่เบราว์เซอร์จะเอาข้อมูลนั้นมาเข้ารหัสลับและ ส่งออกไป [15-4] ตัวอย่างโปรแกรมที่เป็นการโจมตีแบบ MitB เช่น Zeus, Zbot, URLZone, SpyEye [15-5] 15.2 Man-in-the-Mailbox การโจมตีแบบ Man-in-the-Mailbox (MitMb) เป็นการโจมตีด้วยวิธี MitM แบบ ล่าสุดที่เพิ่งค้นพบ โดยอาศัยความผิดพลาดที่เกิดจากการพิมพ์ที่อยู่อีเมลผิดพลาด เช่น การไม่ได้พิมพ์ . ในระหว่างชื่อโดเมนขององค์กรที่มีความน่าจะเป็นที่อาจจะ เกิดขึ้นได้ ซึ่งผู้โจมตีจะสร้างระบบเพื่อรับอีเมลที่เกิดความผิดเหล่านี้ไว้สาหรับใช้ใน การโจมตีในรูปแบบ MitMb การโจมตีแบบ MitMb นั้นจะเกิดขึ้นเมื่อมีผู้ส่งอีเมลจากหน่วยงานหนึ่งไปยังอีก หน่วยงานหนึ่ง โดยที่ผู้ส่งนั้นพิมพ์ที่อยู่อีเมลผิด เช่น ผู้ใช้จาก @th.biz.com ต้องการส่งอีเมลหาผู้ใช้ที่อยู่ใน @th.bank.com แต่พิมพ์ที่อยู่อีเมลผิดกลายเป็น @thbank.com อีเมลฉบับนั้นจะถูกส่งไปยังอีเมลของผู้โจมตี จากนั้นผู้โจมตีจะ ปรับแต่งเนื้อหาของอีเมล รวมถึงแก้ไขส่วนหัวของอีเมล (E-mail header) ว่าถูกส่ง มาจาก @thbiz.com แล้วส่งต่ออีเมลฉบับนั้นไปยัง @th.bank.com ซึ่งเป็นผู้รับที่ แท้จริง เมื่อทาง @th.bank.com ตอบอีเมลกลับมา อีเมลฉบับนั้นก็จะถูกส่งมาที่ที่ อยู่อีเมลของผู้โจมตี จากนั้นผู้โจมตีก็จะแก้ไขเนื้อหาและส่วนหัวของอีเมลแล้ว ส่งกลับไปให้ผู้ส่งตัวจริงอีกครั้งหนึ่ง
  • 136.
    134 รูปที่ 25 (15-1)ภาพประกอบอ้างอิงจาก nakedsecurity นักวิจัยพบว่า จากการทดลองจดชื่อโดเมนจานวน 30 โดเมน แล้วรอรับอีเมลที่ส่ง ผิด ปรากฏว่าภายในเวลา 6 เดือน มีอีเมลที่พิมพ์ที่อยู่อีเมลผิดแล้วถูกส่งออกมา มากกว่า 120,000 ฉบับ ซึ่งเนื้อหาบางส่วนในอีเมลเหล่านั้นเป็นความลับทางการค้า ข้อมูลพนักงาน หรือแม้กระทั่งรหัสผ่าน [15-6] 15.3 ควรรับมืออย่างไร? การโจมตีด้วยวิธี Man-in-the-X นั้นประสบความสาเร็จง่ายและตรวจจับได้ยาก เนื่องจากผู้ถูกโจมตีส่วนใหญ่มักจะไม่รู้ตัวและค่อนข้างละเลยในเรื่องของความ ปลอดภัย ดังนั้น วิธีการป้องกันที่ดีที่สุดคือสร้างความตระหนักในเรื่องของความ ปลอดภัยให้กับผู้ใช้ เช่น ตรวจสอบความถูกต้องของใบรับรองของเว็บไซต์ทุกครั้งที่ ต้องทาธุรกรรมทางอิเล็กทรอนิกส์ หมั่นปรับปรุงโปรแกรมตรวจจับไวรัสและไม่ ติดตั้งโปรแกรมที่น่าสงสัย หรือในกรณีที่ต้องการส่งข้อมูลที่เป็นความลับผ่านทาง อีเมลควรทาการเข้ารหัสลับข้อมูลก่อนที่จะส่งออกไป
  • 137.
    135 15.4 เอกสารอ้างอิง [15-1] http://en.wikipedia.org/wiki/Man-in-the-middle_attack [15-2]https://www.owasp.org/index.php/Man-in-the-middle_attack [15-3] http://en.wikipedia.org/wiki/Man_in_the_Browser [15-4] https://www.owasp.org/index.php/Man-in-the-browser_attack [15-5] http://www.entrust.com/mitb [15-6] http://nakedsecurity.sophos.com/2011/09/12/missing-dots- from-email-addresses-opens-20gb-data-leak/ [15-7] http://en.wikipedia.org/wiki/Https [15-8] http://thaicomsec.citec.us/?p=739
  • 138.
  • 139.
    137 16. Zeus Trojan(Zbot) ม้าโทรจันปล้น ธนาคารทั่วโลก ผู้เรียบเรียง: ศุภกรณ์ ฤกษ์ดิถีพร วันที่เผยแพร่: 5 พ.ย. 2554 ปรับปรุงล่าสุด: 5 พ.ย. 2554 Zeus (ซุส) หรือที่รู้จักในอีกชื่อหนึ่งคือ Zbot เป็นมัลแวร์ที่โด่งดังในปี 2006 มีแหล่งกาเนิดจากยุโรปตะวันออก ถูกสร้างขึ้นเพื่อเป็นใช้เป็นเครื่องมือสาหรับ อาชญากรในการขโมยข้อมูลสาคัญของผู้ใช้งานบริการสถาบันการเงินออนไลน์ ดังแสดงในรูปที่ 26 (16-1) และ รูปที่ 27 (16-2) ซุสสามารถแพร่กระจายได้หลาย วิธี เช่น แนบไฟล์หรือลิงก์มากับอีเมล ฝังตัวอยู่ในช่องโหว่ของเอกสารประเภท PDF แฝงมากับอุปกรณ์บันทึกข้อมูลภายนอก (External drive) ติดมากับซอฟต์แวร์ ละเมิดลิขสิทธิ หรือส่งต่อลิงก์ผ่านเครือข่ายสังคมออนไลน์ (Social network) เป็น ต้น เมื่อซุสได้ติดตั้งตัวเองลงบนเครื่องคอมพิวเตอร์ของเหยื่อ เครื่องนั้นก็จะ กลายเป็น Botnet ของซุสในทันที [16-1] ทาให้ผู้โจมตีสามารถเข้ามาโจรกรรม ข้อมูลสาคัญภายในเครื่องคอมพิวเตอร์ของเหยื่อได้ ไม่ว่าจะหมายเลขบัญชีธนาคาร รหัสผ่าน หรือข้อมูลอื่นๆ [16-2] นอกจากนี้ ซุสยังพยายามรวบรวมข้อมูลของ ผู้ใช้งานที่ขโมยมาได้แล้วส่งมาเก็บไว้ที่เซิร์ฟเวอร์ของผู้โจมตี ซุสถูกขายเป็น เครื่องมือในตลาดมืดโดยมีราคาประมาณ 3,000-4,000 ดอลลาร์สหรัฐ [16-3] ซุสมีกระบวนการในการสั่งการและควบคุมระบบ คือ 1. รอเวลาที่เหยื่อเข้ามาทารายการธุรกรรมออนไลน์ตามช่องทางของธนาคาร 2. รายงานการดาเนินการต่างๆ ของเหยื่อไปยังหน่วยสั่งการและควบคุม เซิร์ฟเวอร์ในระบบธนาคาร 3. หน่วยสั่งการและควบคุมระบบสั่งการให้ซุสเปลี่ยนแปลงการโอนเงินจาก ธนาคารของเหยื่อ
  • 140.
    138 4. ดาเนินการเปลี่ยนแปลงการโอนเงินจากธนาคารของเหยื่อโดยตรวจสอบ ยอดเงินในบัญชี กาหนดวงเงินใหม่ให้มากที่สุดที่จะขโมยได้โดยไม่เกิน วงเงินที่ธนาคารกาหนดจากนั้นจึงโอนเงินไปยังบัญชีเป้าหมายแล้วส่ง ต่อไปยังบัญชีต่างประเทศของผู้ขโมย 5. รายงานผลการดาเนินการให้หน่วยสั่งการและควบคุมระบบธนาคาร เพื่อให้ทราบว่าสาเร็จหรือล้มเหลว ตัวอย่างการโจมตี เช่น ผู้ใช้งานต้องการชาระเงิน 100,000 บาทให้กับคนขายบ้าน เมื่อผู้ใช้เข้าสู่ระบบออนไลน์ของธนาคาร ซุสจะเปลี่ยนจานวนเงินให้เป็นวงเงินสูงสุด เช่น 1,000,000 บาท และเปลี่ยนให้โอนเงินไปที่บัญชีของอาชญากร จากนั้น ธนาคารจะแจ้งว่ามีการชาระเงินมาที่เครื่องของเหยื่อ แต่ซุสจะเปลี่ยนแปลง ข้อความเหล่านั้นให้กลายเป็นว่าโอนเงิน 100,000 บาทได้สาเร็จ ดังนั้น เหยื่อจะไม่ มีทางรู้ตัวเลยว่าเงินนั้นถูกโจรกรรมไปแล้วจนกว่าปลายทาง คือ คนขายบ้านจะแจ้ง ว่าไม่ได้รับเงิน รูปที่ 26 (16-1) เว็บไซต์ปลอมที่สร้างขึ้นเพื่อหลอกลวงเหยื่อ [16-4]
  • 141.
    139 รูปที่ 27 (16-2)โดเมน .com ที่ตกเป็นเป้าหมายของซุส [16-5] จากรายงานการรับแจ้งเหตุภัยคุกคามของศูนย์ประสานงานการรักษาความมั่นคง ระบบคอมพิวเตอร์ประเทศไทย (ThaiCERT) ยังคงพบการแพร่กระจายของซุสที่ใช้ ในการโจมตีผู้ใช้งานบริการออนไลน์ของสถาบันการเงิน ทั้งสถาบันการเงินใน ประเทศและต่างประเทศอยู่อย่างต่อเนื่อง ผู้ใช้งานสามารถปฏิบัติตามแนวปฏิบัติ ของการใช้งานเครื่องคอมพิวเตอร์อย่างมั่นคงปลอดภัย เพื่อป้องกันตนเองจากภัย คุกคามของซุสได้ดังนี้ • ติดตั้งซอฟต์แวร์ป้องกันไวรัสและอัพเดทฐานข้อมูลอย่างสม่าเสมอ เพื่อลด ความเสี่ยงของการถูกโจมตีจากโปรแกรมไม่พึงประสงค์ต่างๆ • อัพเดทซอฟต์แวร์ระบบปฏิบัติการ (OS) อย่างสม่าเสมอ เพื่อป้องกันช่อง โหว่ที่สาเหตุให้สิ่งที่ไม่พึงประสงค์ใช้เป็นช่องทางเข้ามาแพร่กระจายใน เครื่องคอมพิวเตอร์ • ไม่ควรติดตั้งหรือดาวน์โหลดโปรแกรมจากเว็บไซต์ที่ไม่น่าเชื่อถือหรือ แม้แต่การเปิดไฟล์แนบจากอีเมลที่มีลักษณะผิดปกติ เช่น เป็นอีเมลที่มี ข้อความเชิญชวนหรือโฆษณาชวนเชื่อว่าเราเป็นผู้ถูกคัดเลือกให้ ได้รับ รางวัลหรือผลประโยชน์ต่างๆ หรือเป็นอีเมลของถูกส่งบุคคลที่เรารู้จักแต่
  • 142.
    140 ใช้ภาษาหรือสานวนที่ต่างจากรูปแบบที่เคยใช้ในอดีต เป็นต้น เนื่องจาก อีเมลเหล่านี้มักเป็นรูปแบบของอีเมลที่ใช้ในเผยแพร่โปรแกรมไม่พึง ประสงค์ •ควรตรวจหาโปรแกรมไม่พึงประสงค์ด้วยซอฟต์แวร์ป้องกันไวรัสทุกครั้ง ก่อนการใช้งานอุปกรณ์บันทึกข้อมูลแบบพกพา เนื่องจากอุปกรณ์เหล่านี้ มักถูกใช้เป็นช่องทางในการแพร่กระจายโปรแกรมไม่พึงประสงค์ต่างๆ • ในกรณีที่ท่านต้องสงสัยว่าเครื่องคอมพิวเตอร์ของท่านถูกโจมตีจากซุส ท่านสามารถขอรับความคาแนะนาในการแก้ไขได้จากศูนย์ประสานงาน การรักษาความมั่นคงระบบคอมพิวเตอร์ประเทศไทย (ThaiCERT) 16.1 เอกสารอ้างอิง [16-1] http://searchsecurity.techtarget.com/definition/Zeus-Trojan- Zbot [16-2] http://www.pcmag.com/article2/0,2817,2370013,00.asp [16-3] http://malwaresurvival.net/2011/01/19/the-zeus-trojan-and- popular-domains/ [16-4] http://news.cnet.com/8301-27080_3-20013246-245.html [16-5] http://www.securelist.com/en/analysis/204792107/ZeuS_ on_the_Hunt&usg=ALkJrhiqPrhLMgBX2duUrz84p-JLWjj76Q
  • 143.
    141 17. รู้จักและป้องกันภัยจาก Website Defacement ผู้เรียบเรียง:พรพรหม ประภากิตติกุล วันที่เผยแพร่: 5 พ.ย. 2554 ปรับปรุงล่าสุด: 5 พ.ย. 2554 เว็บไซต์ถูกใช้เป็นเครื่องมือที่สาคัญของหน่วยงานต่างๆ ในการสื่อสาร ประชา- สัมพันธ์ หรือให้บริการออนไลน์ต่างๆ กับผู้ใช้งานผ่านเครือข่ายอินเทอร์เน็ต สาธารณะ ด้วยลักษณะของบริการเว็บไซต์ที่เปิดให้ผู้ใช้งานสามารถเข้าถึงได้อยู่ ตลอดเวลา ทาให้บริการเว็บไซต์ที่ไม่มีการรักษาความมั่นคงปลอดภัยที่ดีมีความ เสี่ยงจากการถูกโจมตีจากผู้ไม่ประสงค์ดีได้อยู่ตลอดเวลาเช่นกัน โดยภัยคุกคาม รูปแบบหนึ่งที่มักจะเกิดขึ้นกับบริการเว็บไซต์ คือ การโจมตีเว็บไซต์ เพื่อเปลี่ยนแปลงข้อมูลเผยแพร่หน้าเว็บ (Website Defacement) ซึ่งผู้โจมตีมี วัตถุประสงค์เพื่อปรับเปลี่ยนหน้าเว็บไซต์แรกของเว็บไซต์เป้าหมาย หรือทั้งเว็บไซต์ จากเดิมไปเป็นหน้าเว็บไซต์ใหม่ การกระทาเช่นนี้อาจไม่ได้ก่อความเสียหายที่ รุนแรงอะไรมากนัก เพียงแต่มีความต้องการเพื่อทาลายความน่าเชื่อถือของ หน่วยงานเจ้าของเว็บไซต์ ซึ่งในเว็บไซต์ที่ถูกโจมตีส่วนใหญ่จะปรากฏรูปภาพหรือ ข้อความที่บ่งบอกถึงว่าเว็บไซต์ได้ถูกโจมตีได้สาเร็จ โดยรูปแบบของการโจมตีในลักษณะ Website Defacement เป็นการโจมตีที่นิยม มากที่สุดในหมู่ผู้โจมตีหรือแฮกเกอร์ เนื่องจากสามารถเข้าโจมตีได้ง่ายและการ โจมตีมักได้ผลทางด้านการสูญเสียความน่าเชื่อถืออย่างรวดเร็ว รวมถึงสามารถต่อ ยอดในการโจมตีส่วนประกอบหรือบริการอื่นๆ บนเครื่องแม่ข่ายนั้นๆ ด้วย ยิ่งหาก ผู้พัฒนาหรือผู้ดูแลระบบไม่มีการปิดช่องโหว่ดังกล่าวแล้ว อาจทาให้ผู้โจมตีสามารถ ทาความเสียหายซ้าแล้วซ้าเล่าจากรูปแบบเดิมๆ จนสุดท้ายอาจทาให้ถูกแจ้งเตือน บนหน้าเว็บไซต์ของผู้ให้บริการ Search engine ต่างๆเช่น Google, Yahoo เป็น ต้น
  • 144.
    142 รูปที่ 28 (17-1)แสดงให้เห็นถึงการแจ้งเตือนถึงเว็บไซต์ที่ถูกโจมตีจากเว็บไซต์ Search engine ของ Google รูปที่ 29 (17-2) แสดงให้เห็นถึงหน้าเว็บไซต์หลักแห่งหนึ่งที่ถูก Defacement
  • 145.
    143 วิธีการหรือเทคนิคที่ผู้โจมตีใช้ในการเข้าปรับเปลี่ยนข้อมูลเผยแพร่ต่างๆ บนหน้า เว็บไซต์ได้มีอยู่หลายวิธี เช่นการโจมตีต่อเว็บไซต์โดยตรง หรือการโจมตีต่อ ระบบปฏิบัติการของเครื่องที่ให้บริการเว็บไซต์จนสามารถเข้าควบคุมการทางาน ของเครื่องบริการเว็บไซต์ (Web Server) นั้นๆ ได้ส่งผลให้ผู้โจมตีสามารถเข้า ปรับเปลี่ยนข้อมูลในเว็บไซต์เป้าหมายได้ตามต้องการ ซึ่งในที่นี้ขอยกตัวอย่างช่อง โหว่และเทคนิคที่ผู้โจมตีใช้ เพื่อเข้าปรับเปลี่ยนหน้าเว็บไซต์เป้าหมายที่พบอยู่เสมอ ดังนี้ 1. ช่องโหว่ที่เกิดจากการเรียกใช้ฟังก์ชั่น Include File พบในการพัฒนาโปรแกรม ด้วยภาษา PHP ที่มีความซับซ้อนและเป็นระบบที่มีองค์ประกอบหลายส่วน จึงทา ให้ต้องมีการแยกพัฒนาแต่ละโมดูลของระบบ และสุดท้ายนากลับมารวบรวมที่หน้า หลักด้วยการเรียกใช้ฟังก์ชั่น include ซึ่งในที่นี้ขอยกตัวอย่างการใช้งานดังนี้ //ไฟล์ index.php <?php // รับค่าจากโพรโตคอล HTTP ใน method GET ผ่านพารามิเตอร์ชื่อ page แล้วเก็บลง ตัวแปรชื่อ page $page = $_GET['page']; // ฟังก์ชั่น include ไฟล์ซึ่งในที่นี้ให้เรียกตามชื่อไฟล์ตรงๆคือ config.php include (“config.php”); // ฟังก์ชั่น include ไฟล์ซึ่งในที่นี้ให้เป็นลักษณะ dynamic include จากตัวแปรชื่อ page include ($page); ?> // ซึ่งจากตัวอย่างข้างต้น ผู้โจมตีจะอาศัยช่องโหว่จากการใช้งานฟังก์ชั่น include นี้ เพื่อลักลอบแทรกส่วนประกอบของซอร์สโค้ดที่เป็นอันตรายลงไปผ่านโพรโทคอล HTTP ใน method GET โดยวิธีการแทรกซอร์สโค้ดอันตราย ผู้โจมตีสามารถทาได้ โดยการเรียก URL ผ่านเว็บเบราว์เซอร์ (web browser) ได้ทันที ยกตัวอย่าง
  • 146.
    144 ลักษณะการโจมตี เช่น 1.1 ผู้โจมตีจะเปิดเว็บเบราว์เซอร์(web browser) และเรียกไป URL => http://donothackme/index.php?page=http://iamhacker/shell.php ซึ่งสามารถอธิบายความหมายแต่ละส่วนดังนี้ http://donothackme => เป็นโดเมนที่ผู้โจมตีมีจุดประสงค์จะเข้าเปลี่ยนหน้า เว็บไซต์ index.php?page.... => เป็นการเรียกใช้งานไฟล์สคริปต์ชื่อ index.php ซึ่งในที่นี้มีการส่งค่าผ่านไปยัง method GET ของระบบ โดยการ ส่งค่าผ่านตัวแปรชื่อ page ในการเรียกไฟล์สคริปต์นี้ด้วย http://iamhacker/shell.php => เป็น URL ปลายทางที่เก็บไฟล์สคริปต์ อันตรายของผู้โจมตี โดยจุดประสงค์ของการส่งค่า URL นี้ เพื่อต้องการให้ เว็บไซต์เป้าหมายรันไฟล์สคริปต์อันตรายที่ต้องการ ซึ่งโดยปกติไฟล์สคริปต์ อันตรายที่ผู้โจมตีนามาใช้มักจะเป็นไฟล์สคริปต์ที่มีคุณสมบัติในการค้นหาช่อง โหว่บนเว็บไซต์เป้าหมาย ซึ่งปกติเรียกเราจะเรียกไฟล์สคริปต์พวกนี้ว่าเป็น Web Shell ยกตัวอย่างเช่น C99 R57 หรือ WSO Shell เป็นต้น รูปที่ 30 (17-3) แสดงให้เห็นหน้าเว็บไซต์เมื่อมีการเรียกไฟล์สคริปต์ประเภท Web Shell
  • 147.
    145 1.2 เมื่อผู้โจมตีเปิดไปยัง URLในข้อ 1 แล้ว ซึ่งจะพบว่าเว็บเบราว์เซอร์ (web browser) จะแสดงหน้าที่เป็นไฟล์สคริปต์ชื่อ shell.php ซึ่งเป็นไฟล์สคริปต์ อันตรายที่ผู้โจมตีต้องการใช้ โดยฟังก์ชั่นการใช้งานของผู้โจมตีพบว่าจะเลือกใช้ งานในส่วนที่เป็นโมดูลการอัพโหลดหรือจัดการไฟล์บนเว็บไซต์ เพื่อทาการ อัพโหลดหรือปรับเปลี่ยนไฟล์ของเว็บไซต์เป้าหมายในส่วนต่างๆ ตามที่ได้กล่าว ไว้ตอนต้นเกี่ยวกับจุดประสงค์ของผู้โจมตี การโจมตีในลักษณะนี้จะเรียกว่าการ โจมตีแบบ Remote File Inclusion [17-1] 2. ช่องโหว่จากการเรียกใช้ระบบการอัพโหลดไฟล์บนหน้าเว็บไซต์เป้าหมาย โดย ปกติการอัพโหลดไฟล์รูปภาพหรือไฟล์ใดๆ ขึ้นบนเว็บไซต์จะพบว่าการเก็บไฟล์ นั้นๆ ระบบจะเก็บไฟล์ที่ถูกอัพโหลดไว้บนเว็บไซต์ และหากระบบที่พัฒนาในการ อัพโหลดไฟล์ไม่ได้มีการตรวจสอบเนื้อหาหรือส่วนประกอบต่างๆ ของไฟล์ก่อน นาไปวางบนเครื่องแม่ข่ายจริงแล้วนั้น เท่ากับว่าผู้โจมตีจะสามารถใช้ช่องโหว่ ดังกล่าวในการอัพโหลดไฟล์สคริปต์อันตรายดังเช่น ในไฟล์ shell.php ในข้อ 1 ขึ้น ไปบนเว็บไซต์ได้ทันที ส่งผลลัพธ์ให้ผู้โจมตีสามารถรันไฟล์สคริปต์อันตรายบนเครื่อง เว็บไซต์เป้าหมาย และเข้าทาการอัพโหลดหรือปรับเปลี่ยนไฟล์ของเว็บไซต์ เป้าหมายในส่วนต่างๆ ตามที่ได้กล่าวไว้ตอนต้นเกี่ยวกับจุดประสงค์ของผู้โจมตี การโจมตีในลักษณะนี้จะเรียกว่าการโจมตีแบบ Unrestricted File Upload [17-2] สามารถพบได้แพร่หลายและเป็นที่นิยมในหมู่ผู้โจมตี เนื่องจากค้นหาช่อง โหว่ได้ง่าย 3. ช่องโหว่จากการเรียกใช้ข้อมูลที่ป้อนเข้าสู่ระบบโดยผู้ใช้งาน โดยปกติเว็บไซต์ ส่วนใหญ่มักจะมีช่องทางให้ผู้ใช้งานสามารถกรอกข้อมูลหรือพิมพ์ข้อความต่างๆ ใน เว็บไซต์ เช่น เพื่อให้ข้อมูลต่างๆ ในระบบลงทะเบียนพิมพ์บัญชีชื่อและรหัสผ่านใน ระบบการพิสูจน์ตัวจริง (Authentication) หรือการพิมพ์ข้อความเพื่อแสดงความ คิดเห็นต่างๆ บนเว็บบอร์ด ซึ่งหากระบบที่พัฒนาไม่มีการตรวจสอบ Input/ Output ก็จะส่งผลให้ผู้โจมตีสามารถใช้ช่องโหว่ตรงนี้ ในการแทรก HTML syntax ต่างๆ เข้าสู่ระบบได้ ซึ่งเมื่อผู้โจมตีกรอกข้อมูลดังกล่าวและ submit ข้อมูลเข้าใน ระบบสาเร็จแล้ว จะทาให้ผู้ใช้งานที่เปิดเข้ามายังเว็บไซต์เป้าหมายดังกล่าวก็จะเจอ
  • 148.
    146 กับ HTML syntaxที่ผู้โจมตีแทรกเข้าไป ซึ่งโดยปกติผู้โจมตีจะส่งค่า syntax ที่สั่ง การให้เว็บเบราว์เซอร์ redirect ไปยังเว็บไซต์ปลายทางที่ตั้งไว้ โดยตัวอย่างของ syntax ในลักษณะนี้เช่น <META HTTP-EQUIV=”refresh” content=”1; URL=http://youcanhack”> อธิบายตามคาสั่งของ syntax ได้ ว่าให้ Refresh หน้าเว็บไซต์ไปยังเว็บไซต์ปลายทางที่ http://youcanhack โดยผลลัพธ์ที่ปรากฏถึงแม้เว็บไซต์เป้าหมายจะยังไม่ได้ถูกเข้าควบคุมได้ โดยผู้โจมตี หรือถูกแก้ไขหน้าเว็บไซต์เหมือนดังข้อ 1, 2 เพียงแต่มีการถูกสอดแทรก HTML syntax เพื่อตั้งค่า Redirect page ไว้เท่านั้น แต่ก็ทาให้ผู้เข้าชมเข้าใจว่าเว็บไซต์นี้ ได้ถูกผู้โจมตีเข้าควบคุมแล้ว การโจมตีในลักษณะนี้จะเรียกว่าการโจมตีแบบ HTML Injection [17-3] 4. ช่องโหว่จากการใช้บริการจากผู้ให้บริการภายนอก (Third-Party Service [17-4]) เช่น บริการ DNS หรือ บริการ Hosting หรือ Web Hosting เป็นต้น ในบางครั้งการโจมตีอาจไม่ได้เกิดขึ้นที่เว็บไซต์เป้าหมายโดยตรง แต่เกิดขึ้นกับ บริการภายนอกอื่นๆ ที่เราเลือกใช้ เช่นบริการ DNS หรือบริการ Hosting ที่เป็น ระบบโครงสร้างพื้นฐานของบริการเว็บไซต์ ซึ่งเมื่อผู้โจมตีสามารถเจาะผ่านช่องโหว่ ต่างๆ จนเข้าควบคุมบริการนั้นๆ ได้แล้ว ก็จะเข้าทาการปรับแก้ไขฟังก์ชั่นการ ทางานส่วนต่างๆ ของบริการนั้นๆ เพื่อทาให้หน้าเว็บไซต์ของเราเปลี่ยนแปลงไป ในกรณีของการเข้าควบคุม Hosting Control Panel ก็จะมีการปรับปรุงหรือ เปลี่ยนแปลงซอร์สโค้ดของเว็บไซต์ เพื่อให้เห็นว่าหน้าเว็บไซต์เป้าหมายถูกโจมตี สาเร็จ แต่ถ้าเป็นลักษณะของผู้โจมตีสามารถเข้าถึงบริการ DNS ได้โดยตรง ทาให้ ผู้โจมตีสามารถปรับเพิ่ม Redirect record ในส่วนของระบบเพื่อให้ผู้ใช้งานเข้าใจ ว่าเว็บไซต์ดังกล่าวถูกควบคุมได้สาเร็จแล้วต่อไป 17.1 ตัวอย่างการโจมตีลักษณะ Website Defacement Zone-H : เมื่อวันที่ 4 กันยายน 2554 เว็บไซต์ Zone-H.org ได้รายงานถึงเว็บไซต์ ที่โดนปรับเปลี่ยนหน้าเว็บไซต์ ( Website Defacement ) ประกอบไปด้วยเว็บไซต์
  • 149.
    147 UPS, TheRegister, Acer,Telegraph, Vodafone [17-5] [17-6] ซึ่งผู้โจมตีใช้ การโจมตีด้วยวิธีการ Sql Injection [17-7] ผ่านทาง DNS control panel (netnames.co.uk) [17-8] เพื่อปรับค่า DNS Record ของเว็บไซต์ดังกล่าว ซึ่ง ผลลัพธ์ของการโจมตีครั้งนี้ คือผู้ที่เปิดหน้าเว็บไซต์ดังกล่าวจะพบว่าหน้าเว็บไซต์ที่ ต้องการเข้าถึงได้ถูกกลุ่มผู้โจมตีปรับเปลี่ยนหน้าแรกและแสดงข้อความในลักษณะที่ แจ้งว่า เว็บไซต์ถูกแฮก (“4 Sept. We TurkGuvenligi declare this day as World Hackers Day - Have fun ; ) h4ck y0u”) 17.2 ควรรับมืออย่างไร 1. สาหรับเว็บไซต์ที่พัฒนาด้วยภาษา PHP ควรปรับปรุงค่าที่อยู่ใน php.ini [17-9] (เป็นไฟล์ที่ใช้ปรับแต่งการตั้งค่าต่างๆ ของ PHP) โดยการตั้งค่าเพื่อไม่ให้สคริปต์ ต่างๆ สามารถเรียกใช้งานฟังก์ชั่นที่อาจก่อให้ช่องโหว่ในการเรียกใช้ไฟล์สคริปต์ อันตรายจาก URL ภายนอกได้ ซึ่งมีค่าที่ควรกาหนดดังนี้ allow_URL_fopen off -> ไม่อนุญาตให้ใช้ฟังก์ชั่น fopen สาหรับการเปิด ไฟล์ข้อมูลที่ส่งมาเป็น URL (fopen เป็นฟังก์ชั่นที่ใช้สาหรับเปิดไฟล์โดยสามารถ ระบุเป็นชื่อไฟล์บนเครื่องแม่ข่ายหรือเป็น URL จากเครื่องภายนอก) allow_URL_include off -> ไม่อนุญาตให้ใช้ฟังก์ชั่น include ไฟล์สคริปต์ที่ เป็น URL เพื่อป้องกันการโจมตีผ่านช่องโหว่ Remote file inclusion 2. ควรมีการตรวจสอบ Input/Output ในทุกๆ ครั้งที่มีการรับส่งข้อมูลบนเว็บไซต์ เพื่อป้องกันการส่งค่าที่เป็นอันตรายในการเข้าโจมตีเว็บไซต์ หรือในทุกๆ เว็บไซต์ที่ พัฒนาขึ้นควรแบ่งแยกประเภทและชนิดของข้อมูลที่รับส่งให้ชัด เพื่อให้ง่ายต่อการ พัฒนาฟังก์ชั่นสาหรับตรวจสอบต่อไป ยกตัวอย่างเช่น หากมีรับค่าการกรอกข้อมูล สิ่งที่ผู้พัฒนาระบบ/เว็บไซต์ควรทาคือ ต้องมีการตรวจสอบแบ่งว่าข้อมูลที่ได้รับจาก ผู้ใช้งานในแต่ละส่วนนั้น จะต้องตรงตามรูปแบบและข้อกาหนดของแต่ละประเภท ก่อนจะนาไปประมวลผลต่อ ไม่ควรปล่อยให้ข้อมูลที่ส่งเข้ามาไปประมวลผลเลย เพื่อป้องกันความเสียหายที่อาจเกิดขึ้นจากการถูกโจมตี
  • 150.
    148 3. ควรมีการตรวจสอบประเภทของไฟล์ (FileExtension) ในส่วนที่ผ่าน กระบวนการอัพโหลดไฟล์เข้ามา เพื่อป้องกันการอัพโหลดไฟล์สคริปต์อันตรายหรือ ไฟล์ที่จะก่อให้เกิดปัญหาบนเครื่องแม่ข่ายของเว็บไซต์ ซึ่งผู้พัฒนาเว็บไซต์เองควรมี การกาหนดขอบเขตและประเภทของไฟล์ที่อนุญาตให้สามารถอัพโหลดได้ (Whitelist) 4. ไม่เปิดสิทธิในการอ่านเขียนไฟล์ซอร์สโค้ดของเว็บไซต์ให้กับผู้อื่นและหมั่น ตรวจสอบการวันที่มีการอัพเดทไฟล์อยู่เสมอ เนื่องจากการโจมตีโดยการปรับ- เปลี่ยนหน้าเว็บไซต์ส่วนใหญ่เกิดขึ้นจากการที่ผู้โจมตีใช้สิทธิของไฟล์สคริปต์ อันตรายซึ่งเป็นสิทธิของผู้ให้บริการเว็บไซต์ (Webserver) [17-10] ที่ใช้ในการ ดาเนินการใดๆ เช่น การแก้ไขหรืออัพโหลดไฟล์ซอร์สโค้ดของเว็บไซต์, การอ่าน ไฟล์ที่ตั้งค่าเชื่อมต่อฐานข้อมูลของเว็บไซต์ เพราะฉะนั้น จึงควรระมัดระวังในการให้ สิทธิของไฟล์ซอร์สโค้ดของเว็บไซต์ให้ดี โดยการจัดการสิทธิของไฟล์ซอร์สโค้ดของ เว็บไซต์ที่ดีควรเริ่มจากการที่อัพโหลดไฟล์ต่างๆ ด้วยสิทธิผู้ใช้งานของตนเอง ไม่ใช่ ผ่านหน้าเว็บอัพโหลดใดๆ เพราะจะทาให้สิทธิของไฟล์ต่างๆ ที่อยู่บนระบบเป็นของ เว็บเซิร์ฟเวอร์ไปโดยปริยาย และหากมีไฟล์ส่วนไหนที่จาเป็นต้องถูกแก้ไขได้โดยเว็บ เซิร์ฟเวอร์จึงค่อยเปิดสิทธิและคอยระวังตรวจสอบไฟล์เหล่านั่นว่ามีการถูก เปลี่ยนแปลงหรือไม่ เพื่อเป็นข้อมูลสาหรับการพิจารณาความผิดปกติที่อาจจะ เกิดขึ้น 5. หากเป็นระบบที่ใช้ซอฟต์แวร์แพคเกจที่พัฒนาจากผู้พัฒนาภายนอก (Third party) เช่น Joomla [17-11] Wordpress [17-12] หรือ Drupal [17-13] ให้ ผู้ดูแลระบบคอยหมั่นตรวจเช็คข้อมูลจากเว็บไซต์ผู้พัฒนาอยู่เสมอๆ ว่ามีช่องโหว่ ใดๆ เกิดขึ้นกับระบบบ้าง และพิจารณาถึงช่องโหว่ดังกล่าวว่ามีใช้งานบนระบบ หรือเว็บไซต์ของเราหรือไม่ เพื่อเป็นข้อมูลในการตัดสินใจว่ามีความจาเป็นต้อง อัพเดทซอฟต์แวร์แพคเกจนั้นๆ หรือไม่ 6. เมื่อได้รับแจ้งหรือพบว่าเว็บไซต์ที่ดูแลถูกโจมตีและเปลี่ยนแปลงแก้ไข (Defacement) ให้ตรวจสอบ URL ที่พบเห็นเพื่อวิเคราะห์ว่าผู้โจมตีนั้น โจมตีเข้า
  • 151.
    149 มาด้วยวิธีการใด โดยสามารถแนะนาขั้นตอนในการตรวจสอบปัญหาเบื้อง ดังนี้ 6.1ตรวจสอบโดยการเปิดเว็บเบราว์เซอร์ (web browser) ไปยัง URL ที่ได้รับ แจ้ง จากนั้นให้พิจารณาดูว่าการ Defacement ที่แจ้งมาเป็นการสั่ง Redirect ต่อไปยังเว็บไซต์ปลายทางของผู้โจมตีหรือไม่ (สามารถตรวจสอบได้จากชื่อ Url ที่เปลี่ยนไปแสดงว่าเป็นการ Redirect) ซึ่งหากเป็นลักษณะของการ Redirect URL ต่อไปยังเว็บไซต์อื่น ให้ผู้ดูแลเข้าตรวจสอบฐานข้อมูลว่ามีข้อมูล แปลกปลอมจาพวก Syntax ของการ Redirect ซ่อนอยู่ที่ใดหรือไม่ เช่น อาจ พบว่ามีการแทรกข้อมูล <meta HTTP-EQUIV="REFRESH" content="0; url=http://......"> หรือ <script language="JavaScript">window.location='http://......';</script> อยู่ในฐานข้อมูลของกระดานสนทนาทาให้เกิดการ Redirect ไปยังหน้าเว็บไซต์ ผู้โจมตีอยู่ตลอดเวลา ซึ่งเมื่อพบข้อมูลดังที่กล่าวมาให้ผู้ดูแลรีบลบข้อมูล เหล่านั้นทิ้งทันที และรีบแก้ไขช่องโหว่ที่คาดว่าเป็นต้นเหตุให้ผู้โจมตีเข้ามาสร้าง ปัญหาซ้าได้อีก แต่หากไม่พบข้อมูลต้องสงสัยบนเว็บไซต์หรือฐานข้อมูลของ เว็บไซต์ให้ผู้ดูแลแจ้งไปยังผู้ให้บริการภายนอกต่างๆ เพื่อตรวจสอบว่ามีการเข้า โจมตีที่เว็บไซต์ผู้ให้บริการเหล่านั้นหรือไม่ 6.2 ตรวจสอบว่ามีไฟล์สคริปต์อันตรายประเภท Web shell อยู่บนเครื่องแม่ ข่ายที่ให้บริการเว็บไซต์อยู่หรือไม่ โดยการใช้โปรแกรมแอนตี้ไวรัสทั่วไปสแกน ไปยังพื้นที่ของเว็บไซต์บนเครื่องแม่ข่ายของเว็บไซต์ที่ดูแล แต่หากเป็นการใช้ งานเครื่องแม่ข่ายจากผู้ให้บริการภายนอกซึ่งไม่สามารถติดตั้งโปรแกรมแอนตี้ ไวรัสได้ให้ก๊อปปี้ข้อมูลออกมาจากเครื่องแม่ข่ายผู้ให้บริการดังกล่าวแล้วนามา สแกนยังเครื่องตนเอง ซึ่งโดยปกติแล้วไฟล์สคริปต์อันตรายประเภท Web shell จะถูกสแกนพบได้จากโปรแกรมแอนตี้ไวรัสทั่วไปอยู่แล้ว ซึ่งเมื่อพบไฟล์ ดังกล่าวให้ลบทิ้ง เพื่อเป็นการจากัดการเข้าโจมตีซ้าในอนาคต และหาช่องโหว่ที่ คาดว่าจะเป็นต้นเหตุของการสั่งรันไฟล์สคริปต์อันตรายนั้นได้ (แนวทางการ ค้นหาช่องโหว่ได้กล่าวไว้ในข้างต้นแล้ว) จากนั้นจึงตรวจสอบว่ามีไฟล์อื่นที่พบ การเปลี่ยนแปลงอีกหรือไม่แล้วจึงกู้คืนไฟล์ซอร์สโค้ดที่ถูกผู้โจมตีเปลี่ยนแปลง
  • 152.
    150 ไปกลับคืน หมายเหตุ: ขั้นตอนการกู้คืนซอร์สโค้ดอาจกระทาก่อนการหาช่องโหว่ของ ปัญหาก็ได้ เพราะอาจส่งผลในแง่ของความน่าเชื่อถือของเว็บไซต์แต่ผู้เขียน พยายามจะให้เห็นถึงความสาคัญของการปิดกั้นช่องโหว่เพราะจะได้เป็นการ แก้ปัญหาอย่างถาวร 7. ข้อเสนอแนะที่มีเกี่ยวกับการใช้บริการจากภายนอกสามารถแนะนาได้ดังนี้ 7.1 ควรตรวจสอบผู้ให้บริการที่มีความน่าเชื่อถือและมีความตระหนักถึงความ ปลอดภัยของระบบ ดังจะสังเกตได้จากการให้ความรู้บนเว็บไซต์ของผู้ให้บริการ ต่างๆ และการสอบถามถึงกระบวนการดูแลรักษาความปลอดภัยของข้อมูล โดยตรงจากผู้ให้บริการ 7.2 ควรมีการสารองข้อมูลของเว็บไซต์ไว้ที่อื่นนอกเหนือจากบนเครื่องแม่ข่ายที่ เช่าใช้บริการอยู่ เพราะหากพบกรณีที่เว็บไซต์ถูกเปลี่ยนแปลงหรือแก้ไข ซอร์สโค้ดจะได้สามารถกู้คืนข้อมูลได้อย่างสมบูรณ์และรวดเร็ว 17.3 เอกสารอ้างอิง [17-1] http://en.wikipedia.org/wiki/Remote_file_inclusion# Programming_languages [17-2] https://www.owasp.org/index.php/Unrestricted_File_Upload [17-3] http://foro.elhacker.net/hacking_basico/tutorial_html_ injection-t232019.0.html [17-4] http://wiki.answers.com/Q/What_do_you_mean_by_third_ party_service_providers [17-5] http://www.zone-h.org/news/id/4741 [17-6] http://www.itpro.co.uk/635926/hackers-deface-the-register- vodafone-and-more
  • 153.
    151 [17-7] https://www.owasp.org/index.php/SQL_Injection [17-8] http://www.netnames.co.uk/ [17-9]http://www.slideshare.net/pritisolanki/understanding-phpini- presentation [17-10] http://en.wikipedia.org/wiki/Web_server [17-11] http://docs.joomla.org/Vulnerable_Extensions_List [17-12] http://wordpress.org/tags/vulnerability [17-13] http://drupal.org/security
  • 154.
  • 155.
    153 18. ระวังภัย มัลแวร์DuQu โจมตีวินโดวส์ด้วย ฟอนต์ ผู้เรียบเรียง: เสฏฐวุฒิ แสนนาม วันที่ประกาศ : 11 พฤศจิกายน 2554 ปรับปรุงล่าสุด : 11 พฤศจิกายน 2554 ประเภทภัยคุกคาม : Malware 18.1 ข้อมูลทั่วไป เมื่อวันที่ 15 ตุลาคม 2554 ไมโครซอฟท์ได้ประกาศว่ามีการแพร่ระบาดของมัลแวร์ ชื่อ DuQu (CVE-2011-3402) โจมตีโดยอาศัยช่องโหว่ของไฟล์ win32k.sys ซึ่งเป็นส่วนที่ใช้สาหรับการแสดงผลรูปแบบตัวอักษร TrueType Font ของ ระบบปฏิบัติการ Windows ทุกเวอร์ชั่น ผู้โจมตีสามารถใช้ช่องโหว่นี้ในการสั่งการ เครื่องคอมพิวเตอร์เป้าหมาย จากระยะไกลเพื่อให้ประมวลผลคาสั่งที่เป็นอันตราย ได้ ซึ่งคาสั่งดังกล่าวจะได้รับสิทธิในระดับเดียวกับ Kernel ของระบบปฏิบัติการ ส่งผลให้ผู้โจมตีสามารถติดตั้งโปรแกรม อ่าน เขียน หรือลบข้อมูล รวมทั้งสามารถ สร้างบัญชีผู้ใช้ใหม่ที่มีสิทธิในระดับเดียวกับผู้ดูแลระบบ (Administrator) ได้ การโจมตีอาจจะมาในรูปแบบของอีเมล HTML ที่มีคาสั่งให้ดาวน์โหลดฟอนต์โดย อัตโนมัติ หรือมากับเอกสารไฟล์แนบซึ่งใช้ช่องโหว่ดังกล่าว [18-1] จากการวิเคราะห์ การทางานของ DuQu โดยผู้เชี่ยวชาญ พบว่าเป็นมัลแวร์ ประเภท โทรจัน (Trojan) ซึ่งผู้พัฒนาอาจเป็นกลุ่มเดียวกันกับกลุ่มที่พัฒนา Stuxnet เนื่องจาก โค้ดหลายส่วนมีความคล้ายคลึงกัน แต่มีความแตกต่างกันตรงที่ DuQu มีจุดมุ่งหมายเพื่อการขโมยข้อมูลเท่านั้น และยังไม่พบว่ามีการทางานที่เป็น
  • 156.
    154 การโจมตีระบบใดระบบหนึ่งเป็นพิเศษ ซึ่งแตกต่างจาก Stuxnetที่มีเป้าหมาย เพื่อโจมตีระบบโรงไฟฟ้านิวเคลียร์ของประเทศอิหร่านโดยเฉพาะ [18-2] [18-3] 18.2 การทางาน DuQu ใช้เทคนิคการฝังโค้ดที่เป็น Payload ลงในโปรเซส (Injects payload instructions) มีส่วนการทางานหลักๆ อยู่ 2 ส่วน คือ การติดตั้ง และ การฝัง Payload โดยมีขั้นตอนการทางานดังนี้ [18-3] การติดตั้ง DuQu จะติดตั้งไดรเวอร์ปลอมของอุปกรณ์โดยใช้ชื่อ JmiNET3.sys หรือ cmi4432.sys ซึ่งไดรเวอร์ดังกล่าวจะถูกโหลดให้เป็น Service ในทุกครั้งที่ Windows เริ่มทางาน เครื่องที่ติด DuQu จะพบอุปกรณ์เหล่านี้อยู่ในระบบ • Device{3093AAZ3-1092-2929-9391} • DeviceGpd1 การฝัง Payload DuQu จะฝัง Payload ให้ติดไปกับโปรเซสอื่นๆ โดยจะอ่านค่าการทางานจาก ข้อมูลที่ถูกเข้ารหัสลับไว้ในรีจิสทรี (Registry) ซึ่งรีจิสทรีที่ถูกสร้างโดยมัลแวร์ มีดังนี้ • HKLMSYSTEMCurrentControlSetServicesJmiNET3FILTER • HKLMSYSTEMCurrentControlSetServicescmi4432FILTER รีจิสทรีดังกล่าว จะใช้ Payload จากไฟล์ที่ถูกสร้างโดยมัลแวร์ ดังนี้ • %systemroot%infnetp191.PNF • %systemroot%infcmi4432.PNF
  • 157.
    155 18.3 วิธีการแก้ไข ไมโครซอฟท์ได้ออกซอฟต์แวร์ FixIt หมายเลข 2639658 เพื่อปรับปรุงช่องโหว่ ดังกล่าว เมื่อวันที่ 3 พฤศจิกายน 2554 [18-5] อย่างไรก็ตาม ซอฟต์แวร์นี้เป็นเพียง การปิดกั้นการเข้าถึงไฟล์ระบบที่มีช่องโหว่ (T2embed.dll) แต่ไม่ใช่การปรับปรุง แก้ไขปัญหา โดยไมโครซอฟท์แจ้งว่าจะออกแพทช์ (Patch) เพื่อแก้ปัญหานี้ผ่าน ทาง Windows Update ในภายหลัง [18-6] [18-7] หากยังไม่ได้ทาการติดตั้งซอฟต์แวร์ปรับปรุงช่องโหว่ดังกล่าว ผู้ใช้สามารถจากัด ความเสียหายที่อาจเกิดขึ้นได้โดยการกาหนดค่าระดับ Security ในเว็บเบราว์เซอร์ (web browser) หรือโปรแกรมรับส่งอีเมลของไมโครซอฟท์ให้เป็น Restricted Zone เพื่อไม่ให้มีการดาวน์โหลดฟอนต์จากเว็บไซต์ภายนอกมาโดยอัตโนมัติ รวมถึงไม่เปิดไฟล์เอกสารที่แนบมากับอีเมลที่น่าสงสัย ศูนย์วิจัย CrySyS จากประเทศฮังการี ได้ทาการวิเคราะห์การทางานของ DuQu และได้ออกซอฟต์แวร์ DuQu Detector Toolkit เพื่อให้ผู้ดูแลระบบใช้ในการ ตรวจสอบเครื่องคอมพิวเตอร์และแก้ไขการทางานของระบบที่ถูกเปลี่ยนแปลงให้ กลับสู่สภาพเดิมได้ [18-8] ผู้ที่สนใจสามารถดาวน์โหลดซอฟต์แวร์ดังกล่าวได้ที่ http://www.crysys.hu/ 18.4 แหล่งข้อมูลอื่นๆ ที่เกี่ยวข้อง 1. http://osvdb.org/show/osvdb/76843 2. http://www.net-security.org/malware_news.php?id=1905 18.5 เอกสารอ้างอิง [18-1] http://technet.microsoft.com/en-us/security/advisory/2639658 [18-2] http://thehackernews.com/2011/11/duqu-another-stuxnet-in- making.html
  • 158.
    156 [18-3] http://thehackernews.com/2011/11/duqu-malware-was- created-to-spy-on.html [18-4] http://www.microsoft.com/security/portal/Threat/ Encyclopedia/Entry.aspx?Name=Trojan%3aWinNT%2fDuqu.A [18-5]http://support.microsoft.com/kb/2639658 [18-6] http://www.theregister.co.uk/2011/11/09/nov_patch_tuesday/ [18-7] http://searchsecurity.techtarget.com/news/2240110565/One- critical-bulletin-no-Duqu-patch-in-November-2011-Patch- Tuesday-updates [18-8] http://thehackernews.com/2011/11/crysys-duqu-detector- open-source.html
  • 159.
    157 19. ช่องโหว่ BIND9(CVE-2011-4313) ผู้เรียบเรียง: ศุภกรณ์ ฤกษ์ดิถีพร วันที่ประกาศ : 18 พฤศจิกายน 2554 ปรับปรุงล่าสุด : 21 พฤศจิกายน 2554 หมายเลขช่องโหว่ : CVE-2011-4313 ประเภทภัยคุกคาม : DoS (Denial-of-Service) 19.1 ข้อมูลทั่วไป เมื่อวันที่ 16 พฤศจิกายน 2554 หน่วยงาน ISC (Internet Systems Consortium) ผู้พัฒนาซอฟต์แวร์ BIND ซึ่งเป็นซอฟต์แวร์ที่ใช้สาหรับการให้บริการ Domain Name System ได้รายงานปัญหาข้อผิดพลาดของซอฟต์แวร์ BIND เวอร์ ชั่น 9 ซึ่งสาเหตุของข้อผิดพลาดดังกล่าวเกิดจากการทางานส่วน Resolver ของ ซอฟต์แวร์ BIND ประมวลผล Recursive Query ที่ผิดพลาด แล้วบันทึก Query เก็บไว้ใน Cache จากนั้น เมื่อ Resolver ประมวลผล Query นั้นซ้าอีก ระบบจะ ไปอ่านค่าจาก Cache แทน ทาให้มีการดึงค่าข้อมูลที่ผิดพลาดนั้นขึ้นมา และเมื่อ พบว่าข้อมูลผิดพลาด ระบบจะทาการบันทึก Error log ผ่านไฟล์ query.c ซึ่งถูก พบว่าเมื่อมีการถูกโจมตีโดยการ DoS จะทาให้ระบบทาการบันทึกข้อผิดพลาด ดังกล่าวซ้าจนส่งผลให้ระบบหยุดทางาน (Crash) [19-1] [19-2] [19-3] [19-4] 19.2 ผลกระทบ ระบบหยุดทางานไม่สามารถให้บริการ Domain Name System ต่อได้ [19-5]
  • 160.
    158 19.3 ระบบที่ได้รับผลกระทบ ISC BINDเวอร์ชั่น BIND 9.0.x -> 9.5.x, 9.4-ESV -> 9.4-ESV-R5, 9.6-ESV -> 9.6-ESV-R5, 9.7.0 -> 9.7.4, 9.8.0 -> 9.8.1 19.4 วิธีแก้ไข ติดตั้งซอฟต์แวร์ปรับปรุงช่องโหว่ ISC BIND ให้เป็นรุ่นปัจจุบัน ดังนี้ BIND 9.8.1- P1, 9.7.4-P1, 9.6-ESV-R5-P1, 9.4-ESV-R5-P1 [19-6] 19.5 แหล่งข้อมูลที่เกี่ยวข้อง 1. http://www.isc.org/software/bind 2. http://technet.microsoft.com/en-us/library/cc961401.aspx 3. http://pastebin.com/JjaRtACv 19.6 เอกสารอ้างอิง [19-1] http://osvdb.org/show/osvdb/77159 [19-2] http://searchsecurity.techtarget.com/news/2240111262/ISC- issues-temporary-patch-for-zero-day-BIND-9-DNS-server-flaw [19-3] http://thehackernews.com/2011/11/patches-released-for- bind-denial-of.html [19-4] http://secunia.com/advisories/46887/ [19-5] http://www.isc.org/software/bind/advisories/cve-2011-tbd [19-6] http://www.kb.cert.org/vuls/id/725188
  • 161.
    159 20. การกู้ข้อมูลจากฮาร์ดดิสก์ที่ถูกน้าท่วม ผู้เรียบเรียง: เสฏฐวุฒิแสนนาม วันที่เผยแพร่: 28 พ.ย. 2554 ปรับปรุงล่าสุด: 28 พ.ย. 2554 จากเหตุการณ์น้าท่วมที่ผ่านมา ส่งผลให้คอมพิวเตอร์ของหน่วยงาน สถาน ประกอบการ หรือบุคคลทั่วไป หลายแห่งจมอยู่ใต้น้า ซึ่งอาจมีข้อมูลที่สาคัญอยู่ใน ฮาร์ดดิสก์ และมีความจาเป็นต้องทาการกู้ข้อมูล (Data recovery) เพื่อให้สามารถ ดาเนินกิจการต่อไปได้โดยเร็วที่สุด แต่การกู้ข้อมูลนั้นมีหลายสิ่งที่ควรรู้และต้อง คานึงในการปฏิบัติ เพื่อไม่ให้เกิดความเสียหายต่อฮาร์ดดิสก์โดยไม่ตั้งใจ ดังนั้น การรู้จักการทางานของฮาร์ดดิสก์ รูปแบบความเสียหาย วิธีการการแก้ไข และ ขั้นตอนการปฏิบัติในการกู้ข้อมูล ก็จะสามารถช่วยป้องกันความเสียหายและเพิ่ม โอกาสในการกู้ข้อมูลกลับคืนมาได้ 20.1 โครงสร้างการทางานของฮาร์ดดิสก์ ปัจจุบัน มีการใช้งานฮาร์ดดิสก์อยู่ 2 แบบ คือแบบจานแม่เหล็ก และแบบ Solid- state (SSD) ซึ่งทั้ง 2 แบบมีโครงสร้างและการทางานที่แตกต่างกัน ส่งผลให้มี ความแตกต่างในเรื่องของการเก็บข้อมูลและการกู้ข้อมูลตามไปด้วย ฮาร์ดดิสก์แบบจานแม่เหล็ก รูปที่ 31 (20-1) ฮาร์ดดิสก์แบบจานแม่เหล็ก [20-1]
  • 162.
    160 นิยมใช้ในคอมพิวเตอร์ทั่วไป รวมถึงกล้องวีดีโอบางรุ่น เนื่องจากมีขนาดความจุ ค่อนข้างสูงและมีราคาที่ลดลงมาอยู่ในระดับที่ไม่สูงมากฮาร์ดดิสก์แบบแม่เหล็กจะ ใช้แผ่นจานโลหะเพื่อเก็บข้อมูล โดยมีมอเตอร์หมุนอยู่ภายใน และใช้หัวอ่านในการ อ่านและเขียนข้อมูลลงในแผ่นจานในการอ่านหรือเขียนข้อมูล จะใช้หลักการเปลี่ยน ทิศทางของสนามแม่เหล็ก เพื่อเก็บข้อมูลในรูปแบบของเลขฐาน 2 ในขณะที่ฮาร์ดดิสก์ทางานหัวอ่านจะลอยอยู่เหนือแผ่นจานประมาณ 10 นาโนเมตร [20-2] (เส้นผมของมนุษย์มีเส้นผ่านศูนย์กลางเฉลี่ย 99 ไมโครเมตร) แผ่นจานจะ หมุนด้วยความเร็วสูง ซึ่งในปัจจุบันมีความเร็วในการหมุนประมาณ 7,200 – 10,000 รอบต่อนาที (ประมาณ 270 กิโลเมตรต่อชั่วโมง) ดังนั้น หากฮาร์ดดิสก์มี การสั่นสะเทือนเกิดขึ้นในขณะที่หัวอ่านกาลังทางานก็มีโอกาสสูงที่หัวอ่านจะไปขูด กับแผ่นจานแม่เหล็ก ซึ่งส่งผลให้ฮาร์ดดิสก์เสียหายอย่างถาวรได้ ฮาร์ดดิสก์แบบ Solid-state รูปที่ 32 (20-2) ฮาร์ดดิสก์แบบ Solid-state [20-3] ฮาร์ดดิสก์แบบ Solid-state ใช้หลักการเดียวกันกับอุปกรณ์เก็บข้อมูลแบบพกพา เช่น Flash drive ซึ่งเป็นอุปกรณ์เก็บข้อมูลรูปแบบใหม่ที่ไม่มีชิ้นส่วนที่เป็นการ หมุนหรือหัวอ่านอยู่ภายใน โดยจะเปลี่ยนมาใช้การเก็บข้อมูลบน NAND Chip ซึ่งเป็นการอ่านและเขียนข้อมูลโดยใช้ไฟฟ้าส่งผลให้ฮาร์ดดิสก์แบบ Solid-state สามารถอ่านเขียนข้อมูลได้เร็วกว่าฮาร์ดดิสก์แบบจานแม่เหล็ก แต่เนื่องจาก มีราคา ที่ค่อนข้างสูงและมีความจุน้อยกว่าฮาร์ดดิสก์แบบจานแม่เหล็ก จึงนิยมใช้ใน อุปกรณ์ที่ต้องการการพกพาสะดวกและมีน้าหนักเบา เช่น คอมพิวเตอร์โน้ตบุ๊ก
  • 163.
    161 แบบ Ultra-thin หรือโทรศัพท์มือถือบางรุ่น ฮาร์ดดิสก์แบบSolid-state จะแบ่งพื้นที่ในการเก็บข้อมูลออกเป็นบล็อก (หรือ Cell) ซึ่งแต่ละบล็อกมีจานวนครั้งในการเขียนหรือลบข้อมูลอยู่จากัด ถ้าใช้ครบ จานวนครั้งที่กาหนดบล็อกนั้นจะไม่สามารถใช้งานได้อีก [20-4] นอกจากนี้ การ เก็บข้อมูลจะไม่ได้เก็บแบบต่อเนื่องเหมือนฮาร์ดดิสก์แบบจานแม่เหล็ก แต่จะใช้วิธี Logical mapping ซึ่งเป็นการเชื่อมโยงข้อมูลที่เก็บอยู่จริงในหน่วยความจาให้เป็น ไฟล์ข้อมูลสาหรับคอมพิวเตอร์ ซึ่งส่วนที่ทาหน้าที่ดังกล่าวเรียกว่า Controller 20.2 ความเสียหายที่อาจเกิดขึ้นได้กับฮาร์ดดิสก์ ความเสียหายทางการภาพ (Physical damage) ความเสียหายที่เกิดขึ้นกับฮาร์ดดิสก์แบบจานแม่เหล็ก จะเกิดกับส่วนของจาน แม่เหล็กที่ใช้สาหรับบันทึกข้อมูลไม่ว่าจะเป็นการอยู่ภายใต้สนามแม่เหล็กที่ความ แรงสูงจนข้อมูลที่เก็บอยู่ผิดเพี้ยน หรือหัวอ่านกระแทกกับจานข้อมูล ทาให้เข้าถึง ข้อมูลในส่วนนั้นไม่ได้ เป็นต้น ซึ่งถึงแม้ว่าในขณะที่ปิดเครื่องหัวอ่านของฮาร์ดดิสก์ จะถูกเก็บให้ไปอยู่ในที่ที่ปลอดภัยแล้วก็ตาม แต่การที่ฮาร์ดดิสก์ตกจากที่สูงก็มี โอกาสที่จะเกิดความเสียหายได้เช่นกัน หากหัวอ่านชารุดแต่แผ่นจานแม่เหล็กยัง สามารถใช้งานได้อยู่ก็ยังสามารถให้ผู้เชี่ยวชาญทาการถอดจานแม่เหล็ก เพื่อนาไป อ่านข้อมูลออกมาใส่ในฮาร์ดดิสก์อื่นได้ แต่หากแผ่นจานแม่เหล็กชารุดเสียหาย โอกาสที่จะกู้ข้อมูลได้ก็น้อยลงไปด้วย [20-5] [20-6] สาหรับฮาร์ดดิสก์แบบ Solid-state ถ้าส่วน Controller เสียหาย การกู้ข้อมูลจะ ทาได้ยากมากหรือแทบเป็นไปไม่ได้เลย เนื่องจาก การกู้ข้อมูลต้องแกะเอา NAND Chip ออกมาคัดลอกข้อมูล แล้วนาชิ้นส่วนของข้อมูลที่ได้มาวิเคราะห์เพื่อสร้าง ตารางข้อมูลใหม่ นอกจากนี้ วิธีการเก็บข้อมูลในฮาร์ดดิสก์แบบ Solid-state ยังแตกต่างกันออกไปตามวิธีการของผู้ผลิต ปัจจุบันยังไม่มีซอฟต์แวร์ที่ใช้ในการกู้ ข้อมูลในลักษณะนี้จาเป็นต้องให้ผู้เชี่ยวชาญทาเท่านั้น [20-7] [20-8] [20-9] [20-10]
  • 164.
    162 ในประเทศไทยมีบริษัทที่ให้บริการกู้ข้อมูลในฮาร์ดดิสก์ในกรณีที่เกิดความเสียหาย ทางกายภาพ เช่น ศูนย์กู้ข้อมูลIDR หรือ ศูนย์กู้ข้อมูล i-CU เป็นต้น ซึ่งค่าใช้จ่ายใน การกู้ข้อมูลก็จะแตกต่างกันออกไปแล้วแต่กรณี อย่างไรก็ตาม ThaiCERT ไม่ได้มี ส่วนเกี่ยวข้องกับผู้ให้บริการกู้ข้อมูลดังกล่าว ความเสียหายที่เกิดขึ้นกับข้อมูล (Logical damage) เป็นความเสียหายที่เกิดขึ้นจากการใช้งาน ซึ่งเกี่ยวข้องกับไฟล์หรือระบบโครงสร้าง ของการเก็บข้อมูลไม่ว่าจะเป็นการเผลอลบข้อมูล การ Format ฮาร์ดดิสก์ หรือการ เขียนข้อมูลทับ ซึ่งความเสียหายในส่วนนี้สามารถกู้คืนได้ด้วยซอฟต์แวร์ โดย ปัจจุบันมีซอฟต์แวร์ที่ใช้สาหรับกู้ข้อมูลอยู่จานวนมากผู้ใช้สามารถดาวน์โหลดมาใช้ งานได้ฟรี เช่น Recuva หรือ TeskDisk เป็นต้น [20-11] 20.3 ทาอย่างไรหากฮาร์ดดิสก์จมน้า หากฮาร์ดดิสก์จมน้าไม่ว่าฮาร์ดดิสก์จะเสียหายอย่างไรก็ตาม ยังพอมีโอกาสที่จะกู้ ข้อมูลได้ การกู้ข้อมูลจากฮาร์ดดิสก์ที่มีความเสียหายทางกายภาพนั้น ไม่สามารถทา ได้ด้วยตนเอง แต่สามารถขอความช่วยเหลือในการกู้ข้อมูลจากผู้เชี่ยวชาญได้ ข้อแนะนาในการปฏิบัติในการเก็บและจัดส่งฮาร์ดดิสก์ให้กับบริษัทที่ให้บริการกู้ ข้อมูล มีดังนี้ ฮาร์ดดิสก์แบบจานแม่เหล็ก 1. ไม่ควรทาการกู้ข้อมูลด้วยตนเองโดยเด็ดขาด เพราะเมื่อฮาร์ดดิสก์จมน้า หัวอ่านอาจจะไปติดอยู่กับจานข้อมูล ถ้าจ่ายไฟเข้าไปจะเกิดการหมุนของ หัวอ่าน ซึ่งอาจจะไปขูดกับจานข้อมูลทาให้ฮาร์ดดิสก์เสียหายถาวรได้ 2. อย่าทาให้ฮาร์ดดิสก์แห้ง เพราะเมื่อฮาร์ดดิสก์แห้งจะเกิดคราบและเศษฝุ่น เกาะติดอยู่ที่จานหรือหัวอ่านได้
  • 165.
    163 รูปที่ 33 (20-3)คราบฝุ่นที่ติดอยู่บนฮาร์ดดิสก์เมื่อน้าแห้ง [20-12] 1. อย่าทาให้ฮาร์ดดิสก์สั่นสะเทือน เนื่องจากหัวอ่านอาจจะขูดกับแผ่นจาน ทาให้ฮาร์ดดิสก์เสียหายได้ 2. ทาให้ฮาร์ดดิสก์อยู่ในสภาพที่จมน้าแบบที่ยังคงเป็นอยู่ โดยอาจจะนา ฮาร์ดดิสก์ใส่ในภาชนะที่ปิดมิดชิด เช่น กล่องโฟม หรือ กล่องใส่อาหาร แล้วส่งให้กับผู้เชี่ยวชาญเพื่อทาการกู้ข้อมูลต่อไป [20-13] ฮาร์ดดิสก์แบบ Solid-state สาหรับฮาร์ดดิสก์แบบ Solid-state (หรือ Flash drive) เนื่องจากเป็นแผงวงจร จึงสามารถทนทานต่อการจมน้าได้บ้าง หากฮาร์ดดิสก์ถูกน้าควรรีบนาฮาร์ดดิสก์ ออกมาทาให้แห้งโดยเร็วด้วยการใช้พัดลมเป่า ไม่ควรใช้ไดร์เป่าผมหรือนาไปตาก แดด จากนั้นเมื่อแน่ใจว่าฮาร์ดดิสก์แห้งสนิทแล้วสามารถนาไปใช้งานต่อได้ แต่หาก ฮาร์ดดิสก์จมน้าเป็นเวลานานมีโอกาสที่จะทาให้แผงวงจรหรืออุปกรณ์ภายในขึ้น สนิมได้ ควรรีบทาให้แห้งแล้วส่งไปยังศูนย์กู้ข้อมูลเพื่อให้ผู้เชี่ยวชาญดาเนินการ ต่อไป [20-14] 20.4 การกู้ข้อมูลจากฮาร์ดดิสก์ที่ถูกลบหรือเขียนข้อมูลทับ หากฮาร์ดดิสก์ไม่ได้เสียหายทางกายภาพ แต่ข้อมูลสูญหายเนื่องจากอุบัติเหตุใน ระหว่างการใช้งาน เช่น การเผลอลบไฟล์เอกสารสาคัญ หรือฮาร์ดดิสก์ถูก Format
  • 166.
    164 ยังสามารถใช้ซอฟต์แวร์ทาการกู้ข้อมูลได้ เนื่องจากเมื่อระบบทาการลบไฟล์ จะไม่ ลบข้อมูลจริงทิ้งแต่จะลบส่วนที่เป็นการอ้างอิงตาแหน่ง (Index) ของข้อมูลแทน หมายความว่า “ชื่อ” ที่ใช้ในการอ้างอิงตาแหน่งของข้อมูลนั้นจะหายไป แต่ตัว ข้อมูลยังคงอยู่ เมื่อฮาร์ดดิสก์แบบแม่เหล็กเขียนข้อมูลใหม่ทับข้อมูลเดิม จะไม่ได้ เปลี่ยนบิทของข้อมูลเดิมจาก 0 เป็น 1 หรือ 1 เป็น 0 พอดี แต่จะมีการเหลื่อมอยู่ บ้าง ถ้าสามารถอ่านข้อมูลดิบที่อยู่บนดิสก์แล้วทาการวิเคราะห์รูปแบบ (Pattern) ของการเปลี่ยนค่าจาก 0 เป็น 1 หรือ 1 เป็น 0 ได้ จะสามารถรู้ว่าข้อมูลตรงส่วนนี้ เคยมีค่าเป็นอะไรมาก่อน นอกจากนี้ ยังสามารถใช้กล้องสแกนแถบแม่เหล็กใน ฮาร์ดดิสก์ เพื่อดูค่าการจัดเรียงของสนามแม่เหล็กในดิสก์ได้ [20-15] อย่างไรก็ตาม การทาลายข้อมูลบนฮาร์ดดิสก์นั้นก็ยังสามารถทาได้อยู่ จากการวิจัยพบว่า ถ้าเขียนทับข้อมูลนั้นมากกว่า 25 ครั้งจะไม่สามารถกู้ข้อมูลกลับคืนมาได้ [20-16] [20-17] [20-18] 20.5 การป้องกันข้อมูลสูญหาย ในการป้องกันข้อมูลสูญหายวิธีที่ดีที่สุด คือ การสารองข้อมูลอยู่อย่างสม่าเสมอ ซึ่งการสารองข้อมูลก็สามารถทาได้หลายวิธี เช่น ใช้การต่อฮาร์ดดิสก์แบบ RAID เพื่อสารองข้อมูลไปยังฮาร์ดดิสก์อีกลูกหนึ่งโดยอัตโนมัติ หรือนาข้อมูลที่สาคัญไป ฝากไว้กับผู้ให้บริการฝากข้อมูลบนอินเทอร์เน็ต 20.6 ข้อมูลเพิ่มเติม 1. Data Remanence in Semiconductor Devices: http://www.cypherpunks.to/~peter/usenix01.pdf 2. List of data recovery software: http://en.wikipedia.org/wiki/List_of_data_recovery_software 3. Reliably Erasing Data From Flash-Based Solid State Drives: http://www.usenix.org/events/fast11/tech/full_papers/Wei.pdf 4. Redundant array of independent disks:
  • 167.
    165 http://en.wikipedia.org/wiki/Redundant_array_of_independent _disks 20.7 เอกสารอ้างอิง [20-1] http://en.wikipedia.org/wiki/Hard_drive [20-2]http://www.pcguide.com/ref/hdd/op/heads/op_Height.htm [20-3] http://en.wikipedia.org/wiki/Solid-state_drive [20-4] http://www.datarecovery.net/articles/solid-state-drive- architecture.html [20-5] http://en.wikipedia.org/wiki/Data_remanence [20-6] http://en.wikipedia.org/wiki/Data_loss [20-7] http://www.datarecovery.net/solid-state-drive-recovery.html [20-8] http://www.datarecoverytools.co.uk/2010/02/21/is-ssd-data- recovery-possible-and-different-from-hard-drive-data- recovery/ [20-8] http://www.recovermyflashdrive.com/articles/how-flash- drives-fail [20-9] http://www.recovermyflashdrive.com/articles/5-things-you- should-know-about-flash-drives [20-10] http://en.wikipedia.org/wiki/Data_recovery [20-11] http://www.dataclinic.co.uk/advanced-data-recovery-water- damaged-hard-disk-drive.htm [20-12] http://www.storagesearch.com/disklabs-art3-floods.html [20-13] http://www.associatedcontent.com/article/2556459/ how_to_salvage_a_usb_flash_drive_from.html [20-14] http://www.nber.org/sys-admin/overwritten-data-
  • 168.