security - mttr - Codifica per alta affidabilità/disponibilità/sicurezza-quali standard leggo?




mttr definizione (4)

Dai un'occhiata al Goddard Space Flight Center e ai suoi standard di codifica . Uno degli standard C, che ho adottato nel mio codice, è che le intestazioni devono essere autarchiche e forniscono un modo semplice per farle rispettare: l'intestazione di un modulo deve essere il primo file incluso nel modulo, quindi se il file non è autonomo, non verrà compilato.

Ho sentito dire che l'industria automobilistica ha qualcosa chiamato MISRA C.

Quali sono gli standard rilevanti per altri settori ad alta affidabilità / disponibilità / sicurezza, come ad esempio

  • Spazio
  • aereo
  • Banche / finanziarie
  • Settore automobilistico
  • Medico
  • Difesa / Militare
  • ???

-Adamo


Il NIST fornisce un gran numero di documenti correlati, puoi immergerti e analizzare il loro lavoro - ma ce n'è un sacco, ed è tutto abbastanza dettagliato, quindi non ho uno specifico a cui indirizzarti.
Se vuoi essere più specifico con le tue esigenze, potrei essere in grado di restringere un po '...

Inoltre, Carnegie Mellon è praticamente il definitivo quando si tratta di processi di sviluppo per l'affidabilità, abbastanza facile da trovare i loro standard ma anche abbastanza dettagliato.

Inoltre, le industrie specifiche hanno spesso i propri standard, a seconda del Paese. Ad esempio, il settore delle carte di credito - PCI-DSS; Industria bancaria nell'UE - Basilea II; Medico - HIPAA (anche se questo è piuttosto di alto livello); qualsiasi cosa riferita dal governo degli Stati Uniti, vari documenti del NIST; eccetera.


Per la programmazione di sistemi ad alta affidabilità in Ada , esiste: ISO / IEC TR 15942: "Tecnologia dell'informazione - Linguaggi di programmazione - Guida per l'uso del linguaggio di programmazione Ada in sistemi ad alta integrità" :

introduzione

Come società, dipendiamo sempre più da sistemi ad alta integrità: per i sistemi di sicurezza (come gli aerei fly-by-wire), per i sistemi di sicurezza (per proteggere le informazioni digitali) o per i sistemi finanziari (ad esempio, i distributori di contanti). Con l'aumentare della complessità di questi sistemi, aumentano anche le richieste di tecniche migliorate per la produzione dei componenti software del sistema. Questi sistemi ad alta integrità devono dimostrare di essere pienamente prevedibili durante il funzionamento e hanno tutte le proprietà richieste. Questo può essere ottenuto solo analizzando il software, oltre all'utilizzo di test dinamici convenzionali. Al momento non esiste un linguaggio tradizionale di alto livello in cui tutti i programmi in quella lingua siano garantiti come prevedibili e analizzabili. Pertanto, per qualsiasi scelta del linguaggio di implementazione è essenziale controllare i modi in cui la lingua viene utilizzata dall'applicazione. Il linguaggio Ada [ARM] è progettato con meccanismi specifici per controllare l'uso di alcuni aspetti della lingua. Inoltre,

  1. La semantica dei programmi Ada è ben definita, anche in situazioni di errore. In particolare, l'effetto di un programma può essere previsto dalla definizione del linguaggio con poche dipendenze di implementazione o interazioni tra le funzionalità del linguaggio.

  2. La forte tipizzazione all'interno del linguaggio può essere utilizzata per ridurre l'ambito (e il costo) dell'analisi per verificare le proprietà chiave.

  3. Il linguaggio Ada è stato utilizzato con successo su molte applicazioni ad alta integrità. Ciò dimostra che i compilatori Ada convalidati hanno la qualità richiesta per tali applicazioni.

  4. Possono essere fornite indicazioni per facilitare l'uso della lingua e incoraggiare lo sviluppo di strumenti per ulteriori verifiche.

Ada è quindi ideale per implementare software ad alta integrità e questo documento fornisce una guida per i controlli richiesti sull'uso di Ada per garantire che i programmi siano prevedibili e analizzabili.








reliability