Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,768

    alcune funzioni

    Programmazione sicura
    Per poterci proteggere dagli attacchi di buffer overflow siamo costretti ad affidarci alla professionalità dei programmatori. Selezioniamo bene i programmi da utilizzare, dunque, e cerchiamo di restare al passo con gli updates che risolvono i problemi delle applicazioni. Le normali protezioni contro gli attacchi, come i firewall, in questo caso servono a poco. Anzi, il firewall stesso potrebbe essere soggetto a un buffer overflow.

    Se siamo programmatori, invece, ricordiamoci di effettuare maggiori controlli sull'input degli utenti e non utilizziamo le funzioni a rischio (Tab. 4.1).

    strcpy lstrcpy
    lstrcpyA lstrcpyW
    lstrcpyn lstrcpynA
    lstrcpynW wstrcpy
    strncpy wstrncpy
    sptrintf swptrinf
    gets getws
    strcat lstracat
    lstrcatW wcscat
    strncat wstrncat
    memcpy memmove
    scanf wscanf
    fgets


    Ciao ragazzi, perchè queste funzioni sono considerate a rischio???

    A che linguaggio si riferiscono???

    Ciao e grazie a tutti.

  2. #2
    mi sono permesso di modificare il titolo (rendendo più specifico l'argomento della discussione )
    ...Terrible warlords, good warlords, and an english song

  3. #3
    Come la modifica apportata al titolo, queste funzioni sono tipiche del C (anche se ce ne sono di simili anche in altri linguaggi).
    Il C è un linguaggio molto potente, che consente al programmatore di avere il pieno controllo della memoria su cui lavora, nello stesso tempo questa libertà comporta dei notevoli rischi se tale gestione non è realizzata correttamente.



    Max
    La luce è più veloce del suono,ecco xchè alcune persone sembrano brillanti fino a quando non parlano


  4. #4
    per capire, considera come è disposta la memoria di un programma in esecuzione:

    prima vengono i dati, poi il codice eseguibile.

    se tu dichiari che una char[] deve essere lunga 10 e questa stringa la deve inserire l'utente, poi sta a te controllare che non superi il tetto dei 10.. dal momento in cui in C non si genera un errore al superamento di tale limite, e nè il compilatore ti avverte di tale pericolo.

    cosa succede se l'utente inserisce un parametro più lungo?
    ipoteticamente va a asovrascrivere la memoria dedicata a contenere il puntamento alla prossima funzione da eseguire, o addirittura il corpo stesso del programma in memoria.

    qui, un 'utente' con le OO corazzate di iridio.. se riesce a vedere lo stato della memoria, può inserire un parametro lungo 10 + opcodes che vengono interpretati correttamente dalla macchina, e magari fare in modo che la macchina esegua una funzione scelta da lui.. con i risultati che puoi immaginare.

    il minimo che può succedere, se l'errore non è stato provocatomaliziosamente, è che il programma cessa di funzionare.

  5. #5
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,768
    Grazie ragazzi.

    il minimo che può succedere, se l'errore non è stato provocatomaliziosamente, è che il programma cessa di funzionare
    i cosiddetti "crash"... o al limite puo' controllare anche il nostro pc, nella peggiore delle ipotesi.....


  6. #6
    Utente bannato
    Registrato dal
    Nov 2003
    Messaggi
    558
    Scusate visto che l'argomento mi interessa mi intrometto : ma dove sta tutta questa insicurezza? Dove sta un problema??

    Cioè,se io dichiaro un vettore di char di dimensione 20 e lo chiedo in inputo all'utente,se viene inserita una stringa superiore ai 20 bytes il programma va in crash e termina ....semplicemente

    Allora dov'è il rischio?

    Insomma...perchè il buffer overflow è pericoloso ?

  7. #7
    Utente di HTML.it L'avatar di Corwin
    Registrato dal
    Jan 2002
    Messaggi
    584
    Originariamente inviato da Lardoman
    Scusate visto che l'argomento mi interessa mi intrometto : ma dove sta tutta questa insicurezza? Dove sta un problema??

    Cioè,se io dichiaro un vettore di char di dimensione 20 e lo chiedo in inputo all'utente,se viene inserita una stringa superiore ai 20 bytes il programma va in crash e termina ....semplicemente

    Allora dov'è il rischio?

    Insomma...perchè il buffer overflow è pericoloso ?
    L'ha già spiegato Trevor..
    I don't wanna have to shout it out / I don't want my hair to fall out
    I don't wanna be filled with doubt / I don't wanna be a good boy scout
    I don't wanna have to learn to count / I don't wanna have the biggest amount
    I don't wanna grow up

  8. #8
    Utente bannato
    Registrato dal
    Nov 2003
    Messaggi
    558
    Originariamente inviato da Corwin
    L'ha già spiegato Trevor..
    Me ne sono accorto dopo..la cattiva abitudine di nn leggere mai i post x intero...

  9. #9
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,768
    ma dove sta tutta questa insicurezza? Dove sta un problema??

    http://sicurezza.html.it/articoli.as...&idarticoli=43

    Prova a leggere anche quì.


  10. #10
    vedo che pure scanf è inserita tra quelle "potenzialmente" vulnerabili al buffer overflow ...azzzz ..la usiamo in tt i programmi in C !!

    meglio passare alla cin del c++ no??

    ciao e buon primo maggio :gren:

    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.