1.컴퓨터 아키텍처 및 운영체제
#컴퓨터 아키텍처 = CPU + 메모리 + 입출력 장치
CPU = 제어장치 + 연산장치 및 각종 레지스터
2. 커널 아키텍처
3. 인터럽트 및 시스템 콜
4. 보안 아키텍처
#Trusted Computing Base(TCB)
: 운영체제 보안을 위해 요구되는 하드웨어와 소프트웨어를 탐재한 시스템. 보안 정책 실행을 위해서 컴퓨터 시스템 내부에 있는 보호 매커니즘을 총체적으로 지칭함
-Intel SGX
-ARM TrustZone
5. 프로세스
#프로세스
: 실행중인 프로그램 ( = 메모리에 적재된 프로그램)
프로세스가 포함하고 있는 것 = 프로그램 코드 + current activity + stack + data section
-current activity : program counter(PC), processer's registers
-stack : return address, temporary variables
-data section : global variables
#프로세스 상태
new
running
waiting
ready
terminated
#프로세스 상태블록(PCB)
: 프로세스의 상태정보를 저장하는 구조체로, 운영체제가 프로세스에 대한 중요한 정보를 저장해놓는 저장 장소이다.
상태관리와 context switch을 위해 필요하다.
프로세스 생성 시 만들어진다.
- PID : 프로세스 고유 번호
- 프로세스 상태 : 준비 or 대기 or 실행
- 다음 실행될 프로세스의 포인터
- register save area
- CPU scheduling information : 스케줄링 및 프로세스 우선순위
- 할당된 자원 정보
- accounting information : cpu 사용시간, 실제 사용된 시간
- 입출력된 상태 정보 (I/O status information)
#context switch
: cpu가 이전의 프로세스 상태를 PCB에 보관하고 또 다른 프로세스 정보를 PCB에서 읽어와서 레지스터에 적재하는 과정.
- 인터럽트 발생
- 할당받은 CPU 사용 시간 모두 소모한 경우
- I/O 입출력을 위해 대기해야 하는 경우
#프로세스 주소공간
-가상 주소공간
즉, 가상 메모리 시스템을 사용하기 위해서는 가상 주소(virtual address)와 물리 주소(physical address)가 필요하다.
- virtual address(가상 주소): 프로세스가 참조하는 주소
- physical address(물리 주소): 실제 메모리 주소
https://jhnyang.tistory.com/33
[운영체제]PCB (Process Control Block)란? PCB 정보 & Context Switching 문맥교환 & Overhead 오버헤드
운영체제 목차 프로세스의 정의와 프로세스 상태에 대한 이해를 기반으로 하고 있습니다. 헷갈리시는 분은 이전 포스팅 보고 오기 프로세스를 조금 어렵게(?) 이렇게 표현하기도 해요 프로세스
jhnyang.tistory.com
[운영체제] 가상 메모리의 이해
가상 메모리(Virtual Memory) 리눅스의 각 프로세스마다 4GB를 차지한다. 그런데 통상 메모리는 16GB? 정도인 것도 있고, 코드는 메모리에 반드시 있어야 하는데 여러개의 프로세스들 실행할 때 메모리
libertegrace.tistory.com
6. 리눅스 보안
#리눅스의 파일 권한과 특수 권한
| 파일종류 | 특수권한 | 소유자 접근권한 | 그룹 소유자 접근권한 | 기타 사용자 접근 권한 | ||||||||
| -, d,c, b, s, l, p | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
| setuid | setgid | sticky bit | r | w | z | r | w | x | r | w | x | |
#setuid
1. setuid 비트 설정방법
-8진수(4XXX)나 기호(u+s)를 이용하여 setuid 비트를 설정 가능 (setgid 비트 설정 제거 u-s)
-권한 변경을 위해 chmod 명령어 이용
-setgid 비트가 설정되어 있는 상태에서 :
->그룹 소유자 접근 권한의 실행 권한 자리에 실행 권한이 있으면 소문자 s로,
-> 실행권한이 없으면 대문자 S로 표시
2. setuid 비트 설정 시 보안 취약점
root 권한이 필요없는 프로그램에 소유주가 root + setuid 설정된 경우 <- 보안상 매우 취약
-> 일반 사용자로 접근하는 경우도 setuid 설정으로 실행 가능해짐
==> 권한 상승 우려가 있기 때문에 setuid 프로그램의 수 최소화 필요
https://eunguru.tistory.com/115
[UNIX / Linux] 특수 권한(setuid, setgid, sticky bit)
프로세스 번호 - UNIX 시스템에서는 프로세스에 다섯 가지 번호 부여 1. 프로세스에 부여되는 번호들 1) 프로세스 식별자(PID) 2) 실제 사용자 ID(RUID) 3) 유효 사용자 ID(EUID) 4) 실제 사용자 그룹(RGID) 5
eunguru.tistory.com
'스터디 > 해킹실습2' 카테고리의 다른 글
| [취약점분석]buffer overflow, return oriented programming (0) | 2021.11.28 |
|---|---|
| [취약점 분석] 버퍼 오버플로우, Linux basics (0) | 2021.11.21 |
| [암호 및 응용] 암호 알고리즘, 아스키코드, XOR, DES, AES, RSA, Diffi - Hellman 키 교환, 링크 암호화 vs 종단간 암호화 (0) | 2021.11.01 |
| [네트워크 보안] Dos 공격, Spoofing 공격 (0) | 2021.10.10 |
| [네트워크보안] HTTP, cookie, caching, DNS, soket programming (0) | 2021.10.03 |