By Arnon Puitrakul - 04 มกราคม 2022
เรื่องนึงที่น่าสนใจ และ เรามองว่าเป็นเรื่องที่คนที่ใช้งานเครื่องคอมพิวเตอร์ก็ควรที่จะรู้คือ เรื่องของความปลอดภัยบนไซเบอร์ วันนี้เราจะมาเล่า เรื่องที่สำคัญมาก ๆ และ หลาย ๆ คนอาจจะยังไม่เข้าใจเท่าไหร่ว่า จริง ๆ แล้วมันเป็นยังไง นั่นคือ การ Hack มันจะเหมือนในหนังมั้ย หรือมันทำอะไรกันแน่ ถึงเรียกว่า Hack สุดท้าย เราจะรู้ได้อย่างไรว่า เราโดน Hack หรือติด Malware อะไรบางอย่างแล้ว
ก่อนอื่นเลย เราอยากจะให้ทุกคนมองภาพของคำว่า Hack ใหม่ก่อน เรามักจะเจอคนหลาย ๆ คนที่มองภาพคำ ๆ นี้เป็นคำที่ไม่ดีเท่าไหร่ เช่นบอกว่า เรา Hack A มา คนหลาย ๆ คนก็มักจะมองคนที่พูดเป็นคนไม่ดีโดยทันที
- to cut, notch, slice, chop, or sever (something) with or as with heavy, irregular blows (often followed by up or down):
to hack meat; to hack down trees.- to break up the surface of (the ground).
- to modify (a computer program or electronic device) or write (a program) in a skillful or clever way:
- to circumvent security and break into (a network, computer, file, etc.), often with malicious intent
จริง ๆ แล้ว Hack มันสามารถใช้ได้หลายสถานการณ์มาก ๆ แต่ความหมายจริง ๆ ของมันเมื่อเราไปเปิด Dictionary ความหมายมันจะเป็นแบบด้านบนเลย จะเห็นว่าจริง ๆ แล้ว มันมีหลายความหมายมาก ๆ เลยนะ อย่างความหมายที่ 1-3 หลัก ๆ แล้วมันก็จะแปลว่า เราเข้าไป ตัด หั่นอะไรบางอย่าง หรือถ้าเป็นความหมายที่ 3 เป็นเรื่องของคอมพิวเตอร์เลยจริง ๆ ก็คือ การที่เราแก้ไขโปรแกรม หรือ เขียนโปรแกรมในทางที่ดี แต่มันก็มีความหมายที่ไม่ดีอีก ก็คือ อันที่ 4 คืออการบุกเข้าไปในระบบ โดยมีจุดประสงค์ที่ไม่ดี
ตัวอย่างนึงของการ Hacking ที่เราอาจจะเคยได้ยินคือ Biohacking หรือการทำอะไรบางอย่างเพื่อแก้ไขอะไรบางอย่างในทางชีววิทยาเพื่อพัฒนากระบวนการบางอย่างในธรรมชาติให้ทำงานในแบบที่เราต้องการ หรือดีขึ้น ตัวอย่างเช่น การตัดต่อพันธุกรรมพืชบางอย่างเพื่อให้มันสร้างผลผลิตได้มากขึ้น หรือจะเป็นการเพิ่ม Gene ที่สร้าง Fluorescent เพื่อให้สิ่งมีชีวิตนี้เรืองแสงในที่มืดได้ มันมี Series ใน Netflix เรื่อง Biohackers อยู่ลองไปดูกันได้ ไว้ว่าง ๆ จะมาเล่าเรื่องของการทำ Genome Editing ให้อ่านกันแบบเข้าใจง่าย ๆ
ในคอมพิวเตอร์เอง เราก็ชอบการ Hacking นะ เช่นการเข้าไปแก้โปรแกรมอะไรบางอย่าง เพื่อให้เราทำงานได้ง่ายขึ้นอะไรแบบนั้น มันเป็นการใช้ความคิดสร้างสรรค์ในการแก้ปัญหาใหม่ ๆ จากปัญหาเก่า ๆ เพื่อให้เราใช้ชีวิตได้ง่ายขึ้นอะไรแบบนั้น มันก็จะไปตรงกับความหมายที่ 3 จากใน Dictionary ที่ยกมาด้านบน
แต่ Hacking จริง ๆ ที่เราจะพูดถึงในวันนี้ จะเป็นความหมายสุดท้ายเลย คือความหมายที่ไม่ดี โดยเป็นการ Hack เพื่อเป้าหมายอะไรบางอย่าง เช่น การทำให้ระบบใช้การไม่ได้ หรือขโมยข้อมูลต่าง ๆ เราจะเรียกพวกนี้ว่า Malicious intent
ก่อนที่เราจะมาตอบคำถามกันว่า เราจะรู้ได้อย่างไรว่าเราโดนแล้ว เราจะต้องมาเข้าใจกลไกการทำงานของอะไรพวกนี้กันก่อน เราจะได้ตามกลิ่นมันได้ ลองมาอ่านเรื่องเล่าของเรากัน
กาลครั้งหนึ่งนานมาแล้ว องค์กร G ได้ตามหาผู้รับเหมา ในการออกแบบ และ เขียนระบบสำหรับการเก็บข้อมูลพนักงานขึ้นมา โดยจะจ้างกับผู้ที่สามารถทำตาม Specification ที่กำหนดไว้ และ ให้ราคาถูกที่สุด บริษัท A ให้ราคาถูกที่สุด เลยทำให้ได้รับการว่าจ้าง ในระหว่างการพัฒนาเอง ก็ต้องเจออุปสรรค์ ทั้งในเรื่องของคนใน G เอง ปญอ เช่น พี่อยากเปลี่ยนแบบนิดนึงอะ (นิดนึงพร่องซ์ !) ไม่ก็ปัญหาในเชิง Technical ต่าง ๆ ที่เราเจอกันทุกวันอยู่แล้ว ก่อนที่โปรแกรมจะออกมา มันก็ต้องผ่านการทดสอบในหลาย ๆ เรื่อง แต่ใครจะรู้ละว่า Code หลายหมื่นบรรทัด มันจะมีข้อผิดพลาดเหลืออยู่มั้ย สิ่งที่ผู้พัฒนาทำได้คือ พยายามทดสอบในเคสครอบคลุมที่สุดเท่าที่จะทำได้ ในเวลาที่มีอยู่ ซึ่งแน่นอนว่า บริษัท A ก็มีทีมสำหรับการออกแบบและพัฒนาระบบจนออกมาใช้งานได้จริงในที่สุด
ที่อีกฝากนึง เป็นคนที่อยากจะรู้ข้อมูลความลับของ G (เรียกเขาว่า Z ละกัน) ทำให้เขาไปทำการสืบหาการทำงานของ G ว่า เขามีวิธีการทำงานอะไรอย่างไรบ้าง มีการใช้ Software อะไรบ้าง หรือมีใครที่สามารถเป็นช่องทางในการเข้าสู่ระบบได้หรือไม่ หาไปเรื่อย ๆ จนไปเจอว่า อ๋าาาาา โปรแกรมที่ A พัฒนาให้ล่าสุด มันมีช่องโหว่อะไรบางอย่าง เพื่อให้ Z สามารถเข้าไปล้วงข้อมูลได้
หลังจาก Z ได้รับรู้ถึงช่องทางสำหรับการเข้าถึงระบบที่ A ลืมไว้ Z ก็จะทำการเตรียมการเข้าสู่ระบบ โดยอาจจะเป็นการเตรียม Software อยู่ไม่กี่ตัว โดยจะเป็น Software ที่ใช้ช่องโหว่ที่ A ลืมไว้ เพื่อให้ Z สามารถเข้าสู่ระบบได้ และ Software อีกตัวสำหรับทำสิ่งที่ A ต้องการคือ การเข้าไปค้นหาข้อมูลในบริษัท G นั่นเอง
เมื่อ Element ในการจัดการมันครบแล้วไม่ว่าจะเป็น Software สำหรับการเข้าสู่ระบบ และ Software สำหรับค้นหา แล้วเอาข้อมูลออกมา เสร็จแล้ว Z ก็จะเริ่มทำงานรันโปรแกรมเหล่านั้น ถ้า Z เขียนโปรแกรมไม่ผิด Z ก็จะได้สิ่งที่ต้องการออกมาทันที เรื่องที่เราเล่ามานี่แหละ มันคือการทำ Hacking
มันเริ่มจาก Software หรือระบบบางอย่างมันมีช่องโหว่ โดยที่ช่องโหว่นี้ อาจจะใช้วิธีการบางอย่างเพื่อหามันมา เช่น การทำ Social Engineering และ Vulnerability Scanner ต่าง ๆ หลังจากนั้น ก็จะใช้ช่องโหว่ตรงนั้นแหละเป็นช่องทางในการเข้าถึง เราเรียกว่า Attack Vector โดยมีจุดประสงค์เพื่อให้เราสามารถเข้าถึงเป้าหมายได้ และทำการรันโปรแกรมที่ทำตามเป้าหมายของเรา หรือ Payload นั่นเอง ซึ่งมันมีหลายรูปแบบมาก ๆ เช่น เป็น Computer Virus ที่แพร่กระจายไปตามระบบในองค์กรได้ หรือจะเป็นการทำให้ระบบเป็นอัมพาต หรือจะเป็น Script เพื่อค้นหา และ Download หรือเปลี่ยนแปลงข้อมูลได้เป็นต้น
อ่านมาถึงตรงนี้ อาจจะนึงถึงหนังสายลับ ไม่ก็หนัง Hacker ที่โอ้ววว มันจะมีหน้าจออะไรไม่รู้ขึ้นเต็มไปหมด แต่เราจะบอกว่าพวกนี้มัน BULLSHIT!!!! ทั้งเพ ไม่ค่ะ ! พักเลยค่ะ ! พวกเราไม่มานั่งเขียน Interface อะไรไม่รู้เลอะเทอะ เอาเวลาไปนั่งพัฒนาพวกช่องโหว่ให้มันทำงานได้ชัวร์ ๆ ดีกว่า ดังนั้นจริง ๆ แล้วเวลาเราทำการ Hacking จริง ๆ เราก็จะเจอแค่หน้า Command Line ปกตินี่แหละ ไม่มีพวก GUI หรอกเสียเวลา และการ Hacking อาจจะใช้เวลาเพียงไม่กี่วินาทีเท่านั้น เพราะการโจมตีมันมีการเตรียมไว้หมดแล้ว จากการศึกษาเป้าหมายก่อนหน้า
คนที่มานั่งข้าง ๆ เราในร้านกาแฟ แล้วเดินออกไปอาจจะเป็นคนโจมตีก็ได้ อะไรแบบนั้น มันไม่ได้ต้องมี Hardware มี Computer เป็นคันรถ อาจจะอยู่ในรูปแบบแค่โทรศัพท์เครื่องเดียว หรืออุปกรณ์ IoT ขนาดเล็กนิดเดียว แล้วเสียบไว้ก็เป็นไปได้เหมือนกัน
เอาหละมาถึงคำถามที่น่าสนใจมาก ๆ แล้วว่า ถ้าเราโดนแล้ว เราจะรู้ได้อย่างไรว่า เราโดน เพราะมันก็จะมีเคสที่ Hacker ก็ไม่ได้เดินมาสะกิดเราแล้วบอกว่า อ่อ ชั้นเองแหละ ที่กำลัง Hack แกอยู่เจ้าโง่อะไรแบบนั้นแน่ ๆ เขาจะให้แกแจ้งจับทำไมละเนอะ แล้วมันจะมีวิธีไหนบ้างมั้ยนะที่เราจะตรวจสอบได้
เริ่มจากพื้นฐานที่สุดกันก่อนว่า เวลาโปรแกรมจะทำงานในระบบสมัยใหม่ได้ โดยเฉพาะระบบที่มีใช้พวก Operating System ทั้งหลาย มันจะต้องทำงานเป็นสิ่งที่เรียกว่า Process โดยในเครื่องของเรา ก็อาจจะมี Process ทำงานอยู่เยอะมาก ๆ หลายร้อย Process เลย ซึ่งมันจะแบ่งออกเป็น 2 ส่วนใหญ่ ๆ คือ System Process และ User Process ตามชื่อเลย System Process เป็น Process ที่ระบบของเราเปิดใช้งาน เพื่อทำอะไรบางอย่างเช่น การ Backup ระบบของเรา หรือเป็นการแสดงหน้าต่างออกมาให้เราเห็นเป็นต้น และ User Process คือ Process ที่ เรา ซึ่งเป็น User เปิดขึ้นมาใช้งานเอง เช่น Web Browser ที่ทุกคนกำลังเปิดอยู่ตอนนี้ก็จะถือว่าเป็น Process นึงในเครื่องของเราเอง
โดยเราสามารถตรวจสอบได้ว่า ในระบบของเรามี Process อะไรอยู่บ้าง ถ้าเป็นใน macOS เราสามารถเปิดสิ่งที่เรียกว่า Activity Monitor ขึ้นมา เราไม่ต้องลงเพิ่มนะ มันมากับเครื่องเราอยู่แล้ว หรือถ้าเป็น Windows เราสามารถเปิด Task Manager ขึ้นมาได้ โดยที่ช่องที่เราอยากจะให้โฟกัส คือ Process Name, % CPU และ User
ทีนี้แหละ เราจะเห็น Process ที่กำลังทำงานอยู่เยอะมาก ๆ อย่างในเครื่องเรา ณ ตอนที่เขียนมีทั้งหมด 717 Process ทำงานอยู่ในเครื่องเรา แล้วเราจะรู้ได้อย่างไรว่า ใน 717 นี้มันมี Process ที่น่าสงสัยอยู่มั้ย บอกเลยว่า เป็นเรื่องที่แอบยากอยู่ แต่เราจะมาแนะนำวิธีการ Spot พวกนี้ง่าย ๆ เริ่มจากดูที่ % CPU ดูก่อนเลยว่า มีอันไหนที่มันมีตัวเลขสูง ๆ แล้ว User มันเป็นชื่อเรา และ Process Name ที่เราไม่ได้เปิด หรือไม่รู้จักหรือไม่ ถ้าใช่ให้ตีไว้ก่อนเลยว่า ฮั่นแน่ !!! สิ่งที่เราทำได้คือ เราสั่งให้ OS ของเรามันตัดการทำงานของ Process นั้นทันที
ถ้าเป็นใน Activity Monitor เราสามารถกดที่ชื่อ Process ที่สงสัย แล้วกดปุ่ม กากาบาท ได้เลย มันก็จะทำการปิด Process นั้นออกไปได้เลย
แน่นอนว่าคนที่สร้างการโจมตี เขาก็ไม่ได้โง่หรอก ถ้าเราปิดแล้ว แล้วมันจะจบน่ะ มันง่ายไป !! สิ่งที่พวกนี้ทำ อาจจะมีการไปสั่งให้ระบบมันเปิดโปรแกรมนั้นขึ้นมาอีกครั้งหลังจากที่เราทำการ Restart หรือเปิดเครื่องอีกครั้งก็ได้ เราจะต้องเข้าไปตามหาของพวกนี้กัน ใน macOS เอง บอกเลยว่า มันมีหลายจุดมาก ๆ และปวดหัวมาก ๆ เราเลยแนะนำให้ใช้ Tool อย่าง CleanMyMac ที่เขาจะมีส่วนของการจัดการ Launch Agents โดยเราสามารถเข้าไปปิดการทำงาน หรือ ถ้าเราเจออะไรที่มันไม่น่าใช่ เราก็สามารถลบได้เลย ง่ายมาก ๆ
พูดตรง ๆ เลยคือ การโจมตี มันเป็นเหมือนเล่นแมวจบหนู คือ การโจมตีใหม่ ๆ มันออกมาทุกวัน มาเรื่อย ๆ ช่องโหว่ มันมาเรื่อย ๆ มันก็มีผู้ที่ไม่ประสงค์ดีเอาของพวกนี้มาใช้งานกันทุกวัน คนที่สร้างโปรแกรมออกมา เมื่อเจอช่องโหว่ เขาก็จะทำการ Patch โปรแกรมของเขา เพื่อปิดช่องโหว่ตรงนั้นออกไป มันก็จะวนไปแบบนี้เรื่อย ๆ ทำให้สิ่งที่เราทำได้ดีที่สุดคือ การปิดช่องโหว่ที่มีอยู่แล้วให้ดีที่สุดนั่นเอง
หนึ่งในวิธีในการปิดช่องโหว่อย่างที่เราบอกคือ ผู้พัฒนาโปรแกรม เขาก็จะต้องมีการออก Patch หรือ Update ออกมาเพื่อปิดช่องโหว่ สิ่งที่เราทำได้คือ การ Update ระบบ และ Software ต่าง ๆ ที่เราใช้งานให้เป็นตัวล่าสุดอย่างสม่ำเสมอ
และอีกส่วนคือการ อ่าน ก่อน กด เสมอ อ่านให้ดี ๆ เพราะเอาเข้าจริงแล้ว ถึงระบบจะออกมาดีแค่ไหน มันก็จะพ่ายแพ้ต่อสิ่งที่เรียกว่า User หรือผู้ใช้ อย่างแน่นอน เพราะถึงระบบจะเตือนเก่งแค่ไหน เตือนดี เตือนได้ แต่ถ้า User บอกว่า ก็ชั้นจะเอา แล้วจะทำไม ระบบป้องกัน ก็ต้องปล่อยไป แล้วเกิดเรื่องจนได้ ดังนั้น ก่อนที่เราจะกดอะไร อยากให้เราอาจสิ่งที่อยู่บนหน้าจอให้ละเอียด และเช็คหน่อยว่า เอ๊ะ มันแปลก ๆ นะ ถ้าเรารู้สึกว่ามันแปลก ๆ ก็อย่าไปกดมัน เพราะเราจะบอกเลยว่า การโจมตีส่วนใหญ่ เกิดจาก User Error ทั้งนั้น ดังนั้น ก็ใช้ระบบอย่างมีสติ และ รอบคอบเสมอ
ถ้าเราไปอ่านจากคนอื่น อาจจะไม่พูดตรงขนาดนี้นะ สำหรับเรา เวลาเราจะทำการ Hacking เราจะคิดว่า เราเป็นผู้ใช้ และ ผู้พัฒนาระบบ ว่าเขาน่าจะทำอะไรกับระบบบ้าง เพราะเราเชื่อว่าคณิตศาสตร์ และ Logic ไม่เคยโกหกเรา คนที่ทำให้มันผิดได้ก็มีแค่คนเท่านั้นแหละ ถ้าเรารู้ว่าคนที่สร้าง และ คนใช้ คิดอย่างไร เราก็อาจจะเดาได้ว่า เขาน่าจะลืม หรือ ชอบทำอะไร ทั้งในเชิงของขั้นตอนการทำงาน และ จิตวิทยา นั่นแหละ เป็นวิธีที่เราใช้ในการโจมตีเป้าหมาย ในด้านกลับกัน เลยทำให้เราเป็นคนที่ให้ความสำคัญกับการป้องกัน User Error มาก ๆ ถึงมากที่สุด (ชั้นไม่ได้ไป Hack ใครมั่ว ๆ หนา....... ได้รับอนุญาติแล้วทั้งหมดเด้อ อย่าเข้าใจผิดกัน)
การ Hack ที่เราเขียนออกมาในวันนี้เป็นการมุ่งเป้าในเจตนาที่ไม่ดี เช่น การมุ่งเป้าไปที่การทำให้ระบบเป็นอัมพาต และ การขโมยข้อมูลเป็นต้น ซึ่งถ้าเราไม่ได้รับอนุญาติจากเจ้าของ Software และ ระบบต่าง ๆ ก็ถือว่าเป็นเรื่องผิดกฏหมายนะจ๊ะ ซึ่งเราจะรู้ได้ว่า เราโดนแล้ว ก็จากการที่มันมีร่องรอยอะไรบางอย่าง เบื้องต้นที่เราเอามาเล่าในวันนี้ก็จะเป็นการดูจาก Process การทำงานในเครื่องที่น่าสงสัยต่าง ๆ เราก็สามารถปิดการทำงาน และ เอามันออกไปได้ นั่นเอง แต่จริง ๆ แล้วมันก็จะมีการโจมตีอีกหลาย ๆ ประเภทเลย บ้างก็แนบเนียนหายากมาก ๆ ยังกะเซียนเล่นซ่อนหาเลยก็มี บางประเภทออกมาบอกเลยว่า ชั้นเองแหละ ก็มีเหมือนกัน ซึ่งมันก็จะใช้วิธีที่แตกต่างกันออกไป แต่เหนือสิ่งอื่นใด เพื่อป้องกันตั้งแต่ต้น เราสามารถที่จะ Update ระบบและ Software ของเราให้เป็น Version ล่าสุดเสมอ และ ใช้สติในการใช้งานด้วย เท่านี้ เราก็จะปลอดภัยมากขึ้นได้แล้ว ~
เคยสงสัยกันมั้ยว่า Filter ที่เราใช้เบลอภาพ ไม่ว่าจะเพื่อความสวยงาม หรืออะไรก็ตาม แท้จริงแล้ว มันทำงานอย่างไร วันนี้เราจะพาไปดูคณิตศาสตร์และเทคนิคเบื้องหลังกันว่า กว่าที่รูปภาพจะถูกเบลอได้ มันเกิดจากอะไร...
หลังจากดูงาน Google I/O 2024 ที่ผ่านมา เรามาสะดุดเรื่องของการใส่ Watermark ลงไปใน Content ที่ Generate จาก AI วันนี้เราจะมาเล่าให้อ่านกันว่า วิธีการทำ Watermark ใน Content ทำอย่างไร...
ก่อนหน้านี้เราทำ Content เล่าความแตกต่างระหว่าง CPU, GPU และ NPU ทำให้เราเกิดคำถามขึ้นมาว่า เอาเข้าจริง เราจำเป็นต้องมี NPU อยู่ในตลาดจริง ๆ รึเปล่า หรือมันอาจจะเป็นแค่ Hardware ตัวนึงที่เข้ามาแล้วก็จากไปเท่านั้น วันนี้เราจะมาเล่าให้อ่านกัน...
บทความนี้ เราเขียนสำหรับมือใหม่ หรือคนที่ไม่ได้เรียนด้านนี้แต่อยากรู้ละกัน สำหรับวันนี้เรามาพูดถึงคำที่ถ้าเราทำงานกับพวก Developer เขาคุยกันบ่อย ๆ ใช้งานกันเยอะ ๆ อย่าง Database กันว่า มันคืออะไร ทำไมเราต้องใช้ และ เราจะมีตัวเลือกอะไรในการใช้งานบ้าง...