ATPS Software Seguro
Por: Sara • 28/2/2018 • 1.514 Palavras (7 Páginas) • 308 Visualizações
...
O processo do projeto é de grande importância no desenvolvimento do software seguro, pois com os requisitos deve-se avalia o fluxo para a segurança do software que só será comprovado a segurança do software na fase de testes. A fase de testes é o momento mais importante do desenvolvimento do software seguro com a sua fase de ataques ao software, validações de bugs, replanejamento da segurança para evitar falhas futuras…
Na implantação deverá analisado o ambiente do usuário/cliente e suas formas de segurança para ataque, e até sugerir formas mais seguras de utilização para evitar ataques e diminuir o nível de manutenção do software.
1.4 EVITANDO ESTOURO DE BUFFER:
Ataques de Buffer Overflow
Ataques de estouro de buffer é uma forma comum de ataque de um hacker para causar o caos em um sistema. Há ataques baseados em estouro de pilha, que são raras, e pilha baseada ataques, que erroneamente redefinir o limite de memória para uma pilha, fazendo-a transbordar. Os dados transbordantes se movem para outros buffers, corrompendo ou sobrescrevendo os dados válidos lá, potencialmente causando uma cascata de buffers corrompidos, bem como uma cascata de transbordando taças de champanhe. Para evitar ataques de estouro de buffer, você vai precisar ter conhecimentos técnicos de programação de computadores, o acesso ao código em questão de tempo e paciência para vasculhar páginas e páginas de código para programar as mudanças necessárias para proteger seus sistemas. Instruções
Escrever código de segurança para evitar ataques de estouro. Em C, há uma série de funções vulneráveis que os hackers podem explorar a sobrecarregue buffers. Minimize o uso de strcpy (), strcat (), sprintf () e vsprintf (), que não realizam verificação de limites. Se possível, evitar o uso de gets (), que não especifica quantos caracteres devem ser lidas e, assim, deixa o seu código vulnerável. Se você usar o scanf (), certifique-se de especificar uma largura Ataques de estouro de buffer são uma forma comum de ataque de um hacker para causar o caos em um sistema. Há ataques baseados em estouro de pilha, que são raras, e pilha baseada ataques, que erroneamente redefinir o limite de memória para uma pilha, fazendo-a transbordar. Os dados transbordará o formato % s para evitar derrapagens.
Estouro de Heap
A memória na heap é alocada dinamicamente pela aplicação em tempo de execução e contem tipicamente dados do programa. A exploração se dá corrompendo-se esses dados de modos específicos para fazer a aplicação sobrescrever estruturas internas como listas encadeadas e ponteiros.
Erros de Indexação de array
Em geral, os erros de indexação de array são bem menos explorados que um string é apenas um array de caracteres e é correto afirmar que arrays de estouros de buffer, mas resultam na mesma coisa; outros tipos também poderiam ser utilizados para escrita em posições arbitrárias da memória.
Pode ser utilizada a função System.IndexOutOfRangeException que corresponde à Indexação de array fora de faixa: menor que zero ou maior que o máximo possível.
Bugs de string de formatação
Não são exatamente estouro de buffer, mas levam aos mesmos problemas; o problema básico origina-se do fato de que não há nenhuma maneira realista de uma função que recebe um número variável de argumentos para determinar quantos argumentos foram passados para a família printf da linguagem C.
Divergências do tamanho de buffer entre Unicode e ANSI
Comum nas plataformas Windows; ocorre se for confundido o número de elementos como o tamanho em bytes de um buffer Unicode com relação ao ANSI
2.2 METODOS MAIS FORTES QUE O BASE64
SHA512
Método de criptografia muito utilizado atualmente, até para WebService. Método de criptografia utilizado até pela SEFAZ. O SHA512 é a versão melhorada do SHA-265, que por sua vez é uma versão muito melhor do SHA-1.
Whirlpool
Outro método mais seguro e confiável que o BASE64 é o Whirlpool, ele é um pouco mais lento que o SHA-512 e, consequentemente, mais seguro.
2.3 MÉTODOS EM JAVA E ASP
BASE64 JAVA
-Exemplo:
byte[]encodedBytes=Base64.encodeBase64("Test".getBytes()); System.out.println("encodedBytes " + new String(encodedBytes)); byte[] decodedBytes = Base64.decodeBase64(encodedBytes); System.out.println("decodedBytes " + new String(decodedBytes));
BASE64 ASP
-Exemplo:
Encoding: myEncodedString = base64_encode( inputString )
' Decoding: myDecodedString = base64_decode( encodedInputString )
Dim Base64Chars
Base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" & _
"abcdefghijklmnopqrstuvwxyz" & _
"0123456789" & _
"+/"
Public Function base64_encode( byVal strIn )
Dim c1, c2, c3, w1, w2, w3, w4, n, strOut
SHA512 EM ASP
-Exemplo:
def sha512(content):
sha512hash = hashlib.sha512()
sha512hash.update(content)
return sha512hash.hexdigest()
2.4 Utilizando Criptografia
Criptografia é o estudo dos princípios e técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível, de forma que possa ser conhecida apenas por seu destinatário com a chave secreta, o que a torna difícil de ser lida por alguém não autorizado. Assim sendo, só o receptor da mensagem pode ler a informação com facilidade. É um ramo da Matemática, parte
...