Scansione di sicurezza per applicazioni desktop

5

La nostra azienda sviluppa applicazioni desktop Windows. Offriamo soluzioni off-the-shelf - non lo sviluppo personalizzato. Un potenziale nuovo cliente desidera aggiungere una sezione al nostro contratto standard che ci impone di utilizzare uno strumento di "Scansione delle applicazioni". In particolare menzionano l'AppScan di IBM. Tuttavia, sembra che lo strumento sia per le applicazioni Web, non per le applicazioni desktop.

Le nostre applicazioni sono sviluppate usando Delphi (da Embarcadero precedentemente Borland molto tempo fa). Siamo un piccolo negozio per sviluppatori. Mentre riesco a capire perché un cliente vorrebbe qualcosa di simile in un contratto, non sono sicuro di come riuscirò davvero a farlo.

Ci sono altri "strumenti standard del settore" come sembra indicare la lingua del loro contratto?

Sta diventando pratica comune tra gli ISV?

Esistono linee guida per gli ISV per conformarsi a questo tipo di requisiti di revisione della sicurezza? So che ci sono un certo numero di siti per pratiche di codifica sicure (verificare input dell'utente, buffer overflow, SQL injection, ecc.) Ma non ho mai visto nulla che discuti mettendo insieme una recensione di sicurezza che possa convincere un utente finale che il programmatore ha fatto lavoro correttamente.

Ecco cosa vogliono aggiungere al contratto:

x.x Software Security Review And Testing. A security scanning process will be performed on the application components for each production release of the Software licensed by Licensee pursuant to this Agreement prior to making available a major release of such components. Such security scanning will be performed by Licensor using IBM’s AppScan application scanning tool or an alternative, industry standard tool (“Application Scanning”). Vendor will also perform manual penetration testing (“Penetration Testing”) for each major release of the core product(s). Vendor will conduct Application Scanning on each application component as set forth in the applicable Schedule under the Agreement a minimum of one (1) time per year. Vendor will provide to and review with Licensee a report of the results of Vendor’s most recent Application Scanning and Penetration Testing for the AgWare Software.

L'applicazione stessa è un'applicazione Windows standard. Può connettersi a un database di Access o a un database di SQL Server per l'archiviazione dei dati. Gli utenti preoccupati per la sicurezza utilizzeranno ovviamente SQL Server. Non esiste un livello intermedio: mi collego direttamente dall'applicazione a SQL Server. La connessione viene effettuata utilizzando una connessione affidabile e l'accesso ai dati avviene tramite stored procedure.

Riesco a capire che è in esecuzione un qualche tipo di scanner di sicurezza nel database SQL. cioè qualcosa che verificherebbe che un tavolo non è stato lasciato con accesso aperto. È interessante notare che il database non è stato trattato nel contratto.

Probabilmente posso stampare il problema e dire che AppScan non può essere eseguito su applicazioni desktop e indurlo a rimuovere la sezione dal contratto. Vedendolo però mi ha fatto domandare se qualche sviluppatore di applicazioni desktop stia eseguendo alcun tipo di scanner sul proprio software.

    
posta Mark Elder 25.04.2013 - 22:04
fonte

3 risposte

2

Gli scanner di applicazioni Web difficilmente possono essere la fine della sicurezza delle applicazioni Web e semplicemente eseguire uno strumento standard non risolverà il problema di un'applicazione non sicura. Detto questo, l'impatto sulla sicurezza di un'applicazione desktop dipende in larga misura da ciò che fa l'applicazione. È un server? Comunica su una rete? Ha un database?

Un'applicazione fuori dallo scaffale può risolvere questo problema. Devi assumere un analista della sicurezza professionale per rivedere questa applicazione e (molto probabilmente) provarla manualmente.

    
risposta data 25.04.2013 - 22:57
fonte
2

Questo è chiaramente scritto per promuovere un'applicazione ragionevolmente testata. Ho tre commenti a riguardo:

  1. Prima di tutto, dovrebbero avere il loro programma di scansione interno (valutazione della vulnerabilità) che fornirebbero un banco di prova per eseguire il programma come parte del test di accettazione. Un produttore di software può scegliere di avere e sviluppare il proprio, ma non ci si potrebbe mai aspettare che scala una "soluzione standard" basata su "n" numero di contratti che richiedono "n" variazioni di programmi - anche il DoD lo riconosce.

  2. L'aspetto di sfruttamento di questo deve essere condotto nell'ambiente in cui doveva essere schierato, altrimenti non si hanno immagini ragionevoli di "exploit". Lo scopo dell'analisi di sfruttamento è quello di prendere le vulnerabilità di un sistema e determinare su sfruttare quale sia il dolore risultante (cioè, vedere gli effettivi effetti reali e il potenziale danno). Che, naturalmente, può essere valutato solo nello scenario in cui deve essere distribuito.

  3. Il loro è un po 'errato pensare a questo cliente nel credere che sia nel loro interesse che il creatore del software sia il tester del software. Questo accade sempre in Q / A, ma non dovrebbe mai essere permesso in sicurezza ai fini di un vero audit. Hanno bisogno di avere la propria gente, o meglio una terza parte imparziale (chiedi loro di contattarmi :)) per eseguire l'analisi di vulnerabilità e sfruttamento.

risposta data 26.04.2013 - 02:13
fonte
0

Sono specializzato nella sicurezza delle applicazioni. Innanzitutto, un'applicazione non viene quasi mai testata all'interno di un ambiente di produzione. In genere convalidi le vulnerabilità in un ambiente di test in cui viene distribuita l'applicazione, post-sviluppo.

È probabile che IBM AppScan possa essere utilizzato per eseguire test su un'applicazione desktop, allo stesso modo in cui verrebbe utilizzato per testare un'applicazione Web, a condizione che l'applicazione desktop utilizzi HTTP o HTTPS. Per fare ciò, si configura un proxy per ascoltare l'indirizzo RFC 1918 e non il loopback e distribuire l'app desktop in una macchina virtuale dedicata. Configurare le opzioni Internet in Windows in modo che puntino all'indirizzo e alla porta a cui è stato associato il proxy. Suggerirei Burp Suite su qualsiasi altra cosa.

Le informazioni per le persone che cercano di iniziare di solito possono essere trovate sul sito OWASP. Un buon punto di partenza sarebbe la OWASP Testing Guide v4, ma se stai cercando qualcosa per timbrare che un'app sia protetta da un qualche tipo di uso standard, l'ASVS.

Idealmente si desidera integrare le pratiche di sicurezza in tutte le fasi del proprio SDLC e sviluppare un framework separato dal proprio SDLC chiamato Secure-SDLC. Un Secure-SDLC presenterà pratiche di sicurezza che dovrebbero essere integrate negli sforzi dello SDLC in base alle necessità.

Altrimenti, potresti semplicemente eseguire un test di penna pre-distribuzione, ma costa di più perché il tuo inevitabile ritorno all'SDLC per rimediare alle vulnerabilità identificate. PCI e forse HIPPA specificano i requisiti associati alla creazione di pratiche di sviluppo sicure e all'esecuzione di test automatici o manuali su un'applicazione per identificare le vulnerabilità.

    
risposta data 16.06.2017 - 22:34
fonte

Leggi altre domande sui tag