Security/Trend

보안관제 및 침해대응에서 ChatGPT 활용 방안 분석

아이렌. 2023. 1. 1. 21:49

몇 주 전부터 IT와 보안 커뮤니티에서 ChatGPT라는 AI가 유행한다고 들었는데 ChatGPT를 사용해볼 겸 관제와 침해대응에도 사용할 수 있을지 간단히 테스트를 해봤다.

 

1. ChatGPT란

1. ChatGPT는 OpenAI가 개발한 GPT 3.5 기반의 프로토타입 대화형 인공지능 챗봇이다.

2. ChatGPT는 주고받은 대화와 대화의 문맥을 기억할 수 있어서 피드백을 요청할 수 있다.

3. 민감한 정보나 부적절한 요청은 ChatGPT가 답변을 거부할 수 있다,
4. 인터넷에서 수집한 2021년까지의 정보를 학습했고 오프라인으로 동작하기 때문에 실시간 학습이 불가능하다.

 

2. 테스트

2.1 IPS 페이로드 로그로 Snort 룰 생성

더보기

 

IPS 페이로드 로그를 분석하고 User-Agent 부분의 ${jndi:ldap 를 탐지할 수 있는 Snort 룰을 만들어달라고 요청했다.

요청한 로그는 2021년 12월에 발생한 취약점 Apache Log4j2(CVE-2021-44228)의 페이로드이다.

 

ChatGPT에서 "인코딩된 것으로 보이는 값이 있는 User-Agent 헤더를 포함하여 여러 헤더가 있는 HTTP 요청인 것 같습니다. 이 정보만으로는 인코딩된 문자열이 무엇을 하는지 또는 어떻게 사용될 수 있는지 명확하지 않습니다." 라고 답변했는데 어떤 취약점인지는 알려주지 못 하는 것 같다.

 

또한 http_user_agent 옵션을 사용할 줄 알았으나 http_header 옵션을 사용해서 Snort룰을 만들어줬다.

 

2.2 페이로드 분석 후 공격 판단

더보기

 

ChatGPT가 2021년 12월에 발생한 Log4j2 취약점을 학습하지 못 해 답변을 제대로 못 한것 같아 CVE-2018-20062 페이로드를 줘서 분석하고 공격이면 어떤 공격인지 알려달라고 요청했다.

 

그 결과 공격 과정을 설명해주면서 이러한 과정 때문에 공격일 것 같다고 판단해줬는데

ChatGPT는 페이로드 로그로 취약점을 제대로 알려줄 수 없다는 것을 알 수 있었다.

 

2.3 CVE에 대한 POC

더보기

 

ChatGPT가 버퍼 오버플로우 코드나 매크로 등을 만들어준 사례를 본 적이 있어 위 페이로드의 CVE 번호를 알려주고 이 취약점에 대한 POC를 알려줄 수 있는지 물어봤지만 POC를 줄 수 없다고 답변받았다.

 

2.4 CVE에 대한 패킷 예제

더보기

 

또한 CVE에 대한 패킷 예제를 알려달라고 요청해봤다.

2주 전까만 하더라도 정확하지 않은 패킷을 알려주기라도 했지만 현재 다시 질문해보니 아예 답변조차 받지 못 했다.

 

2.5 CVE에 Snort 룰 요청

더보기

 

혹시 POC 말고 Snort 룰은 알고 있지 않을까 해서 물어봤는데 POC와 마찬가지로 답변받지 못 했다.

2주 전까지는 전혀 다른 Snort룰을 알려주기라도 했는데 지금은 답변하지 못 하도록 수정된 것 같다.

 

2.6 취약점 스캐너 탐지 Snort 룰

더보기

 

 

Apache access.log에서 Nikto 스캐너가 스캔한 로그를 알려주고 공격인지 판단하고, 공격이면 Snort룰을 만들어 달라고 요청했다.

 

ChatGPT가 Nikto라는 도구를 사용하여 서버에서 알려진 취약점을 검색하는 것으로 보인다고 정확하게 답변해줬는데 Snort룰은 User-Agent에서 Nikto 문자열을 탐지하지 않고 다른 문자열을 탐지하는 룰을 만들어줬다.

 

2.7 리눅스 명령어

더보기

 

Apache access.log에서 가장 많은 404 코드를 생성하는 10개의 IP를 찾아 내림차순으로 정렬하는 Linux 명령어를 만들어 달라고 요청해봤는데 리눅스 명령어를 만들어 주고 각각의 명령어에 대한 설명도 친절하게 알려줬다.

 

2.8 스플렁크 쿼리

더보기

 

아파치 웹서버 access log에서 404 코드를 최소 10번 이상 발생시키는 가장 많은 IP 목록 10개를 찾은 다음에 내림차순으로 정렬하고 메소드와 IP, 시간, URI를 나타내는 테이블을 만드는 스플렁크 쿼리를 만들어줘

 

ChatGPT가 복잡한 스플렁크 쿼리도 만들 수 있는지 테스트해봤는데 최소 10번 이상 발생이라는 조건을 누락해서 다시 요청해 본 결과 제대로 쿼리를 만들어 주고 설명까지 해줬다.

 

 

2.9 쉘 스크립트

더보기

 

불필요한 서비스가 존재하는지 점검할 수 있는 쉘 스크립트를 만들어달라고 요청해봤는데 듣던대로 코드는 잘 만들어냈다.

 

2.10 APT 그룹의 TTP

더보기

 

APT 그룹의 MITRE ATT&CK TTP를 알려달라고 요청해봤다. 2주 전까지만 하더라도 TTP를 상세하게 알려줬는데 민감한 정보라 그런지 지금은 답변받지 못 했다.

 

3. 결론

1. ChatGPT는 취약점에 대한 정보는 알려주지 못 하지만 공격 페이로드 분석은 제한적으로 가능해서 정오탐 판단이 애매할 때 사용하면 괜찮을 것 같다.

 

2. Snort룰을 만들 수 있긴 한데 간단한 룰이나 정규표현식이 있는 룰만 잘 만들고 복잡한 옵션이 있는 룰은 피드백을 요청해서 만들어야 한다.

 

3. 명령어, 쿼리, 코드는 잘 만들어서 유용하게 사용할 수 있을 것 같다.