จับตาไอทีเลือดใหม่แบงก์ชาติ คว้ารางวัลชนะเลิศระดับโลกด้าน CYBERSECURITY ของธนาคารกลาง

ภาพประกอบ

 

การพัฒนาโปรแกรมคอมพิวเตอร์ของธนาคารกลางในแต่ละประเทศนับเป็นสิ่งที่ท้าทาย เพราะมีผลกระทบต่อระบบการพัฒนาด้านการเงินของประเทศนั้น ๆ โดยตรง นอกจากการพัฒนาที่ต้องเน้นให้เกิดความก้าวหน้าและรวดเร็วแล้ว ยังต้องคำนึงถึงทิศทางการรักษาความปลอดภัยและมั่นคงควบคู่ไปด้วย ธนาคารเพื่อการชำระหนี้ระหว่างประเทศ (Bank for International Settlements: BIS) จึงได้จัดการแข่งขัน BIS Central Bank Secure Coding Competition MMXXII Virtual ประจำปี 2565 เพื่อส่งเสริมให้บุคลากรที่ทำงานด้านการพัฒนาเทคโนโลยีสารสนเทศของธนาคารกลางในแต่ละประเทศ ได้มีโอกาสในการเรียนรู้และแก้โจทย์ของการเขียนโปรแกรมคอมพิวเตอร์ที่มีความซับซ้อน ให้มีความถูกต้องและปลอดภัยสูงสุด

 

           ตัวแทนของธนาคารแห่งประเทศไทย (ธปท.) ที่เข้าร่วมการแข่งขันในครั้งนี้ 3 คน จากฝ่ายเทคโนโลยีสารสนเทศ ได้แก่ อ้ำ-ภากร ชุตินิมิตกุล นักวิเคราะห์ระบบ วุฒิ-อภิวุฒิ ดิลกคุณานันท์ นักวิเคราะห์ระบบอาวุโส และโน่-นภัสกร แซ่นิ้ม ผู้วิเคราะห์อาวุโส สามารถคว้ารางวัลจากการแข่งขันได้ทุกคน โดยคุณอ้ำชนะเลิศอันดับ 1 ด้วยการทำคะแนนสูงสุดและทำเวลาเร็วที่สุดในการแก้โจทย์ของการเขียนชุดคำสั่งที่ได้รับ ตามมาด้วยคุณวุฒิและคุณโน่ ผู้ชนะอันดับที่ 10 และ 11 จากผู้เข้าแข่งขันจำนวน 64 คน ซึ่งเป็นตัวแทนของธนาคารกลาง 22 แห่งทั่วโลก

 

 

เข้าใจการแข่งขัน


 

งานนี้เป็นการแข่งขันตรวจสอบ code โปรแกรมคอมพิวเตอร์ ภายใต้หลักการด้านความมั่นคงปลอดภัยระหว่างธนาคารกลาง ผู้เข้าเเข่งขันจะต้องแก้ปัญหาของ code ในตำแหน่งที่มีความไม่ปลอดภัย และปิดช่องโหว่ของชุดคำสั่ง เพื่อทำให้เกิดความปลอดภัยและทำงานได้อย่างมีประสิทธิภาพสูงสุด โดยผู้เข้าแข่งขันสามารถเลือกภาษาคอมพิวเตอร์ได้ตามที่กำหนด เพื่อให้เกิดการแข่งขันอย่างเป็นธรรม โดยผู้เข้าร่วมจะสามารถเห็นคะเเนนและลำดับในตารางอย่างเปิดเผยตลอดการเเข่งขัน
          งานนี้จัดขึ้นในรูปแบบออนไลน์ ซึ่งใช้ระยะเวลารวม 2 วัน ระหว่างวันที่ 13-14 ธันวาคม 2565 และมีการสรุปผลการเเข่งขันในวันที่ 15 ธันวาคม 2565 แต่ระยะเวลาที่ใช้ระหว่างการเเข่งขันเพื่อแก้ปัญหา code จริงจะอยู่ที่ 2-3 ชั่วโมงเท่านั้น

 

 

เป้าหมายและความพร้อมของการเข้าร่วมแข่งขัน


 

คุณอ้ำ

 

คุณอ้ำกล่าวว่า "ก่อนการแข่งขัน เราตั้งเป้าที่จะทำผลงานให้ออกมาได้ดีที่สุด ซึ่งผลลัพธ์ที่ได้ก็คุ้มค่าเพราะสามารถทำเวลาได้ดีที่สุดด้วยคะแนนเต็ม 8,000 คะแนน และคว้าที่ 1 ได้สำเร็จ"

          ด้านคุณวุฒิ ผู้ชนะเลิศอันดับที่ 10 เสริมว่า "นอกจากเป้าหมายของการทำให้ดีที่สุดแล้ว ประสบการณ์ของการฝึกซ้อมในช่วงการคัดเลือกตัวแทนภายใน ธปท. เพื่อไปแข่งขันก็เป็นช่วงเวลาที่สำคัญ เพราะเราได้ฝึกซ้อมในการแก้โจทย์ที่อยู่ในแพลตฟอร์มเดียวกันกับการแข่งขัน เพียงแต่มีลำดับขั้นของความยากง่ายที่แตกต่างและหลากหลายมากกว่าเท่านั้น ซึ่งทำให้ได้เรียนรู้ช่องทางและวิธีในการเลือกใช้ code ใหม่ ๆ ที่ถูกต้องด้วยความปลอดภัย จากแหล่งชุมชนด้านการพัฒนาโปรแกรมโดยเฉพาะ"

          นอกจากนี้ คุณโน่ซึ่งเป็นผู้ชนะเลิศลำดับที่ 11 ได้กล่าวว่า "การเตรียมความพร้อมในการแข่งขันด้วยการฝึกซ้อมภายใต้บริบทเดียวกันกับการแข่งขัน ทำให้เราสามารถเข้าใจและแก้โจทย์ของการพัฒนาโปรแกรมให้เกิดความถูกต้องได้มากยิ่งขึ้น โดยการแข่งขันภายใน ธปท. ทำให้เราคาดการณ์ได้ว่าโจทย์ที่ออกจะมีแนวประมาณไหน

          "การแข่งขันในครั้งนี้จะเน้นการปิดช่องโหว่ที่มีอยู่ใน Open Web Application Security Project (OWASP) ไกด์ไลน์เป็นหลัก ซึ่งเป็นข้อแนะนำมาตรฐานด้านความปลอดภัยของการพัฒนาโปรแกรมในระดับสากล ทำให้เราสามารถเตรียมการด้านข้อมูลตามข้อแนะนำดังกล่าวได้ง่ายขึ้น เนื่องจากมีขอบเขตของการตอบที่ชัดเจน ยกตัวอย่างเช่น พัฒนาระบบให้ไปค้นหาข้อมูลจาก database ตาม input ของผู้ใช้งาน แล้วไม่ได้เขียนให้มีความปลอดภัยเพียงพอตามมาตรฐาน ผู้ไม่หวังดีสามารถทำการดึงข้อมูลทั้งหมดออกมาได้ หรือที่แย่กว่านั้นคือสามารถสั่งลบ database นั้นได้เลย ทำให้แทนที่จะเป็นเพียงแค่การอ่านข้อมูล กลับกลายเป็นการทำลายระบบแทน

          "หรือแม้แต่วิธีการเข้ารหัสข้อมูลที่ไม่เหมาะสม ตอนนี้การพัฒนาของฮาร์ดแวร์เกิดขึ้นอย่างต่อเนื่อง ทำให้คอมพิวเตอร์สามารถประมวลผลและถอดรหัสเร็วขึ้น จึงไม่ควรที่จะใช้รูปแบบการเข้ารหัสที่ล้าสมัยเกินไป และอาจจะเสี่ยงที่จะเกิดการเจาะระบบของผู้ไม่หวังดีได้โดยง่าย"

 

 

เปิดประสบการณ์ใหม่ในโลกของการเขียนโปรแกรมที่ถูกต้อง


 

คุณอ้ำ

 

คุณอ้ำได้เล่าให้ฟังถึงประสบการณ์ใหม่และการเรียนรู้การเขียนโปรแกรมที่ถูกต้องอย่างมีระบบแบบแผนว่า "การเข้าร่วมการแข่งขันในครั้งนี้ ทำให้เรามองเห็นแนวทางการพัฒนาใหม่ ๆ ของรูปแบบภาษาคอมพิวเตอร์ที่มีความกระชับและปลอดภัยมากยิ่งขึ้น โดยภาษาที่เราเลือกใช้ในการแข่งขันเป็น C#[1] ซึ่งเป็นภาษาหลักที่ใช้ใน ธปท. ซึ่งเราคุ้นชินอยู่แล้ว รูปแบบของบททดสอบประกอบด้วย 8 ข้อใหญ่ และแยกย่อยไปในแต่ละข้อ แม้ว่าข้อสอบจะเป็นแบบตัวเลือก แต่ก็มีความซับซ้อนในการผสมคำตอบที่ถูกต้องจากตัวเลือกที่มีมาให้ โดยคำตอบที่ถูกต้องนั้น จะต้องมีทั้งความถูกต้องและปลอดภัยเป็นสำคัญ

         "อีกทั้งเราได้เห็นแนวทางใหม่ ๆ ในการเขียนโปรแกรมด้วยภาษาที่ง่ายแบบไม่ซับซ้อนและสั้นลง แต่ปลอดภัยมากยิ่งขึ้น หรือแม้กระทั่งชุดคำสั่งสำเร็จรูป (library) ใหม่ ๆ ที่มีความสะดวกสบายในการนำไปใช้ประกอบเป็นโปรแกรมที่เราต้องการได้ ซึ่งจะสามารถนำมาปรับใช้กับแนวทางการพัฒนาโปรแกรมให้กับธนาคารได้ในอนาคต"

         ด้านคุณวุฒิกล่าวเสริมว่า "การได้เรียนรู้แนวทางการเขียนคำสั่งใหม่ ๆ ที่ช่วยให้การพัฒนาโปรแกรมมีความปลอดภัยมากยิ่งขึ้น โดยปกติแล้วการทำงานของนักพัฒนาก็จะติดอยู่กับการเลือกใช้ชุดคำสั่งที่ตนเองถนัดเป็นหลัก เมื่อได้เห็นแนวทางที่ง่ายและสั้นกระชับกว่า แต่สามารถโปรแกรมให้ได้ผลลัพธ์ตามที่ต้องการ ทำให้เราสามารถลดระยะเวลาในการพัฒนาโปรแกรม จากเดิมที่ต้องเขียน code ยาว ๆ มาเป็นไม่กี่บรรทัดเท่านั้น ทำให้การทำงานง่ายขึ้นและสร้างประสิทธิภาพที่ดีที่สุดของ code ได้อย่างสมบูรณ์แบบมากยิ่งขึ้น

 

 

ทิศทางการพัฒนาโปรแกรมบนพื้นฐานความปลอดภัยในอนาคต


 

สิ่งที่น่าสนใจของการแข่งขันในครั้งนี้ คือการนำทีมพัฒนาระบบมาแข่งขันด้านความปลอดภัย แทนการนำทีมด้านความปลอดภัยมาแข่งขันกันโดยตรง สะท้อนให้เห็นทิศทางการทำงานที่จะเปลี่ยนไปในอนาคต ที่ฝ่ายเทคโนโลยีสารสนเทศจะต้องเริ่มวางรากฐานของความปลอดภัยนับตั้งแต่ริเริ่มแนวคิดการพัฒนาระบบ

         คุณอ้ำกล่าวว่า "แนวทางของการพัฒนาโปรแกรมในปัจจุบันของ ธปท. จะมีการทำงานควบคู่ไปกับการใช้ระบบเข้ามาตรวจสอบด้านความปลอดภัยตลอดทั้งกระบวนการที่จะทำให้สามารถพัฒนาได้เร็ว มีประสิทธิภาพและปลอดภัยยิ่งขึ้น แก้ไขช่องโหว่ตั้งแต่ในช่วงพัฒนาโปรแกรมให้สอดคล้องกับนโยบายที่ให้ทีมพัฒนาโปรแกรมคำนึงถึงความปลอดภัยให้มากขึ้น"

         คุณวุฒิเสริมว่า "เท่ากับว่านักพัฒนาจะเหมือนได้รับการปลูกฝังและสร้างความคุ้นชินด้านความปลอดภัยไปในตัว เมื่อเราพัฒนาระบบใด ๆ ขึ้นมาก็จะมีการระวังตัวมากขึ้น หากเกิดช่องโหว่ขึ้นโดยไม่ตั้งใจ ก็อาจจะเกิดความเสียหายไม่มากเท่ากับการไม่คำนึงถึงด้านความปลอดภัยตั้งแต่ต้น"

 

คุณโน่

 

ด้านคุณโน่ให้มุมมองของตัวเองว่า "ใน ธปท. หากจะมีการพัฒนาระบบใหม่ ๆ ขึ้นมา จะมีขั้นตอนการตรวจสอบด้านความปลอดภัยที่เข้มข้นยิ่งขึ้น โดยก่อนที่จะมีการติดตั้งระบบจะต้องผ่านการทดสอบในด้านความปลอดภัย (Code Analysis, Vulnerability Assessment and Penetration Testing) ก่อนทุกครั้ง ซึ่งแม้ว่าจะดูยุ่งยากในขั้นตอนการตรวจสอบ แต่ในภาพรวมของการทำงานแล้ว จะทำให้เราสามารถมองเห็นช่องโหว่ของระบบได้เร็วแล้วทำการแก้ไขได้ตั้งแต่ต้น ไม่ต้องรอให้เขียนจนเสร็จแล้วกลับมาแก้ไขใหม่ทั้งหมดอีกครั้ง

          "นอกจากนี้ เรายังใช้แนวคิด 'DEV x SEC x OP' ซึ่งเป็นการทำงานร่วมกันระหว่าง 3 ส่วน ทั้งแผนก Development, Security และ Operations เพื่อเฝ้าระวังการพัฒนาให้อยู่ภายใต้กรอบความปลอดภัยให้ได้มากที่สุด โดยในระหว่างขั้นตอนการพัฒนาตลอดจนกระบวนการให้บริการ จะมีทีมความปลอดภัยเข้ามาสอดส่องดูแลอยู่ในทุกขั้นตอน อีกทั้งบางขั้นตอนจะมีการนำระบบความปลอดภัยอัตโนมัติเข้ามาช่วยตรวจสอบแทนคน เพื่อลดปริมาณและเพิ่มความรวดเร็วในการพัฒนานั่นเอง"

         ด้วยการเตรียมพร้อม ความสามารถ พร้อมการร่วมคิดเป็นทีมเวิร์กในการแข่งขันครั้งนี้ ทีมไอทีรุ่นใหม่ตัวแทนจาก ธปท. ทั้ง 3 คน ได้สร้างผลงานอันน่าภาคภูมิใจ ด้วยการคว้ารางวัลจากการแข่งขันมาได้ทุกคน และเป็นความภูมิใจขององค์กรอย่างยิ่ง

 

 

 

[1] ภาษา C# (ซี-ชาร์ป) เป็นภาษาโปรแกรมคอมพิวเตอร์ระดับสูงที่ใช้สำหรับเขียนโปรแกรมคอมพิวเตอร์ ที่ได้รับความนิยมมากในปัจจุบัน โดยมี Microsoft เป็นผู้พัฒนา