본문 바로가기

POST/Tech

소프트웨어 취약성(vulnerabilities)과 맬웨어(malware) 제대로 구별하기



오늘날의 디지털 세계에서 오픈소스 소프트웨어의 취약성과 맬웨어는 소프트웨어 공급망의 보안과 무결성에 있어서 커다란 위협으로 자리 잡고 있습니다. 언뜻 보기에 이 두 가지 용어가 비슷하게 느껴질 수 있지만 근본적인 차이점이 있다는 사실, 알고 계신가요? 두 용어는 아주 다른 듯하면서도 보안의 영역에 있어서 밀접하게 연관되어 있습니다. 

오픈소스 소프트웨어의 맥락에서 취약성(vulnerabilities)은 악용될 수 있는 보안 결함을 말하며 맬웨어(malware)는 오픈소스 프로젝트에 의도적으로 유해한 코드를 삽입하는 악성 컴포넌트와 관련됩니다.

소프트웨어의 취약성과 악성 오픈소스 사이의 차이점을 알아보고 고유한 특성, 악용 수단 및 오픈소스 소프트웨어에 미치는 영향에 대해서 자세히 알아보았습니다. 


소프트웨어 취약성 = 코드의 결함 
 

소프트웨어 취약성은 문에 걸려있는 잘못된 잠금장치와 마찬가지로 코드의 결함과 같습니다. 즉, 소프트웨어 컴포넌트 또는 프로젝트의 약점을 나타낸다고 할 수 있습니다. 따라서 의도적인 것은 아닙니다.

잘못된 잠금 장치가 승인되지 않은 액세스를 허용하여 건물의 보안에 위협을 주는 것과 유사하게, 소프트웨어 취약성은 소프트웨어의 보안 경계에 틈을 만들어냅니다. 이러한 틈은 침입자가 악용하기 좋은 진입 포인트가 되어 시스템, 애플리케이션 또는 컴포넌트에 대한 승인되지 않은 액세스 권한을 얻어내게 됩니다. 

침입자가 열쇠없이 건물에 침입하기 위해 결함이 있는 자물쇠를 통해 진입하는 것과 마찬가지로 위협 행위자는 취약점을 악용하여 소프트웨어를 손상시킵니다. 이러한 악용으로 은밀하게 데이터 접속을 하고 악성 코드를 주입하며 소프트웨어의 의도된 기능 결함과 같은 결과를 초래하게 됩니다. 


취약점은 다음과 같은 다양한 소프트웨어 컴포넌트 상에 존재할 수 있습니다.

- 운영 시스템
- 어플리케이션 
- 라이브러리 
- 플러그인 

일반적으로 취약점은 코딩 에러, 설계 결함 또는 소프트웨어 개발 중 부적절한 보안 조치에서 비롯됩니다. 일단 취약점이 파악이 되면, 일반적으로 CVE (Common Vulnerabilities and Exposures) 프로그램으로부터 특별한 식별 번호를 부여받게 됩니다. 이 CVE 번호는 취약점을 추적하고 논의를 위한 레퍼런스 역할을 합니다.

소프트웨어 취약성을 효율적으로 식별하고 해결하는 것은 여러분의 소프트웨어 공급망 보안과 신뢰를 보장하고 잠재적인 위반으로부터 보호하는 데 있어 중요합니다. 



소프트웨어 취약점의 예


소프트웨어 취약점에 대해 더 잘 이해하기 위해 몇 가지 실제 사례를 살펴보겠습니다. 


Heartbleed
Heartbleed (CVE-2014-0160)는2014년 4월 OpenSSL 암호화 소프트웨어 라이브러리에서 발견된 심각한 취약점입니다. 이 취약점을 통해 공격자는 TLS (Transport Layer Security) Heartbeat 확장 구현의 결함을 악용하여 사용자 이름, 암포 및 개인 암호화 키와 같은 민감한 정보를 노출하였습니다. Heartbleed의 취약점은 방대한 양의 웹 서버에 영향을 미쳤고 즉각적인 패치가 요구되었습니다. 

Log4Shell
Log4Shell 취약점(CVE-2021-44228)은 널리 사용되는 Log4j라는 오픈 소스 로깅 라이브러리에 영향을 미쳤습니다. 공격자는 원격으로 악성 코드를 실행할 수 있도록 특별히 제작된 로그 메시지를 전송하여 이 취약점을 이용할 수 있습니다.
이 취약점은 전 세계 많은 조직에 큰 영향을 미쳤으며 계속해서 영향을 미치고 있습니다. 이는 신뢰할 수 있는 라이브러리에서도 취약성을 해결하기 위해 빠른 조치와 지속적인 경계의 필요성을 강조했습니다.

Spring4Shell 
또 다른 주목할만한 취약점(CVE-2022-22965)은 Java 애플리케이션에서 널리 사용되는 Spring Framework를 대상으로 합니다. Spring4Shell 은 제로데이 취약점으로, 이는 수정 사항이 제공되기 전에 공격자가 이를 악용했음을 의미합니다. 이 사건으로 최신의 보안 패치로 업데이트된 상태를 유지하고 오픈소스 구성 요소에서 진화하는 위협을 인식하는 것이 중요함을 보여주었습니다.

맬웨어 = 오픈소스의 악의적 의도 


"악성 소프트웨어"의 줄임말인 '맬웨어'는 오픈소스 소프트웨어 생태계에서 커다란 위협 요소입니다. 바이러스, 웜, 트로이 목마, 랜섬웨어, 스파이웨어 및 애드웨어와 같은 광범위한 악성 프로그램이 포함되며 모두 정보나 시스템에 대한 허용되지 않은 액세스를 얻기 위해 설계되었습니다. 

다양한 형태로 존재하는 맬웨어의 주요 목적은 데이터를 훔치고, 유해한 소프트웨어를 설치하여 네트워크를 제어하거나 소프트웨어나 하드웨어를 손상시키는 것입니다. 이러한 위협 행위자는 취약한 이메일 첨부 파일을 이용하거나 악성 웹사이트 혹은 손상된 소프트웨어 다운로드하는 등의 다양한 배포 방법을 사용합니다. 

특히 우려되는 측면 중 하나는 '악성 오픈소스' 혹은 '악성 패키지'의 등장입니다. 이러한 것은 합법적으로 보이지만 실제로는 숨겨진 유해 코드가 포함되어 있습니다. 개발자들은 무심결에 악의적인 오픈소스를 소프트웨어에 주입하기도 하고 맬웨어가 시스템에 침투하도록 자신도 모르게 허용합니다. 

취약점과 달리 악성 오픈소스를 추적하고 해결하는 것은 어려울 수 있습니다. 악의적인 패키지는 특히 퍼블릭 패키지 저장소로부터 배포되는 경우가 많으며 발견되었을 경우 제거할 수 있습니다. 그러나 보통은 CVE식별번호를 부여받지 않아 영향받은 시스템을 보호하기 위한 위협의 범위를 완벽하게 이해하기 어렵습니다. 

맬웨어의 예

악성 패키지가 입힐 수 있는 피해를 알아보기 위해 몇 가지 사례를 살펴보겠습니다. 


NotPetya ransomeware
2017년 NotPetya 랜섬웨어 공격이 발생했습니다. 이 공격은 우크라이나에서 시작되어 다른 국가로 빠르게 확산되어 국제 운송 컨테이너 회사인 Maersk, 전자 상거래 및 운송 대기업 FedEx, 제약 회사 Merck를 감염시켰습니다.
NotPetya는 훔친 자격 증명 등을 이용해 네트워크 전체 데이터를 암호화했습니다. 이 공격의 배후에 있는 공격자는 처음에 우크라이나 정부와 비즈니스 네트워크를 표적으로 삼았지만 곧 이 악성코드는 우크라이나를 넘어 확산되어 전 세계 비즈니스에 심각한 혼란을 야기했습니다. 이 사건은 대규모 랜섬웨어 공격이 글로벌 비즈니스 운영에 미치는 잠재적 영향과 데이터 손실 위험을 완화하기 위한 다단계 인증 및 정기적인 백업과 같은 효과적인 사이버 보안 조치의 중요성을 강조했습니다.

Stuxnet worm
Stuxnet은 2010년에 발견된 정교한 컴퓨터 웜으로, 산업 환경, 특히 이란의 핵 프로그램에서 사용되는 SCADA(감독 제어 및 데이터 수집) 시스템을 표적으로 삼았습니다. 이 웜은 USB 드라이브를 통해 확산되었으며 여러 제로데이 취약점을 악용하여 대상 시스템에 침투했습니다. 

WannaCry ransomeware
2017년 5월, WannaCry는 전 세계 수십만 대의 컴퓨터에 영향을 미친 매우 파괴적인 랜섬웨어 공격으로 등장했습니다. 이 악성코드는 NSA(National Security Administration)에서 개발한 EternalBlue를 통해 Microsoft Windows 운영 체제의 취약점을 악용했습니다. WannaCry는 시스템에 침투한 후 파일을 암호화하고 해독하는 대가를 요구하여 조직과 개인의 컴퓨팅 시스템에 심각한 피해를 입혔습니다.


소프트웨어 보호 = 취약성 및 악성 오픈소스로부터 방어 


소프트웨어 취약성과 악의적인 오픈소스는 보안 위험과 관련이 있지만 두 가지의 차이점을 아는 것은 오픈소스 컴포넌트를 효율적으로 관리하고 소프트웨어 공급망을 보호하는데 굉장히 중요합니다. 이러한 차이점을 이해하면 취약점과 맬웨어 위협을 방지하고 완화를 위한 조치에 도움을 줄 수 있습니다. 소프트웨어 공급망의 성숙도 단계에 따라, 탐지와 보호를 자동화하는 소프트웨어 구성 분석(SCA) 솔루션은 위협 행위자에 대한 조치를 제공할 수 있습니다.  

Sonatype Lifecycle 은 소프트웨어 개발 수명 주기 (SDLC) 전반에 걸쳐서 취약성 관리에 집중합니다. 개발 환경에 원활하게 통합하여 오픈소스 컨포넌트 취약점을 조기에 탐지합니다. 지속적인 모니터링과 정책 적용을 통해, Lifecycle은 승인받지 않은 구성 요소의 통합을 방지하고 SDLC전반에 걸쳐서 오픈소스 취약성을 수정할 수 있도록 지원합니다.  

악의적인 오픈소스에 대하여, Soantype Repository Firewall은 소프트웨어 공급망에 들어가는 것으로부터 악의적인 컴포넌트의 유입을 방지하는 첫 번째 방어선으로 활약하고 있습니다. 악성 패키지가 시스템에 침입하는 것을 자동으로 차단하여 손상 및 데이터 침해의 위험을 줄일 수 있습니다. 또한 고급 위협 인텔리전스를 통해 맬웨어 파악 상태를 최신으로 유지하고, 새로운 위협으로부터 사전 예방적 보호를 제공합니다.

Soantype Repository Firewall 및 Sontype Lifecycle을 통해, 소프트웨어 공급망의 보안과 안정성을 보장할 수 있습니다. 소프트웨어 보안의 우선순위를 지정하고 올바른 툴을 채택함으로써, 보안 애플리케이션을 사용자에게 자신 있게 전달하고 라이선스 위반의 위험을 완화할 수 있습니다. 

 

 

Sonatype의 제품군과 다양한 기능에 대해 자세히 알아보려면 아래 링크를 통해 확인해 보시기 바랍니다.

 

☑️ Sonatype 자세히 보기

☑️ Sonatype 솔루션 문의

 

 

 

출처: Sonatype - A closer look: Differentiating software vulnerabilities and malware