Newsgroup: it.comp.os.dibattiti
Titolo: BackDoor e open source

Torno sul tema della sicurezza statica: mi e' capitato tra le mani
quest'annuncio, un po' vecchio:
http://www.cert.org/advisories/CA-2001-01.html
La cosa e' emblematica: in interbase 'commerciale e closed source'
esisteva una backdoor, e' stato rilasciato free e open source con tutta
la backdoor e .... la comunita' open source l'ha trovata. Esattamente il
contrario di quello che si pensa.
Ora un paio di domande:
1)la backdoor e' stata trovata 'guardando' il sorgente, non certo
facendo delle prove
2)se quando Interbase era closed source e commerciale qualcuno ha
approfittato della backdoor chi e' responsabile ?
3)se in SQL server, oracle, db2 ecc c'e' una backdoor come lo scopriamo
?
questo passaggio e' allarmante:
..
This back door allows any local user or remote user able to access port
3050/tcp [gds_db] to manipulate any database object on the system.
This includes the ability to install trapdoors or other trojan horse
software in the form of stored procedures. In addition, if the database
software is running with root privileges, then any file on the server's
file system can be overwritten, possibly leading to execution of
arbitrary
commands as root. 
questo poi e' spettacolare:
...
This vulnerability was not introduced by unauthorized modifications to
the original vendor's source. It was introduced by maintainers of the
code within Borland. The back door account password cannot be changed
using normal operational commands, nor can the account be
deleted from existing vulnerable servers 
--
Antonio Baldassarra
 
anto...@stt.it


Quindi quelli di Borland sono pure fessi. Avrebbero potuto togliere quel
codice. Ora temo che Borland sarà sommersa di citazioni in giudizio e
richieste di
risarcimento danni ultra-miliardarie.
Saluti.

 la ha la pazienza.
E a chi sarebbe mai venuto in mente di cercare backdoor in 
SQL server? 
Il problema e` che sta roba senza l'auditing dei sorgenti e
con un ristretto numero di persone nel mondo che ne conoscono
l'esistenza (solo perche` sono loro ad averla programmata) e`
assolutamente introvabile. E poi che te ne fai di un monitor ?
Basta implementare una backdoor che risponda solo ad una precisa
sequenza di dati in ingresso. Ripeto assolutamente introvabile
se non hai i sorgenti.
-- 
Vincenzo 
Si puo' scrivere una breve lettera alla nonna nel nome del file.

 se non hai i sorgenti.
Appunto.
Saluti.

 
Sai bene che non e' una *semplice* attivita' e considera che una
backdoor puo' anche essere realizzata (se c'e' volonta' maliziosa) molto
di fino utilizzando un tunnel applicativo in una connessione 'normale',
tempo addietro ci fu il caso di un server ftp che era in grado di
gestire una sessione user defined all'interno di una sessione anonymous
(moolto pericoloso: vedi un utente anonymous collegato e poi e' root :-(
).
Comunque io mi volevo soffermare non tanto sulla questione tecnica
quanto su quella delle responsabilita': ho appena acquistato una copia
di Win2000 as, leggo dal contratto che il programma puo' avere ogni tipo
di problema e causare ogni tipo di danni e la MS non si ritiene
responsabile, ho anche una copia di GPL dove si dice che il codice e'
fornito 'as is' e non si possono accampare responsabilita' in caso di
danni o di malfunzionamento ..... scusa dove sta la maggior tutela nel
caso di MS ?
In sintesi hai detto come ci si protegge da una eventuale backdoor:
1)caso commerciale closed source:
ci si organizza per verificare e per monitorare, non si puo' escludere
che ci sia la backdoor, qualora la si trovi si fa causa alla software
house -> tutela = 0
2)caso open source, diciamo GPL per facilita'
ci si organizza per verificare e per monitorare, magari guardando il
codice visto che c'e', non si puo' escludere che ci sia la backdoor,
qualora la si trovi si fa causa alle persone del gruppo di sviluppo  ->
tutela = 0
Mi spieghi allora perche' dovresi stare piu' tranquillo con un software
commerciale ?
-- 
Antonio Baldassarra
anto...@seeweb.com

 Appunto.
Appunto, e` meglio averli.


 commerciale ?
Per tutto quello sopra.
Saluti.

 wrote in
message news:992lcc$qk7$1...@fe2.cs.interbusiness.it...

e' anche vero che dietro a un open source c'e' una comunita' e quindi una
back door in open sopurce avrebbe vita breve .
Non si ha la tutela esplicita di un contratto , ma una tutela basata sulla
competenza di chi sviluppa open source .
Il dilemma sta nel fidarsi di chi sviluppa e ti vende a scatola chiusa o nel
fidarsi di chi vende a scatola aperta e non ti chiede nulla in cambio.
Sovente , ma questa e' una mia opinione, si fa meglio a scegliere la seconda
opzione.
Saluti.

la ha la pazienza.
Storie. Esempio idiota: c'e' una backdoor nella SELECT. Quando si cerca
di selezionare il campo X dalla tabella Y (inesistente), i privilegi di
lettura aumentano vertiginosamente fino alla fine della transazione, e,
per maggior sicurezza, le tabelle K e Z sono dei parser/shell virtuali.
Quindi puoi avere due queries sintatticamente corrette
SELECT 'hello world' FROM customers;
SELECT 'UPDATE pay SET wage=450 WHERE emp=\'lserni\';' FROM backd00r;
...dove la seconda e' un tantino fetusa.
Che facciamo, il packet filter con conoscenza di SQL? Si', si puo' fare
senz'altro. E poi le estensioni, l'integrazione col server... alla fine
il filtro lo dovra' fare/mantenere/verificare LO STESSO TIZIO CHE TI HA
PIAZZATO LA BACKDOOR NEL SERVER.
"Quis custodiet ipsos custodes?", eh?
Leonardo
-- 
Microsoft Outlook: il primo news reader con supporto messaggistica RAID 1.

 Storie. Esempio idiota: c'e' una backdoor nella SELECT. Quando si cerca
 [mega snip]
Senti ma....tu realizzi applicazioni che permettono al client di inviare
direttamente statement SQL al server oppure
metti in ascolto un RDBMS direttamente su Internet?
Saluti.

 Comunque, sarebbe bastato in quel caso un semplice firewall packet filter.
Metti che io inserisca una particolare combinazione di tasti all'interno del
programma che mi dà i diritti di admin, o un prrticolare comando SQL per
accedere a qualsiasi tabella con pieni poteri, come lo trovi queste back
door con network monitor o come le filtri con dei firewall?

"Marco Costamagna" <marco...@LEVAMIhotmail.com> wrote in message
news:994dp5$iqs$1...@serv1.iunet.it...

Io ho detto in quel caso specifico di Interbase  (uso di una porta TCP per
creazione di accesso riservato).
Cocciuti siete.
Saluti.

 Cocciuti siete.
Non riesci proprio ad ammettere di avere torto eh?
La porta usata per la backdoor 'nel caso specifico di Interbase'
e` proprio quella standard alla quale risponde normalmete il server.


 e` proprio quella standard alla quale risponde normalmete il server.
Mi sembrava che Interbase usasse 2040! Ma io mi sono fermato alla 4.0 per
linux.
Comunque meglio cosi,  almeno quelli di Borland non sono proprio scemi del
tutto!
Saluti.

 linux.
No, anche IB4 usa la porta 3050.


Ripeto assolutamente introvabile se non hai i sorgenti.
Interessante. Ora si sviluppa un discorso: questa cosa e' stata,
probabilmente,lasciata da Borland per aver ela possibilita' di
accedere in caso tutteleprocedure di accesso normali fossero
disabilitate, E' ovvio che nolnla debba sapere nessuno al di fuorid i
Borland, ed e' altrettanto ovvio che, se non avessero visto i
sorgenti, non l'avrebbe saputa nessuno. 
Questo non ti fa venire *dei dubbi* sulla necessita delal diffusione
dei sorgenti?
Obelix


Casomai il contrario. 
Rilasciare i sorgenti al cliente (anche senza vincolarli alla GPL e senza 
garantirgli il diritto di modificarli/rivenderli, solo come "reference") è 
sicuramente garanzia di sicurezza rispetto a backdoor e roba simile (e 
alcune aziende lo pretendono).
P.S. Sicuramente più di una persona all'interno di Borland/Inprise (azienda 
che, tra l'altro, ha attraversato, e forse attraversa tuttora, un periodo 
di grave crisi) era a conoscenza della backdoor e poteva avere accesso 
all'elenco dei clienti che avevano acquistato interbase "close-source" e, 
tramite qualche aggancio con l'assistenza tecnica, addirittura la 
possibilità di accedere (o consentire ad altri di accedere) ai database di 
questi client... l'occasione fa l'uomo ladro (o spione per conto terzi...).
-- 
Valter Minute
min...@inwind.it
 (the reply address of this message is invalid)

 dei sorgenti?
Mah, non direi. Io voglio sapere esattamente quali sono le porte 
aperte sul *mio* sistema. Chi si fida di Borland o m$ ?
La gente non lavora li in eterno. Queste informazioni prima o
poi potrebbere aopitare alla persona sbagliata.
E poi se si vuole implementare un modo che permetta di scavalcare
le protezioni date dalle password, mi sembra piu` logico legarlo 
all'accesso fisico. Esempio: cancello il file 'lock_db_auth' che 
e` stato creato con i diritti di amministratore e magicamente il 
database risponde con i soliti SYSDBA MASTERKEY come user e pwd.


direttamente statement SQL al server
Nel momento in cui domando a un utente "Che cosa vuoi cercare nel
database del telefono?", lui potrebbe anche cercare il signor Joe
F. OrmatC:, tu che ne dici? O magari elencare nomi e passwords, o
il contenuto delle tabelle, una per volta, finche' non comincio a
chiedere il numero di telefono di Frank C. ReditCard e il sistema
mi ritorna (0202) 4569 1234 5678 9012.
E una backdoor non deve mica necessariamente dare accesso ai cani
e ai porci via Internet.
<parentesi>
A parte il fatto che un sistema di privilegi robusti, o perlomeno
millantati tali, la tentazione di mandare direttamente una SELECT
senza neanche controllare i caratteri di escape te la da'.
Voglio dire, io vedo certe ditte che DA UN LATO fanno software da
handicappati, e DALL'ALTRO ripetono (ma scritto piccolo, e/o solo
a danno avvenuto) che bisogna programmare si', ma con judicio.
Ora: o si dice chiaro e tondo (come ritengo & sono convitto!) che
le cose vanno pensate, e NON basta l'applicazione X Y Z per darsi
all'e-business e/o essere subito in rete e/o amministrare servers
eterogenei con pochi facili clic; OPPURE il sistema deve fungere,
e rimanere solido, ANCHE di fronte a gestioni handicappate, quali
eventualmente il server SQL connesso direttamente a Internet.
</parentesi>


Chi si fida di Borland o m$ ?
Nessuno. Il che non vuol dire che il solo fatto di aver eun abckdoor
gli permetta di utlizzarla. Devi avere un accesso alla macchina, ad
esempio...
Obelix

 č sicuramente garanzia di sicurezza rispetto a backdoor e roba simile 
Soprattutto, la garanzia che quella volta che ti serve la backdoor,
non ci sara'... oh, beh, i dati sono i tuoi, se vuoi perderli,
contento tu.
Obelix

 F. OrmatC:, tu che ne dici?
Dico che l'applicazione utente interagisce con il db a mezzo di un oggetto
(server applicativo) creato allo scopo.
Che il server applicativo creato allo scopo espone all'applicazione una
serie di oggetti, che il server parla SQL solo ed esclusivamente con il
server applicativo e non con l'applicazione utente.
Saluti.


Non capisco... quando ti dovrebbe "servire" una backdoor?
Se hai una backdoor (e nel caso di IB si parla di una backdoor accessibile 
da tutti i client e, mi pare, non tracciabile nè controllabile 
dall'amministratore) il rischio che un utente non autorizzato possa 
approfittarne è nettamente superiore ai vantaggi. 
Il fatto che tu (inteso come "proprietario" dei database) o l'assistenza 
tecnica del produttore del sw possa sfruttarla per recuperare i dati è un 
"effetto collaterale" di quanto detto sopra.
Piuttosto che la backdoor preferirei un'utility che ti consenta di 
recuperare i dati dai file fisici in cui è memorizzato il DB o un 
meccanismo per cui il recupero dei dati possa essere eseguito solo 
dall'amministratore del server su cui gira il DB (magari loggato in locale 
sulla console del server). Ovviamente questi meccanismi dovranno essere 
documentati e saranno protetti dal sistema di controllo degli accessi ai 
file (1° caso) o dalla sicurezza del server (2° caso).
Credo che la backdoor di IB fosse implementata a fini di debug o per poter 
intervenire "pesantemente" sui server dei clienti senza dover richiedere 
troppi username/password e (spero) non fosse di uso comune tra i clienti. 
Il fatto che sia stata "dimenticata" nei sorgenti (non mi spiego altrimenti 
la sua presenza nella release open-source) mi fa sospettare che non fosse 
utilizzata troppo spesso (almeno all'interno di Borland) o (peggio) che 
Inprise abbia rilasciato IB in open source perchè tutti quelli che ne 
seguivano lo sviluppo se ne sono andati...


 esempio...
Qualsiasi servizio di hosting decente ti offre un supporto database.
Ora se io avessi voluto offrire (oltre al classico MySql) Interbase 
(prima che la backdoor fosse stata patchata) ai miei clienti, non ci 
sarebbe stato nessun bisogno, per un malintenzionato, di avere accesso 
fisico ai miei server per poter sfruttare la backdoor stessa.


fisico ai miei server per poter sfruttare la backdoor stessa.
Tuttavia, doveva conoscerla. cosa che *non* mi risulta fosse
disponibile prima del passaggio in OS...
Obelix

"effetto collaterale" di quanto detto sopra.
Dipende dal *perche'* metti una backdoor. 
Obelix

server applicativo e non con l'applicazione utente.
Maremma brindellona, e QUESTO ora cosa significa? Che quando voglio
cercare il numero di telefono di Mario Rossi, non ho una box dentro
cui scrivere MARIO ROSSI, ma due select box con ventiseimila nomi e
undicimilacinquecento cognomi?
Oppure, che per sicurezza il database e' criptato, e le chiavi sono
ricercate per hash, per cui cercare MARIO ROSSI significa andarsi a
cercare 0xe42948c9 0xe384d1eb 0xfd5c3328 0x6d7b108d?
L'applicazione utente per cercare "MARIO ROSSI" (dato fornito dall'
utente, potrebbe essere magari "MAR10 R0551") cosa passa, al server
applicativo? La stringa "MARIO ROSSI", o iniziano il gioco delle 20
Domande?
Siamo seri. Per fare una ricerca utente alla fine nell'SQL dovranno
finire dei dati forniti dall'utente; verificati, untainted, rifatti
col naso alla francese da Pitanguy, ma pur sempre dati utente! E se
ci sono dati utente, c'e' la possibilita' di una backdoor.


 ci sono dati utente, c'e' la possibilita' di una backdoor.
Sicuramente, ma devi ammettere che la possibilità che la di attivazione
della backdoor diventa
minima.
Saluti.

 disponibile prima del passaggio in OS...
Sicuramente la conoscevano alla Borland, questo bastava per 
mettere a rischio tutte le installazioni InterBase.


 esempio...
Si. Ma solo se lo fai da console, dando uno switch spesciale al server.
Cosi' si. Mi puo' stare bene. Ma che sia una login e una pwd usabile da
dovunque no.
bye
Gianluca

dovunque no.
Per quel che ne so io, puo' essere li' dai tempi quando 'dovunque'
era, appunto solo da un responsabile di sistema. Non sono 2.000 anni
che esiste internet, eh??
Obelix



No. Diventa esattamente quello che l'autore della backdoor ha previsto,
che puo' essere qualcosa di minimo come no.
Per esempio, in PostgreSQL od in MySQL saprei come fare in modo che una
certa SELECT, se contiene comparazioni con SEQUENZA, ritorni dati extra
nel primo campo abbastanza lungo.
Un giorno che implementano il "mio" PostgreSCUL in un sito di ecommerce
io scopro che c'e' un URL fatto cosi'
	articoli.asp?CAT=12
che mi ritorna tutti gli elettrodomestici. Allora io gli mando a manina
	articoli.asp?CAT=12000549672000		{elenca le tabelle}
e quello mi ritorna
	Forno a microonde "articoli"
	Forno a microonde "listini"
	Frigorifero "ordini_evasi"
	Lavastoviglie "ordini_aperti"
	Frullatore "pagamenti"
...un'altra mezz'oretta e ho quanto mi basta per vivere nel lusso alle
Tonga (le Bahamas sarebbero piu' fighe, ma c'e' l'estradizione).
