CVE 이해, 취약점 체이닝

 

1. CVE(Common Vulnerabilities and Exposures)

 

CVE(Common Vulnerabilities and Exposures)는 공개적으로 알려진 컴퓨터 보안 결함에 고유한 식별 코드를 부여하여 전 세계적으로 정보를 공유하고 관리하는 데 사용되는 국제 표준 목록입니다. 다양한 보안 취약점이나 시스템 결함을 일관된 방식으로 식별하고 추적하기 위해 이런 방식이 사용되며 이를 통해서 알려진 취약점에 대한 정보 공유와 대응이 용이해진다.

 

1) CVE 목적

  • CVE는 IT 전문가들이 컴퓨터 시스템의 보안 결함을 우선순위로 정하여 해결하는데 도움을 주는 표준화된 방법을 제공
  • CVE는 보안 결함에 대한 공통의 언어를 제공하여 서로 다른 시스템과 데이터베이스 간에 보안 위협 정보를 쉽게 공유하고 이하는데 도움을 줌 
  • CVE는 보안 결함이 공개되고 이를 해결하기 위한 조치가 취해질때까지 과정을 추적하고 문서화하는 역할을 함 

 

2) CVE 조건

  • 독립적으로 수정 가능해야 함 
  • 영향을 받는 공급자에 의해 인정되거나 문서화되어야 함
  • 하나의 코드베이스에 영향을 미쳐야 함 "다만, 여러 제품에 영향을 미치더라도 영향을 받는 제품마다 고유 CVE를 할당받는다."

 

3) 버그헌팅 CVE 활용 시 장단점

 

장점 

- 빠른 시간 내에 취약점을 찾을 수 있음

- 공개된 취약점이여서 취약점에 대한 내용을 쉽게 찾아볼 수 있음

- 신규 취약점 발굴에 도움을 줌

 

단점

- 중복된 리포트 제보가 있을 가능성이 높음

- 이미 잘 알려진 취약점이기때문에 이미 패치가 되었을 가능성 높음 

 

 

2. Metasploit

 

Metasploit은 대표적인 Pentesting framework이며 CVE에 등록된 보안 취약점을 이용하고 테스트하는 도구이다. Recon, Scan, Exploit 등 다양한 스텝에서 사용가능하고 버그헌팅이나 모의해킹에서 자주 활용된다. 이는 Kail Linux에 기본적으로 탑재되어있다.

또한 프레임워크의 편리한 명령줄 인터페이스를 이용해서 악용 기법을 검색, 정보를 확인, 악용 기법을 수행할 수 있다.

 

  • msfconsole 명령어 실행 시 메타스플로잇 실행 
  • 취약점 및 공격 기술을 찾을 때 - search
  • use: 원하는 취약점을 사용할 수 있음
  • show options : 선택된 모듈을 이용해 취약점 공격을 하기전 반드시 선택하는 옵션 정보가 나옴 
  • set : 특정 변수 값을 설정
  • exploit : 공격 실행

 

 

 

 

3. 취약점 체이닝 (Vulnerability Chaining)

 

취약점 체이닝은 여러 개의 취약점을 연결하여 보안에 미치는 영향이 상대적으로 낮은 보안이슈들을 결합하여 최종적으로 강력한 시나리오를 구축하는 방법을 말한다. 취약점 체이닝은 단순하게 한 가지의 취약점이 아닌 여러 취약점을 찾아야 되기때문에 분석하는 대상에 대해 깊은 이해를 필요로 한다. 이렇게 여러 취약점을 연계하거나 단일 취약점과 다른 정상적인 기능들을 함께 사용해 취약점 파급도를 높이는 것을 의미한다.

 

1) RCE(Remote Code Execution)

 

오픈소스 버그헌팅에서의 원격 코드 실행 취약점(RCE)은 대부분 취약점 체이닝을 통해 발생한다. RCE 공격은 공격자가 대상 서버에서 임의 코드를 실행할 수 있는 공격을 말한다. 이를 통해 공격자는 멀웨어/악성코드 배포, 서버 내 중요 데이터 탈취/파괴, DoS공격 등이 가능하다.

 

 

 

 

 

 

 

 

참고 

KISA 아카데미 실전사이버훈련 버그헌팅 실습훈련-초급과정

KISA 아카데미 실전사이버훈련 버그헌팅 실습훈련-중급과정

FIND the GAP 교안