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?