terça-feira, 30 de dezembro de 2008

Ataques Denial of Service (DoS)

Por mais patético que pareça fiz meu último post de 2008 sobre ataques DoS. Como continuo sendo o mesmo preguiçoso de sempre irei colar mais uma descrição da Wikipedia...
Um ataque de negação de serviço (também conhecido como DoS, um acrônimo em inglês para Denial of Service), é uma tentativa em tornar os recursos de um sistema indisponíveis para seus utilizadores. Alvos típicos são servidores web, e o ataque tenta tornar as páginas hospedadas indisponíveis na WWW. Não se trata de uma invasão do sistema, mas sim da sua invalidação por sobrecarga.
Recentemente tive uma injeção de conhecimento sobre DDoS, pois junto com as sources do DK2 vieram varios inimigos.

UDP Flood:


Primeiro ataque que o meu valente servidor dedicado sofreu foi um flood de UDP. Como meu DC na epoca (Hivelocity) não oferecia nenhum tipo de filtragem contra qualquer forma de DoS a nivel de rede resolvi migar para Sharktech (...além de bandwidth ilimitado, hardware e preço similares).

Ao contrario do TCP onde uma conexão deve ser estabelecida e autenticada (para sabermos que não se trata de um spoof) o sistema quando recebe um packet UDP tenta procurar qual programa tem sock listen na porta desejada. Como normalmente o flood é feito em portas aleatorias e esse protocolo é pouco usado provavelmente não se deve ter nada nessa porta, então além do flood comer a conexão do seu server ainda toma seu poder de processamento.

Até então eu não sabia muito sobre ataques Denial of Service (DoS) e a filtragem da Sharktech funcionou perfeitamente para o UDP flood.

TCP Flood:

Alguns dias depois meu servidor ficou aparentemente offline, entrei em contato com o suporte e eles me disseram que tudo funcionava normalmente quando eles conectaram. Isso porque eles usam KVM (ou qualquer outra ferramenta de administraçao remota por hardware) pois depois de muitas tentativas consegui conectar no SSH .

Descobri milhares de conexões sendo feitas na porta do SSH, Apache, DarkEden (login, game, shared) e etc...

Examinando o log do Apache encontrei a causa do erro:

"Server ran out of threads to serve requests"

Mesmo com syn_cookies ativado eram tantas conexões sendo feitas que faziam conexões verdadeiras serem rejeitadas pois o limite maximo de memoria que o sistema operacional aloca pra isso se esgotava.

Claramente eu estava encomodando tanto essas pessoas que eles se deram o trabalho de criar algum tipo de virus de botnet. No primeiro dia do ataque meu servidor recebia conexões de 170 IP's diferentes, no terceiro dia de ataque já passavam de 3500 bots, todos localizados na China. Não se tratava de um Syn flood pois as conexões eram realmente estabelecidas.

Depois de uma semana e meu iptables com 300 regras (criadas pelo meu amigo bart) conseguimos defender o DDoS.

Esses foram so alguns ataques que o DarkEden Extreme sofreu, gostaria porém não tenho mais saco para esse tema maldito.

sábado, 29 de novembro de 2008

43 coisas para a minha vida

Apesar de eu achar a ideia proposta pelo site muito interessante, não estou fazendo esse post com a intenção de divulgá-lo, por tanto irei colar a descrição dada pela Wikipedia:
43 Things or 43things.com is a social networking web site that is built on the principles of tagging, rather than creating explicit interpersonal links (as seen in Friendster and Orkut). Users create accounts and then list a number of goals or hopes; these goals are parsed by a lexer and connected to other people's goals that are constructed with similar words or ideas. This concept is also known as folksonomy. (http://en.wikipedia.org/wiki/43_Things)
Um pouco mais de 1 ano atrás me registrei no 43T, e tão logo fiz a minha lista com as 43 coisas coisas que eu tinha certeza que queria para minha vida. Esses dias lembrei da tal lista e resolvi dar uma olhada, nada de resoluções idiotas de fim de ano fui dar uma olhada como quem não queria nada mesmo...

Alguns itens dessa lista insana:

Quit my job

Nem eu lembro qual era o emprego que eu tinha na epoca......

be where I should be in my life.

Onde seria isso?

be crazy for a while

Mais do que já sou normalmente?

Ainda assim alguns eram muito bons, como esse por exemplo:

Spend less time fooling around on the net and more time actually working

:)

domingo, 19 de outubro de 2008

Como funciona o DarkEden


Como prometido no meu último post sobre DarkEden, eu vou falar um pouco mais sobre as sources do DK2. Por ser meu game preferido eu gostaria de ter boas coisas para falar dos desenvolvedores do DarkEden. Infelizmente essa não é a realidade.

As sources do DarkEden foram feitas para rodar em Linux 2.4 e serem compiladas com GCC 2.95. O projeto inteiro do DarkEden não faz uso de programação orientada a objetos, tem excesso de exceptions com péssimo tratamento e a modelagem do banco de dados é uma piada.

O servidor do DarkEden é composto de 5 elementos, sendo 3 essenciais.

O primeiro é o login server que recebe o id e a senha do player, caso corretos ele gera uma chave de autenticação e passa o ip do game server desejado para o player.

Depois temos o game server, que em outros jogos também é chamado de "map server", este é responsavel por colocar online o jogo em si.

E por último mas não menos importante existe o shared server, este por sua vez é responsavel por manter a conexão entre diferentes game servers que fazem uso do mesmo banco de dados.

Ainda existem o update server e o billing server que não usados, no DK2 é utilizado o updater do NeoSteam (outro game da mesma empresa que vazou o DarkEden) e um servidor de venda de itens chamado Power Jjang que eu não tenho as sources.

Talvez no futuro eu crie um post falando sobre as sources do client do DK2.

sexta-feira, 3 de outubro de 2008

Porque eu odeio anime

Animes não são nada geniais, são simplesmente retardados. Se formos parar e pensar na anatomia de um anime, tudo se resume a faces desproporcionais (olhos grandes, pequeno ou nenhum nariz) e animações mal feitas.

Os animes são tão ruins que, se assistirmos um anime de um ponto de vista objetivo e desligarmos o som, veremos que as animações se baseiam na boca do personagem, ela abre, abre mais um pouco, ela fecha; agora repita esses 3 quadros por meia hora e você tem um anime estilo Naruto, Death Note, Neon Genesis Evangelion...

Free Image Hosting at www.ImageShack.us

Fora a deficiência da animação, o conteúdo é muito vago.

Humor imbecil e fraquíssimo; clichê comendo solto; apelação pornográfica (ou vai dizer agora que peitões e bundões é apenas uma forma de expressar a beleza? não pelos padrões asiáticos); conversações longas, massantes e sem fundamento; explicações nonsense (OMFG!11 ELE TÁ FAZENDO COCÔ PELA BOCA!! ISSO SIGNIFICA QUE OS ESPÍRITOS DO CENTRO DA TERRA VÃO FICAR EM FÚRIA!! O QUE CAUSA UM EFEITO QUE EMITE RADIAÇÃO GAMA E MATA O SEU OPONENTE DE CÂNCER!!1 OHH NOOOOESSS!!11)...

Eu poderia ficar o dia inteiro dando exemplos.

quinta-feira, 2 de outubro de 2008

Zero Online

Recentemente consegui os arquivos do servidor do Zero Online (http://zo.91.com). Mesmo não me interessando por esse tipo de jogo baseado em desenhos animados orientais, por ter a possibilidade de abrir um server resolvi checar esse jogo.

Zero Online - Test Server

Zero Online é o game mais novo da TQ Digital, mesma empresa desenvolvedora do Conquer Online e Eudemons. O Zero basicamente nada mais é do que uma mistura do Eudemons com Transformers (http://en.wikipedia.org/wiki/Transformers).

Devo dizer que me interessei muito pelo potencial do Zero.

:)

segunda-feira, 29 de setembro de 2008

Uma ida ao Detran de Teresópolis


Hoje fui no Detran dar entrada na minha primeira CNH e realmente esse país não muda nada mesmo. Segunda-feira 29 de setembro de 2008, em pleno século XXI eu encontro o mesmo orgão incompetente de sempre.

Além da agencia do Detran de Teresópolis ficar fora da cidade, acredite ou não, fica nos fundos de um mercado. Junto com o que encontramos em qualquer repartição pública (computadores dos anos 80, máquinas de escrever e etc...) vi um prédio reformado pela metade ou em obras ainda. O senhor que estava atrás de mim na fila reclamava que tinha tido sua carteira caçada por ultrapassar o limite de infrações permitidas, feito o curso de reciclagem, porém o Detran aparentemente tinha perdido sua habilitação.

No dia 23 estarei retornando ao Detran para uma nova aventura... Renovar meu RG.

sábado, 27 de setembro de 2008

SQL Injection for Dummies


Cheguei a conclusão que o maior problema das pessoas que se metem a aprender SQL Injection é não saber o que é SQL e muito menos o que é o SQL Injection. Nesse post eu não vou e nem quero me aprofundar em nada, irei apenar passar uma visão geral sobre o assunto.

De acordo com a Wikipedia o SQL significa:
"Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características originais do SQL foram inspiradas na álgebra relacional."
Se você não entendeu ou ficou com preguiça de pesquisar, posso resumir que o SQL é um sistema de banco de dados utilizado em larga escala.

Quando você entrou nesse blog, para esse post ser exibido o seguinte processo teve que ocorrer:


Você requeriu esta pagina ao servidor web que consultou o servidor SQL os dados desse post.

SQL Injection, como o nome já diz, constitui você injetar comandos de SQL na consulta. Considere o seguinte script PHP vulneravel a SQL Injection:


Em lugar nenhum nesse script de autenticação vemos o input do usuario ser tratado, sendo assim se o usuario entrar com o input no campo login "admin'/*" e senha vazia a consulta passa a ser:

SELECT * FROM users WHERE username='admin'/*' and password=''

Como você já deve saber /* é um comentario, tudo que vier depois dele é ignorado pelo servidor, sendo assim o servidor só verificou se o nome de usuario existe e autenticou o usuario.

Parece simples mas não é, nenhum programador é bobo de deixar um login sem verificação (ok.. alguns são.... continuando), obviamente SQL Injection pode ser feito não apenas em scripts de logins mas em qualquer coisa aonde entra o input do usuario na consulta.

Para proteger um script contra esse tipo de ataque basta verificar o input do usuario contra caracteres especiais que o seu SQL server possa interpretar. No PHP a maneira mais facil de fazer isso é passando o input pela função mysql_real_escape_string.

No meu próximo livro "SQL Injection for Lamers" irei passar algumas receitas de bolo, pode não parecer mas para escrever este artigo levei um tempo consideravel. Se você se interessou por este livro ele esta disponivel nas melhores livrarias e no site da editora O'Really.

domingo, 14 de setembro de 2008

DarkEden 2006 - 2008


Em 2006 decepcionado com a péssima qualidade do serviço oferecido pela Softon (http://www.softon.co.kr), resolvi montar meu próprio servidor de DarkEden (http://www.darkeden.com).

Mas como eu faria isso?

Com que arquivos eu montaria o meu DarkEden?

Passei alguns dias pesquisando e não achei em lugar nenhum informações sobre como montar um servidor de DarkEden. Depois de algum tempo por acidente achei um post de um chinês em um forum dizendo que tinha as sources do antigo DarkEden chinês, o T2DK (http://www.t2dk.com) e que precisava de ajuda com elas.

Eu é claro me disponibilizei, infelizmente passamos meses tentando colocar aquelas sources para funcionar mas sem sucesso. Decidimos então liberar as sources, assim se todos tivessem acesso a elas, talvez alguem fosse capaz de consertar elas. Até montamos um projeto Open Source chamado Open DarkEden (http://opendarkeden.com). Porém isso não aconteceu.

Um dia como outro qualquer esse ano, eu consegui as sources do DK2 (http://www.dk2.com.cn), não só as sources do game server, mas como também do client, das tools necessarias para editar os arquivos externos do client (*.inf, *.spk e etc..) e até as imagens do site do DK2 salvas em formato *.psd.

Em um próximo post eu conto sobre o meu trabalho com as sources do DK2.

segunda-feira, 21 de julho de 2008

Tropa de Elite


Nessa mesma noite do show ainda levamos uma "dura" da PM. Estavamos em frente ao 1 e 90 bebendo e pra sacanear o Francês, o Dom pediu pra ele colocar os dois dedos indicadores dele em cima do banco e colocou um copo de cerveja em cima, fazendo o François ficar com as mãos presas no banco. Ao meu ver uma inocente brincadeira de bar, mas não para Tropa de Elite daqui de Teresópolis, do nada entra uma patamo pela contra mão da rua e salta um PM já com uma pistola na mão e aponta a arma pra cabeça do Francês e fala em tom imperativo "DEIXO VER O QUE TEM AÍ".. Demorou até cair a ficha mas eles estavam pensando que o Francês estava xerando e nos mandaram para a parede para nos revistar, até aí tudo bem pois esse é o trabalho deles.

O showzinho deles começa quando eu escuto um dos PM's dizer "ENCONTREI UMA MUNIÇÃO CALIBRE SETE MEIA DOIS".. O Dom tem um chaveiro em forma de bala de Ak-47 que ele comprou nos Estados Unidos e para surpresa de todos o suposto chefe dos PM's começou a averiguar se levaria o Dom ou não para discutir na delegacia. Sim por causa de um chaveiro...

Quando eles foram embora, o Dom aliviado ainda falou "Muito obrigado Doutor".. Pra mim Doutor é quem tem doutorado ou um título superior equivalente (Médico, Advogado...).

E falando em "Tropa de Elite" o André Ramiro (Matias do filme) era um dos MC's do show que eu tinha acabo de sair.

domingo, 20 de julho de 2008

2 3 4 5 meia 7 8

Em reposta ao post de baixo, o Pedro veio me chamar pra ir com ele e o Vitone no show 0800 do 'Gabriel, o Pensador' no pátio da prefeitura. Chegando lá liguei pro cel do Vitor e só dava caixa postal, fiquei rodando procurando eles até o show começar e nada, quando começou já era, fiquei aonde eu estava mesmo e que por sinal era a uns 3 - 5 metros do palco... =DDD

Mesmo achando o 'Gabriel, o Pensador' (lol) um ser pernóstico e estando sozinho, me diverti muito e uma garota ainda veio me dando idéia, estava eu de boa.. na minha mesmo juro, e essa garota do meu lado direito fazendo ondinha enfia o braço na minha cara, eu olho pra ela e ela olha pra mim, ela chega perto e começa a falar no meu ouvido, mas eu não entendi nada e mandei um "Jóinha" pra ela... ela viro de costas e trocou de lugar com a amiga dela que estava no outro lado...

Mas a minha noite começou mesmo depois do show, estou eu voltando pra casa quando eu encontro com o Luciano. Comecei a conversar com ele e os amigos dele e acabei andando com eles até o resto da noite e conheci uma pessoa maluca exatamente igual a mim....Enfim.. Estou muito feliz... :)

sexta-feira, 18 de julho de 2008

Socorro, preciso de ajuda

Não saio de casa faz duas semanas, acredito ter sido mortalmente contaminado pelo virus transmitido pela mosca "Tédius Egipty". Hoje sexta feira dia 18 de julho de 2008 perdi meu último reduto de diversão, meu combalido headphone.

Estava eu a alguns metros do computador escolhendo que biscoito iria comer quando de repente... escutei aquele tão esquecido som de nova mensagem do msn, sim alguém havia falado comigo, me dirigi o mais rápido que consegui até o computador e escutei um "créc", que na hora passou quase que desapercebido, todo esse esforço e euforia só pra ler uma mensagem do Francês perguntando o que eu achava de "Amendoim com Cerveja".

Investigando a causa do "créqui", descobri que meu querido headphone que me proporcionou tantas incontáveis horas de radio.blog.club de alguma maneira foi parar embaixo do meu pé...

Por favor enviem ajuda, não sei por quanto mais tempo irei resistir!

sexta-feira, 11 de julho de 2008

Zend PHP 5 Certification Study Guide

Faz algumas semanas que terminei de ler este livro e realmente como todo mundo diz, é um ótimo livro não só para programadores que querem tirar a certificação oficial do PHP, mas até mesmo para quem nunca teve contato com a linguagem e deseja aprender.



Mesmo tendo lido o livro de estudo oficial da certificação, ser um Zend Certified Engineer continua sendo um sonho distante pra mim. Embora eu tenha conversado com o Marcelo Schmidt, e ele ter me esclarecido que não é tão dificil assim tirar essa certificação, e que não terei as super ofertas de emprego que todo mundo imagina, um dia eu ainda chego lá.

sexta-feira, 27 de junho de 2008

Interpretando sonhos...

Desde pequeno sempre tive sonhos estranhos, não no sentido de pesadelos ou coisas bizarras, e sim sonhos realmente estranhos, malucos e sem nexo.

Faz algum tempo que venho olhando esses sites de interpretação de sonhos, e para falar a verdade, não levo mais fé em interpretação de sonhos por "tabela". Alguns sites dizem que se tem ou se ocorre 'X' no seu sonho, é porque você precisa de tal coisa na sua vida, mas as vezes no mesmo sonho também ocorre uma coisa 'Y', que é completamente incompativel com a coisa 'X'.. ou seja WTF?!

Existem sim alguns sites que ensinam a combinar o significado dos sonhos, mas já me aconteceu de sonhar uma coisa um dia, e no dia seguinte sonhar outra coisa com um suposto significado completamente diferente...

Um amigo meu me disse que eu deveria parar de olhar esses sites e comprar um livro sobre o assunto. Um livro? Que livro? Que diferença faria um livro sobre um site? Alias, eu deveria achar isso uma ofença, pois meu trabalho é fazer sites, mas não dou a mínima.. Mas será que eu deveria me importar? O que será que o site dos sonhos tem a dizer sobre isso? Conhecendo esses charlatães vão plagiar Freud e dizer que a minha atitude blasé que tenho hoje, é fruto de problemas com a minha mãe durante a minha infancia.

Talvez o significado dos sonhos seja que eles não significam nada, simples assim.



Achei meu post de hoje definitivamente improdutivo, por tanto, aproveite a imagem deste lindo elefante rosa em compensação.

sábado, 21 de junho de 2008

Precisamos mesmo do PHP6?

Andei pesquisando sobre o PHP6, e não sei se estou tão entusiasmado assim como a maioria das pessoas. Eu vejo sim alguns bons avanços no novo PHP, como por exemplo, a remoção das diretivas padrão de segurança para servidores compartilhados register_globals, magic_quotes e safe_mode. Além de remover essas diretivas que sempre aborreceram todo mundo, também vai ser melhorado o suporte a programação orientada a objetos e outras coisitas a mais.

Mas eu realmente não sei se essa mudança toda vai ser mesmo pra melhor, pois legiões de programadores vão ter que atualizar milhares, ou até mesmo milhões quem sabe, de scripts para funcionarem com o novo PHP. Sendo que é fato que a maioria dos servidores de hospedagem ainda usa o PHP4, se o PHP5 nem foi completamente assimilado pela comunidade, pra que gastar tempo e recursos ($$$) em um novo PHP?

Posso dar de exemplo o Apache 2, lançado a séculos, e mesmo assim a maioria dos administradores ainda escolhe o velho Apache 1.3.x, simplesmente "porque funciona".

quarta-feira, 18 de junho de 2008

Só os caras "bacanas" tem um blog













A idéia de criar um blog surgiu alguns anos atrás, quando ajudei uma amiga com o layout do blog dela. Mas na época pensei: rodrigo pra que você quer um blog, você nunca viaja pra lugar nenhum, nunca faz nada de interessante, não se interessa por poesia, é um inútil, o que você postaria no seu blog e pior ainda, quem seria o acéfalo que leria seu blog.........

Continuo não pensando muito diferente, mas enfim, vale a tentativa.... (:

Wikipedia: Bacana (também "Filhinho-de-papai", "Mauricinho" ou "Patricinha") - Rico, cheio de dinheiro (geralmente adolescente).