[네트워크] TCP 연결과 게임버그

Robert.Yang·2023년 5월 21일
1

Network

목록 보기
31/59
post-thumbnail

이 포스트는 널널한 개발자님 강의를 참조하여 작성한 포스트입니다.

TCP 연결과 게임버그

  • 어떤 MMORPG게임에서 아이템 복제 버그가 발생하였다.
  • 이는 논리적 TCP연결과 물리적 링크간 차이를 이용한 시간차 공격이라 볼 수 있으며 연결이 사실은 End-point의 주관적 판단에 불과하다는 것을 보여준다.

TCP연결이 착각이라고 말했는데 이것과 관련해서 악용한 해킹사례가 있었다.

연결은 사실 End-point의 주관적인 판단에 불과하다. 즉 보안성이 전혀없는 판단이라는 것이다. 그래서 연결이 그 자체만으로 취약하다. 어떤 게임에서 이것과 관련한 버그가 있었다. 어떤 게임이 있으면 서버가 있을 것이고 서버에 사용자들이 접속해 있을 것이다. 예를들면 철수,영희,길동이가 접속해 있다 하자. 여기서 철수는 고렙이고 영희는 저렙이고 길동이라는 적군을 물리쳐야 한다고 하자. 그래서 고렙인 철수는 영희와 연합을 해서 길동이를 물리치고 싶은데 영희는 아이템도 없고 저렙이다 보니 어떻게 할까 생각을하다 이상한 생각을 하게된다.

철수 영희만 볼 수 있는 한적한 공간으로 이동을 한다. 그리고 철수는 아주 좋은 아이템을 길에 버린다. 그러면 철수, 영희 모니터 화면에는 좋은 아이템이 바닥에 버려진 화면을 공유할 것이다. 그리고 철수는 이 아이템을 다시 줍는과 동시에 LAN선을 뽑아버린다. 그러면 어떤 일이 일어나냐면 영희 화면에는 아이템이 바닥에 여전히 버려졌지만 철수는 아이템이 습득되어 있다. 이것을 확인하고 철수는 다시 LAN선을 연결한다. 그럼 TCP연결은 유지됨으로 영희는 이 아이템이 획득이 가능해지고 아이템 복제 버그가 일어난 것이다.

이 이야기를 한 이유가 바로 TCP연결은 주관적인 판단이고 착각이라고 말하고 싶었다. 즉 클라이언트가 SYN을 날려 연결요청을 하고 서버가 SYN+ACK를 날리면 클라이언트는 서버와 연결이 되었다 착각을 한다. 서버는 클라이언트에 ACK가 날라오기 전까지 연결이 안된것임에도 불구하고 말이다. 그래서 TCP연결에 딸려오는 말이 보안성이 없다는 것이다.

profile
모든 것을 즐길 줄 아는 개발자, 양성빈입니다.

0개의 댓글