• Mindscape ๐Ÿ”ฅ
    • Playlist ๐ŸŽง
  • ๐Ÿค– Artifical Intelligence

    • 1. Basics; Linear Algebra
    • 2. Basics; Linear Algebra (2), Search (1)
    • 3. Search (2)
    • 4. Knowledge and Logic (1)
    • 5. Knowledge and Logic (2)
    • 6. Probability
    • 7. Information Theory
    • 8. Probabilitc Reasoning (2)
    • 9. Probabilitc Reasoning (3)
    • 10. Machine Learning (1)
    • 11. Machine Learning (2)
    • 12. Machine Learning (3)
    • 13. Linear Models
    • 14. Other Classic ML Models (1)
    • 15. Other Classic ML Models (2)
  • ๐Ÿ”’ Computer Security

    • 01. Overview
    • 02. ์ •๋ณด๋ณด์•ˆ์ •์ฑ… ๋ฐ ๋ฒ•๊ทœ
    • 03. Cryptographic Tools
    • 04. User Authentication
    • 05. Access Control
    • 06. Database Security
    • 07. Malicious Software
    • 08. Firmware Analysis
  • ๐Ÿ—„๏ธ Database System

    • 1. Introduction
    • 2. Relational Model
    • 3. SQL
    • 6. E-R Model
    • 7. Relational Database Design (1)
    • 7. Relational Database Design (2)
    • 13. Data Storage Structures
    • 14. Indexing
    • 15. Query Processing
  • ๐Ÿ“ Software Engineering

    • 2. Introduction to Software Engineering
    • 3. Process
    • 4. Process Models
    • 5. Agile
    • 6. Requirements
    • 7. Requirements Elicitation and Documentation
    • 8. Architecture
    • 9. Unified Modelling Language
    • 10. Object-Oriented Analysis
    • Object-Oriented Design
  • ๐Ÿง  Algorithm

    • Python ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ํŒ
    • C++ std::vector ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ
    • Vim ์‚ฌ์šฉ ๋งค๋‰ด์–ผ
    • 1018๋ฒˆ: ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ
    • 1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ

06. Database Security

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค Databases

  • ํ•˜๋‚˜ ์ด์ƒ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐํ™”๋œ ๋ชจ์Œ
  • ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ๊ณผ ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ ๊ทธ๋ฃน ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํฌํ•จ
  • ๋•Œ๋กœ๋Š” ๋ณด์•ˆ์ด ํ•„์š”ํ•œ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Œ.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(DBMS, database management system)
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ ๋ชจ์Œ
    • ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ž„์‹œ query(ad hoc query) ๊ธฐ๋Šฅ์„ ์ œ๊ณต
  • Query language
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ํ†ต์ผ๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณต

DBMS Architecture

  • ์‚ฌ์šฉ์ž์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ SQL ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด DBMS์™€ ์ƒํ˜ธ์ž‘์šฉํ•จ.
  • Query Optimizer(์ฟผ๋ฆฌ ์ตœ์ ํ™”๊ธฐ)๋Š” SQL query๋ฅผ ํšจ์œจ์ ์ธ ์‹คํ–‰ ๊ณ„ํš์œผ๋กœ ๋ณ€ํ™˜ํ•จ.
  • Query Executor(์ฟผ๋ฆฌ ์‹คํ–‰๊ธฐ)๋Š” ๊ด€๊ณ„ํ˜• ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๊ณ„ํš์„ ์‹คํ–‰ํ•จ.
  • Storage Manager(์ €์žฅ ๊ด€๋ฆฌ์ž)๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฌผ๋ฆฌ์  ์ €์žฅ์„ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ๋ฒ„ํผ ๊ด€๋ฆฌ์ž, ๋””์Šคํฌ ๊ณต๊ฐ„ ๊ด€๋ฆฌ์ž, ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ์ž, ์ž ๊ธˆ ๊ด€๋ฆฌ์ž, ๋ณต๊ตฌ ๊ด€๋ฆฌ์ž ๋“ฑ์˜ ํ•˜์œ„ ๊ตฌ์„ฑ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ง.

Relational Databases

  • ํ–‰๊ณผ ์—ด๋กœ ๊ตฌ์„ฑ๋œ ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”
  • ๊ฐ ์—ด์€ ํŠน์ • ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์œ 
  • ๊ฐ ํ–‰์€ ๊ฐ ์—ด์— ๋Œ€ํ•œ ํŠน์ • ๊ฐ’์„ ํฌํ•จ
  • ์ด์ƒ์ ์œผ๋กœ๋Š” ๋ชจ๋“  ๊ฐ’์ด ๊ณ ์œ ํ•˜์—ฌ ํ•ด๋‹น ํ–‰์˜ ์‹๋ณ„์ž/key(ํ‚ค)๋ฅผ ํ˜•์„ฑํ•˜๋Š” ํ•˜๋‚˜์˜ ์—ด์„ ๊ฐ€์ง.
  • ๋ชจ๋“  ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” ๊ณ ์œ  ์‹๋ณ„์ž์— ์˜ํ•ด ์„œ๋กœ ์—ฐ๊ฒฐ๋œ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์˜ ์ƒ์„ฑ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด relational query language(๊ด€๊ณ„ํ˜• query์–ด)๋ฅผ ์‚ฌ์šฉ
  • ์‚ฌ์šฉ์ž๊ฐ€ ์ฃผ์–ด์ง„ ๊ธฐ์ค€์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉ

Figure 5.2 Relational Database Example

  • Staff, Branch, StaffBranch ์„ธ ๊ฐœ์˜ ํ…Œ์ด๋ธ”๋กœ ๊ตฌ์„ฑ๋œ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ˆ์‹œ
  • Staff ํ…Œ์ด๋ธ”์€ staffNo(๊ธฐ๋ณธ ํ‚ค), name, telNo, posn ์—ด์„ ๊ฐ€์ง.
  • Branch ํ…Œ์ด๋ธ”์€ branchNo(๊ธฐ๋ณธ ํ‚ค), bAddress ์—ด์„ ๊ฐ€์ง.
  • StaffBranch ํ…Œ์ด๋ธ”์€ Staff์™€ Branch๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉฐ, staffNo์™€ branchNo๋ฅผ ์™ธ๋ž˜ ํ‚ค๋กœ ๊ฐ€์ง.

Relational Database Elements

  • Relation(๊ด€๊ณ„), Table(ํ…Œ์ด๋ธ”), File(ํŒŒ์ผ)
  • Tuple(ํŠœํ”Œ), Row(ํ–‰), Record(๋ ˆ์ฝ”๋“œ)
  • Attribute(์†์„ฑ), Column(์—ด), Field(ํ•„๋“œ)
  • Primary key(๊ธฐ๋ณธ ํ‚ค)
    • ํ–‰์„ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„
    • ํ•˜๋‚˜ ์ด์ƒ์˜ ์—ด ์ด๋ฆ„์œผ๋กœ ๊ตฌ์„ฑ
  • Foreign key(์™ธ๋ž˜ ํ‚ค)
    • ํ•œ ํ…Œ์ด๋ธ”์„ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ์†์„ฑ๊ณผ ์—ฐ๊ฒฐ
  • View(๋ทฐ), Virtual table(๊ฐ€์ƒ ํ…Œ์ด๋ธ”)
    • ํ•˜๋‚˜ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์—์„œ ์„ ํƒ๋œ ํ–‰๊ณผ ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” query์˜ ๊ฒฐ๊ณผ

Structured Query Language (SQL)

  • 1970๋…„๋Œ€ ์ค‘๋ฐ˜ IBM์—์„œ ์ฒ˜์Œ ๊ฐœ๋ฐœ๋จ.
  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜, ์กฐ์ž‘ ๋ฐ queryํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ํ™”๋œ ์–ธ์–ด
  • ์—ฌ๋Ÿฌ ์œ ์‚ฌํ•œ ๋ฒ„์ „์˜ ANSI/ISO ํ‘œ์ค€ ์กด์žฌ
  • SQL ๋ฌธ์€ ๋‹ค์Œ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Œ.
    • ํ…Œ์ด๋ธ” ์ƒ์„ฑ
    • ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ๋ฐ ์‚ญ์ œ
    • ๋ทฐ ์ƒ์„ฑ
    • query๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰

SQL: Standard Query Language

  • SQL์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๊ณ  ๊ด€๋ฆฌ(query)ํ•˜๊ฒŒ ํ•จ.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์‹ ์†ํ•œ ๊ฒ€์ƒ‰ ๋ฐ ์กฐํšŒ๋ฅผ ์œ„ํ•ด ํ•„๋“œ์™€ ์—ด์ด ์žˆ๋Š” ํ…Œ์ด๋ธ”๋กœ ๊ตฌ์„ฑ๋œ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ๋ชจ์Œ์ž„.
  • ์˜ˆ์‹œ ํ…Œ์ด๋ธ” CS166:
    • ํ•„๋“œ/์—ด: First_Name, Last_Name, Code_ID
    • ๋ ˆ์ฝ”๋“œ/ํ–‰: (Bernardo, Palazzi, 345)

SQL Syntax

  • SELECT ๋ฌธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋จ.
  • ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์€ ๊ฒฐ๊ณผ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋จ.
  • WHERE ์ ˆ์€ ๋ ˆ์ฝ”๋“œ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋จ.
  • ๊ธฐ๋ณธ ๊ตฌ๋ฌธ:
    SELECT column_name(s) or *
    FROM table_name
    WHERE column_name operator value
    
  • ORDER BY๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ํ•„๋“œ(์—ด)๋ฅผ ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋จ.
  • LIMIT๋Š” ํŠน์ • ์ˆ˜์˜ ๋ ˆ์ฝ”๋“œ(ํ–‰)๋งŒ ๊ฒ€์ƒ‰ํ•˜๋„๋ก ํ—ˆ์šฉํ•จ.
  • ํ™•์žฅ ๊ตฌ๋ฌธ:
    SELECT column_name(s) or *
    FROM table_name
    WHERE column_name operator value
    ORDER BY column_name ASC|DESC
    LIMIT starting row and number of lines
    

OWASP top 10

  • 2013 OWASP Top 10 ๋ณด์•ˆ ์ทจ์•ฝ์  ๋ชฉ๋ก
    1. ์ธ์ ์…˜(Injection)
    2. Broken Authentication and Session Management(์ธ์ฆ ๋ฐ ์„ธ์…˜ ๊ด€๋ฆฌ ์ทจ์•ฝ์ )
    3. ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…(Cross-Site Scripting, XSS)
    4. Insecure Direct Object References(์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ง์ ‘ ๊ฐ์ฒด ์ฐธ์กฐ)
    5. Security Misconfiguration(๋ณด์•ˆ ์„ค์ • ์˜ค๋ฅ˜)
    6. Sensitive Data Exposure(๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ ๋…ธ์ถœ)
    7. Missing Function Level Access Control(๊ธฐ๋Šฅ ์ˆ˜์ค€ access control ๋ถ€์žฌ)
    8. ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ ์š”์ฒญ ์œ„์กฐ(Cross-Site Request Forgery, CSRF)
    9. Using Components with Known Vulnerabilities(์•Œ๋ ค์ง„ ์ทจ์•ฝ์ ์ด ์žˆ๋Š” ๊ตฌ์„ฑ์š”์†Œ ์‚ฌ์šฉ)
    10. Unvalidated Redirects and Forwards(๊ฒ€์ฆ๋˜์ง€ ์•Š์€ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋ฐ ํฌ์›Œ๋“œ)

SQL Injection Attack

  • ๋งŽ์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํผ์—์„œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ›์Œ.
  • ์ข…์ข… ์ด ์‚ฌ์šฉ์ž ์ž…๋ ฅ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ œ์ถœ๋˜๋Š” SQL query๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ๋จ. ์˜ˆ:
    • SELECT user FROM table WHERE name = 'user_input';
  • SQL Injection Attack(์ธ์ ์…˜ ๊ณต๊ฒฉ)์€ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์— SQL ๋ฌธ์„ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•จ.

Login Authentication Query

  • ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ query:
    • select * from users where user='$usern' AND pwd='$password'
  • ์ „ํ˜•์ ์ธ SQL ์ธ์ ์…˜ ๊ณต๊ฒฉ
    • ์„œ๋ฒ„ ์ธก ์ฝ”๋“œ๊ฐ€ ์›น ํผ์˜ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์œผ๋กœ๋ถ€ํ„ฐ ๋ณ€์ˆ˜ $username๊ณผ $passwd๋ฅผ ์„ค์ •
    • ๋ณ€์ˆ˜๊ฐ€ SQL query์— ์ „๋‹ฌ๋จ.
      • select * from users where user='$username' AND pwd='$passwd'
    • ๊ณต๊ฒฉ์ž์— ์˜ํ•ด ํŠน์ˆ˜ ๋ฌธ์ž์—ด์ด ์ž…๋ ฅ๋  ์ˆ˜ ์žˆ์Œ.
      • select * from users where user='M' OR 1=1 --' AND pwd='M' OR '1=1'
    • ๊ฒฐ๊ณผ: ์•”ํ˜ธ ์—†์ด ์ ‘๊ทผ ๊ถŒํ•œ ํš๋“

Some improvements โ€ฆ

  • query ์ˆ˜์ •:
    • select user,pwd from users where user='$usern'
    • $usern="M' OR '1=1"
    • ๊ฒฐ๊ณผ: ์ „์ฒด ํ…Œ์ด๋ธ”
  • ์šฐ๋ฆฌ๋Š” ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ.
    • ๋‹จ ํ•˜๋‚˜์˜ ํŠœํ”Œ ๊ฒฐ๊ณผ
    • ๊ฒฐ๊ณผ์˜ ํ˜•์‹์  ์ •ํ™•์„ฑ
  • $usern="M' ; drop table user;"์™€ ๊ฐ™์€ ๊ณต๊ฒฉ๋„ ๊ฐ€๋Šฅํ•จ.

Correct Solution

  • ๋ชจ๋“  "์•…์˜์ ์ธ" ๋ฌธ์ž๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” Escape(์ด์Šค์ผ€์ดํ”„) ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.
    • Escape("t ' c")๋Š” "t \' c"๋ฅผ ๊ฒฐ๊ณผ๋กœ ์ œ๊ณต
  • select user,pwd from users where user='$usern'์—์„œ $usern=escape("M' ;drop table user;")๋ฅผ ์ ์šฉํ•˜๋ฉด,
  • ๊ฒฐ๊ณผ๋Š” ์•ˆ์ „ํ•œ query๊ฐ€ ๋จ.
    • select user,pwd from users where user='M\' drop table user;\''

Database Access Control

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค access control ์‹œ์Šคํ…œ์€ ๋‹ค์Œ์„ ๊ฒฐ์ •ํ•จ.
    • ์‚ฌ์šฉ์ž๊ฐ€ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋˜๋Š” ์ผ๋ถ€์—๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š”์ง€
    • ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ค ์ ‘๊ทผ ๊ถŒํ•œ(์ƒ์„ฑ, ์‚ฝ์ž…, ์‚ญ์ œ, ์—…๋ฐ์ดํŠธ, ์ฝ๊ธฐ, ์“ฐ๊ธฐ)์„ ๊ฐ–๋Š”์ง€
  • ๋‹ค์–‘ํ•œ ๊ด€๋ฆฌ ์ •์ฑ…์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ์Œ.
    • Centralized administration(์ค‘์•™ ์ง‘์ค‘์‹ ๊ด€๋ฆฌ)
      • ์†Œ์ˆ˜์˜ ๊ถŒํ•œ ์žˆ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ณ  ์ทจ์†Œํ•  ์ˆ˜ ์žˆ์Œ.
    • Ownership-based administration(์†Œ์œ ๊ถŒ ๊ธฐ๋ฐ˜ ๊ด€๋ฆฌ)
      • ํ…Œ์ด๋ธ”์˜ ์ƒ์„ฑ์ž๊ฐ€ ํ•ด๋‹น ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ณ  ์ทจ์†Œํ•  ์ˆ˜ ์žˆ์Œ.
    • Decentralized administration(๋ถ„์‚ฐ ๊ด€๋ฆฌ)
      • ํ…Œ์ด๋ธ”์˜ ์†Œ์œ ์ž๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ ๋ถ€์—ฌ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ณ  ์ทจ์†Œํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ, ๊ทธ๋“ค์ด ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ณ  ์ทจ์†Œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ.

SQL Access Controls

  • ์ ‘๊ทผ ๊ถŒํ•œ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋‘ ๊ฐ€์ง€ ๋ช…๋ น:
    • GRANT: ํ•˜๋‚˜ ์ด์ƒ์˜ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž๋ฅผ ์—ญํ• ์— ํ• ๋‹นํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
    • REVOKE: ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ทจ์†Œ
  • ์ผ๋ฐ˜์ ์ธ ์ ‘๊ทผ ๊ถŒํ•œ:
    • SELECT, INSERT, UPDATE, DELETE, REFERENCES

Cascading Authorizations

  • ๊ถŒํ•œ์˜ ์—ฐ์‡„์  ์ทจ์†Œ๋ฅผ ์˜๋ฏธํ•จ.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž A๊ฐ€ B์—๊ฒŒ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ณ , B๊ฐ€ C์—๊ฒŒ, C๊ฐ€ D์—๊ฒŒ ๋™์ผํ•œ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ–ˆ์„ ๋•Œ, A๊ฐ€ B์˜ ๊ถŒํ•œ์„ ์ทจ์†Œ(REVOKE)ํ•˜๋ฉด, B๋กœ๋ถ€ํ„ฐ ๊ถŒํ•œ์„ ๋ถ€์—ฌ๋ฐ›์€ C์™€ D์˜ ๊ถŒํ•œ๋„ ์—ฐ์‡„์ ์œผ๋กœ ์ทจ์†Œ๋จ.

Role-Based Access Control (RBAC)

  • ์—ญํ•  ๊ธฐ๋ฐ˜ access control๋Š” ๊ด€๋ฆฌ ๋ถ€๋‹ด์„ ์ค„์ด๊ณ  ๋ณด์•ˆ์„ ํ–ฅ์ƒ์‹œํ‚ด.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค RBAC๋Š” ๋‹ค์Œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์•ผ ํ•จ.
    • ์—ญํ•  ์ƒ์„ฑ ๋ฐ ์‚ญ์ œ
    • ์—ญํ• ์— ๋Œ€ํ•œ ๊ถŒํ•œ ์ •์˜
    • ์‚ฌ์šฉ์ž์˜ ์—ญํ•  ํ• ๋‹น ๋ฐ ์ทจ์†Œ
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž ๋ฒ”์ฃผ:
    • Application owner(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์œ ์ž): ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ผ๋ถ€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋ฅผ ์†Œ์œ ํ•˜๋Š” ์ตœ์ข… ์‚ฌ์šฉ์ž
    • End user(์ตœ์ข… ์‚ฌ์šฉ์ž): ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋ฅผ ์กฐ์ž‘ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋ฅผ ์†Œ์œ ํ•˜์ง€ ์•Š๋Š” ์ตœ์ข… ์‚ฌ์šฉ์ž
    • Administrator(๊ด€๋ฆฌ์ž): ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ผ๋ถ€ ๋˜๋Š” ์ „์ฒด์— ๋Œ€ํ•œ ๊ด€๋ฆฌ ์ฑ…์ž„์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž

Inference Attack

  • query๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ˆ˜์‹ ๋œ ํ•ฉ๋ฒ•์ ์ธ ์‘๋‹ต์œผ๋กœ๋ถ€ํ„ฐ ์Šน์ธ๋˜์ง€ ์•Š์€ ์ •๋ณด๋ฅผ ์ถ”๋ก ํ•˜๋Š” ๊ณผ์ •
  • Inference channel(์ถ”๋ก  ์ฑ„๋„)
    • ์Šน์ธ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๊ฐ€ ํš๋“๋˜๋Š” ์ •๋ณด ์ „์†ก ๊ฒฝ๋กœ

Inference Example

  • ๊ณต๊ฒฉ์ž๋Š” ํ•ฉ๋ฒ•์ ์ธ ํ†ต๊ณ„ query๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ๊ฐœ์ธ์˜ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ์Œ.
  1. (์ „๊ณต='CS' AND ์„ฑ๋ณ„='๋‚จ')์ธ ์‚ฌ๋žŒ์˜ ์ˆ˜๋ฅผ queryํ•˜์—ฌ 1์ด๋ผ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์Œ.
  2. (์ „๊ณต='CS' AND ์„ฑ๋ณ„='๋‚จ')์ธ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์„ queryํ•˜์—ฌ Jones๋ผ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์Œ.
  3. ์ด ๋‘ ๊ฒฐ๊ณผ๋ฅผ ํ†ตํ•ด, ๋‚จ์„ฑ CS ์ „๊ณต์ž๊ฐ€ Jones ํ•œ ๋ช…๋ฟ์ž„์„ ์•Œ๊ฒŒ ๋จ.
  4. (์ „๊ณต='CS' AND ์„ฑ๋ณ„='๋‚จ')์ธ ์‚ฌ๋žŒ์˜ ํ‰๊ท  ๊ธ‰์—ฌ๋ฅผ queryํ•˜์—ฌ $50K๋ผ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์Œ.
  5. ๊ณต๊ฒฉ์ž๋Š” Jones์˜ ๊ธ‰์—ฌ๊ฐ€ $50K๋ผ๊ณ  ์ถ”๋ก ํ•จ.

Inference Countermeasures

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ ์‹œ ์ถ”๋ก  ํƒ์ง€
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ access control ์ฒด์ œ๋ฅผ ๋ณ€๊ฒฝ
  • query ์‹œ ์ถ”๋ก  ํƒ์ง€
    • query๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ๊ฑฐ๋ถ€
  • ๋‘ ์ ‘๊ทผ ๋ฐฉ์‹ ๋ชจ๋‘ ์ถ”๋ก  ํƒ์ง€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํ•„์š”ํ•จ.
    • ์–ด๋ ค์›€.
    • ์ง€์†์ ์ธ ์—ฐ๊ตฌ ์ฃผ์ œ์ž„.

Statistical Databases (SDB)

  • ๊ฐœ์ˆ˜ ๋ฐ ํ‰๊ท ๊ณผ ๊ฐ™์€ ํ†ต๊ณ„์  ์„ฑ๊ฒฉ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณต
  • ๋‘ ๊ฐ€์ง€ ์œ ํ˜•:
    • Pure statistical database(์ˆœ์ˆ˜ ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)
      • ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ๋งŒ ์ €์žฅ
    • Ordinary database with statistical access(ํ†ต๊ณ„์  ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ์ผ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)
      • ๊ฐœ๋ณ„ ํ•ญ๋ชฉ์„ ํฌํ•จ
      • DAC, MAC, RBAC๋ฅผ ์‚ฌ์šฉ
  • access control ๋ชฉํ‘œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ธฐ๋ฐ€์„ฑ์„ ์†์ƒ์‹œํ‚ค์ง€ ์•Š์œผ๋ฉด์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž„.
  • ๋ณด์•ˆ ๋ฌธ์ œ๋Š” ์ถ”๋ก ์˜ ๋ฌธ์ œ์ž„.

Abstract Model of a Relational Database

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ ˆ์ฝ”๋“œ BiB_iBiโ€‹์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋ชจ๋ธ๋ง๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ ๋ ˆ์ฝ”๋“œ๋Š” M๊ฐœ์˜ ์†์„ฑ ๊ฐ’ xijx_{ij}xijโ€‹์˜ ์—ฐ๊ฒฐ๋กœ ํ‘œํ˜„๋จ

    Bi=(xi1โˆฃโˆฃxi2โˆฃโˆฃโ€ฆโˆฃโˆฃxiM)B_i = (x_{i1} || x_{i2} || \dots || x_{iM})Biโ€‹=(xi1โ€‹โˆฃโˆฃxi2โ€‹โˆฃโˆฃโ€ฆโˆฃโˆฃxiMโ€‹)

Statistical Database Security

  • characteristic formula(ํŠน์„ฑ ๊ณต์‹) C ์‚ฌ์šฉ
  • ์†์„ฑ ๊ฐ’์— ๋Œ€ํ•œ ๋…ผ๋ฆฌ์‹
  • ์˜ˆ: (Sex=Male) AND ((Major=CS) OR (Major=EE))
  • ํŠน์„ฑ ๊ณต์‹ C์˜ query set(query ์ง‘ํ•ฉ) X(C)X(C)X(C)๋Š” C์™€ ์ผ์น˜ํ•˜๋Š” ๋ ˆ์ฝ”๋“œ์˜ ์ง‘ํ•ฉ์ž„.
  • ํ†ต๊ณ„์  query๋Š” query ์ง‘ํ•ฉ์— ๋Œ€ํ•ด ๊ณ„์‚ฐ๋œ ๊ฐ’์„ ์ƒ์„ฑํ•˜๋Š” query์ž„.

Other Query Restrictions

  • Query set overlap control(query ์ง‘ํ•ฉ ์ค‘๋ณต ์ œ์–ด)
    • ์ƒˆ๋กœ์šด query์™€ ์ด์ „ query ๊ฐ„์˜ ์ค‘๋ณต์„ ์ œํ•œ
    • ์—ฌ๋Ÿฌ ๋ฌธ์ œ์ ์„ ๊ฐ€์ง.
  • Partitioning(ํŒŒํ‹ฐ์…”๋‹)
    • ๋ ˆ์ฝ”๋“œ๋ฅผ ์—ฌ๋Ÿฌ ์ƒํ˜ธ ๋ฐฐํƒ€์ ์ธ ๊ทธ๋ฃน์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋ง
    • ๊ฐ ๊ทธ๋ฃน ์ „์ฒด์˜ ํ†ต๊ณ„์  ์†์„ฑ์„ query
  • Query denial and information leakage(query ๊ฑฐ๋ถ€ ๋ฐ ์ •๋ณด ์œ ์ถœ)
    • ๊ฑฐ๋ถ€๋Š” ์ •๋ณด๋ฅผ ์œ ์ถœํ•  ์ˆ˜ ์žˆ์Œ.
    • ๋Œ€์‘ํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž์˜ query๋ฅผ ์ถ”์ ํ•ด์•ผ ํ•จ.

Protecting Against Inference

  • ์ถ”๋ก  ๋ฐฉ์ง€ ๊ธฐ๋ฒ•์€ ํฌ๊ฒŒ Query Restriction(query ์ œํ•œ)๊ณผ Perturbation(์„ญ๋™)์œผ๋กœ ๋‚˜๋‹˜.
  • query ์ œํ•œ
    • query ์ง‘ํ•ฉ ํฌ๊ธฐ ์ œ์–ด
    • query ์ง‘ํ•ฉ ์ค‘๋ณต ์ œ์–ด
    • ํŒŒํ‹ฐ์…”๋‹
  • ์„ญ๋™
    • Data perturbation(๋ฐ์ดํ„ฐ ์„ญ๋™) (์˜ˆ: ๋ฐ์ดํ„ฐ ์Šค์™€ํ•‘)
    • Output perturbation(์ถœ๋ ฅ ์„ญ๋™) (์˜ˆ: ์žก์Œ ์ถ”๊ฐ€, ๋ฌด์ž‘์œ„ ํ‘œ๋ณธ)

Perturbation

  • ์›๋ณธ ๋ฐ์ดํ„ฐ์—์„œ ์ƒ์„ฑ๋œ ํ†ต๊ณ„์— ์žก์Œ(noise)์„ ์ถ”๊ฐ€
  • Data perturbation(๋ฐ์ดํ„ฐ ์„ญ๋™) ๊ธฐ๋ฒ•
    • ๊ฐœ๋ณ„ ๋ ˆ์ฝ”๋“œ์˜ ๊ฐ’์„ ์ถ”๋ก ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ํ†ต๊ณ„๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Œ.
  • Output perturbation(์ถœ๋ ฅ ์„ญ๋™) ๊ธฐ๋ฒ•
    • ์‹œ์Šคํ…œ์ด ์›๋ณธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ œ๊ณตํ•  ํ†ต๊ณ„์™€๋Š” ๋‹ค๋ฅธ ์ˆ˜์ •๋œ ํ†ต๊ณ„๋ฅผ ์ƒ์„ฑํ•จ.
  • Random-sample query(๋ฌด์ž‘์œ„ ํ‘œ๋ณธ query)
    • ๋ชฉํ‘œ๋Š” ์›๋ณธ ๊ฒฐ๊ณผ์™€ ์„ญ๋™๋œ ๊ฒฐ๊ณผ ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ž„.
    • ์ฃผ์š” ๊ณผ์ œ๋Š” ์‚ฌ์šฉํ•  ์˜ค๋ฅ˜์˜ ํ‰๊ท  ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ž„.

Data Perturbation Techniques: Data Swapping

  • Data swapping(๋ฐ์ดํ„ฐ ์Šค์™€ํ•‘)์€ ๋ฏผ๊ฐํ•œ ์†์„ฑ๊ณผ ๋น„๋ฏผ๊ฐ ์†์„ฑ ๊ฐ„์˜ ์—ฐ๊ด€์„ฑ์„ ๋Š๊ธฐ ์œ„ํ•ด ๋ ˆ์ฝ”๋“œ ๊ฐ„์— ๋น„๋ฏผ๊ฐ ์†์„ฑ ๊ฐ’์„ ๊ตํ™˜ํ•˜๋Š” ๊ธฐ๋ฒ•์ž„.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • ์งˆ๋ณ‘๊ณผ ๊ฑฐ์ฃผ ๋„์‹œ ๊ฐ„์˜ ์—ฐ๊ด€์„ฑ์„ ์ˆจ๊ธฐ๊ธฐ ์œ„ํ•ด, ๋‘ ๋ ˆ์ฝ”๋“œ์˜ ๋„์‹œ ๊ฐ’์„ ์„œ๋กœ ๋ฐ”๊ฟˆ.
  • ์ด ๋ฐฉ๋ฒ•์€ ๊ฐ ์†์„ฑ์— ๋Œ€ํ•œ 1์ฐจ ํ†ต๊ณ„(์˜ˆ: ๊ฐ ๋„์‹œ์— ์‚ฌ๋Š” ์‚ฌ๋žŒ์˜ ์ˆ˜)๋Š” ๋ณด์กดํ•˜๋ฉด์„œ, ์†์„ฑ ๊ฐ„์˜ ํ†ต๊ณ„์  ๊ด€๊ณ„๋ฅผ ์™œ๊ณกํ•จ.

Database Encryption

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชจ๋“  ์กฐ์ง์—์„œ ๊ฐ€์žฅ ๊ฐ€์น˜ ์žˆ๋Š” ์ •๋ณด ์ž์›
  • ์—ฌ๋Ÿฌ ๋‹จ๊ณ„, ๊ณ„์ธต์˜ ๋ณด์•ˆ์œผ๋กœ ๋ณดํ˜ธ๋จ.
    • ๋ฐฉํ™”๋ฒฝ, ์ธ์ฆ, OS access control ์‹œ์Šคํ…œ, DB access control ์‹œ์Šคํ…œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž์ฒด์— ๋Œ€ํ•œ ์•”ํ˜ธํ™”
  • ์•”ํ˜ธํ™”๋Š” ํŠนํžˆ sensitiveํ•œ ๋ฐ์ดํ„ฐ์— ์ฃผ๋กœ ๊ตฌํ˜„๋จ. (๊ฐœ์ธ์ •๋ณด๋ณดํ˜ธ๋ฒ•์— ์˜ํ•ด ๋ช…์‹œ)
  • ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋ ˆ์ฝ”๋“œ ์ˆ˜์ค€, ์†์„ฑ ์ˆ˜์ค€ ๋˜๋Š” ๊ฐœ๋ณ„ ํ•„๋“œ ์ˆ˜์ค€ ์ค‘ ์–ด๋А ์ˆ˜์ค€์— ์ ์šฉํ• ์ง€ ๊ฒฐ์ • ํ•„์š”
  • ์•”ํ˜ธํ™”์˜ ๋‹จ์ :
    • Key management(ํ‚ค ๊ด€๋ฆฌ)
    • Inflexibility(์œ ์—ฐ์„ฑ ๋ถ€์กฑ)
      • query ์ฒ˜๋ฆฌ ์‹œ
  • Data owner(๋ฐ์ดํ„ฐ ์†Œ์œ ์ž): ํ†ต์ œ๋œ release๋ฅผ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์กฐ์ง
  • User(์‚ฌ์šฉ์ž): ์‹œ์Šคํ…œ์— query๋ฅผ ์ œ์ถœํ•˜๋Š” human entity
  • Client(ํด๋ผ์ด์–ธํŠธ): ์‚ฌ์šฉ์ž query๋ฅผ ์„œ๋ฒ„์— ์ €์žฅ๋œ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ query๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ
  • Server(์„œ๋ฒ„): ๋ฐ์ดํ„ฐ ์†Œ์œ ์ž๋กœ๋ถ€ํ„ฐ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ํด๋ผ์ด์–ธํŠธ์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์กฐ์ง

Abstract Model of a Relational Database

  • ์•”ํ˜ธํ™”
    • E(k,Bi)=E(k,(xi1โˆฃโˆฃxi2โˆฃโˆฃโ€ฆโˆฃโˆฃxiM))E(k, B_i) = E(k, (x_{i1} || x_{i2} || \dots || x_{iM} ))E(k,Biโ€‹)=E(k,(xi1โ€‹โˆฃโˆฃxi2โ€‹โˆฃโˆฃโ€ฆโˆฃโˆฃxiMโ€‹))
  • Query: Salary <= $70K ?
    • ์ฒ˜๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Œ

Encryption Scheme for Database

  • index ๊ฐ’์„ ์ฐธ์กฐํ•ด์„œ ํ•ด๋‹น record๋งŒ ๋ณตํ˜ธํ™”
eidenamesalaryaddrdid
23Tom70KMaple45
860Mary60KMain83
320John50KRiver50
875Jerry55KHopewell92

(a) Employee Table

E(k,ย B)\textbf{E}(k,~B)E(k,ย B)I(eid)I(ename)I(salary)I(addr)I(did)
1100110011001011...110374
0111000111001010...57278
1100010010001101...25195
0011010011111101...55249

(b) Encrypted Employee Table with Indexes

Cloud Security

  • NIST๋Š” cloud computing(ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…)์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•จ MELL11: - "์ตœ์†Œํ•œ์˜ ๊ด€๋ฆฌ ๋…ธ๋ ฅ์ด๋‚˜ ์„œ๋น„์Šค ์ œ๊ณต์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์œผ๋กœ ์‹ ์†ํ•˜๊ฒŒ ํ”„๋กœ๋น„์ €๋‹๋˜๊ณ  ํ•ด์ œ๋  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ปดํ“จํŒ… ์ž์›(์˜ˆ: ๋„คํŠธ์›Œํฌ, ์„œ๋ฒ„, ์Šคํ† ๋ฆฌ์ง€, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ์„œ๋น„์Šค)์˜ ๊ณต์œ  ํ’€์— ๋Œ€ํ•ด ์œ ๋น„์ฟผํ„ฐ์Šคํ•˜๊ณ  ํŽธ๋ฆฌํ•˜๋ฉฐ ์ฃผ๋ฌธํ˜• ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋ชจ๋ธ. ์ด ํด๋ผ์šฐ๋“œ ๋ชจ๋ธ์€ ๊ฐ€์šฉ์„ฑ์„ ์ฆ์ง„์‹œํ‚ค๋ฉฐ, 5๊ฐ€์ง€ ํ•„์ˆ˜ ํŠน์„ฑ, 3๊ฐ€์ง€ ์„œ๋น„์Šค ๋ชจ๋ธ, 4๊ฐ€์ง€ ๋ฐฐํฌ ๋ชจ๋ธ๋กœ ๊ตฌ์„ฑ๋จ."

Cloud Computing Elements

  • 5๊ฐ€์ง€ ํ•„์ˆ˜ ํŠน์„ฑ
    • Broad Network Access
    • Rapid Elasticity
    • Measured Service
    • On-Demand Self-Service
    • Resource Pooling
  • 3๊ฐ€์ง€ service Models
    • ์„œ๋น„์Šคํ˜• ์†Œํ”„ํŠธ์›จ์–ด(SaaS, Software as a Service)
    • ์„œ๋น„์Šคํ˜• ํ”Œ๋žซํผ(PaaS, Platform as a Service)
    • ์„œ๋น„์Šคํ˜• ์ธํ”„๋ผ(IaaS, Infrastructure as a Service)
  • 4๊ฐ€์ง€ Deployment Models
    • Public
    • Private
    • Hybrid
    • Community

Cloud Computing Context

  • Cloud service provider: end user๊ฐ€ resource๋ฅผ ํ•„์š”ํ•œ ๋งŒํผ ์‚ฌ์šฉํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค ์ œ๊ณต

Cloud Security Risks

  • CSA(Cloud Security Alliance)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํด๋ผ์šฐ๋“œ ๊ด€๋ จ ์ฃผ์š” ๋ณด์•ˆ ์œ„ํ˜‘์„ ๋‚˜์—ดํ•จ.
    • ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์˜ ๋‚จ์šฉ ๋ฐ ์•…์˜์  ์‚ฌ์šฉ
    • ์•ˆ์ „ํ•˜์ง€ ์•Š์€(insecure) interface ๋ฐ API
    • ์•…์˜์ ์ธ ๋‚ด๋ถ€์ž
    • ๊ณต์œ ๋œ ๊ธฐ์ˆ  ๋ฌธ์ œ
    • ๋ฐ์ดํ„ฐ ์†์‹ค ๋˜๋Š” ์œ ์ถœ
    • Account ๋˜๋Š” Service hijacking
    • ์•„์ง ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์€(unknown) risk profile

Data Protection in the Cloud

  • ํด๋ผ์šฐ๋“œ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์œ ์ถœ ์œ„ํ˜‘์ด ์ฆ๊ฐ€
    • ํด๋ผ์šฐ๋“œ ๊ณ ์œ ์˜ ์œ„ํ—˜๊ณผ ๊ณผ์ œ
    • ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์˜ ์•„ํ‚คํ…์ฒ˜ ๋˜๋Š” ์šด์˜ ํŠน์„ฑ
    • Multi-instance model(๋‹ค์ค‘ ์ธ์Šคํ„ด์Šค ๋ชจ๋ธ)
      • ๊ฐ ํด๋ผ์šฐ๋“œ ๊ฐ€์ž…์ž์—๊ฒŒ ๊ฐ€์ƒ ๋จธ์‹  ์ธ์Šคํ„ด์Šค์—์„œ ์‹คํ–‰๋˜๋Š” ๊ณ ์œ ํ•œ DBMS๋ฅผ ์ œ๊ณต
      • ๊ฐ€์ž…์ž์—๊ฒŒ ๋ณด์•ˆ ๊ด€๋ จ ๊ด€๋ฆฌ ์ž‘์—…์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์ œ์–ด๊ถŒ์„ ๋ถ€์—ฌ
      • Multi-tenant model(๋‹ค์ค‘ ํ…Œ๋„ŒํŠธ ๋ชจ๋ธ)
        • ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์ž…์ž ์‹๋ณ„์ž๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํƒœ๊ทธํ•˜์—ฌ ๋‹ค๋ฅธ ํ…Œ๋„ŒํŠธ์™€ ๊ณต์œ ๋˜๋Š” ์‚ฌ์ „ ์ •์˜๋œ ํ™˜๊ฒฝ์„ ํด๋ผ์šฐ๋“œ ๊ฐ€์ž…์ž์—๊ฒŒ ์ œ๊ณต
        • ์ธ์Šคํ„ด์Šค๋ฅผ ๋…์ ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, ์•ˆ์ „ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž์—๊ฒŒ ์˜์กดํ•จ.

Summary

  • Database(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค): ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ ๋ชจ์Œ
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(DBMS): ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ
  • SQL(Structured Query Language): ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜/์กฐ์ž‘/queryํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด
  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: ํ–‰(ํŠœํ”Œ)๊ณผ ์—ด(์†์„ฑ)์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค access control: ์ค‘์•™ ์ง‘์ค‘์‹/์†Œ์œ ๊ถŒ ๊ธฐ๋ฐ˜/๋ถ„์‚ฐ ๊ด€๋ฆฌ
  • ์—ญํ•  ๊ธฐ๋ฐ˜ access control(RBAC): ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์œ ์ž/์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์œ ์ž ์ด์™ธ์˜ ์ตœ์ข… ์‚ฌ์šฉ์ž/๊ด€๋ฆฌ์ž
  • Inference channel(์ถ”๋ก  ์ฑ„๋„): ์Šน์ธ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๊ฐ€ ํš๋“๋˜๋Š” ์ •๋ณด ์ „์†ก ๊ฒฝ๋กœ
  • ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(SDB): query ์ œํ•œ/์„ญ๋™/๋ฐ์ดํ„ฐ ์Šค์™€ํ•‘/๋ฌด์ž‘์œ„ ํ‘œ๋ณธ query
  • Database Encryption(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•”ํ˜ธํ™”)
  • ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…/๋ณด์•ˆ/๋ฐ์ดํ„ฐ ๋ณดํ˜ธ
  • ๋‹ค์ค‘ ์ธ์Šคํ„ด์Šค/๋‹ค์ค‘ ํ…Œ๋„ŒํŠธ ๋ชจ๋ธ
์ตœ๊ทผ ์ˆ˜์ •: 25. 11. 6. ์˜คํ›„ 12:07
Contributors: kmbzn
Prev
05. Access Control
Next
07. Malicious Software

BUILT WITH

CloudflareNode.jsGitHubGitVue.jsJavaScriptVSCodenpm

All trademarks and logos are property of their respective owners.
ยฉ 2025 kmbzn ยท MIT License