Página 1 de 2

[RESUELTO] Cómo cifrar tus contraseñas de Wapt

Publicado: 18 de julio de 2018 - 15:49
por louisinger
Hola,

en uno de mis scripts subo un paquete al servidor. Esta función requiere dos contraseñas (contraseña de administrador y contraseña de clave privada). ¿Es necesario incluir la contraseña directamente en el código, dado que está incluida en el paquete?

Re: Cifrado de contraseñas de Wapt

Publicado: 18 de julio de 2018 - 23:01
por sfonteneau
louisinger escribió: 18 de julio de 2018 - 15:49 ¿Estamos obligados a codificar la contraseña directamente en el código sabiendo que está presente en los paquetes?
No entiendo, ¿pusiste la contraseña de tu servidor wapt y la contraseña de tu clave privada en un paquete wapt?

Re: Cifrado de contraseñas de Wapt

Publicado: 19 de julio de 2018 - 08:22
por louisinger
En un paquete llamado `dispatch` que permite la instalación automática de paquetes de GRUPO,
realizo una compilación-carga en el script después de editar mi paquete de host. Por eso mi contraseña terminó en un paquete.

Re: Cifrado de contraseñas de Wapt

Publicado: 19 de julio de 2018 - 14:10
por sfonteneau
louisinger escribió: 19 de julio de 2018 - 8:22 a. m. En un paquete llamado dispatch que permite la instalación automática de paquetes GROUP.
Así que hago una build-upload en el script después de editar mi paquete host. Por eso mi contraseña terminó en un paquete.
No debes hacer eso en absoluto. Los paquetes Wapt están disponibles para que cualquiera los lea.
No se debe colocar ninguna información confidencial en un paquete a menos que esté cifrada

Paquete de ejemplo: https://wapt.lesfourmisduweb.org/detalle ... 4_all.wapt

Si desea crear paquetes wapt usando un script (un crontab) en una máquina:
viewtopic.php?f=9&t=1341

De lo contrario, si entiendo correctamente lo que quieres hacer, te aconsejo leer esto:

https://www.wapt.fr/fr/doc/CreationPaqu ... quets-wapt

Esto no crea un paquete de máquina pero funciona muy bien.

Otra posibilidad:
https://blog.lesfourmisduweb.org/gestio ... paquete electrónico/


En resumen, explícanos qué quieres hacer y te daremos una solución.
Pero claramente, ¡no guardes tu contraseña wapt en un paquete!

Re: Cifrado de contraseñas de Wapt

Publicado: 19 de julio de 2018 - 15:51
por louisinger
Estoy de acuerdo en que almacenar la contraseña en un script dentro de un paquete es contraproducente. Me explico:
Quería crear mis grupos de usuarios según su nombre de host. Así que creé los paquetes de grupo y programé mi script. Según el nombre de host del cliente, el paquete `mnt-dispatch` instala el paquete de grupo correspondiente. Inicialmente, usé `Wapt.install(group_name)`, pero esto causó un problema: el paquete se instaló en la máquina, pero no se convirtió en una dependencia. Por eso quise reemplazar `Wapt.install()` por `Wapt.edit_host()` y `Wapt.build_upload()`, ya que `edit_host()`, a diferencia de `install()`, me permite agregar una dependencia al paquete del host.

Aquí está el código para el archivo setup.py del paquete mnt-dispatch:

Código: Seleccionar todo

def install():
    print('Start dispatching')
    myWapt = Wapt(config_filename = makepath('c:', programfiles32, 'wapt', 'wapt-get.ini'))
    print("write into ini file")
    inifile_writestring(WAPT.config_filename, 'global', 'personal_certificate_path', '\\\\**************\c$\private\********.crt')
    print("get hostname and computername")
    computer_name = environ['COMPUTERNAME']
    print('computer name = %s'%computer_name)
    host_name = myWapt.host_packagename()
    print('host name = %s'%host_name)
    pathToTempDirectory = r'C:\Temp\%s'%computer_name
    if isdir(pathToTempDirectory):
        print('remove temp tree : ' + pathToTempDirectory)
        remove_tree(pathToTempDirectory)
    print('site name :')
    site_name = computer_name[0:4]
    print("site name is : %s" %site_name)
    group_name = alias_groupe.get(switcher.get(site_name, 0), 'hors-lot')
    print("group name is : %s"%group_name)
    myWapt.edit_host(host_name, target_directory = "C:\Temp\%s"%computer_name, append_depends = group_name)
    myWapt.build_upload(r'C:\Temp\%s'%(computer_name), private_key_passwd = '***', wapt_server_user = 'admin', wapt_server_passwd = '***')
    return 0
¿Entiendes un poco mejor mi problema ahora? Disculpa si no te ha quedado claro.

Re: Cifrado de contraseñas de Wapt

Publicado: 19 de julio de 2018 - 16:34
por sfonteneau
En este caso, es necesario crear un script de Python independiente que se ejecute como una tarea programada.

No lo pongas dentro de un paquete. De lo contrario, nos veremos obligados a poner las contraseñas en el paquete.

Algoritmo de script:

- Escaneo de base de datos
- Para cada artículo, analice el inventario para determinar qué debe agregarse como dependencia.

Código: Seleccionar todo

data = json.loads(wgets('https://%s:%s@%s/api/v1/hosts?columns=host_certificate&limit=10000' % (user,password,urlserver)))
for value in data['result']:
	blabalba
- Editar el paquete de la máquina.
- Agregar dependencias
- Subir el paquete de la máquina.

Código: Seleccionar todo

    myWapt = Wapt(config_filename=makepath(r'C:\Users\Administrateur\AppData\Local\waptconsole\waptconsole.ini'))
    tmpdir = 'c:/dummy'
    myWapt.edit_host(machine,target_directory=tmpdir,append_depends='tis-firefox')
    myWapt.build_upload(r'c:\waptdev\test',private_key_passwd=ur'passwordkey',wapt_server_user='admin',wapt_server_passwd=ur'passwordserver')

Re: Cifrado de contraseñas de Wapt

Publicado: 19 de julio de 2018 - 21:26
por vcardon
louisinger escribió: 19 de julio de 2018 - 8:22 a. m. En un paquete llamado dispatch que permite la instalación automática de paquetes GROUP.
Así que hago una build-upload en el script después de editar mi paquete host. Por eso mi contraseña terminó en un paquete.
Simón, respondiste perfectamente.

Estoy agregando otra capa para asegurar que aquellos que usan WAPT NUNCA pongan sus contraseñas en un paquete, ni en Community ni en Enterprise.

De hecho, en el modelo de seguridad de WAPT, los paquetes no son un activo sensible en el sentido de ciberseguridad.

Si coloca su contraseña clave y la contraseña de su servidor en su paquete y su paquete es recuperado por una entidad no autorizada y maliciosa, entonces controlará su red.

Una auditoría post mortem realizada por un auditor de seguridad demostrará sin lugar a dudas que su firma se utilizó para implementar el malware, y será muy difícil demostrar que no causó el daño intencionalmente. De hecho, la documentación de WAPT es clara, explícita e inequívoca en este punto.

En el mejor de los casos, usted sólo tendrá que buscar un nuevo trabajo lastrado por su nueva reputación; de lo contrario, tendrá que buscar un buen abogado si su error ha provocado un accidente con consecuencias materiales, financieras o humanas irreparables.

Así que, un consejo para los sabios.

Vicente

Re: Cifrado de contraseñas de Wapt

Publicado: 20 de julio de 2018 - 08:16
por louisinger
sfonteneau escribió: 19 de julio de 2018 - 16:34 En este caso, es necesario crear un script de Python independiente que se ejecute como una tarea programada.

No lo pongas dentro de un paquete. De lo contrario, nos veremos obligados a poner las contraseñas en el paquete.

Algoritmo de script:

- Escaneo de base de datos
- Para cada artículo, analice el inventario para determinar qué debe agregarse como dependencia.

Código: Seleccionar todo

data = json.loads(wgets('https://%s:%s@%s/api/v1/hosts?columns=host_certificate&limit=10000' % (user,password,urlserver)))
for value in data['result']:
	blabalba
- Editar el paquete de la máquina.
- Agregar dependencias
- Subir el paquete de la máquina.

Código: Seleccionar todo

    myWapt = Wapt(config_filename=makepath(r'C:\Users\Administrateur\AppData\Local\waptconsole\waptconsole.ini'))
    tmpdir = 'c:/dummy'
    myWapt.edit_host(machine,target_directory=tmpdir,append_depends='tis-firefox')
    myWapt.build_upload(r'c:\waptdev\test',private_key_passwd=ur'passwordkey',wapt_server_user='admin',wapt_server_passwd=ur'passwordserver')
¡Será un script! Sin embargo, el problema persiste: mi contraseña está predefinida. Creo que al principio del script le pediré al usuario ambas contraseñas.

@vcardon Entiendo el riesgo de codificar una contraseña en un paquete. Por eso pedí una alternativa, pero gracias por tu advertencia.

Re: [RESUELTO] Cómo cifrar tus contraseñas de Wapt

Publicado: 20 de julio de 2018 - 09:31
por sfonteneau
Para su información

Código: Seleccionar todo

import waptguihelper
urlserver = inifile_readstring(makepath(install_location('WAPT_is1'),'wapt-get.ini'),'global','wapt_server')
mycrt = inifile_readstring(makepath(user_local_appdata(),'waptconsole','waptconsole.ini'),'global','personal_certificate_path')

passwordkey = waptguihelper.key_password_dialog('Password for private key',mycrt, '')
credentials_url = waptguihelper.login_password_dialog('Credentials for wapt server',urlserver,'admin','')

print(passwordkey['keypassword'])
print(credentials_url['user'])
print(credentials_url['password'])


Re: [RESUELTO] Cómo cifrar tus contraseñas de Wapt

Publicado: 20 de julio de 2018 - 10:02 a. m.
por louisinger
sfonteneau escribió: Para su información

Código: Seleccionar todo

import waptguihelper
urlserver = inifile_readstring(makepath(install_location('WAPT_is1'),'wapt-get.ini'),'global','wapt_server')
mycrt = inifile_readstring(makepath(user_local_appdata(),'waptconsole','waptconsole.ini'),'global','personal_certificate_path')

passwordkey = waptguihelper.key_password_dialog('Password for private key',mycrt, '')
credentials_url = waptguihelper.login_password_dialog('Credentials for wapt server',urlserver,'admin','')

print(passwordkey['keypassword'])
print(credentials_url['user'])
print(credentials_url['password'])

No se puede encontrar el módulo waptguihelper :/