วันอังคารที่ 22 มีนาคม พ.ศ. 2559

Introduction to Ethical Hacking

Introduction to Ethical Hacking
เป็นหลักสูตรสำหรับผู้ที่มีพื้นฐาน network และต้องการ
เสริมความรู้ด้านการตรวจสอบความปลอดภัยระบบด้วยตนเอง ซึ่งหลักสูตรจะทบทวนพื้นฐาน
network เบื้องต้น และทักษะด้านการทำ penetration testing ใน step แรกๆ ให้ เพื่อให้
ผู้เรียนได้เข้าใจภาพรวมของการตรวจสอบความปลอดภัยให้กับระบบ network และสามารถหาช่อง
โหว่ของระบบ network เองได้
พื้นฐานเกี่ยวกับด้านความปลอดภัย (Main Focus Of Security)
  • ความปลอดภัยทางด้านกายภาพ
  • ความปลอดภัยทางด้านการทำงาน
  • ความปลอดภัยทางด้านการจัดการ
ปัจจัยสำคัญของความปลอดภัย (Triangle Of Security)
  • ความลับ (Confidentiality)
  • ความถูกต้อง (Integrity)
  • ความพร้อมใช้ (Availability)
เป้าหมายของความปลอดภัย (Goal Of Security)
  • การป้องกัน (Prevention)
  • การตรวจจับ (Detection)
  • การตอบโต้ (Response)
เป้าหมายของการโจมตี (Goal Of Hacking)
  • การเข้าถึง (Access Attack)
  • การแก้ไขข้อมูล (Modification And Repudiation)
  • การหยุดการให้บริการ (Denial Of Services)
ชนิดการโจมตีที่เป็นที่รู้จัก (Recognizing Common Attacks)
  • การทำการสร้าง backdoor (Backdoor Attack)
  • การปลอมแปลง (Spoofing Attack)
  • การส่งซ้ำ (Replay Attack)
  • การดักจับข้อมูล (Sniffing Attack)
  • การโจมตีช่องโหว่ของซอฟร์แวร์ (Software Exploitation)
  • การทายรหัสผ่าน (Password-Guesting Attack)
การทดสอบเจาะระบบ (Phrase Of Penetration Testing)
  • การหาข้อมูลเป้าหมาย (Reconnaissance & Footprinting)
  • การค้นหาข้อมูล service ของระบบ (Port & Network Scanning)
  • การค้นหาช่องโหว่ของระบบ (Vulnerability Scanning)
  • การโจมตีช่องโหว่ของระบบ (Exploitation)
การสอดส่องและการค้นหาแบบร่างของระบบ(Reconnaissance & Footprinting)
  • การค้นหาข้อมูลจาก search engine
  • การค้นหาข้อมูลจาก social network
  • การใช้ข้อมูลจากประกาศสมัครงาน
  • การค้นหาข้อมูลจาก whois
  • การค้นหาข้อมูลจาก DNS
การตรวจสอบค้นหา (Scanning)
  • การตรวจสอบค้นหา Port (Port Scanning)
  • การตรวจสอบค้นหาระบบเครือข่าย (Network Scanning)
  • การตรวจสอบช่องโหว่ (Vulnerability Scanning)
การตรวจสอบค้นหาในรูปแบบต่างๆแบบเจาะลึก
  • TCP Connection Scanning
  • SYN Scanning
  • UDP Scanning
  • Version Scanning
  • Vulnerability Scanning
  • Vulnerability Discovery
การโจมตีช่องโหว่เบื้องต้น (Exploitation)
  • Metasploit
  • Public Exploit
การถอดรหัส(Password Cracking)
  • Password Guessing
  • Password Cracking
  • Brute-force Attack
  • Dictionary Attack
  • Pre-computed Attack
เครื่องมือที่ท่านจะได้ทดลองใช้
  • เครื่องมือ kali linux OS
  • เครื่องมือการสอดส่อง (Reconnaissance & Footprinting)
  • เครื่องมือการตรวจสอบค้นหา (Scanning)
  • เครื่องมือการถอดรหัส (Password Cracking)
  • เครื่องมือการดักจับข้อมูล (Sniffing)
  • เครื่องมือการดักข้อมูลตรงกลางระหว่าง Client & Server (Man-In-The-Middle)
  • เครื่องมือการทำ Social Engineering

วันอังคารที่ 1 มีนาคม พ.ศ. 2559

Buffer Overflow Attacks

Buffer Overflow Attacks

ผู้เขียน/โดย : เกริก ภิรมย์โสภา (Krerk Piromsopa)
เขียนเมื่อ/ปรับปรุง : 2007-11-24 15:47:24
เนื้อหาในส่วนนี้ รวบรวมขึ้นเพื่อประกอบความเข้าใจเรื่อง Buffer Overflow และ
Buffer-Overflow Attacks เริ่มต้นด้วยความหมายของ Buffer-Overflow จากนั้นเราจะวิเคราะห์ต่อไปว่าปัญหาง่ายๆ
นี้ นำไปสู่ความเสียหายอื่นๆ อันเป็นพื้นฐานของ Computer Viruses หรือ Computer
Worms ได้อย่างไร จากนั้นเราจะวิเคราะห์ปัญหา และลองศึกษาวิธีการป้องกันดู นอกจาก
Buffer-Overflow แล้ว ยังมีปัญหาอื่นๆ คล้ายคลังกันเช่น Integer Overflow หรือ
การใช้ printf ในภาษา C แบบไม่ถูกวิธี อย่างไรก็ตามเราจะไม่กล่าวถึงรายละเอียดปัญหาย่อยๆ
ที่คล้ายคลังกันในที่นี้ เมื่ออ่านจบเนื้อหาในหน้านี้แล้วผู้เขียนหวังเป็นอย่างยิ่งว่า
ผู้อ่านจะมีความเข้าใจในเรื่อง Buffer-Overflow และพัฒนา skill ในการเขียนโปรแกรมมากขึ้น

Buffer Overflow คืออะไร

หลายคนพยายามนิยามหรือให้ความหมายอย่างเป็นทางการของ Buffer Overflow จากการรวบรวมข้อมูลจากหลายๆ
แห่ง แล้ว สรุปใจความได้สั้นๆ ว่า
Buffer Overflow
เกิดขี้นเมื่อมีการเขียน(อ้างอิง)ข้อมูลเกินขอบเขตที่กำหนด
ผลที่เกิดขึ้นคือข้อมูลที่เขียนล้นเข้าไปทับข้อมูลอื่นที่อยู่ในระบบ
ผลที่ตามมาจากการ Overflow ดังกล่าวอาจจะเป็นไปได้ตั้งแต่ทำให้โปรแกรมประมวลผลข้อมูลผิดพลาด,
Segmentation False หรืออาจจะร้ายแรงถึง เปลี่ยนการทำงานของระบบให้ประมวลผล Code
ใดๆ ก็ได้ตามที่ Attackers ต้องการ

Buffer-Overflow Attacks สร้างความเสียหายอะไรได้บ้าง

เพื่อความสะดวกในการอธิบาย จะขอยกตัวอย่างประกอบนะที่นี้โดยเริ่มจากตัวอย่างแบบง่าย
ไปจนถึงการ Attack ที่ซับซ้อนยิ่งขึ้น โดยเริ่มต้นที่ตัวอย่าง Buffer Overflow
แบบง่ายๆ ก่อน แล้วค่อยๆ ยากขึ้นไปจนถึง Buffer-Overflow Attacks ที่ซัพซ้อน (สามารถผ่านระบบป้องกัน
Buffer Overflow บน Software ที่ใช้กันทั่วไป)

ตัวอย่างที่ 1 Buffer-Overflow Attacks แบบเบื้องต้น

ในตัวอย่างแรกนี้ (รูปที่ 1) เป็นตัวอย่างโปรแกรมภาษา C ง่ายๆ ที่เมื่อถูก Overflow
จะทำให้การทำงานบางอย่างผิดไป ในที่นี้ คือตัวแปร age ซึ่งเป็นตัวแปรเก็บตัวเลขจะถูก
Overflow จนค่าที่ได้เปลี่ยนไป ดังในตัวอย่างจะพบว่าอายุเปลี่ยนจาก 15 เป็น 49
(ทั้งที่ไม่ได้ทำการกำหนดค่าตัวแปร age เป็น 49)
#include int main(char argc,char *argv[]) { int age;
char name[8];
char tmp[20];
printf(“Enter your age:”);
gets(tmp);
age=atoi(tmp);
printf(“Enter your name:”);
gets(name); /* 1 */
printf(“———– “);
printf(“%s is %d years old
” ,name,age);
}

$./a.out


Enter your age:15

Enter your name: Krerk.P01

-----------

Krerk.P01 is 49 years old
รูปที่ 1 ตัวอย่าง Buffer-Overflow Attack แบบเบื้องต้น
**** ค่าที่ได้อาจจะแตกต่างกันไป ขึ้นอยู่กับ Processor, ระบบปฏิบัติการ และ ตัว
compiler *****
สิ่งที่เกิดขึ้นคือ คำสั่ง gets(name) (1) ซึ่งรับข้อมูล input ที่มีขนาด 10
ตัว (9 ตัวอักษร “Krerk.P01″ และ 1 terminator) มาเก็บไว้ในตัวแปร name แต่ตัวแปร
name นั้นมีขนาดเพียง 8 ตัวอักษร ทำให้ข้อมูลที่ได้มาเกิด Overflow ไปทับ age ผลที่ตามมาคือตัวแปร
age ซึ่งเดิมเก็บตัวเลข 15 ถูกเปลี่ยนเป็นเก็บตัวอักษร ‘1’ แทน เมื่อ age
ถูกอ้างอิงอีกครั้ง ตัวอักษร ‘1’ จึงถูกอ้างอิงเป็นตัวเลขซึ่งมีค่าเป็น
49 (ในที่นี้ถือตามมาตรฐานรหัส ASCII)

ตัวอย่างที่ 2 Stack Smashing

ในตัวอย่างนี้ จะเป็นทำงานที่ซับซ้อนยิ่งขึ้น โดยก่อนอื่นผู้อ่านจะต้องทำความเข้าใจเรื่องของ
Stack Frame นิดนึงก่อน ทุกครั้งที่โปรแกรมมีการเรียก sub routine ค่า parameters
และ ตำแหน่งการทำงานปัจจุบัน (Return Address) จะถูกเก็บไว้ที่ข้อมูลชั่วคราวคือ
Stack (memory เฉพาะ) หาก sub routine นั้นๆ มีตัวแปรที่เป็น local variable โปรแกรมก็จะจองเนื้อที่บน
Stack เพื่อใช้สำหรับเก็บตัวแปรดังกล่าว การทำงานลักษณะนี้ ทำให้โปรแกรมสามารถอ้างอิง
scope ของ variable ได้ (local variables อ้างอิงจาก stack frame ปัจจุบันเสมอ)
ในรูปที่ 2 ตัว function func ประกอบไปด้วยตัวแปร i, f, ptr, และ
buffer โดยในที่นี้ f เป็น function pointer (สำหรับผู้ที่ไม่คุ้นเคย
funtion pointer เป็น pointer ที่ใช้สำหรับการ dynamic bind ตัวแปร f
ให้เป็น funtion ใดๆ ก็ได้ ในตัวอย่างนี้ เรา bind f ให้เป็น printf) และ
ptr เป็น pointer ทั่วไป และ buffer เป็น array of characters ธรรมดา
เมื่อ func ถูกเรียกใช้งาน ระบบจะทำการสร้าง stack frame
ขึ้นเพื่อจำค่าตำแหน่งปัจจุบัน (ก่อนจะ call subroutine)
ที่โปรแกรมจะต้องกลับมาทำงานต่อ เมื่อเข้ามาสู่โปรแกรม ตัว subroutine
จะบันทึกค่า frame pointer funtion เดิม และจองเนื้อที่สำหรับ local
variables ดังแสดงได้ในด้านขวาของรูปที่ 2
เมื่อวิเคราะห์โปรแกรมดังกล่าว จะพบว่า หากเกิด overflow ที่ตัวแปร
buffer ค่าต่างๆ (อาทิ ptr, f , x, frame pointer, return address)
สามารถถูกเปลี่ยนเป็นค่าใดๆ ก็ได้ เมื่อมี input ที่เหมาะสม
Buffer-overflow attack แบบแรกๆ ที่พบมักจะแทรก code ที่ต้องการให้โปรแกรม
run ลงในตอนต้นของ buffer จากนั้นก็เขียน address ของ buffer
ดังกล่าวต่อท้ายไป ผลที่ได้คือ address ทั้งหลายจะถูกชี้กลับมาที่ buffer
ซึ่งมี code ที่ hacker ต้องการอยู่ เมื่อ address ดังกล่าวถูกอ้างอิง
code เหล่านี้ก็จะถูกประมวลผลโดยปริยาย buffer-overflow attack
ในลักษณะนี้ บางครั้งนิยมเรียกว่า stack smashing
เนื่องจากข้อมูลขนาดใหญ่ถูกปะลงบนเนื้อที่ Stack อย่างไรก็ตาม
บางคนจึงคิดว่าหากเราทำให้ stack ไม่สามารถ execute ได้ (เช่น AMD
non-executable area — NX หรือ patch ที่ Linux kernel บางอัน)
น่าจะสามารถหยุด buffer-overflow attack ได้
int func(char **argv) { int x; int (*f) (const char *, ...);
char *ptr;

char buffer[30];

ptr=buffer;
f=& printf;
f("ptr %p - before ",ptr);
strcpy(ptr,argv[1]);
f(“ptr %p – after “,ptr);
strcpy(ptr,argv[2]);
}
return address
frame pointer
x
f
ptr
buffer
& buffer
& buffer
& buffer
& buffer
& buffer
Malicious Code
รูปที่ 2 ตัวอย่าง Buffer overflow แบบซับซ้อนยิ่งขึ้น
ในความเป็นจริง การ injected code มิใช่สิ่งสำคัญ เพราะหากเราทราบว่ามี
code ที่เราต้องการให้โปรแกรมประมวลผล อยู่ที่ตำแหน่งอันใดอันหนึ่งใน
memory (เช่น code จาก share library หรือตัว code ของโปรแกรมเอง)
เราก็เพียงเปลี่ยนตำแหน่งของ pointers และ addresses ต่างๆ ให้ชี้ไปยัง
code ส่วนนั้น การ attack ในลักษณะนี้ บางคนเรียกว่า arc injection

ตัวอย่างที่ 3 Multi-stage attacks

ในหลายๆ กรณี buffer-overflow attacks จะเกิดขี้นจากการ overflow
หลายครั้งต่อกัน โดยทั่วไปการ overflow ครั้งแรกจะทำให้เกิด pointer
ชี้ไปยังที่ใดก็ได้ในตัวโปรแกรมนั้นๆ และการ overflow
อีกครั้งนึงจะเปลี่ยนค่าที่ pointer ชี้อยู่เป็นค่าที่ต้องการ
ตัวอย่างการ attack ที่พบเช่น Apache mod_SSL SLAPPER Worm ซึ่งการ
overflow ครั้งแรก ช่วยให้เกิด pointer ชี้ไปยัง global offset table
(jump table ที่ใช้อ้างอิงตัวโปรแกรมหลักกับ share library) ของ funtion
free จากนั้น การ overflow ครั้งที่ 2 จะเปลี่ยน entry ดังกล่าวให้มา run
remote shell
ลองพิจารณาโปรแกรมในตัวอย่างที่ 2 อีกครั้งหนึ่ง เราจะพบว่ามี strcpy 2
ครั้ง ในกรณีของ Multi-stage attacks นี้ strcpy ครั้งแรก จะoverflow ตัว
pointer ptr ให้ชี้ไปยังที่ใดก็ได้ของโปรแกรม สุมมุติว่าชี้ไปที่ jump
table ของ printf เมื่อมี strcpy ครั้งที่ 2 เราก็สามารถจะเขียนค่าใดๆ
ก็ได้ที่ entry นั้น ผลที่เกิดขึ้นก็คือ เมื่อเรียก printf ครั้งต่อไป
ตัวโปรมก็จะไปเรียกทำงานค่าที่ระบุแทนโปรแกรม printf ที่อ้างอิงกับ library
นักวิจัยหลายคนเสนอแนวทางการป้องกัน global offset table
โดยให้ทำส่วนดังกล่าวเป็น read only หลังจากที่ได้มีตัวค่าโดย loader
เรียบร้อยแล้ว อย่างไรก็การป้องกันดังกล่าว ก็มิได้ป้องกัน function
pointer หรือส่วนอื่นๆ แต่อย่างใด
ยิ่งไปกว่านั้น หลักการดังกล่าวยังใช้ attacks โปรแกรมที่มีการป้องกัน
Buffer Overflow ด้วยวิธีการที่นำเสนอกันหลายๆ แบบ เช่นการแทรกค่า cannary
เพื่อตรวจสอบว่า address มีการเปลี่ยนแปลงหรือไม่ได้อีกด้วย เช่น
การเปลี่ยนตัว error handling routine ให้เป็นของผู้บุกรุกเอง เป็นต้น
(ดูรายละเอียดเพิ่มเติมได้ที่ Secure Bit 2, และ Buffer Overflow: the Fundamentals และ Secure Bit)

หลักการสำคัญของ Buffer-Overflow

ถึงตรงนี้ บางคนอาจจะตั้งข้อสังเกตุว่า Buffer Overflow
ดูเหมือนจะเป็นปัญหาที่เกิดขึ้นจาก ภาษา C ซึ่งไม่มีระบบ Bound Checking
แต่ในความเป็นจริงคือ ทุกภาษาในปัจจุบัน มักจะถูกแปลงลงมาเป็นภาษาเครื่อง
หรือติดต่อกับระบบปฏิบัติการ ซึ่ง component ต่างๆ มักเขียนในภาษา C (และ
assembly) ตัวอย่างที่เห็นได้ชัดเช่น Buffer-overflow attacks ที่พบใน
Java, Perl, หรือแม้แต่ .Net
เมื่อวิเคราะห์ถึงประเด็นสำคัญที่ทำให้เกิด Buffer-Overflow Attacks
แล้ว เราจะพบว่าปัญหาโดยตรงเกิดจากการที่ Input
ซึ่งเป็นข้อมูลที่นอกเหนือความควบคุมของผู้เขียนโปรแกรม
เข้ามาทำให้เกิดความเสียหายในระบบ จนทำให้การทำงานของโปรแกรมผิดไป [Howard
and LeBlanc] จาก Microsoft กล่าวในหนังสือ Threat Model ว่า “All input
is evil until proven otherwise” และเสนอว่า
ข้อมูลทุกอันต้องมีการตรวจสอบเมื่อมีการส่งผ่านขอบเขตของโปรแกรม (“Data
must be validated as it crosses the boundary between untrusted and
trusted environments.”) ซึ่งข้อคิดนี้ มิใช่แนวคิดใหม่
หากแต่ผู้เขียนโปรแกรมทั่วไปมักมิได้คำนึงถึง
Secure Bit 2 ซึ่งเป็นงานวิจัยของผู้เขียนเอง
เป็นเทคโนโลยีที่จะฝังหลักการดังกล่าวลงในระบบโดยผู้พัฒนาโปรแกรม
ไม่จำเป็นต้องคอยระมัดระวังตรวจสอบ Input ของตัวเองตลอดเวลา
(เพราะแม้นักพัฒนาซอฟต์แวร์มืออาชีพหลายคน
ยังกล่าวว่ามีบ่อยครั้งที่ไม่สามารถตรวจสอบตัวโปรแกรมได้ครบทุกกรณีในขณะพัฒนาตัวโปรแกรม)
รายละเอียดเพิ่มเติมศึกษาได้ที่ Secure Bit 2

บทสรุป

ในโอกาสต่อไป ผู้เขียนจะนำเสนอแนวทางการป้องกัน buffer overflow
แบบต่างๆ ที่นักวิจัยทัวโลกพยายามพัฒนากันออกมา
พร้อมกับชี้ให้เห็นข้อดีข้อเสีย โดยสรุปแล้ว buffer overflow
เป็นปัญหาพื้นฐานของระบบคอมพิวเตอร์ตั้งแต่เรามีคอมพิวเตอร์จนถึงปัจจุบัน
ยิ่งมีคอมพิวเตอร์ต่อไว้กับ internet มากขึ้นเพียงใด ก็มีเป้านิ่งให้
hackers ทั้งหลายได้โจมตีมาขึ้น
ประกอบกับแต่เดิมผู้พัฒนาซอฟต์แวร์รายใหญ่ๆ (อาที MS) เน้นขาย funtioncs
ใช้งาน และ มิได้ใส่ใจกับปัญหาดังกล่าวมากนัก
แม้ปัจจุบันจะมีแนวทางที่เสนอออกมามากมาย
แต่ก็ยังไม่มีแนวทางใดที่สมบูรณ์แบบ ทางแก้ปัญหาที่ดีที่สุด
อาจจะเป็นพยายามฝึกให้
นักพัฒนาซอฟต์แวร์ทั้งหลายใส่ใจกับโปรแกรมที่ตัวเองเขียนมากขึ้น

อ้างอิง/อ่านเพิ่มเติม

  • MSU-CSE-05-9: Secure Bit2 : Transparent, Hardware Buffer-Overflow Protection, Krerk Piromsopa and Richard J. Enbody
  • MSU-CSE-04-47: Buffer Overflow: the Fundamentals, Krerk Piromsopa and Richard J. Enbody
  • MSU-CSE-04-48: Secure Bit : Hardware, Buffer-Overflow Prevention, Krerk Piromsopa and Matthew R. Fletcher and Richard J. Enbody

วันเสาร์ที่ 27 กุมภาพันธ์ พ.ศ. 2559

กล่องดำ กล่องขาว กล่องเทา

กล่องดำ กล่องขาว กล่องเทา

การทดสอบระบบ security คืองานหลักของผมคับ วันนี้ผมจะมาอธิบายชนิดของการทำ Information Security Testing ( INFOSEC Testing) ให้ฟังคร่าวๆนะคับ
การทดสอบแบบ Black-box
blackbox.gifการทดสอบแบบนี้จะใกล้เคียงกับพฤติกรรมของ Hacker มากที่สุดคับ เราเรียกมันว่ากล่องดำเพราะผู้ทดสอบระบบจะไม่ได้รับข้อมูลในระบบมาก่อนเลยคับ
Black-box testing จะเป็นการจำลองการโจมตีจาก hacker โดยให้ผู้ทดสอบระบบทดลองเจาะเข้ามาโดยที่ไม่ได้รับข้อมูลต่างในระบบจากผู้ดูแลระบบ (admin) มาก่อน เนื่องจากโดยปกติแล้ว hacker จากภายนอกมักจะต้องทำการค้นหาและรวบรวมข้อมูลของระบบเป้าหมายก่อนที่จะทำการลงมือ เราสามารถจะสรุปจุดแข็งและจุดอ่อนของการทำ Black-box testing ได้ดังนี้คับ
จุดแข็ง
– ผู้ทดสอบเจาะระบบ (Tester) และผู้ออกแบบระบบ (Admin) แยกการทำงานจากกันทำให้ผลที่ได้ออกมานั้นไม่เอนเอียงและเป็นจริง
– Tester ไม่รู้ข้อมูลในระบบมาก่อน ทำให้การทดสอบระบบอยู่ใน สภาพแวดล้อมเดียวกันกับ Hacker ภายนอก
จุดอ่อน
– ใช้เวลาในการทดสอบการเจาะระบบ นานกว่าแบบอื่น
– เนื่องจากใช้เวลานานทำให้ต้นทุนในการให้บริการแบบนี้สูงกว่าแบบอื่น
– การทดสอบมุ่งประเด็นไปที่ Hacker จากภายนอกเสียเป็นส่วนใหญ่ โดยในความเป็นจริงแล้วการโจมตีมักจะเกิดขึ้นจากภายใน
การทดสอบแบบ White-box
whitebox.gifมีกล่องดำก็ต้องมีกล่องขาวคับ การทดสอบแบบนี้จะตรงกันข้ามกับ Black-box ตรงที่ Tester จะได้รับข้อมูลทั้งหมดในระบบจาก Admin ไม่ว่าจะเป็นข้อมูลทางด้าน Network, System หรือ Infrastructure ดั้งนั้น Tester สามารถจัดทำโครงสร้างและแผนงานต่างๆในการทดสอบระบบง่ายขึ้นคับ
ในขณะที่ Black-box testing จะใช้เวลาส่วนใหญ่ไปกับการเก็บข้อมูลของระบบทั้งหมด White-box testing จะใช้เวลาส่วนใหญ่ในการทดลองเจาะช่องโหว่นั่นเองคับ
การทดสอบแบบ Gray-box
greybox.gifในการทดสอบแบบ Gray-box นั้น สถาบัน EC-Council จัดให้เป็นการทดสอบระบบจำลองการโจมตีแบบภายใน ดังนั้นจุดประสงค์ของการทดสอบแบบนี้คือการทดสอบในการป้องกันการโจมตีจากภายในองค์กร ไม่ว่าจะเป็นพนักงานหรือผู้ไม่ประสงค์ดีที่เดินก้าวเท้าเข้ามาในองค์กรเราได้คับ
โดยส่วนตัวของผมนะคับ ผมว่าการทดสอบแบบ White-box คือของโปรดของผมเลยล่ะคับเพราะสามารถรู้ข้อมูลทั้งในมุมมองจากข้างนอกและข้างใน นอกจากจะทำให้ผมประหยัดเวลาแล้ว ยังทำให้ผมเติมเต็มช่องโหว่ต่างๆได้อย่างทั่วถึงมากกว่าแบบอื่นๆด้วยคับ

Overview of Wireless Network Penetration Test and WarDriving

Overview of Wireless Network Penetration Test and WarDriving

จุดประสงค์ที่ผมเขียนหัวข้อนี้ขึ้นมา ไม่ใช่เพื่อแนะแนวให้ผู้อ่านไป Hack ระบบ Wireless ของชาวบ้านเล่นนะคับ (ดังที่จะเห็นได้ว่าผมไม่ได้ใช้คำว่า Wireless Hacking แต่เป็น Wireless Penetration Test) เพราะผมเป็น white-hat hacker ดังนั้นสิ่งที่ผมเขียนก็เพื่อที่จะเปิดโลกทัศน์ของทุกๆคนที่อยากจะใช้ Wireless ให้ตื่นตัวในเรื่องของ Securityกันมากขึ้น เพราะจากที่ผมได้เดินสำรวจตามห้าง ร้านค้า บ้านพักอาศัยและตึกสำนักงานต่างๆในเมืองไทย ผมบอกเป็นตัวเลขแน่นอนไม่ได้คับ แต่เอาเป็นว่าประมาณมากกว่า 89.99% ของ Wireless Network ที่มีเปิดใช้กันนั้น ล้วนแล้วแต่เป็น wireless network ที่มีระดับของความปลอดภัยที่ต่ำมั่กๆ น่ากลัวจริงๆคับสำหรับองค์กรที่มีข้อมูลที่ไม่อยากเผยแพร่ให้ใครรู้
จากหัวข้อเรื่องคงจะเห็นคำว่า WarDriving ใช่ไม๊คับ บางคนเห็นอาจจะนึกสงสัยว่ามันคืออะไร แล้วมันเกี่ยวข้องยังไงกับ Wireless Hacking จริงๆแล้วคำว่า WarDrivingนี่จะไปรู้จักกันแพร่หลายทางฝั่ง America คับ พวกมะกันเค้าใช้คำว่า WarDriving สื่อถึงการขับรถไปตามสถานที่ต่างๆเพื่อ Survey หาสัญญาณจาก Wireless Access Point แล้วทำการจดบันทึกข้อมูลต่างๆของ AP แต่ละตัวไว้ไม่ว่าจะเป็นสถานที่ตั้ง,
SSID, bandwidth แม้กระทั่งคีย์ในการ access ซึ่งฝรั่งเค้าทำกันเป็นจริงเป็นจังถึงขนาดใช้อุปกรณ์พวก GPS
(Global Positioning System) หาตำแหน่งที่แน่นอนของ AP แล้วทำเป็น Wi-Fi Map ของแต่ละเมืองกันเลยนะคับ เอาเป็นว่าให้เห็นกันจะๆไปเลยว่าเมืองไหนมี Access Point ที่ไหน SSID อะไรบ้าง ดูกันจากรูปก็ได้คับ


จากรูปนี้เราจะเห็นสัญลักษณ์คล้ายๆเครื่องหมายวงเล็บเปิดปิด ( ) หรือ ) ( นะคับ เค้าไม่ได้เขียนกันไว้เล่นๆ แต่มันมีความหมายคับ สัญลักษณ์ “) (” มีความหมายว่า “Open Network” ซึ่งก็หมายถึงเน็ตเวิร์คซึ่งไม่ได้มีการ Encrypt ใดๆทั้งสิ้น ส่วน “( ) นั้นก็คือ “Closed Network” หรือเน็ตเวิร์คที่มีระบบความปลอดภัยเช่น WEP หรือ WPA คับ
นอกจาก WarDriving แล้วเราอาจจะเคยเห็นคำว่า WarChalking, WarBiking WarWalking, WarFlying, WarSwimming (อันหลังๆผมเริ่มแต่งเองแล้วนะคับ) คือแล้วแต่คนจะเรียกตามแต่วิธีการที่เราใช้ในการ Survey ล่ะคับ อย่าง WarChalking ที่จริงแล้วก็คือการที่เค้าเอาชอล์คเขียนกระดานนี่แหล่ะคับ ไปเขียนพวกสัญลักษณ์พวกนี้ตามกำแพง ตามมุมตึกที่เค้า Survey สัญญาณเพื่อบ่งบอกว่าพื้นที่นี้ได้โดน Hack ไปเรียบร้อยแล้ว ผมเองไม่เคยเห็นมีใครทำในบ้านเราเหมือนกันนะคับ แต่ผมไม่กล้าทำหรอกคับผมกัวโดนจับ
การ Hack Wireless ไม่ใช่สิ่งใหม่เลยคับ ถ้าหากลอง Search ข้อมูลดูใน internet ใช้คีย์เวิร์ด “Wireless Hacking tools” หรือ “Wireless Crack” คุณจะพบว่ามีซอร์ฟแวร์มากมายที่ดาวน์โหลดได้ฟรีเอาไว้ใช้เพื่อประโยชน์ของการhack wireless เช่น
  1. Tools เพื่อใช้ Scan: NetStumblerKismet, Airodump
    Tool พวกนี้มีประโยชน์คับ เพราะมันบอกเราได้ว่าแถวๆนี้มี wireless network อะไรอยู่บ้าง วิ่งกันที่ channel อะไรencrypt แบบไหน ระดับสัญญาณเป็นยังไง บางตัวสามารถดูได้ว่า Client เครื่องไหน Mac Address อะไรมาเกาะบ้างและสามารถเก็บ Packet มาดูได้อีกด้วย
  2. Tools เพื่อใช้ในการ Crack:AircrackAirjackAsleap, ChopChop พวกนี้เอาไว้ Crack พวกการ encryption ที่ Crack ได้ง่ายๆอย่างเช่น WEP, WPA-PSK และLEAP คับ สำหรับผมแล้วผมเองเคยลอง Hack เพื่อการศึกษาดูเหมือนกันคับ ความเร็วที่เร็วที่สุดที่เคยทำได้ก็คือ 1 วินาทีเท่านั้นเองคับ
    ที่เร็วขนาดนี้อาจจะเป็นเพราะผมเก็บpacket มาได้มาก และ key ที่ตั้งไว้ก้อง่ายต่อการ crack ด้วยคับ ส่วนใหญ่แล้ว Hacker มือสมัครเล่นอาจจะต้องการ crack network เพียงเพื่อต้องการ access internet ฟรีเท่านั้น ซึ่งมีแค่ Tools พวกนี้ก็เพียงพอแล้วล่ะคับ

  3. Tools เพื่อใช้ในการยิงหรือ Attack: Void11, Disassociate, FakeAP
    Tool พวกนี้เอาไว้ยิง Packet มารบกวนการเชื่อมต่อของ Client ไปยัง AP คับ มีประโยชน์สำหรับการทำ Man-In-The-Middle Attack อันนี้จะเริ่ม Advanced แล้วล่ะคับ คนใช้ Tools พวกนี้ได้ส่วนใหญ่แล้วจะต้องมี hardwareเสริมอย่างเช่น Wireless Card ที่สามารถเปลี่ยน mode เป็น Access Point ได้ในตัวและเสาอากาศภายนอกเพื่อเพิ่มความแรงของสัญญาณอีกด้วย จะเห็นว่ามีการลงทุนระดับนี้คงไม่ได้ต้องการเพียงเพื่อใช้ internet ฟรีเป็นแน่แท้คับ
  4. Tools อื่นๆเพื่อใช้ Analyze Packet:
    WireShark หรือ Ethereal คงขาดไม่ได้ล่ะคับ สำหรับ Tool ที่ใช้เพื่อการอ่านเนื้อหาใน Packet จริงๆแล้วWireShark หรือ Ethereal นี้ถือว่าเป็น Tool พื้นฐานที่คนทำงาน IT อย่างเราๆควรจะมีใช้กันเพื่อการTroubleshooting อยู่แล้วล่ะคับ และสำหรับบรรดา Hacker แล้ว มันค่อยข้างจะเป็นสิ่งจำเป็นทีเดียว เพราะมันจะทำให้ Hacker หา Target ในการเข้าไปโจมตีได้ดีทีเดียวคับ ผมขอโชว์ Screenshot นิดๆหน่อยๆมาให้ดูกันเล่นๆนะคับ ว่าTool พวกนี้เห็นอะไรได้
ก็พอเป็นกระไสไปก่อนละกันนะคับสำหรับหัวข้อนี้ อย่างน้อยตอนนี้ทุกคนคงได้รู้จักศัพท์แสงเช่น WarDriving,
WarChalking กันแล้ว สมมุติมีเพื่อนโทรมาถาม “เฮ้ย นายทำไรอยู่?” “อ๋อเรากำลัง WarDriving อยู่ว่ะ มีอะไรเหรอ” อู้หูวว เท่ห์ซะไม่มี สำหรับคนไหนที่อ่านแล้วยังขัดใจทำไมมัน Basic แบบนี้ อยากรู้ให้ลึกซึ้งกว่านี้ว่า Step ขั้นตอนจริงๆเค้าทำกันยังไงเป็นฉากๆไป คงต้องอดใจรออีกนิดละกันคับ

ว่าด้วย Ethical Hackers

ว่าด้วย Ethical Hackers

Ethical hacker แปลแบบตรงตัวคือ Hackerฝ่ายคุณธรรม หรือแปลแบบไม่ตรงมากคือผู้ที่ทำการทดสอบการเจาะระบบโดยใช้วิธีเดียวกันกับที่ hacker ใช้แต่จะ ไม่ทำลายหรือละเมิดสิทธิ โดยจะทำงานอย่างใกล้ชิดกับองค์กรเพื่อปกป้องสินทรัพย์ขององค์กรนั้นๆ
จากการที่ Ethical hacker ใช้วิธีเดียวกันกับที่ hacker เจาะเข้ามาในระบบ ดังนั้น ethical hacker จะทำการรวบรวมข้อมูลขององค์กรจากข้อมูลที่เป็นสาธารณะ เช่นข้อมูลจาก website ข้อมูลเชิงโครงสร้างขององค์กร และอีกมาก
การทำ Penetration tests นั้นสามารถทำได้โดยแจ้งหรือไม่แจ้งทางทีม IT ขององค์กรก็ได้, ซึ่งเป็นการทำให้ผู้บริหารสามารถตรวจสอบความพร้อมในการรับมือ hacker หรืออีกนัยนึงก็คือตรวจสอบว่าเหล่าผู้ดูแลระบบที่จ้างมานั้นทำงานมีประสิทธิภาพแค่ไหนคับ
ในการเป็น Ethical hacker นั้นจะต้องมีทักษะในการเจาะระบบจริงและทักษะเบื้องต้นที่ Ethical hacker จำเป็นมีดังนี้คับ
Required Skills of Ethical Hackers
ceh.gif• ความรู้ทางด้าน Router, Routing protocol และ Access control lists (ACLs)
สามารถเรียนรู้ได้จากหนังสือหรือไปสอบใบ certificate ทางด้าน network เช่น Cisco Certified Network Associate (CCNA) หรือ Cisco Certified Internetworking Expert (CCIE) ยิ่งดีใหญ่
• ทักษะทางด้าน Microsoft ไม่ว่าจะเป็นการปรับแต่งหรือการจัดการ software ของ Microsoft เช่น Windows 2003 เช่นกัน สามารถเรียนรู้ได้จากการสอบ Microsoft Certified Administrator (MCSA) หรือ Microsoft Certified Security Engineer (MCSE) certified.
• ทักษะทางด้าน Linux/UNIX OS รวมทั้งทางด้านการปรัปแต่ง services ที่นิยมใช้ในปัจจุบันเช่น Apache. และ Certificate ทางด้านนี้คือ Red Hat Certified Engineer (RHCE) , หรือ Linux+.
• ทักษะทางด้านการปรับแต่ง Firewalls และ intrusion detection systems (IDS/IPS) สามารถเรียนรู้ได้จากการสอบ certified in Cisco Certified Security Professional (CCSP) or Checkpoint Certified Security Administrator (CCSA).
• ทักษะทาง Mainframes ถึงแม้ว่า mainframes จะเริ่มค่อยๆลดน้อยลงแล้วในปัจจุบัน แต่ก็ยังคงใช้กันอยู่ และการที่มีคนที่มีทักษะทางด้านนี้จะสร้างความได้เปรียบให้แก่ทีม
• ความรู้ทางด้าน Network protocol เช่น TCP/IP จะทำให้เข้าใจกระบวนการติดต่อสื่อสารข้อมูลได้อย่างลึกซึ้ง
• ทักษะทางด้านการเป็น project management ซึ่งจะต้องเป็นผู้นำทีมและจะต้องมีทักษะทางด้าน Security หลากหลายโดยเฉพาะอย่างยิ่ง ทักษะในการจัดการเช่นการวางแผน, การจัดการทรัพยากร (ลูกทีม), และการควบคุมการทดสอบให้เป็นไปตามแผนงาน แนะนำให้ไปสอบ Project Management Professional (PMP) certification ซะ
นอกจากทักษะที่กล่าวไว้ข้างต้น Ethical hackers จำเป็นต้องมีทักษะในการเขียน report และต้องติดตามข่าวสารที่เกี่ยวกับช่องโหว่ใหม่ๆ เพื่อให้ก้าวล้ำหน้า hackers อีกด้วย จะเห็นได้เลยคับว่าจริงๆแล้วการจะเป็น Hacker ผู้มีคุณธรรมนั้น ไม่ได้ทำกันได้ง่ายๆเลยคับ
Modes of Ethical Hacking
หลังจากที่ได้อธิบายทักษะที่จำเป็นต่างๆแล้ว คุณอาจจะสงสัยว่า ethical hacker จะนำทักษะเหล่าในไปใช้อย่างไร เนื่องจากระบบขององค์กรส่วนใหญ่นั้นมีความซับซ้อน จึงขอแบ่งการโจมตีที่รวมเอาทักษะข้างต้นมาใช้ได้ดังต่อไปนี้
• การโจมตีจากภายใน ethical hacker จะจำลองการโจมตี โดยเลียนแบบพฤติกรรมการโจมตีจากผู้ที่ได้รับอนุญาติในการใช้ระบบ เช่น พนักงานทั่วไป หรือผู้ดูแลระบบ
• การโจมตีจากภายนอก ethical hacker จะจำลองการโจมตี ที่สามารถทำได้ผ่านทาง Internet ตัวอย่างเช่น Hypertext Transfer Protocol (HTTP), Simple Mail Transfer Protocol (SMTP), Structured Query Language (SQL), หรือ services อื่นๆที่เปิดให้บริการ
• การโจมตีทางกายภาพ (physical attack) เช่น แอบดอดไปขโมย Notebook ของ CEO, ขโมย Tape back-up,หรือ การทำลายเครื่อง Server ด้วยวิธีต่างๆ (วิธีนี้เห็นได้ในเรื่อง Mission Impossible คับ)
• การโจมตีแบบ Social Engineering เป็นการใช้จิตวิทยาเพื่อให้ได้มาซึงข้อมูล มักจะถูกใช้กับพนักงานบริษัทหรือบุคลากรภายในองค์กร เช่น “สมทรงจ๊ะ วันนี้เธอใส่กระโปรงลายดอกสวยเซ็กซี่จัง บอกพาสเวิร์ดเราหน่อยได้ปะ” เป็นต้น
Rules of Engagement
Ethical hacker จะต้องรักษากฎในการทดสอบการเจาะระบบที่ได้ระบุไว้ในสัญญา หากไม่ปฏิบัติตามกฎอาจนำมาซึ่งการถูกไล่ออกจากงาน ถูกปรับ หรือแม้กระทั่งถูกจำคุก
• ห้ามทำเกินขอบเขตอำนาจที่ระบุไว้ รวมทั้งอำนาจที่เกี่ยวกับการนำข้อมูลหรือสิ่งที่ได้มาเพื่อน้ำไปใช้, เผยแพร่, ดัดแปลง, ทำซ้ำ ใดๆทั้งสิ้น
• ผู้ทดสอบระบบ ควรจะปกป้องตนเองด้วยการกำหนดขอบเขตในความเสียหายที่เกิดขึ้นในการทดสอบการเจาะระบบ เพื่อให้เป็นการเข้าใจแก่ผู้รับบริการ
• มีจรรยาบรรณในหน้าที่การงาน เป็นสิ่งที่แบ่งแยกระหว่าง Ethical hacker กับ hacker คือ “จรรยาบรรณ”
• รักษาความลับ ในระหว่างการทดสอบระบบนั้น tester อาจได้รับข้อมูลที่เป็นความลับกับองค์กรหรือบุคคลซึ่งสามารถนำความเสียหาย ดังนั้นจึงไม่ควรเปิดเผยความลับนอกจากได้รับการอนุญาติเท่านั้น
• ห้ามทำลายหรือทดลองสิ่งที่ยังไม่ได้ทำการตรวจสอบแล้วว่าไม่สร้างความเสียหายให้กับระบบ เช่น การใช้เครื่องมือแบบผิดๆอาจนำไปซึ่งการทำให้ account lockหรือ เป็นสาเหตุของการโจมตีแบบ DoS และการทำให้ Application server ล่ม

Why Hacking Wireless Network?

Why Hacking Wireless Network?


ถามทำไม Wireless มันน่า Hack?
ตอบเพราะ Wireless เป็นช่องทางที่ง่ายที่สุดที่ Hacker สามารถเข้าไปยัง Network ของคุณได้โดยไม่ต้องรู้จักมักจี่กับยามหน้าบริษัท และแทบจะไม่ต้องวิ่งผ่าน Firewall ใดๆ เพราะสำหรับหลายๆบริษัท Wireless LAN มักจะถูกจัดให้อยู่ใน Trust Zone เช่นเดียวกับ LAN users
ถามถ้าอย่างงั้นก็ไม่ต้องใช้ Wireless ซะก็สิ้นเรื่อง
ตอบการที่เราผู้ซึ่งเป็น admin ไม่ได้ติดตั้ง Wireless Access Point เอาไว้ นั่นไม่ได้หมายความว่าในองค์กรจะไม่มีWireless Access Point เลย คำถามที่จะถามกลับก็คือ คุณแน่ใจได้อย่างไรว่าไม่มีพนักงานคนใดเอา AP จากบ้านตัวเล็กๆราคาไม่กี่บาทเอามาเสียบใน LAN
ถาม: แล้วเค้าจะทำอย่างนั้นไปทำไม?
ตอบ: ง่ายนิดเดียว ก็เพราะเค้าอยากใช้ Wireless น่ะสิ สมัยนี้คนเรามักเริ่มหนีจากอะไรก็ตามที่เป็นสายระโยงระยาง ตั้งแต่มีมือถือคนมักจะใช้โทรศัพท์ตั้งโต๊ะน้อยลงเรื่อยๆ แม้แต่ Hand-Free เดี๋ยวนี้คนก็หันมาใช้หูฟัง Bluetooth
PDA Laptop ก็ support Wi-Fi กันแล้วทั้งนั้น
ดังนั้นคงไม่แปลกอะไรถ้าหากจะมีพนักงานคนใดอยากจะ check email ผ่าน PDA ที่เพิ่งซื้อมาใหม่ หรืออยากจะหิ้วLaptop ไปทำงานที่สวนหย่อมข้างๆ office
ถาม: ถ้าอย่างงี้แล้วเราจะป้องกันยังไงได้
ตอบ: ในเมื่อเราป้องกันไม่ให้ user ใช้ wireless ไม่ได้ เราจึงควรวางมาตราการทางด้าน Wireless Security เพื่อป้องกันไว้ก่อน ส่วนรายละเอียดนั้นไว้ติดตามอ่านต่อไปจ้า

Intro to Pen-Test

Intro to Pen-Test

สวัสดีอีกครั้งคับ คิดว่าหลายคนที่อยู่ในวงการ IT โดยเฉพาะอย่างยิ่งคนที่ทำงานเกี่ยวกับด้าน Information Security คงจะเคยได้ยินคำว่า Pen Test กันมาบ้างไม่มากก็น้อยล่ะนะคับ ไม่ใช่คับ…มันไม่ใช่การทดลองปากกา แต่จริงๆแล้วมันย่อมาจาก Penetration Test ซึ่งก็คือการตรวจสอบความปลอดภัยของระบบ Network และข้อมูลที่สำคัญ โดยใช้วิธีการหาช่องโหว่ต่างๆ (Vulnerability) แล้วก็อุดมัน เหมือนกับ การที่เราหารูรั่วของเรือแล้วก็อุดมันเพื่อป้องกันไม่ให้เรือจมฉันใดฉันนั้น หรือถ้าหากจะพูดตามภาษาชาวบ้าน Penetration Test ใช้การ Hacking เพื่อก่อประโยชน์มากกว่าใช้เพื่อสร้างความเสียหายอย่างที่ Hacker ทั่วๆไปทำนั่นเองล่ะคับ
ด.ญ. จำเนียน: “พี่แซมคะ แล้ว Pen Test นี่จำเป็นสำหรับบริษัทพ่อหนูมั๊ยคะ…”
ประการแรก มีใครบ้างอยากแจกเงินฟรี?
hacker.gifสิ่งที่ทุกองค์กรกลัวที่สุดก็คือความเสียหายที่ออกมาในรูปของเงินทอง ผมอยากให้ลองคิดถึงความเสียหายที่จะเกิดขึ้นถ้าหากองค์กรถูก hacked คับ เช่น จะเกิดอะไรขึ้นถ้าหากมีใครที่สามารถโอนเงินเข้าบัญชีของตัวเองได้อย่างอำเภอใจ หรือจะเกิดอะไรขึ้นถ้าหากมีใครสามารถสั่งซื้อของ ชำระค่าน้ำค่า ไฟโดยไม่ต้องเสียเงินตัวเองซักบาทเดียว หรือเกิดมีใครสามารถเปลี่ยนให้ซิมโทรศัพท์มือถือของตัวเองกลายเป็นซิม pre-paid ที่ใช้โทรได้ไปอีกเป็นสิบๆปีไม่ต้องเติมเงินอีกเลย ตัวอย่างที่ผมพูดมานี้ไม่ใช่เหตุการณ์สมมุติที่ผมจินตนาการเอาเองหรอกนะคับ แต่มันคือเหตุการณ์ที่เกิดขึ้นจริงๆไม่ใกล้ไม่ไกลในเมืองไทยของเรานี่แหล่ะคับ ลองคิดถามดูนะคับว่าเม็ดเงินจำนวนเท่าไหร่กันที่ผู้ประกอบการจะต้องเสียไปฟรีๆให้กับ Hacker จอมโลภเหล่านี้
ประการที่สอง คุณแน่ใจแล้วหรือว่าระบบการจัดการความปลอดภัยของคุณยังคงปลอดภัยอยู่? 
thief.gifคุณอาจจะมี IDS, IPS วางอยู่ที่ประตูใหญ่ ก่อนที่จะทะลุเข้ามาจนถึงกำแพงไฟ (Firewall) อีกสี่ชั้น ก่อนที่จะมี dynamic password หรือ cryptographic token เป็นนายทหารคอยคุมในแต่ละประตูย่อยก่อนเข้าสู่ข้อมูลอีกที แต่นั่นไม่ได้หมายความว่าจะไม่มีผู้ใดที่สามารถผ่านเข้าไปจนถึงด่านสุดท้ายได้หรอกคับ เพราะยังมีความจริงอยู่ข้อนึงก็คือไม่ว่าระบบจะน่าเชื่อถือ ฉลาดและราคาแพงซักเพียงใด ระบบเหล่านั้นถูกคุมด้วย admin ซึ่งเป็นมนุษย์คับ ยิ่งระบบมีความซับซ้อนเท่าไหร่ ความผิดพลาดที่จะก่อให้เกิดช่องโหว่ก็มากเท่านั้นล่ะคับ การจัดการเรื่องพวกนี้มันก็เหมือนกับการเล่นเกมเดาใจนั่นแหล่ะคับ เปิด policy นี้ ปิด port นั้น hacker คงหาทางเข้ามาไม่ได้แล้วล่ะน่า แต่จะไล่ปิดแค่ไหนก็ตาม ยังไงคงต้องมีซักประตูที่คุณเว้นเอาไว้เพื่อให้คนของคุณสามารถติดต่อสื่อสารกับภายนอกได้อยู่ดีล่ะคับ hacker ก็คือมนุษย์เหมือนกับคับ แต่เค้าคือมนุษย์ที่ฉลาด วันนี้เข้าประตูนี้ไม่ได้ วันอื่นก็ต้องหาทางเข้ามาจนได้ล่ะคับ
ประการที่สาม คุณ Proactive พอแล้วรึยัง?เมื่อไม่มีระบบการป้องกันใดที่ Perfect Pen Test จะช่วยวัดระดับความสามารถของระบบในการป้องกันการบุกรุกได้มากน้อยเพียงใด ซึ่งผลที่ได้จะออกมาในรูปแบบของการคำนวณความเสี่ยงที่ตามมาจากรูรั่วต่างๆ ซึ่งค่าตรงนี้แหล่ะที่สามารถบอกเราได้ว่ารูรั่วไหนกันที่เราควรจะปิดก่อน ปิดหลัง (Prioritization) หรือถ้าปิดไม่ได้เราควรวางแผน Plan A, Plan B หรือ Plan C ยังไงเพื่อให้เกิดผลกระทบน้อยที่สุด
ด.ญ. จำเนียน: “แล้วถ้าพ่อหนูอยากทำ Pen Test หนูควรจะแนะนำให้พ่อทำเมื่อไหร่ดีคะ”
คำถามนี้ตอบง่ายมาก คำตอบคือควรจะทำเป็นประจำคับเพื่อสร้างความมั่นใจว่าระบบของเรายังคงปลอดภัยดีอยู่เสมอ เพราะแน่นอนคับอาจมีความเสี่ยงใหม่ๆเกิดขึ้นได้เสมอเช่นกัน นอกจากนี้เวลาที่เหมาะเจาะที่ควรจะทำ Pen Test ก็คือเมื่อไหร่ก็ตามที่องค์กรของคุณมีการวางระบบ Network หรือ Application ใหม่ๆ หรือมีการ Upgrade หรือแม้กระทั่งการย้ายสถานที่ตั้งก็ตามคับ
จะเห็นได้ว่า การทำ Pen Test นั้น ผลพลอยได้ก็คือ Pen Test ยังช่วยให้เราสามารถประเมินความคุ้มค่าที่บริษัทลงทุนไปกับอุปกรณ์ Security ต่างๆ ช่วยคงภาพพจน์อันดีของบริษัทที่มีต่อลูกค้า และเหมาะอย่างยิ่งกับองค์กรที่ต้องการเตรียมตัวเพื่อยกระดับมาตรฐานความปลอดภัยให้เข้ากับ Framework ที่โด่งดังต่างๆอย่างเช่น HIPAAPCI และ Sarbanes Oxley อีกด้วย