2014. 8. 13.

네트워크 관련 취약점 찾기

글쓴이 * 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 및 커뮤니티 관리 팀에서 고마워 할 것입니다.

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

최근 게시글

데이터스미스와 언리얼 엔진, Neoscape의 리얼타임 건축 디자인을 주도하다

부동산 시장에서 전략 수립 및 브랜딩에 실시간 기술을 접목한 기업, Neoscape는 데이터스미스와 언리얼 엔진을 탁월하게 활용하고 있...

언리얼 엔진 4.19 프리뷰 1 출시

현재 에픽게임즈 런처에서 언리얼 엔진 4.19의 첫번째 프리뷰를 다운로드하실 수 있습니다. 지금 다운로드하셔서 새로운 기능들을 확

...

에픽게임즈, 총 200,000 달러 규모의 새로운 언리얼 데브 그랜트 수상 발표

인디 게임, 툴, 그리고 애니메이션을 언리얼 엔진으로 제작하고 있는 세계 여러 개발자들을 선정해 언리얼 데브 그랜트를 수여했습니다.