Você está na página 1de 12

Etapa 1.

Passo 1.

A importncia do Desenvolvimento de Software Seguro

Em desenvolvimento de software seguro importante ressalta que cada etapa do


desenvolvimento, que as ameaas eminentes possam ser removidas de forma que
possvel seja eliminado os ricos de gesto de custos e descoberta.
E na finalizao do software quando as empresas sofre um tipo de ataque ou
tentativa, importante resgatar ou coletar as seguintes situaes anteriores. A fim
de que, os dados possam ser analisados sempre que um novo sistema for
desenvolvido.
Para os problemas que ao decorrer do desenvolvimento de software possam
aparecer preciso adotar padres de cdigo fonte. Alm das etapas de testes que
ser muito importante a cada nova implementao de levantamento de requisitos.
Passo 2.
Requisitos:
Oportunidades de considerar segurana de o incio.
So definidos os requisitos de seguranas que devem ser.
Normas e exigncias regulatrias.
Certificaes (Common Criteria, PCI).
Projeto/Anlise:
Posteriormente, o desenho ser codificado, obtendo-se como resultado final o
software, que entregue ao cliente. O problema levando em considerao tudo
que conhece. Se o problema a segurana da informao, este deve ser avaliado

prestando ateno em tudo que poder afetar o processo de segurana, visando a


criao de uma soluo para o problema.
Implementao:
Uso de normas de codificaes e teste.
Uso de checklist para aplicao das normas.
Cartilhas de boas prticas.
Aplicao de ferramentas de teste de "fuzzing".
Aplicao de ferramentas de anlise de cdigo esttico.
Conduo de revises de cdigo.
Testes:
A fase de teste o ponto em que o software est funcionalmente concludo e entra
em testes beta por usurios. O ciclo de vida do software para as verses em
questo alcanou a fase de verificao, e essa fase estava em um ponto
apropriado para realizar as revises de cdigo e os testes orientados necessrios.
Realizar o esforo de segurana durante a fase de verificao garante que a
reviso de cdigo e os testes tenham como objetivo a verso final do software, e
oferece uma oportunidade para revisar o cdigo desenvolvido ou atualizado
durante a fase de implementao e o "cdigo herdado" que no foi modificado.
Manuteno:
a parte do processo de resposta que envolve a preparao para avaliar
relatrios de vulnerabilidades e lanar orientaes e atualizaes de segurana
quando apropriado. O outro componente do processo de resposta a conduo
de um post-mortem das vulnerabilidades relatadas e a adoo de medidas,
conforme necessrio.
Passo 3.
Relatrio: Desenvolvimento Softwares Seguros
A necessidade de um software seguro se tornou cada vez mais importante para o
meio das comunicaes hoje em dia, e tambm depende de um bom
desenvolvimento.
No basta apenas dizer que o software funcional ele se tornou-se primordial a
todas empresas que precisa de segurana, principalmente as que lidam com

comunicaes, e inclua em seu oramento investido.


Os profissionais de segurana analisa todas as publicaes de sites de defesa,
chegada a concluso, o brasil uma das principais fontes de ataques cibernticos
do mundo. Em segundo lugar ficaram os Emirados rabes Unidos. Em terceiro, a
Frana, com 11%. A anlise comprova que os hackers brasileiros ou os que
escolheram o pas como alvo esto cada vez mais perigosos.
Passo 4.
Relatrio: Evitando Estouro de Buffer
Estouro de buffer acontece quando o processo tenta armazenar dados fora dos
limites de um buffer de comprimento. O acontecimento de todos os tipos de
comportamento do sistema ocorre em alguns, e podem ser prejudicial a segurana
do sistemas. Pra evitar o estouro de buffer importante implementar ferramentas
e compilador para lhe dar avisos quando voc for usar o cdigo que voc deixa
vulnervel a ataque. Algumas dessas ferramentas ir gerar o cdigo que probe
estrangeiros de acessar endereos ilegais e ser encerrado cdigo que tenta tal
execuo. Produtos como StackShield e StackGuard so uma grande ajuda.
StackSheild ir analisar o endereo de retorno de uma funo e terminar em caso
de irregularidade. StackGuard coloca uma palavra canrio sobre o endereo do
remetente e verifica se essa palavra foi alterada, terminando uma funo quando
ele tem.

Etapa 2
Passo 1.
Criptografia o uso de sistemas ou componentes que so considerados
altamente resistentes criptoanlise. O estudo de mtodos para decifrar cdigos
ou criptografia o armazenamentos de dados confidenciais em banco de dados,
ou arquivos.
Os diversos mtodos de criptografia so utilizado algoritmos bem testados,
funes base"64"e (MCRYPT) que trabalham com parceria, permitindo a
criptografia e a descriptografia de dados. Chaves pblicas, chaves secretas.
Chave pblica a tcnica que consiste em dois pontos de comunicao que
permite criptografados publicando suas chaves pblicas.
Chaves nica, utilizada para criptografar e descriptografar, embora mais veloz.

Os algoritmos que podem ser considerados criptoficamentes mais fortes so


Blowfish, Twofish, Advanced, Encryption Standard, Serpent. importante dizer
que a segurana de qualquer algoritmo relacionada fora e ao tamanho da
chave.

Passo 2.
SHA1- Outra maneira que pode se usar em criptografia php o sha1, parecido
com o md5, a diferena que ele tem 160 bits, tem uma string maior de 40
caracteres alfanumricos. Ele gera uma cadeia bem maior de caracteres,
causando um encontro de duas strings que, codificadas so a mesma coisa.
Modo de usar o sha1 no php.
$string = 'Modo de usar o sha1 no php';
$codificada = sha1($string);
Echo "Resultado da codificao usando sha1: " . $codificada;
// dcef6a0bb35e30d1b67f77d3ee7d176a37c97424
MD5: Metodo mais comum um algoritmo de um hash de 128 bits. Que consiste
string alfanumrica de 32 caracteres. Que preciso guardar um dado importante
que ningum possa ter acesso usa-se o md5, mais seguro e ningum tem
acesso. O problema do md5 , que se possvel houver um descuido pode se
gerar dois md5 iguais, ou duas strings diferentes que acabem como o mesmo
md5. raro mas pode acontecer se tiver algum descuido.
Modo de usar o md5 no php.
$string = ' Mtodos de criptografia em php';
$codificada = md5($string);
echo "Resultado da codificao usando md5: " . $codificada;
// a6f964b1c15648a4488f1dacdbb6e2a8

Passo 3.

Mtodo de criptografia no Java


String texto = "teste 3";
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(texto.getBytes());
byte[] bytes = md.digest();
StringBuilder s = new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
int parteAlta = ((bytes[i] >> 4) & 0xf) << 4
int parteBaixa = bytes[i] & 0xf;
if (parteAlta == 0) {
s.append(Integer.toHexString(parteAlta | parteBaixa));
System.out.println("M1: " + s2);
//Saida: "M1: bf99afd7f589db5b524cb34f316277b1"
import java.security.MessageDigest
import java.security.NoSuchAlgorithmException;
import sun.misc.BASE64Encoder;
public class EncriptaSenha {
public static String encripta (String senha) {
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.update(senha.getBytes());
BASE64Encoder encoder = new BASE64Encoder ();
return encoder.encode (digest.digest ());
} catch (NoSuchAlgorithmException ns) {

ns.printStackTrace ();
String s = "senha aqui";
MessageDigest md = MessageDigest.getInstance("SHA-1");
md.update( s.getBytes() );
byte[] hash = md.digest();
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < hash.length; i++) {
if ((0xff & hash[i]) < 0x10)
hexString.append( "0" + Integer.toHexString((0xFF & hash[i])));
hexString.append(Integer.toHexString(0xFF & hash[i]));
String criptografado = hexString.toString();
Mtodo de criptografia em ASP.NET
public string GerarMD5(string valor)
// criptografia MD5
MD5 md5Hasher = MD5.Create();
// Criptografa o valor passado
byte[] valorCriptografado =
d5Hasher.ComputeHash(Encoding.Default.GetBytes(valor));
// Cria um StringBuilder para passarmos os bytes gerados para ele
StringBuilder strBuilder = new StringBuilder();
// Converte cada byte em um valor hexadecimal e adiciona ao
// and format each one as a hexadecimal string.
for (int i = 0; i < valorCriptografado.Length; i++)
strBuilder.Append(valorCriptografado[i].ToString("x2"));
// retorna o valor criptografado como string
return strBuilder.ToString();

using System.Security.Cryptography;
public class Criptografia
private static byte[] chave = { };
private static byte[] iv = { 12, 34, 56, 78, 90, 102, 114, 126 };
public Criptografia()
public static string Criptografar(string valor, string chaveCriptografia)
DESCryptoServiceProvider des;
MemoryStream ms;
CryptoStream cs; byte[] input;
des = new DESCryptoServiceProvider();
ms = new MemoryStream();
input =
Encoding.UTF8.GetBytes(valor);chave=Encoding.UTF8.GetBytes(chaveCriptografi
a.Substring(0, 8));
cs = new CryptoStream(ms, des.CreateEncryptor(chave,
iv), CryptoStreamMode.Write);
cs.Write(input, 0, input.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
catch (Exception ex)
private static string GetSHA1(string strPlain)
UnicodeEncoding UE = new UnicodeEncoding();
byte[] HashValue, MessageBytes = UE.GetBytes(strPlain);
SHA1Managed SHhash = new SHA1Managed();
string strHex = "";
HashValue = SHhash.ComputeHash(MessageBytes);

foreach (byte b in HashValue)


strHex += String.Format("{0:x2}", b);

Relatrio 4. Utilizando Criptografia


A criptografia representa a transformao de informao numa forma
aparentemente ilegvel, a fim de ocultar informao de pessoas no autorizadas,
garantindo privacidade. A palavra criptografia tem origem grega (kriptos =
escondido, oculto e grifo = grafia) e define a arte ou cincia de escrever em cifras
ou em cdigos, utilizando um conjunto de tcnicas que torna uma mensagem,
chamada comumente de texto cifrado, atravs de um processo chamado cifragem,
permitindo que apenas o destinatrio desejado consiga decodificar e ler a
mensagem com clareza, no processo inverso, a decifragem. Tem duas maneiras
bsicas de se criptografar mensagens, atravs de cdigos ou atravs de cifras.

Etapa 3.
Passo 1.

Metodologia de Hacking e Ataques a Web


Os principais alvos de ataques, so as aplicaes web, hoje os ataques so por
"hackers ilegais e crackers", devido possibilidade de alcance rpido de altos
ganhos e ao baixo riscos de exposio dos criminosos. Mais de 75% dos
problemas com segurana na internet so devidos a falhas explorveis a partir das
aplicaes web.
Alguns ataques que podem causar problemas de variados nveis de impacto,
como por exemplo:
Interrupo ou queda de desempenho do servio;
Acesso no autorizado a dados confidenciais e estratgicos;
Roubo de informaes cadastrais de Clientes;
Fraudes e modificao de dados no fluxo das operaes;
Perdas financeiras diretas e indiretas;

Prejuzos imagem da marca da empresa;


Perda da lealdade dos Clientes;
Gastos extraordinrios com incidentes de segurana.
Aqui esto alguns problemas que agente pode estar correndo ao utilizar a web
sem segurana.

Passo 2.
SQL INJECTION: Visa injetar contedo inesperado em comandos SQL do banco
de dados.
Uma aplicao com um formulrio que recebe um nome de usurio, e depois
Exemplo: 1
Neste Exemplo apagaria toda a tabela.
dummytext ; Drop table jos_users; SELECT * FROM jos_poll where title =
Exemplo:2
Neste exemplo temos uma situao comum de validao de dados.
Desta forma um usurio comum iria digitar seu nome em quanto em um formulrio
HTML podem aceitar campo para um nome.
O cdigo gerador a partir desta injeo ficaria algo assim.
Select * From jos_users Where name = dummytext OR a = a ;
Exemplo 3
Um Hacker geraria algo assim.
dumytext OR a = a

Passo 3.
Tem vrias maneiras de evitar o ataque em SQL INJECTION, a maneira mais
simples a correo do cdigo vulnerveis, que evita falhas de redirecionamento
um ponto chave na sua gesto de riscos de quaisquer aplicao web.
Os alvos mais prediletos dos fraudadores so os ataques de engenharia social.
Quais as recomendaes para diminuir os riscos e despistar eles.
Evitar o uso de redirecionamento e se for possvel fazer por meio de variveis de
sesso e utilizar o HTTP, e nunca informe a URL real o parmetro, opte por um
valor que ser traduzido do servidor para URL alvo.

Passo 4: Evitando Ataques SQL INJECTION


Uma das tcnicas de fraude mais conhecida pelos desenvolvedores web a SQL
Injection que Trata-se da manipulao de uma instruo SQL atravs das variveis
que compem os parmetros recebidos por um script server-side, tal como PHP,
ASP e entre outros.
SQL Injection um ataque que visa enviar comandos nocivos base de dados
atravs dos campos de formulrios ou atravs de URLs. Um ataque bem-sucedido
pode, entre outras coisas, apagar uma tabela do banco, deletar todos os dados da
tabela ou at adquirir senhas que estejam cadastradas em um banco. Sempre
valide todo e qualquer tipo de dado que seu projeto for receber, seja via formulrio
(POST) ou via query string.

Bibliografia
https://msdn.microsoft.com/pt-br/library/ms995349.aspx
http://www.devmedia.com.br/criptografia-commd5-no-dotnet-parte1/17063#ixzz2f0plzwtN
http://www.linhadecodigo.com.br/artigo/511/encriptando-senhascomaspnet.aspx#ixzz2epQrSPkn
http://pt.wingwit.com/Networking/network-security/75766.html#.VRsZ1PnF_BU
http://www.devmedia.com.br/sql-injection-em-ambientes-web/9733
http://moodle.progdan.com/mod/book/view.php?id=5238&chapterid=348

Introduo

Neste trabalho iremos falar um pouco de segurana de software seguro.


Vamos abordar o quanto as empresas e as pessoas sobrem com tudo isso. Com a
finalidade vamos ressaltar os problemas que pode ser causado quando o software
no est seguro e como se proteger de ataques de hackers e demais ameaas.

Concluso

Foram concludas todas as etapas neste atps com a finalidade de ajudar e obter o
maior conhecimento no mundo da segurana de software seguro. E tambm com
se prevenir de ataques cibernticos etc.