BLP
개요
Bell–LaPadula (BLP) 모델(1973)은 보안 수준을 통해 **기밀성(confidentiality)**을 적용합니다: 주체는 허가(clearance)를 가지고 있고, 객체는 분류(classification)를 가집니다. 두 가지 규칙: 상향 읽기 금지(더 높은 수준의 데이터를 읽을 수 없음), 하향 쓰기 금지(더 낮은 수준의 데이터에 쓸 수 없음).
모델
[request_definition]
r = sub, sub_level, obj, obj_level, act
[policy_definition]
p = sub, obj, act
[role_definition]
g = _, _
[policy_effect]
e = some(where (p.eft == allow))
[matchers]
m = (r.act == "read" && r.sub_level >= r.obj_level) || (r.act == "write" && r.sub_level <= r.obj_level)
정책
일반적으로 p 규칙이 필요하지 않습니다; 매처가 요청 레벨로부터 BLP를 구현합니다:
- 상향 읽기 금지: 주체는 더 높은 보안 수준의 객체를 읽을 수 없습니다
- 하향 쓰기 금지: 주체는 더 낮은 보안 수준의 객체에 쓸 수 없습니다
예시
요청 예시
alice, 3, data1, 1, read # alice (level 3) reads data1 (level 1) - ALLOWED
bob, 2, data2, 2, read # bob (level 2) reads data2 (level 2) - ALLOWED
charlie, 1, data1, 1, read # charlie (level 1) reads data1 (level 1) - ALLOWED
bob, 2, data3, 3, read # bob (level 2) reads data3 (level 3) - DENIED (No Read Up)
charlie, 1, data2, 2, read # charlie (level 1) reads data2 (level 2) - DENIED (No Read Up)
alice, 3, data3, 3, write # alice (level 3) writes data3 (level 3) - ALLOWED
bob, 2, data3, 3, write # bob (level 2) writes data3 (level 3) - ALLOWED
charlie, 1, data2, 2, write # charlie (level 1) writes data2 (level 2) - ALLOWED
alice, 3, data1, 1, write # alice (level 3) writes data1 (level 1) - DENIED (No Write Down)
bob, 2, data1, 1, write # bob (level 2) writes data1 (level 1) - DENIED (No Write Down)
보안 수준
BLP는 보안 수준을 정수로 표현하며, 값이 높을수록 더 높은 보안 등급을 나타냅니다:
- 레벨 1: 공개/비분류
- 레벨 2: 대외비
- 레벨 3: 비밀
- 레벨 4: 최상급 비밀
사용 사례
일반적인 BLP 모델 응용 분야:
- 군사 및 정부 시스템
- 금융 기관
- 헬스케어 시스템
- 엄격한 정보 흐름 제어가 필요한 환경
구현 참고 사항
- 강제 접근 제어(MAC) 적용
- 시스템 관리자가 보안 등급을 할당함
- 접근 결정은 사용자 신원이 아닌 보안 등급에 의존함
- 읽기/쓰기 작업을 통한 정보 유출 방지
Comments are powered by giscus and GitHub Discussions. They load from giscus.app and GitHub only after you click the button below.