MMO에 해킹 메커니즘에 대한 지식이 필요합니까?


10

미래에 (지금은 아닙니다! 지금 먼저 배울 필요가 있습니다) 대규모 멀티 플레이어 온라인 게임 (mmo)을 만들려고하는 그룹 프로젝트에 참여할 계획을 세우고 있다고 가정하십시오. 제 직업은 네트워킹이 될 것입니다. 일부. 나는 네트워크 프로그래밍에 익숙하지 않습니다 (PHP, MYSQL에 대한 매우 기본적인 책을 읽었으며 WAMP 로 조금 엉망이되었습니다 ).

PHP와 MYSQL을 공부하는 과정에서 해킹을 조사해야합니까? 포트 스캐닝, 라우터 해킹 등의 해킹. MMO에서 사람들은 항상 속임수, 봇 등을 시도하지만 최악의 시나리오는 누군가가 데이터베이스를 해킹하는 것입니다. 이것은 이것에 대한 나의 개념 일뿐입니다. 그러나 서브넷 / 포트 / IP (로컬 / 글로벌) / 등과 같은 네트워킹은 상당히 잘 알고 있습니다.

당신의 전문적인 견해로는 (주제를 이해하면 깨달으십시오) 이런 일이 일어날 가능성에 대처하기 위해 이런 것들에 대해 알아야합니까?

또한 내가 언급 한 것 중 (포트 스캐닝, 라우터 해킹) 해킹과 관련하여 살펴 봐야 할 다른 것이 있습니까? 네트워킹의 악의적 / 보안 측면에 익숙하지 않습니다.

그리고 메모 : 나는 해킹하는 법을 배우려고 애쓰는 아이들이 아닙니다. 대학에 가기 전에 가능한 한 많이 배우고 싶어요. 공부해야하는지 정말 알아야합니다.


10
"대규모"로 간주 될만큼 충분히 큰 수로 확장 할 수있는 백엔드 서버 시스템을 작성하는 것은 "네트워크 프로그래밍에 익숙하지 않은"경우 해킹보다 훨씬 큰 문제입니다. 일반 멀티 플레이어 게임뿐만 아니라 MMO 를 만들려고 하십니까?

1
내가 참조; 귀하의 질문에 대한 표현은 실제로이 MMO에서 작업하려고하는 것처럼 들립니다.

7
따라서 네트워킹에 익숙하지 않으며 MMO (계획 할 수있는 가장 어려운 작업)를 수행 할 계획이며 해커로부터 자신을 방어하는 방법을 실제로 배워야하는지 스스로에게 묻습니다. 어 물론 그렇습니다. 그것을 묻는 요점은 무엇입니까?
o0 '.

2
관련, gamedev.stackexchange.com/a/21598/6937 짧은 대답, 반복 개발에 대해 들어 본 적이 있다면 같은 방식으로 학습을 볼 수 있습니다. 보안은 사실 후에 추가 기능으로 작동하는 경향이 있습니다. 안전한 MMO 서버를 만들기 전에 mmo 서버를 만드십시오. 그렇게하기 전에 연결된 게시물에 대한 답변을 읽어보십시오
brandon

1
이것은 미래의 양복과 함께 입을 가장 적합한 넥타이를 묻는 대통령이되고 싶어하는 14 세와 같습니다. 그 아이는 아마도 대통령이되지 않을 것입니다. 비록 그가 그렇더라도 그는 넥타이보다 더 중요한 문제를 겪을 것입니다. "그룹 프로젝트"를 사용하여 MMORPG를 성공적으로 만들지 못할 것이며, 이보다 훨씬 큰 문제가있는 경우.
토마스 보니 니

답변:


16

예, 규모에 상관없이 멀티 플레이어 게임을 개발하는 팀의 누군가 (사실, 여러 명의 누군가)는 하드웨어 및 소프트웨어 수준에서 네트워킹 보안 개념에 대한 실무 지식이 있어야합니다.

이는 대행사의 많은 끈기를 필요로하는 게임에서 특히 그렇습니다. 왜냐하면 그것은 플레이어의 부분에 대한 투자를 구성하고 결과적으로 해커에게 유리한 대상이되기 때문입니다.

대학에서 네트워킹 / 네트워크 보안 / 일반 보안 (크리 토 그래피 등) 수업을 수강하는 것은 앞서 언급 한 개발자 중 하나가되기 위해 필요한 배경 지식을 제공하는 데 도움이됩니다.


11

멀티 플레이어 게임을 작성하기 전에 보안에 대해 아는 것이 좋지만 포트 스캔 및 라우터 해킹 또는 암호화와 같은 것은 이 단계에서 살펴보아야 할 것이 아닙니다 .

오히려, 당신이 알아야 할 것은 신뢰 , 검증견고성 입니다. 심리학, 특히 도전과 보상에 대해 조금 아는 것도 나쁜 일이 아닙니다. 나는 이와 같은 짧은 대답으로 많은 것을 실제로 가르쳐 줄 수는 없지만 안전한 프로그래밍을 시작하는 데 도움이되는 몇 가지 팁이 있습니다.

  • 직접 통제 외부에서 입력 한 내용이 예상과 다를 수 있습니다. 여기에는 모든 사용자 입력, 네트워크를 통해받는 것, 그리고 코드베이스의 다른 부분에서 오는 것까지 포함됩니다. 입력에 포함 되어야 하는 내용이나 침입자 대신 무엇을 제공 할 수 있는지에 대해 생각하지 말고 입력 있는 것과 입력 수있는 입력 을 안전하게 처리하는 방법에 대해 생각하십시오 .

  • PHP와 MySQL에 대해 언급 했으므로 SQL 삽입사이트 간 스크립팅 공격 을 살펴보십시오 . C와 같은 저수준 언어에 익숙한 경우 버퍼 오버플로 공격을 살펴보십시오 . 코드를 막는 방법에 대해서만 생각하지 마십시오. 실수로든 악의로든 실수가 발생하지 않도록 코드를 작성하는 방법에 대해 생각하십시오. 프로그래밍 언어에는 의도 한대로 사용하는 법을 배우면 그렇게 할 수있는 도구가 거의 있습니다.

  • 멀티 플레이어 게임에서는 플레이어의 컴퓨터에서 일부 클라이언트 코드가 실행되고있을 것입니다. 생각에 익숙해 충분히 똑똑하고 판단 사용자는 것을 항상 같은 코드를 손상 할 수 있어야하고 무엇을 할 수 있도록 그들이 원하는. 피할 수 있다면 클라이언트를 신뢰하지 마십시오 . 당신이 그것을 피할 수 없다면, 당신이 할 수있는 한 그것을 믿어야합니다.

  • 모든 계란을 한 바구니에 넣지 마십시오. 게임, 웹 사이트 및 데이터베이스를 별도의 서버에서 실행할 수없는 경우 최소한 별도의 계정으로 실행하고 필요 이상으로 더 이상 액세스 할 수있는 권한이 없는지 확인하십시오. 좋아, 아마 게임과 웹 사이트 모두 사용자 데이터베이스에 액세스해야하지만 관리자 액세스가 필요 하지 않습니까? 아마도 읽기 전용 액세스 이상을 필요로하지 않을 수도 있습니다. 최소한 엄격한 구획화를 시작하지 않더라도 나중에 배치 할 수 있도록 게임을 디자인하십시오. 게임 서버 에서 데이터베이스에 대한 관리자 액세스를 요구 하지 마십시오 . 기억 모든 소프트웨어는 버그를 가지고 있으며, 조만간 누군가의 의지 당신의 보안 구멍을 찾으십시오.

일반적으로 보안에 대해 알아야 할 것은 사고 방식 이라는 입니다. 최신 보안 용어를 알고 있거나 최신 공격이 어떻게 작동하는지 또는 해커가 해킹을하기 전에 어떤 행동을 취해야하는지에 대해 아는 것이 아닙니다.

실제 보안 프로그래밍은 사용하려는 도구를 사용하는 방법을 배우고, 코드를 작게 분할하여 각각의 기능을 이해할 수있을 정도로 작게 나누는 것입니다. 다른 부분은 손상되었습니다.) 및 예상치 못한 코드 작성에 대한 정보 이 모든 작업을 수행하면 해커가 무엇을 시도할지 알 필요 가 없습니다 .


8

개인적으로, 나는 아직 해커에 대해 걱정하지 않을 것이다 .

근거는 간단합니다. 상당히 인기있는 게임이 될 때까지 해커 / 사기꾼을 얻지 못합니다. 즉, 해킹 / 속임수를 할 가치가 있습니다. 먼저 게임을 설립하고 수익을 창출 할 때까지 기다립니다.

해킹하거나 속일 수없는 코드를 속이기 위해 많은 시간을 할애 할 수 있습니다. 또는 정기적 오프 사이트 백업 (어쨌든 수행해야 함)을 수행하고 정기적 인 복원 지점을 생성 할 수 있습니다. 익스플로잇이 발생하면이를 닫습니다.


1
좋은 게임을 만드는 것이 안전한 게임 을 만드는 것보다 우선해야한다는 데 동의하지만 , 일반적인 보안 문제와 일반적인 모범 사례 를 어느 정도 인식하면 처음부터 유지하는 것이 좋습니다. 그렇지 않으면 게임이 시작될 때 그리고 언제 이륙 할 수없는 상황에 처하게 될 수 있습니다. 원래 디자인이 근본적으로 안전하지 않은 경우 나중에 패치를 시도하는 것은 히드라와 싸우는 것과 같습니다. 한 번의 익스플로잇을 닫을 때마다 사기꾼이 두 개를 더 찾아 내고 막는 유일한 방법은 상당한 부분을 다시 디자인하고 다시 작성하는 것일 수 있습니다 처음부터 코드베이스의.
Ilmari Karonen

1
@IlmariKaronen, 나는 개념에 동의하지만 실제로는 아닙니다. 질문의 맥락을 고려할 때, 그들은 일반적으로 네트워킹 학습에 집중해야합니다. 네트워킹을 배우면 암호화에 대해 배우는 경향이 있습니다. 그들은 시작 단계에 있습니다. 보안은 수행중인 작업을 알고 보안 가치가있는 무언가를 생성 한 후에 만 ​​중요합니다. 이런 유형의 질문을하는 사람들은 먼저 확보 할 가치가있는 곳을 찾아야합니다
brandon

1
@IlmariKaronen 나는 전적으로 동의합니다. 보안을 무시한다면 Sony로 갈 것입니다. 소니는 너무 커서 재난에서 살아남 았지만 다른 사람들은 아마도 FUBAR로 갔을 것입니다.
o0 '.

2
@Lohoris. 이 후에는 그대로 두겠습니다. 그러나 이것은 소니가 아닙니다. 이것은 그가 지금 네트워킹의 기초를 배우고 있다고 말한 사람입니다. 보안이 무엇인지 이해하고 나면 보안을 배우십시오.
brandon

예-이것이 가장 좋은 대답입니다. 게임이 대중화되고 보안 문제로 어려움을 겪는 경우 언제든지 추가 개발자 등을 고용하고 네트워크 구성표를 리 팩터하여 더 안전하게 만들 수 있습니다. 나중에 걱정하십시오.
MarkR
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.