Arquivo da Categoria: Segurança

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

Vulnerabilidades Web em 2017

Foi registado um número recorde de vulnerabilidades em 2017 nas aplicações web, incluindo categorias bem conhecidas, como XSS, mas também novas categorias, como desserialização insegura. O número de vulnerabilidades na IoT também cresceu descontroladamente e com um impacto extremamente severo. Também o PHP e o WordPress continuam de mãos dadas no que toca a vulnerabilidades em CMS e server-side. Por fim, uma vulnerabilidade de dia zero (zero day vulnerability) afetou o Apache Struts e que contou com uma das maiores violações de segurança do ano.

Continuar a ler

RGPD – O Antes e o Depois

O Regulamento Geral de Protecção de Dados (RGPD) entra em vigor a 25 de Maio de 2018, com o intuito de tornar as leis da União Europeia (UE) mais homogéneas, em termos do tratamento e processamento de dados dos cidadãos. Mas as novas normas repercutem-se em todo o mundo, já que mesmo as empresas de fora da UE terão que respeitar o RGPD, desde que lidem com dados de cidadãos europeus.

O Antes

A internet começou a alcançar a maioria da população já nos anos 90. O seu crescimento a larga escala levou a uma partilha de informação massiva e inicialmente descontrolada, os utilizadores não tinham regras, nem sabiam qual seria a dimensão daquela rede e o impacto que isso poderia vir a ter mais tarde. Ao longo dos anos foi partilhada para a rede informação sensível, surgiram também os primeiros websites, sistemas online, p.ex., de e-commerce, e-banking, entre outros, em geral, a internet começava por se tornar o maior canal de partilha de informação sem fronteiras.

Continuar a ler

SoftEther VPN Project, implementação em Windows, GNU/Linux, MacOS, Android, iOS

É comum falar-se em VPNs, de forma a que pareçam complexas, caras e difíceis de configurar, mas como veremos ao longo deste artigo, são até fáceis de configurar e de instalar, até mesmo em dispositivos móveis.

O que é?

Uma VPN é uma virtual private network, ou seja, uma rede virtual privada em que a comunicação dentro da mesma é encriptada ponto-a-ponto.

Continuar a ler

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 Aplicacoes 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