Entradas, verificadas antes de confiar en ellas.
SI-10 (validación de entrada de información) es el control de NIST 800-53 que establece que un sistema debe verificar la validez de las entradas que acepta. Una entrada no validada es la forma en que una solicitud hace que un sistema realice algo que no debería: leer un archivo fuera de su directorio, llamar a un host que no debe, o procesar datos malformados. La validación reside en el código que recibe la entrada, y es fácil eliminarla sin que nadie note la consecuencia.
The shapes the same control failure takes.
La validación de entrada se debilita cuando un cambio permite que una entrada no confiable pase sin verificación. Las formas recurrentes:
Una ruta de archivo se construye a partir de una entrada no validada
Un nombre proporcionado por el usuario se une a una ruta sin verificación, por lo que un valor manipulado con ../ puede escapar del directorio previsto (traversal de ruta).
Una URL o host proviene de una entrada no validada
Un destino de solicitud se toma de la entrada sin una lista de permitidos, por lo que el servidor puede ser obligado a llamar a hosts internos o no intencionados (falsificación de solicitud del lado del servidor).
Se elimina una verificación de validación
Una verificación del formato, rango o conjunto permitido de una entrada se suprime, por lo que valores malformados o hostiles ahora llegan a la lógica detrás de ella.
Se eliminan verificaciones de límites o longitud
Los límites de tamaño o longitud en la entrada se retiran, por lo que cargas útiles sobredimensionadas o malformadas pasan sin filtrarse.
Una lista de permitidos se reemplaza por aceptar cualquier cosa
Una lista estricta de valores aceptados se flexibiliza para aceptar cualquier entrada, ampliando lo que un solicitante puede proporcionar.
Una ruta de descarga construida a partir de un nombre no validado.
Un endpoint de descarga sirve archivos desde un directorio de subidas por nombre. Un cambio pasa el nombre de archivo del usuario directamente a la ruta y elimina la verificación de la lista de permitidos, por lo que una solicitud con un nombre manipulado escapa del directorio y lee archivos que no debería.
function download(name) {- if (!isAllowedFile(name)) return notFound() return readFile(path.join(UPLOAD_DIR, name))}Sin la verificación, un nombre manipulado como ../../etc/passwd escapa del directorio de subidas (traversal de ruta) y lee archivos arbitrarios. SI-10 (validación de entrada de información) espera que las entradas se verifiquen para su validez. Valide el nombre contra una lista de permitidos, o resuelva la ruta y confirme que permanece dentro del directorio antes de leer.
La validación de entrada se verifica donde los datos no confiables entran.
Una evaluación bajo NIST 800-53 examina si un sistema valida las entradas que acepta en sus límites de confianza: ¿se verifican los nombres de archivos, URLs, identificadores y cargas útiles antes de usarse? Un cambio que eliminó una validación o construyó una ruta o solicitud a partir de una entrada sin procesar es la debilidad concreta detrás de esto, y es visible en el diff para el manejador.
Una revisión, no una suite SAST completa.
heygrc marca los cambios que afectan a SI-10 y cita el control para que la corrección ocurra en la solicitud de extracción. No es un reemplazo para su análisis estático o fuzzing. Detecta el momento en que un cambio permite que una entrada no confiable pase sin verificación, en el diff.