ความปลอดภัย

16

ความปลอดภัย

สิ่งที่ระบบป้องกันให้อยู่แล้ว และสิ่งที่ผู้ดูแลต้องทำเอง

สิ่งที่ระบบทำให้อัตโนมัติ

กลไกทำงานอย่างไร
เข้ารหัสรหัสผ่านเก็บด้วย bcrypt ซึ่งเป็นการเข้ารหัสทางเดียวและมี salt สุ่มต่อผู้ใช้แต่ละคน ผู้ดูแลระบบอ่านรหัสผ่านของผู้ใช้ไม่ได้ ทำได้แค่ตั้งใหม่ให้
อัปเกรดรหัสผ่านเดิมบัญชีที่ยังใช้การเข้ารหัสรูปแบบเก่าจะถูกแปลงเป็น bcrypt อัตโนมัติเมื่อผู้ใช้เข้าสู่ระบบครั้งถัดไป
จำกัดการเดารหัสผ่านล้มเหลวเกิน 8 ครั้งภายใน 15 นาทีจาก IP เดียว จะถูกล็อกการเข้าสู่ระบบชั่วคราว
ป้องกัน CSRFทุกฟอร์มที่บันทึกข้อมูลมีโทเค็นกำกับ และโทเค็นจะถูกสร้างใหม่หลังตรวจสอบทุกครั้ง
ป้องกัน session fixationระบบสร้าง session ID ใหม่ทุกครั้งที่เข้าสู่ระบบสำเร็จ
ตรวจสิทธิ์ฝั่งเซิร์ฟเวอร์ทุกหน้าตรวจบทบาทและความเป็นเจ้าของข้อมูลซ้ำที่ฝั่งเซิร์ฟเวอร์ การซ่อนเมนูเป็นเพียงการจัดหน้าจอ ไม่ใช่มาตรการความปลอดภัย
สิทธิ์รายวิชาผู้สอนแก้ไขได้เฉพาะรายวิชาที่ตนเป็นผู้สอนหลักหรือผู้สอนร่วมเท่านั้น
ไฟล์ที่มีข้อมูลอ่อนไหวสลิปการชำระเงิน ภาพจากการคุมสอบ และไฟล์งานที่ส่ง เข้าถึงผ่านหน้าที่ตรวจสิทธิ์แล้วเท่านั้น ไม่เปิดให้เข้าถึงไฟล์ตรง ๆ
กันเข้าถึงไฟล์ระบบไฟล์ .sql, .md, .env, composer.json และไฟล์คล้ายกันถูกปิดกั้นด้วย .htaccess
เมื่อผู้ใช้ถูกล็อกจากการเดารหัสผ่าน จะเห็นข้อความให้รอสักครู่แล้วลองใหม่ ระบบจะปลดล็อกให้เองเมื่อพ้นช่วงเวลา และล้างประวัติทันทีที่เข้าสู่ระบบสำเร็จ

สิ่งที่ผู้ดูแลต้องทำเอง

เปิดใช้ HTTPS
จำเป็นที่สุด — กล้อง (คุมสอบ/สแกนใบหน้า) และ Push Notification ทำงานเฉพาะบน HTTPS และรหัสผ่านที่ส่งผ่าน HTTP ธรรมดาถูกดักอ่านได้
ลบโฟลเดอร์ install/
หลังติดตั้งเสร็จให้ลบหรือเปลี่ยนชื่อทิ้งทันที แม้ระบบจะมีไฟล์ล็อกกันติดตั้งซ้ำอยู่แล้ว
เปลี่ยนรหัสผ่านเริ่มต้น
บัญชีที่สร้างใหม่ได้รหัส 123456 และบัญชีนักเรียนได้รหัสตามรูปแบบที่ตั้งไว้ — บังคับให้เปลี่ยนตั้งแต่เข้าครั้งแรก
สำรองข้อมูลสม่ำเสมอ
สำรองก่อนอัปเดตทุกครั้ง และตั้งรอบสำรองประจำ พร้อมเก็บไฟล์ไว้นอกเซิร์ฟเวอร์
ให้สิทธิ์เท่าที่จำเป็น
ผู้ดูแลระบบควรมีน้อยที่สุด คนอื่นใช้บทบาทผู้สอนก็เพียงพอ
อัปเดตระบบและ PHP
ติดตามเวอร์ชันใหม่ของ Aleanor และใช้ PHP รุ่นที่ยังได้รับการสนับสนุนด้านความปลอดภัย

ข้อมูลอ่อนไหวในระบบ

Aleanor เก็บข้อมูลส่วนบุคคลหลายประเภท ควรกำหนดนโยบายการเข้าถึงและระยะเวลาเก็บให้ชัด

ข้อมูลความอ่อนไหวใครเข้าถึงได้ข้อควรระวัง
ข้อมูลใบหน้าสูงมากผู้ดูแลระบบเป็นข้อมูลชีวมิติ ต้องขอความยินยอมเป็นลายลักษณ์อักษร และลบเมื่อนักเรียนจบหรือย้ายออก
ภาพจากการคุมสอบสูงมากผู้สอนของข้อสอบนั้นแจ้งผู้สอบล่วงหน้าเสมอ และกำหนดว่าจะเก็บนานเท่าใด
สลิปการชำระเงินสูงผู้ดูแล / ผู้สอนของรายวิชามีเลขบัญชีและชื่อ — อย่าคัดลอกออกไปเก็บนอกระบบ
เลขบัตรประชาชนสูงผู้ดูแลระบบเก็บเท่าที่จำเป็นต่อการดำเนินงานเท่านั้น
ข้อมูลผู้ปกครองสูงผู้ดูแลระบบ / ครูประจำชั้นใช้เพื่อการติดต่อเรื่องนักเรียนเท่านั้น
คะแนนและผลการเรียนปานกลางครูประจำวิชา / ผู้ดูแล / เจ้าของข้อมูลนักเรียนเห็นเฉพาะของตัวเอง
ไฟล์สำรองฐานข้อมูลสูงมากผู้ดูแลระบบมีข้อมูลทั้งระบบรวมรหัสผ่านที่เข้ารหัสไว้ — เก็บในที่ปลอดภัย ห้ามเผยแพร่
ไฟล์สำรองฐานข้อมูลคือสำเนาของทั้งระบบ — ห้ามวางไว้ในโฟลเดอร์ที่เข้าถึงได้จากเว็บ ห้ามส่งผ่านช่องทางที่ไม่เข้ารหัส และควรเก็บในที่ที่มีการควบคุมการเข้าถึง

ตรวจสอบย้อนหลัง

ดูที่ไหนเห็นอะไร
วิดเจ็ตกิจกรรมล่าสุด (หน้าแรกแดชบอร์ด)การเข้าสู่ระบบ ออกจากระบบ และการเปลี่ยนแปลงสำคัญของทั้งระบบ พร้อม IP
ระบบนักเรียน → บันทึกกิจกรรมการเปลี่ยนแปลงในระบบโรงเรียน เช่น การแก้คะแนน ปลดล็อกเกรด แก้ข้อมูลนักเรียน
ผู้ดูแลระบบ → รับชำระเงินออนไลน์เหตุการณ์ล่าสุดจาก Payment Gateway
บันทึกกิจกรรมของระบบโรงเรียน — เวลา ผู้ทำรายการ และสิ่งที่เปลี่ยน
ภาพที่ 1 — บันทึกกิจกรรมของระบบโรงเรียน — เวลา ผู้ทำรายการ และสิ่งที่เปลี่ยน ผู้ดูแลระบบ
ทบทวนบันทึกกิจกรรมทุกสิ้นภาคเรียน โดยเฉพาะรายการปลดล็อกเกรดและแก้ไขคะแนนหลังล็อก — เป็นจุดที่ควรมีเหตุผลรองรับเสมอ

เมื่อสงสัยว่าบัญชีถูกเข้าถึงโดยไม่ได้รับอนุญาต

ระงับบัญชีทันที

ที่ ผู้ดูแลระบบ → ผู้ใช้งานระบบ กดระงับ เพื่อหยุดการเข้าถึงก่อน

ตรวจบันทึกกิจกรรม

ดูว่าบัญชีนั้นทำอะไรไปบ้าง จาก IP ใด และช่วงเวลาไหน

ตั้งรหัสผ่านใหม่

ตั้งรหัสใหม่ให้แล้วแจ้งเจ้าของบัญชีผ่านช่องทางที่ปลอดภัย

ตรวจข้อมูลที่อาจถูกแก้

โดยเฉพาะคะแนน เกรด และรายการชำระเงินในช่วงเวลาที่น่าสงสัย

เปิดใช้งานกลับ

เมื่อแน่ใจแล้วจึงเปิดบัญชีกลับ พร้อมแจ้งให้เจ้าของเปลี่ยนรหัสอีกครั้ง

รายการตรวจสอบก่อนเปิดใช้จริง

รายการตรวจว่า
HTTPSเข้าเว็บด้วย https:// ได้และไม่มีคำเตือนใบรับรอง
โฟลเดอร์ install/ถูกลบหรือเปลี่ยนชื่อแล้ว
บัญชีผู้ดูแลเปลี่ยนรหัสผ่านจากค่าเริ่มต้นแล้ว และมีจำนวนน้อยที่สุดเท่าที่จำเป็น
อีเมลทดสอบส่งสำเร็จ เพื่อให้ฟีเจอร์ลืมรหัสผ่านใช้ได้จริง
การสำรองข้อมูลทดลองสำรองและดาวน์โหลดไฟล์ได้จริงอย่างน้อยหนึ่งครั้ง
โมดูลที่ไม่ใช้ปิดไว้ทั้งหมด
สิทธิ์การเห็นเมนูตั้งให้เหมาะกับแต่ละบทบาทแล้ว
ข้อมูลใบหน้าถ้าเปิดใช้ ได้ขอความยินยอมและมีทางเลือกอื่นให้ผู้ไม่ยินยอมแล้ว
Payment Gatewayถ้าเปิดใช้ ทดสอบด้วยคีย์ test ครบทุกกรณีแล้วจึงสลับเป็น live