8.13.2014

네트워크 관련 취약점 찾기

By * Joe Graf

최근 기어즈 오브 워 팬과 이메일을 통해 시리즈 세 작품의 네트워킹 품질의 차이점에 대한 이야기를 나누었습니다. 여기서 네트워킹 품질 향상 측면에서 한 가지 짚어볼 수 있는 부분은, 저희가 언리얼 엔진에 내장된 네트워크 시뮬레이션 기능을 사용했다는 점입니다. 이러한 기능을 통해 다양한 네트워크 환경속에서 협동 / 경쟁 멀티플레이어 게임을 테스트해 볼 수 있었습니다. 이는 열악한 환경에서도 최선의 결과를 내는 것은 물론, 네트워크 관련 취약점 관련해서, 출시 후 커뮤니티에서 보고받은 내용에 대해 반응하기 보다는 출시 전 QA 랩에서 발견하는 것이 그 목표였습니다.

엔진에서 사용할 수 있는 세팅은 이렇습니다:

세팅

설명

PktLag

패킷 전송을 지정된 밀리초만큼 지연시킵니다.

PktLagVariance

패킷 전송 지연 시간에 약간의 가변성을 둡니다. 지정된 밀리초만큼 기간을 증감시킵니다.

PktLoss

패킷 손실 시뮬레이션을 위해 나가는 패킷을 지정된 확률로 버립니다.

PktDup

지정된 확률만큼 중복 패킷을 전송합니다.

PktOrder

켜면 패킷을 순서 없이 전송합니다. (1 = 켜짐, 0 = 꺼짐)

이 세팅을 설정하는 방법은 1. 명령줄 인수, 2. 게임 내 콘솔 실행 명령, 3. 엔진 INI 파일, 총 세 가지입니다. 명령줄에서는 다음과 같이 지정합니다:

<SettingName>=<Value>

콘솔에서는 이렇습니다:

Net <SettingName>=<Value>

DefaultEngine.ini 파일을 통한 설정은, INI 파일에 다음 섹션을 추가한 다음 테스트하고자 하는 값을 바꿔줍니다:

[PacketSimulationSettings]

PktLag=0

PktLagVariance=0

PktLoss=0

PktOrder=0

PktDup=0

기어즈 오브 워 개발 도중 매일 빌드에 시뮬레이션 세팅 부분을 만들어, 각각의 랜 기반 플레이테스트에 실제와 같은 네트워크 조건을 구현할 수 있었습니다. 프로그래머 전용 협동 / 경쟁 플레이테스트에는 극한 (왕복 핑 500, 패킷 손실 10% 이상 등) 세팅을 사용하기도 했습니다. 이러한 테스트는 즐기기 위한 게임 플레이용이 아니라, 열악한 조건에서만 나타나는 네트워크 취약점이나 버그를 찾기 위함이었습니다. 이러한 조건이 자연 발생하지는 않을 것 같다 해도, 네트워크 취약점을 악용하는 치터를 방지하기 위한 테스트로는 최선입니다.

커뮤니티에서 취약점을 찾아 공유해 줄 수는 있지만, 이러한 문제 유형에 수동적으로 반응하기 보다는 능동적 대응을 하는 것이 훨씬 낫습니다. PR 및 커뮤니티 관리 팀에서 고마워 할 것입니다.

그러면 즐거운 취약점 사냥 되시길!

Recent Posts

Drive Studio, 언리얼 엔진으로 Fox Sports의 2018 FIFA 월드컵 방송 제작

Drive Studio는 언리얼 엔진의 강력함을 활용해 FOX Sports 채널의 2018 FIFA 월드컵 중계에서 사용할 배경, 중간...

REWIND, 언리얼 엔진으로 가상의 Hacker Hostel에 생명을 불어넣다

가상현실 속에서 Silicon Valley의 Hacker Hostel을 방문해 장난감을 가지고 놀고, 음식을 맛보고, 마음껏 놀아 보세...

Grishin Robotics, 에픽게임즈의 언리얼 엔진과 함께 미래를 향한 박차를 가하다

소비자 로봇 공학 스타트업에 초점을 맞춘 벤처 자본 회사 Grishin Robotics는 에픽게임즈의 언리얼 엔진을 사용하여 로봇 공학...