정보보안기사/필기

[정보보안기사 필기 정리] PART 04. 시스템 보안

sa1t 2025. 2. 19. 16:16
반응형

SECTION 12. 보안 운영체제

1️⃣ 보안 운영체제

🌐 기본 개념

💠 보안 운영체제의 기술적 핵심은 정보영역의 분리, 역할기반 영역분리, 최소권한 유지, 커널 레벨의 강제적 접근통제(MAC) 등을 들 수 있다.

 

2️⃣ 보안 운영체제의 주요 제공 기능

🌐 보호 대상 : 메모리, 보조기억장치 상의 파일 또는 데이터의 집합, 메모리상에서 실행중인 프로그램, 파일들의 디렉터리, 하드웨어 장치

 

🌐 보호 방법

💠 물리적 분리 : 사용자 별로 별도의 장비 사용

💠 시간적 분리 : 프로세스가 동일 시간에 하나씩만 실행

💠 논리적 분리 : 각 프로세스에 논리적인 구역을 지정하는 방법

💠 암호적 분리 : 내부에서 사용되는 정보를 암호화

✔️ 아래로 내려올수록 구현 복잡도 증가

 

🌐 파일 시스템 보호

💠 파일 보호 기법 : 파일 이름의 명명(naming), 패스워드(password), 암호화(cryptography)

 

3️⃣ 보안 운영체제와 보안커널

🌐 보안 운영체제의 보안 기능

💠 사용자 식별 및 인증 : 각각의 사용자는 고유하게 식별될 수 있어야 한다.

💠 임의적(DAC)/강제적(MAC) 접근 통제

✔️ 임의적(DAC) : 신분기반 정책, 소속 그룹의 신분에 근거하여 객체에 대한 접근을 제한

✔️ 강제적(MAC) : 규칙기반 정책, 객체의 비밀등급과 주체가 갖는 권한에 근거하여 객체에 대한 접근을 제한

💠 객체 재사용(Object Reuse) 보호 : 할당되는 기억공간에 이전의 데이터가 삭제되지 않고 존재할 때 비밀데이터 노출 위험

💠 완전한 조정 : 임의적/강제적 접근통제가 효과적이기 위해서는 모든 접근을 통제해야한다.

💠 신뢰 경로 : 안전한 경로라고 불리는 안전한 통신을 원하는데 보안 운영체제는 이러한 안전한 경로 제공할 수 있어야한다.

💠 감사 및 감사 기록 축소 : 모든 보안 관련 사건은 감사기록부에 반드시 기록되어야 하고 감사기록부는 보호되어야 한다.

 

🌐 보안커널

💠 기본 개념 : 참조 모니터를 구현하고 집행한다.

💠 신뢰 컴퓨팅 기반 (TCB, Trusted Computing Base)

✔️ 하나의 컴퓨터 시스템 내의 모든 보호 메커니즘의 총체

✔️ 신뢰된 경로는 사용자, 프로그램 그리고 커널과의 통신채널

✔️ 보안경계는 시스템 구성요소 중 신뢰/비신뢰 구성요소의 경계, 물리적 실체가 아닌 운영시스템에 의해 사용되는 개념적인 부분

💠 보안커널 설계 시 고려사항

✔️ 참조모니터(Reference Monitor) : 모든 접근 통제를 담당하는 추상머신, 격리성, 완전성, 검증 가능성 규칙

✔️ 보안 커널데이터베이스(SKDB, Security Kernel Data Base)를 참조하여 객체에 대한 접근 허가 여부를 결정하여아 한다.

 

4️⃣ 신뢰 플랫폼 모듈 (TPM, Trusted Platform Module)

🌐 개요

💠 기본 개념 : 신뢰컴퓨팅을 위한 하드웨어/소프트웨어 방법에서 핵심이 되는 하드웨어 모듈

💠 특징

✔️ 신뢰 컴퓨팅의 가장 하단에 위치하는 TPM은 훼손 방지(tamper protected)가 필수적이기에 하드웨어 칩으로 구현 일반적, 소프트웨어로 구현하기도 함

✔️ 신뢰관련 연산으로 암호화키의 생성과 저장, 패스워드 저장, 무결성의 검증, 측정값의 저장, 디지털 인증서 관련 신뢰 연산 제공

 

🌐 기본 서비스

💠 인증된 부트 서비스 : 각 부분이 사용을 위해 승인된 버전임을 보장한다.

💠 인증 서비스 : TPM의 사설키를 사용하여 설정 정보에 서명함으로써 디지털 인증 만들 수 있다.

💠 암호화 서비스 : 데이터의 암호화를 지원한다.

 

🌐 TPM 함수

💠 구성요소

✔️ I/O , 암호화 보조 프로세서, 키 생성, HMAC 엔진, 무작위 숫자 발생기, SHA-1 엔진, 전원 탐지, Opt-In, 실행엔진, 비휘발성 메모리, 휘발성 메모리

 

SECTION 13. 클라이언트 보안

1️⃣ 악성 소프트웨어 (악성코드)

🌐 개요

💠 악성 소프트웨어의 기본 개념

구분 컴퓨터 바이러스 (무결성) 트로이 목마 (기밀성) 웜 (가용성)
자기 복제 있음 없음 매우 강함
형태 파일이나 부트섹터 등 감염 대상 필요 유틸리티로 위장하거나 유틸리티 안에 코드 형태로 삽입 독자적으로 존재
전파 경로 사용자가 감염된 파일을 옮김 사용자가 내려 받음 네트워크를 통해 스스로 전파
주요 증상 해당 컴퓨터의 시스템 및 파일 손상 pc 성능 저하, 좀비 pc 네트워크 성능 저하

 

💠 악성 소프트웨어의 분류

✔️ 독립형과 기생형

◾ 호스트 프로그램이 필요한 악성 소프트웨어 : 바이러스, 논리폭탄, 백도어

◾ 호스트 프로그램이 필요하지않는 악성 소프트웨어 : 웜, 좀비프로그램

✔️ 자기 복제 여부

◾ 자기 복제 여부에 따라 바이러스성 - 비 바이러스성 악성코드로 분류

◾ 바이러스성 악성코드 : 웜, 바이러스

◾ 비-바이러스성 악성코드 : 트로이목마, 백도어

 

🌐 바이러스 (Virus) : 다른 프로그램을 변형시키도록하여 감염 시키는 프로그램

💠 세대별 분류

✔️ 제 1세대 원시형 바이러스 : 코드의 변형이나 변화 없이 고정된 크기

✔️ 제 2세대 암호화 바이러스 : 바이러스 프로그램의 일부 또는 대부분을 암호화 시켜서 저장

✔️ 제 3세대 은폐형 바이러스 : 감염된 파일의 길이가 증가하지 않은 것 처럼 보이게하며, 감염되기 전의 내용을 보여줘 사용자를 속임

✔️ 제 4세대 갑옷형 바이러스 : 여러단계의 암호화와 다양한 기법을 동원하여 바이러스 분석 어렵게하고 백신 개발 지연

✔️ 제 5세대 매크로 바이러스 : MS사 오피스 제품군 등 매크로기능이 있는 프로그램에서 활동

💠 매크로 바이러스

✔️ 플랫폼과 무관하게 사용, 문서를 감염시키고 코드의 실행부분은 감염시키지 않음, 

💠 바이러스 방지책 : 예방

✔️ 탐지, 식별, 제거 능력 필요

✔️ 안티바이러스 필터링 방법

◾ signature scanning (misuse 오용) : 특정 바이러스만 가진 유일한 형태의 Signature를 찾아내는 방법

◾ behavioral virus scanning (anomaly 비정상) : 바이러스가 수행 중에 어떤 행동을 보이는지 추적하는 방법

💠 바이러스 예방

✔️ Windows Script Host, Active X, VBScript, JavaScript는 비활성화 한다.

 

🌐 웜(Worm)

💠 개요 : 자신을 복제하여 네트워크 연결을 통해 복제본 전송, 다른 시스템에 직접적인 영향을 미치지 않으며 기생하지 않는다.

💠 웜 확산 모델 : 3단계로 이루어 진다.

💠 웜의 실행 : 전파된 시스템에서 시스템의 접근 권한을 확보하고 자신을 실행시키기 위해 버퍼 오버플로우, 포맷 스트링, SQL 삽입, PHP 삽입 등 공격 가능한 시스템의 취약점을 이용한다.

💠 웜 대응책

✔️ 네트워크 기반 웜 방어 : 진입 모니터(Ingress monitors, 진입 필터링 소프트웨어의 일부), 진출 모니터(Egress monitors, 나가는 트래픽에서 스캐닝의 흔적이나 의심스런 행동 모니터링 웹 공격의 출처 잡아내도록 설계)

 

🌐 트로이 목마(Trojan horse)

💠 개요 : 자신의 실체를 드러내지 않으면서 다른 프로그램의 한 유형처럼 가장하여 활동하는 프로그램

✔️ 자기 복제를 하지 않으며 다른 파일을 감염시키거나 변경 시키지 않음

✔️ 시스템을 통제하는 권한 부여 받게된다 (원격조정, 패스워드 가로채기, 키보드 입력 가로채기, 시스템파일파괴형태)

💠 트로이 목마를 사용하는 다른 목적은 데이터 파괴 : Back Oriffice

💠 스파이 웨어(Spyware) : 트로이 목마의 한 종류이며, 민감한 정보를 수집하여 주기적으로 원격지의 특정한 서버에 보내는 프로그램

 

🌐 기타 악성 소프트웨어

이름 설명
논리폭탄 조건이 충족되면 트리거가 작동한다.
백도어(트랩도어) 기능에 허가받지 않은 접근을 허용하는 프로그램의 변형
스패머 프로그램 원하지 않는 대량의 전자우편물을 보내는데 사용
플러더(Flooders) 네트워크 컴퓨터 시스템에 대량의 자료를 보내어 서비스 거부 공격을 감행하는데 사용하는 코드

 

2️⃣ 인터넷 활용 보안

🌐 하이퍼 텍스트 전송 프로토콜 (HTTP, Hypertext Transfer Protocol)

💠 영속성

✔️ 비영속적 연결 : 각 요구/응답에 대해 하나의 TCP 연결이 만들어진다.

◾ 클라이언트가 TCP 연결을 열고 요청 → 서버는 응답 보내고 연결 닫음 → 클라이언트는 end-of-file 표시가 나타날 때 까지 데이터를 읽고 그 후 연결을 닫음

✔️ 영속적 연결 : 서버는 응답을 전송한 후 차후의 요청을 위해 연결 열어놓은 상태로 유지

◾ 한번의 연결 이후에 요청/응답을 반복 가능

💠 HTTP 트랜잭션

✔️ 상태코드

구분 코드 표현 설명
클라이언트 오류 400 Bad request 요청 메시지의 문법 오류
401 Unauthorized 요청 메시지에 적합한 인증 부족
403 Forbidden 클라이언트의 요청에 대해 접근을 차단하는 것을 나타냄
404 Not found 클라이언트가 서버에 요청한 자료 존재하지 않음
405 Method not allowed 요청에 이용한 메소드가 URL에 지원 불가
406 Not acceptable 요청한 형식 거부

 

🌐 쿠키 (Cookie)

💠 개요 : 사용자가 인터넷 웹 사이트에 방문할 때 생기는 4KB이하의 파일, 사용자와 웹 사이트를 연결해 주는 정보가 담겨져 있다.

💠 쿠키를 이용한 통신

✔️ 1단계 : 웹 사이트에 사용자가 방문 시 웹사이트는 사용자의 컴퓨터에 쿠키를 만들어 저장

✔️ 2단계 : 사용자가 웹 서버에 접속할 때 사용자 컴퓨터에서 웹 서버로 전송하는 단계

💠 쿠키의 일반적 용도

✔️ 사이트 개인화, 장바구니 시스템, 웹사이트 이용방식 추적, 타깃 마켓팅

💠 쿠키의 구조

✔️ 유효기간, 패스, 도메인

💠 쿠키와 세션의 차이점

  쿠키 세션
저장위치 클라이언트(=접속자 PC) 웹 서버
소멸시기 쿠키 저장 시 만료기간 설정 브라우저 종료 시 삭제
저장타입 파일 객체
속도 쿠키 > 세션
보안 쿠키 < 세션
저장정보 지워지거나 조작되어도 큰 지장이 없는 수준의 정보들 사용자나 다른 누군가에게 노출되면 안되는 중요한 정보들

💠 쿠키 보안 취약점

✔️ XSS 공격 , 스니핑 공격, 공용 PC에서 쿠키값 유출

💠 HTTP 쿠키 관련 보안 속성

✔️ http only 속성 : XSS 공격에 대응하기 위해 사용

✔️ secure 속성 : https 통신일 경우에만 쿠키 전송, http 통신일 경우에 전송하지 않는다 (기밀성)

💠 쿠키 관리를 통해 온라인 정보보호 정책 강화

✔️  영속 쿠키 : 클라이언트에 파일 형태로 지속해서 존재하는 쿠키

✔️ 세션 쿠키 : 클라이언트 메모리상에 세션이 유지되는 동안 존재하는 쿠키로 세션이 종료되면 소멸

 

🌐 세션 : 개별 클라이언트 상태 정보를 서버에 저장하는 기술

 

🌐 웹 브라우저 보안

💠 웹 브라우저 보안 사용 가능한 영역 (4가지 형태)

✔️ 인터넷 : 다른 세가지 영역에 포함되지 않은 웹 사이트를 위한 영역 (디폴트 : 약간 높음)

✔️ 로컬 인트라넷 : 사용자의 컴퓨터와 네트워크(인트라넷)상에 있는 웹 사이트를 위한 영역 (디폴트 : 낮음)

✔️ 신뢰할 수 있는 사이트 : 사용자가 안전한 콘텐츠를 갖고 있다고 신뢰하는 페이지를 설정하는 웹사이트 영역 (디폴트 : 낮음(보통))

✔️ 제한된 사이트 : 어떤 이유에서든 사용자가 신뢰할 수 없거나 보안 페이지로 설정할 수 없는 웹사이트 영역 (디폴트 : 높음)

 

SECTION 14. 윈도우 서버 보안

1️⃣ 윈도우

🌐 윈도우 시스템의 구조

💠 개요 : 윈도우 운영체제의 구조는 링 기반으로 5개의 링으로 구분

💠 『 하드웨어 → 하드웨어를 제어하기 위한 HAL(Hardware Abstraction Layer) → 마이크로 커널 → 각종 관리자 』 커널 모드, 응용 프로그램은 사용자 모드로 구분

💠 HAL은 하드웨어와 개발된 소프트웨어 간에 원활한 통신이 가능하게 도와주는 번역자 역할

 

🌐 윈도우 파일 시스템

💠 FAT16 : 기본 테이블의 크기는 16비트 (하드디스크에 파일을 담는 최소 단위인 클러스터가 32kb이기 때문)

💠 FAT32 : 총 32비트 개의 클러스터를 가질 수 있다, 접근제어 설정 불가능

💠 NTFS : 접근제어가 적용, 결함관리로 인해 좋은 성능 및 보안 훌륭, 개별 폴더와 파일에 사용자 권한 설정가능

✔️ NTFS 디스크 구조

MBR
(Master Boot Record)
VBR MFT
(Master File Table)
시스템 파일 파일 영역

◾ MBR : 파티션 생성 시 물리적 디스크의 첫번째 섹터에 위치하는 512-Byte 크기의 영역, 부트코드는 부팅가능 파티션 찾아 운영체제 기동

◾ VBR : 윈도우 부팅을 위한 기계어 코드와 MFT의 시작 주소 등 설정 정보 담고있고 파티션의 가장 마지막 섹터에 VBR 백업본 소유

◾ MFT : 볼륨/파일 시스템에 존재하는 모든 파일과 디렉터리 자료구조 , 다양한 속성 정보들로 구성

◾ 시스템 파일 : MFT를 비롯해 파일들을 복구하는데 사용할 디스크 정보 파일

◾ 파일 영역 : 각 파일에 대한 실제 데이터 저장

✔️ 디스크 파괴형 악성코드의 특징

◾ 디스크 파괴형 악성코드는 MBR, VBR 영역을 훼손

 

2️⃣ 윈도우 보안

🌐 윈도우 계정, 권한, 인증

💠 기본 사용자와 그룹

✔️ 윈도우 기본 사용자

계정 이름 설명
Administrator 관리자 권한의 계정으로 사용자가 사용 가능한 계정 중 가장 강력한 권한
SYSTEM 시스템에서 최고 권한을 가진 계정으로 로컬에서 관리자보다 상위 권한을 가진다. 원격 접속 불가능, 사용자가 이 계정을 사용해 시스템에 로그인 불가
Guest 매우 제한적인 권한을 가진 계정, 기본 설정은 사용 불능

 

✔️윈도우 기본 그룹

그룹 이름 설명
Administrator 도메인 자원이나 로컬 컴퓨터에 대한 모든 권한이 있다.
Guests 도메인 사용 권한이 제한된 그룹으로 시스템의 설정 변경 권한이 없다.
Power Users 디렉터리나 네트워크 공유, 공용 프로그램 그룹 생성, 컴퓨터의 시계 설정 권한이 있다.
Users 도메인과 로컬 컴퓨터를 일반적으로 사용하는 그룹, 개개인에 할당된 사용자 환경을 직접 만들 수 있지만, 설정할 수 있는 항목에 한계 존재, 시스템 서비스의 시작 및 종료 권한이 없으며 디렉터리 공유 설정 불가

 

✔️ 운영 체제별 관리자 계정  : Unix : root (0번), Windows : Administrator (500번), Netware : Supervisor

✔️ SID (Security Identifier) : 윈도우의 각 사용자나 그룹에 부여되는 고유한 식별번호

◾ S-1-5-domain-500 : Administrator

◾ S-1-5-domain-501 : Guest

 

🌐 윈도우 인증과 패스워드

💠 윈도우 인증의 구성요소

✔️ LSA(Local Security Authority) , SAM(Security Account Manager), SRM(Security Reference Monitor)

◾ LSA : 모든 계정의 로그인에 대한 검증을 하고 시스템 자원등에 대한 접근 검사, NT 보안의 중심 요소

◾ SAM : 사용자/그룹 계정 정보에 대한 데이터 베이스를 관리, 로그인 입력 정보와 SAM 데이터 베이스 정보 비교해 인증 여부 결정

%systemroot%/system32/config/sam에 위치

◾ SRM :  SAM이 사용자 일치여부를 확인하여 알리면 사용자에게 SID를 부여, SID에 기반하여 파일 접근 허용 결정, 감사 메시지 생성

💠 SAM 파일 접근 통제 설정

✔️ Administrators 및 System 그룹 외에는 SAM 파일에 대한 접근 제한

 

🌐 공유 자료 관리

공유 폴더 사용자 공유 사용자가 직접 설정, 다른사람에게 보여짐
관리적 공유 자동으로 생성, 관리자 권한이 있는 경우에만 접근 가능 (다른사람에게 안보임) C$,D$,E$ : 드라이브에 대한 관리적 목적 공유 폴더
ADMIN$ : 윈도우 설치 폴더 접근
(IPC$ : 프로세스간 통신, 제거시 특정 서비스 실행 x, 널 세션 취약점)

 

💠 네트워크 드라이브 : 내 컴퓨터의 드라이브 처럼 사용할 수 있는 기능

💠 파일과 폴더의 보안 권한 설정

✔️ 윈도우는 폴더에 6가지 기본 권한설정을 제공, 파일에는 5가지 권한을 제공

◾ 모든 권한 : 디렉터리에 대한 접근 권한과 소유권을 변경 가능, 서브 폴더와 파일 삭제 가능

◾ 수정 : 폴더를 삭제할 수 있으며, 읽기 및 실행과 쓰기가 동일한 권한을 갖는다.

◾ 읽기 및 실행 : 읽기를 수행할 수 있으며 디렉터리나 파일을 이동 가능

◾ 폴더 내용 보기 : 디렉터리의 파일이나 서브 디렉터리의 이름 보기 가능

◾ 읽기 : 디렉터리의 내용을 읽기만 가능

◾ 쓰기 : 해당 디렉터리의 서브 디렉터리와 파일 생성 가능, 소유권이나 접근 권한의 설정 내용 확인 가능

 

🌐 암호 기능 사용

💠 폴더 및 파일 암호화(EFS) : Encrypting File System은 윈도우 운영체제에서 개별 파일 또는 특정 폴더 안에 들어있는 모든 파일을 암호화 할 수 있는 기능 제공

✔️ 압축(o) → 암호화(x) , 암호화(o) → 압축(x) : 동시 적용 불가

✔️ 암호화된 폴더에 파일 복사 : 자동 암호화

✔️ 암호화가 지원되지 않는 파일 시스템(FAT32)에 복사 : 자동 복호화

💠 볼륨 암호화 (BitLocker)

✔️ 볼륨 단위의 데이터 암호화 기능, 시스템 파티션 부분은 암호화 되지 않는다.

 

🌐 레지스트리 활용

💠 개요 : 시스템의 거의 모든 정보를 담고 있다.

💠 레지스트리 편집기 실행

✔️ 레지스트리 편집기

◾ Master Key (직접 읽어 들여 구성되는 키) : HKLM(HKEY_LOCAL_MACHINE), HKU(HKEY_USERS)

◾ Derived Key (마스터키로부터 값을 가져와 재구성하는 키) : HKCU(HKEY_CURRENT_USER), HKCC(HKEY_CURRENT_CONFIG), HKCR(HKEY_CLASSES_ROOT)

✔️ 레지스트리 루트키

◾ HKEY_CLASSES_ROOT(HKCR) : 시스템에 등록된 파일 확장자와 맵핑 정보 등 저장

◾ HKEY_CURRENT_USER(HKCU) : 현재 시스템에 로그인하고 있는 사용자와 관련된 시스템 정보 저장

◾ HKEY_LOCAL_MACHINE(HKLM) : 하드웨어와 구동시키는데 필요한 드라이버나 설정 사항 정보

💠 레지스트리 공격

✔️  부팅 시 악성코드 실행

◾ 시스템 재부팅시 악성코드 구동을 위해 사용되는 레지스트리는 HKLM, HKCU이다

◾ 개별사용자 지속용 : HKCU (CurrentVersion\Run)

◾ 개별사용자 일회용 : HKCU (CurrentVerison\RunOnce)

◾ 전체사용자 지속용 : HKLM (CurrentVersion\Run)

◾ 전체사용자 일회용 : HKLM (CurrentVersion\RunOnce)

 

🌐 윈도우 방화벽 : 인바운드/아웃바운드 규칙을 통해 설정 가능

 

SECTION 15. 유닉스/리눅스 서버 보안

1️⃣ 유닉스

🌐 UNIX의 구성

💠 커널 (Kernel) : 항상 메모리에 상주, 사용자에게 기능들을 제공한다. 가장 하위수준에서 하드웨어와 직접 관계

➰ 윈도우 (5개 구성) : H/W - HAL - 마이크로 커널 - 각종 관리자 - 응용프로그램

➰ 유닉스 (4개 구성) : H/W - 커널 - 셀 - 응용프로그램

✔️ 시스템 호출 : 사용자 프로그램이 커널에 접근하는 인터페이스를 제공

💠 셸 (shell) : 일반적인 운영체제에서 명령어 해석기 기능 담당

💠 파일 시스템

✔️ 디렉터리 구조, 파일시스템의 구조, i-node( 파일에 대한 정보를 기억하는 약 120byte의 고정된 크기의 구조체), 슈퍼블록(파일시스템의 정보를 유지하는 자료 구조)

 

2️⃣ UNIX 기본 사용법

🌐 파일 권한 관리

💠 접근권한변경 (chmod)

✔️ 접근 권한을 기호로 기술하는 방법

◾ 대상 : u(user), g(group), o(other), a(all)

◾ 연산자 : +(추가), -(제거), =(지정)

◾ 접근권한 : r(읽기), w(쓰기), x(실행)

✔️ 접근 권한을 숫자로 기술하는 방법

◾ 파일의 접근 권한을 세개의 8진수로 기술

◾ r(읽기)=4, w(쓰기)=2, x(실행)=1

💠 소유권 또는 그룹 변경 (chown, chgrp)

 

🌐 프로세스 응용

💠 첫번째 프로세스

✔️ PID=0 : swapper, PID=1 : init, PID=2 : pagedaemon

✔️ PID가 0인 프로세스를 제외한 모든 프로세스는 실행중에 부모프로세스를 갖게 된다.

✔️ 프로세스 종료 시 자신의 부모 프로세스에게 종료를 알리지만 부모 프로세스의 확인이 있을 때 까지 좀비 프로세스로 남는다.

 

3️⃣ UNIX 시스템 관리

🌐 시스템 시작과 종료

💠 부팅관련 용어 정의

✔️ 런 레벨 (Run Level) : init 명령어 다음에 런 레벨을 쓰면 해당 런 레벨로 이동 가능

💠 시스템 종료

✔️ shutdown 명령은 시스템을 안전하게 종료할 때, 런 레벨을 변경할 때 사용

 

🌐 파일시스템 관리

💠 파일시스템 연결 (mount) : 보조기억장치에 설치된 파일 시스템을 unix시스템이 인식하도록 디렉터리에 논리적으로 연결

💠 파일시스템 연결해제 (umount) : 이전에 마운트 된 파일 시스템의 연결을 해제, /etc/mtab파일은 시스템에 마운트 된 파일시스템의 정보 관리, mount 명령 실행 시 파일 시스템이 마운트 정보를 /etc/mtab 파일에 기록

 

🌐 프로세스 스케줄 관리

💠 정기적 스케줄 관리 (cron) : 분 시 일 월 요일 작업

✔️ 명령어 : crontab -e [login_name] / -e: crontab 파일을 편집한다, -l : crontab 파일을 출력한다, -r : crontab 파일을 삭제한다.

✔️ crontab 명령 접근 제어 : cron.allow (사용할 수 있는 사람) , cron.deny (사용하지 못하는 사람)

 

4️⃣ UNIX 서버 보안

🌐 시스템 보안

💠 사용자의 패스워드 관리

✔️ /etc/passwd 파일은 UNIX 시스템에 등록된 사용자 계정마다 정보가 담겨있는 파일, /etc/shadow 파일은 암호화된 패스워드 저장

✔️ passwd 파일

① user_account ② :user_password ③ :user_ID ④ :group_ID ⑤ :comment ⑥ :home_directory ⑦ :login_shell

⑤ comment : 사용자 설명, 사용자 관련 기타 정보로 일반적으로 사용자 이름 설정

⑥ home_directory : 로그인이 성공한 후 사용자가 위치할 홈 디렉터리의 절대 경로

⑦ login_shell : 로그인 셸의 절대 경로

 

✔️ /etc/passwd 파일 공격 : 보통 3번 4번을 0으로 변경한다 (root)

✔️ shadow 파일

①user_account ②:encrypted_password ③:last_change ④:minilife ⑤:maxlife ⑥:warn ⑦:inactive ⑧:expires

①user_account : 사용자 계정을 인덱스로 하여 /etc/passwd 파일과 서로 연계

②:encrypted_password : 암호화된 패스워드 (일방향 해시 알고리즘 이용)

③:last_change : 마지막으로 패스워드를 변경한 날

④:minilife : 최소 변경일 수 

⑤:maxlife : 최대 변경일 수

 

🌐 접근권한 마스크 (umask)

💠 시스템 관리자는 /etc/profile에 umask를 설정하여 전체 사용자에게 획일적인 umask 값을 적용할 수 있다.

✔️ default permission

① 파일(666) : rw-rw-rw-

② 디렉터리(777) : rwxrwxrwx

③ umask : 제거할 접근 권한 명시

① - ② =/=

ex) umask 022인 경우 , 파일(666): rw-rw-rw-  | umak(022) : --- -w- -w- == 최종 : rw-r--r--(644)

 

🌐 권한 상승(SetUID, SetGID)

💠 계정이 누구인가를 식별하는 ID

✔️ RUID (Real User ID) : 프로세스를 실행시킨 사용자의 UID

✔️ RGID (Real Group ID) : 프로세스를 실행시킨 사용자의 GID

✔️ EUID (Effective User ID) : 프로세스가 실행중인 동안에만 부여되는 UID, 자원에 접근권한 판단하기 위한 UID

◾ SetUID가 설정이 안된 경우 RUID=EUID

◾ SetUID가 설정이 된 경우 RUID =/= EUID

◾ SetUID 비트가 설정된 파일은 백도어 및 버퍼 오버플로우 등 여러 공격에 이용 가능

💠 SetUID 설정 시 주의사항과 SetGID

◾ SetUID가 설정되어 있는 프로그램을 실행하는 경우 이 프로세스가 갖는 권한은 프로그램을 실행한 사용자의 권한이 아닌 프로그램의 소유주의 권한이 된다.

파일종류
(4bit)
특수권한(3bit) user(3bit) group(3bit) other(3bit)
-,d,c,b,s,l,p 4 2 1 4 2 1 4 2 1 4 2 1
suid sgid sticky-bit r w x r w x r w x

 

◾ 4755 : -rwxr-xr-x

s(소문자) - 실행권한(o)

◾ 4655 : -rwSr-xr-x

S(대문자) - 실행권한 (x)

 

🌐 디렉터리 접근권한 (sticky-bit)

구분 기호방식 8진수 방식 특수권한 설정 특수권한 파일검색
setuid(4) s 4000 chmod 4777 a.out
chmod u+s a.out
#find / -perm 4000 -print
setgid(2) s 2000 chmod 2777 a.out
chmod g+s a.out
#find / -perm 2000 -print
sticky-bit(1) t 1000 chmod 1777 /testdir
chmod o+t /testdir (Linux)
chmod u+t /testdir (SunOS)
#find / -perm 1000 -print

◾ #find / -perm 7000 -print : suid, sgid, sticky 비트가 모두 설정된 파일 검색

◾ #find / -perm 6000 -print : suid, sgid 비트가 모두 설정된 파일 검색

 

🌐 네트워크 보안

💠 슈퍼 서버 [inetd 데몬] 

user(3bit)

✔️ inetd 데몬은 N개의 개별 서버를 하나로 통합하여 클라이언트로부터 서비스 요청이 올 때 마다 해당 서비스와 관련된 실행 모듈 (FTP, Telnet, TFTP )을 실행해준다.

◾ stand-alone 방식 : 개별 서빕스 별로 서버 프로세스가 동작하는 방식, 속도 빠름

◾ inetd(xinetd) 방식 : 슈퍼 데몬(inetd데몬) 을 이용하여 개별 서비스를 동작시키는 방식 , 속도 느림

✔️ inetd.conf 파일 구조

서비스 소켓 타입 프로토콜 대기 설정 로그인 이름 서버 인자
telnet stream tcp6 nowait root /usr/sbin/in.telnetd in.telnetd

◾ TCP 기반 : nowait 로 설정, UDP 기반 : wait로 설정

💠 접근 통제 (TCPWrapper)

💠 PAM (Pluggable Authentication Modules, 장착형 인증 모듈)

✔️ 사용자 인증의 핵심, 응용프로그램에 대한 인증형태, 사용자 권한, 접근 자원 등을 선택할 수 있는 라이브러리

 

5️⃣ Linux

🌐 리눅스 파일 시스템의 종류 및 특징

ext 2 ext 3 ext 4
장애 발생 시 파일 손상 o
fsck 이용
속도 향상
저널링 기법
지연된 할당
향상된 보안 할당 기법

 

 

SECTION 17. 서버 보안 관리

1️⃣ 서버 관리자의 업무

🌐 보안 유지 관리

💠 로깅정보를 감시하고 분석, 정기적으로 백업 수행, 정기적으로 시스템 보안을 테스트

 

🌐 서버 관리자의 업무

💠 시스템 관리자 계정으로 작업하기 : root 계정으로 로그인

💠 사용자 계정 관리 /etc/passwd, /etc/shadow

✔️ 원격접근권한 제거 : /etc/passwd 파일에서 /bin/bash와 같은 셸 삭제

✔️ 계정 사용기간 설정 : /etc/shadow 파일에서 사용기간 또는 만료일 설정

💠 자원 관리

✔️ 프로세스 관리 : ps, kill, wait, su 등을 이용한 관리

✔️ 메모리 관리 : free

✔️ 메일, 디스크 등의 자원 관리 : quota 사용, du(디스크 사용량 재귀적으로 보여줌)

💠 네트워크 관리

 

2️⃣ 로그 설정과 관리

🌐 시스템 로그 분석

💠 로그에 대한 이해 : 윈도우는 이벤트라는 중앙집중화된 로그 수집 저장, 유닉스는 로그를 여러곳에 산발적으로 저장

💠 윈도우의 로그 분석과 설정

✔️ 윈도우에서 현재 로그인된 사용자를 확인하는 명령 : net session

✔️ 로그인 세션을 끊는 명령은 net session /delete

✔️ 이벤트 로그 파일 %Windows%\system32\config 폴더 아래에 있는 .evt 파일, 바이너리 형식

◾ 응용 프로그램 로그 : AppEvent.Evt

◾ 보안 로그 : SecEvent.Evt

◾ 시스템 로그 : SysEvent.Evt

💠 유닉스/리눅스의 로그 분석과 설정

로그 설명 로그 출력
utmp(x) 현재 시스템에 로그인한 사용자의 상태 출력 w, who, users, whodo, finger
wtmp(x) 사용자의 로그인, 로그아웃, 시스템 재부팅 정보 last
sulog(Unix/SunOS) su 권한 변경에 대한 로그 /var/adm/sulog
acct/pacct 로그인한 모든 사용자가 수행한 프로그램에 대한 정보를 저장 acctcom, lastcomm
.sh_history, .bash_history 유닉스에서 실행명령에 대한 기록 cat, more
loginlog(Unix), btmp(Linux) Unix : 5회이상 실패시 로그 기록
Linux : 실패한 모든 로그 기록
/var/adm/loginlog
/var/log/btmp
lastlog 가장 최근에 성공한 로그인 기록 Linux : lastlog
Linux/Unix : finger
xferlog FTP 로그 파일, proftpd, vsftpd 데몬들의 서비스 내역 기록 파일  
Access_log, Error_log HTTP log, 웹서비스에 의한 로그 /usr/local/apache/logs

 

💠 유닉스/리눅스 시스템 로그 설정 (/etc/syslog.conf)

✔️ 어떤 로그를 어디에 남길지 결정

 

3️⃣ 공개 해킹도구에 대한 이해와 대응

🌐 크래킹 S/W

💠 크래킹 S/W 사례

✔️ John the Ripper : 패스워드 점검 도구 프로그램

✔️ pwdump : 윈도우에서 패스워드 덤프 도구

✔️ L0phtCrack : 패스워드 취약점 점검도구

✔️ ipccrack : 사용자 계정 패스워드를 원격지에서 추측 > 취약점 점검

✔️ chntpw : 물리적 접근이 가능한 시스템에서 패스워드를 리셋 시키는 프로그램

✔️ ERD Commander : 윈도우 시스템에서 패스워드 복구해야 하는 경우에 사용

 

🌐 키로그 S/W

 

4️⃣ 서버 보안용 S/W 설치 및 운영

🌐 취약점 분석 도구

💠 취약점 분석 도구

✔️ SATAN (Security Analysis Tool for Auditing Networks) : 해커와 똑같은 방식으로 시스템에 침입, 보안상의 약점을 찾아 보완할 수 있는 네트워크 분석용 보안 관리 도구

✔️ SARA : SATAN을 기반으로 개발 된 취약점 분석 도구로 html 형식의 보고서 기능 존재

✔️ SAINT : 원격에서 취약점 점검하는 기능 존재

✔️ COPS : 유닉스 플랫폼에서 동작하며 시스템 내부에 존재하는 취약점 점검

✔️ NESSUS : 클라이언트-서버 구조로 클라이언트의 취약점 점검

✔️ nmap : 포트스캐닝 도구, stealth 모드로 포트 스캐닝하는 기능

 

🌐 무결성 점검

💠 파일 무결성 점검 (tripwire) : 정상적인 상태 정보 백업, 점검 수행 시점에서 백업한 정보를 비교

 

🌐 스캔탐지

💠 스캔탐지도구

✔️ mscan : 메인 전체를 스캔하여 그 도메인 내에 있는 취약점 한번에 스캔

✔️ sscan : mscan을 업데이트

✔️ portsentry : 실시간으로 포트 스캔을 탐지하고 대응하기 위한 프로그램

 

◾ 취약점 점검 도구 : SATAN, SARA, SAINT, COPS, NESSUS, NMAP

◾ 파일 무결성 점검 도구 : tripwire, MD5, Fcheck, AIDE

◾ 스캔 탐지 도구 : mscan, sscan, portsentry

 

🌐 침입탐지 및 방화벽

💠 네트워크 모니터링 및 탐지 도구

✔️ Snort : 실시간 트래픽 분석과 P네트워크에서 패킷 처리를 담당하는 공개 소스 네트워크 침입탐지시스템(IDS)

💠 방화벽

✔️ TCP-Wrapper : 네트워크 서비스에 관한 트래픽을 제어하고 모니터링

✔️ IPchain/IPtable : 패킷 필터링 방화벽

 

SECTION 17. 각종 시스템 보안위협 및 대응책

◾ 버퍼오버플로우 공격

◾ 포맷스트링 공격 printf(buffer) %d %s: 정상

◾ 레이디스컨디션 공격 : 심볼릭링크, 임시하일, SetUID

◾ 백도어 : 트랩도어

◾ 자원고갈공격 : DoS 공격

✔ 디스크 : creat > write

✔ 메모리 : malloc

✔ CPU : fork

 

SECTION 18. 최신 보안 주제들

◾ 블록체인

◾ 사물 인터넷

◾ 클라우드 보안

◾ 랜섬웨어

◾ APT 

◾ 사이버 킬 체인

 

반응형