보안/교육

버그헌팅 #4 CVE & ChatGPT

수달정보보호 2024. 8. 20. 19:54

CVE는 공개적으로 알려진 컴퓨터 보안 결함에 대한 목록이다. 각각의 CVE는 고유한 CVE ID가 부여되어 특정 보안 결함을 명확하게 식별할 수 있게 한다. 'CVE-발견번호-고유번호'의 형태다. 모든 취약점에 CVE를 주는 건 아니고, 그 중대함이 큰 경우에만 부여한다. CVE는 세계의 IT 전문가들이 컴퓨터 시스템의 보안 결함을 우선순위를 정하여 해결하는 데 도움을 준다.  그렇기에 보안 담당자라면 CVE에 대해 지속적으로 확인하는 것은 필요할 것이다. 물론, 조직에 바로 적용하기는 어렵겠지만 말이다.

 

CVE에는 조건이 있다. 

1. 독립적으로 수정 가능해야 한다. 즉, 다른 버그로부터 독립적으로 수정할 수 있는 결함을 말한다.

2. 영향을 받는 공급자에 의해 인정되거나 문서화되어야 한다. 실제로 SW나 HW 벤더가 이를 인정하고, 이것에 보안에 부정적인 영향을 미친다는 것을 인정해야 한다는 것이다.

3. 하나의 코드베이스에 영향을 미쳐야 한다. 둘 이상의 제품에 영향을 미치는 결함은 별도의 CVE를 받는다. 

 

그렇다면 CVE를 활용하여 취약점을 찾으면 어떤 효과가 있을까? 당연히 기준이 있으니 빠른 시간 내에 취약점을 찾을 수 있다는 점이다. 또한, 공개된 취약점이기 때문에 취약점에 대한 내용을 쉽게 찾아볼 수 있을 것이다. 그리고 이를 토대로 신규 취약점 발굴에 도움도 된다. CVE는 기본으로 깔고 가고, 그다음에 조직에서만 존재하는 취약점을 찾아보는 것이다.

 

CVE를 활용하는 대표적인 도구로 Metasploit이 있는데, CVE에 등록된 보안 취약점을 이용하고 테스트할 수 있다. Recon, Scan, Expolit 등 다양한 스텝에서 활용 가능하다. Kali Linux에 기본으로 탑재되어 있다. 칼리 리눅스를 열고 msf콘솔을 성공적으로 실행하면 메타스플로잇을 동작할 수 있다. search 명령어를 통해 특정 유형 및 구문을 찾을 수 있고, 아주 상세한 검색이 가능하다. 취약점을 공격할 수 있는 주요 명령어로는 expolit과 run이 있는데, exploit은 공격을 실행하고, run은 정보 수집, 서비스 스캔, DoS 공격을 수행할 수 있다. 

 

그리고 흥미롭게도, ChatGPT로도 취약점을 찾아볼 수 있다. 우선 대화형 언어모델이 무엇인지 확인하도록 한다. 대화형 언어모델에 대해 알아보기 위해 대형 언어 모델(LLM), 인간 피드백형 강화학습(RLHF)에 대해 알아야 한다. 

 

LLM은 문장에서 다음에 오는 단어를 예측하기 위해 방대한 양의 데이터로 훈련하며, 데이터의 양을 늘리게 되면 자연스레 언어 모델의 수행 능력이 증가하게 된다. 하지만 LLM은 훈련 데이터를 기반으로 다음 단어를 예측할 뿐이기에 가끔 정치적, 종교적, 인종적 문제가 되는 단어를 예측할 수도 있다. RLHF는 LLM의 한계점을 개선하기 위한 것이라고도 볼 수 있다. '사람'이라는 가이드라인을 따라 답을 하도록 좀 더 훈련을 시키는 방법이다. 하지만 RLHF를 거치고 나서 오히려 약간이나마 성능이 떨어지는 사례가 있었다.

 

그리고 ChatGPT는 2018년 출범하여 끊임없이 발전하고 있다. 사실 끊임없이라는 말에 다소 어폐는 있지만 말이다. 어찌되었건, 나도 가끔 공부를 하며 GPT를 이용하는데, 무료 버전을 써도 나름 쓸만하다는 게 작년보다는 확실히 달라졌다는 것을 느끼게 한다. 유료 버전을 쓴다면 더욱 의미있는 하나의 솔루션이 되지 않을까 싶기도 하다. ChatGPT로 정답을 알게 되는 게 아니라, 정답을 알게 해줄 선지를 여러 개 제공받을 수 있을 것이기 때문이다. 아직 이미지는 미지원이지만, 이미지도 지원되는 날이 온다면 정말 보안 담당자에겐 애용되는 솔루션으로 자리잡지 않을까 싶다.

 

그밖에 마소에서 개발한 Copilot도 있는데, 웹 검색에 특화된 것으로, 자료의 출처를 구체적으로 표기하거나, 추가 정보에 대한 링크를 제공한다. 다만 엣지 브라우저에서만 가능하며, 이미지 창작이 가능하다는 특징이 있다. Bard는 구글에서 개발한 대화형 인공지능 언어모델인데, 바드는 논문, 티스토리 등 문서 이해에 특회되어 있다. 따라서 문서 요약과 분석 능력에 아주 강하다. 특정 브라우저, 플랫폼의 제약은 없기 때문에 접근성이 아주 뛰어나다. 이미지는 지원하지 않는다. 텍스트 기반으로 더욱 뛰어나가고 싶은 방향성이 있는 것이 아닐까 싶다.

 

BurpGPT는 GPT 기반 웹 보안 취약점 탐지 BurpSuite 익스텐션이다. 웹 트래픽을 Open AI 모델로 전송하여 보안 취약점을 탐지하는 것이다. 자동 보안 리포트를 생성해 잠재적 보안 이슈를 요약하고, Open AI의 GPT 모델을 이용해 광범위한 트래픽을 분석할 수 있다. PentestGPT는 GPT-4 기반 모의 침투 특화 도구로, 침투 테스트 프로세스를 자동화하도록 설계됐다. ChatGPT 위에 구축되었으며, 대화형 모드로 작동한다. 다만 ChatGPT 플러스 회원만 사용 가능하다. 

 

어느 것을 사용하건, 핵심은 취약점을 한줄로 요약할 수 있어야 할 것이고, 취약점 발현 방법을 설명할 수 있어야 할 것이며, 취약점의 영향, 기술적 발생 원인, 조치 방안에 대해 파악할 수 있어야 할 것이다. 이 5가지에 대해 기술할 수 있으면 대화형 모델을 잘 활용하고 있다고 할 수 있을 것이다. 

 

 

 

 

 

 

 

 

 

 

 

728x90

'보안 > 교육' 카테고리의 다른 글

AWS Cloud Practitioner Essentials #2  (3) 2024.08.27
AWS Cloud Practitioner Essentials #1  (0) 2024.08.26
버그헌팅 #3 웹 취약점  (0) 2024.08.16
버그헌팅 #2 웹 기본  (0) 2024.08.14
버그헌팅 #1 기본  (0) 2024.08.12