Windows Administration

안전한 게임 환경

Matt Clapham

 

한 눈에 보기:

  • 보호되는 폴더 및 레지스트리 키에 대한 쓰기 시도
  • 복사 방지 오류
  • 방화벽 문제
  • 엔터프라이즈 클라이언트 문제

필자는 지금까지 Microsoft에서 보안 프로그램 관리자로 일해 왔습니다. 또한 TechNet Magazine에 보안 관련 기사도 자주 싣고 있습니다. 때문에 보안을 매우 중요시하는 건 당연합니다. 물론 다른 관심사도 많지만 말입니다.

여가 시간에는 Windows® 기반 게임을 즐기기도 하는데, FPS(1인칭 슈팅 게임), 시뮬레이션 게임, RPG(롤플레잉 게임), 실시간 전략 게임 같은 장르를 특히 좋아합니다. 그러나 이러한 게임을 즐기는 데에도 한 가지 철칙이 있습니다. 꼭 필요한 경우가 아니면 관리자 권한으로 게임을 실행하지 않는다는 것입니다. 이는 필자의 친구인 Jesper Johansson과 Aaron Margosis도 마찬가지입니다. 이렇게 하는 데는 네트워크 게임에서 실력 부족이 아닌 누군가의 루트킷 공격에 의한 속도 저하 때문에 패하는 일이 없도록 하려는 이유도 있습니다. 이와 관련해서는 리소스 추가 기사의 Quake 3 Buffer Overflow Advisory(영문)를 참조하십시오.

필자는 이 원칙을 철저히 지키기 때문에 새로 나온 멋진 타이틀을 즐기지 못하는 경우가 많습니다(그림 1 참조). 필자는 SBS(Small Business Server) 도메인에 가입된 클라이언트에서 관리자 계정으로 게임을 설치하고 업데이트한 후 LUA(제한된 사용자 계정)로 실행할 수 없으면 바로 제거해 버립니다. 재미 있는 게임은 많으므로 굳이 이렇게 어설프게 엔지니어링된 게임을 즐길 이유가 없기 때문입니다. 너무 극단적으로 보일 수도 있지만 저는 이 원칙을 고수합니다. 그리고 좀 더 안전하게 게임을 즐기기 위해서는 몇 가지 사소한 원칙을 지키는 것이 좋습니다. 여기서 다루고자 하는 것도 바로 그러한 부분입니다. 따라서 먼저 필자가 경험한 게임 관련 문제와 해결 방법에 대해 설명하겠습니다. 최선의 방법에 대한 간단한 요약은 "제한된 사용자로 게임을 즐기기 위한 팁" 추가 기사를 참조하십시오.

그림 1 수동 업데이트 수행 시 파일 액세스 문제

그림 1** 수동 업데이트 수행 시 파일 액세스 문제 **(더 크게 보려면 이미지를 클릭하십시오.)

일반적인 문제

이러한 권한 문제는 이미 잘 알려져 있습니다. 관리자 권한이 있어야 정상적으로 작동하는 게임과 기타 유형의 프로그램이 많이 있기 때문입니다. "제한된 사용자 계정을 통해 로그온하면 특정 프로그램이 작동하지 않는다"(support.microsoft.com/kb/307091) 기술 자료 문서를 살펴보면 Microsoft에서 제공하는 몇 가지 프로그램을 비롯하여 제한된 사용자로 실행했을 때 문제가 발생하는 게임과 응용 프로그램이 거의 200개나 됩니다.

게임을 설치 또는 업그레이드할 때 관리자 권한을 요구하는 것 자체가 문제라는 이야기는 아닙니다. Windows에서 일상적인 사용자별 설치 기능이 제공되기 전까지 이는 일반적인 요구 사항입니다. 이러한 기능은 머지않아 제공되겠지만 아직은 이 기능이 없는 것이 현실입니다. 어쨌든 게임을 설치하고 업데이트한 후에는 제한된 권한의 사용자를 포함하여 시스템의 모든 사용자가 해당 게임을 실행할 수 있어야 합니다.

보호되는 폴더 및 레지스트리 키에 대한 쓰기 시도 지금까지 가장 자주 발생했던 문제는 보호되는 폴더나 레지스트리 키에 쓰기를 시도하여 시작 시 또는 실행 중에 게임에서 오류가 발생하는 문제였습니다. 이는 여러 Windows 기반 응용 프로그램에서 많이 나타나는 문제이기도 합니다. %PROGRAMFILES% 같은 특정 폴더와 HKEY_LOCAL_MACHINE 같은 레지스트리 하이브의 경우 기본적으로 관리자와 Power Users(더 이상 사용되지 않음)만 쓸 수 있습니다. 이러한 문제로 인해 발생하는 오류는 "오류 42: C:\Program Files\CoolGamesInc\NewestFPS\Logs\에 로그 파일을 쓸 수 없습니다." 또는 "게임이 정상적으로 설치되지 않았습니다. 다시 설치한 후 다시 시작하십시오."와 같이 비교적 파악하기가 쉽습니다. 게임 도중에 진행한 게임 내용을 저장하려 하는 등의 경우에도 이러한 오류 메시지가 표시됩니다. Age of Mythology®처럼 적어도 사용자에게 정상적으로 작동하기 위해서는 관리자 권한이 필요하다는 사실을 알리는 게임도 있지만 MMOG(다중 접속 온라인 게임)는 업데이트가 잦고 자동 업데이트 부분은 기술적으로 문제를 해결하기가 다소 어렵기 때문에 이러한 메시지 없이 바로 권한 문제가 발생하는 경우가 많습니다. EVE Online 평가판을 실행했을 때는 잘못된 위치에 로그 파일을 저장할 뿐만 아니라 게임 콘텐츠 데이터를 설치 폴더에 자동 업데이트하려 하는 문제가 발생한다는 사실을 알게 되었습니다.

복사 방지 오류 게임 실행 오류가 발생하는 일반적인 원인 중 두 번째는 게임에서 기본 제공하는 복사 방지 또는 기타 저작권 침해 방지 기능이 제한된 사용자로 실행하는 경우에 제대로 작동하지 않기 때문입니다. 이 경우 드라이버가 제대로 시작되지 않거나 일부 백그라운드 서비스가 실행되지 않을 수 있습니다. 이 문제의 가장 일반적인 유형으로는 필요한 미디어를 이미 드라이브에 넣었는데도 사용자에게 디스크를 넣으라는 메시지가 표시되는 경우입니다. 또한 관리자만 복사 방지 검사를 제대로 수행할 수 있다는 잘못된 믿음에 따라 관리자 권한을 요구하는 게임도 있었습니다. 심지어 게임의 지원 사이트에 대한 참조도 없는 엉터리 오류 메시지가 표시되는 경우도 있었습니다.

방화벽 예외 요청 실패 요즘에는 로컬 네트워크나 인터넷을 통해 즐길 수 있는 멀티플레이 게임을 쉽게 접할 수 있으며 Windows XP 서비스 팩 2(SP2)에는 응용 프로그램이 네트워크에서 데이터를 수신할 때 사용자에게 이를 알리는 경고 메시지가 추가되었습니다. 이후 필자가 발견하게 된 문제는 방화벽 예외가 필요한 게임이 설치 시에 이러한 예외를 추가하도록 요청하지 않는다는 것입니다. 제한된 사용자는 방화벽 구성을 변경할 수 없으므로 관리자가 구성을 변경하지 않는 한 이러한 경고(그림 2 참조)를 해결할 수 없습니다. 또한 게임의 인터페이스가 아니라 Windows 셸에 경고가 표시되어 문제를 파악하기 힘든 경우도 있습니다. 일반적으로 이 경우에는 게임을 종료하지 않으면 오류 메시지를 볼 수도 없습니다.

그림 2 방화벽 설정으로 게임이 실행되지 않는 경우

그림 2** 방화벽 설정으로 게임이 실행되지 않는 경우 **(더 크게 보려면 이미지를 클릭하십시오.)

엔터프라이즈 클라이언트 문제 제한된 사용자로 실행하는 것과는 직접적인 관련이 없지만 중요하게 살펴보아야 할 다른 문제도 있습니다. 필자는 가정용 컴퓨팅 환경을 소규모 기업처럼 실행하고 있습니다. 여기서 이에 대해 자세히 설명하지는 않겠지만 Jesper Johansson과 함께 쓴 2006년 10월호 TechNet Magazine 기사 "Master Your Domain: Build a Corporate Network at Home"(영문)을 참조하면 자세한 내용을 볼 수 있습니다. 필자는 SBS 2003(R2)을 사용하여 내 문서 폴더에 서버 공유로 리디렉션되는 완벽한 Windows 도메인을 설정했습니다. 그 덕분에 여기서 마지막으로 설명할 일반적인 문제, 즉 엔터프라이즈 클라이언트를 처리하지 못하는 문제를 파악할 수 있었습니다.

이 문제는 Age of Empires® III(AoE3)에서 발생했는데, 제한된 사용자로도 게임을 정상적으로 시작하고 플레이할 수 있다는 개발 팀의 말과는 달리 네트워크를 통해 쓰여지는 로깅 데이터가 많아서 로딩 속도가 느려지는 경우가 있었습니다. 또한 게임을 종료할 때마다 AoE3의 구성, 저장된 게임 및 게임 진행 내용을 잃게 되었습니다. 해당 파일이 내 문서 폴더에 있었지만 게임에서 파일을 제대로 로드하지 못한 것입니다. 특히 AoE3이 시리즈의 이전 타이틀에 비해 훨씬 더 LUA 친화적이라는 점을 감안할 때 이는 매우 실망스러운 결과였습니다.

이러한 엔터프라이즈 클라이언트 문제에 대해 적어도 경고 메시지가 표시되는 게임이 딱 하나 있었습니다. Fable®: The Lost Chapters™를 실행하자 원격 내 문서 폴더가 지원되지 않는다는 메시지와 함께 정상 종료되었습니다. 그래서 개발 팀에게 지원되지 않는 시나리오를 인정하고 실행 환경에서 제외하라고 제안했습니다. 그런데 내 문서 폴더에 몇 메가바이트의 데이터만 저장하면 되는데 게임이 실행을 중단하는 방식으로 동작하는 건 쉽게 납득이 가지 않았습니다.

간단한 해결 방법

지금까지 설명한 문제들은 기억할 수도 없을 만큼 많은 게임에서 자주 발생했습니다. 하지만 다행히 그 중 대부분은 간단한 방법으로 해결할 수 있었습니다. 필자가 가장 즐겨 사용하는 방법은 게임을 모두 제거하고 다른 업체에서 제공하는 같은 장르의 LUA 지원 게임으로 바꾸는 것입니다. 뭐, 너무 극단적인 방법일 수도 있고 새 타이틀을 구입하는 데 드는 비용과 포장을 이미 뜯어 환불 받을 수도 없다는 점을 생각하면 그리 좋은 해결 방법은 아닙니다. 따라서 문제를 해결할 수 있는 필자의 다른 비법을 소개하겠습니다.제한된 사용자로 게임을 즐기기 위한 팁

  • Windows Vista로 업그레이드하십시오.
  • 게임을 구입하기 전에 데모를 실행해 보십시오. 그러면 정식 버전에서 발생하는 모든 LUA 문제를 확인할 수 있습니다.
  • LUA로 실행했을 때 문제가 발생하는 것으로 알려진 프로그램 목록을 확인하십시오.
  • Designed for Windows 로고가 부착된 게임을 구입하십시오.
  • 설치 후 제한된 사용자로 실행하기 전에 게임을 업데이트하십시오.
  • 제한된 사용자로 게임을 실행할 수 없는 경우 공급업체의 기술 지원 서비스 담당자에게 문제에 대해 알리십시오.
  • 꼭 필요한 경우 시스템 로컬 Power User 계정을 사용하십시오.

복사 방지 문제 해결 우선 복사 방지 드라이버 문제를 해결해 보도록 합시다. 복사 방지 시스템이 필요하긴 하지만 그렇다고 해서 관리자가 아닌 사용자가 게임을 실행하지 못하도록 차단해서는 안 됩니다. 대부분의 게임은 드라이버를 설치하여 원본 게임 디스크를 확인하는 Macrovision의 SafeDisc 복사 방지 메커니즘을 사용합니다. 이 드라이버는 기본적으로 요청 시에만 시작되도록 구성되는데, 이 기능이 바로 제한된 사용자로는 실행할 수 없는 기능입니다. Microsoft와 Macrovision에서 이에 대한 픽스를 배포했지만 다른 해결 방법도 있습니다.

  1. 관리자 계정을 사용하여 장치 관리자를 엽니다.
  2. 보기 메뉴에서 숨김 장치 표시를 선택합니다.
  3. 비 플러그 앤 플레이 드라이버 노드를 확장합니다.
  4. 보안 또는 SecDrv 드라이버의 속성(그림 3 참조)을 엽니다.
  5. 시작 유형을 자동으로 변경합니다.

그림 3** 복사 장비가 정상적으로 실행되도록 설정 **(더 크게 보려면 이미지를 클릭하십시오.)

이제 컴퓨터를 부팅할 때 드라이버가 실행되므로 사용자가 디스크를 넣었을 때 게임이 정상적으로 실행됩니다.

파일 시스템 및 레지스트리 액세스 문제 해결 파일 시스템 또는 레지스트리에 대한 무제한 액세스를 전제하는 문제는 게임뿐만 아니라 다른 많은 최신 프로그램 및 기존 프로그램에서 찾아볼 수 있습니다. Aaron Margosis는 "Problems of Privilege: Find and Fix LUA Bugs"(영문) 기사에서 관리자 권한을 요구하게 되는 다양한 문제의 해결 방법을 자세히 설명하고 있으므로 참조하시기 바랍니다.

액세스 문제는 추적하기가 다소 어려울 수 있지만 필요한 파일, 폴더 및 레지스트리 키를 파악하고 나면 제한된 사용자가 게임을 할 수 있도록 ACL(액세스 제어 목록)을 쉽게 구성할 수 있습니다. 이러한 문제는 다음과 같은 방법으로 대부분 해결되었습니다.

  1. microsoft.com/technet/sysinternals(영문)에서 Filemon 및 Regmon의 최신 버전을 다운로드합니다.
  2. 이 두 가지 도구를 관리자로 실행하여 로그를 수집하도록 합니다.
  3. 관리자로 게임을 몇 분 간 실행하면서 새 캠페인 시작, 게임 저장, 네트워크 게임 호스팅 같은 가장 일반적인 작업을 수행해 봅니다.
  4. Filemon 및 Regmon에서 결과를 필터링하여 테스트한 게임에서 발생한 액세스만 표시합니다.
  5. 필요에 따라 해당 폴더 및 레지스트리에 대한 ACL을 구성합니다.
  6. 관리자 이외의 사용자로 게임을 실행하여 정상적으로 작동하는지 확인합니다.

ACL을 구성할 때 주의를 기울여야 할 점이 있습니다. 바로 너무 광범위하게(예: Everyone—모든 권한) 열거나 너무 상위(예: HKEY_CLASSES_ROOT)에서 열어서는 안 된다는 점입니다. 또한 %SYSTEMROOT% 및 %PROGRAMFILES% 같은 시스템 폴더에 대한 사용 권한을 변경하면 Windows가 전체적으로 손상되거나 시스템이 안전하지 않은 상태가 될 수 있으므로 변경하지 않는 것이 좋습니다.

시스템 로컬 Power User로 게임을 실행하는 방법으로 문제를 해결할 수도 있습니다. 필자가 선호하는 방법은 아니지만 시스템의 로컬 계정을 사용하면 문제가 발생할 경우 영향을 받는 범위가 단일 워크스테이션으로 한정되므로 보다 안전합니다. 이 방법은 관리자로 실행하는 것 외에는 방도가 없어 보이는 대부분의 게임에서 효과가 있었습니다.

다른 이야기이지만 관리자로 게임을 잠깐 실행하면 간편하게 자동 업데이트를 실행할 수 있다는 사실을 알게 되었습니다. 필자의 경우 보통 게임을 관리자로 실행하고 업데이트 옵션을 호출한 다음 게임을 종료하고 다시 제한된 사용자 계정으로 게임을 실행합니다. Windows Vista™의 경우 원래 공급업체에서 서명한 패치에 한해 제한된 사용자가 응용 프로그램을 업데이트할 수 있습니다.

Windows Vista를 사용하면 게임이나 기타 응용 프로그램에서 파일 및 레지스트리 액세스 문제를 해결하는 데 도움이 됩니다. 제한된 사용자로 실행되는 프로그램에는 기본적으로 잘못 인식된 파일 및 레지스트리 액세스를 사용자별 캐시로 리디렉션하는 가상화 shim이 설정되어 있습니다. 개인적으로 Windows 9x 시대에 개발된 게임(예: The Neverhood)이 사용 권한 문제로 인해 Windows XP에서는 제대로 실행되지 않았지만 Windows Vista에서는 기본 shim을 사용하여 완벽하게 작동되는 경우를 많이 보았습니다. 그리고 앞으로 문제가 발생한 다른 게임들도 Windows Vista에서 테스트해 볼 예정이지만 Windows Vista에서 정상적으로 작동되지 않는 게임은 찾기 어려울 것 같습니다.

방화벽 문제 해결 방화벽 문제는 게임을 처음 설치할 때 해결하는 것이 가장 좋습니다. 그러나 게임 설치 프로그램이 필요한 방화벽 설정 변경 사항을 사용자에게 물어 구성할 정도로 잘 만들어지지 않은 경우 다음과 같은 방법으로 문제를 해결할 수 있습니다.

  1. 관리자로 로그온합니다.
  2. Windows 방화벽 제어판을 엽니다.
  3. 방화벽 예외 목록에 추가할 프로그램을 선택합니다.
  4. 메시지가 나타나면 원하는 게임을 게임 실행 파일을 목록에서 선택하거나 탐색하면 됩니다.

게임 실행 파일을 방화벽 예외에 추가하면 게임이 정상적으로 작동하는 데 필요한 모든 포트에 액세스할 수 있습니다. 그리고 마음껏 게임을 즐기기만 하면 됩니다.

엔터프라이즈 클라이언트 문제 해결 엔터프라이즈 클라이언트에서 실행하는 게임의 문제는 언젠가 영원히 사라질 것입니다. 여러 대의 컴퓨터와 광대역 연결을 사용하는 가정이 늘어나고 SBS를 집에서 실행하는 사용자가 증가하고 있기 때문입니다. 그러나 현재로서는 이 문제에 대한 해결 방법이 필요합니다.

필자의 경우에는 시스템 로컬 LUA를 사용하여 리디렉션된 내 문서 폴더의 문제를 해결할 수 있었습니다. Age of Empires III과 Fable: The Lost Chapters는 모두 내 문서 폴더가 네트워크 폴더로 리디렉션되지 않는 한 제한된 사용자로도 문제 없이 실행할 수 있습니다.리소스

결론

제한된 사용자로 실행하면 관리자로 실행할 때 발생할 수 있는 보안 문제를 방지하는 이점을 얻을 수 있습니다. 엔터프라이즈 환경에서 연결되어 있거나 최소한의 권한만 사용하는 경우에 게임을 실행하기가 다소 어려울 수도 있지만 절대 불가능한 것은 아닙니다. 지난 몇 년 동안 필자는 제한된 사용자로도 정상적으로 작동하는 게임을 각 장르별로 많이 찾아냈습니다. 또한 문제가 발생한 다른 타이틀에서 이를 해결할 수 있는 몇 가지 방법도 알아냈습니다. 게다가 Windows Vista의 가상화 기능을 활용하면 Windows XP에서는 제한된 사용자로 즐길 수 없었던 게임을 다시 한번 즐길 수 있게 됩니다.

Matt Clapham은 Microsoft의 보안 프로그램 관리자로서 Seattle IT Security 커뮤니티에 적극적으로 참여하고 있으며 IT 인큐베이션 프로젝트의 위기 관리 팀원이기도 합니다.

© 2008 Microsoft Corporation 및 CMP Media, LLC. All rights reserved. 이 문서의 전부 또는 일부를 무단으로 복제하는 행위는 금지됩니다..