Posso sapere se uno script python è protetto dalla trasmissione di dati sensibili analizzandone le importazioni?

0

Un esperimento mentale

Il mio obiettivo è sapere se, e in che modo, uno script python di terze parti a cui possono essere affidate informazioni sensibili, può essere considerato attendibile a un livello fondamentale.

Fondamentalmente questa domanda è, può uno script Python comunicare con una terza parte senza importare uno di un insieme di moduli core per facilitare una comunicazione?

Chiedo questo nel contesto della revisione di uno script che converte un database di password. link

E al momento della scrittura, lo script importa solo:

import argparse
import csv
import datetime
import logging
import operator  # Toolkit
import re
import sys
import xml.etree.ElementTree as ET  # Saves data, easier to type

Non penso che ci siano importazioni dinamiche in questo caso; Le importazioni dinamiche cucirebbero implicita sfiducia nei miei confronti a causa della complessità.

So che il modulo sys può toccare un paio di stream specifici.

Dato un insieme di importazioni conosciute , in realtà una catena di dipendenze; Si può affermare che un determinato script è fondamentalmente incapace di esporre i dati sensibili? A causa della sua mancanza di importazione del codice nativo per facilitare detto trasporto?

La considerazione; le chiamate open (o file alias) sono disponibili in tutti gli script, poiché sono un tipo di dati di base; E a causa della flessibilità dei file Unix, le chiamate ad aprire / file dovrebbero essere considerate una superficie di attacco?

    
posta ThorSummoner 13.05.2015 - 01:46
fonte

1 risposta

1

Semplicemente non puoi pensare che un programma o uno script siano al sicuro solo sulle loro importazioni. È facile combinare le funzioni o abusare di alcune funzionalità "sicure" per fare qualcosa di inaspettato (come usare le query temporali per trasmettere dati a un server di comando e controllo, o ingannare il sistema per eseguire l'arricciamento con un carico utile dei dati)

L'unico modo per sapere è di fare una corretta revisione del codice dello script e di valutare se uno script è "sicuro" o meno (sicuro essendo ciò che si definisce come salva da usare) non ci sono importazioni ad alto rischio aggiunte allo script nel tuo post, ma dovresti anche controllare i comandi bash / system / eval che "escono" dall'ambiente python

    
risposta data 13.05.2015 - 02:13
fonte

Leggi altre domande sui tag