본문 바로가기

분류 전체보기251

프로세스 관리 프로세스(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.
버퍼 오버플로(buffer overflow) 버퍼 오버플로(buffer overflow) 프로그램이 데이터를 버퍼(buffer)에 저장할 때, 버퍼가 가득 차 넘치게 되어 프로그래머가 지정한 부분 바깥에 덮어 씌워버리는 취약점, 버그, 이를 이용한 공격 방법을 말한다. 넘쳐난 데이터는 원래 데이터를 밀어내거나 이상한 곳에 저장하는 것이 아니라 덮어 씌우는 것이다. 덮어 씌워진 메모리에는 다른 데이터가 이미 포함되어 있을 수 있고, 이 때문에 메모리 접근 오류, 프로그램 종료, 시스템 보안 취약점 등이 발생할 수 있다. 버퍼 오버플로는 보통 데이터를 저장하는 과정에서 그 데이터를 저장할 메모리 위치가 유효한지를 검사하지 않아 발생한다. 이러한 경우 데이터가 담긴 위치 근처에 있는 값이 손상되고 그 손상이 프로그램 실행에 영향을 미칠 수도 있다. 특히.. 2020. 2. 15.
악성코드(악성 소프트웨어, Malware) 악성 소프트웨어(악성코드, Malware) 컴퓨터 바이러스, 웜, 트로이 목마 등 컴퓨터 사용자에게 해를 끼치는 모든 코드의 총칭 악성코드의 분류 독립형과 기생형 호스트 프로그램을 필요로 하거나, 필요로 하지 않는 코드에 대한 분류 자체적으로 구동될 수 있는 독립형은 운영체제에 의해 스케줄 되어 구동될 수 있다. 웜과 좀비 프로그램이 이에 속한다. 다른 프로그램(코드)이 실행될 때 같이 동작하거나 시스템에 접근해야 사용이 가능한 악성코드 웨어를 기생형으로 나눈다. 바이러스와 백도어가 이에 속한다. 자가 복제 여부 악성코드는 자가 복제 여부에 따라 바이러스성 악성 코드와 비 바이러스성 악성 코드로 나눌 수 있다. 자가 복제가 가능한 악성코드는 웜과 바이러스 등이 있으며, 자가 복제가 불가능한 악성코드는 트.. 2020. 2. 7.