더북(TheBook)

5.8.3 서버 컴퓨터 해킹

게임 클라이언트로 해킹하는 것과 마찬가지로 게임 서버도 종종 해킹 대상이 됩니다. 특히 게임 서버가 해킹되면 그 피해가 막대합니다. 클라이언트를 해킹하면 한 사람이 피해를 보지만, 서버에서는 모든 유저가 다 위험해지기 때문입니다. 클라이언트를 해킹할 때와 마찬가지로 서버 쪽 운영체제나 응용 프로그램 결함이나 보안 설정의 구멍을 이용하여 해킹합니다. 서버 컴퓨터가 해킹 당하지 않으려면 앞서 살펴보았던 유지 관리를 해야 합니다.

서버 고유의 역할인 웹 서버나 데이터베이스 서버에서는 클라이언트와는 다른 종류의 해킹을 추가로 예방해야 합니다. 질의 구문 인젝션(query injection) 등을 예로 들 수 있습니다. 이를 막기 위해 질의 구문 문자열 조립을 하지 말아야 한다는 등 여러 가지를 할 수 있는데, 자세한 것은 7장에서 설명하겠습니다.

게임 서버에는 일반적인 유저가 접속할 수 있는 리스닝 포트를 제외하고 모두 방화벽으로 막아 버려야 합니다. 방화벽은 일종의 네트워크 기기입니다. 여러 종류의 통신이 오가는 것을 중간에서 감시하거나 불필요한 통신을 차단하는 역할을 합니다. 뒤에서 설명하겠지만, 데이터베이스처럼 일반적인 유저가 접속할 일이 없는 서버에서는 아예 일반 유저가 접속조차 할 수 없게 방화벽으로 막는 것이 좋습니다.

이외에도 해야 할 일은 무수히 많으며 계속 늘어나고 있습니다. 창과 방패 싸움입니다. 해커들은 더 다양한 공격 수단을 만들어 내고 이에 맞대응해서 우리도 다양한 방어 수단을 갖추어야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.