본문으로 건너뛰기

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.