2021 Hot🔥 보안 사건 사고 - 하반기

개요

앞선 포스트에서는 상반기에 발생한 Hot🔥 했던 CVE와 보안 사건/사고를 다루었습니다. 이번 시간에는 하반기에 대해 다루도록 하겠습니다 !

NSO 페가수스 Spyware

  • Spyware

지난 7월 워싱턴 포스트(The Washington Post)에 Private Israeli spyware used to hack cellphones of journalists, activists worldwide[1]라는 기사가 올라왔습니다.

글의 내용은 테러리스트와 범죄자를 추적하기 위한 스파이웨어가 언론인, 인권 운동가, 기업 임원 등의 스마트폰을 해킹하는 데 사용되었다는 내용입니다. 스파이웨어의 표적으로 추정되는 5만개의 전화번호를 확보하였으며, 50개국의 1,000명 이상의 사람들을 식별할 수 있었습니다. 그리고 표적으로는 600명 이상의 정치인과 정부 관리, 내각 장관, 외교관, 군 및 보안 장교를 및 여러 국가 원수와 총리도 포함되어 있었습니다.

기사의 내용에 따르면 스파이웨어의 제작과 판매에 이스라엘의 NSO 그룹이 연관되어 있음을 확인할 수 있었습니다. NSO 그룹은 이전에도 스파이웨어를 제작 및 판매하였으며, 2016년에는 Citizen Lab과 Lookout Security에서 해당 스파이웨어에 대한 분석을 진행한 보고서[2]를 발표하였습니다.구체적인 공격 방식도 함께 공개되었는데, 공격자는 표적이된 대상에게 SMS, 이메일, SNS 등을 통해 웹 URL을 전달하였습니다. (아래 사진 참고)

nso-1.png

메시지에 포함된 URL을 공격 대상이 웹 브라우저를 통해 접속하면, 해당 URL 페이지에 있는 익스플로잇 코드가 동작하는 방식으로 공격이 이루어졌습니다. 이후 웹 브라우저의 권한으로 커널 취약점을 이용해 대상의 장비를 완벽하게 장악하였습니다. 마지막으로 스파이웨어답게, 대상 장비내 메시지 기록, 통화 기록, 이메일 내용, 사진, 동영상, 음성메모 등에 접근해 데이터를 유출하였으며, 기본적으로 설치된 애플리케이션 뿐만 아니라 후킹 기술을 통해 많이 사용되는 다른 앱의 정보에도 접근하였습니다.

nso-2.png

타겟이 된 앱들은 전 세계적으로 많은 점유율을 가진 Gmail, Facetime, Facebook, Telegram, WhatsApp 이외에도 Line, KakaoTalk, Mail.Ru 등 특정 지역에서 많이 사용하는 앱에 대해서도 이루어졌습니다. 신기하게도, 대상 앱에 대한민국의 카카오톡 또한 포함되어있다는 것입니다.

NSO 그룹은 이전부터 스파이웨어에 대한 논란이 많이 있었지만, 이번 페가수스 스파이웨어는 프랑스 대통령과 같이 국가 정상급 인원도 포함되었다는 점에서 더 많은 이목이 집중되었습니다.

[1] https://www.washingtonpost.com/investigations/interactive/2021/nso-spyware-pegasus-cellphones/
[2] https://www.lookout.com/form/endpoint-security-technical-analysis-of-pegasus-whitepaper-lp

Poly Network

  • DeFi

올해 8월 사상 최대의 블록체인 프로토콜 해킹 사건이 있었습니다. 이종 체인 연결 프로젝트인 Poly Network에 납입된 7천억원 상당의 크립토 자산이 해킹되었습니다.[1] 해킹에 사용된 취약점은 생각 외로 매우 간단했습니다. Solidity는 컴파일 단계에서 외부에 노출된 함수의 시그니처를 sha3를 통해 해시한 후 앞 4바이트를 점프 테이블의 주소로 사용합니다. 4바이트의 엔트로피는 매우 낮아, 슈퍼컴퓨터 없이도 같은 점프 테이블의 해시가 나오도록 함수 시그니처를 만들 수 있습니다. 크로스체인 기능 지원을 위해 Poly Network에서는 임의 method 이름과 “(bytes,bytes,uint64)” 시그니처를 가진 함수를 호출하는 것을 지원합니다. 의도대로라면 인자의 형태가 bytes거나 address와 같이 다른 타입일 경우 다른 해시 값이 나와야 하지만, “f1121318093(bytes,bytes,uint64)”[:8] (hexdigest된 4바이트 표기)의 값이 다른 타입을 인자로 받는 “putCurEpochConPubKeyBytes(bytes)”[:8]의 결과 값과 동일한 것을 확인할 수 있습니다. 해커는 f1121318093 함수를 호출해(putCurEpochConPubKeyBytes와 같은 hash 결과) 자신의 퍼블릭키를 크로스체인 매니저로 허용한 후 Poly Network이 가지고 있는 자산을 모두 탈취했습니다.

흥미로웠던 부분은, 해커가 자산을 탈취한 후 Poly Network팀과 블록체인을 통해 커뮤니케이션을 하는 부분입니다. 공격에 사용되었던 주소에 FTX, OKEX 등 KYC를 필수로 요구하는 거래소의 입/출금 기록이 존재했습니다. 이는, 법적인 강제성이 부여된다면 중앙화 거래소에서 Poly Network에게 정보를 제공해 줄 여지가 존재한다는 것입니다. 또 미디어를 통해 계속해서 공격자의 신원을 알고있다는 사람의 제보가 쏟아져왔습니다. 계속되는 압박 속에 공격자는 “만약 누구인지 특정할 수 있다면 7천억이라는 큰 돈을 탈취한 해커를 가만히 놔둘 사람은 없다”고 생각하였는지, 자신이 이 거래에서 졌다면서 탈취한 모든 금액을 돌려주겠다고 하였습니다. 블록체인을 이용해 트랜잭션에 추가 데이터를 적는 방식으로 진행된 해커와의 대화 내용은 [2] 에서 자세히 확인해볼 수 있습니다. 왜 Poly Network을 공격했는지 등을 비롯한 해커의 고백(?)은 [3]에서 확인할 수 있습니다.

[1] https://rekt.news/polynetwork-rekt/
[2] https://docs.google.com/spreadsheets/u/1/d/11LUJwLoHX8ZCyfjhg5YZ0V99iU6PafMNL_NET45FSVc/htmlview?pru=AAABe1lDAS0*CdZKWo5WZNYwj5Qca8505A#
[3] https://sites.google.com/view/hackersconfession/

Apache

  • Path Traversal
  • 원격 코드 실행, Remote Code Execution
  • CVE-2021-41773, CVE-2021-42013

NGINX와 양대 산맥을 이루고 있는 HTTP 서버인 Apache에서 Path Traversal을 통해 Remote Code Execution이 가능한 취약점이 발견되었습니다.[1] 이 취약점의 기원은 Java Servlet과 Mod proxy와의 호환 설정을 위해 추가된 Path Normalization 코드에서 부터 시작되었습니다. 특정 조건이 만족하는 서버면, Apache가 권한이 있는 파일 시스템의 모든 파일을 읽을 수 있는 취약점이었습니다. 여기서 더 큰 문제는 해당 “특정 조건”을 만족하는 서버가 매우 많다는 것입니다. 서버 검색 엔진인 Shodan.io를 통해 확인해보면 대량 10만개의 서버가 해당 취약점에 노출되어있다는 것을 확인할 수 있습니다.

Apache 2.4.49 버전에서 처음 발견된 취약점은 2.4.50에서 수정되었지만, 또 다른 우회법이 발견되어 2.4.51에서 다시 한번 패치되었습니다. 최근에 발생한 log4j의 연이은 업데이트에도 계속해서 새로운 우회법/취약점이 발견되는 것을 보면, “Apache 관련 Prodcut는, 꼼꼼하게 패치 검수를 하지 않는 것이 아닌가?” 라는 의문이 들기도 합니다. 😊 문제점을 정확히 이해하고 올바른 패치를 제공하는 것이 중요하다고 생각되는 밤입니다. 🌃

2021년 말 현재, 대부분의 기업에서 패치를 진행했지만, 아직도 15,000여개의 취약한 버전의 Apache 서버가 구동되고 있습니다.[2]

[1] https://httpd.apache.org/security/vulnerabilities_24.html
[2] https://www.shodan.io/search?query=apache+2.4.49

Confluence

  • 원격 코드 실행, Remote Code Execution
  • CVE-2021-26084

국내 뿐만 아니라 국외에서도 다수의 기업에게 사랑받고 있는 협업 플랫폼, 아틀라시안(Atlassian)의 컨플루언스(Confluence)에서 원격 코드 실행 취약점이 발생하였습니다. 심각한 피해를 야기할 수 있는 취약점임에도, 공격 시도를 위해 인증 등 다른 제약조건이 없기 때문에 취약점은 쉽게 스캐닝될 수 있었습니다. 취약점은 Object-Graph Navigation Language, OGNL Injection으로, 컨플루언스 서버와 Data center의 Webwork 모듈에서 발생합니다.

컨플루언스에서는 Webwork 라이브러리를 사용하여 Velocity 템플릿에서 웹 페이지 콘텐츠를 동적으로 생성하기 위해 OGNL 표현식을 사용합니다. OGNL은 자바 객체의 속성 값을 가져오거나 설정할 때 사용하는 동적 EL(Expression Language) 입니다[1]. Velocity 템플릿이 페이지에 렌더될 때, OGNL 구문이 해석됩니다. 이때, 사용자의 입력값의 유효성을 충분히 검사하지 않아 입력값이 템플릿에서 OGNL구문으로 해석될 수 있습니다. 공격자는 이를 악용하여 컨플루언스 서버에 악의적인 OGNL구문을 삽입하여 임의 코드를 실행할 수 있습니다. 해당 취약점은 제보된지 한 달 뒤인 8월 25일 빠르게 hotfix로 패치되었습니다[2].

많은 기업에서 문서의 표준으로 컨플루언스를 사용하고 있는 만큼 이번 공격의 파급력은 상당했습니다. 업무에 필요한 소프트웨어를 사용할 때는 해당 서비스에 취약점이 발견되진 않았는지, 너무 낮은 버전을 사용하고 있지 않은지 항상 추적하여 업데이트해야 안전한 업무 환경을 유지할 수 있습니다.

[1] https://www.zerodayinitiative.com/blog/2021/9/21/cve-2021-26084-details-on-the-recently-exploited-atlassian-confluence-ognl-injection-bug
[2] https://jira.atlassian.com/browse/CONFSERVER-67940

라자루스 IDA 백도어

  • Backdoor, Trojan
  • 북한 해킹그룹, Lazarus Group

2021년 11월경, 북한의 해킹 그룹 라자루스가 보안 연구자들을 대상으로 해킹을 시도한 흔적이 밝혀졌습니다.[1] 그들의 해킹 방식은 상당히 고전적이었지만, 보안 연구자들을 타겟으로 하기에는 충분했습니다. 라자루스는 보안 연구자들이 주로 사용하는 분석 도구인 IDA Pro 7.5 버전을 크랙한 후 백도어가 포함된 불법 복제파일을 온라인상에 배포했습니다. 보안 연구자가 불법 복제파일을 다운로드 받은 후 실행하면 내장된 백도어가 실행되는 간단한 구조입니다. 해당 백도어는 공격자의 서버에 존재하는 추가적인 패이로드를 다운로드 받은 후 실행하여 궁극적으로는 PC를 장악할 수 있는 것으로 확인되었습니다.

lazarus-1.png

라자루스 소유[2] 의 도메인에서 패이로드를 받아오는 백도어 코드

보안 연구자들은 IDA를 통해 프로그램을 분석하고, 제로데이를 찾기도 합니다. 만약, 보안 연구자가 실제로 취약점을 찾고 원데이 또는 제로데이를 PC에 저장해 두었다면 라자루스는 해당 취약점을 손쉽게 훔칠 수 있었을 것입니다. 이런 점을 미루어 보아 그들에게 이번 타겟은 상당히 좋은 먹잇감으로 선정되었을 것이라고 생각합니다. 이러한 데이터 유출 행위 외에도 공격자는 파일을 암호화하거나 삭제하는 등, 랜섬웨어 형태로 더 교묘하게 큰 피해를 입힐 수 있습니다.

따라서, 우리는 위 사건을 통해 특정한 분야에서 민감한 데이터를 다루는 업무를 하고 있는 경우 보안에 특히 더 신경 써야 한다는 교훈을 배울 수 있습니다. 또한, 온라인상에서 다운받는 불법 복제 파일들은 신뢰해서도 안 되며 윤리적으로도 이런 행위는 근절되어야 합니다.

[1] https://twitter.com/ESETresearch/status/1458438155149922312
[2] https://blog.google/threat-analysis-group/update-campaign-targeting-security-researchers/

Microsoft Excel

  • Security Feature Bypass
  • CVE-2021-42292

Microsoft Excel는 국/내외로 많이 사용하는 문서 소프트웨어입니다. Excel에서 특정 파일 로드 시 해당 파일에 매크로 스크립트가 포함된 경우 프롬프트를 통해 이용자에게 경고를 해주며, 실행 여부를 선택하도록 합니다.

excel-1.png

지난 11월에 공개된 CVE-2021-42292 취약점은 위와 같은 보안 옵션을 우회할 수 있었습니다. 해당 취약점이 이슈가 된 이유는 0-day 취약점으로 실제 악용되고 있었기 때문입니다.[1] 또한 해당 취약점이 공개된 시점에서 Mac버전의 프로그램에 대한 패치는 즉시 제공되지 않았으며, 2021년 11월 16일에 패치가 공개되었습니다.[2]

이와 같은 취약점은 문서형 악성코드에서 사용될 수 있으며, 소프트웨어에서 발생하는 취약점과 버전을 항시 확인하여 피해를 방지하여야 합니다 ! 🛠️

[1] https://www.zerodayinitiative.com/blog/2021/11/9/the-november-2021-security-update-review
[2] https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-42292

월패드

  • IoT, 월패드

2021년 11월경, 국내 다수의 가정집 내 월패드가 해킹되어 영상 자료 유출로 인해 수많은 사생활 침해 피해자들이 발생하고, 이로 인한 공포가 확산되었습니다.[1]

초연결시대가 도래하고, 우리 삶 어디서든 인터넷이 자리잡고 있습니다. 이러한 모습은 가정집 내에서도 쉽게 찾아볼 수 있는데 냉장고, 에어컨, 가스레인지 등이 홈네트워크를 이루고 해당 기기들을 제어할 수 있는 것이 하나의 예입니다. 이번에 문제가 된 것은 도어벨이 울리면 바깥의 방문자와 영상 통화를 할 수 있는 월패드 장비가 해킹되어 일어난 사건입니다.

공격자는 월패드의 영상 데이터를 훔쳐온 뒤, 이를 다크웹상에서 가상화폐를 통해 당시 시세 약 800만원 정도로 한 가구의 하루 영상을 판매하는 글까지 올렸습니다.

wallpad-1.png

공격자로 추정되는 인물이 업로드한 판매 글[1]

이번 해킹 사건의 정확한 방법은 밝혀지지 않았지만, IoT 장비인 월패드가 통신을 위해 네트워크상에서 외부로 연결되어 있고 공격자는 이를 통해 공격을 시도했을 것이라 추측해볼 수 있습니다. 이러한 해킹을 막기 위해, 장비를 사용하는 개인 이용자는 웹캠이 들어간 장비에 물리적으로 스티커를 붙이거나, 기능을 비활성화 하는 등으로 대처할 수 있습니다. 다만, 이러한 사건이 재발하지 않도록 장비를 제품화하는 업체에서는 출시 전, 체계적인 보안 감사를 통해 해당 기기 내 취약점을 선제적으로 제거하는 것을 우선시 하면 좋을 것 같습니다.

[1] http://it.chosun.com/site/data/html_dir/2021/11/12/2021111202264.html

Grafana

  • Path Traversal
  • CVE-2021-43798

다소 생소할 수도 있는 Grafana란 제품은, 다양한 곳에서 발생하는 로그와 지표(metric)를 가공하여 보여주는 오픈소스 모니터링 소프트웨어입니다. 2021년 12월에 다음과 같은 트윗이 올라옵니다.[1]

grafana-1.png

해당 트윗 내용을 바탕으로 구글링을 해본 결과, 취약점 제보자인 j0vsec 가 취약점에 대해 쓴 글[2]과, Grafana의 공식 기술 블로그에 취약점이 패치되어 새로 릴리즈 되었다는 글[3]을 발견하였습니다.

트윗 내용만을 보면 2021년 말을 정말 뜨겁게 만든 Apache의 Path Traversal 취약점(CVE-2021-41773 & CVE-2021-42013)과 같은 취약점인줄 알았지만, 그렇지 않았습니다.

j0vsec가 쓴 글에 따르면 해당 취약점은 go 언어의 path.Clean 함수의 다소 특이한 작동 방식을 잘못 이해하고 사용하여 발생하였습니다. 함수명만을 미뤄 보았을 때, path.Clean 함수는 인자로 받은 경로를 보안적인 측면에서 안전하게 만들어 줄 것 같지만, 실제론 인자로 받은 경로가 / 로 시작해야지만 의도한 대로 작동 합니다.[4]

해당 취약점은 상당히 빠르게 패치되었는데, 그 이유는 다름이 아닌 j0vsec 때문이였습니다. 그는 자신이 Grafana에서 Path Traversal 취약점을 찾았다는 사실을 트위터에 올렸고, 그로 인해 다른 보안 전문가가 동일한 취약점을 찾아 트위터에 공개하였기 때문입니다.

j0vsec이 글([2])의 서두에 쓴 것처럼 취약점을 찾았을 때엔 흥분을 가라앉히고, 취약점을 Responsible Disclousre 절차에 따라 조심히 공개해야 합니다.

[1] https://twitter.com/h4x0r_dz/status/1468225847177977870
[2] https://j0vsec.com/post/cve-2021-43798/
[3] https://grafana.com/blog/2021/12/07/grafana-8.3.1-8.2.7-8.1.8-and-8.0.7-released-with-high-severity-security-fix/
[4] https://pkg.go.dev/path/filepath#Clean

Log4j

  • 원격 코드 실행, Remote Code Execution
  • CVE-2021-44228,CVE-2021-45046, CVE-2021-45105, CVE-2021-4104, CVE-2021-44832

2021년의 마지막을 화려하게 장식했던 Log4j 취약점입니다. 워낙 핫했던 취약점이라 모두 어렴풋이 들어보셨을 것이라 예상됩니다. Log4j는 자바 기반의 로깅 라이브러리로, Apache 로깅 서비스의 일부입니다. 해당 취약점이 이렇게 높은 파급력을 보이는 이유는 대부분의 자바 기반 서비스가 해당 취약점에 영향을 받을 수 있음에도 불구하고 무려 8년이라는 긴 기간 동안 방치되어 왔기 때문입니다. (마인크래프트에서 보안 업데이트를 발표한 것이 더 큰 파장을 일으키는데에 한 몫 했다는 생각도 듭니다.)

취약점은 Log4j의 Java Naming and Directory Interface, JNDI Lookup 기능에서 발생합니다. 사용자가 출력하는 로그에 일반적인 로깅 문자열 대신 JNDI구문을 입력하면, 해당 문자열이 JNDI 문법으로 해석되어 객체나 클래스를 불러올 수 있습니다. 해당 기능은 사용자가 출력하는 모든 로그에 적용되기 때문에 공격자가 본인 서버의 공격코드를 클래스나 객체 형태로 불러오는 JNDI 구문을 삽입하면 해당 코드가 Log4j를 통해 실행됩니다.

이 취약점은 그 심각성을 인정받아 해외, 국내 할 것 없이 취약점이 없는 최신버전으로 업데이트할 것을 강력히 권고하고 있습니다[1] [2]. 이번 사건을 통해 다른 서비스나 라이브러리를 사용할 때에는 취약점이 있는지, 낮은 버전을 사용하고 있는지 검사하는 것이 안전한 서비스를 만드는 데에 중요한 역할을 한다는 사실을 다시 한번 기억하는 계기가 되셨길 바랍니다.

[1] https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389
[2] https://logging.apache.org/log4j/2.x/security.html

마치며

본 글은 2021년 하반기에 발생한 Hot🔥 했던 CVE와 보안 사건/사고를 다루어보았습니다. 2021년 마무리 잘하시고 다가오는 2022년에는 모두 행복한 새해 되시기 바랍니다. 새해 복 많이 받으세요 ! 🥳
🎉Happy New Year!🎉

finish-1.png

About Theori

티오리(Theori)는 혁신적이고 탄탄한 기술력으로 다양한 난제를 해결하는 사이버보안 R&D 스타트업입니다. 티오리는 2016년에 설립되어 정부 기관 및 기업 고객들을 대상으로 차별성 있는 보안 컨설팅 뿐만 아니라, 난제급 보안 연구 프로젝트 등 아무나 하지 못하는 일들을 독보적으로 해내며 높은 퀄리티의 연구 기반 서비스를 제공합니다. 세계적 기술력을 바탕으로 꾸준하고 혁신적인 연구개발 과정을 통해 현재의 기술이나 해결책에 만족하지 않고 새로운 기술과 창의적인 아이디어를 위해 항상 노력하는 연구 중심적 집단입니다. 사이버 보안 교육, 보안 컨설팅, 버그바운티 운영 및 사이버 보안 위협 정보 제공에 도움이 필요하시면 언제든 티오리에게 연락주세요!

#2021_hot_cve
작성자 정보
2 years ago
정말 감사합니다
avatar
whitem4rk
워게임: 50
2 years ago
정말 좋은글이네요 티오리 입사하고싶다 ㅠ
avatar
Sechack
CTF Second Place
2 years ago
와우
avatar
sangjun
공부벌레
2 years ago
ida백도어는 진짜 너무하네요..
avatar
Santa
강의 수강: 1
2 years ago
좋은 글 감사합니다~