Explorando Criptografia de Reticulados

1. Goldreich-Goldwasser-Halevi (GGH):

O GGH é um sistema de criptografia de chave pública baseado no Problema de Vetor mais Próximo (CVP) em reticulados. Desenvolvido por Oded Golreich, Shafi Goldwasser e Shai Halevi, seu artigo foi publicado com o título “Public-key cryptosystems from lattice reduction problems.”, onde foi explorado problemas difíceis em reticulados com aplicação em criptografia e possíveis ataques ao sistema proposto.

Pouco depois, o pesquisador Phong Nguyen fez a criptoanálise do GGH, expondo que qualquer texto encriptado vaza informações da mensagem original e que uma cifra pode ser decriptada com a aproximação do Problema de Base Mais Curta, que é uma variação do Problema de Vetor mais Curto (SVP) para matrizes.

Forense Digital: Aquisição de logs e memória volátil/não volátil

Introdução

Quando um incidente de segurança ocorre, é importante obter a imagem de memória do sistema pós incidente, para poder melhor analisar o que ocorreu e como ele foi invadido.

Aquisição de Imagens

É importante diferenciar o conceito de cópia e imagem, especialmente para memória não volátil. A cópia do armazenamento de um dispositivo é a clonagem de todos seus arquivos ainda existentes (ou seja, arquivos deletados não serão copiados, pois o SO não pode mais os reconhecer).

Resolvendo os desafios iniciais de pwn do picoCTF

Esse é um writeup dos 15 desafios iniciais de pwning do picoGym. Você pode encontrar esses desafios em picoGym. Há também um desafio extra no final do post de um outro CTF :)
Vamos começar ^^

buffer overflow 0

Nos é dado este arquivo C:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>

#define FLAGSIZE_MAX 64

char flag[FLAGSIZE_MAX];

void sigsegv_handler(int sig) {
  printf("%s\n", flag);
  fflush(stdout);
  exit(1);
}

void vuln(char *input){
  char buf2[16];
  strcpy(buf2, input);
}

int main(int argc, char **argv){

  FILE *f = fopen("flag.txt","r");
  if (f == NULL) {
    printf("%s %s", "Please create 'flag.txt' in this directory with your",
                    "own debugging flag.\n");
    exit(0);
  }

  fgets(flag,FLAGSIZE_MAX,f);
  signal(SIGSEGV, sigsegv_handler); // Set up signal handler

  gid_t gid = getegid();
  setresgid(gid, gid, gid);

  printf("Input: ");
  fflush(stdout);
  char buf1[100];
  gets(buf1);
  vuln(buf1);
  printf("The program will exit now\n");
  return 0;
}

Ao realizar um checksec, obtemos o seguinte resultado:

Introdução a provas de zero-knowledge - Parte 1

Essa é a parte 1 de um estudo sobre ZKPs. A parte 2 irá conter a implementação desses protocolos utilizando Circom.

O que são Zero-Knowledge Proofs?

ZK Proofs (ou em português algo como “provas de conhecimento zero”) são o que o próprio nome diz: provas de algo ou alguma coisa que não demonstram nenhum “conhecimento” adicional ao verificador.

Um exemplo

Um exemplo bem simples pode ser visto no jogo da caverna:

Broken Access Control: Entendendo Vulnerabilidades de Controle de Acesso

O que é Broken Access Control?

Broken Access Control (BAC), ou Controle de Acesso Quebrado, é uma falha de segurança onde os mecanismos de controle de acesso de um sistema não são implementados ou configurados corretamente, permitindo que usuários mal-intencionados acessem recursos que deveriam estar restritos. Isso pode incluir a visualização de informações confidenciais, a modificação de dados ou a execução de operações privilegiadas.

O que é OWASP Top 10?

O OWASP Top 10 é uma lista publicada pela Open Web Application Security Project (OWASP) que destaca as dez vulnerabilidades mais críticas de segurança em aplicações web. Este documento é amplamente reconhecido e utilizado como um padrão de referência para o desenvolvimento seguro de software. A lista é atualizada periodicamente para refletir as novas ameaças e tendências de segurança.