1월, 2019의 게시물 표시

이용자 사진을 수집하는 악성 카메라 앱

이미지
사진 꾸미기 앱에 악성코드 사진을 뽀사시하게 하거나 필터를 적용하는 등 카메라와 사진을 예쁘게 만드는 앱(beauty camera)에서 악성코드가 발견됐다. 구글 플레이의 다수 앱에서 발견돼 삭제됐으며, 트렌드 마이크로의 백신에서는 AndroidOS_BadCamera.HRX로 탐지한다. 이들 악성 앱은 앱 목록에서 자신을 숨겨, 삭제하기 어렵게 한다. 이럴 땐 랜섬웨어를 다룰 때처럼 안전 모드로 부팅하면, 악성 앱의 방해 활동이 무력화되어 탐지 및 삭제가 가능하지 않을까 생각한다. 광고 표시 기기가 잠금해제될 때, 브라우저를 이용해 광고를 띄운다. 사용자는 광고를 유발하는 앱이 어떤 것인지 알기 어렵다. 광고가 피싱(Phishing)으로 이어지는 경우도 있다. 한 예로, 상품을 걸고 3번의 추첨 기회를 주는 이벤트가 있는데, 3번째에는 무조건 당첨되게 돼 있다. 그리고 상품을 받기 위해 개인 정보를 입력하도록 요구하여 탈취한다. 가짜 업데이트 창을 보이기도 한다. 앱을 계속 사용하려면 업데이트가 필요하다는 알림을 보이지만, 실은 다른 앱을 설치하는 링크일 뿐이다. 사진 무단 수집 사진을 화가가 그린 것 같이 만들어 주는 예술적 효과를 주는 앱에서 주로 발견됐다. 참고한 보고서에선 "These apps seemingly allows users to beautify their pictures by uploading them to the designated server."라고만 했다. 그리고 서버에 업로드된 사진들을 악의적으로 사용할 위험성이 있다고 했다. 가짜 SNS 계정의 프로필 사진으로 사용하는 것을 예로 들었다. 뉘앙스로 봐서, 사진 업로드 자체는 사용자들이 자발적으로 하는 것으로 보이지만, 애매하고 불충분한 설명이라고 생각됐다. 그런데 해당 앱들은 이미 Google Play에서 삭제된 후라 관련 정보를 찾기가 어려웠다. 어쩌다가 비슷한 앱을 하나 찾을 수 있었다. 최고의 리뷰를 보면, 인터...

iOS 페이스타임 버그, 저절로 도청된다

아이폰의 영상 통화(화상 채팅) 기능인 FaceTime에서 사생활을 침해할 수 있는 취약점이 발견됐다. 누군가가 페이스타임 통화를 걸기만 하면, 수신자의 응답이나 동의나 그 어떤 행동 없이도, 마이크가 작동하여 도청된다. 수신자의 간단한 반응이 더해지면 전면 카메라까지 켜진다. 엿보기까지 가능한 것이다. 버그 이용 과정은 이렇다. 해커가 임의의 피해자에게 페이스타임 콜을 보낸다. 그리고 피해자가 응답하기 전에, 자신과 피해자를 그룹 페이스타임의 새 연락처로 추가한다. 이것만으로 피해자의 마이크가 작동하여 주변의 소리를 엿들을 수 있다. 만약 수신자가 콜의 소리를 없애기 위해 전원 버튼을 누르면, 전면 카메라까지 켜진다. 최초 발견자가 누구인지는 불분명하며, SNS를 통해 퍼지기 시작했다. Apple도 문제를 인정했으며, 이번 주 안으로 패치를 내놓을 예정이다. 업데이트 전까지는 페이스타임을 꺼 놓아야 한다. 참고 자료 Disable FaceTime Now! Bug Lets Callers Snoop On You Without Permission  

시스코 라우터 RV320,325 해킹 취약점

CVE-2019-1652,1653 Cisco의 중소기업용 라우터(공유기) RV320, 325에서 원격으로 기기를 완전히 제어할 수 있는 취약점이 발견됐다. 취약점은 라우터를 관리하는 웹 인터페이스에 있었다. CVE-2019-1652는 command injection 취약점으로, 원격의 해커가 임의의 코드를 실행할 수 있다. 다만 이를 악용하려면 사용자 인증과 관리자 권한이 필요하다. CVE-2019-1653은 information disclosure 취약점으로, 설정 정보 및 자기진단 데이터로부터 중요한 정보를 탈취할 수 있다. 더 큰 문제는 이 취약점 악용에는 어떠한 인증도 필요치 않다는 것이다. 설정 내용을 관리하는 /cgi-bin/config.exp 페이지가 아무런 보호 없이 LAN(내부 네트워크)에, 일부 펌웨어 버전에서는 WAN(외부 네트워크 즉 인터넷에)에 그대로 노출돼 있기 때문이다. 유출 내용에는 해시된 암호(hashed password)도 포함되는데, 이를 이용해 라우터에 로그인해서 1652 취약점을 이용하게 된다. 즉시 업데이트해야 시스코는 1.23일 이를 해결한 업데이트를 발표했다. 그 직후에 취약점을 발견한 연구팀은 자세한 내용과 exploit code를 공개했다. 당연히 실전에 투입할 수 있는 악성코드가 나왔고, 이 취약점을 탐색하는 트래픽이 크게 늘고 있다. 따라서 해당 기종 사용자는 즉시 업데이트를 적용해야 한다. 요즘은 취약점 패치 직후에 상세한 내용과 샘플 코드가 공개되는 일이 많다. 보안업체 간의 과당경쟁 때문으로, 큰 문제라고 생각한다. 제조사가 패치를 내놔도 그것이 사용자에게 적용되는 데는 어느 정도 시간이 걸리기 마련이다. 그럴 여유도 주지 않고 성급하게 공개해 버리는 것은 사실상 범죄자를 돕는 무책임한 짓이다. 현실이 이런데 어쩌겠는가. 항상 뉴스를 주시하고 있다가 보안 이슈와 업데이트가 나오면 즉시 적용하는 수 밖에. 해시된 암호로 로그인(pass-the-hash attack) 이 취...

MySQL 사용 사이트 해킹 주의

이미지
MySQL 파일 유출 취약점 널리 사용되고 있는 데이터베이스 프로그램 MySQL에 아무 파일이나 외부로 전송할 수 있는 결함이 있다. MySQL 시스템은 서버와 클라이언트로 구성되는데, 서버는 클라이언트에 사실상 어떤 파일이든 전송하도록 요청할 수 있다. 이 점을 이용해 해커는 악의적인 MySQL 서버를 만들어 놓고, 표적이 된 MySQL 클라이언트의 접속을 유도하기만 하면, 표적 시스템의 암호 등 중요 정보를 탈취할 수 있다. 악의적인 MySQL 서버를 만드는 코드는 이미 수 년 전부터 공개돼 있다. 이런 위험성은 MySQL 개발자도 알고 있으며, 신뢰할 수 없는 서버에 연결하지 않도록 권고하고 있다. Adminer와 함께라면 더욱 위험 그러나 MySQL 클라이언트 관리자가 알지 못하게, 해커가 자신의 MySQL 서버에 연결할 수 있는 쉬운 방법이 알려졌다. 데이터베이스 관리 유틸리티인 Adminer를 사용하는 사이트가 표적이다. Adminer는 기본 설정대로 그냥 설치하면 루트 디렉토리에 설치된다. 예를 들어, 내가 myshop.com이라는 쇼핑몰을 운영한다고 하자. Adminer를 그냥 설치하면 myshop.com/adminer-4.6.2.php가 설치 위치가 된다. 브라우저 주소창에 위 주소를 입력하면 그림과 같은 로그인 페이지가 나타난다. 악성 서버를 만들어 둔 해커는 자신의 서버와 로그인 정보를 입력하기만 하면 된다. 그러면 MySQL 시스템의 취약점으로 인해, 내 쇼핑몰의 모든 정보를 털어갈 수 있다. MageCart 악성코드에 이용돼 근래 금융이나 전자상거래 사이트를 노리는 MageCart 악성코드가 기승이다. 메이지카트는 사용자가 입력하는 정보를 가로채는 악성코드로, 취약한 사이트를 해킹해 설치한다. Willem이라는 보안 연구자는 메이지카트 설치를 위한 해킹에 MySQL의 이런 취약점이 이용된 경우를 많이 발견했다. 관리자 페이지에 강력한 암호 설정해야 현재 이 문제에 대해 MySQL 개발자는 알고...

미국은 DNS 하이재킹으로 비상

고차원의 DNS hijacking 22일 미국 DHS(국토안보부)는 정부 관련 도메인을 관리하는 모든 공무원에게 긴급 지침을 보냈다. DNS 정보가 정확한지 확인하고, 관련 보안을 강화하라는 것이다. 작년 말부터 북미, 유럽, 중동 지역에서 정부와 통신사를 비롯한 인터넷 기반 시설에 대한 DNS 하이재킹이 활발히 행해지고 있는 가운데 나온 조치다. DNS(Domain Name System)는 실제 IP 주소와 사람이 알아 보기 쉬운 형태의 URL을 연결해 주는 것이다. 이것을 조작하여 가짜 사이트로 연결하는 해킹을 DNS hijacking이라 한다. 결과는 피싱(Phishing)과 같다. 입력하는 중요 정보를 탈취하고, 악성코드를 유포할 수 있다. DNS hijacking을 하는 악성코드는 많은데, 주로 라우터(공유기)를 감염시키는 방법을 쓴다. 반면에 이번 공격은 훨씬 고차원적이다. DNS를 관리하는 관리자의 계정을 해킹하여, 관리자 권한으로 DNS 설정을 광범위하게 조작한 것이다. 그래서 웹 트래픽 뿐만 아니라 이메일도 가로챘다. 인증서 장착으로 HTTPS 무력화 특히 중요한 것은 SSL 인증서도 확보해서 HTTPS 보호를 무력화한 점이다. DNS 관리자 권한을 가졌기 때문에, 가짜 사이트에 대한 SSL 인증서도 합법적으로 발급받을 수 있다. 따라서 암호화된 트래픽도 엿보거나 변조할 수 있음은 물론, 브라우저 상에 인증서 오류도 나타나지 않는다. 흔히 악성코드에 의한 DNS hijacking은 인증서 오류를 일으켜, 주의 깊게 관찰하면 알아챌 수 있다. 그러나 이번 공격은 인증서 오류를 유발하지 않으므로 알아챌 방법이 없다. 결국 예방만이 가능한 대책이다. DHS는 DNS 관리자 계정의 암호를 바꾸고, 2단계 인증을 적용하라고 명령했다. 관련 자료 공유기 해킹하여 DNS 하이재킹하는 Roaming Mantis 악성코드 라우터 공격하는 GhostDNS 악성코드 참고 자료 DHS Orders U.S. Federa...

카카오톡 플러스친구 가짜 계정 주의

SNS 계정을 이용한 피싱(Phishing) 최근 카카오톡에서 '네이버페이'를 플러스친구로 추가하면 문화상품권 증정, 위메프 반값 특가 등 혜택을 준다는 소식이 나돌았다. 카톡으로 홍보를 하고 증거를 제시하면 에어팟을 준다는 조건으로 더 가속도가 붙었다. 그러나 이것은 가짜였다. 이런 이벤트가 없는 것은 물론 자칭 '네이버페이'라는 플러스친구 계정 자체가 가짜였다. 그런데 5만 명 이상이 속아 친구로 추가했다. 이번엔 별다른 피해는 없었지만, 링크를 통해 악성코드를 유포하거나 개인 정보를 탈취할 수도 있는 일이다. 플러스친구 요청이 오는 것을 보면, 대기업이 많기 때문에 검증된 계정으로 생각하기 쉽다. 하지만 사실은 누구나 만들 수 있는 것이다. 물론 카카오톡에는 인증된 플러스친구 계정이 있고, 이름 오른쪽에 표시도 된다. 그러나 인증은 필수가 아니다. 즉 인증된 계정은 진짜이지만, 인증을 받지 않았다고 해서 가짜인 것은 아니다. 카카오 측은 올 1분기 안으로 플러스친구 계정에 인증을 의무화할 계획이다. 문제는 현재로선 가짜 계정을 구별할 방법이 없다는 것이다. 그저 조심하는 수 밖에 없고, 특히 링크 클릭에 주의해야 한다. 참고 자료 ‘친구추가하면 에어팟 준다’… 카카오 플러스친구 악용 사기 극성  

아이폰을 원격 탈옥하는 해킹 취약점

탈옥, 루팅, 해킹 운영체제는 안정성과 보안을 위해 사용자의 접근을 일정 부분 제한한다. 이를 돌파해서 최상위 권한을 획득하고 커스터마이징하는 것을 탈옥(jailbreak) 또는 루팅(rooting)이라고 한다. 탈옥이나 루팅을 정당한 사용자가 하면 문제 없지만, 제3자가 임의로 하면 해킹이 된다. 1.23일 원격에서 iOS 12.1.2 이하를 구동하는 애플 기기를 탈옥시키는 취약점이 공개됐다. 바로 전날 애플은 이를 수정한 12.1.3을 배포했으므로, 즉시 업데이트 해야 한다. CVE-2019-6227 사파리 브라우저의 원격 코드 실행 취약점이다. 특별하게 가공된 웹 페이지를 열면, memory corruption 오류를 일으켜, 해커가 임의의 코드를 실행할 수 있다. CVE-2019-6225 iOS 커널에 있는 권한 상승 취약점이다. 앞의 취약점을 통해 임의로 실행된 코드는, 이 취약점을 이용해 사용자 동의 없이 악성코드를 설치할 수 있다. 이 2개의 exploit chain을 이용해, 해커는 악의적인 웹 페이지를 보도록 유인하기만 하면, 피해자의 아이폰을 완전히 장악할 수 있다. 다만 실제 제대로 작동하는 exploit code를 만드는 게 쉽지는 않다고 연구자는 밝혔다. 참고 자료 Chinese Hacker Publishes PoC for Remote iOS 12 Jailbreak On iPhone X  

PHP PEAR 사이트 해킹으로 공급망 공격

웹 사이트 개발에 많이 쓰이는 프로그래밍 언어 PHP용 라이브러리에 장기간의 공급망 공격(supply chain attack)이 있었다. PEAR(PHP Extension and Application Repository)는 PHP용 확장 기능과 응용 프로그램 저장소로, 커뮤니티에 의해 오픈소스로 운영된다. 이를 이용해 개발자는 자신의 프로젝트에 쉽게 기능을 추가할 수 있다. 1.19일 PEAR 관리자는 공식 사이트에 있는 PEAR package manager(go-pear.phar)가 악성코드에 감염된 것을 발견하고, 사이트를 임시로 폐쇄했다. PEAR package manager는 공식 사이트(pear-php.net)와 GitHub를 통해 배포되는데, 공식 사이트의 것만 악성코드에 감염됐다. 조사가 아직 진행 중이므로 상세한 내용은 알려지지 않았지만, 악성코드 감염은 최소 6개월 전에 이루어진 것으로 추정됐다. 따라서 이 기간 공식 사이트에서 package manager를 다운로드한 사람은 악성 버전을 받았을 가능성이 크다. 현재 정상 버전이 깃허브에 pearweb_phars 1.10.10로 올라와 있으므로, 이것과 파일 해시 값이 다르다면 악성 버전이다. 파장은 상당히 클 전망이다. PHP는 웹 사이트에서 캐싱, 인증, 암호화 등 중요한 서비스에 많이 이용되고, 감염된 라이브러리를 사용한 웹 사이트와 그 방문자들까지 위험에 노출돼 있기 때문이다. 참고 자료 Someone Hacked PHP PEAR Site and Replaced the Official Package Manager  

VPN은 보안회사의 것을 이용해야 한다

무료 VPN 믿을 수 없다 나는 그동안 무료 VPN에 대해 제한적으로 권장하는 입장이었다. 중요한 용도에 사용하기에는 부족하지만, 가끔씩 간단히 사용하기에는 괜찮다고 생각했다. 그러나 이제 입장을 바꿔, 무료 VPN은 사용하지 않기를 권한다. 여기서 무료 VPN이라 함은 마이크로소프트, 구글, 애플 등 앱 스토어에 있는 무료 앱과 그 유료 버전을 모두 포함한다. 프리미엄 버전 즉 유료 버전은 속도, 트래픽 한도, 기능 등에서 향상된 점은 있지만, 프로그램 근본 구조는 똑같기 때문이다. VPN을 사용하려면 공신력있는 전문 보안업체의 것을 이용하고, 그렇지 않으면 아예 사용하지 않는 편이 낫다. VPN은 모든 인터넷 트래픽이 통과하는 관문으로, 상당히 중요하다. 엉성한 것은 없느니 만도 못하다. 과도한 권한이 문제 VPN 정보 사이트 TOP10VPN은 2018.11월에 개인정보 보호 정책을 중심으로 앱 스토어들의 VPN 앱을 심층 조사했다. 그 결과 많은 것들이 엉터리 수준임이 드러났다. 이번에는 Google Play에 있는 150개 앱에 대해 기능과 권한을 중심으로 조사했는데, 역시나 잠재적인 위험성이 높은 것으로 나타났다. 20%는 VirusTotal 검사 결과 악성코드로 분류됐다. 물론 바이러스토털의 특성상 반드시 악성코드라고 단정할 수는 없다. 25%는 DNS leaks(DNS 누출) 등 프라이버시 보호 기능에 버그가 있었다. 원래 VPN은 DNS 쿼리와 응답도 암호화해 보호해야 하는데, 이것을 그대로 ISP(통신 사업자)에 노출시킨 것이다. 이렇게 되면 제3자가, 사용자가 방문하는 사이트들을 알 수 있게 된다. 85%는 과도한 기능과 권한으로 악용될 가능성이 있었다. 위치 추적, 기기 정보 수집, 카메라와 마이크 사용, SMS 전송 등이 대표적인 예다. 도대체 VPN이 왜 카메라를 사용하는가. 기가 막힌다. 공유기 보안이 중요 VPN은 DNS 하이재킹 방어, 공공 와이파이 안전 사용, RDP 보호 등 많은 효과가 있다....

트위터 버그, 비공개 트윗을 공개

이미지
18일 Twitter의 발표에 따르면, 안드로이드용 앱의 버그로 비공개 트윗이 최장 4년간이나 모두에게 노출됐다. 이 문제는 14일 수정됐다. 트윗은 기본적으로 모두에게 공개된다. 다만 개인정보 설정에서 비공개(protect your tweets)로 설정하면 팔로워에게만 노출된다. 비공개로 설정하면 이름 옆에 잠김 아이콘이 표시된다. 그런데 버그로 인해, 특정 상황에서 비공개 설정이 초기화된 것이다. 비공개 설정 후 2014.11.3~2019.1.14일 동안에, 안드로이드 앱에서, 이메일이나 전화번호 같은 계정 정보를 수정한 경우이다. 웹 사이트나 iOS 앱에서 수정한 경우는 해당되지 않는다. 트위터 측은 영향 받은 사용자 수가 얼마나 되는지 자신들도 모르기 때문에, 광범위하게 공지하고 있다고 밝혔다. 그러나 나는 어떠한 알림도 받지 못했다. 이전에 안드로이드 앱을 사용했었지만 지금은 사용하지 않아서 그런가. 버그는 안드로이드 앱에만 있었지만, 대부분의 사용자가 영향을 받았을 것으로 생각된다. 여러 기기를 사용하는 사람이 많기 때문이다. 버그가 존재했던 기간도 4년이 넘기 때문에 더욱 그렇다. 비공개 설정했던 분들은 모두들 확인해 보는 게 좋겠다. 참고 자료 A Twitter Bug Left Android Users' Private Tweets Exposed For 4 Years  

ES 파일 탐색기 앱에 백도어

이미지
CVE-2019-6447 구글 플레이 스토어에서 1억 건 이상의 설치 횟수와 높은 평점을 받고 있던 파일 관리 앱 ES File Explorer에서 항상 열려 있는 포트가 발견됐다. 이를 통해 아무 파일이나 읽을 수 있으며 앱을 시작할 수 있다. 현재 최신 버전인 4.1.9.7.4까지 취약점이 있으며, 개발사에서 패치를 곧 내놓을 예정이다. 취약점은 local http 포트 59777이 항상 열려 있어서, 같은 네트워크 상에 있는 즉 동일한 와이파이에 접속해 있는 다른 사람이 별다른 인증 없이 접속할 수 있다는 것이다. 해당 포트는 앱을 실행하면 즉시 열리며, 앱을 종료해도 닫히지 않는다. 관련 백그라운드 프로세스를 모두 종료해야만 닫힌다. 이 포트를 통해 해커는 장치에 대한 세부 정보를 보고, 아무 파일이나 읽거나 가져갈 수 있으며, 앱을 구동할 수도 있다. 더 큰 문제는 사용자가 이 앱에 아무런 권한을 허용하지 않아도 이런 일이 가능하다고 한다. 이와는 별개로 중간자 공격(MItM, Man-In-the-Middle attack)이 가능한 취약점도 발견됐다. 이 앱이 사용하는 http 트래픽을 해커가 중간에서 엿보거나 변조할 수 있다. 이 2개의 취약점은 회사나 공공 와이파이 같은, 여러 사람이 같이 사용하는 네트워크에서 쉽게 악용될 수 있다. 많은 권한 요구하는 다기능 앱 주의   위 그림은 Google Play의 앱 설명에서 캡쳐한 것이다. 거의 모든 것을 할 수 있는 기능을 지원하는데, 이런 앱이 작동하려면 당연히 광범위하고 강력한 권한이 필요하다. 실제로 권한 요청 사항을 확인해 보면 무수한 권한을 요청하고 있다. open port 취약점은 '원격 파일 관리자' 기능을 구현하는 과정에서 생겼을 것으로 생각된다. 그리고 개별적으로 권한을 부여하지 않아도 파일에 접근할 수 있는 것은 '루트 탐색기' 기능 때문에 가능하다고 생각된다. 일반적으로 루트 탐색기 기능은 루팅된 기기에서만 작...

게임 포트나이트 계정 탈취 취약점

이미지
XSS(cross-site script) 해킹 취약점 인기 게임 Fortnite의 계정이 완전히 탈취 당할 수 있는 취약점이 발견됐다. 체크포인트에 의해 발견됐으며, 개발사 Epic Games는 작년 12월 중순에 해결했다. 몇 가지 취약점이 복합적으로 작용했지만, 결정적인 것은 크로스 사이트 스크립트 취약점이다. 에픽 게임즈의 로그인 url은 accounts_epicgames_com이다. 여기에 url 검증을 하지 않는 취약점이 있어서, epicgames 도메인 내의 다른 페이지로 redirect가 가능하고, 거기에서 로그인 요청을 할 수 있다. 연구팀은 ut2004stats_epicgames_com이라는 미사용 상태로 방치된 서브 도메인을 찾아냈고, 게다가 여기에는 cross-site script 취약점이 있다는 걸 알아냈다. 크로스 사이트 스크립트란 한 마디로 다른 사이트에 있는 스크립트다. 다른 사이트에 있다 함은 물리적으로 그럴 수도 있고, 논리적인 개념일 수도 있다. 관리자가 의도한 것이 아닌, 제3자가 의도한 대로 작동하는 스크립트 말이다. 당연히 이런 것은 허용될 수 없는 것이다. 우리가 어떤 사이트를 안전한 것으로 생각하고 이용하고 있는데, 거기에 관리자가 아닌 제3자가 만든 스크립트가 삽입돼 실행된다고 하자. 전혀 안전하지 않은 것이다. 연구팀은 ut2004stats 서브 도메인에 인증 토큰(세션 쿠키)를 탈취하는 제3자 스크립트를 삽입할 수 있었다. 이는 페이스북, 엑스박스 등 연결된 계정에서 보낸 토큰을 탈취한다. 개략적인 시나리오는 이렇다. 해커는 달콤한 유혹이 담긴 링크를 피해자에게 보낸다. 특혜 링크로 접속하면 아이템을 추가 증정한다는 식의. 이 링크는 정상 로그인 주소인 accounts_epicgames_com을 해커가 장악한 ut2004stats_epicgames_com로 리다이렉트하고, 여기서 페이스북 등 소셜 로그인 사이트에서 보낸 토큰을 탈취한다. 아래 그림은 에픽 게임즈의 로그인 화면과 엑스박스...

구글 검색 결과를 조작하는 악성코드

이미지
SEO poisoning과는 달라 최근 영화 파일로 가장한 악성코드가 토렌트에서 발견됐다. 이것은 구글 검색 결과를 비롯해 웹 페이지를 변조하고, 광고를 삽입하고, 가상화폐를 탈취한다. '검색 결과 조작'이라고 하면 흔히 SEO poisoning을 뜻한다. 이는 검색 엔진의 알고리즘을 노려, 부정한 트래픽을 발생시켜 순위를 끌어올리는 것이다. 즉, 검색 엔진을 속이는 것이다. 반면 이 악성코드는 검색 엔진에 대한 공격이 아니다. 감염된 PC의 브라우저를 공격하는 것이다. 영화 파일로 위장 악성코드는 최신 영화 The Girl in the Spider's Web처럼 보이는 아이콘을 갖고 있었다. 그러나 이것은 파워셸 스크립트로 연결된 LNK 파일이다. 실행 파일이 아닌 것처럼 위장하는 전형적인 수법이다. 이처럼 파일 형식을 위장하는 경우에 대비해, 다운로드한 파일은 이름만 보지 말고 속성을 살펴보는 것이 중요하다. 광고 삽입 이 악성코드는 실행되면 먼저 레지스트리를 변경해서 Windows defender를 끈다. 그리고 구글의 첫 화면 아래 부분에 광고를 띄운다. 원래 구글 첫 화면에는 광고가 없다. 웹 페이지 변조 Google의 검색 결과 페이지를 조작한다. 예를 들어, '스파이웨어'를 검색하면 첫 2개의 결과는 가짜 백신을 가장 뛰어난 보안 앱으로 소개하는 링크가 나타난다. 이런 식으로 특정 검색어를 입력하면 조작된 결과를 보여준다. 러시아의 검색 엔진인 Yandex에 대해서도 같은 짓을 한다. Wikipedia에는 사이트 후원을 위해 가상화폐를 기부하라는 배너를 삽입한다. 물론 적혀있는 가상화폐 지갑은 해커의 것이다. 가상화폐 탈취 피해자가 여는 웹 페이지를 감시하고 있다가, 비트코인이나 이더리움 등 가상화폐를 송금하는 페이지가 열리면 수취인의 지갑 주소를 해커의 것으로 바꿔치기 한다. 가상화폐를 탈취하는 악성코드들이 많이 이용하는 수법이다. 가상화폐 지갑 주소는 길고 복잡하...

구글 DNS 서버, DNS-over-TLS 지원

이미지
기존 DNS는 사생활 보호와 보안상 문제 1.9일 구글은 자사의 DNS 서버에 DNS-over-TLS를 지원한다고 밝혔다. DNS(Domain Name System)는 google.com, naver.com처럼 사람이 읽기 쉬운 URL을 실제 IP 주소로 변환하는 것이다. 문제는 기존 DNS 트래픽은 암호화되지 않아, 제3자가 중간에서 엿보거나 조작하는 중간자 공격(man-in-the-middle attack)이 가능하다는 것이다. DNS 요청과 응답을 엿보는 것은 그 사람이 어떤 사이트를 드나드는가를 알 수 있어, privacy에 관련된 문제를 야기한다. DNS 트래픽 조작은 엉뚱한 사이트로 유도하게 된다. 이것을 DNS hijacking이라고 하며, DNS poisoning, DNS spoofing이라고도 한다. DNS-over-HTTPS(DoH)와 DNS-over-TLS(DoT) 지원 이런 문제를 해결하기 위해 DNS 트래픽을 암호화하는 것이 DoH와 DoT이다. 구글은 이미 DoH를 지원하고 있었는데, 이번에 DoT 지원을 추가했다. 그런데 이 둘은 무엇이 다른 걸까. HTTPS라는 것이 HTTP를 SSL, TLS 암호화한 것이라는 점에서 의아해 할 수 있다. DNS-over-HTTPS는 일반 HTTPS 통신이 사용하는 포트 443을 쓴다. 즉 일반 트래픽과 DNS 트래픽이 완전히 혼합되어 구별을 할 수가 없다. DNS-over-TLS는 전용 853 포트를 쓴다. DNS 트래픽이 확연히 구별되는 것이다. 암호화된 트래픽에 대한 감청 필요성은 일정 부분 인정할 수밖에 없다. 불법적인 활동을 숨기는 데 악용될 수 있기 때문이다. 결국 문제되는 것은 법적으로 어느 정도까지 허용할 것이냐 하는 것인데, DoT는 아무래도 DoH보다 관리하기 쉽다. DNS 트래픽만을 선별적으로 제어할 수도 있기 때문이다. 이런 이유로 인권주의자들은 DoH를 옹호하고, 현실주의자들은 DoT를 옹호한다. Google DNS 설정 방법 DNS 설정은...

이더리움 클래식 해킹, 51% 공격에 당했다

2중 지불(double spend) 발생 가상화폐 Ethereum Classic(ETC) 블록체인이 해킹당해, 2중 지불이 일어났다. 51% 공격(51% attack)에 의해 블록체인 거래 내역이 조작(chain reorganization)된 것이다. 블록체인은 개념상 과반수의 확인(confirm)으로 거래의 진정성을 인정하는데, 해당 블록체인의 전체 해시 파워의 절반이 넘는 컴퓨팅 파워를 갖고 있다면 거래 내역을 조작할 수 있는 것이다. 따라서 비트코인(BTC), 이더리움(ETH) 같은 대형 블록체인에 대한 51% 공격은 거의 불가능한 것으로 알려져 있다. 이더리움 클래식은 규모상 18위의 가상화폐이다. 이런 중소형 블록체인에 대한 51% 공격은 종종 일어나고 있는데, 지금까지 Litecoin Cash, Bitcoin Gold, ZenCash(현 Horizen), Verge 등이 당했다. 이중 지불은 하나의 가상화폐를 2번 사용하여 부당한 이득을 취하는 것이다. 이번 사건의 경우에는 해커가 정당한 상대방에게 1번 지불한 다음, 거래 내역을 조작하여 잔고를 회복하고, 이것을 다시 자신이 관리하는 지갑으로 송금했다. 이 사실은 가상화폐 거래소 코인베이스(Coinbase)가 1.5일 이중 지불을 발견하여 모든 ETC 거래를 중지시킴으로써 알려졌다. 이 공격은 현재진행형인데, 아직까지 20건 이상의 이중 지불, 21만 9천 5백 ETC(약 110만 달러)의 손실이 확인됐다. 코인베이스와 그 고객의 자산을 직접 탈취하려는 공격은 없었다. 관련 자료 블록체인 해킹하는 51% 공격 참고 자료 Ethereum Classic (ETC) Hit by Double-Spend Attack Worth $1.1 Million  

게임 Town of Salem 해킹으로 개인정보 유출

취약한 암호화 해시 함수 사용으로 암호 크랙돼 최근 웹 브라우저에서 바로 실행하는 인기 게임 '타운 오브 살렘'에서 대규모 개인정보 유출 사건이 발생했다. 2018.12.28일 해킹된 데이터베이스 사본이 유포되면서 드러났는데, 게임 서비스 사인 BMG(BlankMediaGames)는 2019.1.3에 악성코드를 제거했다. 제거된 악성코드는 php 파일로, 해커에게 백도어를 열어주는 역할을 하고 있었다. 사실상 서버 전체를 장악당했다고 보면 되겠다. 760만 명 가량의 정보가 유출됐는데, 전체 이용자가 800만 명 정도니까 대부분 털렸다고 할 수 있다. 유출된 정보는 이메일, ID, 해시된 암호, IP 주소, 게임 활동 내역, 일부 결제 정보 등이다. 결제 정보에 대해선 BMG 측은 부인하고 있다. 결제 정보는 제3의 결제 처리 업체가 전담하고 있다는 것이다. 유출된 암호는 쉽게 크랙됐다. 암호 복구 커뮤니티 사이트인 hashes.org는 사건 발생 1주일만에 유출된 암호의 27% 가량을 깨트릴 수 있었다. Town of Salem의 암호는 hash되어 salt 처리됐지만, 취약한 해시 함수인 MD5를 사용했기 때문이다. 따라서 피해자들은 암호를 빨리 바꿔야 한다. 비슷한 시기에 암호 관리 사이트인 Abine Blur에서도 개인정보 유출 사고가 있었다. 그러나 이곳의 암호는 암호화-해시-솔트의 방법을 모두 동원하여 견고하게 관리됐다. 해시 함수도 강력한 bcrypt를 사용했다. 크랙 가능성은 희박하다. 관련 자료 Abine Blur 암호 관리 서비스에서 개인정보 유출 사고 참고 자료 Town of Salem Data Breach Exposes 7.6 Million Gamers' Accounts 27% of Passwords From Town of Salem Breach Already Cracked  

Abine Blur 암호 관리 서비스에서 개인정보 유출 사고

클라우드 설정 오류 때문 2018.12.13일 Abine Blur는 고객 정보가 인터넷에 그대로 노출된 사실을 발견하고 조치를 취했다. 이 사이트는 privacy 보호 서비스를 제공하는 곳으로 이메일, 전화 번호, 신용 카드 등을 가려줘서 노출을 방지하고, 여러 가지 암호를 관리하는 기능을 한다. 그런데 데이터를 저장하는 Amazon cloud의 S3 bucket을 실수로 잘못 설정하여 누구나 볼 수 있게 방치했다. 피해자는 2016년 1월 이전에 가입한 사람들로, 이메일, 이름, 로그인 암호 힌트(오래된 MaskMe 제품에 한함), 로그인 암호, 접속한 IP 주소 등이 노출됐다. Blur 로그인 암호는 잘 관리되어 악용 가능성은 거의 없다. 이것은 암호화 후 해시 처리됐고 또 다시 솔트 처리됐다. 그럼에도 불구하고 Abine 측은 만약을 위해 암호를 변경하도록 권고했다. 그 외에 결제수단 정보, 저장된 암호, masking된 가상 이메일, 전화번호 등 주요 정보는 노출되지 않았다. 암호화(encryption)와 해시(hash) 암호화는 해독(복호화, decryption)을 전제로 하는 개념이다. 따라서 시간만 충분히 주어진다면 brute force 공격으로 풀 수가 있다. 반면 해시는 복호화라는 게 없다. 원래 값을 특정 함수로 연산한 값으로, fingerprint(지문) 같은 것이다. 해시 값을 비교해서 두 값의 일치 여부를 확인할 수 있을 뿐, 원래의 값을 알아낼 수는 없다. 하나의 값은 일정한 해시 값을 갖지만, 그 역은 성립하지 않는다. 드물게 해시 값이 같은 복수의 값이 존재할 수 있다. 이런 경우를 해시의 충돌 혹은 중복이라 한다. MD5처럼 취약한 해시 함수는 해시 충돌을 쉽게 찾아낼 수 있다. 해시 함수는 연산 속도가 빠르기 때문에 브루트 포스 공격에 취약하기도 하다. 이러한 해시 충돌 가능성과 브루트 포스에 대한 취약점을 방지하기 위한 것이 솔트(Salt)이다. 솔트는 각 개체에 부여한 고유 값으로, 해시 값의...

가짜 곰플레이어 악성코드 주의

악성 크롬 확장 설치 곰플레이어 설치 파일로 보이는 Gom player.exe가 악성코드를 설치하고 있다. 자동으로 하는 것은 아니고, 사용자의 선택에 따라 공식 크롬 스토어에서 Tampermonkey라는 크롬 확장 프로그램(Chrome extensions)을 설치한다. 이 사실은 크롬과 같은 Chromium 기반의 브라우저인 Opera에서 Tampermonkey를 차단함으로써 알려졌다. 오페라 측은 탬퍼멍키가 확장 프로그램에 허용된 범주 이상의 행동을 보여서 악의적인 것으로 판단했다. Tampermonkey 자체가 악성코드에 감염된 것인지, 단순히 곰플레이어에 의해 이용당한 것인지는 확실하지 않다. 뒤의 경우라면 탬퍼멍키로선 억울할 수도 있다. Powershell을 이용한 악성코드가 많아도 파워셸을 악성코드라고 차단하지는 않기 때문이다. 어떤 경우이든, 탬퍼멍키는 스크립트를 다루는 도구이므로 악용되기 쉽다. 문제의 곰플레이어 설치 파일은 2018.7.11일 Virus Total에 올라왔는데, 60%가 넘는 백신이 악성코드로 진단하고 있다. 그러나 유명 프로그램을 사칭한 경우에는, 백신이 경고를 내보내도 오진으로 생각하여 무시하는 경우도 있어 피해 발생 가능성은 있다. 이 악성 파일은 곰플레이어를 사칭한 가짜일 가능성이 크지만, 정상 곰플레이어 설치 파일일 수도 있다. 무료 프로그램에 번들로 제공되는 프로그램이 악성코드로 밝혀지는 사례는 꾸준히 발생하고 있다. 무료 프로그램 설치 시에는 기본 옵션을 그냥 사용하지 말고, 꼼꼼히 살펴야 한다. Windows 10에서는 마이크로소프트 스토어 앱을 사용하는 게 졸다. 스토어 앱이 마땅한 게 없어 데스크톱 프로그램을 사용하려면, 개발사의 공식 사이트에서 다운로드하는 게 제일 좋다. 차선으로는 Cnet download나 네이버 자료실 같이 비교적 관리가 잘 되는 자료실을 이용하는 것이다. 참고 자료 Opera Blacklists Tampermonkey Extension Being Insta...

크롬캐스트 해킹해 무단으로 영상 재생

이미지
UPnP 악용 최근 구글의 무선 디스플레이 장치인 Chromecast를 해킹해 임의의 영상을 재생하는 사건이 발생했다. 전용 수신기인 Chromecast dongle 뿐만 아니라 크롬캐스트 기능을 내장한 스마트 TV, 스마트 스피커 등 수만 대의 기기가 피해를 입었다. 이번 일을 저지른 해커는, 작년 12월 유튜브 채널 PewDiePie를 홍보하기 위해 5만 대가 넘는 프린터를 해킹했던 적이 있다. IoT 해킹 전문이라 할 수 있다. 표적을 찾아내는 데는 UPnP(Universal Plug and Play) 기능을 이용했다. 공유기(라우터)는 그 자체로 방화벽 역할을 하기 때문에 외부에서 들어오는 연결을 허용하지 않는다. 따라서 서버 운영이나 P2P 등을 이용하기 위해서는 통로를 열어줘야 한다. 수동으로 일일이 통로를 열어주는 것이 포트 포워딩(port forwarding)이고, 이를 기기나 앱이 자동으로 수행할 수 있도록 하는 것이 UPnP이다. 포트 포워딩이나 UPnP를 설정하면 외부 인터넷에서 검색 및 연결이 가능하므로, 보안 측면에서는 구멍이라 할 수 있다. 이전에도 악용된 사례가 있다. 해제하면 좋긴 하지만, 토렌트 같은 일부 앱이나 프린터, 콘솔 게임기 같은 일부 기기가 제대로 작동하지 않을 수도 있어서 불가피한 경우도 있다. 아래 그림은 ipTIME 공유기에서 UPnP를 해제한 예이다. Chromecast 취약점 이용 해커는 Shodan 검색을 통해 UPnP가 활성화된 공유기에서 표적 크롬캐스트 기기를 찾아냈다. 그 후엔 크롬캐스트가 사용하는 포트인 8008, 8009, 8443을 통해 크롬캐스트의 버그를 이용했다. 크롬캐스트의 보안 취약점은 2014년부터 간간이 지적됐는데, 구글은 이를 대수롭지 않게 여겼다. 해커는 크롬캐스트의 미디어 스트리밍을 가로채서 임의의 동영상을 재생시켰다. 뿐만 아니라 기기 이름 바꾸기, 초기화, 재부팅, 저장된 와이파이 목록 삭제, 다른 네트워크에 연결 등을 할 수 있다고 밝혔다. ...

토렌트 사용시 PC나 인터넷 느려짐 해결책

이미지
Torrent는 작업관리자에 수치로 나타나는 것보다 PC나 네트워크에 체감적으로 더 큰 영향을 미친다. PC나 네트워크 성능 이상의 부하가 걸리면 심각하게 느려지는 현상이 나타난다. 해결 방법은 원인에 따라 다르다. PC 자체가 느려질 때 토렌트를 걸어놓은 PC가 전반적으로 느려진 경우에는 PC 자체의 과부하가 원인이다. 토렌트는 네트워크 사용량은 물론 CPU, 디스크 사용량도 많다. 인터넷 뿐만 아니라 일반적인 작업이 모두 느려지는 증상으로 나타난다. 이 경우에는 토렌트 앱에서 최대 접속 피어(peer) 수를 줄여주면 된다. 위 그림은 Windows 10에서 Torrex Pro의 설정 예이다. 기본 값은 순서대로 500, 100인데 확 줄여줬다. 다운로드 위주로 사용하는 사람은 이처럼 작은 값으로 설정해도 문제없다. 피어가 많다고 해서 비례적으로 빨라지지는 않는다. 경험상 10개 남짓한 피어에서 대부분의 다운로드가 이루어진다. 예에서는 접속 가능한 최대 피어 수는 30으로, 토렌트 작업당 최대 피어 수는 10으로 제한한 것이다. 토렌트 작업당 제한은 전체 한도에 도달했을 때만 의미가 있다. 즉 토렌트 작업이 하나라면 30개의 피어에 접속할 수 있다. 이 외에도 동시에 많은 토렌트를 걸어놓지 않는 것이 PC에 부담을 덜 준다. 그리고 이런 모든 방법이 통하지 않는다면 직접적으로 다운로드, 업로드 속도를 제한하는 수 밖에 없다. 인터넷만 느려지거나 끊길 때 공유기를 통해 2대의 PC를 사용하는데, 하나의 PC에서 토렌트를 사용하면 다른 PC에서 인터넷이 느려지거나 끊기는 경우가 전형적인 예다. 토렌트를 사용하지 않는 PC에서 인터넷이 어느 정도 느려지는 것은 당연한 것이다. 그러나 일반적인 웹 서핑도 힘들 정도라면 공유기가 헐떡거리고 있는 것이다. 공유기의 성능은 CPU, RAM 등에 따라 결정되고 가격 차도 크다. CPU가 좋으면 네트워크 요청을 빨리 처리하고, 메모리(RAM)이 크면 더 많은 접속을 처리할 수 있다. 따라서 ...

비트코인 지갑 Electrum 해킹

GitHub에서 다운로드 주의 지난 12.21~27일간 Bitcoin wallet인 일렉트럼의 인프라 시스템이 해킹당해 총 200 비트코인(약 75만 달러 상당)이 넘는 피해가 발생했다. 해커는 일렉트럼의 네트워크에 수십 대의 악성 서버를 연결했다. 일렉트럼 지갑을 사용하는 사람이 비트코인 거래를 시작하고, 이것이 악성 서버에 접속되면, 긴급하게 지갑 앱을 업데이트해야 한다는 가짜 알림을 보인다. 가짜 알림에는 해커의 GitHub에 있는 악성코드를 다운로드하는 링크가 있다. 링크를 클릭하여 변조된 지갑을 설치하면 2단계 인증 코드를 묻는데, 이를 이용해 해커의 지갑으로 비트코인을 전송한다. 해커의 깃허브 계정이 폐쇄되고, 일렉트럼 측이 임시 조치를 취하여 사건은 일단락됐다. 그러나 근본적으로 일렉트럼의 네트워크가 침해당한 것이기 때문에 조만간 재발 가능성이 큰 것으로 예상됐다. 사용자 입장에서는 해킹을 알기 어렵다. 정상적인 지갑 앱 내에서 가짜 알림이 표시되기 때문이다. 공식 사이트가 아닌 깃허브를 통해 업데이트를 하는 것이 수상쩍긴 하지만, 소규모 개발자들은 깃허브를 많이 이용하기 때문에 결정적인 단서로 보긴 어렵다. 어쨌거나 해커들도 깃허브를 많이 이용하므로, 깃허브에서 다운로드할 때는 특히 주의를 기울여야겠다. 참고 자료 Users report losing Bitcoin in clever hack of Electrum wallets