요즘IT
위시켓
최근 검색어
전체 삭제
최근 검색어가 없습니다.

이전 2편의 시리즈를 통해 개발자 관점에서 ChatGPT를 활용해 보안 이슈를 해결하는 방법을 살펴보았다. 1편에서는 ChatGPT를 활용한 시큐어 코딩 방법을, 2편에서는 ChatGPT를 활용한 침해 사고 분석이라는 주제로 설명했다. 마지막으로 이번 편에서는 사이버 공격의 집약체인 악성코드를 주제로 ChatGPT 활용 방법에 대해 알아보고자 한다.

회원가입을 하면 원하는 문장을
저장할 수 있어요!

다음

회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!

확인

개발

개발자 ChatGPT로 보안 정복하기: 악성코드 대응

년차,
어떤 스킬
,
어떤 직무
독자들이 봤을까요?
어떤 독자들이 봤는지 궁금하다면?
로그인

 

개발자 ChatGPT 보안
OpenAI 로고 <출처: SWARTHMORE COLLEGE ITS BLOG >

 

이전 2편의 시리즈를 통해 개발자 관점에서 ChatGPT를 활용해 보안 이슈를 해결하는 방법을 살펴보았다. 1편에서는 ChatGPT를 활용한 시큐어 코딩 방법을, 2편에서는 ChatGPT를 활용한 침해 사고 분석이라는 주제로 설명했다. 마지막으로 이번 편에서는 사이버 공격의 집약체인 악성코드를 주제로 ChatGPT 활용 방법에 대해 알아보고자 한다.

 

공격자들의 공격 도구 모음, 악성코드

ChatGPT를 활용해 악성코드를 분석하기 전, 먼저 악성코드에 대해 알아보자. 악성코드(Malware)는 악의적인 소프트웨어라는 의미로, 악성(Malicious)과 소프트웨어(Software)를 결합한 합성어다. 악의를 가진 공격자가 제작한 매크로나 프로그램이 시스템에 감염되면, 해당 프로그램이 발생시키는 모든 공격들이 수행된다. 이런 공격을 통해 시스템을 마비시키거나 공격자가 원하는 정보를 탈취한다.

 

악성코드는 악의적인 ‘동작 행위’과 ‘공격 목적’이라는 2가지 종류로 분류된다. 바이러스, 스파이웨어, 트로이목마, 웜 등은 복제, 감염, 전파와 같은 동작 행위를 기반으로 분류된 것이다. 또한 파일 암호화, 정보 유출, 사용자 입력 값 탈취, 권한 상승이라는 공격 목적에 따라 백도어, 다운로더, 인포스틸러, 키로거, 랜섬웨어, 루트킷 등으로 분류된다.

 

대표적인 악성코드 중 하나인 랜섬웨어(Ransomware)의 경우, 감염된 시스템의 파일이나 드라이브를 암호화하고 이를 복호화 하는 대가로 금전을 요구하는 패턴이다.

 

악성코드(Malware)

 

 

ChatGPT로 악성코드 만드는 공격자들

ChatGPT 공개 이후 공격자들은 새로운 러닝메이트의 등장에 열렬히 환호했다. 악성코드 지능화와 배포 방식 고도화를 위해 언더그라운드 포럼을 중심으로, ChatGPT를 악의적인 공격에 이용하는 노하우가 공유되기 시작한 것이다.

 

단순하게 악성코드 일부 기능 구현 요청부터, 악성코드를 탐지하는 백신 프로그램이나 보안 솔루션의 취약점을 찾아내는 버그 바운티(Bug Bounty)까지 활용 범위는 다양했다.

 

ChatGPT의 첫 번째 버그 바운티 사례는 EDR 솔루션 우회 취약점이다. 악성코드에 대한 전문지식이 없던 CodeBlue29 사용자는 EDR 솔루션 도입 과정에서 솔루션 평가를 위해 ChatGPT를 활용했다. ChatGPT는 악성코드 생성에 그치지 않고 EDR 솔루션을 우회할 수 있는 보안 취약점을 발견했고, 이는 첫 번째 버그 바운티 사례로 이름을 올렸다.

 

위와 같은 ChatGPT를 악용한 보안 공격 및 사이버 위협에 대한 우려가 높아지고 있다. 전문적인 지식 없이 공개된 도구나 취약점을 사용해 공격하는 스크립트 키디(Script Kiddy)들도 ChatGPT를 활용하면, 쉽게 보안 취약점을 발견할 수 있고 전문적인 해킹 기술을 확보할 수 있기 때문이다.

 

 

​​악성코드 제작 사례

이렇듯 공격자들은 ChatGPT로 랜섬웨어를 제작하는 것도 가능하다. 적을 이기려면 적을 알아야 하는 법, 공격자들이 어떻게 활용하고 있는지 살펴보자. 우선 암호화에 필요한 RSA 알고리즘을 사용해 특정 경로의 파일을 암호화할 수 있는 스크립트나 소스코드 구현을 요청하면 된다. 파이썬이나 Go, Java, Perl, Powershell 등 원하는 언어를 지정하여 요청하면 그에 맞는 언어로 답변을 준다.

 

언더그라운드 포럼에 공개된 ChatGPT를 악용한 악성코드 사례를 살펴보면, 게시글을 작성한 해커가 ChatGPT에게 요청한 요구사항은 단순했다. 파일 형식을 검색하고 특정 파일 사이즈가 50MB 미만인 경우 대기열에 파일을 추가한다. UUID 값을 이용해 생성한 임시 폴더에 파일을 저장한 후, ZIP 파일로 압축하는 랜섬웨어를 파이썬 코드로 제작하도록 요청했다.

 

또한 자격 증명 정보를 FTP 서버에 업로드하고, 프로그램 구동 중 오류가 발생하면 생성한 폴더와 ZIP 파일을 삭제하여 증거 인멸이 가능하게 만들었다.

 

ChatGPT 악성코드 제작

 

ChatPGT는 요구사항에 맞게 파이썬으로 소스코드를 구현했다. 파이썬 이외에 동일 기능을 수행하는 소스코드를 Java로 작성하도록 요청해도 답변을 받을 수 있었다. 또한 암호화된 파일을 이메일로 발송하거나, 지정한 웹 서버로 전송하는 기능을 구현하도록 요청해도 ChatGPT는 성실하게 수행해 냈다.

 

ChatGPT 악성코드 제작

 

공격자들이 ChatGPT를 활용해 악성코드를 제작할 때 중요하게 생각하는 것이 있는데, 바로 악성코드 제작 같은 부적절한 요청은 답변해 주지 않는다는 것이다. 이러한 이유로 공격자들은 ChatGPT를 우회하여 악성코드를 제작하는 방법을 연구한다.

 

ChatGPT 악성코드 제작

 

ChatGPT는 부적절한 요청을 거부하기 때문에, 공격자들은 이를 우회하기 위해 악의적인 기능을 상세하게 열거하여 요청하거나, 다양한 언어로 요청하는 등의 다양한 방법을 연구하고 시도하고 있다. 이러한 ChatGPT 기반 악성코드에 대응하기 위해선 악성코드의 기본 기능에 대한 이해가 선행되어야 한다. 앞서 악성코드의 종류와 주요 기능을 살펴본 이유가 바로 이런 점 때문이다.

 

 

ChatGPT로 악성코드 대응하기

ChatGPT 악성코드 대응
<출처: freepik>

 

공격자들이 ChatGPT를 악성코드 제작과 보안 솔루션 우회에 악용한다면, 이를 대응하기 위해서는 의심스러운 파일이나 프로그램 분석에 ChatGPT를 활용해야 한다. 악성코드도 결국 프로그램으로 구현되어 있기 때문에, ChatGPT를 이용하여 악성코드를 분석하고 대응하기 위해서는 적절한 질문이 필요하다.

 

악의적인 목적을 달성하기 위해서는 피해 시스템의 사용자에게 들키지 않고 공격을 수행하는 것이 중요하다. 따라서 악성코드는 정상적인 프로그램으로 위장하거나 프로세스 정보를 숨긴다. 그다음 정상 프로세스에 공격 코드를 주입하거나, 소프트웨어 구성 요소에서 발생하는 함수 호출이나 메시지, 이벤트 등을 가로채어 공격을 숨기는 방식이다.

 

이처럼 악성코드는 난독화나 취약점 악용 등의 기술을 활용하여 분석을 어렵게 만들기 때문에, 소프트웨어 개발자라도 악성코드를 분석하는 것은 쉬운 일이 아니다. 이때 전문적인 악성코드 분석 기술을 보유하지 않고도 의심스러운 파일이나 프로그램의 악성 여부를 판단할 수 있는 도구로 ChatGPT를 ­활용할 수 있다.

 

보통 공격자들은 일반 사용자를 대상으로 악성코드를 배포하기 위해 문서형 악성코드를 이용한다. 이메일이나 인터넷을 통해 쉽게 배포할 수 있으며, 사용자의 호기심을 자극해 악성코드가 설치될 확률이 높아지기 때문이다.

 

문서형 악성코드는 주로 매크로를 사용하여 공격 코드를 실행하는 방식으로 배포된다. 예를 들어, 마이크로소프트 오피스의 엑셀 프로그램은 VBA(Visual Basic for Application)라는 매크로 기능을 제공하며, 이를 이용하여 프로세스 자동화 기능을 수행할 수 있다.

 

악성코드는 이러한 기능을 악용하여 사용자의 시스템에 침투하고, 기밀 정보를 탈취하거나 시스템을 마비시키는 등의 행위를 수행한다. VBA나 VBS로 작성된 악성코드를 확인하려면, 마이크로소프트 오피스의 ‘개발 도구’ 탭에서 ‘Visual Basic’ 아이콘을 클릭하여 비주얼 베이직 편집기를 실행해야 한다.

 

ChatGPT 악성코드 대응

 

ChatGPT를 활용하여 VBA 분석한 예시를 보자. 문서를 열람하면 매크로가 자동 실행되어 ‘C:\Windows\temp\payload.txt’ 파일을 생성하고 지정된 문자열을 입력한 후 외부 프로그램을 실행한다. 이 예시에서는 payload.txt 파일에 “here we can type our payload. we will replace this part with our payload”라고 삽입했지만, 실제 공격 코드에서는 해당 부분에 악의적인 공격 코드를 삽입할 수 있다. ChatGPT는 매크로 분석 정보와 함께 ‘이는 악용될 수 있으니 주의가 필요하다’는 경고 메시지를 함께 알려주고 있다.

 

ChatGPT 악성코드 대응

 

다음으로 문서형 악성코드에 사용되는 리버스 쉘(Reverse Shell) 기능 공격 구문 예시다. ChatGPT에게 분석 요청한 내용을 보면, 해당 코드는 원격 서버에서 명령어를 수신하고 실행이 가능한 리버스 쉘이라는 답변을 해주었다. 그리고 이 코드는 악성코드로 분류되기 때문에 파일 삭제와 함께 보안 강화를 권고한다. 이처럼 악성코드에 대한 전문지식이 없어도 ChatGPT를 이용해 문서형 악성코드에 대해 분석할 수 있다.

 

 

ChatGPT 활용 시 주의사항

위 예시들을 통해 살펴본 것처럼 ChatGPT는 다양한 보안 문제를 분석하고 해결하는 데 활용할 수 있다. 그러나 사용 시 몇 가지 주의사항이 필요하다. 우선 ChatGPT는 만능 해결사가 아니라 하나의 도구라는 것이다. 아무리 좋은 도구라 할지라도 올바른 사용법을 익히지 않으면 잘못된 결과를 얻을 수도 있고, 제대로 활용하지 못하면 일반적인 결과만 얻게 될 것이다.

 

또한 ChatGPT에 데이터를 입력할 때는 항상 보안에 유의해야 한다. ChatGPT를 이용해 원하는 결과를 얻으려면 구체적인 데이터가 필요하지만, 이 과정에서 개인 정보나 민감한 정보가 포함되면 유출 위험이 있으니, 데이터를 입력할 때 각별한 주의가 필요하다.

 

 

마치며

지금까지 총 3편의 글을 통해 ChatGPT를 활용해 보안 이슈 사례를 분석해 보았다. 보안은 개발과 마찬가지로 전문지식이 필요한 분야지만 기업이나 개인이 보안 전문지식을 얻는 것에는 한계가 있다. 그래서 이때 ChatGPT를 활용하면 보안 강화와 업무 편의성을 향상시킬 수 있다.

 

이미 AI 시장의 두 번째 빅 웨이브는 시작됐다. ChatGPT는 다양한 산업분야에서 전문지식 습득에 소요되는 시간과 한계를 보완해 줄 수 있어 활용도가 높으니, 향후 IT 생태계 전반의 발전과 보안 강화에도 크게 기여할 것으로 기대된다.

 

김보안

편집 오신엽 객원 에디터

 

요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.

좋아요

댓글

공유

공유

댓글 0
정보관리기술사 보안전문가
27
명 알림 받는 중

작가 홈

정보관리기술사 보안전문가
27
명 알림 받는 중
정보관리기술사로서 보안전문가로 일하고 있습니다.
다양한 방면의 보안지식 공유를 통해 즐거움을 느낍니다.

좋아요

댓글

스크랩

공유

공유

요즘IT가 PICK한 뉴스레터를 매주 목요일에 만나보세요

요즘IT가 PICK한 뉴스레터를
매주 목요일에 만나보세요

뉴스레터를 구독하려면 동의가 필요합니다.
https://auth.wishket.com/login