Telegram Desktop 취약점으로 어떤 사용자의 파일이든 빼낼 수 있었습니다

Telegram Desktop vulnerability allowed any user's file to be stolen

beaksec.github.io ▲ 434 댓글 277 g-b-r

요약

Telegram Desktop에는 링크 하나만 눌러도 내 컴퓨터의 파일이 공격자에게 넘어가는 취약점이 있었습니다.

보안 연구자 beaksec이 블로그에 공개한 분석입니다. 6월에 ZDI(취약점 제보를 중개하는 프로그램)를 통해 제보했고, 텔레그램이 9월에 7.2.9 버전으로 고친 뒤 세부 내용을 공개했습니다.

왜 중요한가

  • 피해자가 할 일은 평범한 https 링크 하나를 누르는 것뿐이라 공격 문턱이 매우 낮습니다.
  • 세션 파일을 빼내면 비밀번호 없이 계정을 넘겨받을 수 있고, SSH 키 같은 다른 파일도 같은 방법으로 노출됩니다.
  • 7.2.9 변경 기록에는 화면 표시 수정만 적혀 있고 보안 공지도 없어, 사용자가 업데이트의 중요성을 알기 어렵습니다.

핵심 내용

  • 실행 중인 앱에 링크를 넘기는 내부 통신이 명령 구분자인 세미콜론을 처리하지 않아, 링크 하나에 여러 명령을 끼워 넣을 수 있었습니다.
  • 끼워 넣은 명령은 배포 스크립트용 내부 기능을 불러, 지정한 파일을 확인 없이 채팅으로 보내게 했습니다.
  • 공격자는 그룹에 지시 파일을 보내 자동으로 내려받게 한 뒤, 예측 가능한 저장 위치를 이용했습니다.
  • 로컬 암호를 걸지 않은 기본 상태에서는 tdata 폴더의 파일 세 개만으로 세션을 되살릴 수 있었습니다.
  • 7.2.8까지 영향을 받으며, 7.2.9 이상으로 올리는 것이 유일한 완전한 해결책입니다.

HN 반응

  • 프로그램이 기본으로 모든 파일과 인터넷에 접근하는 구조부터 바꿔야 한다는 의견이 많았고, 풀 길은 남겨야 한다는 반론이 붙었습니다.
  • 꺼 둔 설정을 다시 켜는 등 텔레그램의 보안 관행을 불신하는 목소리와, 익명성과 데스크톱 지원 때문에 쓴다는 옹호가 맞섰습니다.

댓글

30개 표시 · 전체 277개
  1. farhanhubble HN

    예전에 〈The Bugs We Have to Kill〉(https://www.usenix.org/publications/login/aug15/bratus)를 읽었는데, 그 글의 한 대목이 지금까지도 머릿속에 남아 있습니다.

    “충분히 복잡한 입력 형식은 바이트코드와 구별할 수 없고, 그 입력을 받는 코드는 가상 머신과 구별할 수 없다.”

  2. goodmythical HN

    아드님 이름을 정말 Robert'); DROP TABLE Students;-- 로 지으셨어요?

  3. Forgeties79 HN

    아, 그 꼬마 바비 테이블즈군요.

  4. bita_nidir HN

    관련해서, 소프트웨어가 기본적으로 다음을 할 수 있게 허용하는 것 좀 이제 그만둘 수 없을까요?

      a) access all your files, and
      b) roam the internet at will.
    

    80년대에는 그래도 그럭저럭 괜찮았지만, 그 뒤로는 전혀 아닙니다.

  5. TheMiddleMan HN

    리눅스 데스크톱 쪽에서는 Flatpak이 애플리케이션을 파일 하나로 배포하고, 격리된 커널 네임스페이스 안에서 실행합니다. 프로세스 간 통신이나 화면 캡처 같은 부분에서는 아직 성장통이 있습니다. 그래도 저는 이 방향이 마음에 들고, 꽤 많은 지지를 얻고 있기도 합니다.

  6. celsoazevedo HN

    저도 반대는 아닌데, "보조 바퀴"를 떼어낼 방법은 있어야 해요.

    제 컴퓨터가 늘 아이폰처럼 닫혀 있고 제약이 많은 건 싫거든요. 그런 방식이 좋을 때도 있고 어떤 사용자에게는 딱 맞겠지만, 모두에게, 또 언제나 맞는 건 아니잖아요.

  7. g-b-r HN

    아이러니하게도, 그렇게 닫혀 있고 제약 많은 iOS와 안드로이드가 정작 인터넷 접근을 제한하는 건 일부러 어렵게 만들어 놨습니다.

  8. TeMPOraL HN

    당신이 제3자의 접근을 제한하기가 어려운 거죠. 자기 자신의 접근을 제한하는 건 쉽고요.

  9. classified HN

    그러면 온갖 감시와 정보 수집이 어려워지고, 그만큼 수익이 줄어들 테니까요. 그리고 수익 감소야말로 가장 끔찍한 공격 위험이죠.

  10. bita_nidir HN

    물론이죠, 저는 "기본적으로"라고 했을 뿐이에요. 원하는 접근은 뭐든 허용할 수 있어야죠. 낡은 양말이든 할머니든 맘대로 갖다 바치세요. 다만 기본값이 그러면 안 된다는 거예요.

  11. zargon HN

    요즘은 배포판 저장소에서 받지 않은 프로그램은 대부분 각자 bubblewrap에 넣어서 돌립니다. 거기에 opensnitch도 씁니다. 믿을 만한 애플리케이션이라 해도(드문 경우지만) npm, pypi 같은 건 이제 절대 믿지 않습니다. 이렇게 설정하는 건 번거로운 일이니, 운영체제가 쉽게 만들 수 있도록 도와줘야 합니다.

  12. drnick1 HN

    동의합니다. Zoom, Steam 같은 폐쇄 소스 "앱"은 항상 별도 사용자 계정이나 bubblewrap 안에서 실행해야 합니다.

  13. crossroadsguy HN

    텔레그램의 문제점 하나는, 앱이나 계정 안에서 분명히 꺼 둔 설정을 툭하면 다시 켜 놓는다는 점입니다. 그래서 지금 무슨 일이 일어나고 있고 무슨 일이 일어나지 않는지 도무지 알 수 없습니다. 즉, 눈에 보이지 않았더라도 악성 파일이 따뜻하고 포근하게 내 컴퓨터에 앉아 있을 수 있다는 뜻이죠. 다른 일들도 마찬가지고요. 저는 이 앱의 빠릿빠릿함이 마음에 들었고(지금도 다른 메신저 앱을 다 합친 것보다 한참 빠릿합니다), 하지만 얼마 지나 깨달았습니다. 데스크톱에 깔아 두는 건 째깍거리는 시한폭탄이고, 어쩌면 사기꾼들의 안전한 피난처일 뿐 그 이상은 아니라는 걸요.

  14. axegon_ HN

    많은 회사가 그렇게 하지만 이런 말을 하면 저는 늘 욕을 엄청 먹습니다. 제가 본 중에 최악은 텔레그램이에요. 앱을 파헤쳐 보면 보안과는 거리가 먼 보안 관행이 산더미처럼 나옵니다. 제가 텔레그램을 역병 취급하는 수백 가지 이유 중 하나죠. 제 눈앞에서 치워서 불태워 버리세요.

  15. MajorTakeaway HN

    텔레그램을 쓰는 선량한 사람은 한 번도 못 봤어요. 보통 사기꾼들이 즐겨 쓰는 거죠. 아니면 시그널이거나요.

  16. wolvoleo HN

    지역마다 다를 수도 있겠지만, 여기 스페인에서는 동호회에서 아주 인기가 많아요. 저희 메이커스페이스도 그렇고 다른 여러 동호회도 텔레그램을 씁니다. 중재 기능이나 접근 권한 관리 도구가 WhatsApp보다 훨씬 낫거든요.

    종단간 암호화는 안 되지만, 누구나 들어올 수 있는 대규모 그룹 채널에서는 그게 별로 중요하지 않죠.

    여기선 전부 WhatsApp 아니면 텔레그램이에요. iMessage는 외국인 거주자들 말고는 거의 쓰질 않아요. 현지 사람들은 대부분 스마트폰 요금제를 쓰니까요. 저는 SMS도 RCS도 안 받고요.

  17. cosmic_cheese HN

    저희 가족은 iMessage를 지원하지 않는 기기(주로 윈도와 리눅스 설치본)에서 대화할 때 씁니다. 데스크톱 사용자를 2등 시민이나 뒷전으로 취급하지 않는 크로스 플랫폼 메신저가 몇 안 되는 귀한 존재라서요.

  18. drnick1 HN

    시그널은 믿을 만합니다. 전체 스택이 오픈 소스이고, 메시지는 종단간 암호화(E2EE)됩니다.

    텔레그램은 동유럽, 중동 국가들과 연결돼 있는데 좋은 쪽으로는 아니고, 서버 쪽 구성 요소는 비공개 소스입니다. 기본값으로는 E2EE도 없고요.

  19. codedokode HN

    시그널은 전화번호가 필요하고 익명 사용자를 원하지 않으니, 저는 그것도 쓰고 싶지 않습니다.

  20. drnick1 HN

    전화번호는 계정을 만들 때만 필요하고, 제가 알기로 그 뒤로는 다시 쓰이지 않습니다. 이유는 악용과 스팸을 막기 위해서였고, 지금은 소액을 내고 전화번호 없이 계정을 살 수 있는 옵션도 있는 걸로 압니다.

  21. codedokode HN

    결제는 Apple Pay나 Google Pay로만 할 수 있는데, 그러려면 전화번호가 필요하고 거기에 은행 카드까지 있어야 합니다. 마케팅하는 사람들한테 속지 마세요.

  22. wolvoleo HN

    전화번호를 안 주려고 자기 신상을 털어야 한다니, 프라이버시를 중시한다는 메신저치고는 좀 실망스럽네요.

    더구나 앱 안에 자체 암호화폐까지 있는데, 왜 그걸로 결제하게 해 주지 않는 걸까요?

  23. dimatter HN

    텔레그램도 그렇잖아요

  24. codedokode HN

    하지만 Matrix는 안 그렇습니다. 이메일 요구 사항도 없앴으면 좋겠지만요.

  25. wolvoleo HN

    Matrix 서버마다 달라요. 이메일 주소를 꼭 요구해야 하는 건 아니거든요.

  26. jminnl HN

    큰 회사는 전부 이런 꼼수를 씁니다. 다른 변형으로는, 옛 설정을 없애고 오해하기 쉬운 이름의 새 설정을 도입해서 기본값을 다시 켜 두는 방식도 있습니다.

  27. boltzmann64 HN

    어떤 설정이 자동으로 다시 켜지는지 알려 주실 수 있나요? 저는 텔레그램을 주 메신저로 쓰고 있어서요. 시그널이든 뭐든 갈아타야 할지 좀 더 잘 알고 판단하고 싶습니다.

  28. maqp HN

    시그널이든 뭐든 갈아타야 할지

    네, 갈아타세요.

    https://news.ycombinator.com/item?id=48923935

  29. asqueella HN

    참고로 그 페이지에는 어떤 설정이 다시 켜지는지에 대한 정보는 없고, 주로 프라이버시와 보안 측면에서 텔레그램에 대한 불만을 일반적으로 나열해 놨을 뿐입니다.

  30. TeMPOraL HN

    프라이버시와 보안 마니아들은 모두가 거기에 집착한다고 생각하죠.

    우리 중에는 편집증도 없고 신경도 안 쓰는 사람들이 있어요. 그냥 잘 돌아가고 말도 안 되는 제한을 들이밀지 않는 메신저를 즐겁게 쓰는 거죠.

Hacker News에서 보기 ↗