본문 바로가기

security/보안 뉴스

[Sophos Labs] 님다 바이러스의 추억

출처 : Sophos Labs
원본 :
바로가기

이번 주는 악명 높게 퍼져나간 님다(Nimda) 바이러스의 10주년 되는 주입니다.

이번 기사에서, 우리는 그 발발 당시를 되짚어봅니다. 어쨌든, 미국 철학자 조지 산타야나(George Santayana)가 100여 년 전에 경고했듯이, “과거를 기억할 수 없는 사람들은 그것을 반복하여 비난을 받습니다.”

님다 바이러스는 2001년 9월 18일에 처음으로 나타났습니다.

그 바이러스는 의기양양한 시기를 보냈습니다. 그 코드 레드(Code Red) 웜 바이러스는 웜 재배포 전용의 대량네트워크 트래픽과 같은 부수적인 피해로 모든 사람들을 놀라게 하며 7월에 나타났었습니다.

마이크로소프트의 “휘슬러(Whistler)” 프로젝트는 8월에 Windows XP로 제조되어 출시되었습니다.

테러리스트들은 전세계가 지켜보는 가운데 9월11일에 세계무역센터 건물을 공격하여 파괴하였습니다.

그리고 미국 항공기가 포스트-9/11 예방조치 때문에 이륙하지 못하는 동안, 호주는 제 2 항공사인 안셋(Ansett)이 항공기 정전으로 인해 갑자기 동작이 멈췄고, 많은 소포스 시드니 동료들이 어디에도 가지 못하는 티켓을 가지고 멜버른 공항에서 야영을 하는 동료들을 발견한 것을 포함하여 승객들은 그 지역 주변에서 발이 묶여 피해를 입었습니다.

인터넷을 급습한 님다(Nimda)

여러분, 님다가 스스로 모습을 드러내었을까요? 그것은 모든 방법으로 퍼져 나갈 수 있었고, 그렇게 하였습니다: 이메일 연락처로 스스로 발송되고, 웹서버에 침입하여 웹사이트의 모든 파일을 감염시키고, 자동으로 여러분 네트워크를 통해 퍼져나가고, 하드 디스크에 기생하면서 사용하는 프로그램을 감염시키면서 말입니다.

결과적으로 감염된 파일이 여러분 조직 속에 퍼져 활동한다면, 여러분의 네트워크에는 결국 수백 또는 수천 개의 컴퓨터가 감염되게 됩니다. 그리고 각 감염된 컴퓨터(PC든지 서버든지)는 수백 또는 수천 개의 감염되고 손상되거나 수정된 파일을 가지게 될지도 모릅니다.

9월11일 이후 막 한 주일이 지나가면서, 님다는 그것이 사이버테러의 형태일지도 모른다는 많은 생각들을 들게 하였습니다.

바이러스 코드는 아래 텍스트를 포함하고 있습니다.

영어에서는 형용사가 명사 앞에 오기 때문에, 중국 대륙은 RPC가 아니라 PRC로 알려져 있습니다. 이것은 여러분에게 무엇을 말하는 걸까요? 그 에러가 영어를 조금만 아는 중국인에 의한 실수라는 표시일까요? 영어를 조금만 아는 중국인인척하는 프랑스인을 보는 걸까요? 영어를 조금 아는 중국인인척 하는 프랑스인인척 하는 러시아인을 보고 있는 걸까요?

정답은 잦은 맬웨어와 사이버범죄들로 인해 그냥 말할 수는 없습니다. 우리는 10년 전에 언제 님다가 나타날지 몰랐고, 종종 오늘을 얘기할 수가 없습니다.

사이버테러로써의 님다

아마도, 님다 이후 10년 동안 우리는 어느 정도 비난을 누그러뜨렸다는 것을 알 수 있었습니다. 전세계 미국 배우들(로열연극아카데미의 학생을 말하는 것이 아니라 “국가의 지식 서비스에 의해 고용된 해커들”을 말함)은 사이버스파이라고 불리는 것에 참여하고 있는 게 확실합니다.

하지만 우리가 사이버전쟁이나 사이버테러리즘에 대해 무의식적으로 너무 많이 하면, 거의 확실하게 1년에 수십억 달러의 비용이 드는 보통의 평범한 사이버범죄에 비해서, 명백하게 현존하는 위험은 비교적 덜 중요한 것처럼 되 버려서 주의를 기울이지 못합니다.(일이 단순하고 중요할 수 있는데 사실, 단순함이 종종 중요성의 비결이기도 합니다.)

이로운 바이러스는 없다는 것을 증명한 님다

어쨌든 컴퓨터 전문가들에게 님다의 흥미로운 것들 중 하나는 그것의 기생성(다른 파일을 감염시키는 매커니즘)입니다.

기본 기생 맬웨어는 종종 바이러스의 끝에 매달린 원본 호스트 파일을 전달합니다. 좀 더 복잡한 바이러스들은 실행파일의 사용되지 않은 부분에 새로운 코드 섹션 같은 그들의 컨텐트를 주입합니다. - 혹은 심지어 CIHChernobyl 바이러스에서처럼.

님다는 원본 호스트를 여러분에게 전달하는 단순한 접근법을 사용했지만 복잡한 방법으로 하였습니다. 감염된 호스트 내부에 Windows 리소스로써 자신을 탑재 시켰습니다. 그리고 불필요한 복잡성은 종종 올바른 행동에 악영향을 끼칩니다.(만약 바이러스에 의한 어떤 행위가 “옳다고”할 수 있다면 말이죠)

게다가 님다는, 이미 공격당한 파일을 기꺼이 재감염 시킵니다. 그래서 여러분은 결국 님다 안에 임베드된, 님다 안에 임베드된, 님다 안에 임베드된 NOTEPAD 프로그램을 만나게 될 수 있습니다.

물론 튜링기계(Turing Machines)에서만 여러분이 무한한 양의 메모리를 얻기 때문에 무한정한 것은 아닙니다. 하지만 임베딩(embeding)의 레벨은 아주 깊을 수 있습니다. 동료들과 나는 결국 소포스의 바이러스 치료 코드를 테스트하는데 사용하기 위해 각각 250번까지 재감염되는 샘플을 준비하였습니다.

이런 종류의 의도치 않은 부작용은 해가 없는 바이러스가 왜 없는지에 대한 또 다른 기억을 상기시켜줍니다. 왜냐하면 아마도 “단순히 즐기려고” 만든 바이러스 조차도 예기치 않은 버그들을 가지고 있을지도 모르기 때문입니다. 그리고 일단 바이러스가 자발적으로 세상에 퍼지게 되면, 리콜 경고를 내릴 어떤 기회도 없습니다.

그것은 또한 우리에게 바이러스 제작자들이 언제나 수시로 개발을 하는 프로그램 천재들이지는 않다는 것과 괜찮은 보안 회사들이 바이러스 제작자들을 고용하려고 줄을 서지는 않는다는 것을 상기 시킵니다.

님다는 우리가 여전히 옛 실수를 반복하고 있다고 말합니다.

님다 바이러스에서 좀 더 흥미로운 것은 네트워크 확산 기술이었습니다. 네트워크 확산 바이러스가 직면한 하나의 문제는 새롭게 추가된 파일을 실행하기 위해 네트워크상 다른 곳의 사용자들을 어떻게 제어 하느냐 는 것입니다.

님다는 여러분 네트워크에 RICHED20.DLL라는 감염된 DLL을 이용하여 이를 행했습니다. 이런 이름의 DLL은 평문(plain text)보다 좀 더 복합적인 문서를 취급하려고 할 때 다양한 Window 프로그램에 의한 필요에 따라 로드 됩니다.

예를 들어, 감염된 RICHED20.DLL을 DOC파일이 포함된 디렉터리에 넣은 경우에 만약 사용자가 그 디렉터리를 탐색하고 문서를 검사한다면, 님다 DLL은 공식 DLL대신에 로드 될 것입니다. 이는 만약 프로그래머가 명쾌하게 다른 것을 가르쳐 주지 않는 한 Windows는 기본으로 현재 디렉터리에서 DLL을 로드하기 때문입니다.

그리고 이는 내가 단지 이틀 전에 조잡한 DLL 로딩에 대해 작성했기 때문에 흥미롭습니다. 마이크로소프트의 가장 최신 화요일 패치(Patch Tuesday) 업데이트 중 2개가 정확히 이런 종류의 버그를 수정한 것입니다.

10년이 지났는데에도, 우리는 여전히 그것이 애드온 코드 라이브러리들을 어떻게 선택하는 지에 대해서 경솔한 소프트웨어를 만들고 있습니다.

님다는 우리에게 패치에 대해 상기시킵니다.

님다 바이러스로부터 배우는 또 다른 중요한 교훈은 우리의 네트워크 속에서 알려진 결함을 재빨리 패치하는 것이 얼마나 필수적인 것인가 하는 것입니다. 만약 맬웨어가 우리의 첫 번째 레벨의 방어를 뚫지 못하면, 바이러스는 대량으로 공개되지 못해서 내부적으로 배회합니다.

님다는 IIS 웹 서버에서 디렉토리 순회 취약성(directory traversal vulnerability)으로 알려진 것을 사용하면서 웹사이트에 침입하여 감염시킴으로써 그의 전개를 아주 빠르게 가속하였습니다. 웹 서버는 여러분이 서버 자체 데이터 디렉터리 밖에 있는 파일들에는 접근하게 하면 안되어서, 교묘하게 위장했더라도 “../../..”와 같은 캐릭터 시퀸스들에 대해 경계하도록 되어 있습니다.

경로 명(path name)에서 “..”은 “한 레벨 위로 이동”이라는 의미여서, 만약 URI에서 허용된다면, 결코 보여져서는 안되는 파일에 접근하려는 외부인을 허용할 수도 있습니다.

님다가 출현한 이후 한달 뒤, 마이크로소프트는 “’웹 서버 폴더 순회’ 취약성에 대한 패치”라는 보안 권고문(security bulletin) MS01-078를 발표하였습니다.

하지만 이 권고문은 사실상 패치를 발표하지는 않았습니다. 단순히 모든 사람들에게 님다가 나타나기 한달 전에 MS01-057에서 패치가 발표되었다는 것을 상기시켜 주는 발표였습니다.

다시 한번..10년이 지났어도, 적어도 우리 중 몇몇은 여전히 보안 패치에 대해 수주일 동안 적용하지 않고 머뭇거리는 사람들이 있습니다. 내가 전에 썼듯이, 만약 여러분이 그런 습관을 바꾼다면, 아마도 여러분은 변화 관리 위원회(change control committee) 변경 위원(change committee)으로 임명될 필요가 있을 수도 있습니다.

님다는 우리에게 예방이 치료보다 훨씬 낫다는 것을 보여줍니다.

내가 말했었는데, 다시 한번 말합니다. 예방이 치료보다 훨씬 낫습니다.



예방이 치료보다 훨씬 낫습니다. 공감 x 100 입니다!!