Come garantire al mio cliente che il mio software è antimalware?

3

Stiamo consegnando un'applicazione che i nostri clienti possono utilizzare sul proprio cluster di rete. Ora, c'è un modo in cui possiamo certificare che il software è a prova di malware e non diffonderà malware nella loro rete? Questo mi ha fatto pensare:

  1. Gli eseguibili che si trovano su un server di file condiviso in cui solo una manciata di utenti può accedervi dovrebbero, in teoria, essere "sicuri". Ma come possiamo mettere un certificato oggettivo in quella dichiarazione?
  2. Inoltre, possiamo scansionare i nostri file e accertarci che i file siano OK. Tuttavia, come possiamo trasmettere questo fatto ai nostri clienti in modo categorico?
posta Lost 20.07.2018 - 20:39
fonte

3 risposte

5

Build riproducibili!

Da link

Reproducible builds are a set of software development practices that create an independently-verifiable path from source code to the binary code used by computers.

Questa tecnica ti consente di dimostrare al tuo cliente che il file binario è stato creato dallo stesso codice sorgente che stai rivendicando con il quale è stato creato. Può assicurare loro che non è stato infettato, manomesso, modificato, ecc. Finché il codice sorgente stesso non è malevolo, possono essere sicuri che il binario non sia malevole. Questo ha alcuni avvertimenti, tuttavia:

  • Il codice sorgente deve essere disponibile, almeno per il tuo cliente.

  • Il cliente deve sapere come leggere il codice sorgente o darlo a qualcuno che lo può.

Naturalmente, se non sono in grado di capire almeno il codice sorgente o non sono in contatto con qualcuno che può (anche se quel "qualcuno" è un'intera comunità), allora questo fornirà al massimo una sensazione di benessere senza realmente migliorare la sicurezza. Oltre a questo, non esiste un modo pratico per dimostrare che il tuo software non sia malevolo e non contenga malware.

    
risposta data 21.07.2018 - 00:23
fonte
5

Due parti di questa domanda:

  1. How do I show there isn't any malware in the product I'm selling?

Avere una scansione di terze parti affidabile, testare e verificare che non vi sia alcun malware. insieme con un buon protocollo per il trasferimento del prodotto con una catena di custodia confermerà. Lavoravo in questo campo e ci sono più test di penetrazione e società di scansione là fuori.

  1. How do I show that my application cannot be infected by malware (malware proof)?

Questa domanda può andare in una tana di coniglio. Non direi mai a qualcuno che la tua applicazione è a prova di malware a meno che non si diffonda solo fuori, abbia un filesystem di sola lettura e sia bloccata all'interno di una cassastrong con ogni I / O di livello hardware disabilitato e coperto in resina epossidica.

Se non fosse così, credo che tu possa elencare le protezioni che hai reso il tuo dispositivo "resistente ai malware". Esiste la scansione del firmware (controlla le modifiche rispetto a una firma)? C'è un antivirus installato? Dispone di whitelisting delle applicazioni, ecc. Ciò, oltre alla verifica di terze parti sopra riportata, dovrebbe essere una risposta equa ai tuoi clienti.

    
risposta data 20.07.2018 - 21:28
fonte
1
  1. Executables sitting on a shared file server where only handful of the users can have access to it should be, in theory, "Safe". But how do we put an objective certificate to that statement?

Oltre all'altra risposta che menziona la scansione e la penna che testano il codice esistente, vorrei anche raccomandare una visione indipendente di terze parti sull'architettura software / di sistema per i difetti. Il test delle penne è utile per trovare i bug, ma avere una persona / squadra ben informata guarda l'architettura / design / implementazione effettiva è migliore per trovare difetti. Questo punto di vista è esposto nel libro di testo di McGraw "Software Security: Building Security In."

  1. Also, we can scan our files and may make sure the files are OK. However, how do we convey this fact to our customers in a categorical manner?

Non chiaro cosa intendi per "scansione". Vuoi dire che hai uno strumento di sicurezza software come findSecBugs o Coverity (etc) che analizza ogni iterazione del codice sorgente per analizzare staticamente il codice sorgente per problemi di sicurezza? O intendi che cerchi virus in binari o librerie di terze parti? O esegui qualcosa come lo strumento di sicurezza npm per controllare le tue librerie contro vulnerabilità note? Se questo non è chiaro per me, probabilmente non sarà chiaro anche ai tuoi clienti.

    
risposta data 21.07.2018 - 00:45
fonte

Leggi altre domande sui tag