แนวทางพัฒนาความมั่นคงปลอดภัยของ DevOps ในทางปฏิบัติ

ปัญหาด้านความมั่นคงปลอดภัยควรจะถูกพิจารณาตั้งแต่แรกเริ่มของการพัฒนาโปรเจ็ค ซึ่งทางผู้เชี่ยวชาญจาก NetworkComputing ได้ออกมาแชร์ประสบการณ์ว่าจุดไหนที่ DevOps ควรจะเริ่มตรึกตรองเกี่ยวกับเรื่องความมั่นคงปลอดภัยในเชิงปฏิบัติเพื่อไม่ให้เกิดเหตุการณ์ที่ตรงกับสุภาษิตที่ว่า “วัวหายล้อมคอก” นั่นเอง

Project Workshop

การประชุมเชิงปฏิบัติการเกี่ยวกับโปรเจ็คที่พัฒนานั้นมักมีจุดประสงค์หลักคือชี้แจงว่า Workflow ทำงานอย่างไรโดยไม่ค่อยใส่ใจกับเรื่องของความซับซ้อนในด้านความมั่นคงปลอดภัย ดังนั้นในการประชุมเหล่า DevOps ควรจะมีการตั้งคำถามกับด้านความมั่นคงปลอดภัยต่อที่ประชุมและยิ่งเราตั้งคำถามได้เร็วเท่าไหร่ ก็จะทำให้เกิดการตระหนักและใส่ใจไปตลอดการพัฒนาโปรเจ็ค ตัวอย่างเช่น

  • Credentials ถูกเก็บไว้ที่ไหน
  • มีกระบวนการตรวจสอบ (Audit) เป็นอย่างไร
  • นโยบายด้านความมั่นคงปลอดภัยของบริษัทคืออะไร
  • ระดับในการเข้าถึงระบบที่จำเป็นในการใช้งานระบบเป็นอย่างไร
  • Certificate ถูกเก็บไว้ที่ไหนและเก็บไว้อย่างปลอดภัยหรือไม่
  • มีลำดับการเก็บข้อมูลบนระบบอย่างไร

ความมั่นคงปลอดภัยต้องเริ่มตั้งแต่บรรทัดแรกที่เขียนโค้ด

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

การบริหารจัดการ Credential

แน่นอนว่าการเก็บ Credential เป็น Plain text หรือ Hard-coded ฝังในสคิร์ปต์นั้นไม่เป็นผลดี จึงเกิดระบบบริหารจัดการ Credential ขึ้นมาแต่ข้อสำคัญคือเราก็ต้องรู้ว่าการเก็บ Credential เหล่านั้นมีความมั่นคงปลอดภัยแค่ไหนอย่างไร ดังนั้นสิ่งที่ต้องตั้งคำถามในระบบบริหารจัดการ Credential คือ

  • ใช้กระบวนการเข้ารหัสอะไร
  • การเข้ารหัสนั้นเกิดขึ้นตั้งแต่จุดเก็บข้อมูล ระหว่างส่ง และตอนประมวลผลด้วยหรือไม่ (Rest-Transit-Process)
  • จัดการหมุนเวียน Credential อย่างไร
  • รองรับการทำ 2 Factor Authentication หรือไม่
  • ทางเลือกในการกู้คืนและเมื่อเกิดความผิดพลาดอย่างไรบ้าง
  • มีการรองรับกับระบบพิสูจน์ตัวตนจากภายนอกแค่ไหน อะไรบ้าง
  • มีกระบวนการทำงานอย่างไร

ติดตาม Log ที่เกิดขึ้นด้วย

การบริหารจัดการ Credential และการส่งผ่านที่ดีนั้นยังตอบโจทย์ได้ไม่ครบ หาก Log นั้นตั้งค่าได้ไม่ถูกต้อง ยกตัวอย่างเหตุการณ์คือ ในเดือนพฤษาคมที่ผ่านมาทวิตเตอร์ได้เตือนผู้ใช้ให้เปลี่ยนรหัสผ่านเพราะไปพบว่า Log มีการบันทึกรหัสผ่านของผู้ใช้ ดังนั้นนอกเหนือจากโค้ดตัวเองแล้ว DevOps ต้องเข้าใจการเก็บ Log ด้วยว่ามีข้อมูลอะไรที่ถูกเก็บไว้บ้าง

ให้สิทธิ์ต่ำสุดไว้ก่อน

คอนเซปต์นี้เป็นหนึ่งในหัวข้อของ CISSP ด้วย (Least Privilege) คือช่วยจำกัดความเสียหายหากบัญชีใดถูกแฮ็กหรือขโมยไปได้หรือตั้งใจละเมิดนอกเหนือหน้าที่ ซึ่งการค้นหาและตรวจสอบกระบวนการนี้อาจกินเวลาไม่น้อยในทางปฏิบัติ อย่างไรก็ตามการใช้งานระบบบริหารจัดการ Credential ก็เป็นส่วนหนึ่งที่จะช่วยลดเวลาลงบ้าง

Credential ของ Self-Service Deployment

หากเรามีบริการ Self-service เพื่ออำนวยความสะดวกให้กับผู้ใช้งาน เช่น สร้าง VM หรือ instance ได้เองผ่านหน้า Portal เราก็ต้องมีการจัดการ Credential ตรงนี้ด้วยคือผู้ใช้มักต้องการสิทธิ์ของ Local Admin ซึ่งเราควรจัดการให้ดีโดยต้องไม่ให้ผู้ใช้มีสิทธิ์ไปแก้ไขเปลี่ยนแปลงบัญชีเหล่านั้นด้วยตัวเองได้

ที่มา : https://www.networkcomputing.com/network-security/improving-devops-security-practices/1110934485

About nattakon

จบการศึกษา ปริญญาตรีและโท สาขาวิศวกรรมคอมพิวเตอร์ KMITL เคยทำงานด้าน Engineer/Presale ดูแลผลิตภัณฑ์ด้าน Network Security และ Public Cloud ในประเทศ ปัจจุบันเป็นนักเขียน Full-time ที่ TechTalkThai

Check Also

Microsoft เปิดตัว Integrated Security Operations Center บน Defender ยกเครื่อง SOC รองรับ AI Agent

Microsoft เปิดตัว Integrated Security Operations Center (ISOC) บน Microsoft Defender พร้อมย้ายความสามารถด้าน SIEM จาก Microsoft Sentinel …

[วีดีโอย้อนหลัง] SendQuick Webinar : Identity Under Attack “ถอดบทเรียนการโจมตีในไทย และวิธีป้องกันด้วย MFA”

เรื่อง MFA กำลังเป็นประเด็นใหญ่ โดยเฉพาะกับหน่วยงานภาครัฐ และหน่วยงานโครงสร้างพื้นฐานของประเทศ ซึ่งวันนี้ได้เริ่มประกาศบังคับใช้เป็นข้อบังคับพื้นฐานแล้วในประกาศจาก สกมช. โดยใครที่พลาด SendQuick Webinar เรื่อง “Identity Under Attack : ถอดบทเรียนการโจมตีในไทย …