มาทำให้
Security
เป็นเรื่องง่าย
หลายๆท่านคงคิดเหมือนผม
หัวข้อนี้มัน “มั่ว/ยาก”
จริงๆ และมักปรึกษา/ถามใคร
ไม่ค่อยได้
ผมจำได้แม่นเลยว่า
ผมข้องใจกับเรื่องนี้มากจนยอมไปอ่านหนังสือ ของ IBM ขนาดเล่มไม่ใหญ่ แต่เนื้อหาส่วนใหญ่เป็นบรรยาย ... สำหรับคนที่ชอบดูแต่ภาพ
(ภาษาไม่แข็งแรง) ถือว่า งานหนัก
บทความนี้จะตอบคำถามนี้ครับ
Q: มีหลักการ (ย่อ) อย่างไร ? (ถ้าเข้าใจ น่าจะเดาต่อได้ง่าย)
Q: มี Template อธิบายเข้าใจง่ายๆ หรือไม่ ? (อยากได้ทางลัด)
อยากเข้าใจ แบบย่อ
ระบบรักษาความปลอดภัย = ใคร มีสิทธิ์ใช้
Resource อย่างไร ?
“นีราพร
ไม่มีสิทธิ์ใช้ Web ABC ได้ แต่ ชนิดาภรณ์, จุฑามาศ สามารถใช้ได้”
“เด็ก
ไม่มีสิทธิ์ ดูทีวีหลัง 22:00 แต่ผู้ใหญ่
(ทำงานแล้ว) มีสิทธิ์”
“ศศศรันย์ ดู File ได้ แต่แก้ไขไม่ได้ ประทีป ดูและแก้ไข File ได้”
ประโยคข้างต้น จัดกลุ่ม ต้องมี
“นิยาม” กันเล็กน้อย = User, Role (กลุ่ม), Resource (สิ่งที่ควบคุม),
Function (รายละเอียดการควบคุม)
ลองจัดกลุ่มจาก ต.ย. ข้างต้นดูจะได้ตามนี้ครับ
“นีราพร
ไม่มีสิทธิ์ใช้ Web ABC ได้ แต่ ชนิดาภรณ์, จุฑามาศ สามารถใช้ได้”
ใคร (User)
|
นีราพร
, ชนิดาภรณ์,
จุฑามาศ
|
กลุ่ม
(Role)
|
นีราพร
|
|
ชนิดาภรณ์,
จุฑามาศ
|
Resource
|
Web ABC
|
Function
|
เปิดใช้
|
“เด็ก ไม่มีสิทธิ์
ดูทีวีหลัง 22:00 แต่ผู้ใหญ่ ดูได้”
ใคร (User)
|
(ไม่มี)
|
กลุ่ม
(Role)
|
เด็ก
|
|
ผู้ใหญ่
|
Resource
|
ทีวี
|
Function
|
เปิดใช้
|
“ศศศรันย์ ดู File ได้
แต่แก้ไขไม่ได้ ประทีป ดูและแก้ไข File ได้”
ใคร (User)
|
ศศศรันย์ ,ประทีป
|
กลุ่ม
(Role)
|
(ไม่มี)
|
Resource
|
File
|
Function
|
เปิดใช้
|
กลับมาเรื่อง
IT ต่อ
ผู้ใช้งาน IT
ระดับสังคม (องค์กร) ได้ “เข้าใจ”
ไม่ทางตรง/ทางอ้อม ของ “กฏ”
แล้ว เช่น
บัตร ATM,รหัสเข้าคอมพิวเตอร์, ระบบฯ, internet แต่ละคนมี
UserID และรหัสผ่าน
เมื่อสิ่งนั้นมีความสำคัญ
(เงินของเรา) ก็ไม่ควรให้ คนอื่น
ยืมบัตร, บอกรหัสผ่าน (เรามีสิทธ์ใช้ คนอื่นไม่มีสิทธิ์)
ผู้ที่เริ่มต้น IT มักจะได้รับ
“คำแนะนำ” (คำเตือน) “ก่อน”
เริ่มใช้
หมายเหตุ
บริษัทฯที่มีมาตรฐาน
จะอธิบายในขั้นตอนก่อนเริ่มทำงาน (Orientation) ... บริษัทได้อธิบาย/เตือนแล้ว
ต่างจาก เรื่องง่ายๆคุณน่าจะคิดได้เอง
คนที่สั่งให้ทำ Security ก็ต้องเป็น ผู้นำ(ระดับสูง) เช่น
เพื่อป้องกันเงิน,ข้อมูลความลับ เป็นต้น โดยมอบหมายให้ คนจัดการ Security (Admin) มักจะมี 1-3
คนเท่านั้นประกาศกฎ ส่วนคนที่เหลือทั้งหมด (99%) คือ ผู้ใช้งานตามกฏ ดังนั้นภาระจะตกกับ Admin ... คุ้นๆกับ กฏระเบียบในบริษัทฯ , กฏหมายของประเทศมั๊ยครับ (เรื่องใกล้ตัวมากเลย)
แล้วทำอย่างไร
ล่ะ
1.
จัดกลุ่ม แบบง่าย
a.
กลุ่ม Role, User เช่น {
Admin, User } , { Account, Marketing, … } , { Manager, Member }
b.
กลุ่ม Resource เช่น { Folder, File } , { Menu , Program }
Tip : จัดให้หยาบ ,
Level ไม่เกิน 3 ระดับ (อย่านำ
ภาพ Org ที่ซับซ้อนทั้งหมดมาใส่)
ใช้ Mind Map, Organize
Chart ช่วยวาดรูป
ถ้าทำงานสไตล์ “ไทย” Organize
เขียนไว้แบบหนึ่ง แต่ทำงานจริง ทำข้ามกลุ่ม ให้จัดกลุ่มตามที่ทำงานจริง
2.
กำหนด Function
a.
ทำ Function แบบง่ายก่อน ใช้ได้ (Access), ใช้ไม่ได้
(Deny)
b.
Function
อย่างละเอียด
จะทำภายหลัง จะใช้กับ กลุ่ม “ใช้ได้” (ดูได้, แก้ไขได้, คัดลอก/ลบ File ได้)
3.
จากการจับคู่
(1.a.) และ (1.b.) ภายใต้ Function
(2)
a.
รวบรวม “ข้อยกเว้น” เฉพาะไว้ เช่น Manager ของทุก Role ทำได้ทุกอย่าง
Tip : ไม่มีแบบไหน
ที่ดีที่สุด อาจจะต้องรวม
หลายแบบเข้าด้วยกัน
อาจจะต้องจัดกลุ่ม (1.a.) และ (1.b.)
ใหม่ (ถ้าทำไม่ซับซ้อน และเร็ว จะทำใหม่กี่รอบก็ได้)
4.
เช็ค ว่า
“กฏ” ที่กำหนด
ตรงตามต้องการหรือไม่ ?
Template
จาก Organize Chart
1. จัดกลุ่มแบบง่าย
1.a เปลี่ยนกำหนด Role/User เริ่มต้นจาก “ง่าย” ไปซับซ้อน ดังนี้
Figure 1
มี 3
Role 1 Level
- Manager และ Assistant
Manager
เป็นสมาชิกของ ทุก Role
- ทุกคนใน Role : Account มีสิทธิ์เหมือนกัน
หรือ เพิ่ม
Role : Manager (ดูดี) 4 Role 2 Level
ถ้าเลือก ภาพนี้สุดท้ายต้องทำ
1. สร้าง
3
Role
2. จัด
User
ทุกคนเข้าไปที่ Role (ถ้ามีพนักงาน 50 คนก็ป้อน
50 ครั้ง)
Figure 2
มี 7
Role 3 Level
คือ แยก Account เป็น Account_Head กับ Account_Member
1.b กำหนด/จัด Resource
Figure 3
จัด 3 กลุ่ม Resource
ตามแผนก เช่น แยก Folder , ชุดโปรแกรม ไว้ใน Folder, Lib, Database, …
อาจจะเพิ่ม
Role : All ไว้ด้านบน (ดูเป็น Organize)
ถ้าเลือกภาพนี้ สุดท้าย IT ต้องรวบรวมจัด
Folder Program,Library,
Database ให้
ตย. เช่น สร้างโปรแกรม Account ไว้ 1 Path เท่านั้น
Figure 4
จัด 5 กลุ่ม
โดยแยก Resource ที่อนุญาตให้ทุกคนเข้าได้ ไว้ที่ Share เช่น โปรแกรมดูรายงานพื้นฐาน,
Table ที่ทุกคนต้องใช้ร่วมกัน (Master)
Figure 5
10 กลุ่ม โดยแทนที่จะแยก Share ไปเพิ่มกลุ่มย่อย
2. กำหนด Function แบบง่าย
(ที่สุดก่อน)
Figure 6
ใน ASP.net
การ
ACL แบบง่ายกำหนดไว้แค่นี้
(ผมว่าเพียงพอแล้ว)
เมื่อเริ่มต้น งานที่ซับซ้อน ก็จัดการยากแล้ว ขอให้ทดลองเล่นๆดูก่อน ว่า “จัดการได้หรือไม่” ก่อนจะเปิดใช้จริง ใน Windows, iSeries รองรับรายละเอียดดังนี้
ได้ เรียกใช้ (ดู,แก้ไข), จัดการ(สร้าง, คัดลอก,ลบ)
3. จับคู่ Mapping โดยมองเป็นตาราง
ดังนี้
Table 1
|
Resource
|
Account
|
Marketing
|
HR
|
Role
|
Account
|
Access
|
Deny
|
Deny
|
Marketing
|
Deny
|
Access
|
Deny
|
HR
|
Deny
|
Deny
|
Access
|
แบบนี้ เข้าใจง่าย และ สร้าง
ง่ายที่สุด (ต้องระบุ/ป้อน 9 ช่อง)
ในระบบการกำหนดค่ามักจะอนุญาตให้ Default ค่าเริ่มเป็น “Deny” ทำให้ต้องป้อนแค่ 3 ช่องเท่านั้น (เร็ว + ง่าย)
แทนที่จะบอกว่า พนักงาน 50 คนเข้าใช้อะไรได้บ้าง ก็บอกเป็น “กลุ่ม Role” อะไร ใช้กับ “กลุ่ม Resource” อะไรได้บ้าง
เริ่มเห็นภาพน๊ะครับว่า
ถ้าทำข้อ 1,2 ไว้ ซับซ้อน ข้อ 3. จะยุ่งยากมาก
Table 2
|
Resource
|
Account
|
Marketing
|
HR
|
Role
|
Manager
|
Access
|
Access
|
Access
|
Account
|
Access
|
Deny
|
Deny
|
Marketing
|
Deny
|
Access
|
Deny
|
HR
|
Deny
|
Deny
|
Access
|
เมื่อเลือกใช้ Role:Manager จะเพิ่ม การกำหนด (ป้อน 12 ช่อง)
Table 3
|
Resource
|
Account
|
Marketing
|
HR
|
Role
|
Manager
|
Manger
|
Access
|
Access
|
Access
|
Account
|
Account_Head
|
Access
|
Deny
|
Deny
|
|
Account_Member
|
Access
|
Deny
|
Deny
|
Marketing
|
Marketing_Head
|
Deny
|
Access
|
Deny
|
|
Marketing_Member
|
Deny
|
Access
|
Deny
|
HR
|
HR_Head
|
Deny
|
Deny
|
Access
|
|
HR_Member
|
Deny
|
Deny
|
Access
|
จากตารางข้างต้น ถ้าแบ่ง Head
และ
Member โดยที่มีสิทธิ ใช้ “เท่ากัน” ไม่จำเป็นต้องแบ่ง Head, Member ให้เสียเวลา (ป้อนรวม
21 ช่อง)
ตารางข้างต้น อาจจะมีประโยชน์
ถ้ากำหนด หน้าที่แบบนี้ Account_Head สามารถเข้าไปดู Marketing ได้
Table 4
|
Resource
|
Account
|
Marketing
|
HR
|
Role
|
Manager
|
Manger
|
Access
|
Access
|
Access
|
Account
|
Account_Head
|
Access
|
Access
|
Deny
|
|
Account_Member
|
Access
|
Deny
|
Deny
|
Marketing
|
Marketing_Head
|
Deny
|
Access
|
Deny
|
|
Marketing_Member
|
Deny
|
Access
|
Deny
|
HR
|
HR_Head
|
Deny
|
Deny
|
Access
|
|
HR_Member
|
Deny
|
Deny
|
Access
|
จำได้มั๊ยครับ! รวมรวม อะไรที่ยกเว้นเฉพาะ ไว้
ตย. ข้างต้น กรณีพิเศษ
เดียว เราจะไม่เพิ่มโครงสร้าง “เผื่อไว้”
(เพิ่ม 9 ช่อง เพื่อแก้ปัญหา ช่องเดียว)
เราจะแก้ปัญหาเฉพาะ โดย ระบุเพิ่ม
ว่า User-K (ใน Role:Account) มีสิทธิใช้ Resource: Marketing
ใน iSeries เรียกตัวนี้ว่า Grant Authorize (คำเตือน ห้ามใช้
โดยที่ไม่เข้าใจเป็นอันขาด ตย. Grant
ให้
User-J มีสิทธ์เท่า Admin สิ่งที่มันทำคือ
เข้าไปทีละ Object แล้วเพิ่มสิทธิ ในขณะที่เข้าไป “มันจะหยุดการใช้ Object ทั้งหมด” พูดง่ายๆ เครื่องจะ Hang ไป )
FAQ
Q: สร้าง Security เป็นของตนเอง หรือใช้ของ IBM, Microsoft ดี
A: (ความเห็นของผม) ใช้ของผู้ผลิตดีที่สุด
ลด/เพิ่มได้ (สร้างเอง
ไม่มีทางทำได้ครอบคลุม)
Q: สร้างไว้ใช้เอง อยู่แล้ว
ต้องเปลี่ยนมั๊ย ?
A: ถ้าคุณไม่โดน Audit หรือระบบคุณไม่มีปัญหา ไม่ต้องเปลี่ยนครับ ที่แนะนำไว้จะทำให้คุณชั่งน้ำหนักได้ว่าคุณขาดอะไร
?
Q: มีเรื่องอื่น อีกมั๊ย ?
A: มีครับ แต่จุกจิกและซับซ้อนตามสิ่งที่คุณพบ เช่น Role
แยกกลุ่มใหญ่อีก
(อ่านไม่ผิดกลุ่มใหญ่) ต้องจัดเข้าไปอยู่ใน
AD (windows) ของบริษัทแม่, ใช้หลาย Server
OS มี Role
ของตนเอง และ หลากหลาย Role
ใน
DB เป็นต้น
ไม่ง่ายที่จะสื่อสาร
คนส่วนใหญ่ไม่ค่อยอยากฟังเรื่องยาก/ปวดหัว กลายเป็น “หนีปัญหา” ไปผมเชื่อว่า
ถ้าเรา “หนี” ไม่ได้ ก็วิ่งเข้าใส่ เลยดีกว่า (ถ้ามันไม่ยาก แล้วมากลัวมัน ก็ต้องหนีกันชั่วชีวิต)
การบอก “กฏ”(วิธี) หรือ เปลี่ยนสิ่งที่รู้สึกว่า “ได้” / “ห้าม”
เป็นการ “เขียน” มันไม่ง่าย
“ไม่มีสิทธิ์ใช้” ... ต้องป้องกัน ไม่ให้รู้เลยว่ามี หรือ บอกให้รู้ แต่ห้ามไม่ให้ใช้
“ดูได้ แต่แก้ไขไม่ได้” ... File ใน Computer
ถ้าดูได้ ก็ต้อง Copy ได้น๊ะ แก้ไขนับรวม Copy หรือไม่ ?
เขียนสั้นไป
ก็ตีความได้หลากหลาย, เขียนบรรยายยาวเกินไป ก็ทำให้มากเกิน (ไม่อยากอ่าน = ไม่รู้กฏ)
Q: คุณเคยอ่านหนังสือ “กฏ” ของบริษัท,กฏหมาย รัฐธรรมนูญ มั๊ยครับ ?
(สิ่งที่ต้องรู้ แต่มันมีมาก)
A: มันน่าเบื่อ (เข้าใจยาก + ต้องใช้เวลา)
Tip : หลายที่ใช้เทคนิค
เพื่ออธิบาย ดังนี้
พูด/อธิบาย แทนการ
ให้อ่านเอง
ช่วงอธิบายยาว ก็พูดให้ “สั้น” โดย พูดโดยเน้นเฉพาะเรื่องที่
“ไม่คุ้นเคย” เช่น “เน้น”
กฏการขับรถ พูดให้คนต่างชาติ
(ประเทศเขาขับรถชิดเลนขวา) แต่คนไทย ไม่ต้องอธิบาย
ย้ายบางเรื่องไปพูดแทรก ในขณะอธิบาย
ชีวิตประจำวัน เช่น การใช้เครื่องจักร, ใช้ห้องสมุด
ก็แทรก “กฏ”
ค้นหา สิ่งผิดปรกติ
เช่น การใช้ห้องน้ำ
ของคนต่างจังหวัด กับในเมือง (นั่งยอง, นั่งโถ, มีระบบไฟฟ้า)
Q: คนไทยชอบคิดแบบ “ศรีธนชัย” –
ดูเป็นเรื่องสนุกดี (คนรุ่นใหม่ รู้จักกันหรือเปล่าครับ ถ้าไม่ได้เรียน คงเคยได้ยิน “กฏ มีไว้แหกกฏ” หรือ
ขอ “แถ” ไปจนได้)
A: ถ้า “กฏ” ถูกสร้างบนความจำเป็น + เข้าใจ คนส่วนใหญ่คงไม่ “แถ” ออกไปครับ
ความเห็นส่วนตัว
ทุกคนที่อยู่ในสังคม มีส่วนในการทำตาม “กฏ” และมีโอกาศเป็นคน “สร้าง” กฏ ...
เข้าใจซะ (อย่า ละเลย)
เมื่อเป็น
“ผู้สร้าง” กฏ ก็สร้าง “กฏ ที่ดี”
เข้าใจง่าย/รัดกุม
เมื่อต้อง
“ทำตาม” กฏ ก็ทำด้วยความเข้าใจ (มากกว่า จะแหกกฏ)
---คิดแบบนี้ “สังคม”
จะเป็นระเบียบ---
จริงหรือไม่
?
ในชีวิตประจำวัน ก็มี “กฏ” เต็มไปหมด ถ้าเขียนออกมาคงมีมาก
“กฏ” = ข้อมูล
ที่การถ่ายทอด/สอน จาก คนหนึ่ง ไปอีก คนหนึ่ง
วิธีถ่ายทอด “ที่ง่าย + ดี” คือ
การถ่ายทอด ผ่านชีวิตประจำวัน
“กฏ”
พื้นฐาน จะสอนผ่าน “สังคม” ครอบครัว – เด็กๆ
ที่ถูกเลี้ยงด้วยทีวี, เกมส์
ไม่ค่อยมีเวลาคุยกับครอบครัว
ก็จะไม่รู้ “กฏ” ดังกล่าว ... คุ้นตามั๊ยครับ คนรุ่นใหม่ (Gen Y) ใช้มือถือขณะกินข้าวเป็นเรื่องปรกติ คนรุ่นเก่า ถือว่าเป็น “กฏ” ห้ามทำ ...
ระหว่างกินข้าว
ระดับถัดไป คือ “สังคม” ในโรงเรียน/มหาวิทยาลัย
และสุดท้าย “กฏ” เฉพาะด้าน จะถูกอธิบาย
“ก่อน” การใช้ เช่น
การขับขี่มอเตอร์ไซต์, ขับรถ, ใช้คอมพ์, เครื่องจักร เป็นต้น
เป็นหน้าที่ของ ผุ้สอน ที่ต้อง “อธิบาย”
(เริ่มต้นที่ ผู้สอน ก่อน)
ถ้าในแต่ละ
ช่วงเวลา – ไม่คุยกัน- -หนี/ไม่ฟัง- -เลี่ยง/ไม่สอน- จะเกิดอะไร
วันนี้ “คุณ” ได้ทำหน้าที่ “สื่อสารที่ดี” หรือยัง ? (เริ่มที่ตนเองก่อน)
สรุป
ถ้ามองอย่างกลางๆ จะพบว่า
“หลักการ” ไม่ยากอะไร ขั้นตอนการ “เลือก”
แบบที่จะทำ ต้องแยกแยะสิ่งที่อยากได้(คุ้นเคย) กับ
สิ่งที่ต้องทำ ออกจากกัน (ตย. ข้างต้นแสดงให้เห็นว่า เริ่มทำจาก Organize Chart ของบริษัท แต่สุดท้ายไม่จำเป็นต้องเหมือน) และเพื่อให้จัดการง่าย ควรเน้นความเข้าใจ รวมทั้งปรับวิธีการสื่อสารที่เหมาะสม