[운영체제 취약점 이해 및 대응] 취약점에 대한 이해
2. 취약점에 대한 이해
1) 취약점과 익스플로잇
[1] 취약점 : Vulnerability
▶ 취약점이란 사용자에게 허용된 권한 이상의 동작이나 정보 열람을 가능하게 하는 설 계상의 허점이나 결함을 말함.
▶ 취약점이 발생하는 이유: 프로그램은 사람이 만드는데, 개발자가 프로그램 개발 시 실 수를 하기 때문. 수백, 수천 명 이상이 검토하고 검토한 윈도우 및 리눅스도 여전히 취 약점이 발견되고 있음
▶ 취약점을 연구하는 목적: 판매, 명예와 공부(돈벌려고), 불법적인 행위(돈벌려고), 군사적인 목적(돈벌려고)
[2] 익스플로잇 : Exploit
▶ 일반적으로 취약점이 발견되면 해당 취약점을 공격하여 원하는 코드를 실행하거나 특 정 목적을 달성하는 공격코드 또한 개발됨. 이런 공격코드를 Exploit(익스플로잇)이라고 부름
▶ 취약점이 발견되고 패치가 이뤄지기 전까지 기간에 이뤄지는 공격을 “0-day(제로 데이) 공격” 이라고 함.
▶ 원데이는 패치가 나왔으나 적용하기 전까지의 기간을 말하지요.
▶ 제로데이는 소수만 쓰지만 원데이는 많은 사람이 쓸 수 있기 때문에 원데이가 더 위험합니다.
▶ 업데이트가 나왔더라도 적용했다가 사내에 문제가 발생할 경우 손실이 크기 때문에 업데이트에 신중합니다.
▶ 침해사고사례를 알아놓으면 좋습니다.
2) 취약점 유형
[1] DoS(서비스 거부 공격)
▶ 일반적으로 네트워크 공격으로 알고 있지만 서비스를 실행하지 못하게(가용성을 파괴) 한다면 서비스 거부공격입니다.
▶ 결국 프로그램의 취약점을 이용해서 서비스를 끌 경우에도 서비스거부공격입니다.
▶ 예전에는 원래 느렸지만 요새는 속도가 빠르기 때문에 가용성에 민감하지요.
▶ 네이버가 1분만 죽더라도 소송에 휘말릴 수 있습니다.
▶ DDOS는 불법도박사이트에서 많이 합니다.
▶ 경쟁업체를 죽이기 위해 해커에게 메일을 보내서...
[2] Code Execution (코드 실행)
▶ 운영체제에 있는 명령어 해석기(cmd.exe, /bin/sh)를 통해 특정 명령어를 실행할 수 있는 공격
▶ 보통 RCE(Remote Code Execution, 원격 코드 실행)으로 많이 불리기도 함.
[3] Overflow (오버플로우 취약점)
▶ 프로그래머가 메모리 경계 값을 검사하지 않아, 공격자가 할당된 메모리 바운더리를 벗어나서 임의의 메모리에 접근할 수 있는 취약점
▶ 보통 오버플로우 취약점을 이용해서 코드 실행 또는 DoS, 정보 획득 등이 이뤄짐.
▶ Code Execution이랑 따로 분리한 이유는 취약점은 있지만 아직 코드를 실행하지는 못하는 것을 말합니다.
[4] Memory Corruption (메모리 오염)
▶ 메모리 관련 취약점으로, 메모리를 참조하는 부분에서 오류가 발생하는 취약점
▶ 공격자는 메모리 오염 취약점을 이용해서 공격자가 원하는 명령어를 참조하도록 할 수 있음.
[5] Gain Information (정보 수집)
▶ 시스템 정보나, 애플리케이션 정보 등 공격자에게 유리한 정보가 노출되는 취약점
▶ 대표적인 경우로, 어플리케이션 버전 정보나, 시스템 경로 정보 등이 노출되는 것.
[6] Gain Privileges (권한 상승)
▶ 낮은 권한을 가진 계정에서 높은 권한을 가진 계정으로 올라갈 수 있는 취약점
▶ 대표적으로 리눅스/유닉스에서 일반 사용자 권한에서 root(최고 관리자) 권한으 로 올라갈 수 있는 취약점
[7] SQL Injection
SQL 쿼리문에 임의의 공격 코드를 삽입하여, 공격자가 원하는 SQL 구문을 실행 할 수 있는 취약점 –이 취약점으로 웹 페이지 로그인 우회, 다른 테이블 내용 열람 등이 가능함
[8] XSS : Cross Site Scripting (크로스 사이트 스크립팅)
▶ 웹 사이트에 공격자가 악의적인 스크립트를 삽입하여, 사용자 쿠키/세션을 탈취하 거나, 사용자를 다른 사이트로 강제로 이동 시키는 등, 다양한 스크립트 태그를 통 해 웹 사이트 사용자를 공격하는 취약점.
[9] Directory Traversal (디렉터리 탐색 취약점)
▶ 웹 취약점의 일환으로, 웹 사이트에서 정상적으로 접근하기 어려운 시스템 내부에 있는 설정 파일, 웹 소스 파일들을 강제로 내려 받을 수 있는 취약점.
[10] HTTP Response Splitting : HTTP 응답 분할
▶ HTTP Request에 있는 매개변수가 HTTP Response에 포함되어 출력되는 경우, 매개변수 내 개행문자
▶ (CR: Carriage Return=%0D, LF: Line Feed=%0A)를 넣어서 응답을 분할함.
▶ 응답 메시지를 조작할 수 있어 악의적인 코드를 삽입하여 XSS 공격 등이 가능함.
[11] Bypass something
▶ 사용자 인증 우회와 같은 시스템에서 구현된 통제를 우회하는 취약점.
[12] CSRF : Cross Site Request Forgery (크로스사이트 요청 위조)
▶ 공격자가 웹 페이지에 악성코드를 삽입하여, 해당 페이지에 접속하는 사용자에게 임의의 행동을 하도록 유도하는 공격
[13] File Inclusion : 파일 포함
▶ 로컬 파일 또는 원격지 파일을 불러와서 명령어를 실행할 수 있는 취약점
[14]
▶ Buffer overflow 취약점이고 D는 다운로드고, A는 취약한 어플리케이션, V에 체크된 것은 검증된 것을 말합니다.
'보안이벤트대응' 카테고리의 다른 글
[웹 애플리케이션 취약점 이해 및 대응] (0) | 2019.09.17 |
---|---|
레지스트리를 이용한 악성코드 숨기기 (0) | 2019.09.15 |
운영체제와 관련된 명령어 모음 (0) | 2019.09.15 |
[네트워크 취약점 이해 및 대응] (0) | 2019.09.05 |
[운영제체 취약점 이해 및 대응]윈도우 시스템의 이해 및 보안 (0) | 2019.09.02 |
댓글