Linux e ferramentas de desenvolvimento
Bash básico para trabalho de segurança
Aprenda pipes, redirecionamento, variáveis, laços, códigos de saída e set -euo pipefail, e use isso para contar logins falhos e gerar hashes.
GitHub para iniciantes: a diferença entre Git e GitHub, os termos básicos, um exercício local com Git e como checar um projeto antes de rodá-lo.
O GitHub é um site onde pessoas guardam, compartilham e revisam projetos de software. A maioria desses projetos é controlada com o Git, uma ferramenta de controle de versão que registra cada mudança em um conjunto de arquivos. O GitHub mantém repositórios Git online, oferece uma interface web e dá às equipes pull requests, issues e releases para trabalharem juntas no código.
Resposta curta: o Git é a ferramenta, e o GitHub é um dos lugares onde projetos Git são hospedados e discutidos.
O Git roda no seu próprio computador. Você pode transformar qualquer pasta em um repositório e registrar mudanças sem conexão com a internet e sem conta no GitHub.
O GitHub é um serviço online. Ele guarda cópias de repositórios Git, mostra arquivos e histórico no navegador e acrescenta recursos como controle de issues e pull requests. Outros serviços também hospedam repositórios Git, então o GitHub é só um dos lugares onde ficam projetos Git.
Criar um repositório você mesmo é a forma mais rápida de entender esses termos.
Você não precisa do GitHub para aprender o básico. Instale o Git pelo site oficial, git-scm.com, e depois confira a versão instalada:
git --versionNa máquina Windows em que este artigo foi conferido, o comando imprimiu:
git version 2.49.0.windows.1A sua saída vai mostrar outra versão. Depois, configure o nome e o e-mail que o Git anexa a cada commit. Use os seus próprios dados:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"Agora crie um repositório de prática com duas branches e dois commits:
mkdir security-learning-notes
cd security-learning-notes
git init
printf '# security-learning-notes\n' > README.md
git add README.md
git commit -m "Add README"
git switch -c add-glossary
printf -- '- DNS\n- HTTPS\n- hash\n- encryption\n' > glossary.md
git add glossary.md
git commit -m "Add glossary terms"
git branchAo rodar git branch nesse repositório, a saída foi:
* add-glossary
masterO asterisco marca a branch em que você está. O nome da branch padrão pode ser master ou main, conforme a sua configuração do Git. No Windows, o Git também pode mostrar avisos sobre quebras de linha. Esses avisos não alteram os commits.
O guia Hello World do GitHub percorre esse fluxo no navegador. Menus e nomes de botões mudam com o tempo, então siga o guia oficial se a sua tela não corresponder a este texto:
security-learning-notes. Escolha público ou privado.README.md com uma frase que descreva o projeto.add-glossary.A etapa do pull request importa mesmo num repositório pessoal. A visualização do diff mostra exatamente quais linhas mudaram antes que qualquer coisa chegue à branch principal.
Para enviar um repositório local ao GitHub, crie um repositório vazio no site e depois conecte pelo terminal. OWNER e REPOSITORY são placeholders. Troque main pelo nome da sua branch se o git branch mostrar master:
git remote add origin https://github.com/OWNER/REPOSITORY.git
git push -u origin mainUm git clone copia o repositório com o histórico completo:
git clone https://github.com/OWNER/REPOSITORY.gitSubstitua OWNER e REPOSITORY pelo dono e pelo nome que aparecem na barra de endereço da página do projeto. O clone baixa arquivos. Ele não executa nada do projeto e não prova que o projeto é seguro. Um ZIP baixado pelo site traz os arquivos sem histórico, o que serve para leitura, mas perde a trilha de commits.
Antes de rodar uma ferramenta que você nunca usou, examine o próprio repositório:
install.sh ou o script de instalação altera pacotes do sistema, instala serviços ou pede privilégios de administrador?Leia os scripts de instalação antes de executá-los. Um README que manda colar um comando no terminal está pedindo que você rode código na sua máquina.
Ferramentas de segurança servem para trabalho autorizado. Pratique em máquinas suas, em um laboratório que você montou ou em alvos para os quais você tem permissão por escrito.
Confundir Git com GitHub é um erro frequente. O Git funciona no seu computador e não precisa de site. O GitHub é um serviço construído em volta do Git.
Enviar segredos para o repositório é o segundo. Um token ou uma senha enviados a um repositório público podem ser copiados por qualquer pessoa que os encontre. Apagar a linha em um commit posterior não a remove do histórico. Revogue a credencial primeiro e depois siga o guia do GitHub sobre como remover dados sensíveis de um repositório.
Rodar comandos de um README sem lê-los é o terceiro. Scripts de instalação podem alterar o seu computador, então leia antes de executar.
O próximo artigo desta trilha mostra como criar uma conta no GitHub e o seu primeiro repositório. Quando esse básico virar rotina, você pode começar a olhar ferramentas de segurança. Teste cada uma em um laboratório que você controla antes de confiar nela para qualquer coisa real.
Linux e ferramentas de desenvolvimento
Aprenda pipes, redirecionamento, variáveis, laços, códigos de saída e set -euo pipefail, e use isso para contar logins falhos e gerar hashes.
Linux e ferramentas de desenvolvimento
Donos, grupos, bits rwx, chmod, umask e setuid no Linux, com laboratório que testa o acesso de outro usuário e procura modos arriscados.
Linux e ferramentas de desenvolvimento
Como funcionam as chaves SSH de host e de usuário, por que Ed25519 com senha de proteção é o padrão e como proteger o login em uma VM de laboratório.