Un experimento mental
Mi objetivo es saber si, y cómo, se puede confiar en un nivel fundamental con un script de Python de un tercero al que se le puede confiar información confidencial.
Básicamente, esta pregunta es, ¿puede un script de Python comunicarse con un tercero sin importar uno de un conjunto de módulos principales para facilitar una comunicación?
Pido esto en el contexto de revisar un script que convierte una base de datos de contraseñas. enlace
Y al momento de escribir, el script solo importa:
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
No creo que haya ninguna importación dinámica en este caso; Las importaciones dinámicas cosería desconfianza implícita conmigo debido a la complejidad.
Sé que el módulo sys puede tocar un par de flujos específicos.
Dado un conjunto de importaciones conocidas , en realidad es una cadena de dependencia; ¿Se puede descartar que un script determinado sea fundamentalmente incapaz de exponer datos confidenciales? ¿Debido a su falta de importación de código nativo para facilitar dicho transporte?
Consideración; las llamadas open
(o file
alias) están disponibles en todas las secuencias de comandos, ya que es un tipo de datos central; Y debido a la flexibilidad de los archivos unix, ¿deberían las llamadas a abrir / presentar se consideran una superficie de ataque?