Pagina 1 di 2

[RISOLTO] Crittografia delle password Wapt

Pubblicato: 18 luglio 2018 - 15:49
di louisinger
Salve,

in uno dei miei script carico un pacchetto sul server. Questa operazione richiede due password (password di amministratore e password della chiave privata). Dobbiamo necessariamente inserire la password direttamente nel codice, dato che è inclusa nei pacchetti?

Re: Crittografia delle password Wapt

Pubblicato: 18 luglio 2018 - 23:01
di sfontenau
louisinger ha scritto: 18 luglio 2018 - 15:49 Dobbiamo inserire la password direttamente nel codice, pur sapendo che è presente nei pacchetti?
Non capisco, hai inserito la password del server wapt e la password della tua chiave privata in un pacchetto wapt?

Re: Crittografia delle password Wapt

Pubblicato: 19 luglio 2018 - 08:22
di louisinger
In un pacchetto chiamato `dispatch` che consente l'installazione automatica dei pacchetti GROUP,
eseguo un build-upload nello script dopo aver modificato il mio pacchetto host. Ecco perché la mia password è finita in un pacchetto.

Re: Crittografia delle password Wapt

Pubblicato: 19 luglio 2018 - 14:10
di sfontenau
louisinger ha scritto: 19 lug 2018 - 8:22 AM In un pacchetto chiamato dispatch che consente l'installazione automatica dei pacchetti GROUP.
Quindi eseguo un build-upload nello script dopo aver modificato il mio pacchetto host. Ecco perché la mia password è finita in un pacchetto.
Non devi assolutamente farlo. I pacchetti Wapt sono accessibili a chiunque voglia leggerli.
Nessuna informazione sensibile dovrebbe essere inserita in un pacco, a meno che non sia crittografata

Pacchetto di esempio: https://wapt.lesfourmisduweb.org/detail ... 4_all.wapt

Se vuoi creare pacchetti wapt utilizzando uno script (un crontab) su una macchina:
viewtopic.php?f=9&t=1341

Altrimenti, se ho capito bene cosa vuoi fare, ti consiglio di leggere questo:

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

Questo non crea un pacchetto macchina ma funziona molto bene.

Un'altra possibilità:
https://blog.lesfourmisduweb.org/gestio ... e-package/


In breve, spiegaci cosa vuoi fare e ti daremo una soluzione.
Ma ovviamente non conservare la password wapt in un pacchetto!

Re: Crittografia delle password Wapt

Pubblicato: 19 luglio 2018 - 15:51
di louisinger
Sono d'accordo che memorizzare la password in uno script all'interno di un pacchetto sia controproducente. Lasciatemi spiegare:
Volevo creare i miei gruppi di utenti in base al loro nome host. Quindi ho creato i pacchetti di gruppo e ho scritto il codice del mio script. A seconda del nome host del client, il pacchetto `mnt-dispatch` installa il pacchetto di gruppo corrispondente. Inizialmente, ho usato `Wapt.install(group_name)`, ma questo ha causato un problema: il pacchetto è stato installato sulla macchina ma non è diventato una dipendenza! Ecco perché ho voluto sostituire `Wapt.install()` con `Wapt.edit_host()` e `Wapt.build_upload()` perché `edit_host()`, a differenza di `install()`, mi permette di aggiungere una dipendenza al pacchetto host.

Ecco il codice per il file setup.py del pacchetto mnt-dispatch:

Codice: Seleziona tutto

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
Ora hai capito un po' meglio il mio problema? Scusa se non è chiaro.

Re: Crittografia delle password Wapt

Pubblicato: 19 luglio 2018 - 16:34
di sfontenau
In questo caso, è necessario creare uno script Python separato che venga eseguito come attività pianificata.

Non metterlo in un pacco. Altrimenti saremo costretti a inserire le password nel pacchetto.

Algoritmo di script:

- Scansione del database
- Per ogni articolo, analizzare l'inventario per determinare cosa deve essere aggiunto come dipendenza.

Codice: Seleziona tutto

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
- Modificare il pacchetto macchina.
- Aggiungi dipendenze
- Carica il pacchetto macchina.

Codice: Seleziona tutto

    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: Crittografia delle password Wapt

Pubblicato: 19 luglio 2018 - 21:26
di vcardon
louisinger ha scritto: 19 lug 2018 - 8:22 AM In un pacchetto chiamato dispatch che consente l'installazione automatica dei pacchetti GROUP.
Quindi eseguo un build-upload nello script dopo aver modificato il mio pacchetto host. Ecco perché la mia password è finita in un pacchetto.
Simon, hai risposto perfettamente.

Aggiungo un ulteriore livello per garantire che chi utilizza WAPT NON inserisca MAI le proprie password in un pacchetto, né in Community né in Enterprise.

In effetti, nel modello di sicurezza di WAPT, i pacchetti non sono una risorsa sensibile ai fini della sicurezza informatica.

Se inserisci la password della tua chiave e la password del tuo server nel tuo pacchetto e il pacchetto viene recuperato da un'entità non autorizzata e dannosa, questa controllerà la tua rete.

Un audit post-mortem da parte di un revisore della sicurezza dimostrerà senza ombra di dubbio che la tua firma è stata utilizzata per distribuire il malware, e avrai molte difficoltà a dimostrare di non aver causato intenzionalmente il danno. In effetti, la documentazione WAPT è chiara, esplicita e inequivocabile su questo punto.

Nel migliore dei casi, non ti resterà che trovare un nuovo lavoro gravato dalla tua nuova reputazione; in caso contrario, dovrai trovare un buon avvocato se il tuo errore ha causato un incidente con conseguenze materiali, finanziarie o umane irreparabili.

Quindi, un consiglio ai saggi.

Vincenzo

Re: Crittografia delle password Wapt

Pubblicato: 20 luglio 2018 - 08:16
di louisinger
sfonteneau ha scritto: 19 luglio 2018 - 16:34 In questo caso, è necessario creare uno script Python separato che venga eseguito come attività pianificata.

Non metterlo in un pacco. Altrimenti saremo costretti a inserire le password nel pacchetto.

Algoritmo di script:

- Scansione del database
- Per ogni articolo, analizzare l'inventario per determinare cosa deve essere aggiunto come dipendenza.

Codice: Seleziona tutto

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
- Modificare il pacchetto macchina.
- Aggiungi dipendenze
- Carica il pacchetto macchina.

Codice: Seleziona tutto

    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')
Quindi sarà uno script! Tuttavia, il problema rimane lo stesso: la mia password è codificata. Credo che all'inizio dello script chiederò all'utente entrambe le password.

@vcardon Capisco il rischio di codificare una password in un pacchetto. Ecco perché sono venuto a chiederti un'alternativa, ma grazie per l'avvertimento.

Re: [RISOLTO] Crittografia delle password Wapt

Pubblicato: 20 luglio 2018 - 09:31
di sfontenau
PER TUA INFORMAZIONE

Codice: Seleziona tutto

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: [RISOLTO] Crittografia delle password Wapt

Pubblicato: 20 luglio 2018 - 10:02
di louisinger
sfontenau ha scritto: PER TUA INFORMAZIONE

Codice: Seleziona tutto

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'])

Impossibile trovare il modulo waptguihelper :/