Os programas podem acessar a Internet de várias formas, por exemplo usando bibliotecas como libcurl . Você pode detectar aqueles usando ldd
e verificar quais símbolos estão sendo usados no binário usando objdump
novamente e ler a documentação para descobrir o que as várias funções fazem.
Mas se você está tentando checar um binário hostil, isso não será suficiente: o binário pode chamar o kernel usando chamadas do sistema diretamente para abrir sockets etc., ou pode carregar bibliotecas usando dlopen(3)
para fazer é mais difícil detectar seu uso.
Se você deseja executar o binário sem acesso à rede, pode unshare
it do namespace da rede:
unshare -n binary
Você precisa fazer isso como root, portanto, convém su
voltar para outro usuário (talvez não seja seu, se for um binário hostil):
unshare -n su sacrificialuser -c binary
Como apontado por Gilles , isso não protege você de outros efeitos colaterais da execução do binário pode ter, incluindo a configuração de um cronjob que acessa a rede em nome do executável para qualquer finalidade.
Como alternativa, você pode configurar as regras iptables
ou nftables
para eliminar (e registrar) todo o tráfego de rede do binário; ou melhor ainda, configure uma VM e execute o binário dentro dela (e depois pare a VM).