Arquivo da Categoria: Segurança

Artigos da secção “Segurança”.

A Revolução da Blockchain – A Tecnologia do Futuro

Desde o início do ano de 2009 que uma moeda virtual tem vindo a marcar a diferença no horizonte dos pagamentos digitais. O principal ingrediente do bitcoin [1] é uma tecnologia inderrubável que até então nem tinha sido muito notada — a blockchain [1] [2] (white paper).

A blockchain é uma tecnologia sofisticada que permite salvaguardar registos de uma forma distribuída e não centralizada uma vez que não existe uma entidade de gestão central. Este sistema também conhecido como livro razão, tem o objetivo de guardar registos de transações e os registos de todas essas transações são atualizados em cada nó da rede e não apenas no nó central de gestão (porque efetivamente esse nó não existe). Sempre que é consumada uma transação na rede todos os nós da rede são informados. Ele funciona com base numa cadeia de blocos, nada mais do que um conjunto de informações que são ligadas a cadeias adjacentes. Estes blocos são públicos, no sentido em que todos os nós da rede podem aceder a essa informação. Porém, estes blocos quando são processados não podem ser alterados nem apagados. Além disso, novos registos só podem ser feitos mediante um processo de auditoria.

Continuar a ler

Segurança em Aplicações Android

O ficheiro de uma aplicação Android é chamado de Android Package (apk), e não é mais que um ficheiro Zone Information Protocol (ZIP) comprimido.

Começamos com algumas breves questões:

  • É possível descomprimir um apk? Sim.
  • Então, também é possível ler o código-fonte de um apk? Sim.
  • Os apks são reversíveis através de engenharia reversa? Sim.
  • Isso quer dizer que, é possível encontrar dados sensíveis como, por exemplo, palavras-passe e Application Programming Interface (API) keys, ao longo do código? Sim.
  • É possível construir um apk totalmente seguro — à prova de bala?

Este artigo tem o objetivo de passar alguns procedimentos de forma a que qualquer developer, ou fulano com conhecimentos básicos sobre Android, consiga auditar sua própria aplicação antes que esta seja publicada e maliciosamente explorada.

E respondendo à última questão: -”Nim”.

Continuar a ler

Blockchain and Merkle Tree

A bitcoin é o nome de batismo de uma criptomoeda que teve um enorme impacto quando foi libertada na Internet e também todo o conceito e tecnologia em seu redor foi alvo de pura análise e investigação nos últimos anos. A aceitação desta criptomoeda foi de tal maneira exponencial que se refletiu de imediato na sua crescente valorização no mercado [1].

Uma das tecnologias base da bitcoin é a blockchain, que representa uma solução efetiva para resolver o problema das transações duplicadas (double-spent) numa rede de pares (peer-to-peer ou p2p). No jargão do bitcoin, a blockchain não é mais que um ledger (um ‘livro-razão’) que guarda o registo de todas as transações ocorridas na rede. Esta tecnologia apareceu de facto na altura certa. Ela permite a implementação de sistemas descentralizados em redes p2p sem a necessidade de uma trusted third party como forma de validar transações ou ações num dado ecossistema. Ao invés disso, cada par na rede possui uma cópia do livro-razão onde consegue efetuar todas as validações necessárias sem a necessidade eminente desse terceiro nó de comunicação onde supostamente estaria localizado unicamente o “livro-razão”.

Continuar a ler

Como criar um programa auto-replicativo em assembly, para GNU/Linux

A arte da criação de programas auto-replicativos parece estar perdida no tempo. Não podemos confundir um programa auto-replicativo com malware, cavalos de tróia, worms, etc. Um programa auto-replicativo não executa nenhum tipo de código para danificar hardware ou software, pelo contrário apenas tenta replicar-se de diversas formas ou métodos e é por norma escrito numa linguagem de baixo nível, como por exemplo assembly. A parte mais interessante e importante do programa ao contrário de um malware não é um pedaço de código para causar danos, mas antes pelo contrário apenas o código que per- mite que o programa se replique.

Apesar de muitas vezes se confundirem as duas tarefas, um programa auto-replicativo é uma forma de criatividade, engenho e inovação, com o objectivo de criar um programa que se consiga manter num sistema informático evitando ser apagado e replicando-se de forma inteligente, evitando a sua detecção e consequente remoção. É quase como fazer um avião de papel, ajustar as “asas”, o “nariz”, colocar ou não um “leme de cauda”, etc e atirar para ver que distância é percorrida antes de inevitavelmente aterrar, ou melhor, cair! Em momento algum se pretende que o programa, tal como o avião, dure “ad aeternum”, sendo o interesse apenas no lapso de tempo que ele durará até ser totalmente removido.

Continuar a ler

Segredos de Numeração

Neste mundo moderno, tudo é um número (ou vários). Neste artigo veremos alguns exemplos de numerações utilizadas em aplicações de negócio, o seu significado, como construí-los e como validá-los. Uma explicação mais detalhada da matemática dos dígitos de controlo deixa-se para o leitor.

Um dígito de controlo (check digit), que pode ser numérico ou alfanumérico, é um valor que pode integrar ou ser separado do número original e que valida possíveis erros de introdução. O erro mais habitual é a troca acidental da ordem de dois dígitos. E.g. “xxxx12xx” ou “xxxx21xx”.

Continuar a ler

Wifi Air Denial

Nesta edição caro leitor, trazemos até vós um artigo acerca de uma exploit, a WIFI AIR DENIAL.

Esta exploit foi conhecida pela primeira vez em 2011. De uma forma simples, esta exploit consiste em fazer que quando um dispositivo envia um pacote de autenticação a um access point/router, antes do mesmo responder ao pedido do dispositivo – o “nosso device” responda dizendo que não aceita a autenticação impedindo-o de utilizar o wifi.

Continuar a ler

“30 30 37 – For Your Eyes Only”

52 61 72 21 1A 07 00 CF 90 73 00 00 0D 00 00 00 00
00 00 00 E2 31 7A 00 80 23 00 4C 00 00 00 58 00 00
00 02 C5 15 EF F0 FD 09 96 49 1D 33 03 00 01 00 00
00 43 4D 54 09 15 14 CF DD 00 CF D4 A2 A0 18 E9 97
41 27 C0 6D 83 06 2E 37 02 91 51 68 12 85 45 F5 FA
3F 60 DD 37 7D B5 56 45 91 E1 94 6E C7 43 0E 0F 11
FB 1A 40 8A D2 DB A9 6B 89 1E 9A 24 F9 4C 60 87 F3
71 EA 3E 27 76 3B 2D CF E1 EA AA A8 0C 89 74 20 90
40 00 4D 01 00 00 DE 05 00 00 02 D3 19 66 BE D5 09
96 49 1D 35 0D 00 20 00 00 00 54 6F 70 53 65 63 72
65 74 2E 54 58 54 F0 BF 98 1C 64 9C 09 96 49 8F B8
89 9C 09 96 49 8F B8 89 0D 41 0C 8D 53 D5 01 13 8D
5E F9 08 0D DC D9 F9 09 3B FF 24 B5 66 0B D1 7A 46
58 D8 E2 25 AF FD 2F F0 01 30 1E 0A 75 4C 38 E5 3C
34 C0 78 04 AB CC 54 C7 C1 F8 E7 E1 99 6D B5 34 A3
2E CA 10 33 FB 16 42 84 1B E9 09 E3 5A 6E E2 9D B1
32 2F C6 90 64 07 4E 93 24 EA 2D 38 AC CE 09 D1 AA
CE E7 08 C3 E3 D5 52 01 40 F9 9B CE 97 41 3A 80 D8
22 BB 82 7B 2C 3A 30 95 6E 24 13 8E 4A AC 81 D8 A0
C8 75 05 B5 17 44 E5 E7 AE C9 D2 55 07 97 76 CF 1C
AB 85 47 C0 8D A8 0B D6 58 6E 0B 52 90 72 A3 CF E8
E3 1B CC FA 26 96 6D 10 FC 9C 83 ED 4E 5D 7E 9A 2E
5A 27 6A 2D A8 A8 A8 B5 2E 87 AF A1 A7 2F E0 2F F8
4B 02 8B 77 C5 B4 97 F8 31 30 AB 77 4F 40 D9 FF AA
AC 5E 6B DC 6B 0F 69 2A C5 82 8D 97 74 AD F4 CA 94
79 37 B2 47 5A 27 BB 38 1F 66 4B 8C BC 93 72 A1 AB
0C 60 CB AF 23 CC 2B C7 96 08 4E 99 F3 48 3A 72 B0
21 AB 09 74 5C 46 73 EC 4D 68 F9 D1 04 5A DB E4 2E
69 93 7E 89 8E D3 3C 93 D9 71 94 BC E7 5A 2A B0 4B
E4 32 D2 67 D3 4B 38 55 18 9E D3 E9 AE 89 37 79 8F
E6 78 0F 7E 4B 3D 5E DE 17 1E 94 FF 25 91 7F 29 5F
48 C4 3D 7B 00 40 07 00 00 00 00 00 00 00 00 00 00 00

NSA Secrets – Hacking SQL Server – Dynamic Data (UN)Masking

Qualquer sistema informático pode ser atacado. É inevitável, nada é 100% seguro. Por vezes não depende dos programadores. O sistema pode ser totalmente robusto e um ser humano, para “facilitar”, cria acidentalmente buracos de segurança.

Este artigo sobre Hacking, em particular a SQL Server, vem na sequência duma sessão com o mesmo nome que fiz mais de uma dezena de vezes (maioritariamente no estrangeiro), e cujos exemplos aqui partilho (e eventualmente também em futuras edições).

Continuar a ler

Estratégias de jogos Aplicadas a Segurança Computacional

O estudo aqui relatado trata de um Serious Game que tem como objectivo propor desafios relacionados com a segurança computacional, em que o jogador terá que utilizar a lógica para solucioná-los. Esse jogo tem como intuito final ensinar a utilização de estratégias de jogos aplicada à segurança, para solucionar problemas de segurança actuais.

Palavras-Chaves: Jogos; Segurança; Aprendizagem.

Introdução

A segurança computacional constitui uma parte bastante importante e crescente nos dias actuais dentro da tecnologia moderna. Ela é responsável pela protecção de dados e equipamentos com o intuito final de preservar o seu valor para um indivíduo, empresa ou organização.

Continuar a ler