Offcanvas

CSO / 개발자 / 보안 / 오픈소스

역대급 보안구멍 ‘로그4j’ 막아라···개발자들의 고군분투기

2021.12.20 Scott Carey  |  CIO
지난 주말, 많은 개발자와 유지관리자가 앞다퉈 ‘로그4j(Log4j)’ 취약점에 대응하기 위해 나섰지만 이 문제를 바로잡기 위해 해야 할 일은 여전히 많다. 

지난 주말 인터넷에 불이 났다. 긴급구조요원들은 곧장 현장으로 달려갔다. 대부분 무급 유지관리자 또는 개발자가 여가 시간에 취약점을 패치했고, 지침을 발행했으며, 혼란 속에서 절실하게 필요했던 명확성을 제공했다. 
 
ⓒGetty Images

12월 9일 아파치 재단(Apache Foundation)은 거의 모든 자바 애플리케이션에 사용되는 오픈소스 로깅 프레임워크 ‘로그4j(Log4j)’에서 발견된 치명적인 제로데이 취약점 ‘로그4셸(Log4Shell)’에 관한 긴급 업데이트를 발표했다

CVE-2021-44228로 식별된 이 버그를 통해 공격자는 로그4j 라이브러리를 사용하여 로그 메시지를 작성하는 모든 시스템에서 임의의 코드를 실행할 수 있다. 이는 CVSS 점수에서 가장 높은 심각도를 일컫는 10점을 받았다. 

클라우드플레어(Cloudflare)의 CTO 존 그레이엄은 “허트블리드(Heartbleed)와 쉘쇼크(ShellShock) 이후로 인터넷에서 가장 심각한 취약점일 가능성이 크다”라고 말했다. 심지어 마인크래프트(Minecraft)도 안전하지 않았다.

최초 대응자
여러 개발자와 유지관리자가 주말 동안 최대한 많은 자바 애플리케이션을 패치하기 위해 즉시 출동했다. 첫 번째 방어선은 비영리 아파치 소프트웨어 재단의 로깅 서비스팀에서 유지관리하는 로그4j 자체였다.

아파치의 로깅 서비스팀은 전 세계의 거의 모든 시간대에 분산된 16명의 자원봉사자로 구성돼 있다. 소프트웨어 엔지니어 겸 아파치 로깅 서비스 프로젝트 관리 위원회(Project Management Committee; PMC)의 회원인 개리 그레고리는 “여가 시간에 소프트웨어를 작성하고 퍼즐을 푸는 것을 좋아하기 때문에 이 일을 한다”라고 언급했다. 

PMC의 주된 의사소통 채널은 이메일이며, 해당 그룹은 지난 11월 24일 수요일 오전 7시 51분(GMT)에 경고 이메일을 받았다. 알리바바의 클라우드 보안 팀원 첸 자오준은 (PMC에) 소프트웨어에서 제로데이 보안 버그가 발견됐다고 알렸다.

그레고리는 “머지않아 큰 문제가 될 것임을 직감했다”라며, 주말 동안 거의 잠을 자지 않으면서 작업했다고 전했다. 해당 그룹은 비밀리에 즉각 패치를 시작했지만 이 익스플로잇 공격이 12월 9일 목요일 대중에 공개되면서 더욱더 빠르게 대응해야 했다. 

그와 동료 유지관리자들은 모든 일을 제쳐 두고 이 문제를 해결하는 데 매달렸으며, 버전 2.15 업데이트를 개발했지만 12월 10일 금요일 오전 10시(GMT) 공개하기 직전에 부족하다고 판단했다. 그리고 12월 13일 오후 10시 28분(GMT)에 2.16 릴리즈를 발표했다.

前 로그4j 개발자 크리스챤 그롭마이어는 블룸버그와의 인터뷰에서 “이 사람들을 안다. 모두 가족과 생업이 있다. 하지만 모든 일을 중단하고 주말 내내 이 일에만 집중했다”라고 밝혔다. 

또한 이 시점에 PMC의 액티브 멤버들은 프라이빗 슬랙 채널을 통해 소통하면서 문제를 계속 해결하고, 이전 버전의 자바를 쓰는 사용자를 위한 업데이트를 개발하기 위해 협력했다. PMC는 자바 7 사용자의 문제를 해결하기 위해 2.12.2 릴리즈를 신속하게 공개했다. 자바 6용 릴리즈는 곧 진행할 예정이다.

그레고리는 “전반적으로 이러한 취약점의 결과가 끔찍함에도 숙련된 개발자가 예상할 수 있는 수준으로 상황이 전개됐다”라면서, “알림을 받았고 패치를 신속하게 제공했으며 해당 릴리즈를 반복했다”라고 설명했다.

핫패치 및 긴급지침
주말 동안 재빠르게 움직인 또 다른 그룹은 AWS의 아마존 코레토(Amazon Corretto) 팀이었다. 코레토는 (AWS가 내부에서 사용해 온) 오픈JDK의 배포판이기 때문에, 이 팀은 로그4셸 문제의 최전방에 놓이게 됐다.

수석 소프트웨어 엔지니어 볼케 시모니스가 이끄는 코레토 팀은 즉각적인 업데이트가 불가능한 모든 조직을 위해 핫패치를 신속하게 구축하고 오픈소스화했다

깃허브 페이지에 따르면 이 도구는 실행 중인 JVM 프로세스에 자바 에이전트를 주입한다. 에이전트는 Patched JndiLookup::lookup() 문자열을 무조건 반환하기 위해 로드된 모든 org.apache.logging.log4j.core.lookup.JndiLookup 인스턴스의 lookup() 메소드를 패치한다.

핫패치는 자바 프로세스를 재시작하지 않고 로그4j의 CVE-2021-44228 원격 코드 실행 취약점을 해결하도록 설계됐다. 동적 및 정적 에이전트는 리눅스의 경우 JDK 8 및 JDK 11에서 실행되는 것으로 알려졌지만 JDK 17에서는 정적 에이전트만 작동한다.

AWS의 CISO 스티브 슈미트는 “주말 동안 밤낮을 가리지 않고 이 코드를 작성하고, 강화하며, 제공하기 위해 수고한 아마존 코레토 팀에게 감사한다”라고 말했다. 아울러 AWS는 (이 취약점에) 영향을 받는 제품에 관한 서비스별 보안 업데이트 전체 목록도 게시했다. 

이 밖에 자바 수석 엔지니어링 그룹 관리자 마트진 버버그가 이끄는 마이크로소프트의 자바 팀원들도 해당 패치를 평가하는 일을 도왔다. 또 완전한 보안 업데이트를 적용할 수 있을 때까지 권장되는 몇 가지 대응 방안을 포함하여 고객들을 지원하는 일반 지침을 공개했다

구글 클라우드는 CVE-2021-44228의 익스플로잇 공격을 감지하고 차단할 수 있도록 12월 11일 긴급 WAF(Web Application Firewall) 규칙을 발표하고, 클라우드 아머(Cloud Armor) 보안 제품을 업데이트했다.  

클라우드 아머의 제품 관리자 에밀 카이너와 구글의 네트워크 전문가 관리자 데이브 레이스펠드는 “고객들이 로그4j 취약점을 해결할 수 있도록 지원하기 위해 CVE-2021-44228 익스플로잇 공격 시도를 감지하고 차단할 수 있는 사전 구성된 새로운 WAF 규칙(‘cve-canary’)을 도입했다”라고 밝혔다

할 수 있는 일
이렇게 인하우스 개발자들이 고객들을 위해 서둘러 소프트웨어를 보호하고 있는 가운데, 많은 최종 사용자 및 엔터프라이즈 개발자도 취약점을 평가하고 자체 자바 애플리케이션을 보호해야 한다. 

가장 먼저 해야 할 일은 애플리케이션에 로그4j가 있는지 감지하는 것이다. 또 모든 애플리케이션이 이 익스플로잇 공격에 취약하지 않다는 점도 알아야 한다. 6u212, 7u202, 8u192, 11.0.2 이상의 자바 버전을 사용한다면 JNDI(Java Naming and Directory Interface) 원격 클래스 로딩을 위한 추가 보호 장치 덕분에 안전할 것이다.

마찬가지로 버전 2.10 이상의 로그4j 사용자들은 시스템 속성 formatMsgNoLookupstrue로 설정하거나, JVM 매개변수 - Dlog4j2.formatMsgNoLookups=true를 설정하거나, 클래스 경로에서 JndiLookup 클래스를 제거하여 문제를 완화해야 한다.

아직 끝나지 않았다
로그4j 취약점은 자바 애플리케이션뿐만 아니라 해당 라이브러리를 사용하는 모든 서비스에 영향을 미치기 때문에 로그4셸 공격 표면은 매우 클 가능성이 높다.

CSO의 수석 기자 루시안 콘스탄틴은 다음과 같이 말했다. “커뮤니티가 여전히 공격 표면을 평가하고 있지만 복잡한 종속성 생태계 때문에 (공격 표면이) 엄청나게 클 가능성이 많다. 영향을 받는 구성요소 중 일부는 매우 대중적이며, 수백만 개의 엔터프라이즈 애플리케이션 및 서비스에서 사용되고 있다.”

아파치 로깅 서비스 팀은 “잠재적인 보안 위험이 있을 수 있는 로그4j의 기능을 계속 평가하고 이를 제거하는 데 필요한 변경사항을 적용할 계획이다. 최선을 다해 이전 버전과의 호환성을 유지할 것이지만 (불가피하게) 사용 중인 기능을 비활성화해야 할 수도 있다”라고 전했다. 

수많은 개발자가 주말 동안 로그4j 취약점을 패치하기 위해 쉬지 않고 일했지만 대응이 더딘 개발자도 많을 것이다. 따라서 로그4셸의 영향은 장기적이고 광범위할 가능성이 크다. 

보안 애널리스트 토니 로빈슨은 트위터에 “좋은 사람들이 패치를 통해 문제를 신속하게 해결하고 있지만 패치를 하지 않거나 일정 기간 동안 패치를 할 수 없는 곳이 많을 것이다. 그러면 수명이 다하거나 패치가 적용되지 않을 수 있는 소프트웨어를 사용할 수 있다”라고 언급했다. ciokr@idg.co.kr


 
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.