Security

[Security] 리눅스(Linux)

구루싸 2020. 3. 8. 04:05
반응형
SMALL

이번 학습 주제는 1989년 핀란드 헬싱키 대학에 재학 중이던

리누스 토발스(Linus Torvalds)가 개발한 유닉스(Unix) 기반의

공개용(Open Source) 운영체제인 리눅스(Linux)입니다

리눅스의 특징을 살펴보면 다음과 같습니다

특징 내용

다중 사용자

(Multi User)

여러 명의 사용자가 네트워크를 통해 접속하여 컴퓨터 시스템을 사용할 수 있음

다중 작업

(Multi Tasking)

여러 개의 프로세스를 동시에 실행시켜 CPU를 스케줄링하여 사용 가능

다중 처리기

(Multi Processor)

한 개 이상의 CPU가 탑재되어 있는 경우 여러 개의 CPU를 지원해 주는 다중 처리기 지원

다중 플랫폼

(Multi Platform)

여러 종류의 CPU(Intel, Sun Sparc, Power PC 등)를 지원하여 대부분의 플랫을 지원

계층형 파일 시스템

루트(root)를 기반으로 하위 디렉토리를 이루는 계층형 파일 시스템으로 이루어짐

POSIX과 호환

유닉스(Unix) 시스템의 표준 인터페이스를 정의한 POSIX 표준을 따름

우수한 네트워킹

TCP/IP, IPX/SPC, Appletalk, Bluetooth 등 다양한 프로토콜을 지원

가상 콘솔

(Virtual Console)

기본적으로 6개의 가상 콘솔이 있어서 각 창마다 서로 다른 작업을 수행 가능

가상 기억 장치

(Virtual Memory)

가상 메모리 사용 가능

리눅스의 기능을 살펴보면 다음과 같습니다

구성요소 기능 및 역할

태스크 관리자

(Task Manager)

태스크의 생성, 실행, 상태관리, 스케줄링, 시그널 처리, 프로세스 간 통신 등의 서비스 제공

메모리 관리자

(Memory Manager)

세그먼테이션, 페이징, Swap 서비스를 통한 물리 메모리와 가상 메모리 관리

파일 시스템 관리자

(File System Manager)

파일 생성/삭제, 접근제어, 디렉터리 관리, 슈퍼블록 관리 등의 서비스 제공

네트워크 관리자

(Network Manager)

소켓(Socket), TCP/IP, 프로토콜 스택 관리 등의 서비스

장치 관리자

(Device Manager)

디스크, 각종 카드, 외부 인터페이스 등을 제어하는 드라이버 관리 서비스 제공

리눅스의 3가지 핵심 구성요소를 살펴보면 다음과 같습니다

구성요소 내용

커널

(Kernel)

· 주기억장치(Main Memory)에 상주하면서 사용자 프로그램을 관리하는 운영체제의 핵심 역할

· 프로세스, 메모리, 입출력(I/O), 파일 관리 등을 수행

(Shell)

· 명령어 해석기/번역기로 사용자 명령의 입출력을 수행하며 프로그램을 실행

· 셀의 종류는 Bourne, C, Korn 등이 있고 표준 셀은 bash

· 실행파일이며 /bin 디렉터리에 존재

· 시그널을 처리

· 파이프, 리다이렉션, 백그라운드 프로세스 설정

· 와일드 카드, 히스토리 문자, 특수문자 분석

파일 시스템

(File System)

· 여러 가지 정보를 저장하는 기본적인 구조

· 시스템 관리를 위한 기본 환경을 제공

· 계층적인 트리 구조 형태(디렉터리, 서브 디렉터리, 파일 등)

리눅스의 구성요소 중 쉘(Shell)의 표준인 bash 쉘이 실행될 때는

환경 파일에 설정된 값으로 실행하게 되는데 그 설정 파일은 다음과 같습니다

설정 파일 내용
.bash_profile

· 사용자 홈 디렉터리에 있는 파일

· 개별적인 쉘 환경을 설정

.bashrc 사용자 정의 변수, 함수 alias를 정의
·bash_logout 사용자가 로그아웃할 때 실행되는 파일을 정의

※ 쉘 환경 파일 중에서 전역 설정 파일은 /etc 디렉터리에 존재

리눅스에는 쉘 환경변수도 있는데

기본적으로 설정되어 있는 환경변수는 SHELL, HOME, PATH 등이 있으며

env 명령어로 현재 환경에 설정되어 있는 모든 변수를 확인할 수 있습니다

환경변수 설명
SHELL 사용자의 로그인 쉘의 절대 경로
HOME 홈 디렉터리에 대한 경로 이름
PATH 실행할 명령어를 찾을 경로
USER 사용자 이름
LOGNAME 로그인할 때 사용할 이름
TERM 사용 중인 단말기를 설명
MAIL 전자메일 우편함
HOSTNAME 호스트 명을 의미
TMOUT 타임아웃

끝으로 Shell Shock에 대해 알아보고 마치겠습니다

과학기술정보통신부와 한국인터넷진흥원은 리눅스 계열 및 MAC OS X

운영체제에서 사용되는 GNU Bash 쉘에서 취약점을 발견하고 Shell Shock라고 명명하였는데

취약점은 악의적 명령 실행과 관리자 권한 획득 등입니다

Shell Shock를 이용한 공격 기법은 리눅스 환경변수에 빈 함수를 넣으면

그 뒤에 오는 코드는 무조건 실행되는 심각한 버그로

CGI 스크립트 등을 통해서 공격을 수행할 수 있습니다

이것으로 이번 학습을 마치겠습니다

그럼 이만-_-

반응형
LIST