แนวทางพัฒนาความมั่นคงปลอดภัยของ 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

[วิดีโอ] Sponsored Webinar: รู้เขา รู้เรา จัดระเบียบ Bot ดีและร้ายให้อยู่หมัดโดย F5 Networks

สำหรับผู้ที่ไม่ได้เข้าชมการบรรยาย Sponsored Webinar เรื่อง “Fight the Good Fight against the Bad Bots – รู้เขา รู้เรา …

ชีวิตดีอยู่ที่ไอเดีย! ไปดูนวัตกรรมแห่งอนาคต จาก Cisco Innovation Challenge ที่จะทำให้ชีวิตคุณดีขึ้นได้จริง

ด้วยไอเดียที่ว่ามนุษย์น่าจะบินไปบนท้องฟ้าได้เหมือนกับนก พี่น้องตระกูลไรท์จึงประดิษฐ์เครื่องบินลำแรกของโลกขึ้นโบยบินบนท้องฟ้า และด้วยไอเดียที่ว่าคนเราน่าจะพูดคุยหากันได้สดๆ ผ่านเครื่องมือบางอย่าง อเล็กซานเดอร์ เกรแฮม เบลล์ จึงประดิษฐ์โทรศัพท์เครื่องแรกของโลกขึ้นมาได้