- Python 3.9
- Streamlit
- TensorFlow
- Numpy
- Pickle
- Warnings
- Plotly
- Streamlit: Para crear la interfaz de la aplicación web.
- TensorFlow: Para cargar y utilizar el modelo CNN preentrenado.
- Numpy: Para manejar matrices y operaciones numéricas.
- Pickle: Para cargar los modelos PCA y escalador preentrenados.
- Warnings: Para suprimir advertencias innecesarias.
- Plotly: Para crear visualizaciones interactivas.
Para ejecutar la aplicación, ejecute el siguiente comando en su terminal:
streamlit run app.pyLa aplicación CiphraGuard es una herramienta para la predicción de clases de peticiones utilizando un modelo de red neuronal convolucional (CNN). Los usuarios deben autenticarse para acceder a la funcionalidad principal, donde ingresan características específicas de la petición para obtener una predicción sobre si la petición es maliciosa y de qué tipo (por ejemplo, Ransomware, Spyware, Trojan). La aplicación también proporciona una visualización de las probabilidades de cada clase utilizando gráficos interactivos.
Primero, se importan las librerías necesarias y se configuran ciertos parámetros, como desactivar advertencias innecesarias y definir las credenciales de usuario. También se establece el título de la página de la aplicación.
Se carga el modelo CNN preentrenado usando TensorFlow. Además, se define un diccionario que mapea nombres de variables a sus tipos de datos correspondientes, lo que facilita la entrada de datos por parte del usuario.
Se define una función de autenticación para validar las credenciales del usuario. Se inicializa el estado de la sesión para controlar si el usuario ha iniciado sesión.
Se crea una página de inicio de sesión donde los usuarios deben ingresar su nombre de usuario y contraseña. Si las credenciales son correctas, se actualiza el estado de la sesión para indicar que el usuario ha iniciado sesión correctamente.
Si el usuario está autenticado, se muestra la página principal de la aplicación. Aquí, los usuarios ingresan las características de la petición que desean analizar. Se recopilan las entradas del usuario, se convierten a una matriz NumPy y se procesan utilizando PCA y un escalador previamente entrenados.
Los usuarios ingresan las características de la petición, que se convierten en una matriz y se transforman utilizando PCA y un escalador. Estas características preprocesadas se preparan para la predicción.
Cuando el usuario presiona el botón de predicción, el modelo CNN realiza una predicción basada en las características preprocesadas. Se determina la clase predicha y se muestran las probabilidades de cada clase. Los resultados se visualizan utilizando un gráfico interactivo creado con Plotly.
Dependiendo del estado de inicio de sesión del usuario, se muestra la página de inicio de sesión o la página principal de la aplicación. Esto asegura que solo los usuarios autenticados puedan acceder a la funcionalidad principal de la aplicación.