https://kr.leagueoflegends.com/ko-kr/news/dev/dev-null-anti-cheat-kernel-driver-kr/
이번 글에서는 기술적으로 복잡한 내용과 리그 오브 레전드뿐만이 아닌 다른 게임에도 적용되는 부정행위 방지 시스템을 다루는 점 참고 부탁드립니다. 새로운 부정행위 방지 시스템은 리그 오브 레전드에 도입되기 전 (프로젝트 A 같은) 다른 게임에 먼저 도입됩니다.
미국 연방 정부 지원금 미화 2천만 달러가 투입되고 약 8년에 걸쳐 진행된 공동연구에서 굴지의 과학자들은 부정행위의 첫 등장을 기원전 35억 년에서 서기 1985년 11월 20일 사이로 추정했습니다. 부정행위의 정확한 기원은 여전히 불확실하지만, 한 가지 현실은 널리 사실로 인정되고 있습니다. 부정행위는 계속된다는 사실이죠.
지난 20년간 기술의 발전에 따라 부정행위와 부정행위 방지 시스템의 대립은 게임 클라이언트 메모리의 통제권을 차지하려는 정직한 싸움에서 부정행위자의 운영체제나 심지어는 하드웨어까지 변형하는 수법이 동원되는 싸움으로 번졌습니다. 이러한 수법은 부정행위 방지 프로그램이 정상 데이터를 불러오지 못하게 하며, 프로그램이 유저 모드(user-mode)에서 실행되는 경우 이러한 현상은 더 심해집니다.
유저 모드란 무엇인가요?
유저 모드는 운영체제 내의 권한 수준을 나타내며 구체적으로는 소프트웨어가 실행될 수 있는 가장 제한적인 수준입니다. 우리가 사용하는 웹 브라우저나 WinRAR ‘정품’, 즐겨 하는 게임 등은 모두 유저 모드에서 실행됩니다. 유저 모드에서 실행되는 애플리케이션은 자신의 내부만 직접 볼 수 있으며 외부 프로세스의 메모리를 읽거나 쓰려면 보통 운영체제의 네이티브 API에 의존하게 됩니다. 비유를 통해 약간 덜 어렵게 설명해 드리자면, 우리가 (유저 모드에서는) 시킨 부대찌개(리그 오브 레전드)에 어떤 재료가 들어갔는지 알고 싶으면 주방(마이크로소프트 윈도우)에 물어봐야 한다는 의미죠.
누가 “내 핵은 링 0에서 감지되지 않지롱”이라고 말하면 위의 개념을 이야기하고 있는 것입니다.
물론 그 사람은 저 말을 하고 나서 바로 게임 이용 제한 제재를 받겠죠.
최근 몇 년 사이 부정행위 프로그램 개발자들은 자신이 만든 애플리케이션의 전체 또는 일부분을 커널 수준에서 실행하기 위해 취약점을 악용하거나 윈도우의 서명 검증을 훼손하기 시작했습니다. 여기서 문제는 커널 모드에서 실행되는 코드가 데이터를 불러오는 데 필요한 시스템 호출을 가로챈 뒤 감지하기 어려운 방식으로 결과를 변형해 결과가 정상인 것처럼 보일 수 있다는 점입니다. 심지어 직접 메모리 접근1을 활용하는 특수 하드웨어로 시스템의 메모리를 읽고 처리하는 수법도 존재합니다. 이를 완벽하게 해내면 유저 모드에서는 감지가 불가능2할 수도 있죠.
운영 체제를 손상하면서까지 게임을 플레이해야겠다는 발상은 도가 지나치다고 생각하시겠지만, 카이팅을 목적으로 봇넷(botnet, 악성 네트워크)의 일원이 되기를 전혀 서슴지 않는 부정행위자가 충격적일 정도로 많습니다. 현재 매우 많은 부정행위 프로그램이 부정행위 방지 프로그램보다 높은 권한 수준에서 실행됩니다. 다시 주방 비유로 설명해 드리자면, 주방장에게 부대찌개 재료가 유기농인지 물어봤는데 갑자기 수상한 사람이 나타나 자신이 답변할 수 있다고 하며 식당 운영진을 설득한 뒤 “그럼요, 어서 드세요”라고 하는 상황인 셈입니다.
1직접 메모리 접근은 말 그대로 하드웨어가 윈도우 API의 관여 없이 메모리에 직접 접근하는 기능입니다. 몇몇 오래된 부정행위 커뮤니티는 직접 메모리 접근을 활용해 메모리를 별도의 컴퓨터로 중계하고 사후 처리 과정을 거쳐 ESP(다른 플레이어의 움직임이나 위치 등의 정보)를 얻는 수법을 개발했습니다.
2그래서 저희는 이를 감지하는 기법을 개발한 장본인을 고용했습니다.
왜 이러한 정보를 알려주시는 건가요?
부정행위 방지 팀은 지금까지 유저 모드 수준에서만 활동이 가능했습니다. 그래서 사실상 부정행위자에게 매우 유리한 상황이었죠. 그래도 저희는 꼬박꼬박 들어오는 월급과 취침 시간이 정해져 있지 않다는 이점이 있었기 때문에 부정행위와의 싸움에서 두 팔 걷고 나설 필요까지는 없었습니다. 청소년을 상대로 점입가경의 애플리케이션 보안 전쟁을 계속 치르는 것도 나쁘지는 않지만, 게임이 늘어나는 상황(한국어 자막을 켜주세요)에서는 선형적인 시간과 수면 부족이라는 한계로 인해 다른 전략이 필요합니다.
따라서 라이엇에서 앞으로 출시하는 일부 게임에서는 커널 드라이버를 통해 부정행위를 방지할 예정입니다.
걱정이 밀려오는 느낌이 드는데요?
전혀 걱정할 필요가 없는 이유를 말씀드리도록 하겠습니다.
1. 스트레스는 탈모로 이어질 수 있습니다. 저희는 플레이어 여러분의 머리가 따뜻하기를 바랍니다.
2. 저희에게 전에 없던 감시 능력이 추가로 생기는 것은 아닙니다. 가문 대대로 내려오는 김치찌개 비밀 요리법이 궁금하면 유저 모드에서도 충분히 알아낸 뒤 요리 방송에 팔아넘길 수 있습니다. 업그레이드의 목적은 (데이터를 신뢰할 수 있도록) 시스템의 무결성을 확인하고 (실수를 조준 보정 프로그램 탓으로 돌리지 못하도록) 부정행위자가 게임을 함부로 변경하는 행위를 어렵게 하기 위함입니다.
3. 커널 드라이버는 흔한 시스템입니다. 이지안티치트(EasyAntiCheat), 배틀아이(Battleye), 사인코드3(Xigncode3) 등 많은 AAA 게임의 부정행위 방지 시스템에는 이미 커널 드라이버가 도입되었습니다. “이거 한우 맞아요?”라고 물어봤을 때 정직한 답이 돌아올 거라는 확신을 가질 수 있도록 윈도우라는 주방에 라이엇 소속 부주방장을 고용하는 조치라고 생각하시면 됩니다.
4. 시스템 도입 후에는 감지 불가능한 부정행위를 하기가 훨씬 어려워집니다. 새로운 시스템은 플레이어 여러분을 조준 보정 프로그램으로부터, 저희를 레딧으로부터, 부정행위자를 자신으로부터 보호해줍니다.
부정행위 방지는 온라인 멀티플레이어 게임에서 매우 중요한 부분이라고 생각하며, 게임을 플레이할 때 상대의 실력이 진짜인지 의심하지 않아도 되는 세상을 만들어 드리고 싶습니다. 부정행위라는 병에 대한 치료법은 없지만, 최상의 경쟁 경험을 선사해드리기 위해 계속 노력을 아끼지 않을 계획입니다.
오늘은 여기까지지만 알찬 내용이 가득한 [리그 오브 레전드에서 부정행위 없애기]의 후속편으로 무작위 총력전에서 사용되는 봇 프로그램에 대한 이야기와 함께 약 400만 초 후 다시 찾아뵙겠습니다.
(IP보기클릭)116.37.***.***
근데 어차피 트롤행위를 해도 정지 안먹이잖어ㅋㅋㅋ
(IP보기클릭)119.198.***.***
걍 깔끔하게 랭크게임 이용시 본인 휴대폰 번호 등록이랑 트롤촌이나 벤치마킹하자 다른건 잘 가져오면서 왜 가장 중요한 저것들은 안 가져오는건지 원
(IP보기클릭)76.105.***.***
트롤해도 정지 안 먹는 신기한 게임ㅋㅋㅋㅋㅋㅋㅋ
(IP보기클릭)119.198.***.***
계정이 트롤이든, 핵이든 써서 계정 정지되면 그 계정에 등록된 폰 번호는 부계 팔때 못 씀
(IP보기클릭)183.106.***.***
일주일전에 겜하다 버스태워준다고 입털더니 서폿이 실수로 더블킬 뺏어먹으니까 미드 달려서 지게 만든놈이 아직도 매일같이 겜 잘만하고있더라 4인리폿 넣었고 상대팀도 리폿 넣어줬는데 어찌 트롤은 절대 잡히는법이 없냐
(IP보기클릭)116.37.***.***
근데 어차피 트롤행위를 해도 정지 안먹이잖어ㅋㅋㅋ
(IP보기클릭)119.198.***.***
걍 깔끔하게 랭크게임 이용시 본인 휴대폰 번호 등록이랑 트롤촌이나 벤치마킹하자 다른건 잘 가져오면서 왜 가장 중요한 저것들은 안 가져오는건지 원
(IP보기클릭)175.214.***.***
폰번호 등록은 어캐되는거임? | 20.02.04 16:52 | | |
(IP보기클릭)119.198.***.***
루리웹-9928719201
계정이 트롤이든, 핵이든 써서 계정 정지되면 그 계정에 등록된 폰 번호는 부계 팔때 못 씀 | 20.02.04 16:53 | | |
(IP보기클릭)58.72.***.***
똥타2에있는건데 랭겜하려면 본인계정에전번등록해야함 한번연동한 전화번호는 6개월인가 해지못함. 연동해지하면 또 3개월인가 새로 연동하는데 텀있던가 그럼 +트롤로 주의경고 받았는데 또트롤하다 걸리면 6개월에서 30년밴 | 20.02.04 17:28 | | |
(IP보기클릭)183.106.***.***
그럼 도타2는 절대 부계정으로 랭크게임 못하는건가요? ㄷㄷ 겁나 좋은데 왜 다른 게임들은 채용을 안하지 | 20.02.04 17:29 | | |
(IP보기클릭)58.72.***.***
가족번호 쓰면 부계정 가능하긴하죠.... 다만 귀찮아지는것뿐 | 20.02.04 17:30 | | |
(IP보기클릭)121.158.***.***
라이엇의 기술력은 진짜 개똥이라 안급하면 절대 안만듬 | 20.02.04 23:42 | | |
(IP보기클릭)76.105.***.***
트롤해도 정지 안 먹는 신기한 게임ㅋㅋㅋㅋㅋㅋㅋ
(IP보기클릭)218.49.***.***
(IP보기클릭)115.41.***.***
(IP보기클릭)183.106.***.***
일주일전에 겜하다 버스태워준다고 입털더니 서폿이 실수로 더블킬 뺏어먹으니까 미드 달려서 지게 만든놈이 아직도 매일같이 겜 잘만하고있더라 4인리폿 넣었고 상대팀도 리폿 넣어줬는데 어찌 트롤은 절대 잡히는법이 없냐
(IP보기클릭)115.90.***.***
(IP보기클릭)211.104.***.***
커널모드에서 뭘 건드린다고 OS가 쉽게 죽지 않습니다. 커널모드 조차 OS에서 제공하는 것이기 때문에 결국 프로그램 잘못 쓰면 웬만해선 프로그램만 뒤지고 맙니다. 잘못된 오해는 니은니은. | 20.02.05 11:15 | | |
(IP보기클릭)115.90.***.***
정상적인 상황일때는 그렇겠죠 하지만 제가 들어온 롤 프로그램 최적화 수준을 봤을때 그렇게 정상적인 처리를 못할 가능성이 있을거 같아보여서 남긴 글이었습니다. | 20.02.05 13:54 | | |
(IP보기클릭)211.104.***.***
댓글에도 적어뒀지만, OS가 제공하는 기능입니다. 아무리 어플이 개XX을 떨어도 OS가 알아서 다 처리합니다. 해커급의 수준으로 커널모드를 의도적으로 OS 공격을 하기 위해 건드리는 게 아니라면야, 어플이 OS를 죽이는 건 불가능합니다;;; 아무리 롤 클라가 개판이라고 해도, 불가능한 일을 가능한 것처럼 잘못 아시는 것 같아서 댓글을 적은겁니다. 아무리 비정상적인 상황이라도, 롤 클라 자체에서 그런 일을 할 가능성도 낮고, 위에도 적어뒀듯... 그쪽 일을 하던 사람을 불렀으니 더더욱 상관 없습니다. 적어도 전문가일테고, 그 사람이 실수를 한다고 해도, 대부분 감지하고 막기 위한 기능이기에 그런 실수를 할 확률이 높지도 않습니다. 그리고 이 모듈이 개발되면, 롤 클라와는 별개로 백그라운드에서 도는 프로그램이 될 수 밖에 없습니다. 그렇기에 다시 한번 정리를 해보자면... 롤 클라가 개판이라고 해서, 그리고 저 기능이 추가된다고 해서 OS가 죽는다는 것은 거의 웬만해서는 성립 불가합니다. | 20.02.05 14:00 | | |
(IP보기클릭)115.90.***.***
음 글이 계속 길어지는거 같긴한데 윈10을 쓰면서 지금까지 여러번 블루스크린을 봤습니다. 대부분 메모리 주소 관련 에러로 인한 OS크래쉬가 난거였지요 커널모드가 OS에서 제공해준다고 한들 완벽한건 아니지요 프로그램이 User Mode에서만 돌아가게되면 프로그램만 죽고 말겠지만 권한이 더 많은 커널모드에서 메모리 관련 잘못된 연산을 수행하면 바로 블루스크린뜨고 뻗어버리는거죠 OS가 다 알아서 처리 해준다고하지만 여전히 블루스크린은 발생하고 있습니다. 그래서 저는 혹시 그런일이 저쪽에서 비슷하게 발생하는건 아니냐 하는 의견이었던 거구요 | 20.02.05 14:06 | | |
(IP보기클릭)211.104.***.***
그러니깐 저도 댓글에 적어뒀지만... 롤 클라는 롤 클라고, 부정행위 방지 커널은 방지 커널이라는거죠. 롤 클라가 엉뚱한 메모리 건드리는건 롤 클라만의 문제이고... 저 녀석은 저 녀석만의 독자적인 문제입니다. 말씀하신 전제가 "롤 클라가 개판이니, 저거 들어가면 더 개판 되겠네"길래 드린 말씀이죠. 롤 클라와는 별개의 모듈이고, 저 모듈이 개판이라면 그런 일이 생길 수 있겠지만 저 모듈이 롤 클라만큼 방대하지도 않을 것이기에... 웬만해선 그런 일을 만들 확률이 지극히 낮습니다. | 20.02.05 14:11 | | |
(IP보기클릭)115.90.***.***
아 그부분 말하시는거였군요 제가 너무 뭉뚱그려서 글을 적어서 문제였었네요 이해했습니다. | 20.02.05 14:12 | | |
(IP보기클릭)119.56.***.***
좀 잘 모르면.. 에휴 | 20.02.05 19:52 | | |
(IP보기클릭)175.223.***.***
(IP보기클릭)211.104.***.***
대부분의 프로텍팅하는 프로그램들이 커널모드에서 작동하죠. 왜냐면 해킹 프로그램들도 커널 모드에서 노니깐요. | 20.02.05 14:01 | | |
(IP보기클릭)124.53.***.***
(IP보기클릭)211.208.***.***
(IP보기클릭)14.39.***.***
(IP보기클릭)211.203.***.***
(IP보기클릭)211.104.***.***
알아서 잘 하지 않을까 싶네요. 예전 데마시아 도입할 때도 백신 프로그램과 마찰(?)이 있었지만, 해결 했으니깐요. | 20.02.05 14:02 | | |
(IP보기클릭)119.149.***.***
(IP보기클릭)121.163.***.***