• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

스크립터블 오브젝트 질문

23.03.19 16:37 작성 조회수 651

0

안녕하세요 복습하다가 질문드리게되었습니다. 스크립터블 오브젝트는 클라이언트 내에서 에셋으로 생성된 형태이기 때문에 되도록이면 컨텐츠 보안에 민감하지 않은 정보를 담고 있어야 할까요? 예를 들어 무기 아이템의 공격력 정보를 스크립터블 오브젝트에 그대로 담아 놓고 쓰면 보안에 취약한가요?

답변 1

답변을 작성해보세요.

1

수강해주셔서 감사합니다.

보안은 굉장히 다른 문제인데요, ScriptableObject를 떠나서 Local에 있는 모든 Data는 해킹에 취약할 수 밖에 없습니다. dll 주입, 메모리 변조, 크래킹 등 Data가 Local에 있는 이상 언제든지 변조될 수 있습니다.
그렇기 때문에 제대로 돈 들여 게임을 개발한다면 중요 Data들은 Server-Side에서 처리하는게 기본입니다.
하지만 인디 개발자 혹은 인디팀에게 Server 비용은 상당한 부담이죠. call 계산(비용 계산)을 하면서 Server 작업을 하는 것도 일이구요.
그래서 저는 학생분들이나 인디 개발자분들에게 '무조건 뚫린다'라고 생각하고, 수익과 직결되는 현금 아이템만 서버 사이드에서 처리하고, 클라이언트 쪽은 최소한의 보안 처리(난독화, 안티 치트 에셋)만 하고 컨텐츠 개발에 집중하라고 말씀드립니다. 소규모 인디 수준에서 아무리 보안 처리를 해봤자 툴로 메모리 변조하는 것을 어렵게 만드는 것 말곤 크게 의미가 없거든요. 제대로된 보안은 앱 보안만 적게는 수 백에서 많게는 몇 억의 비용이 듭니다.

결론적으로 ScriptableObject에 Data를 담으면 보안에 취약하지만, 당연한 일이기에 특별히 더 취약한건 아닙니다. 만약 보안에 민감한 형태로 처리하고 싶으시면 QuestSystem의 기능을 확장해서 DB-Server에서 Quest 정보를 보내주면 그 정보를 기반으로 Quest를 조립하는 기능을 만드시면 됩니다. 다만 이 경우 QuestSystem이 Module식으로 만들어져있는만큼 제대로 만들기 위해서는 Database 정규화 혹은 NoSQL DB에 대한 지식이 요구됩니다.

마지막으로 앱 보안이 걱정이시라면 걱정하실 필요가 없다고 말씀드리고 싶습니다. 본인의 게임이 해커에게 뚫렸다는 말은 해커가 건드릴 정도로 흥했다는 소리이니, 그때가서 보안에 더 투자를 하든, 수익이 만족스러우면 그대로 냅두든 선택하시면 됩니다. 유명한 Clicker인 TabTitan은 인터넷에 해킹판이 엄청나게 돌아다니지만 따로 보안 업데이트를 한 적이 없죠. 아마 너무나 성공했기 때문에 그럴 필요성을 못 느껴서 그런거라 생각합니다.

감사합니다.




UniUni님의 프로필

UniUni

질문자

2023.03.20

안티 치트, 난독화 처리만 해두고 무조건 뚫린다고 생각하고 편하게 제작해야겠네요 ㅎㅎ 상세한 답변 정말 감사드립니다 !!