Group 8 • นายเฉลิมเกียรติชนะชาญ • นายธนวิชญ์โทราช • นสอัญธิกาหนองบัว Assignment 2
Database Security Compare With File-System Security (Permission) • Standard Permission เป็น Permission ที่ได้นำเอำ Special Permission มำจัดกลุ่มให้จำนวนรำยกำรลดลงเหลือเพียง4 กลุ่มสำหรับ แฟ้ มข้อมูลได้แก่
Database Security Compare With File-System Security (Permission) • Read(RX) ประกอบด้วย Special Access 2 รำยกำรคือ Read และ Execute ซึ่งหมำยถึงสำมำรถอ่ำนข้อมูล และเรียกโปรแกรมมำทำงำน (ถ้ำแฟ้ มนั้นเป็นโปรแกรมรวม) • Change(RWXD) ใช้สำหรับอ่ำน/แก้ไข/ลบข้อมูล • Full Control(RWXDPO) สำมำรถทำรำยกำรได้ทั้งหมด • No Access() ไม่สำมำรถเรียกดูข้อมูลได้ ถึงแม้ว่ำจะอยู่ในกลุ่มที่กำหนดให้เรียกดูได้ (หมำยถึง No Access จะ Overwrite ควำมสำมำรถอื่น) รำยกำรสำหรับโฟลเดอร์ ได้แก่ (รูปแบบกำร แสดงเป็ น xxxx (dir-permission) (file-permission) วงเล็บแรกเป็นกำรกำหนดสิทธิ สำหรับโฟลเดอร์นั้น ส่วนวงเล็บหลังเป็นกำรกำหนดสิทธิของแฟ้ มข้อมูลในโฟลเดอร์นั้น
Specifications of Computer
Simple Database For A1 User
TablesName Users Passenger Airport Staff Admins Airport R CRU Full Control (CRUD) Airplane_Type - CRU Full Control (CRUD) Airplane - CRU Full Control (CRUD) Leg_Instance - CRU Full Control (CRUD) Seat R CRU Full Control (CRUD) Flight_Leg R CRU Full Control (CRUD) Flight R CRU Full Control (CRUD) Fare R CRU Full Control (CRUD) Can_Land - CRU Full Control (CRUD) Discretionary Access Control R: Read, Retrieve C: Create U: Update, Modify D: Delete, Destroy
Create User
•Mysql Create User
•Mysql คำสั่งที่ใช้ ผลลัพธ์ที่ได้
•Mysql Passenger คำสั่งที่ใช้
•Mysql สิทธิ์ที่ user Passenger สำมำรถเข้ำถึงได้
•Mysql Airport Staff คำสั่งที่ใช้ ผลลัพธ์ที่ได้
•Mysql Admins คำสั่งที่ใช้ ผลลัพธ์ที่ได้
•PostgreSQL Create user
•PostgreSQL คำสั่งที่ใช้ ผลที่ได้
•PostgreSQL Passenger คำสั่งที่ใช้
•PostgreSQL Airport Staff คำสั่งที่ใช้
•PostgreSQL Admins คำสั่งที่ใช้
•PostgreSQL ผลลัพธ์ที่ได้
•SQLite3 คำสั่งที่ใช้ สร้ำง user ubuntu ขึ้นมำ 2 user โดยที่ admins จะ ทำได้ทุกอย่ำง เช่นกำรอ่ำนข้อมูล
•SQLite3 Passenger จะอ่ำนได้อย่ำงเดียว ถ้ำ insert จะขึ้นดังรูป admin insert+select ได้
Database Log Files
Database Log Files • ตำแหน่งข อง Log files ใน Ubuntu : /var/log/postgresql/
การดู Database Log Files • สำมำรถกดดูได้ด้วยคำสั่ง cat , tail , head , nano , gedit ตัวอย่ำง tail postgresql-9.3-main.log
ตัวอย่ำง nano postgresql-9.3-main.log
Backup/Restore
Backup /Restore Database Files • Backup ใช้คำสั่ง pg_dump –Fc Database Name > Backup_Name.bak หรือ pg_dump –Ft Database Name > Backup_Name.tar • Restore ใช้คำสั่ง pg_restore –Fc Database Name > Backup_ Name.bak หรือ pg_resotre –Ft Database Name > Backup_Name.tar
PostgreSQLBackup /Restore ไฟล์จะอยู่ใน /var/lib/postgreSQL
PostgreSQLBackup /Restore สร้ำงdatabase ใหม่ คำสั่ง restore เสร็จแล้วจะปรำกฏดังรูป
PostgreSQLBackup /Restore
SQLite3Backup /Restore คำสั่ง backup ไฟล์จะอยู่บน desktop
SQLite3Backup /Restore คำสั่ง restore
mySQLBackup /Restore คำสั่ง backup คำสั่ง restore
mySQLBackup /Restore
Possible unethical uses of your group database?
•Our Database about airline reservations system.  การเปิดเผยข้อมูลลูกค้า (ผู้โดยสาร) เป็นการไม่สมควร เนื่องจากถือเป็นการละเมิดสิทธิส่วนบุคคล ซึ่งผิดต่อกฎหมาย และอาจก่อให้เกิดความเสียหายได้  การเปิดเผยข้อมูลเที่ยวบิน เนื่องจากอาจก่อให้เกิดความเสียหาย ต่อสายการบิน ทั้งด้านความปลอดภัย และความน่าเชื่อถือ อาจเป็น เหตุทาให้เกิดการก่ออาชญากรรมบนเครื่องบินได้ง่าย เพราะทราบ ข้อมูลทั้งหมดแล้ว
SQL Injection
• SQL INJECTION SQL injection is a technique where malicious users can inject SQL commands into an SQL statement, via web page input. เป็นเทคนิคที่ผู้ประสงค์ร้ายสามารถบีบคาสั่งของ SQL เข้าไปในข้อความ SQL ผ่านทางหน้าเวปเพจ Injected SQL commands can alter SQL statement and compromise the security of a web application. คาสั่ง SQL ที่ถูกบีบอัด สามารถปรับเปลี่ยนคาสั่ง SQL และยอมรับความปลอดภัยของเวป แอปพิเคชั่น
• Example of SQL Injection ต้องกำรค้นหำข้อมูลสำยกำรบิน DMK คำสั่ง SELECT * FROM Airport WHERE Airport_code = ‘DMK’;
• Example of SQL Injection และถ้ำเพิ่ม or 1=1 คำสั่ง SELECT * FROM Airport WHERE Airport_code = ‘DMK’ or 1=1;
• How to test SQL Injection ตรวจสอบเพื่อที่ต้องการหาว่าการค้นหาหรือดึงข้อมูล (Query) จากดาต้าเบส นั่นถูกต้องตามที่ ต้องการหรือไม่ ส่วนที่ต้องการตรวจสอบก็คือส่วนที่มีปฏิสัมพันธ์กับข้อมูลโดยตรง เช่น ส่วนของล็อกอินของผู้ใช้(Authentication) , ส่วนค้นหาข้อมูล(Search Engines) , ส่วนที่กรอก จานวนสินค้า หรือราคาต่างๆ (E-commerce)
• Standard SQL Injection Testing 1. SQL Injection based on 1 = 1 is always TRUE 2. SQL Injection based on “=“ is alsways TRUE 3. SQL Injection based on batched SQL statements
• SQL Injection Based on ""="" is Always True SELECT * FROM Airport WHERE Airport_code = ‘DMK’ or 1=1;
• SQL Injection based on “=“ is alsways TRUE
• SQL Injection based on batched SQL statements
Assignment 2 of Database (Database Security)

Assignment 2 of Database (Database Security)