<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=939333007162424&amp;ev=PageView&amp;noscript=1">

슬기로운 EDR 생활 : 소프트웨어 취약점 관리

1. 소프트웨어 보안 취약점

안녕하세요, 다시 돌아온 지니언스 강한별입니다. 오늘은 최근 랜섬웨어만큼 말이 많고 시끄러운(?) 소프트웨어 보안취약점에 대해 이야기해보려고 합니다. 혹시 여전히, 아직도 랜섬웨어에 대해 고민하고 계신 분들이 계신다면 예전 블로그를 확인 바랍니다. (슬기로운 랜섬웨어 극복하기

시작함에 있어 소프트웨어 보안 약점/보안취약점에 대해 설명하고 싶은데요, 먼저 소프트웨어 “보안 약점”이란 소프트웨어 개발 시, 소프트웨어에 결함이 될 수 있는 논리적인 오류나 버그, 실수 등으로 인해 이후 취약점으로 이어질 수 있는 근본적인 원인을 의미합니다. 그렇다면 소프트웨어 “보안 취약점”이란 무엇일까요? 이는 정보시스템(여기선 소프트웨어)에 실제로 내장되어 있는 위험요소들을 통합하여 의미하는 것으로 공격자가 이를 악용했을 때 대상 시스템의 정상적인 작동을 방해하거나 오작동을 발생시킬 수 있으며 정보유출, 권한 상승과 같은 침해사고 행위를 일으킬 수 있는 요소를 의미합니다. 둘 다 비슷한 말 같지만 요지는 소프트웨어 보안 약점과 보안 취약점 모두 방치하지 말고 관리해야 한다는 것입니다. 

실제로 대부분의 해킹 침해 사고는 소프트웨어 또는 애플리케이션에 존재하는 보안 취약점(또는 보안 약점)을 악용하여 발생하는데요, 이러한 보안 취약점을 근본적으로 해결하기 위해서는 소프트웨어 개발 단계에서부터 시큐어코딩을 고려하는 것이 중요합니다. 하지만 안타깝게도 대부분의 소프트웨어 개발 기업은 부족한 예산과 인력, 촉박한 개발 기간, 보안 인식 부재 등으로 소프트웨어 개발 단계에서부터 보안을 고려하지 못하고 있으며 일반적으로 소프트웨어를 개발할 때, 보안까지 신경 쓰면서 개발하시는 분들은 많지 않을 겁니다.

따라서 C, Java 등과 같은 일반적인 언어를 통해 소프트웨어를 개발할 때 수많은 취약점들이 내재될 수 있습니다. 또한 오늘날 개발과정에서 많이 사용하는 오픈소스 문제가 있습니다. 오픈소스는 개발을 빠르고 쉽게 만들어 준다는 큰 장점 때문에 많이 사용되고 있는데요, 전체 코드 중 76%는 오픈소스이며 96%의 코드베이스는 오픈소스를 포함하고 있다는 조사도 발표되기도 했습니다. 하지만 출처가 확실하지 않아 취약점이 개발자도 모르게 내재될 수 있다는 큰 단점도 함께 가지고 있습니다.

 

사진1
[사진 1] 오픈소스 취약점 경고 출처 : 보안뉴스

 

이와 관련된 대표적인 사건이 2021년 연말에 발생했던 log4j 사태였죠. 오픈소스 라이브러리인 log4j에서 취약점이 발견되었으며 해당 취약점을 통해 공격자가 원격으로 목표 대상을 감염시킬 수 있었으며 Java 기반의 서버와 App 대부분이 그 영향권 안에 있었기에 사실상 전세계의 대부분 서버가 그 대상이 되었습니다. log4j 사태는 앞서 언급한바와 같이 시큐어코딩 또는 보안을 고려하지 못하고 개발되었거나 취약점이 있는 오픈소스를 사용하여 개발된 소프트웨어를 무방비로 사용하게 된다면 예상하지 못한 작은 요소가 최종적으로 거대한 침해사고까지 이어질 수 있다는 걸 보여준 사례였습니다. 하지만 대부분의 보안담당자는 개발자 출신이 아니거나 개발을 주 업무로 하는 인력이 아니기 때문에 log4j 또는 유사한 사태에 익숙하지 않으며 빠른 대응을 하기가 쉽지 않습니다. 때문에 우리가 사용하고 있는 소프트웨어가 취약점이 노출된(또는 존재하는) 버전인지를 빠르게 확인하거나 알 수 있는 방안이 있어야 합니다. 

한국인터넷진흥원(이하 KISA)은 이러한 문제 해결에 도움을 주기 위해 “소프트웨어 개발보안 가이드” 및 “소프트웨어 보안약점 진단가이드” 등을 제공하여 많은 기업 및 기관 그리고 담당자들에게 도움을 주고 있습니다. 이 문서에는 시큐어코딩을 비롯한 소프트웨어 보안약점 진단을 위한 방법을 포함하고 있습니다.

- 소프트웨어 개발보안 가이드 
- 소프트웨어 보안약점 진단 가이드 
 

사진2-1

[사진 2] 소프트웨어 개발보안 가이드 출처 : 한국인터넷진흥원(KISA)

 

또한 많은 조직들은 PMS(Patch Management System)와 같은 솔루션을 운영하며 정기적인 또는 필요 시에 소프트웨어 버전 업데이트 등을 통해 소프트웨어 취약점에 대해 대응하거나 예방하고 있습니다. 

그리고 저희 지니언스의 Genian EDR을 통해서도 소프트웨어 관리가 가능합니다. 현재 우리 조직에서 사용중인 소프트웨어들에 대한 가시성 및 보안성 확보와 나아가 침해사고 발생 시 이에 대한 분석 방법까지 실제 침해사고를 예시로 들어 소개하도록 하겠습니다.


2.Genian EDR를 통한 소프트웨어 관리

Genian EDR의 Agent가 단말기에 설치가 되면 해당 단말기에서 발생하는 이벤트 정보를 수집하기도 하지만 추가적으로 단말기 시스템 정보 및 소프트웨어 정보도 함께 수집합니다. 이로 활용하면 단말기 내 설치되어 있는 소프트웨어 대한 가시성을 더욱 확보할 수 있습니다. 

 

수집 정보 수집 내용
기본 정보 IP, MAC, Device ID, 호스트명, 운영체제, 도메인, 로그온 계정, 에이전트 버전, 단말기 리소스 현황 등
시스템 정보 CPU(제조사, 모델명, 코어수), Memory, GPU(제조사, 모델명, 유형 등), 운영체제(설치 일자, 버전 등), 저장장치, 네트워크 인터페이스 등 
소프트웨어 정보 소프트웨어명, 게시자, 버전, 위치, 설치 일자 등

사진3-1

[사진 3] 소프트웨어 정보 수집

 

물론, Genian EDR은 [사진 3]과 같은 소프트웨어 정보 수집 페이지 외에도 다양한 방식으로 소프트웨어 정보를 제공합니다. 파일에 대한 정보(파일명, 버전, 크기, 경로 등)나 해시(MD5, SHA256), 제조사명, 생성 시간 등 다양한 항목에 여러 조건(같으면, 다르면, 포함하는 문자열이 있으면 등)을 설정하여 단말기에 존재하는 소프트웨어 정보를 확인하는 LIVE 검색 기능이 그 대표적인 예입니다. 특히, LIVE 검색 기능은 단순 설치된 소프트웨어 정보뿐만 아니라 포터블(Portable) 형태의 설치가 필요 없는 소프트웨어 유무도 찾아낼 수 있는 기능입니다. 
 

사진4-1

[사진 4] LIVE 검색 조건 설정 화면


또한, Genian EDR은 위협이 아닌 일반적인 이벤트도 모두 수집하고 수집된 모든 이벤트에 대해 위협 이벤트와 동일한 레벨로 정보를 제공한다는 장점이 있습니다. 다시 말하면, 위협 이벤트가 아닌 일반 이벤트에 대해서도 상세 정보 및 도식화된 타임라인 등을 모두 제공한다는 것을 의미하며 이 안에는 당연히 소프트웨어 정보도 포함되어 있습니다.

 

사진5-1

[사진 5] 일반 이벤트 내 소프트웨어 정보


세번째로 커스텀 대시보드를 통해 “소프트웨어 정보 수집” 탭을 만들어 소프트웨어 취약점 관리를 할 수도있는데요, 해당 방법과 실사례를 연관지어 설명하도록 하겠습니다.

 

3. MagicLine4NX는 여전히 ~ing

오늘 소개할 침해사례는 이제는 너무 익숙한(?) MagicLine4NX 입니다. 2023년 3월 Magicline4NX 취약점이 최초 공개된 이후, 해당 취약점의 위험성에 대한 안내와 패치가 지속적으로 권고되고 있습니다. 혹시나 잘 모르시는 분들을 위해 짧게 설명 드리면 MagicLine4NX는 국내 소프트웨어 개발 업체이자 보안 회사가 개발한 인터넷 뱅킹, 국세청 등에 접속 시 설치되는 보안프로그램(공인 인증 솔루션)인데, 이 프로그램의 특정 버전(1.0.0.26) 이하에서 입력 값에 대한 검증 미흡으로 버퍼오버플로우 취약점이 발생하였고 이를 침해사고에 악용되면서 알려지게 되었습니다.

 

사진6-1
[사진 6] Magicline4NX 관련 기사 출처 : 보안뉴스, Google


특히, KISA가 운영하는 “인터넷보호나라&KrCERT”에서는 지속적으로 해당 취약점의 보안 업데이트를 권고했는데요, 2023년 3월 21일 1.0.0.27 버전으로의 업데이트를 최초 권고하였지만 워낙 광범위하게 설치되었다는 문제가 있어 계획처럼 패치가 잘 진행되지 않아 계속해서 관련 침해사고가 발생하였으며 결국 2023년 11월15일~29일 기간에 국내 백신업체에서 해당 프로그램 1.0.0.26 이하의 버전에 대해 프로그램 삭제라는 특단의 조치가 있기도 하였습니다. 이는 무려 8개월동안 지속적인 패치 권고에 대한 안내와 위험성에 대한 언급이 있었음에도 현장에서는 관련 문제점이 해결되지 못했다는 것을 의미한다고 볼 수 있습니다.  

그리고 결국, 2023년 11월 23일 보안뉴스에 국정원 국가사이버안보센터(NCSC)와 영국 정보통신본부(GCHQ) 소속 국가사이버안보센터(NCSC)가 합동으로 발표한 “사이버보안 권고문”이 기사화되었는데, 그 내용을 보면 북한 해킹조직이 국내 수천만명이 이용중인 보안인증 소프트웨어 MagicLine4NX의 취약점을 사용했음을 공식적으로 확인했다고 발표했습니다. 추가적으로 MagicLine4NX 취약점을 활용한 기관 공격 사례에 대해서도 언급하였는데, 기관 내부망에 침투하기 위해 워터링홀(공격 대상 집단이 자주 방문하는 웹사이트에 악성코드를 심어놓고 그 웹사이트를 방문할 때까지 기다리는 수법) 공격 수법을 통해 기관 인터넷 PC를 우선 점거한 후, 보안인증 소프트웨어와 망연계 시스템이 가진 취약점을 악용하여 내부망에 접근해 자료 절취를 시도했다고 합니다.
 

사진7-1

[사진 7] MagicLine4NX을 통한 기관 침투 출처 : 보안뉴스

 

어쩌면 기사화된 MagicLine4NX 피해사례는 정말 단 하나의 사례일뿐 알려지지 않은 피해사례도 많이 존재할 것으로 보여집니다. MagicLine4NX가 아니더라도 대부분의 조직은 누군가의 침해사고 피해 소식이나 위협에 대한 권고에 대해 빠르게 대응하지 못하고 있습니다. 대응과 예방을 위한 조직 내 프로세스가 복잡할 수도 있고 전문가가 부족할 수도 있습니다. 더 나아가 그 방법 자체를 모를 수도 있습니다. 이제 어떻게 Genian EDR을 통해 MagicLine4NX과 같은 취약점에 대한 손쉽고 발 빠른 대응에 대해 설명 드리도록 하겠습니다.

 

4. Genians EDR 커스텀 대시보드

지난 번 글에서 Genian EDR의 커스텀 대시보드 기능에 대해 설명하였는데요,(슬기로운 EDR 대시보드 활용하기)  해당 글에는 커스텀 대시보드를 생성하는 방법도 설명되어 있으니 꼭 한번 읽어보시기 바랍니다. 커스텀 대시보드는 Genian EDR이 수집한 모든 이벤트를 가지고 내가 원하는 정보를 쉽게 확인하고 관리함으로써 위협은 아니지만 장차 위협이 될 수 있는 “잠재 요인”을 식별하는데 큰 도움이 될 수 있다고 했었습니다. 따라서 Genian EDR이 수집하는 “소프트웨어 정보”를 가지고 커스텀 대시보드를 제작하여 취약점 관리를 해보겠습니다.

*물론 커스텀 대시보드가 아니어도 위에서 언급했던 LIVE 검색기능을 통해 아래와 같이 쉽고 빠르게 확인도 가능합니다.

 

사진8-1 [사진 8] LIVE 검색 기능을 통한 MagicLine 키워드 검색

 

지난 번 Genian EDR 커스텀 대시보드에 대한 글을 읽지 않으신 분들을 고려하여 다시 짧게 설명드리면 커스텀 대시보드는 단말기로부터 수집한 모든 이벤트를 Genian EDR이 기본으로 제공하는 다양한 위젯을 활용하여 내가 원하는 대시보드를 자유롭고 손쉽게 생성하여 가시성을 높일 수 있는 기능입니다. 대표적인 사용 예시로 파일 업로드/다운로드, 외장 저장매체 사용 정보, Open Port 정보나 오늘 설명드릴 “소프트웨어 현황 정보” 등이 있습니다. 단말기에 Agent가 설치되면 [사진 3]처럼 설치된 모든 소프트웨어 정보가 수집됩니다.

워낙 다양한 정보들이 수집되기 때문에 여러가지 대시보드를 만들 수 있지만 오늘 우리가 확인할 사항은 버전 정보입니다. 대시보드를 만들 때는 기본적으로 꾸준한 모니터링이 필요한 소프트웨어의 버전 정보를 선택하는 것도 좋지만 취약한 소프트웨어 관리를 위해서 “KISA 인터넷 보호나라&CERT” 페이지를 지속적으로 확인하시는 것을 추천 드립니다. 해당 페이지에는 아래 그림과 같이 특정 소프트웨어에서 취약점이 확인되면 관련 정보를 공유하고 업데이트를 권고합니다. 당연히 MagicLine4NX 역시 2023년 3월에 업데이트 권고가 되었었죠!
 

사진9-1

[사진 9] KISA 인터넷 보호나라&CERT 업데이트 권고 예시 출처 : KISA 인터넷 보호나라&CERT


아래의 [사진 10]은 MagicLine4NX을 포함한 우리가 많이 사용하는 Chrome 브라우저, MS edge, INISAFE 등 취약점이 언급되었거나 주기적인 업데이트가 필요 또는 권고되는 소프트웨어들을 기반으로 대시보드를 생성한 모습입니다. 이 중 MagicLine4NX을 보시면 네가지 버전이 보여지며 그 옆에 초록색 숫자가 적혀 있습니다. 이것은 현재 1.0.0.28, 1.0.0.27, 1.0.0.20, 1.0.0.14 네가지 버전의 MagicLine4NX를 각 버전마다 한명씩(초록색 숫자) 사용하고 있음을 의미합니다. 만약 네가지 버전 외에 다른 버전을 사용하는 사용자가 있었다면 마찬가지로 버전 정보와 사용자 카운팅이 됩니다.

 

사진10-1

[사진 10] 커스텀 대시보드 – 소프트웨어 현황 정보


자, 이제 MagicLine4NX에 대한 언급을 잠시 생각해보면 1.0.0.26 이하의 버전에서 취약점이 존재하므로 1.0.0.27(또는 그 이상)으로의 업데이트가 권고되었습니다. [사진 10]을 보면 3명의 사용자가 1.0.0.14 버전을 사용하고 있음이 확인되며 이는 취약한 버전임을 바로 알 수 있습니다. 추가적으로 특정 버전의 옆에 표시되는 초록색 숫자를 클릭하면 해당 버전을 사용하고 있는 사용자가 누구인지 자동으로 분류되어 표시됩니다. 따라서 보안담당자는 빠르게 조직내 취약한 소프트웨어 정보를 확인할 수 있으며 해당자들에게 업데이트에 대한 권고하거나 식별된 단말기들에 대한 업데이트 진행을 통해 취약점을 손쉽게 해결할 수 있습니다. 지니언스는 Genian EDR을 도입하여 운영하는 고객들을 대상으로 “소프트웨어 현황 정보”와 같이 특정 목적을 가진 30여종의 커스텀 대시보드를 생성하여 전달/공유하고 있으며 주기적으로 꾸준히 업데이트함으로써 보안 담당자가 가질 수 있는 커스텀 대시보드 생성에 대한 부담을 덜어주고자 노력하고 있습니다.

다음으로 “프로세스 행위 상세 분석” 커스텀 대시보드를 통해 정상적인(패치가 된) MagicLine4NX의 행위를 파악해보고 이어서 취약한 버전의 MagicLine4NX가 실제 공격자에게 어떠한 방식으로 활용되었는지를 분석해보도록 하겠습니다. 만약 여러분이 Genian EDR을 운영중이시거나 도입하신다면 MagicLine4NX 공격 발생 시 이러한 절차로 탐지나 대응을 진행한다고 생각하시면 됩니다. 또는 다른 소프트웨어에 의한 공격도 동일한 형태로 활용하시면 됩니다.

MagicLine4NX 라는 프로세스를 기준으로 발생한 행위를 모두 확인하면 다음과 같습니다. 쉽게 말하면 담당자가 MagicLine4NX이라는 프로세스를 Genian EDR 검색창에서 검색했다고 생각하시면 됩니다.
 

사진11-1

[사진 11] MagicLine4NX 상세 분석#1


확인되는 정보는 대략 다음과 같습니다.

  • 이벤트 종류 : 네트워크 연결, 파일 생성, 프로세스 실행 등 다수확인
  • 프로세스가 사용한 포트 정보
  • 통신에 사용된 IP
  • 통신 트래픽량 : 1000kbps 미만

다양한 정보들이 화면에 표시가 되는데 여기서 중요한 부분은 MagicLine4NX이 실행될 때 사용하는 포트 정보와 IP 정보, 그리고 통신 트래픽량 입니다. 
 

사진12-1

[사진 12] MagicLine4NX 상세 분석#2


확인된 정보를 자세히 보면 MagicLine4NX와 브라우저(여기선 Chrome)간 사용하는 포트 정보 외 동시에 확인된 이벤트에서의 송수신 데이터가 일치한다는 것을 알 수 있습니다. 또한 IP정보가 127.0.0.1로 고정되어 있는 것과 1000kbps 미만의 트래픽량이 오가는 것을 알 수 있습니다. 이는 MagicLine4NX이란 프로그램이 동작할 때 발생하는 프로세스를 알면 조금 더 이해에 도움이 되는데 여기서는 따로 언급하지 않겠습니다. 다만, 동일한 크기의 byte가 오갔다는 부분과 127.0.0.1 IP가 사용되었다는 것만 명심해 주세요! 추가적으로 chrome.exe를 클릭하면 해당 브라우저 기록을 확인할 수 있는데 여기서는 홈텍스(Hometax)에 접속한 이력이 확인되며 이것 역시 MagicLine4NX가 동작할 때 모듈 검증을 위한 통신의 일부로 정상적인 행위입니다.

그렇다면 취약한 MagicLine4NX를 이용한 공격자의 공격이 있을 때는 어떠한 행위가 기록되는지를 확인해보겠습니다. 아래의 [사진 13]은 서두에 언급드린바와 같이 실제 발생했던 MagicLine4NX 침해사고를 그대로 지니언스 내부에서 구현하여 테스트한 내용을 캡쳐하였습니다. 정상적인 MagicLine4NX이 동작되었을 때 저희가 확인했었던 부분을 기억하면서 보시면, 일단 다량의 트래픽이 발생하였으며 새로운 IP가 눈에 띄고 있습니다. 분명 동시에 확인된 이벤트에서의 송수신 데이터는 크기로 서로 일치하고 있었는데 현재 불일치하는 기록이 보여지고 있으며, 1000kbps 미만의 통신 트래픽량이 확인되었던 부분도 300MB 정도 크기의 다량의 데이터가 발생한 것이 확인됩니다. 마지막으로 127.0.0.1가 아닌 추가적인 IP 정보(192.168.85.1)와 함께 Open Process 이벤트가 1건 탐지되었습니다.

 

사진13

[사진 13] MagicLine4NX 상세 분석#3


해당 시간대를 Genian EDR로 분석하면 [사진 14]와 같은 타임라인을 확인할 수 있습니다. 공격자는 MagicLine4NX를 통해 특정 프로세스를 실행시켰고(여기서는 notepad.exe) 이렇게 실행된 프로세스에 의해 외부에 있는 특정 네트워크와 연결이 되었습니다. 아마 공격자의 C2서버일 확률이 높으며 연결 이후 추가공격을 진행하기 위한 도구 등을 다운로드하거나 하는 용도로 이어질 것으로 보여집니다.
 

사진14

[사진 14] MagicLine4NX 상세 분석#4


Genian EDR은 Virus Total 등과 같은 외부 링크를 기본적으로 연결하여 제공하고 있습니다. 탐지된 IP를 확인한 결과, 악성 IP로 사용되는 것을 확인할 수 있기에 바로 “사용자정의 MaliciousIP로 등록”하여 추가 공격을 대응합니다. 그리고 이상행위 탐지 정책 외 기본 제공하고 있는 커스텀 룰(Custom Rule) 기능을 사용하여 취약한 MagicLine4NX가 보여줬던 특징을 기반으로 새로운 탐지 정책을 생성합니다. 대표적인 예시를 들자면 다음 [사진 15]와 같겠죠.

  • 정상통신을 제외한 다른 통신 시 탐지 : [!]127.0.0.1
  • 평균 트래픽 량보다 많은 경우 탐지 : [>=]1024 bytes

 

사진15

[사진 15] MagicLine4NX 상세 분석#5

 

여기까지 Genian EDR 커스텀 대시보드 기능을 활용한 소프트웨어 버전정보 관리와 MagicLine4NX 취약점을 예시로 소프트웨어 취약점 위협에 대한 대응 또는 예방을 하는 방안에 대한 이야기였습니다.

 

5. 마치며

오늘은 2023년에 가장 Hot(?)했던 MagicLine4NX 취약점을 예시로 Genian EDR을 통한 취약한 소프트웨어 관리하기를 설명 드렸습니다. 조직 내 소프트웨어 관리에 고민이 있으셨던 분들이 이 글을 읽으셨다면 고민 해결에 작게나마 도움이 되었 길 바랍니다. 그리고 이 글이 업로드 되는 시점의 직전에는 많은 사람들이 연말정산을 위해 또 다시 MagicLine4NX을 사용했을 겁니다. 사용자 모두가 안전한 버전을 사용하는 보안 환경에서 업무를 보시고 위협으로부터 떨어져 계셨기를 바라지만 누군가는 아직도 이러한 내용들을 모른 채 위협에 노출되었거나 이미 공격을 당했을 수도 있습니다. Genian EDR은 만능이 아닙니다. 하지만 솔루션이 가지고 있는 기능들에 대해 이렇게 하나하나 소개함으로써 여러분의 안전한 업무 환경과 건강한 디지털 생활에 도움이 될 수 있기를 바랍니다. 다음에 다시 돌아올 때까지 행복하세요~!

 

글쓴이.  강한별

지니언스 컨설팅부에서 사이버 위협 인텔리전스(CTI, Cyber Threat Intelligence) 연구 및 Genian EDR 고객 컨설팅 업무를 담당하고 있습니다.


 

New call-to-action New call-to-action