Sistema de Proteção para Servidores de Jogos Online Contra Softwares Clientes Não Oficiais



Documentos relacionados
ADMINISTRAÇÃO E SERVIÇOS DE REDE

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Ambiente Virtual de Avaliações Utilizando Certificados Digitais. Fernando Gevard Acadêmico Paulo Fernando da Silva - Orientador

Indústria de Cartões de Pagamento (PCI) Padrão de segurança de dados. Resumo de Alterações da Versão 2.0 para a 3.0 do PCI-DSS

7 DIFERENÇAS ENTRE PABX e PABX IP. Comparativo de recursos e benefícios telefônicos para sua empresa

Guia de Usuário do Servidor do Avigilon Control Center. Versão 5.6

Engenharia de Software II

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO BACHARELADO

Manual de instalação, configuração e utilização do Enviador XML

Submissão Autenticada de Ficheiros ao SIGEX

Sistemas Operacionais. Prof. André Y. Kusumoto

1. TSA Inovação - TSA DT_Arquivo_de_Log_do_Integrador_Separado_por_Thread DT_Central_de_Ajuda_UX9...

SOFTWARE DE SORTEIOS ELETRÔNICOS DE PRÊMIOS DA NOTA FISCAL PARANÁ

Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização

Projuris Enterprise Visão Geral da Arquitetura do Sistema

DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS

Integração de livros fiscais com o Microsoft Dynamics AX 2009

Gerência de Segurança

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade

Vírus e outras ameaças

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Instalação do Sirius sem estações. O primeiro passo é instalar o Firebird 1.5, ele se encontra no CD de instalação do Sirius na pasta Firebird.

Software Planejamento Tributário

Visando atender as diferentes realidades de seus jurisdicionados, o sistema LicitaCon contará com dois módulos para o recebimento das informações.

Permite a coleta de dados em tempo real dos processos de produção, possuindo, também, interfaces para a transferência dos dados para os sistemas

CPG: sincronização entre diferentes dispositivos

Introdução ao Android

Universidade Federal Fluminense UFF Instituto de Computação IC Professor: Orlando Loques Aluno: Alexsandro Mattos Corradi

FERRAMENTA PARA REPLICAÇÃ ÇÃO O DE DADOS NO SGBD POSTGRESQL

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Sistema de Controle de Acesso de Arquivos para Dispositivos Móveis baseado em Web Services

SISTEMA OPERACIONAL - MAC

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS PELA INTERNET Marcelo Henrique dos Santos -

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano.

Ferramenta para detecção de fadiga em motoristas baseada no monitoramento dos olhos

AKNA SOFTWARE. Configurações. de DNS

SERVIDORES REDES E SR1

TRIBUNAL DE JUSTIÇA DO ESTADO DO RIO DE JANEIRO DGTEC- Diretoria Geral de Tecnologia da Informação DERUS- Departamento de Relacionamento com o

PRÓ-REITORIA DE EXTENSÃO, PESQUISA E INOVAÇÃO DIRETORIA DE INOVAÇÃO E PESQUISA FORMULÁRIO II: Relatório de Atividades de Pesquisa

Implantação do Sistema de Controle de Tempos Nas Agências de Atendimento - TMA

UNIVERSIDADE FEDERAL DE PELOTAS

Programação Orientada a Objetos (DPADF 0063)

Manual do Teclado de Satisfação Online WebOpinião

Introdução a Computação

DESKTOP COCKPIT. Nome do Equipamento Modelo Fabricante Nº RIT. HP 1ª a 4ª Gerações Itautec 1ª a 4ª Gerações. Fellipe Bonifácio 19/12/2014

INSTALAÇÃO DO FIREFOX E JAVA PORTÁVEL CUSTOMIZADO PELO TRT DA 13ª REGIÃO

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

ANEXO V Edital nº 03508/2008

PORTARIA Nº 2529, DE 27 DE NOVEMBRO DE 2015

CÂMARA DE VEREADORES DE ITAQUI - RS PALÁCIO RINCÃO DA CRUZ

PowerPoint 2010 para o Office 365 para empresas

Resumo Descritivo dos Conteúdos das Disciplinas de Ementa Aberta para

Prefeitura Municipal de Águas Lindas de Goiás GO ANEXO IV CENTRO DE CONTROLE OPERACIONAL E SISTEMA DE BILHETAGEM ELETRÔNICA

1) DESCRIÇAÕ DO NEGÓCIO

Disciplina: Redes de Comunicação. Curso Profissional Técnico de Gestão e Programação de Sistemas Informáticos. Setembro 2013

Conceitos de Segurança Física e Segurança Lógica. Segurança Computacional Redes de Computadores. Professor: Airton Ribeiro Fevereiro de

NORMAS PARA O USO DE SISTEMA DE PROTEÇÃO FIREWALL DE PERÍMETRO NO ÂMBITO DA REDE INFOVIA-MT

Diagrama lógico da rede da empresa Fácil Credito

Organização Curricular do Curso Superior de Tecnologia em Sistemas para Internet

Descrição do Produto. Altus S. A. 1

Proposta de estudo CNC

Malwares Segurança da Informação. S.O.S. Concursos Prof: Tiago Furlan Lemos

LASERTECK SOFTECK FC MANUAL DO USUÁRIO

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

Soluções em Tecnologia da Informação

REGULAMENTO DA UTILIZAÇÃO DA REDE DE COMPUTADORES DA FACULDADE CENECISTA DE OSÓRIO

Unidade 5: Sistemas de Representação

MODELAGEM DE SISTEMAS DE INFORMAÇÃO

Linguagem Java. Arquitetura e Ambiente de Desenvolvimento. Arquitetura e Ambiente de Desenvolvimento Prof. Anderson Augustinho Uniandrade

Aula 03-04: Modelos de Sistemas Distribuídos

Manual de Rotinas para Usuários. Advogados da União. Procuradoria da União no Estado do Ceará PU/CE SAPIENS. Sistema da AGU de Inteligência Jurídica

SyncEasy Aplicativo para sincronização de arquivos entre dispositivos móveis e computadores utilizando metadados

Computador Digital Circuitos de um computador (Hardware)

Sistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery

MANUAL DE INSTALAÇÃO TETROS MOTO V2. N de Homologação: Versão 1.00

Guia do Usuário Administrativo Bomgar 10.2 Enterprise

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Fraud Prevention for Endpoints.

13/10/11 TIPOS DE UTILITÁRIOS UTILITÁRIOS 0798 INTRODUÇÃO À PROGRAMAÇÃO TIPOS DE UTILITÁRIOS TIPOS DE UTILITÁRIOS

FORMATAR PENDRIVE. Insigne Free Software do Brasil Telefone: (019)

Introdução à Engenharia de Computação

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

Especificação Técnica Sistema ABS TEM+

SISTEMA PARA AUTOMATIZAR O MONITORAMENTO DE ROTEADORES DE UM PROVEDOR DE ACESSO

Transcrição:

Sistema de Proteção para Servidores de Jogos Online Contra Softwares Clientes Não Oficiais Thiago Alexandre Gesser Orientador Paulo Fernando da Silva

Roteiro Introdução Fundamentação Teórica Desenvolvimento Conclusão Extensões Demonstração do sistema

Introdução Jogos online Comunicação

Introdução Jogos online Problemas de segurança Modificações no software cliente Engenharia reversa Resulta em trapaças Problemas se aplicam a qualquer sistema cliente/servidor. Sistemas de segurança atuais Comerciais Burláveis Sistema de segurança desenvolvido Novas técnicas de segurança

Introdução Objetivos Desenvolver um sistema de proteção para servidores de jogos online Impeça a utilização de softwares clientes não oficiais Controle das conexões recebidas pelo software servidor Monitoramento do software cliente.

Fundamentação Teórica - Roteiro Ataques contra a criptografia Criptografia de caixa branca Algoritmos de hashing gerados aleatoriamente Proteção de código Java Atualização dinâmica de código Java Confiabilidade de software remoto Trabalhos Correlatos

Fundamentação Teórica Ataques contra a criptografia Caixa preta Invasor apenas observa a comunicação Duas entidades mutuamente confiáveis Caixa cinza Tenta buscar informações sobre comportamento interno das entidades Algoritmos de criptografia Caixa branca: Entidades de comunicação não mutuamente confiáveis Uma das entidades pode ser um invasor Possui total acesso algoritmo de criptografia utilizado

Fundamentação Teórica Criptografia de caixa branca Técnica de ofuscação de código Impossibilitar extração de informações sobre a chave Chave deve ser espalhadas sobre toda a implementação Compor o algoritmo de maneira aleatória Autenticação de entidades de comunicação não confiáveis

Fundamentação Teórica Criptografia de caixa branca Gerador de AES de caixa branca Advanced Encryption Standard (AES) Algoritmo de criptografia de bloco padrão dos Estados Unidos. Operações de criptografia: SubBytes, ShiftRows, MixColumns e AddRoundKey Recebe como entrada uma chave normal de AES Saída é um AES customizado para a chave de entrada Operações de criptografia do AES podem ser convertidas em tabelas de consulta Rede de tabelas de consulta Chave escondida nas tabelas

Fundamentação Teórica Algoritmos de hashing gerados aleatoriamente Mesmas funcionalidades de algoritmos de hashing comuns Cada versão gerada produz resultados diferentes Autenticação de entidades de comunicação não confiáveis

Fundamentação Teórica Proteção de código Java Classes Java compiladas são fáceis de fazer engenharia reversa Encriptação de classes Não garante proteção JVM não disponibiliza uma maneira nativa de carregar classes encriptadas Ofuscação de código Código compilado menos compreensível Dificulta a engenharia reversa ou até impede Produz o mesmo resultado Menos performance

Fundamentação Teórica Atualização dinâmica de código Java Técnica para alterar as instruções de uma aplicação enquanto ela está executando Máquinas virtuais torna mais fácil. Java - carregadores de classes alternativos Atualização dinâmica de código vindo de qualquer lugar

Fundamentação Teórica Confiabilidade de software remoto Como confiar em um software executado em um ambiente remoto não confiável? Recursos utilizados pelo software sob controle de usuários mal-intencionados memória, processador, dispositivos de entra/saída Verificação da integridade do código Antes de ser carregado Depois de executado Verificação do ambiente de execução Softwares maliciosos, recursos do sistema

Fundamentação Teórica Confiabilidade de software remoto Monitoramento do software remoto Através de um software monitor confiável Autenticidade do monitor Criptografia de caixa branca Algoritmos de hashing gerados aleatoriamente Coleta informações Software remoto e ambiente de execução Envia para o servidor validar

Fundamentação Teórica Trabalhos correlatos GameGuard, NProtect, Coréia HackShield, AhnLab, Coréia GameFort, GameFort, Brasil Ferramentas comerciais Não foi possível fazer um estudo aprofundado GameGuard e GameFort já tiveram a proteção burlada Comunidade do cliente não oficial OpenKore Jogo online Ragnarök

Desenvolvimento - Roteiro Requisitos Especificação Implementação Operacionalidade do sistema Resultado e discussão

Desenvolvimento Requisitos O software cliente só pode ser executado depois que o conteúdo de seu arquivo executável e o estado do ambiente de execução forem validados (RF); O software servidor deve receber apenas conexões de softwares clientes validados (RF); Permitir que sejam feitas validações do estado do ambiente de execução e do software cliente durante sua execução (RF); As validações devem ser feitas automaticamente, sem a necessidade de interação com o usuário do software cliente (RF).

Desenvolvimento Casos de uso uc Serv idor uc Cliente Administrador do serv idor UC01 - Configura e executa a parte serv idor do sistema de proteção Usuário UC04 - Executa a parte cliente do sistema de proteção UC02 - Recebe conexões de clientes v álidos UC05 - Conecta no sistema Softw are serv idor UC03 - Desconecta clientes que se tornam inv álidos Softw are cliente UC06 - Comunica-se com o serv idor

Desenvolvimento - Arquitetura deployment Arquitetura Computador cliente Computador serv idor Monitor Validador Softw are cliente Softw are serv idor

Desenvolvimento Especificação Arquitetura Comunicação Um canal de comunicação de controle N canais de comunicação para a transmissão de dados entre o software cliente e o software servidor Proteção do código do monitor Ofuscado utilizando o JBCO Atualização dinâmica de código Inicialmente, para contextualizar o monitor (ordens do validador) Periodicamente, em intervalos de tempos aleatórios

Desenvolvimento Especificação Arquitetura Validações Utilizam algoritmos de hashing e de AES de caixa branca, ambos gerados aleatoriamente Validação inicial Hash do conteúdo do software cliente Ambiente de execução Autenticidade do monitor Validação periódica

act Validação inicial Monitor Validador Início Executar monitor Conectar-se no v alidador Aceitar conexão do monitor Executar processo de atualização dinâmica do código inicial Obter informações requisitadas pela ordem do v alidador Enviar ordem de validação inicial Gerar o hash das informações obtidas Validador mandou criptografar? Sim Criptografar o hash gerado Não Env iar o hash obtido para o v alidador Valor recebido é válido? Não Desconectar-se do monitor inválido Sim Executa o software cliente Env iar ordem de abrir o software cliente Fim

Desenvolvimento Especificação Trabalhadores Mão de obra que o validador envia para o monitor Mínimo de lógica mantida no monitor Trabalhador de Criação Validador gerencia os trabalhadores Envia trabalhos Valida as respostas Validador Gera e compila Monitor Recebe, instancia e executa Controle total do código do monitor

Desenvolvimento - Trabalhadores class w orker Classes nativas do Java lang::thread -nextworker AbstractWorker - id: int {readonly} - alive: boolean = true - nextworker: AbstractWorker # servercontrolinput: InputStream {readonly} # servercontroloutput: OutputStream {readonly} + run() : void # workerstarted() : void # workerfinished() : void - adjustworkerscirculrlist() : void - handlework(work) : void - answerwork(work) : void - readwork() : Work # executework(work) : byte[] - killworker() : void + setnextworker(abstractworker) : void + getnextworker() : AbstractWorker Work {leaf} - workerid: int {readonly} - worktoken: byte {readonly} - workid: int {readonly} - parameters: byte ([][]) {readonly} + Work(int, byte, int, byte[][]) + getworkid() : int + getworktoken() : byte + getworkerid() : int + getparameter(int) : byte[] + getparameterssize() : int

Desenvolvimento - Trabalhadores

Desenvolvimento - Trabalhadores

Desenvolvimento Especificação Geradores de classes Todo código enviado ao monitor é gerado através de um gerador de classes Trabalhadores Algoritmos de AES de caixa branca gerados aleatoriamente Algoritmos de hashing gerados aleatoriamente

Desenvolvimento class generator obsfuscator::jbco {leaf} - JBCO() + obfuscateclass(string) : void «interface» generator::iclassgenerator + generateclass(writer) : String generator::classgenerationutil - CLASS_PATH: String = System.getPrope... {readonly} {leaf} - ClassGenerationUtil() + generateclasstobytearray(iclassgenerator) : ByteArrayClass «static» generator::classgenerationutil:: ByteArrayClass {leaf} - classname: String {readonly} - classbytes: byte ([]) {readonly} ~ ByteArrayClass(String, byte[]) + getclassbytes() : byte[] + getclassname() : String

Desenvolvimento Implementação Técnicas e ferramentas utilizadas Linguagem de programação: Java 1.6 Ambiente de desenvolvimento: Eclipse 3.6 Geração de código: Apache Velocity 1.6.4 Compilação de código: biblioteca tools, nativa do JDK Algoritmo de compressão de dados: LZMA Ofuscador de código Java: JBCO Testes automatizados: Junit 4.3.1

Desenvolvimento Implementação Gerador aleatório de algoritmos de AES de caixa branca Implementado de acordo com o estudo realizado Testes automatizados Garantir que criptografava como o AES durante o desenvolvimento Classes geradas passam de 2 mb Com o LZMA, passaram a pouco mais de 200 kb Implementação da decriptografia do AES de caixa branca Não estava especificado nos estudos

Desenvolvimento Implementação Gerador aleatório de algoritmos de hashing Criada estrutura de decoradores de filtros de entrada e saída Número de filtros de cada algoritmo gerado é aleatório Filtros gerados aleatoriamente Algoritmo de hashing principal é da própria API Java Escolhido aleatoriamente

Desenvolvimento Implementação Controle de sessão Todo monitor que se conecta no validador recebe uma sessão Cliente invalidado Sessão invalidada Invalidação da sessão Todos os canais de comunicação com o cliente inválido são fechados.

Desenvolvimento Conexão controle

Desenvolvimento Conexão cliente

Desenvolvimento Operacionalidade do sistema Demonstração do funcionamento do jogo online Ragnarök Cliente oficial Cliente não oficial (OpenKore) Demonstração da instalação do sistema de proteção Computador servidor Computador cliente

Desenvolvimento Operacionalidade do sistema Caso 1: funcionamento através do cliente oficial deployment Arquitetura Computador cliente Computador serv idor Monitor Validador Software cliente oficial Serv idor Ragnarok

Desenvolvimento Operacionalidade do sistema Caso 2: bloqueio de cliente não oficial deployment Arquitetura Computador cliente Computador serv idor Monitor Validador Software cliente não oficial (OpenKore) Serv idor Ragnarok

Desenvolvimento Operacionalidade do sistema Caso 3: identificação de ambiente de execução hostil deployment Arquitetura Computador cliente Computador serv idor Monitor Validador Software hostil (WPE Pro) Software cliente oficial Serv idor Ragnarok

Desenvolvimento Resultado e discussão Protegeu o software servidor de clientes não oficiais Possível problema de segurança no monitor Como quase todo seu código é enviado pelo validador, um invasor pode tentar absorver todo esse código e ter seu próprio monitor. A ofuscação de código reforça, mas não garante. O algoritmo de AES de caixa branca poderia ser reforçado ainda mais com bijeções aleatórias.

Desenvolvimento Resultado e discussão Estrutura de trabalhadores Fácil extensão Implementação de outras validações Validações adicionais do ambiente de execução e do software cliente. Implementação de novas ações para o monitor Não foram feitas comparações aprofundadas com os trabalhos correlatos

Conclusão Os objetivos foram atingidos Técnicas tradicionais de segurança não atenderiam Certificado digital Assinatura de código Proteção de qualquer sistema cliente/servidor Não apenas de jogos online Criada uma base para sistemas que visam garantir a confiabilidade em softwares remotos Facilmente estendido Geradores de AES de caixa branca e de algoritmos de hashing aleatórios podem ser utilizados em outras aplicações

Extensões Integrar as bijeções aleatórias no gerador de AES de caixa branca; Aplicar o sistema de proteção em outros softwares, verificando se há impacta no tempo de resposta do software cliente com o software servidor; Implementar novos trabalhadores para a execução de novas validações no cliente; Colocar o sistema de proteção a prova, utilizando qualquer técnica de invasão conhecida; Identificar possíveis falhas de segurança no sistema e propor soluções para elas; Fazer análises mais profundas em outras ferramentas de segurança Comparar os pontos positivos e negativos com o sistema desenvolvido.

Demonstração do sistema