보안이벤트대응

[운영체제 취약점 이해 및 대응] 취약점에 대한 이해

D4tai1 2019. 9. 1.

2. 취약점에 대한 이해

1) 취약점과 익스플로잇

 [1] 취약점 : Vulnerability

  ▶ 취약점이란 사용자에게 허용된 권한 이상의 동작이나 정보 열람을 가능하게 하는 설 계상의 허점이나 결함을 말함.

  ▶ 취약점이 발생하는 이유: 프로그램은 사람이 만드는데, 개발자가 프로그램 개발 시 실 수를 하기 때문. 수백, 수천 명 이상이 검토하고 검토한 윈도우 및 리눅스도 여전히 취 약점이 발견되고 있음  
  ▶ 취약점을 연구하는 목적: 판매, 명예와 공부(돈벌려고), 불법적인 행위(돈벌려고), 군사적인 목적(돈벌려고)  


 [2] 익스플로잇 : Exploit

  ▶ 일반적으로 취약점이 발견되면 해당 취약점을 공격하여 원하는 코드를 실행하거나 특 정 목적을 달성하는 공격코드 또한 개발됨. 이런 공격코드를 Exploit(익스플로잇)이라고 부름   

  ▶ 취약점이 발견되고 패치가 이뤄지기 전까지 기간에 이뤄지는 공격을 “0-day(제로 데이) 공격” 이라고 함. 

  ▶ 원데이는 패치가 나왔으나 적용하기 전까지의 기간을 말하지요.

  ▶ 제로데이는 소수만 쓰지만 원데이는 많은 사람이 쓸 수 있기 때문에 원데이가 더 위험합니다.

  ▶ 업데이트가 나왔더라도 적용했다가 사내에 문제가 발생할 경우 손실이 크기 때문에 업데이트에 신중합니다.

  ▶ 침해사고사례를 알아놓으면 좋습니다.

 

https://www.cvedetails.com/

 

CVE security vulnerability database. Security vulnerabilities, exploits, references and more

www.cvedetails.com provides an easy to use web interface to CVE vulnerability data. You can browse for vendors, products and versions and view cve entries, vulnerabilities, related to them. You can view statistics about vendors, products and versions of pr

www.cvedetails.com

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] 

https://www.exploit-db.com

 

Offensive Security’s Exploit Database Archive

 

www.exploit-db.com

[그림1] exploit-db.com에서 search EDB 

   Buffer overflow 취약점이고 D는 다운로드고, A는 취약한 어플리케이션, V에 체크된 것은 검증된 것을 말합니다.

댓글