[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Sikkerhedsting??



Hej,

On Thu, Oct 19, 2006 at 10:14:46AM +0200, Jacob Sparre Andersen wrote:
> 
> >>Er det et passende faktum at langt de fleste indbrud på 
> >>unix-systemer skyldes defekt PHP-kode?
> >
> >Jeg har ikke set nogen konkret statistik. Men det kan da 
> >bestemt ikke udelukkes.
> 
> Jeg vil heller ikke påstå at den smule helt konkret 
> statistik jeg har er komplet dækkende.

Så vil jeg indtil videre tillade mig ikke at opfatte det som et passende faktum
at "langt de fleste indbrud på unix-systemer skyldes defekt PHP-kode". Det er
vel meget rimeligt, ikke?

> >>Er det et passende faktum at PHP mangler den stærke 
> >>typekontrol der er et vigtigt element i at skrive 
> >>sikkerhedskritiske programmer?
> >
> >Ja og nej.
> >
> >Php er ganske rigtig typesvagt. Jeg som udgangspunkt er 
> >jeg ikke enig i at typecheckere i nævneværdig grad fanger 
> >sikkerhedsrelaterede fejl. For mig at se er det væsentligt 
> >vigtigere at sproget er udrustet med et runtime system der 
> >fanger de klassiske angrebsvektorer, såsom: off-by-one, 
> >buffer-overrun, etc.
> 
> Det er rigtigt at der er en væsentligt sikkerhed i at være 
> beskyttet mod bufferoverløb og deslige. - En sikkerhed to 
> andre populære sprog; C og C++ ikke har.
> 
> >Hvis ellers vi antager at sprogets implementation 
> >(oversætter/fortolker) er af tilfredsstillende kvalitet, 
> >kan jeg ikke se at typestyrke gør forskellen.
> 
> Stærke typesystemer er en generel sikring mod fejl.  

Det er vi ikke uenige i. Jeg foretrækker selv typestærke sprog, når jeg har
valget.

> Hvis programmerne kører i en perfekt sandkasse er fejl i programmerne
> principielt ikke et sikkerhedsproblem.  Men når Apache ikke kører
> PHP-programmer i en sandkasse, men giver dem adgang til at skrive, læse og
> udføre kode på systemet er der potentiale for problemer.

Jeg kan ikke umiddelbart se at det hænger sammen med typestyrken af php. Man
kan muligvis argumentere for, at php er uhensigtsmæssigt designet på visse
områder (eksempelvis at fopen() kan åbne vilkårlige URL'er, etc), men jeg vil
holde fast i at typestyrken ikke er væsentlig.

Endvidere har flere her på listen pointeret, at man sagtens kan pakke sin 
php-fortolker ind, så den ikke har andet end minimal adgang, på den maskine 
hvorpå den afvikles.

> >Hvis du kan fremvise overbevisende eksempler på det 
> >modsatte, vil jeg meget gerne se dem - og revidere min 
> >opfattelse.
> 
> Så må jeg på jagt, for jeg har ikke.  De eksempler jeg har 
> kigget på var mere noget jeg ville kalde dynamisk kode end 
> dynamiske typer.
> 
> >>Er det et passende faktum at der ikke findes værktøjer 
> >>der kan lave en statisk sikkerhedsanalyse af 
> >>PHP-programmer?
> >
> >Der findes en del af sådan nogen dimser til C og C++.
> 
> Ja.
> 
> >Er de gode sprog til sikkerhedskritiske programmer, 
> >herunder webbaserede tjenester?
> 
> Nej.  Men de ovennævnte dimser gør dem bedre til det, end de 
> ellers ville være.  

Givetvis, jeg må indrømme, at jeg aldrig har anvendt statisk analyse til at
finde sikkerhedsrelaterede fejl.

> Hvis du for eksempel kan bevise at din 
> kode er fri for »exceptions«, så er du en stor fejlklasse 
> sikrere.  (Det er du også, når du ikke kan have 
> bufferoverløb.)

Hvis ellers jeg husker min teori rigtigt, siger Rice's teorem så ikke, at den
slags ikke kan bevises for andet end _helt_ trivielle programmer?

> Jeg tænkte mere i baner som Ada, Eiffel, SPARK, eller 
> passende moderne Pascal-varianter.

Dem har jeg aldrig brugt. Det kunne være jeg skulle prøve det.

For at opsummere:
Du har ret i at php har en række uhensigtsmæssigheder, men jeg har svært ved at
se at andre sprog ikke lider af tilsvarende omend anderledes defekter.
Om ikke andet må man sige, at det faktum at php er designet til webfis, gør
det vældig behageligt (for ikke at nævne produktivt) at arbejde med, når man
netop laver webfis.

-- 
Søren O.

"Oh, bother" said the Borg, "we've assimilated Pooh".



Reply to: