본문 바로가기

전체 글251

리눅스 로그파일 리눅스 로그파일 리눅스는 사용자의 접속 기록, 로그인 기록, 명령어 사용 등, 모든 정보를 로그파일에 기록한다. 로그파일은 공격자가 임의적으로 시스템에 접근하여 어떤 작업을 수행했는지 알 수 있는 것으로 침해사고 발생 시 누가 무엇을 수행했는지 증명하는 책임 추적성 역할을 수행한다. 로그파일은 공격자의 정보 확인에 있어서 매우 중요한 역할을 하지만 로그파일 자체도 공격자에 의해 조작될 수 있다. 즉, 하나의 로그 파일로 침해사고를 분석하는 것이 아니라 여러 로그파일을 종합적으로 분석해야 한다. 현재 로그인 사용자 정보 (utmp) 현재 로그인 사용자 파일 /var/run/utmp 현재 로그인 사용자 확인(utmp파일을 읽어서 터미널에 출력하는 역할) #w / #who 리눅스의 로그파일 /var/log u.. 2020. 3. 30.
리눅스 권한관리 리눅스 권한 리눅스의 권한은 소유자, 그룹, 다른 사용자로 이루어지며, 각각은 읽기, 쓰기, 실행 권한을 가질 수 있다. 읽기는 r, 쓰기는 w, 실행은 x로 표기한다. (-rw-r--r-- : 소유자 읽기, 쓰기 가능, 그룹 읽기 가능, 다른 사용자 읽기 가능) 특수 권한으로 setuid, setgid, sticky bit가 있다 default 권한 파일을 생성할 때 기본적으로 주어지는 권한으로, default 권한 값을 가지고 있는 것은 unmask 값이다. unmask의 값이 0022일 때 666에서 이 값을 빼 644 값을 가지게 된다. (r = 4, w = 2, x = 1 / setuid = 4000, setgid = 2000, sticky bit = 1000) mkdir 명령을 통해 디렉터리를.. 2020. 3. 30.
리눅스 패스워드 파일 (/etc/passwd, /etc/shadow) 리눅스 패스워드 파일 /etc/passwd에는 사용자의 패스워드를 해시로 암호화한 값이 저장되어 있다. 사용자가 패스워드를 입력하면 리눅스는 /etc/passwd에 있는 해시값을 비교하여 로그인한다. /etc/passwd가 아닌 /etc/shadow에 패스워드를 저장할 수도 있다. /etc/passwd /etc/passwd 두 번째 필드에 x가 되어 있으면 사용자의 패스워드는 /etc/shadow 에 저장되어 있는 것이다. 보통의 리눅스 패스워드는 shadow에 별도로 기록된다. /etc/passwd에 패스워드를 저장하지 않고 /etc/shadow 파일에 패스워드를 저장하기 위해서는 powconv 명령어를 사용해야 한다. 셸 부분에 /bin/false로 설정 되어 있다면 로그인할 때 셸을 실행하지 않는다.. 2020. 3. 29.
리눅스 부팅 리눅스 부팅 부트 로더 시스템에 전원이 들어왔을 때 가장 처음 하는 작업은 보조기억장치에 있는 운영체제의 커널을 주기억장치에 올리는 것이다. 이 작업은 부트 로더(Boot Loader)가 수행한다. 대표적인 부트로더로 LILO(Linux Loader), GRUB(Grand Unfied Bootloader)가 있으며 현재는 GRUB가 사용된다. LILO는 실행 시 /etc/lilo.conf 설정 파일을 읽어 실행되고, GRUB은 /boot/grub/grub.conf 설정 파일을 읽어 실행된다. GRUB은 부트 정보를 사용자가 임의로 변경할 수 있으며, 여러 운영체제를 사용할 수 있는 멀티 부팅을 지원한다. 리눅스 부팅 순서 1) 전원을 키고 ROM BIOS를 읽어 MBR(Master Boot Record).. 2020. 3. 29.
리눅스 구성 요소 (커널, 셸, 파일 시스템) 리눅스 구성 요소 리눅스 운영체제 핵심 구성요소 커널(Kernel) 메모리에 상주하면서 시스템을 리하는 운영체제의 핵심 운영체제 응용프로그램 수행에 필요한 여러 서비스를 제공한다. 프로세스, 메모리, 입출력, 파일 관리 등 셸(Shell) 사용자가 입력한 문장을 읽어 요청을 실행하는 명령어 해석기/번역기 커널과 직접적으로 연결돼 있어 명령어를 해석한 결과를 다른 프로그램 또는 커널로 전송 Bourne 셸, C셸, Korn셸, bash셸 등 리눅스의 표준 셸은 bash 셸이다. 다른 셸을 사용해도 상관은 없다. 파일 시스템(File System) 파일 저장의 기본적인 구조, 시스템 관리를 위한 기본 환경을 제공 계층적인 트리 구조 형태(디렉터리, 서브 디렉터리, 파일 등) 리눅스 표준 파일 시스템은 ext.. 2020. 3. 29.
리눅스 개요 리눅스 개요 윈도우, 유닉스와 같은 운영체제의 한 종류로 컴퓨터 시스템의 하드웨어를 효율적으로 관리하기 위한 시스템 소프트웨어 1989년 리누스 토르발스가 유닉스를 기반으로 개발하였으며 공개용(Open Soource) 운영체제이다. GPL 라이센스가 적용된 운영체제로 리눅스를 설치하고 사용자가 자신의 운영체제를 수정하여 사용할 수도 있다. 리눅스 특징 1. 다중 사용자(Multi User) 여려 명의 사용자가 네트워크를 통해 접속하여 컴퓨터 시스템을 사용할 수 있는 다중 사용자 환경을 지원한다. 사용자별 권한 관리와 자원관리가 가능하다. 2. 다중 작업(Multi Tasking) 운영체제 내에서 여러 개의 프로세스를 동시에 실행시켜 CPU를 스케줄링하여 사용할 수 있다. 여러 개의 프로세스가 동시에 실행.. 2020. 3. 28.
프로세스 관리 프로세스(Process)와 스레드(Thread) 프로세스(Process) PCB를 갖고 있으며, 현재 실행 중 이거나 곧 실행 가능하며, CPU를 할당받을 수 있는 프로그램 실행중인 프로그램 작업(Job) 태스크(Task) 라고도 한다. 스레드(Thread) 하나의 프로세스에 속하며, 여러 프로세스에 동시에 포함될 수 없다. 프로세스의 구성을 크게 제어의 흐름 부분과 실행 환경 부분으로 나눌 때, 스레드는 프로세스의 실행 부분을 담당함으로써 실행의 기본 단위가 된다. 스레드는 같은 프로세스에 속한 다른 스레드와 코드 등 일부 자원을 공유하지만 모든 자원을 같이 쓰는 것은 아니다. 프로세스 프로세스 상태전이(Process State Transition) 운영체제-프로세스 실행 제어, 프로세스에 대한 정보 .. 2020. 3. 28.
운영체제 운영체제(Operating System) 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어 운영체제 발달 과정 / 분류 1. 일괄 처리 시스템(Batch Processing System) 유사한 작업을 모아 한번에 처리하는 초기 시스템 은행 정산 등의 작업에 사용 2. 다중 프로그래밍 시스템(Multi Programming System) CPU 가동률을 극대화하여 유휴 시간(idle time)을 최소화 작업들을 스케줄링에 의해 수행 3. 실시간 처리 시스템(Real-time System / Multi-taskinh System) 시스템 서비스 요청이 발생할 때마다 실시간으로 정보 처리 수행하고 결과를 출력하는 시스템 4.. 2020. 3. 27.
[Kali Linux] VirtualBox에 Kali Linux 설치 VirtualBox에 Kali Linux 설치 방법 1. Oracle VirtualBox 설치 https://www.virtualbox.org/wiki/Downloads 2. Kali Linux image file 설치 https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/#1572305786534-030ce714-cc3b 3. VirtualBox에 가져오기 4. Kali Linux 실행 2020. 2. 27.
포맷 스트링 버그(format string bug) 포맷 스트링 버그 포맷 스트링 버그(format string bug)는 printf 등의 함수에서 문자열 입력 포맷을 잘못된 형태로 입력하는 경우 나타나는 버그이다. 보안 취약점으로 포맷 스트링 익스플로잇은 프로그램을 충돌시키거나 악의적인 코드를 실행시키는 데 사용될 수 있다. 버퍼 오버플로 공격에 비해 취약점을 쉽게 찾아낼 수 있고 사전에 완전한 예방이 가능하다. 서식 지정자(Format specifier) C언어의 대표적인 서식 지정자 %d : 정수형 10진수 %f, lf : 실수 %c : 문자 하나(char) %s : 문자열(char[]) %u : 10진수 %o : 8진수 %x : 16진수(소문자) %x : 16진수(대문자) %n : 쓰인 총 바이트 수 포맷 스트링 공격 포맷 스트링 버그는 데이터의.. 2020. 2. 17.