audit del codice sorgente

1

Ho una domanda riguardante la revisione del codice sorgente dei pacchetti Linux.

Ho scaricato un pacchetto di Ubuntu diciamo samba , ho pensato di rivedere il codice sorgente di samba per cercare le vulnerabilità della sicurezza.

Ho usato flaw finder per la revisione del codice del pacchetto samba .

Flaw finder ha generato un rapporto con molte vulnerabilità.

Per esempio c'era una vulnerabilità riguardante strcpy che dice usare strlcpy o strncpy invece di strcpy come mostrato sotto.

httpd-2.4.25/modules/aaa/mod_authn_socache.c:276:9: [4] 
  (buffer) strcpy: Does not check for buffer overflows when copying to destination. 
   Consider using strncpy or strlcpy (warning, strncpy is easily misused).

strcpy(new_context, r->server->server_hostname);
  1. Il punto qui è che la funzione strcpy è insicura o no ?? Se è insicuro, allora perché la comunità pubblica di Ubuntu non ha risolto questa debolezza ancora int i loro ultimi pacchetti che è così facile da tracciare con lo strumento open source?

  2. Se vogliamo proteggere questa funzione strcpy o il codice di samba stesso quali sono le opzioni?

  3. Spiacenti a tutti, erroneamente ho copiato il codice apache e menzionato samba.

  4. C'è ancora un punto su questo. Ho scaricato gli ultimi pacchetti di samba e apache dal sito web di Ubuntu e poi ho usato il rilevatore di difetti. Gentilmente ho bisogno dei tuoi suggerimenti in merito. Se la comunità di Ubuntu non ha ancora corretto questi punti deboli di sicurezza nei loro ultimi pacchetti, allora dovrei preoccuparmi di questi punti deboli della sicurezza o no?

posta infosec 18.09.2017 - 11:52
fonte

2 risposte

7

For instance there was a vulnerability regarding strcpy...

flawfinder non segnala vulnerabilità. Per citare la descrizione del programma :

... examines C/C++ source code and reports possible security weaknesses (“flaws”) sorted by risk level.

Pertanto, flawfinder non trova vulnerabilità ma mostra solo parti del programma che sembrano potrebbero essere un problema. Ciò include l'uso di funzioni che sono spesso utilizzate nel modo sbagliato. Per interpretare l'output, determinare il rischio effettivo e correggere i potenziali problemi è necessaria una comprensione più approfondita del programma analizzato.

Per ottenere le tue domande specifiche:

For that i used flaw finder for code review of samba package.
...
httpd-2.4.25/modules/aaa/mod_authn_socache.c:276:9: [4] (buffer) strcpy

Sembra che tu abbia analizzato il server web Apache e non Samba.

The point here is that whether strcpy function is insecure or not??

Quando esaminando il contesto reale vedrai con sufficiente comprensione della programmazione che assegna abbastanza memoria direttamente nella linea prima di questa strcpy, cioè questo non è proprio un problema.

And if we want to secure this strcpy function or the code of samba itself what are the options??

Le opzioni sono su

  • Utilizza il codice sorgente corretto in primo luogo. Se vuoi controllare samba, prendi il codice sorgente per samba e non Apache httpd.
  • Ottieni una comprensione più profonda di ciò che sta facendo il codice.
  • Determina qual è il rischio reale del problema.
  • Se è davvero un problema controlla se questo è già stato corretto a monte e non è stato corretto nella versione di distribuzione che usi.
  • Risolvi il problema senza introdurre nuovi bug e invia una correzione agli sviluppatori.
risposta data 18.09.2017 - 13:04
fonte
1

La loro è una possibilità di overflow del buffer quando si utilizza la funzione strcpy. Tuttavia, ciò si verifica solo se utilizzato in modo errato. Ogni chiamata a questa funzione deve essere considerata nel suo contesto. Lo strumento che stai utilizzando non può discernere questo contesto, quindi ti fornirà semplicemente un avviso generico per l'uso non sicuro della funzione.

Questo particolare esempio potrebbe utilizzare un precedente 'server_hostname' sterilizzato e può garantire che non ci sarà un overflow del buffer.

Se vuoi davvero cambiare questo, prendi in considerazione l'implementazione dei suoi suggerimenti, ma attenzione perché le API per strcpy e strlcpy sono diverse. Vedi questo articolo per le specifiche dettagliate: link

Utilizzare lo strumento di ispezione della fonte solo come guida. Tratta come una diagnostica automatica, cioè lo strumento ti indirizza solo verso la direzione generale di un potenziale guasto, devi eseguire il lavoro sulle gambe e ulteriori operazioni di diagnostica per comprendere appieno il problema.

    
risposta data 18.09.2017 - 12:21
fonte

Leggi altre domande sui tag