娇色导航

????

??? ??

Roger Grimes
Columnist

??? ???? ???? ‘?? ?? ?? 7?’

??
2023.10.0210?

??? ??? ??? ‘??’? ?? ?? ? ?? ???? ?? ?? ?? ?? ???? ?????. ?? ????

그렇지만 안티맬웨어 연구원들의 눈을 휘둥그렇게 만드는 참신한 기법 또한 매년 몇 가지씩 꼭 등장하곤 한다. 이런 독창적 테크닉들은 악성 해킹의 지평을 넓히는 선구자들이다. 해킹계의 혁신이라고나 할까? 그리고 다른 모든 혁신이 그렇듯 이들 중 상당수도 단순한 방법을 사용하고 있다.

1990년 마이크로소프트 엑셀 매크로 바이러스를 생각해보라. 스프레드시트 상의 숫자 ‘0’을 교묘하게 알파벳 ‘o’로 바꿔 숫자를 글자로 바꾼 사건이었다. 놀랍게도 이 사건은 오랫동안 아무도 눈치채지 못하다가 백업 시스템에 쓸모 없는 데이터만 저장돼 있다는 걸 깨닫고 나서야 세상에 알려지게 됐다.

요즘 똑똑한 맬웨어 및 해커들도 창의적이다. 보안 연구원으로서 나의 관심을 끈 최신 해킹 테크닉과, 그들을 연구하면서 알게 된 사실들에 대해 소개해본다. 일부는 과거에 나온 테크닉의 연장선에 있지만, 대부분은 관련 분야에 아주 박학한 사용자마저도 속여넘길 만큼 뛰어나다.

1. 가짜 무선 액세스 포인트(wireless access points, WAP)
가짜 WAP만큼 쉬운 해킹 방법도 없을 것이다. 소프트웨어와 무선 네트워크 카드만 있으면 누구나 쉽게 공공장소의 진짜 WAP에 연결된 가짜 WAP를 만들 수 있다.

생각해보자. 누구나 동네 커피숍이나 공항, 기타 공공장소에 가서 소위 말하는 ‘무료’ 무선 네트워크에 연결해 본 경험이 있을 것이다. 스타벅스에서 가짜 WAP에 “Starbucks Wireless Network”라는 이름을 붙여놓거나 애틀랜타 공항에서 “Atlanta Airport Free Wireless”라고 돼있는 무선 네트워크를 제공하면 온갖 사람들이 다 해커의 컴퓨터에 접속하게 될 것이다.

그러면 해커는 그 사실을 모르는 피해자들과 자신의 컴퓨터 사이에 오가는 데이터 스트림 중에서 제대로 보호가 안 되는 데이터를 찾아 공격하는 것이다. 얼마나 많은 데이터가, 심지어는 비밀번호마저도 보이는 글자 그대로 해커의 손에 들어가는지 알게 된다면 아마 경악할 것이다.

좀더 악질적인 해커는 WAP를 사용하려면 새로운 액세스 계정을 만들라고 할 수 있다. 그러면 사용자들 중 열에 아홉은 평소에 사용하는 ID나 이메일 주소, 그리고 다른 곳에서도 함께 사용하는 비밀번호 등을 아무런 의심 없이 입력할 것이다. 해커는 그 정보를 그대로 이용해 페이스북, 트위터, 아마존, 아이튠즈와 같은 주요 포털 사이트나 SNS에 로그인할 수 있다. 아마 피해자는 자신이 어떻게 해킹의 목표가 되었는지조차 알지 못할 것이다.

교훈: 공공 장소의 무선 네트워크를 전적으로 신뢰해선 안 된다. 무선 네트워크로 중요 정보를 보낼 때는 반드시 추가적인 보호 수단이 있어야 한다. VPN 커넥션을 사용하면 모든 내용을 보호할 수 있다. 또 비밀번호 하나를 모든 웹사이트에서 재활용 해가며 사용하는 것도 피해야 한다.

2. 쿠키(cookie) 절도
웹 브라우저에 남는 쿠키는 사용자의 웹사이트 서핑 “내역”을 잘 보여주는 훌륭한 소스다. 웹사이트에서 기기로 보내는 이 텍스트 파일이 있으면 웹사이트나 서비스 업체 등에서 사용자의 방문 기록을 추적할 수 있어 구매 절차 등을 쉽게 만든다. 대체 그게 뭐가 문제라는 걸까?

정답: 해커가 당신의 쿠키를 훔치게 되면, 해커는 마치 당신 자신처럼 행동할 수 있다. 이는 요즘 들어 더욱 자주 일어나는 사고다. 쿠키를 훔치면 쿠키의 원래 주인인 양 웹사이트 상에서 행세하며 진짜 ID와 비밀번호까지 사용할 수 있다.

물론, 쿠키 절도가 어제 오늘 일은 아니다. 그렇지만 요즘엔 툴이 발달해 클릭 몇 번으로도 가능할 정도로 간단해졌다. 예를 들어 ‘파이어쉽(Firesheep)’은 파이어폭스 브라우저에 있는 애드-온 프로그램인데 이를 사용하면 다른 사람의 비보호 쿠키를 훔쳐올 수 있다.

이를 가짜 WAP와 함께 사용하거나 공용 네트워크에서 사용할 경우, 쿠키 절도는 실제로 꽤 쉬워진다. 파이어쉽을 통해 찾고 있는 모든 쿠키의 이름과 위치를 확인할 수 있고, 간단한 마우스 클릭 만으로 해커는 쿠키를 훔쳐올 수 있다.

요즘은 심지어 SSL/TLS 접속을 통한 쿠키조차도 훔칠 수 있게 되었다. 2011년 9월 ‘BEAST’라는 이름의 해킹 공격을 통해 SSL/TLS 접속 쿠키 절도에 성공한 사례가 있었다. 올 해는 그 유명한 ‘CRIME’을 비롯해 기술이 더 발달되고 정교해져서 암호화 된 쿠키 절도 및 재사용도 더욱 쉬워졌다.

새로운 쿠키 공격이 생겨날 때마다 웹사이트 및 애플리케이션 개발자들은 어떻게 이에 대비할 지에 대한 지침을 받는다. 최신 크립토 사이퍼(crypto cipher)를 사용해야 하는 경우도 있고, 사람들이 거의 사용하지 않는 애매한 기능을 없애기도 한다. 어쨌거나 요점은 웹 개발자들이 안전한 개발 테크닉을 사용해 쿠키 절도를 줄여야 한다는 것이다. 만일 당신이 자주 방문하는 웹사이트가 몇 년째 암호화 보안 장치를 업데이트 하지 않고 있다면, 당신도 위험할 수 있다.

교훈: 암호화 된 쿠키도 훔쳐갈 수 있다. 안전한 개발 테크닉과 최신 크립토를 갖춘 웹사이트에 접속해야 안전하다. HTTPS 웹사이트는 TLS 버전 1.2를 포함, 최신 크립토를 사용하고 있어야 한다.

3. 파일명 조작하기
파일명 조작을 통해 악성 코드를 실행시키도록 하는 방식은 맬웨어가 처음 생겨날 때부터 해커들이 써먹어 오던 방법이다. 초창기에는 뭘 모르는 사용자가 눌러보고 싶어지는 파일명(‘애나 쿠르니코바 누드사진.jpg’같은)을 짓거나 여러 개의 파일 확장자명을 사용했다. ‘애나 쿠르니코바 누드사진.Zip.exe 식이다.

지금까지도 마이크로소프트 윈도우나 다른 운영 체제들은 이처럼 자주 사용하는 파일 확장자명을 임의로 숨기기 때문에 ‘애나 쿠르니코바 누드사진.Gif.Exe’라는 파일이 ‘애나쿠르니코바 누드사진.Gif.’ 등으로 잘려서 보일 수 있다.

수 년 전, ‘트윈스(twins),’ ‘스퍼너스(Spawners),’ ‘컴패니언 바이러스(companion viruses)’ 등으로 불린 맬웨어 바이러스 프로그램들은 마이크로소프트 윈도우/도스의 잘 알려지지 않은 기능들을 이용했다. 파일명을 Start.exe 등으로 입력해도 윈도우에서 저절로 Start.com을 찾아 실행하게 되는 기능이었다.

컴패니언 바이러스의 경우 하드 드라이브에 있는 모든 .exe 파일을 찾아 같은 이름으로 된 바이러스를. com이라는 확장자명을 달아서 만들었다. 이 문제는 오래 전에 마이크로소프트에서 시정했지만, 초창기 해커들이 기반을 잘 닦아 놓은 덕에 오늘날까지도 바이러스를 숨기는 방법이 진화하고 있다.

가장 정교한 파일명 조작 방식 중에서도 요즘에는 ‘유니코드 문자’를 많이 사용한다. 이렇게 하면 사용자에게 보여지는 파일명 아웃풋을 바꿀 수 있다. 예를 들어, RLO(Right to Left Override)라고 하는 유니코드(U+202E)는 시스템을 속여 실제로는 애나쿠르니코바누드avi.exe라는 파일명을 애나쿠르니코바누드exe.avi.로 바꿔서 표기하도록 만든다.

교훈: 가능하면 파일을 실행하기 전 진짜 이름을 확인하고 실행하자.

4. 파일 위치를 이용한 속임수
또 다른 흥미로운 해킹 수법 중 하나는 “relative versus absolute”라 물리는 파일 위치를 이용한 속임수다. 윈도우 예전 버전들(윈도우 xp, 2003 혹은 그 이전 버전)과 다른 초창기 운영체제의 경우 파일명을 치고 엔터를 누르거나 운영체제가 파일을 검색하게 되면 다른 폴더를 확인하기 이전에 최근 열었던 폴더나 디렉토리를 먼저 확인하도록 제작되었다. 언뜻 보기에는 효율적이고 무해한 방법 같지만, 해커들은 이런 특징 역시 교묘하게 해킹에 이용했다.

예를 들어, 윈도우에 내장된 계산기를 사용하려 했다고 치자. 파일명은 calc.exe다. 명령(command) 창을 띄운 후 calc.exe를 타이핑하고 엔터를 누르는 것이 클릭을 여러 번 하는 것보다 빠르고 간편하다. 그렇지만 맬웨어가 calc.exe라는 이름의 악성 파일을 만들어 최근 디렉토리나 홈 폴더에 이를 저장해 놓게 되면, calc.exe를 실행시켰을 때 실제 계산기 대신 악성 파일을 실행하게 되는 것이다.

필자는 이 허점을 주로 침투 시험(penetration test)에 즐겨 사용했다. 방법은 이렇다.

컴퓨터에 침입한 후 ‘관리자’로 내 지위를 변경하려면 패치가 되지 않은 취약한 예전 버전 소프트웨어를 임시 파일 폴더에 옮겨 놓는다. 대개 취약한 파일 하나, 또는 DLL만 옮겨 놓고 이전에 설치한 패치 된 프로그램은 그대로 둔 채 임시 파일 폴더에서 파일명을 검색하면 윈도우는 대부분의 경우 최근에 패치가 된 버전 대신 내가 임시 폴더에 설치해놓은 패치 되지 않은 버전의, 트로잔 바이러스가 깔린 파일을 실행하곤 했다.

완전히 패치가 된 시스템조차도 단 하나의 취약점만 있으면 얼마든지 공격할 수 있는 것이다.
리눅스, 유닉스, BSD 시스템 등은 10년도 더 전에 이 문제를 고쳤다. 마이크로소프트는 2006년 이후에 해결했다. 옛날 버전에서는 하위 호환성 문제 때문에 파일 위치로 인한 문제가 여전히 발생하지만, 2006년 윈도우 비스타/2008 버전을 출시한 이후 이 문제를 완전히 고쳤다.

마이크로소프트는 또 개발자들에게 프로그램 개발 시 (상대적 파일명 보다는) 절대 파일명/경로를 사용하라고 수 년간 교육 및 당부해왔다. 그럼에도 수만 개의 오래된 프로그램들은 아직도 이런 공격에 취약한 상태다. 해커들은 이 사실을 누구보다도 더 잘 알고 악용하고 있다.

교훈: 절대적 디렉토리 및 폴더 경로를 사용하는 운영 체제를 사용하고 다른 곳보다 먼저 디폴트 시스템에서 파일을 찾아라.

5. 호스트 파일 리다이렉트(redirect)
요즘 컴퓨터 이용자들은 거의 모르는 사실이지만, ‘호스트(Hosts)’라는 이름의 DNS 관련 파일이 존재한다. 윈도우의 C:\Windows\System32\Drivers\Etc에 위치한 파일인데, 타이핑한 도메인 이름과 해당 IP 주소를 연결하는 엔트리 정보가 담겨있다.

호스트 파일은 원래 DNS가 DNS 서버에 접속하지 않고도 도메인 주소-IP(name to IP) 검색을 할 수 있도록 하기 위한 방법이었다. 그렇지만 대부분의 경우 DNS는 정상적으로 작동을 하기 때문에 대부분 사람들은 호스트 파일의 존재나 필요를 못 느끼고 살아간다.

해커나 맬웨어들은 이 호스트 파일에 악성 엔트리를 입력해 유명한 도메인 이름(예를 들어 bing.com같은 이름)을 타이핑 할 경우 악성 웹사이트로 연결되는 식의 기법을 이용한다. 이런 악성 웹사이트의 경우 실제 가려던 웹사이트와 거의 완벽할 정도로 비슷하게 꾸며져 있어 사용자는 사이트가 바뀌었다는 사실을 알아채기 쉽지 않다.

이 방식은 오늘날까지도 널리 이용되고 있다.

교훈: 왜 자꾸 다른 악성 사이트로 리다이렉트 되는지 알 수 없다면, 호스트 파일을 확인해보자.

6. 워터홀 공격(Waterhole attacks)
‘워터홀 공격’은 너무나 독창적인 공격 방식에서 그 이름이 비롯됐다. 해커는 목표물이 특정 물리적 장소나 가상의 위치에서 자주 만나거나 업무를 본다는 사실에 주목해 이를 교묘히 이용한다. 목표물이 자주 가는 지점을 파악하면 해커는 그 위치를 “오염시켜” 목표를 달성하는 것이다.

좀 더 쉽게 예를 들어보자. 대부분 대형 업체들은 회사 내부에 커피숍이나 술집, 레스토랑 등을 운영하고 있어 직원들이 이용하도록 한다. 해커는 이들 장소에 가짜 WAP를 만들어 회사의 크레덴셜(credentials)을 최대한 많이 모으는 것이다. 아니면 직원들이 자주 방문하는 웹사이트를 악의적으로 수정해 정보를 모으기도 한다. 피해자들은 공격 장소가 공공 장소이거나 소셜 포털 사이트이기 때문에 상대적으로 더 의심하지 않는 경향이 있다.

올해 애플, 페이스북, 마이크로소프트 등 유명 테크놀로지 업체의 개발자들이 자주 방문한 유명 애플리케이션 개발 웹사이트가 이런 식의 공격을 당하면서 워터홀 공격이 유명해졌다. 해커는 개발자들이 자주 가는 웹사이트에 악성 리다이렉트 자바스크립트를 깔아 개발자의 컴퓨터에 맬웨어가 깔리도록 했다. 개발자가 감염된 단말기로 피해 업체의 내부 네트워크에 액세스했음은 물론이다.

교훈: 직원들에게 이 “워터홀 공격”이 해커들이 즐겨 사용하는 공격 방식임을 교육하자.

7. 미끼와 배신(Bait and Switch)
요즘 해커들이 이용하는 방법 중 가장 흥미로운 것이 바로 이 ‘미끼와 배신’ 방법이다. 피해자들은 처음에는 뭔가를 다운로드 받거나 실행하고 있는 줄 알지만 얼마 지나지 않아 이것이 악성 프로그램으로 변하는 식이다.

맬웨어 유포자들은 심심찮게 유명 웹사이트에 광고 자리를 구매한다. 처음 구매를 할 때는 웹사이트 측에 전혀 무해한 링크나 콘텐츠를 보여준다. 웹사이트 측에서 광고를 승인하고 돈을 받아가면, 그 링크나 콘텐츠를 악성 콘텐츠로 바꿔 치기 하는 수법도 있다.

더 기가 막힌 것은 웹사이트에서 광고를 승인한 사람의 IP가 그 링크를 클릭하게 될 경우 악성 웹사이트에서 원래 웹사이트로 다시 돌아가도록 코드를 썼다는 것이다. 이 때문에 더욱 초기에 발견해 없애기가 어렵곤 했다.

내가 최근 목격한 ‘미끼와 배신’ 공격 중 가장 흥미로웠던 케이스는 누구나 다운로드 받아서 사용 가능한 “무료” 콘텐츠를 미끼로 한 공격이었다. 대개 이런 무료 컨텐츠에는 “원본 링크를 남기는 한 자유롭게 사용, 배포를 허락함”이라는 문구가 적혀 있다.

사용자는 일말의 의심도 없이 그 콘텐츠를 다운로드 하고, 원래 링크는 그대로 둔다. 처음에는 이 링크에 대개 그래픽 파일이나 기타 시시한 파일들 외에는 아무것도 들어있지 않다. 후에 악성 코드가 수천 개의 웹사이트에 깔리고 나서야 해커는 콘텐츠를 유해한 자바 스크립트 리다이렉트 같은 악성 콘텐츠로 바꿔 치기 한다.

교훈: 직접 제작한 컨텐츠나 링크가 아닌 이상 항상 주의를 기울여야 한다. 눈 깜짝할 순간에 악성 콘텐츠나 링크로 탈바꿈 할 수 있다.

스텔스 폴아웃(stealth fallout): 완전한 시스템 통제 상실
맬웨어가 처음 생겨났을 때부터 해커들은 스텔스 방식(stealth methods)를 이용해 유해 컨텐츠를 숨겨왔다. 최초의 IBM 호환 바이러스였던 ‘파키스타니 브레인(Pakistani Brain)’은 디스크 편집기에서 볼 경우 사용자를 비수정 부트 섹터(unmodified boot sector)로 리다이렉트하는 방식이었다.

해커가 스텔스 방식을 통해 시스템을 수정할 경우 그 시스템은 더 이상 당신의 것이 아니다. 해커의 것이 된다. 스텔스 공격에 대항하는 유일한 방법은 다른 공격에 대한 대비책과 다르지 않다(꾸준히 패치를 하고, 신뢰할 수 없는 프로그램은 실행하지 않는 등).

그렇지만 만일 감염이 의심되는 상황이라면, 의심을 품고 이를 알아보려 해도 더 똑똑한 맬웨어가 이 과정을 방해할 수 있다. 감염되지 않은 깨끗한 시스템으로 보이는 것이, 사실은 해커가 그렇게 보이도록 만들어 놓은 시스템일 수 있다는 이야기다.

*Roger A. Grimes는 인포월드 테스트센터 전문 기고가로, 보안 전문 컨설턴트이자 마이크로소프트 수석 보안 아키텍트다. dl-ciokorea@foundryco.com

Roger Grimes
Columnist

Roger A. Grimes is a contributing editor. Roger holds more than 40 computer certifications and has authored ten books on computer security. He has been fighting malware and malicious hackers since 1987, beginning with disassembling early DOS viruses. He specializes in protecting host computers from hackers and malware, and consults to companies from the Fortune 100 to small businesses. A frequent industry speaker and educator, Roger currently works for KnowBe4 as the Data-Driven Defense Evangelist and is the author of Cryptography Apocalypse.

? ??? ?? ???