안티 치트

덤프버전 :

1. 개요
2. 원리
3. 문제점
4. 안티 치트 목록



1. 개요[편집]


Anti Cheat
주로 PC 기반의 온라인 게임에서, 악성 사용자(주로 핵)의 게임 파일 변조를 통한 부정행위를 적발하는 기능을 하는 보안 프로그램. 주로 PC 게임에서 사용되며 모바일 버전도 존재하기는 하지만 모바일 기기는 일반적으로 안드로이드iOS나 일반 앱은 모두 샌드박스되어 있어 아래 역할 중 매우 제한적인 기능만 수행할 수 있다.[1] 콘솔 게임의 경우 커스텀 펌웨어를 사용하는 등 변조된 기기로는 온라인 서비스 접속이 제한되는 경우가 대부분이기 때문에 따로 만들지 않는다.

어느 온라인 게임에든 해당되는 얘기지만 으로 부터 완전히 자유로울 순 없다. 게임사가 아무리 게임 파일의 보안을 철저히 한다고 해도 뚫으려는 시도가 이어지면 언젠가는 뚫리기 마련이기 때문. 그러므로 대부분의 게임 개발사들은 게임 파일 변조 자체를 어렵게 하는 기본적인 보안을 유지함과 동시에, 이미 핵을 사용한 악성 유저를 찾아내 제재하는 안티 치트 프로그램을 같이 도입하고 있다. 따라서 안티 치트는 기술적으로 아예 핵을 사용하지 못하게 막기보다는 '핵 사용자를 적발하고 차단하는' 쪽으로 더욱 발달해 있다.

컴퓨터에 저장된 개인정보를 수집하기도 하는데, 금융권의 방화벽 프로그램과 같이 실질적으로 사용자 동의 없이 컴퓨터 사용기록을 수집할 수 있다. 개인정보 수집에 대한 동의를 구하긴 하지만 이는 법적인 기준만 충족시키기 위함이고 동의하지 않으면 서비스 이용 자체가 불가능하다. 그러므로 일부 안티치트에서 과도하고 무차별적인 데이터 수집으로 인한 백도어 논란이 발생하기도 한다.

2. 원리[편집]


안티 치트는 대개 다음과 같은 원리로 작동한다.

  • 클라이언트가 보내는 정보를 감시
게임서버에서 클라이언트가 보내는 정보를 감시하여 핵을 사용하는지 적발하는 것 이다. 원래 규칙에는 없는 동작, 이를테면 게임 캐릭터가 하늘에 날아다닌다거나 [2] 정상적으로는 불가능한 위치정보 변동을 서버에서 감시하는 것 이다. 에임핵의 경우, 플레이어의 에임을 감시하는 방식으로만은 에임핵을 적발하진 않는데, 일반인이 보기에는 핵이라고 생각될 수 있는데 정말 에임이 말도 안될정도로 뛰어난 사람도 존재하기 때문이다. 그래서 보통 게임 회사들은 기술적인 부분에서 다양한 검토를 걸쳐서 핵을 적발하고 밴을 한다. 이 안티치트는 서버사이드에서 작동하기 때문에 서버와 연결이 불안정하여 갑작스럽게 위치가 변하는 경우를 핵으로 판단할 소지가 있다.

  • 게임 클라이언트 무결성 검사
플레이어가 실행중인 게임 클라이언트에 원래 클라이언트에는 존재하지 않는 부적절한 코드가 포함되어 있는지 패키지 검사를 하는 방식으로도 핵 적발이 이루어진다. 하지만 이런 방식은 클라이언트 프로그램 자체를 조작한 핵에만 해당하며, 클라이언트 자체는 조작하지 않았으나 그 게임 클라이언트에 간섭하는 프로세스를 수행하는 별도의 프로그램의 경우까진 적발할 수 없다. 따라서 이 경우엔 아래와 같은 방식이 사용된다.

  • 실행중인 프로세스와 컴퓨터 사용기록 분석
컴퓨터 시스템의 정보, 실행중인 모든 앱과 백그라운드, windows 프로세스를 감시하여 그 중에서 게임 클라이언트에 부적절한 접근, 간섭을 하는 코드를 실행하는 프로그램을 적발하는 것 이다. 가장 강력하고 효과적인 방식이나, 몇가지 딜레마가 존재한다. 일단 프로세스 전부를 실시간으로 모니터링 하다보니 CPU 점유율이 있어서 사양이 낮은 컴퓨터에는 원활한 게임 진행에 방해가 될 수 있으며 너무 지나치게 사용자의 컴퓨터 정보에 접근하는 안티 치트는 개인정보 침해 논란으로도 번질 수 있기 때문이다. 이러한 논란은 EasyAntiCheat 문서에서도 자세히 설명되어있다. 예를들어 VAC의 경우는 사용자의 DNS 캐시, 즉 인터넷 접속 기록을 밸브 서버에 보낸다는 사실이 밝혀진 뒤 개인정보 침해 논란이 있었는데, 단순히 핵 사이트에 들어간 기록이 있을지만 매칭할 뿐 이고 그 외 사용자가 어떤 페이지에 들어갔는지는 보지 않는다고 해명했다. 물론 그렇다고 개인정보 침해를 없던 일로 할 수는 없다. 핵 사이트에 들어간 기록도 엄연한 개인정보의 일부이다.

안티 치트는 게임의 메모리 조작을 방지하고 컴퓨터의 모든 프로세스를 원할하게 검사하고 자가 보호[3]를 위해 커널 모드 드라이버를 사용한다. 게임을 실행할 때 관리자 권한을 요구하는 이유는 안티 치트의 커널 드라이버를 실행하기 위해서다. 다만 커널의 Ring0보다 낮은 단계인 인텔 관리 엔진의 보안 취약점에는 무력화된다. 실제로 인텔 CPU에서만 사용할 수 있는 핵도 있는데, 인텔 관리 엔진의 취약점을 사용하기 때문이다.

대부분의 안티 치트는 가상머신 환경 확인 기능이 들어있다. 가상머신 환경일 경우 게임이 종료된다. 이로 인해 가상머신으로 다중 클라이언트를 돌릴 수 없다.


3. 문제점[편집]


안티 치트에는 심각한 문제점이 여럿 존재한다. 우선 핵 프로그램 적발을 위해서는 사용자의 컴퓨터를 모니터링 하는 것이 필수적이고, 이에 따라 개인정보 유출 문제가 있을 수 있다. 특히 커널 모드 권한으로 사용자 정보를 수집하여 서버에 전달하는 오늘날의 안티 치트 프로그램들은 그 자체로 스파이웨어와 크게 다를 바가 없다.

예를 들면 밸브의 VAC는 핵 프로그램 관련 사이트 접속 대조를 위해 사용자의 DNS를 밸브 본사로 보내 대조하는데, 이로인해 백도어 의혹을 받은적이 있었으며, 블리자드 배틀넷의 워든 역시 스파이웨어 수준의 영역이라고 비판받기도 했다. 특히나 개인정보의 유출을 매우 심각하게 따지는 북미권으로써는 한번쯤 개인정보 유출 우려로 인한 홍역을 겪게된다.

안티 치트의 기능이 너무 침습적이거나 게임실행에 지나치게 관여할 경우 정상적인 게임 플레이가 힘들 정도로 오류를 뿜어대며 기껏 들어온 신규유저들이 너무 심한 버그와 튕김 현상 때문에 게임을 이탈해 결국 게임을 망하게 하는 결과를 낳기도 한다. 비슷한 사례로는 게임 초기의 발로란트뱅가드가 있다. 최근에는 시리즈 최초로 콘솔과 PC의 크로스 플레이를 도입한 피파 23에서 이러한 문제가 나타나고 있다.

개요에서도 선술했듯이 안티치트는 핵 프로그램 방지 목적으로는 효과를 보기 어렵고 핵유저 적발이 목적으로 더 많이 사용되기 때문에, 멀티를 무료로 할 수 있는 게임들에서 효과가 적다는 구조적인 단점을 가지고 있다.

그 밖에도 안티치트 프로그램으로 인해 게임의 전체적인 요구사양이 올라가게 되는 문제라든지, 안티 치트 프로그램을 유지하는데 비용이 많이 들어 게임사에서 수익구조 안정을 위해 과도한 과금 유도를 하는 등의 문제점도 있다.

4. 안티 치트 목록[편집]


  • 가드캣
  • 게임가드
  • 배틀아이
  • 워든
  • 펑크버스터
  • AhnLab HackShield
  • CodeStage
  • Denuvo
  • EA Anti Cheat
  • Fairfight
  • RICOCHET
  • VAC
  • XIGNCODE
  • X-TRAP
  • Xenuine
  • EasyAntiCheat
  • CheatBlocker
  • Nexon Game Security
  • VANGUARD
  • Microsoft Anti-Cheat[4]


파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-12-07 23:58:10에 나무위키 안티 치트 문서에서 가져왔습니다.

[1] 모바일 버전의 기능들은 루팅 여부 확인, 커스텀 롬 감지나 악성앱 차단(핵도 포함한다) 등이다. 안드로이드 자체 보안 기능인 SafetyNet를 주로 사용하는 편이다. SafetyNet는 제조사 순정 펌웨어를 사용했는지 검사하는 기능이다.[2] 물론 대부분의 온라인 게임들은 안티 치트에만 의존하는게 아니라 게임내에서 자체적으로 그러한 조작된 클라이언트의 부적절한 신호 자체를 차단하는등 기술적인 부분에서 핵을 막으려하고 있기 때문에 보통 캐릭터가 날아다닌다거나 하는 수준의 핵 구현은 모 게임을 제외하고는 불가능한 편이다. 이러한 종류의 핵 차단 방식은 게임 서버에 있어야 할 기본적인 기능이다.[3] 자가 보호 기능이 없다면 핵 프로그램은 프로세스 종료 등의 방법으로 안티 치트를 무력화시킬 수 있다.[4] TruePlay Anti-Cheat