Security
Penetration Testing หรือที่เรียกกันติดปากว่า "Pentest" มันก็คือการจำลองการโจมตีระบบของเรานี่แหละ สมัยผมทำร้านเน็ต SiamCafe เนี่ย โดนแฮ็กบ่อยมาก (หัวเราะ) เพราะสมัยนั้นความรู้เรื่อง Security มันไม่ได้แพร่หลายเหมือนสมัยนี้ Pentest เลยเป็นเหมือนหมอที่คอยตรวจสุขภาพระบบเรา หาจุดอ่อนก่อนที่แฮกเกอร์ตัวจริงจะมาเจอ
ทำไมมันถึงสำคัญน่ะเหรอ? ลองนึกภาพว่าร้านเน็ตเราโดนแฮ็ก ข้อมูลลูกค้าหายหมด เกมที่ลงไว้หายเกลี้ยง ลูกค้าก็หายตามไปด้วย เสียหายทั้งเงิน ทั้งชื่อเสียง Pentest ช่วยป้องกันไม่ให้เรื่องแบบนี้เกิดขึ้นได้ไงล่ะ
Pentest ไม่ใช่แค่การสแกนหาช่องโหว่แบบ automated tools นะ มันคือการใช้ "สมอง" ของคนจริงๆ นี่แหละ คิด วิเคราะห์ วางแผนเหมือนแฮกเกอร์จริงๆ ทำ เพื่อหาทางเจาะระบบให้ได้ แล้วเอาผลที่ได้มาปรับปรุงแก้ไข
การทำ Pentest มันมีหลายขั้นตอนนะ ไม่ใช่ว่าอยู่ดีๆ ก็ยิงๆๆ ใส่ระบบเลยไม่ได้ เดี๋ยวระบบพัง (หัวเราะ) มันต้องมีแผน มีขั้นตอนชัดเจน
ขั้นตอนนี้สำคัญมาก เหมือนเราวางแผนก่อนไปตีบ้านคนอื่น (แต่ในทางที่ดีนะ) ต้องรู้ก่อนว่าบ้านหลังนี้มีอะไรบ้าง ประตูอยู่ตรงไหน หน้าต่างมีกี่บาน มีคนเฝ้าอยู่กี่คน
ตัวอย่างการสืบข้อมูล:
# ตัวอย่างการใช้ nmap สแกน port
nmap -p 1-1000 target.com
หลังจากสืบข้อมูลมาแล้ว ก็ถึงเวลาสแกนหาช่องโหว่แบบละเอียดขึ้น ขั้นตอนนี้เราจะใช้ tools ต่างๆ มาช่วย เช่น Nessus, OpenVAS, Nikto
ตัวอย่างการใช้ Nikto สแกน web server:
nikto -h target.com
ขั้นตอนนี้คือการพยายามเจาะระบบจริงๆ โดยใช้ช่องโหว่ที่เราเจอมา อาจจะใช้ exploit code, brute-force attack, หรือ social engineering
สมัยผมทำร้านเน็ต เคยเจอเคสที่ลูกค้าโดน social engineering หลอกเอา password ไป แล้วเอาไป hack เกม online (ขำ) เรื่องแบบนี้ก็เกิดขึ้นได้
# ตัวอย่าง exploit code (อย่าเอาไปใช้ในทางที่ผิดนะ!)
# Vulnerability: Unauthenticated Remote Code Execution
# Software: Older version of some web application
# Code snippet is for demonstration purposes only.
หลังจากเจาะระบบได้แล้ว เราต้องรักษาสิทธิ์การเข้าถึงไว้ เพื่อที่จะสามารถเข้าไปดูข้อมูล หรือทำอะไรต่างๆ ได้ อาจจะติดตั้ง backdoor, rootkit, หรือสร้าง user account ใหม่
หลังจาก Pentest เสร็จแล้ว เราต้องวิเคราะห์ผลที่ได้ ทำรายงานสรุปว่าเจาะระบบได้ยังไง เจอช่องโหว่อะไรบ้าง ช่องโหว่นั้นร้ายแรงแค่ไหน แล้วต้องแก้ไขยังไงบ้าง
รายงาน Pentest ที่ดี ต้อง:
หลายคนอาจจะสับสนระหว่าง Pentest กับ Vulnerability Assessment สรุปง่ายๆ คือ Vulnerability Assessment คือการสแกนหาช่องโหว่ ส่วน Pentest คือการพยายามเจาะระบบจริงๆ เพื่อดูว่าช่องโหว่นั้นร้ายแรงแค่ไหน
| Feature | Vulnerability Assessment | Penetration Testing |
|---|---|---|
| Scope | Identification of vulnerabilities | Exploitation of vulnerabilities |
| Methodology | Automated scanning tools | Manual testing and exploitation |
| Objective | Identify potential weaknesses | Simulate real-world attacks |
| Outcome | List of vulnerabilities | Report on exploitability and impact |
| Cost | Lower | Higher |
ถ้าอยากรู้เรื่อง Security เพิ่มเติม ลองไปอ่านบทความอื่นๆ ใน SiamCafe Blog ได้เลยนะ
สมัยผมทำร้านเน็ต SiamCafe เนี่ย ผมให้ความสำคัญกับ Security มาก เพราะมันคือความรับผิดชอบที่เรามีต่อลูกค้า ถ้าเราไม่ดูแลข้อมูลลูกค้าให้ดี ลูกค้าก็จะไม่เชื่อใจเรา
สุดท้ายนี้ อยากฝากไว้ว่า Security ไม่ใช่เรื่องที่ต้องทำแค่ครั้งเดียวแล้วจบ มันคือ process ที่ต้องทำอย่างต่อเนื่อง ต้องคอย update ความรู้ใหม่ๆ อยู่เสมอ เพราะแฮกเกอร์เขาก็พัฒนาตัวเองอยู่ตลอดเวลาเหมือนกัน
อ่านบทความอื่นๆ ที่น่าสนใจได้ที่ SiamCafe Blog
สมัยผมทำร้านเน็ตฯ สิ่งที่สำคัญที่สุดคือ "กันไว้ดีกว่าแก้" ครับ การทำ Penetration Testing ก็เหมือนกัน ต้องทำก่อนที่จะโดนแฮกจริงๆ ไม่ใช่รอให้โดนแล้วค่อยมาตามแก้
ก่อนจะเริ่ม Penetration Testing ต้องคุยกับทีมพัฒนาให้เข้าใจตรงกันก่อน ว่าเราจะทดสอบอะไรบ้าง ขอบเขตแค่ไหน จะทดสอบถึง production environment เลยไหม? ต้องชัดเจนครับ ไม่งั้นเดี๋ยวไปกระทบระบบลูกค้า
เครื่องมือ Penetration Testing มีเยอะแยะมากมาย แต่ละตัวก็มีข้อดีข้อเสียต่างกันไป ศึกษาให้ดีก่อนใช้ เลือกเครื่องมือที่เหมาะกับระบบของเรา และอย่าลืม update เครื่องมือให้เป็น version ล่าสุดเสมอ
# ตัวอย่างการใช้ Nmap สแกนพอร์ต
nmap -p 1-65535 target_ip
หลังจากทำ Penetration Testing เสร็จแล้ว สิ่งที่สำคัญที่สุดคือการทำ Report สรุปผลการทดสอบ บอกว่าเจอปัญหาอะไรบ้าง มีช่องโหว่อะไรบ้าง และต้องแนะนำวิธีการแก้ไขด้วย Report ที่ดีจะช่วยให้ทีมพัฒนาแก้ไขปัญหาได้ตรงจุด
ระบบของเรามีการเปลี่ยนแปลงอยู่ตลอดเวลา ดังนั้น Penetration Testing ไม่ควรทำแค่ครั้งเดียว ควรทำเป็นประจำ เช่น ทุกๆ 3 เดือน หรือ 6 เดือน เพื่อให้มั่นใจว่าระบบของเราปลอดภัยอยู่เสมอ
iCafeForexจำเป็นครับ! ไม่ว่าธุรกิจจะเล็กหรือใหญ่ ก็มีความเสี่ยงที่จะโดนแฮกทั้งนั้น สมัยนี้แฮกเกอร์ไม่ได้สนใจว่าเราจะเป็นใคร เขาจะสุ่มโจมตีไปเรื่อยๆ ถ้าเจาะได้ก็เอาข้อมูลไปขาย หรือเรียกค่าไถ่
Vulnerability Assessment คือการสแกนหาช่องโหว่ แต่ Penetration Testing คือการ "เจาะ" เข้าไปในระบบจริงๆ เพื่อพิสูจน์ว่าช่องโหว่นั้นใช้งานได้จริง และส่งผลกระทบอะไรบ้าง พูดง่ายๆ คือ Vulnerability Assessment คือการ "หา" ส่วน Penetration Testing คือการ "ลอง" ครับ
ถ้าให้ดีก็ควรมีความรู้พื้นฐานด้าน Programming บ้างครับ อย่างน้อยก็ควรรู้จักภาษา HTML, JavaScript, SQL เพราะช่องโหว่ส่วนใหญ่มักจะมาจากการเขียนโปรแกรมที่ไม่รัดกุม
ขึ้นอยู่กับขนาดและความซับซ้อนของระบบครับ บางระบบอาจจะใช้เวลาแค่ 1-2 วัน บางระบบอาจจะใช้เวลาเป็นสัปดาห์ หรือเป็นเดือน
SiamCafe BlogPenetration Testing คือกระบวนการที่สำคัญในการรักษาความปลอดภัยของระบบ IT ของเรา การทำ Penetration Testing อย่างสม่ำเสมอ จะช่วยให้เราค้นพบช่องโหว่ และแก้ไขก่อนที่แฮกเกอร์จะเข้ามาโจมตีได้
อย่าลืมว่า "ความปลอดภัย" ไม่ใช่เรื่องที่ทำครั้งเดียวแล้วจบ ต้องทำต่อเนื่อง และปรับปรุงอยู่เสมอครับ