주제 : Set-UID를 통해서 권한을 이행받을 수 있는 프로그램.
특권 프로그램의 필요성
비밀번호를 권한이 없는 다른 누군가가 변경 및 읽기 같은 접근을 하지 않기 위해서 리눅스에서는 /etc/shadow 파일에 유저의 비밀번호가 저장된다. 해당 파일은 owner만 읽기 쓰기가 가능하다. 그리고 그 owner는 루트(root)이다.
그렇다면 본인이 맞는 일반 유저의 경우에는 어떤 방식으로 해당 파일에 접근하여 비밀번호를 변경할 수 있을까?
2단계 접근 방식
접근 관리는 2가지 이다. (접근은 파일 접근, 시스템 메모리 접근 그런 것들을 통틀어서 말한다.)
- Fine-grained Access Control by Privileged Program-특권 프로그램을 이용하여 섬세하게 쪼개진 권한 제어
- Generic Access Control by OS(시스템 콜이 예시이다.) -일반적인 접근 권한을 OS로 제어.
그런데!
1번 방식의 대상인 많이 쪼개진 권한들도 OS가 하면 안 되나?
안 된다.
직접 OS에서 접근 권한을 잘게 쪼개(Fine-grained Access)어서 진 것들을 관리하는 것은 OS의 로직을 너무 복잡하게 만드는 것이다.(아무리 OS라도 무거우면 안 된다!)- "OS가 다 해주면 안 될까?" 이 발상은 좋지 않다.
그래서 OS는 확장에 의존 접근해서 Fine-grained한 Access를 제어하도록 한다.
(여기서 확장에 대한 이해는 OS와 확장방법 사이의 관계를 크롬과 크롬의 확장 프로그램이라고 생각하면 된다.
-크롬에서는 자동으로 유튜브의 번역을 해주지 않지만, 확장 프로그램을 이용하면 유튜브 내용을 자동으로 번역해주는 프로그램이 있다. 이런 식으로 보자.)
확장의 대표적으로 특권 프로그램(Privileged program)이 있다.
특권 프로그램의 종류 - Types of Privileged Programs
Daemons
Set-UID Programs
'[Computer Science] -보호글 > [소프트웨어 및 시스템보안]' 카테고리의 다른 글
[소프트웨어 및 시스템 보안] (0) | 2024.09.26 |
---|