Back to top

Autore Topic: Sviluppare in sicurezza  (Letto 2319 volte)

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Sviluppare in sicurezza
« il: 05 Mag 2010, 09:53:55 »
Salve a tutti, non so se questa è la sezione giusta, perchè è un po' a "cavallo" con la sezione sviluppo...

Sto sviluppando un componente (il mio primo) e vorrei essere sicuro di non aver lasciato dei "buchi" aperti.
Al momento mi sono preoccupato di mettere il token in tutti i form post, validare i dati in arrivo (un numero deve essere int, quote delle stringhe ecc ecc) e incapsulato tutti i nomi delle colonne.
La mia maggiore preoccupazione è la cancellazione di record: siccome sono presenti più liste nella solita pagina, per non appesantire il tutto, avrei pensato di effettuarla tramite richiesta get.
Quanto è vulnerabile questa scelta, tenendo conto che il componente sarà accessibile solo ad utenti registrati?
Per quanto riguarda il resto, dovrei fare qualcosa in più?

grazie a tutti
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

mau_develop

  • Visitatore
Re:Sviluppare in sicurezza
« Risposta #1 il: 05 Mag 2010, 11:37:42 »
una get non è più vulnerabile di una post o di una qualsiasi altra variabile.

iniettare una get è banale, basta aggiungere/modificare i valori passati dall'url, ma non pensare che la post è invisibile, se easamini gli header con qualche tool tipo tamper data li vedi benissimo.

IL PROBLEMA delle vulnerabilità è unico: il casting e il filtraggio.

se passo nella get pippo, quando estraggo la get, non farò uno script che mi estragga la get intera, ma andrò a cercarmi ciò che mi interessa, cioè cercherò se la get del nome è pippo,pluto o topolino, dopodichè continuo, altrimenti qualcosa non va.
Cioè, so cosa spedisco lo cerco quando arriva, se arriva altro lo ignoro e rimane .... nell'etere.

Stessa cosa vale per le post.

Diverso se viene spedita una variabile, non posso sapere se l'utente si chiama pippo o topolino quindi non so cosa attendermi, o meglio lo so in parte:
- mi devo attendere una stringa, con al max n char, tutti A-Z, bla bla bla... e su queste info costruisco il mio casting/filtro.

I form introducono un'altra possibilità di vulnerabilità, che è la csrf, ovvero posso lanciare la form da un altro sito e la pagina che lo elabora non controlla da dove viene... solitamente il token serve a qs.

Ci sono delle metodologie per i test di sicurezza che se vuoi ti posso descrivere. Nessuna di queste è volta all'esploitazione, cioè non è importante trovare il modo di passare, basta che se in un form al posto del nome io metto un 0x00 che pianta l'appz e quello è già un problema.

Se usi ubuntu c'è un tool molto bello, abbastanza automatizzato.

Cose più a livello users sono anche disponibili nella sezione sicurezza di joomla.org

M.

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Re:Sviluppare in sicurezza
« Risposta #2 il: 05 Mag 2010, 11:48:19 »
ottima spiegazione, grazie mille.
non uso ubuntu, c'è un qualche tool simile che gira anche sotto windows?
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

mau_develop

  • Visitatore
Re:Sviluppare in sicurezza
« Risposta #3 il: 05 Mag 2010, 14:41:58 »
http://www.owasp.org/index.php/Category:OWASP_Joomla_Vulnerability_Scanner_Proj ect

Se hai tempo, conosci un minimo di inglese e vai voglia di saperne di più in tema di sicurezza OWASP è uno dei posti più titolati per il learning online, molto professionale.

M.

PS nn so se esistono aggiornamenti per quel tool ...leggi un attimo
« Ultima modifica: 05 Mag 2010, 21:36:31 da mmleoni »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Sviluppare in sicurezza
« Risposta #4 il: 05 Mag 2010, 16:40:06 »
ciao,
 vedi anche questa pagina:

http://docs.joomla.org/Retrieving_data_from_GET_and_POST_requests

oltre a quanto detto da maurizio, tieni presente che niente che arrivi dall'esterno va, così come è:

1. in una query (sql injection)
2. in un include/require (controller/view/template)

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Re:Sviluppare in sicurezza
« Risposta #5 il: 07 Mag 2010, 16:58:27 »
ok, grazie mille a tutti quanti per le spiegazioni.

ho scaricato lo script OWASP, ma mi pare che svolga test "base": esegue una serie di controlli sulle estensioni, nel mio caso ne ha fatti molto pochi perchè ho pochi componenti installati.

come potrei fare per tentare di "mettere in crisi" il mio stesso componente?
oltre all' sql injection, a cosa devo prestare attenzione?
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

mau_develop

  • Visitatore
Re:Sviluppare in sicurezza
« Risposta #6 il: 07 Mag 2010, 17:17:19 »
Se non hai pratica di test credo tu possa fare poco altro che non usare un'automatismo.
Prova a usare anche grendel o websecurify che eseguono vari tipi di test.
Cerca di capire cosa fanno e cosa risponde joomla è interessante.

M.

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Re:Sviluppare in sicurezza
« Risposta #7 il: 07 Mag 2010, 19:17:36 »
Se non hai pratica di test credo tu possa fare poco altro che non usare un'automatismo.
Prova a usare anche grendel o websecurify che eseguono vari tipi di test.
Cerca di capire cosa fanno e cosa risponde joomla è interessante.

M.

non ho pratica, ma sono un ragazzo volenteroso :)
dimmi dove leggere che poi studio
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

 



Web Design Bolzano Kreatif