Ir para o conteúdo
ou

Software livre Brasil

0 integrantes

Nenhum(a)

Red Hat Magazine

redirection forbidden: http://www.redhat.com/magazine/rss20.xml -> https://www.redhat.com/magazine/rss20.xml

 Voltar a torontux
Tela cheia Sugerir um artigo

Escondendo senhas no shell script - SHC Compilador

28 de Outubro de 2013, 14:43 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 245 vezes
Sou verdadeiramente apaixonado por shell script, é uma linguagem simples, poderosa, flexível e aceitavelmente performática! Entretanto, por tratar-se de uma linguagem script, todo o código escrito fica "legível" e isso pode ser uma falha no quesito segurança, principalmente se o seu script armazenar senhas de acesso e outras informações importantes.

Para resolver essa questão podemos utilizar o SHC (SHell Compiler).

Mas o que o shc faz? Basicamente este interessante programa vai pegar o código shell e criar uma tradução em C, tornando desta forma o script compilável. É óbvio que esse tipo de "tradução" vai criar um código genérico e não recomendável para grandes programas feitos em shell, entretanto em um small code, pode ajudar a esconder algumas coisas como por exemplo senhas de acesso a banco e etc...


Vamos exemplificar:

1 - Baixe o shc e descompacte o pacote:

[root@serv]# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz
[root@serv]# tar -zxvf shc-3.8.9.tgz

2 - Compile-o

Dentro da pasta do source do compilador:

[root@serv]# cd shc-3.8.9/
[root@serv]# cp shc-3.8.9.c shc.c && make

3 - Copie o binário shc para dentro da pasta /usr/local/sbin e pronto, estamos preparados para compilar nossos scripts!

Criei um pequeno exemplo chamado banco.sh, onde precisamos passar usuário e senha de acesso a uma base mysql:

#!/bin/bash

USUARIO="toronto"
SENHA="123456"

/usr/bin/mysql  -u $USUARIO -D teste --password=$SENHA -e "select ip from teste;"

* No exemplo acima, o script conecta no MySQL local e faz uma consulta simples na tabela teste que está na database teste.

Vamos agora compilar esse script com o comando:

[root@serv]# shc -v -f banco.sh
shc shll=bash
shc [-i]=-c
shc [-x]=exec '%s' "$@"
shc [-l]=
shc opts=
shc: cc  banco.sh.x.c -o banco.sh.x
shc: strip banco.sh.x
shc: chmod go-r banco.sh.x

Pronto! Você tem uma versão binária do seu script  =)

   Perceba que o shc além do binário (que no nosso caso chama-se banco.sh.x) gerou o "banco.sh.x.c", ou seja, você pode compilar usando o gcc também (gcc -o banco banco.sh.x.c).









Fonte: http://torontux.blogspot.com/2013/10/escondendo-senhas-no-shell-script-shc.html

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.