สวัสดีครับทุกคน! สำหรับใครที่กำลังสนใจเส้นทางสาย Cybersecurity โดยเฉพาะฝั่งเจาะระบบน่าจะคุ้นเคยกับ Web Security Academy ของ PortSwigger และใบเซอร์ยอดฮิตอย่าง BSCP (Burp Suite Certified Practitioner) กันมาบ้าง
อธิบายสั้นๆ สำหรับคนที่เพิ่งเริ่ม BSCP คือการสอบแฮ็กเว็บแอปพลิเคชันจำลอง ค่าสอบอยู่ที่ 99 USD ซึ่งถือว่าเป็นราคาที่คุ้มค่าและจับต้องได้ง่ายมากๆ เมื่อเทียบกับเซอร์สายเจาะระบบตัวอื่นๆ ในตลาด โดยเนื้อหาจะเป็นการแฮ็กแอปเว็บ 2 แอป แต่ละแอปแบ่งภารกิจเป็น 3 ด่านหลักๆ คือ
1. หาทางล็อกอินด้วยแอคเคาท์สิทธิ์ต่ำให้ได้
2. ยกระดับสิทธิ์ตัวเองให้เทียบเท่า Admin หรือยึดแอคเคาท์ Admin
3. เข้าไปขโมย Flag จากไฟล์ /home/carlos/secret
หลังจากเพิ่งเรียนจบวิศวะคอมฯ จากรั้ว สจล. หมาดๆ และเก็บเกี่ยวประสบการณ์ฝึกงานในสตาร์ทอัปสายเทคแห่งหนึ่งมาแล้ว การก้าวเข้าสู่โลกทำงานจริงในฐานะ Pentester แบบเต็มตัวที่ Datafarm ถือเป็นความท้าทายใหม่ที่เอาเรื่องเลยครับ เพราะแต่ละวันเราต้องเทสต์ระบบให้ลูกค้าหลากหลายกลุ่ม บทความนี้ผมเลยอยากมาแชร์ทริคว่า เด็กจบใหม่ที่ต้องทำงานประจำสุดเดือด จะเตรียมตัวสอบ BSCP ให้ผ่านใน 3 เดือนได้ยังไง? มาดูกันครับ
เดือนที่ 1: การปรับ Mindset จาก “ผู้พัฒนา” สู่ “ผู้ทดสอบระบบ”
ช่วงนี้เป็นช่วงที่ยากที่สุด เพราะด้วยความที่เราเป็น “First Jobber” และได้เริ่มงานสายนี้อย่าจริงๆจัง จึงมีอะไรหลายอย่างให้เราได้เรียนรู้เต็มไปหมด ไม่ว่าจะเป็นเรื่องของ Technical หรือการใช้ชีวิตในที่ทำงาน แล้วยังมีเรื่องของการสอบเซอร์อีก ในช่วงเรื่มงานนี้ สิ่งสำคัญที่สุดคือการปรับวิธีคิด (Mindset) ครับ สำหรับคนที่มีพื้นฐานด้านการพัฒนาซอฟต์แวร์หรือคุ้นเคยกับฝั่ง Backend มาก่อน เรามักจะมองระบบในมุมของการทำให้ฟังก์ชันทำงานได้สมบูรณ์ แต่การเป็น Pentester คือการมองหา “ช่องโหว่” ที่ซ่อนอยู่ภายใต้ฟังก์ชันเหล่านั้น
ในช่วงเดือนแรก ผมเน้นไปที่การปูพื้นฐานช่องโหว่ทางด้าน Cyber Security ผ่านแล็บของ PortSwigger โดยใช้แนวทางดังนี้:
- ทำความเข้าใจเครื่องมือหลักอย่าง Burp Suite ในการทำทดสอบ Web Application Pentest เครื่องมืออย่าง Burp Suite ถือเป็นอาวุธคู่กาย เราต้องเข้าใจวิธีการใช้ฟีเจอร์พื้นฐานอย่าง Proxy และ Repeater เพื่อดักจับและปรับแต่ง HTTP Request ก่อนส่งไปยังเซิร์ฟเวอร์ หรือฟีเจอร์อื่นๆอีกมากมาย
- เจาะลึกช่องโหว่พื้นฐาน โดยเริ่มศึกษาช่องโหว่คลาสสิกอย่าง SQL Injection หรือ Cross-Site Scripting ในมุมมองของการทำงานเบื้องหลัง ตัวอย่างเช่น การแทรกคำสั่ง SQL พิเศษผ่านช่อง Input เพื่อหลอกให้ฐานข้อมูลคืนค่าข้อมูลที่สำคัญออกม โดยเรียนผ่านคอร์สฟรีของ PortSwigger เป็นหลักนี่แหละ
ในช่วงแรกของการเริ่มงานก็จะมีพี่ๆคอยสอนอยู่บ้าง เรียนเองบ้าง โดยแรกๆเราก็อาจจะยังไม่ได้จับงานทำ Pentest จริงๆ เน้นปูพื้นฐานเพื่อเตรียมเจอของจริงหลังจากนี้นี่แหละ ก็เลยยังรู้สึกชิวๆ ไม่รีบร้อนอะไรที่จะต้องสอบเซอร์
อย่างที่เกริ่นไปก่อนหน้าว่าผมต้องทำงานประจำไปด้วย การรักษาสมดุลระหว่างโปรเจกต์ที่ทดสอบกับต้องส่งรีพอร์ตตามกำหนดเวลา มันบังคับให้เราต้องเตรียมสอบเอาเองในตอนกลางคืน เป็นความท้าทายหลักของคนวัยทำงานครับ เทคนิคที่ผมใช้และได้ผลลัพธ์ที่ดี ได้แก่:
- ความสม่ำเสมอ ไม่ว่างานในแต่ละวันจะหนักแค่ไหน ผมจะตั้งเป้าหมายว่าต้องเข้ามาทำแล็บหรืออ่าน Document ของ PortSwigger อย่างน้อยวันละ 1 แลป เพื่อรักษาความต่อเนื่อง
- เรียนรู้จากหน้างานจริงการนำปัญหาหรือข้อสงสัยที่พบจากการทำ Pentest หน้างานจริง มาตั้งเป็นโจทย์ในการค้นคว้าเพิ่มเติมบนแล็บ สิ่งนี้ช่วยลดระยะเวลาในการทำความเข้าใจ เพราะเราได้เห็นบริบทของการนำไปใช้งานจริง
- หากติดปัญหาในแล็บใดแล็บหนึ่งเกิน 20 นาที ผมจะเลือกหยุดพักเพื่อรีเซ็ตความคิด ยิ่งดันทุรังไปก็มักจะยิ่งคิดไม่ออก การได้พักหรือเปิดดูเฉลยในข้อนั้นไปเลยก็จะช่วยเราเรียนรู้ได้ไวกว่า
เดือนที่ 2: เริ่มลงสนามจริงในต่ำแหน่ง penetration tester
เมื่อพื้นฐานเริ่มแน่น ในเดือนที่สองเราจะเริ่มได้ทำงาน Pentest จริงๆเยอะขึ้นละ แต่ก็ยังเป็นการไปประกบพี่ๆเพื่อคอยซัพพอร์ตเค้าอีกที ไม่ว่าจะเป็นงานรีพอร์ตกว่าร้อยหน้า งานทดสอบระบบแฮ็กเว็บหรือประเมินความเสี่ยงต่างๆ ทำให้เวลาว่างในการซ้อมแลปเพื่อไปสอบน้อยลงอย่างชัดเจน แต่ยังไงเราก็ยังต้องสู้กันต่อ เน้นฝึกฝนนอกเวลางานเอา โดยในเดือนนี้มีเป้าหมายส่วนตัวคือการเล่นแลปของ PortSwigger ให้ได้เยอะมากที่สุด หลังจากจากการดำน้ำหาข้อมูลและถามพี่ๆในทีม ทำให้ผมค้นพบว่า การสอบ BSCP มันมีรีวิวรวมถึงคำแนะนำของหลายๆคนที่เคยสอบแล้วออกมาแชร์เทคนิค ประสปการณ์อยู่ในอินเตอร์เน็ต เนื่องด้วยข้อสอบมันมีท่าโจมตีเยอะมาก การจะจำทุกท่าเพื่อไปสอบแทบจะเป็นไปไม่ได้เลย ผมเลยใช้ตัวช่วยจาก GitHub Community หลายๆที่เพื่อรวบรวมเทคนิคหรือเช็คลิสต์ที่ต้องลองตอนสอบ และสั่งสมประสปการณ์การทำแลป มาขมวดเขียดเป็นโน้ตส่วนตัวเพื่อเอาไว้ใช้เปิดควบคู่ตอนสอบอีกที
บอกตามตรงว่าตอนเตรียมตัวและตอนซ้อม ผมก็ใช้โน้ตที่เขียนขึ้นมาเองนี่แหละเพื่อให้เวลาสอบจริงสามารถค้นหา Payload หรือสเต็ปการโจมตีได้อย่างรวดเร็วและไม่หลุดโฟกัส ถือว่าช่วยได้เยอะเลย
เดือนที่ 3: โค้งสุดท้ายและการรับมือกับสถานการณ์จริง
หลังจากเราทำแลปของ PortSwigger จนครบตาม Requirement เพื่อจะสอบเซอร์ครบแล้ว เดือนสุดท้ายคือการเตรียมความพร้อมสำหรับการสอบจริง แนะนำให้ทดลองทำข้อสอบจำลอง Practice Exam เพื่อสร้างความคุ้นเคยกับแรงกดดันด้านเวลา โดยกำหนดเวลา 2 ชั่วโมงสำหรับการแฮก 1 แอปพลิเคชัน ซึ่งมีทั้งหมด 2 ข้อ พยายามฝึกซ้ำแลปจากเช็คลิสต์ของเราเอง อีกเทคนิคคือเราต้องลดสโคปเรื่องที่เราจะทดสอบให้ได้มากที่สุด โดยในแต่ละ Stage จะมีเป้าหมายไม่เหมือนกัน ทำให้ช่องโหว่ที่ใช้ทำให้เราผ่าน stage นั้นมีได้ไม่กี่อย่าง เช่น เราคงไม่ได้ใช้เทคนิค SQLi เพื่อที่จะไปอ่านไฟล์ Secret ของเว็บที่อยู่ใน Stage 3 อันนี้ก็พยายามหาข้อมูลดูจากอินเตอร์เน็ต แล้วจึงพยายามเก็งข้อที่น่าจะออกสอบให้ได้มากๆ
สุดท้ายพอถึงวันสอบจริง… สรุปว่า “ร่วง” ครับ! ด้วยความล่ก ความตื่นเต้น บวกกับซ้อมมายังไม่ครอบคลุมพอ แต่ไม่เป็นไรครับ หลังจากเฟลรอบแรก ผมใช้เวลา 2-3 วันมานั่ง Recap ตัวเองใหม่ อุดรอยรั่วแล้วไปสอบใหม่… และในที่สุดก็ผ่านจนได้! หน้าตาของเซอร์ของจะเป็นประมาณนี้้

หลังจากที่ได้เซอร์ใบนี้มาแล้วคงจะบอกได้ว่าเราเองก็มีความรู้พื้นฐานในการแฮ็กเว็บพอสมควร แต่สิ่งที่ต้องตามหาต่อไปคือ “ประสบการณ์หน้างานจริง” เพราะทุกช่องโหว่ที่เจอในการทำงานคือบทเรียนที่ไม่มีในตำรา หลังจากนี้คงเป็นช่วงเวลาของการลุยงานจริง เก็บเกี่ยวประสบการณ์ให้เยอะ และพัฒนาตัวเองต่อไปเรื่อยๆ ครับ
ทิ้งท้าย
การเตรียมสอบ BSCP ใน 3 เดือนไปพร้อมๆ กับการทำงานประจำเป็น Pentester ไม่ใช่เรื่องง่าย แต่รับรองว่าเป็นไปได้แน่นอนครับ คีย์เวิร์ดสำคัญคือ “ความสม่ำเสมอ”, “การประยุกต์ใช้กับงานจริง”, และ “การเตรียมตัวที่ดี”
สำหรับใครที่กำลังเริ่มต้น หรือกำลังนั่งงมแล็บจนท้อ ผมขอเป็นกำลังใจให้ครับ สาย Cybersecurity เป็นสายที่ต้องอาศัยการเรียนรู้ตลอดเวลา ขอแค่คุณเปิดคอมฯ แล้วลงมือทำ อัปเดตความรู้ใหม่ๆ ทุกวัน คุณก็เข้าใกล้ความสำเร็จไปอีกก้าวแล้ว ลุยยยยย!