Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paulinho Cé

Segurança do sistema desenvolvido

Recommended Posts

Bom dia,

 

Como a maioria dos foristas, eu tambem me preocupo com a segurança dos dados do sistema que estou desenvolvendo e as diversas abordagens que existem na Web são tão variadas que acabam sendo confusas, pelo menos para mim.

Então eu gostaria de sugerir que houvesse uma área do fórum destinada à testar a segurança dos sistemas dos foristas, naturalmente com acesso restrito à moderadores e cujos testes não acarretariam problemas mas sim soluções.

 

Essa área seria de grande valia pois apontaria as falhas específicas em cada sistema testado, oferecendo a solução para corrigí-los, consequentemente tornando-os mais profissionais e confiáveis, evitando dores de cabeça futuras.

 

Essa sugestão é baseada na minha necessidade, e creio que na da maioria que desenvolve pois apesar das matérias existentes na net, cada caso é um caso.

 

Muito obrigado e um abraço à todos.

 

Paulinho Cé

Compartilhar este post


Link para o post
Compartilhar em outros sites

Paulinho,

 

A ideia seria fantástica, se não fosse tão problemática:

 

1. Testes de segurança, muitas vezes, podem desencadear diversos problemas na aplicação e em seus dados.

2. Os membros da equipe de moderação/administração são colaboradores. São membros que dedicam seu tempo para ajudar outras pessoas e, assim, não podem assumir a responsabilidade por esse tipo de risco.

3. Devido ao risco de corrupção de dados e exposição de falhas de segurança na aplicação, certamente seria uma área de pouca movimentação e, por isso, não justificaria uma área específica para tal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia João, muito obrigado pela sua manifestação.

Entendo que os colaboradores dispõe de pouco tempo, naturalmente não seriam exigidos ao extremo pelos testes, seria quase como um desafio à eles.

A corrupção de dados é um fato irrelevante no meu ponto de vista, pois até o sistema ser considerado pronto, os dados que alimentam o banco são, na sua maioria, fictícios. Pelo menos na minha maneira de trabalhar, sempre alimentei o banco com dados fantasma, para testes. Como sempre programei com base local, nunca havia me deparado com a possibilidade de invasão, de todas as formas que se conhece, por isso a minha preocupação atual: sistema com base remota.

Tanto se fala a respeito de segurança mas o que se conclui é que não existe um padrão a ser seguido, tudo depende do código aplicado, falando em PHP e Mysql. Inicalmente utilizei a criptografia nos dados de login e senha, mas eu pergunto:

A criptografia evita o sqlinjection e outras formas de invasão?

Qual delas é eficiente: MD5, Sha1, Base64 ?

A criptografia one-way é mais eficiente?

Só a criptografia não basta?

URL amigáveis melhoram a segurança?

 

Enfim: Pretendo entregar um sistema relativamente seguro ao cliente e para isso preciso de diretrizes objetivas, práticas, sem a salada que se acha na web, da qual se extrai muita coisa pouco prática.

 

Perdoe-me pela abordagem um pouco ríspida mas meu método de trabalho é sempre objetivo.

 

Grande abraço,

 

Paulinho Cé

Compartilhar este post


Link para o post
Compartilhar em outros sites
A criptografia evita o sqlinjection e outras formas de invasão?

nao, o sql injection age direto no sql e nao nos dados...

Qual delas é eficiente: MD5, Sha1, Base64 ?

muitos usam o md5, lembrando que nao sao criptografia, e sim hashes, porem o md5 ja tem formas de ser quebrado, at pq eh hash de 32 bits, eu costumo usar o sha512 q eh hash de 128bits

A criptografia one-way é mais eficiente?

depende do q você ker proteger...e pra q protege...

 

Só a criptografia não basta?

nao, criptografia você trabalha os dados, nao a forma com seu programa processa os dados, ae que você tem de tomar mais atencao

 

URL amigáveis melhoram a segurança?

de certa forma sim, pois escondem a tecnologia usada:php,asp.net,java....mas nao eh o suficiente...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hi.

 

No ano passado fizemos um projeto destes em um fórum de segurança onde sou moderador, mas realmente não dá certo. Fazer pen test num sistema não é algo simples, e não queremos tirar o trabalho dos profissionais da área para fazer um favor meia boca. Também tem as questões da responsabilidade envolvida em fazer os testes, etc. Enfim, é algo que deve ser muito formal para ser tratado em um fórum.

 

A criptografia evita o sqlinjection e outras formas de invasão?

 

Se você transforma esses dados antes de jogar na query, sim. Por exemplo, uma aspa simples (0x27) já poderia quebrar uma query. Mas se você convertê-la para md5, por exemplo, ficaria 3590cb8af0bbb9e78c343b52b93773c9 e essa hash entraria normalmente no bd.

Claro que não é uma forma correta de se proteger. Estou apenas respondendo a pergunta. ;p

 

Qual delas é eficiente: MD5, Sha1, Base64 ?

 

Há menos bancos de dados onlines contendo hashs SHA-X do que MD5. Eu aplicaria sha512 se não houver problemas com performance, etc.

Base64 é reversível, enfim, nem entra na disputa.

 

A criptografia one-way é mais eficiente?

 

Se você não tiver que recuperar esses dados posteriormente, sim.

 

Só a criptografia não basta?

 

Segurança não é só roubo de dados, amigo.

Não basta não. :-)

 

URL amigáveis melhoram a segurança?

 

Depende de como você as implementa.

Se um campo for inteiro, e a url amigável sempre receber inteiro, vai proteger. Se deixar passar, dá no mesmo.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado à todos que responderam, percebo que o assunto é muito mais delicado do que parece.

"Segurança não é só roubo de dados"

Sem dúvida, concordo plenamente. Imagine alguem deletando registros e até o banco inteiro, segundo já li em alguns artigos. Seria um desastre.

 

Conclui então que devo estudar as principais formas de ataque e os métodos para evitá-los, tentando assim oferecer um mínimo de segurança ao sistema. Aceito opiniões, sugestões e fico imensamente agradecido.

Um abraço à todos,

 

Paulinho cé

Compartilhar este post


Link para o post
Compartilhar em outros sites

a md5 ela é uma faca de um gume, pelomenos que eu saiba ela vai mas não volta então ela é especial para tratamento de dados de certa forma hoje existem bases de dados que tem em si milhares de sequencia md5, basicamente se você usa uma senha "admin" facilmente o hacker pode conceguir entrar em seu sistema mas se você usa uma senha como "h4jl4k5p2d1i4o6"(minha senha antiga do msn F: hj é mais f***) o cara não conseguiria nem a pau quebrar isso. Só deixando claro QUE EU SAIBA ELA NAO TEM VOLTA :).

Compartilhar este post


Link para o post
Compartilhar em outros sites

não existe receita de bolo para seguir..

 

a segurança depende da complexidade de recursos do projeto, pessoas envolvidas, etc.

 

uma das maiores falhas de segurança está no fator humano e poucos dão importância a isso.

 

um sistema pode ser muito bem protegido, mas se 1 pessoa falhar, tudo poderá ser comprometido.

 

Lógico que há questões muito básicas como, manter softwares atualizados para versões estáveis e "livres" de bugs conhecidos. Contudo, isso não garante segurança efetiva, mas, dificulta a vida de quem pretende burlar.

 

comentário "oculto"

 

Peço licença para pegar como exemplo uma situação que você mesmo postou sobre o SQL Injection.

Pela pergunta que fez nota-se que não entende de SQL. Pois se entendesse o básico não faria esse tipo de pergunta.

Está vendo? Uma falha de segurança já começa por aí.

 

 

Quer ver outra falha minuciosa ?

O seu nickname é o seu nome, não sei se é verdadeiro, mas talvez seja.

Somente vendo os seus posts no forum já dá para ter uma noção do seu perfil, da sua personalidade.

Isso é um prato cheio para hackers e ainda mais por vir fazer esse tipo de consulta publicamente.. Isso pode ser considerado falha de segurança, sabia?

 

 

 

Se quer saber mais sobre segurança, aprenda sobre as ferramentas que utiliza em seus trabalhos.

Por exemplo, se vai mexer com PHP, MySQL, Linux, você tem que entender o que é o PHP, MySQL e Linux, pois não adianta sair lendo tudo quanto é material sobre segurança sem entender do que se trata. Você mesmo já deve ter percebido.

 

Como vê, é muita coisa relacionada.. Jamais conseguirá aprender num curto período de tempo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

comentário "oculto"

 

 

Quer ver outra falha minuciosa ?

O seu nickname é o seu nome, não sei se é verdadeiro, mas talvez seja.

Somente vendo os seus posts no forum já dá para ter uma noção do seu perfil, da sua personalidade.

Isso é um prato cheio para hackers e ainda mais por vir fazer esse tipo de consulta publicamente.. Isso pode ser considerado falha de segurança, sabia?

 

 

chorei de ri dessa kkkkkkkkkkkkkkkkkkkkkkkk.....

 

Segurança e algo pra se levado a serio, porém não pensa que todo sistema precisa de uma segurança nivel 10 embutida nele kkkkkk..

 

Na maioria deles basta, cuida dos pequenos detalhes, usa os bons recursos que o PHP le oferece e ja é o suficiente.. como Hinom disse apreder sobre suas ferramentas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

Muito obrigado à todos que responderam, fico honrado com a consideração de todos.

Gostaria de responder ao amigo que postou oculto, embora eu tenha percebido que a intenção foi de respeito, não há necessidade, amigo.

Já tenho maturidade suficiente para receber críticas e comentários pessoais sem me ofender, fique tranquilo, mas agradeço a sua boa educação.

Realmente não sei quase nada sobre as linguagens que estou praticando, sempre fui programador Delphi para base local, cuja segurança aborda-se de outras formas, mas acredito que o meu pouco conhecimento das linguagens citadas não me impede de estudá-las e praticá-las desenvolvendo um sistema.

 

Permita-me discordar sobre o meu perfil no fórum, aliás em muitos outros fóruns que já frequentei, influenciar a segurança do meu trabalho, isso é patético.

A minha conclusão sobre o perfil que mostro na web é que sou uma pessoa sincera, falo o que penso e acabo criando situações desagradáveis à alguns e com isso acabo tendo uma reputação não muito agradável.

Se alguem pesquisar na web pelo meu nome , vai encontrar diversos sites de fotografia, de edição de vídeos, mostrando meus trabalhos profissionais. Vai encontrar minhas amizades no face, e em outras redes sociais, vai encontrar minhas convicções nos fóruns espíritas que participo e até a minha reputação de negociante honesto nos classificados de fóruns de fotografia, onde comprei e vendi muito material fotográfico usado.

Eu concluo que se o programador frequentar fóruns com nicks "TheBest", "OCara" e outros similares, não lhe dará respaldo técnico nem confiabilidade. O que lhe dará tais características é o seu estudo e conhecimento do trabalho que está desenvolvendo, e isso adquire-se com leitura e discussão com quem conhece mais sobre o assunto.

É exatamente isso que estou fazendo aqui no fórum, buscando conhecimento, perguntando e aprendendo.

Dizer que em pouco tempo eu não conseguirei aprender é menosprezar a minha capacidade, desconhecida para quem julga pois não me conhece.

 

Desculpem se busquei informações onde não as encontraria, foi um erro presumido mas quem incorre num erro é porque está tentando e quem não tenta está parado no tempo.

 

Grande abraço à todos,

 

Paulinho Cé

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas quem incorre num erro é porque está tentando e quem não tenta está parado no tempo.

 

Eu não me envergonho de errar..., porque não me envergonho de pensar

 

Como pode ter visto Paulinho, não é um tema simples para simplesmente termos uma área no fórum.

 

Gostei desse comentário do Fvox, apesar de não concordar que a troca de conhecimento tira o trabalho de algum profissional.

 

Fazer pen test num sistema não é algo simples, e não queremos tirar o trabalho dos profissionais da área para fazer um favor meia boca. Também tem as questões da responsabilidade envolvida em fazer os testes, etc. Enfim, é algo que deve ser muito formal para ser tratado em um fórum.

 

Mas, se você quiser ter um ponto de partida nos seus estudos, faça um teste simples na sua aplicação e estude as mensagens recebidas em localhost:

 

nikto -h localhost

 

Cada mensagem virá acompanhada com um código, pesquise pelo código que você encontrará o significado da vulnerabilidade. Outro software (esse é pago) é o acunetix: http://www.acunetix.com/

 

Vale lembrar, e deixar claro que, após finalizar os testes e corrigir todas as eventuais vulnerabilidades, você ainda terá que fazer diversas análises na sua aplicação. Você terá resolvido o "grosso", mas os piores problemas ainda poderão estar lá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho Paulinho, que o que o hinom quis dizer com o comentário oculto, relaciona-se, pelo menos indiretamente, com um trecho do livro A ARte da Decepção, do Kevin Mitnick, UM dos maiores hackers do passado, onde diz, em linhas gerais, que para um verdadeiro hacker, QUALQUER tipo de informação obtida, se bem explorada pode acabar trazendo informaçõesmais preciosas do que parece.

 

Ele ainda cita um exemplo onde um hacker se infiltra numa empresa como zelador, só para bisbilhotar as mesas dos funcionários e colher informações nos bilhetinhos colados no monitor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma das maiores falhas de segurança está no fator humano e poucos dão importância a isso.

 

um sistema pode ser muito bem protegido, mas se 1 pessoa falhar, tudo poderá ser comprometido.

 

Lógico que há questões muito básicas como, manter softwares atualizados para versões estáveis e "livres" de bugs conhecidos. Contudo, isso não garante segurança efetiva, mas, dificulta a vida de quem pretende burlar.

 

comentário "oculto"

 

Peço licença para pegar como exemplo uma situação que você mesmo postou sobre o SQL Injection.

Pela pergunta que fez nota-se que não entende de SQL. Pois se entendesse o básico não faria esse tipo de pergunta.

Está vendo? Uma falha de segurança já começa por aí.

 

 

Quer ver outra falha minuciosa ?

O seu nickname é o seu nome, não sei se é verdadeiro, mas talvez seja.

Somente vendo os seus posts no forum já dá para ter uma noção do seu perfil, da sua personalidade.

Isso é um prato cheio para hackers e ainda mais por vir fazer esse tipo de consulta publicamente.. Isso pode ser considerado falha de segurança, sabia?

 

 

Adoro os posts do hinom nesses tópicos de infosec hhuah. Ele sempre aparece!

Mas em suma é isso aí. A maior das armas é a SEing, seja para obtenção de acesso total ou de informações que facilitem o processo.

 

Quanto ao exemplo do nick, não funcionaria comigo, por exemplo huahahuahuh. Mas foi um belo exemplo.

 

 

Gostei desse comentário do Fvox, apesar de não concordar que a troca de conhecimento tira o trabalho de algum profissional.

 

Não estava me referindo à troca de conhecimento, e sim ao projeto que tive no outro fórum onde fazíamos o serviço para os outros, sem detalhes de como chegamos naquela teoria, dando detalhes apenas da correção.

Quanto a troca de conhecimento, sou super a favor do crescimento em conjunto. Não é a toa que participo de diversos fóruns e mail lists de segurança. O conhecimento é uma das únicas coisas que é multiplicado quando se é dividido, e eu adoro isso. =p

 

 

A propósito, já que citou o Nikto e o Acunetix, outra ferramenta que ganhou um super espaço na área de web scanners é o Burp Suite, que também é uma ótima pedida e já é o preferido de muita gente.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado à todos pelas respostas.

Aproveito para levantar outra questão: url amigáveis.

Pretendo ocultar o .php das urls do site, nem sei se isso vai melhorar a segurança mas não gosto de ver a url www.meusite.com.br/area_restrita.php dá uma sensação de estar expondo a estrutura do site e isso me desagrada.

Estou lendo e praticando o rewrite do htaccess com expressões regulares vários dias e até agora nada funcionou.

 

Meu site tem o index.html como home e os links vão chamando outros html que chamam arquivos php e por ai vai.

Tentei vários tutoriais e exemplos mas nada funciona, a estrutura do site tem que ser alterada para se adequar ao htacces ou ele se adequa à estrutura do site?

Os links que chamam os outros html e php tambem devem ser alterados?

 

Se alguem de boa vontade quiser responder, ficarei agradecido.

 

 

Paulinho Cé

Compartilhar este post


Link para o post
Compartilhar em outros sites

O tema de segurança é muito amplo e complexo, pois depende de vários fatores.

 

Durante o desenvolvimento de um sistema, varios fatores podem criar ou contribuir para que seja possivel explorar uma vulnerabilidade, desde o baixo conhecimento do(s) responsável(eis) pela programação sobre a linguagem escolhida para o desenvolvimento, pouco ou nenhum conhecimento sobre os eventuais riscos que as outras partes que interagem no sistema podem trazer (sql, javascript, etc...).

Além de prazos ridiculamente curtos e a famosa POG.

 

Além disso, o sistema operacional onde esse sistema irá rodar também pode ser fator de comprometimento, bem como outros aplicativos que rodam como serviços (daemons) no sistema.

 

Bem como a parte mais frágil e potencialmente mais vulnerável de tudo isso, o usuário.

Como já disseram acima, existem várias formas de se obter dados importantes através da observação do comportamento e das informações fornecidas espontaneamente pelo usuário.

 

Atualmente, com a explosão das redes sociais e de que a maioria das pessoas compartilha muitas informações pessoais na internet, tanto as empresas de marketing estão usando essas informações, como os bandidos (que não são hackers e sim, crackers) as usam e já faz tempo.

 

É o chamado data-mining, onde vai-se colhendo informações de uma pessoa, empresa, etc... que estão disponiveis na rede e criando um perfil sobre a vitima.

Quanto mais completo for esse perfil, mais fácil será para obter a confiança desta pessoa, ou conseguir com um maior grau de acerto advinhar quais as eventuais senhas usadas no seu dia a dia.

 

O tema é muito complexo e profundo, pois existem muitas formas de burlar ou quebrar a integridade de um sistema, por isso é muito bom estarmos bem informados sobre os problemas mais comuns enfrentados no nosso dia a dia, como sql injection, Cross scripting, etc...

 

Mas também sobre as novas falhas que surgem todos os dias, somente assim saberemos se e como a falha descoberta pode ou não afetar o que ja fazemos e qual a forma de evita-la, seja com a aplicação de um patch, seja com algumas modificações no código.

 

Recomendo acompanhar o que sai nos mais váriados sites de revistas e jornais, sites oficiais das linguagens de programação e aplicativos que usamos no nosso dia a dia, bem como sites especializados no assunto, boletins de segurança, sites de analise forense, etc...

 

Somente com o conhecimento e o acompanhamento desse assunto, podemmos minimizar os riscos de termos nosso sistema comprometido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nem sei se isso vai melhorar a segurança

 

A primeira coisa, e mais importante, que você precisa saber sobre segurança, é que se trata de um conceito e, por isso, é relativo.

 

O que isso significa?

 

Significa que segurança depende de um referencial:

 

1. Uma garota possui um blog pessoal, onde armazena algumas fotos idiotas que só fazem sentido para ela.

Não existiu muito cuidado com segurança na construção desse blog, de fato, a garota possui um sistema simples onde ela informa seu login e senha e mais nada.

2. Uma empresa possui um sistema para armazenamento de dados relacionados à patentes e segredos industriais.

Essa empresa cuidou muito do aspecto segurança, todo o acesso é moderado por uma lista de controle de acesso, onde os usuários utilizam certificados digitais classe 3 para acessar a aplicação.

Qual informação está mais segura?

 

As fotos dos bichinhos de pelúcia da garota, que só tem valor para ela e estão armazenados sem tanta preocupação com segurança, ou os segredos industriais da empresa que estão criptografados com chaves fortes e os usuários passam por um sistema de autenticação confiável?

 

Como as fotos que essa garota armazena não possuem valor para terceiros, qualquer nível de segurança implementado na aplicação será suficiente, afinal, esses dados não tem valor para ninguém, exceto ela.

 

Por outro lado, a empresa possui dados de valor altamente relevante e, por isso, precisa se preocupar em protegê-los.

 

Segurança é um conceito usado para definir custo. Quando o custo para se obter determinada coisa é maior que a coisa em questão, então estamos diante de uma coisa armazenada de forma segura.

Compartilhar este post


Link para o post
Compartilhar em outros sites

post #12

 

tranquilo Paulo..

 

apenas para ficar claro,

 

você pode usar o seu nome real numa boa, mas o que quis dizer é que qualquer tipo de pista e informações sobre uma pessoa é um prato cheio para hackers.

Quanto mais você se expõe, mais informações um hacker tem para trabalhar em cima..

Facilmente conseguem dados de seus documentos, onde você trabalha, horários que costuma sair, etc..

Reviram o seu lixo, o lixo da empresa onde trabalha e assim vai..

É assim que hackers agem.. como espiões.

 

Quanto ao que postei sobre requerer tempo para entender de segurança, não quis dizer que você não tenha capacidade de aprender em pouco tempo, o que quis dizer é que é praticamente impossível um ser humano normal conseguir know-how de 10 anos em alguns meses, pois são diversas áreas nas quais você deve ter experiência para realmente se sentir seguro no que faz..

 

digo 10 anos porque é a média que um profissional leva para "amadurecer".

alguns mais "hardcore" conseguem em 5 anos

 

 

vou citar alguns temas:

 

- redes

- servidores

- browsers e plugins, etc..

- engenharia reversa

- asp, php, html, perl, vbscript javascript, SGDBs (mysql, sql server, oracle, etc..)

- actionscript, java, jsp, applets java, activex

- engenharia social

- sistemas operacionais (osx, linux, windows)

- protocolos (http, ftp, smtp, udp, etc..)

- hardware

 

e aí?

consegue dominar o básico disso tudo em pelo menos 1 ano ?

 

Uma coisa é conseguir ter um certo domínio sobre o PHP em 6 meses.. mas e o restante ?

Não basta saber apenas php, sql injection, trocar a senha root do mysql, usar o acunetix e achar que está resolvido, né rsss

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.