심층 분석: MOVEit 제로데이 취약점 집중 탐구

소프트웨어 공급망 사이버 공격이 점점 더 빈번해지면서 미국 정부 차원의 입법 변화가 급물살을 타고 있으며, 기업들은 방대한 위험 프로필을 완화하고 소프트웨어 품질을 빠르게 개선하기 위해 분주히 움직이고 있습니다. 올해에만 파일 공유 서비스와 관련된 제로데이 취약점이 세 건 발생했으며, 그중 가장 규모가 크고 파괴적인 공격은 MOVEit 대규모 익스플로잇 형태로 나타났습니다.
CL0P 랜섬웨어 그룹이 주도한 MOVEit 사건은 한동안 사이버 보안 뉴스를 장악했으며, 1,000개 이상의 조직이 피해를 입었습니다. 이 숫자는 계속 증가할 것으로 예상되며, 이는 2021년 Solarwinds 사태 이후 가장 강력한 소프트웨어 공급망 공격 중 하나로 기록되고 있습니다.
이 광범위한 침해의 도화선은 일련의 SQL 인젝션 취약점이었으며, 최종적으로 MITRE로부터 10점 만점에 9.8점이라는 심각도 점수를 받았습니다. SQL 인젝션은 90년대 후반부터 보안 전문가들을 괴롭혀 온 골칫거리였으며, 비교적 간단하게 해결할 수 있음에도 불구하고 여전히 현대 소프트웨어에 침투하여 위협 행위자들에게 민감한 데이터로 가는 레드카펫을 깔아주고 있습니다.
MOVEit 시나리오는 많은 개발자와 앱 보안 전문가들이 이전에 경험했던 것과는 조금 다르며, 여기에서 라이브 시뮬레이션을 통해 SQLi 방어 기술을 직접 테스트해 볼 수 있습니다:
>>> MOVEit 미션 플레이하기
취약점: SQL 인젝션
SQL 인젝션이 Progress Software의 MOVEit 파일 전송 애플리케이션을 공격하는 데 정확히 어떻게 사용되었을까요?
CL0P 랜섬웨어 그룹은 SQL 인젝션 취약점인 CVE-2023-34362를 악용하여 MOVEit 데이터베이스에 대한 무제한적이고 무단인 접근 권한을 획득했습니다. 그 후, 시스템 설정 검색, SQL 데이터베이스 열거, MOVEit Transfer 시스템에서 파일 검색, 전체 관리자 권한을 가진 새 계정 생성과 같은 여러 고위험 중요 프로세스를 실행할 수 있게 해주는 웹 셸인 LEMURLOOT를 설치했습니다.
말할 필요도 없이, 이 공격 벡터는 비교적 간단한 오류, 즉 잘못된 코딩 패턴의 지속적인 사용으로 인한 결과일 수 있지만, 기업 수준에서 지속적인 문제를 일으킬 잠재력은 엄청납니다.
MOVEit 익스플로잇과 유사하게, 악성 SQL을 주입하고 실행하는 방법을 시뮬레이션하는 이 SQLi 설명 자료를 살펴보겠습니다:
다음 쿼리 문자열과 변수를 보면:
string emailAddress = "contact@scw.com";
var query = $"SELECT u.UserName From Users as u WHERE u.Email = '{emailAddress}'";
다음과 같은 쿼리가 생성됩니다:
var query = $"SELECT u.UserName From Users as u WHERE u.Email = 'contact@scw.com'";
… 그리고 악의적으로 조작된 입력을 넣으면:
string emailAddress = "contact@scw.com'; DELETE FROM Invoices WHERE Id = 2;--";
var query = $"SELECT u.UserName From Users as u WHERE u.Email = '{emailAddress}'";
결과는 다음과 같습니다:
var query = $"SELECT u.UserName From Users as u WHERE u.Email = 'contact@scw.com'; DELETE FROM Invoices WHERE Id = 2;--'";
실제 실행 시 어떤 모습일까요?


문자열 연결 방식으로 인해 입력값이 SQL 구문으로 해석된다는 점에 주목하세요. 먼저 작은따옴표를 추가하여 SELECT 문이 유효한 SQL 구문이 되도록 만듭니다. 그다음 세미콜론을 추가하여 첫 번째 문장을 종료합니다.
이 상태에서 유효한 DELETE 문이 추가되고, 그 뒤에 하이픈 두 개를 붙여 나머지 문자(작은따옴표)를 주석 처리합니다. 악의적인 SQL을 통해 사용자 역할이나 비밀번호를 변경하려는 경우, UPDATE 문도 쉽게 추가될 수 있습니다.
다음 실습 미션에서 직접 확인해 보세요:
SQL 인젝션은 비교적 단순하지만 여전히 강력한 공격 벡터이며, 매우 흔하게 발생합니다. MOVEit 사례의 경우, 이 취약점이 악용되어 치명적인 백도어가 설치되었고, 이후 유사한 수준의 공격이 연쇄적으로 발생했습니다.
SQL 인젝션 위험을 어떻게 완화할 수 있을까요?
For any companies utilizing MOVEit as part of their business operations, it is imperative that they follow the recommended remediation advice from Progress Software. This includes but is not limited to applying security patches as an emergency-level priority.
For SQL injection in general, check out our comprehensive guide.
Want to learn more about how to write secure code and mitigate risk? Try out our SQL injection challenge for free.
If you’re interested in getting more free coding guidelines, check out Secure Code Coach to help you stay on top of secure coding best practices.
배포 전 AI 기반 개발 거버넌스 확보
AI 기반 위험을 측정하고, 커밋 시점에 보안 코딩 정책을 적용하며, SDLC 전반에 걸쳐 안전한 소프트웨어 제공 속도를 높이세요.
더 많은 블로그 살펴보기
보안 코딩, AI 거버넌스, 소프트웨어 리스크 관리에 관한 전문가 콘텐츠를 확인해 보세요.
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
배포 전 AI 기반 개발 보안 확보
소프트웨어 개발 수명 주기 전반에서 개발자 리스크를 파악하고, 정책을 시행하며, 취약점을 예방하세요.



.avif)