오래 못 할 짓 하지 않기
[ 컴퓨터 보안 ] 3. Authentication (인증) + Set-UID 특수권한 본문
[ 컴퓨터 보안 ] 3. Authentication (인증) + Set-UID 특수권한
쫑알bot 2024. 9. 6. 16:19Authentication
: 유저의 고유 정보를 확인하는 과정
- 비밀번호
- ID값
등등으로 유저의 고유 정보를 볼 수 있다.
유저와 관련된 정보는 /etc/passwd 파일에 저장되어 있다.
아이러니하게도 파일 이름은 passwd지만 사실은 password를 제외한 모든 정보들이 담겨있다.
(passwd는 모든 유저가 접근 가능하기 때문에!)
* 가장 마지막에 있는 Path : 로그인했을 때 시작하는 주소.
📌 그럼 비밀번호는 어디에 있을까?
➡️ Shadow 파일에 있다.
해당 파일에서 각각의 Entry는 다음과 같은 형태로 저장되어있다.
유저 : $(사용된 알고리즘)$ Salt값들 $ Password Hash 시킨 값 : 기타 등등
좀 더 구체적인 형태를 보면 위와 같다.
1. Alice가 Bob(서버)에게 password를 보낸다.
2. Bob이 Password + Salt를 합쳐서 Hash로 돌린다.
그 이후에 같은지 다른지 비교도 하긴함.
📌 Salt란?
: 어느 부분이 Password를 hash로 한 부분인지 알 수 없도록 끼워넣는 무작위 문자열
- 목적 : Brute-force 공격의 진행을 늦추기 위해
같은 비밀번호로 설정해도 salt+password hash 결과는 매번 다르기에 맞추기가 어렵다.
Privileged Program
: 특수 권한을 사용하여 실행시키는 프로그램
- Daemons
: Background에서 돌아가는 프로그램들
실제 유저와 직접 교류하진 않는다.
+ 하지만 실행시키기 위해서는 root 권한이나, 특수 권한이 필요하다.
- Set -UID Programs
: File의 Owner가 아니지만, Owner의 권한으로 실행시키는 것
+ Program에 special bit로 표시되어있다.
예시)
아이언맨 수트를 입은 사람은 강해진다.
➡️ 내가 강하지 않더라도 그 수트를 입으면 강한 사람이 된다.
= 내가 File의 Owner가 아니도 set-UID를 통해 Owner처럼 파일을 다룰 수 있다.
+ 수트를 나쁜 놈들이 입으면 문제가 되듯이
이 권한을 나쁘게 쓰면 문제가 된다.
UID 관련해서는 2가지를 가진다.
- Real UID (RUID) : 진짜 파일/프로그램의 Owner ID
- Effective UID ( EUID ) : 해당 파일/프로그램에 privilege 를 가진 유저ID
이러한 권한을 이용한 공격은 2가지가 있다.
권한 = 파일에 Owner처럼 접근/작성할 수 있는 권한
- User Inputs : Explicit input
- System Input : Race condition
User Input
📌 Buffer overflow
: 버퍼에 이상한 코드를 꽉 채워 넣어서
입력 부분을 넘어 실행 영역에서 악성 코드가 실행되도록 하는 것
📌 Format String vulnerability
: String 으로 프로그램 동작을 바꾸기
System Input
📌 Race Condition
파일을 unprivileged file 에 Link 시킨다.
Environment에 입력을 줘서 바꿀 수도 있다.
혹은 Path를 넣어야 하거나
System 관련 명령어가 들어갈 자리에 악의적인 입력을 할 수도 있음
(출처)
한동대학교 고윤민교수님 - 컴퓨터보안
'3학년 2학기 > 컴퓨터 보안(Computer Security)' 카테고리의 다른 글
[ 컴퓨터 보안 ] 5. Buffer Overflow (0) | 2024.10.05 |
---|---|
[ 컴퓨터 보안 ] 4. Capability Leaking / Environment Variable (0) | 2024.09.10 |
[ 컴퓨터 보안 ] 2. Linux 권한 관련 (0) | 2024.09.03 |
[ 컴퓨터 보안 ] 1. Security의 개념 (0) | 2024.08.30 |
Buffer Overflow (0) | 2024.08.14 |