Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.WproWadzeniedoteStoWania
krywaniategotypuusterekjestprzydatnaanalizawartościbrzegowychdladanychwyjścio-
wych.Topouczającyprzykładbłędu,gdyżczęstozapominasię,żetechnikiprojektowania
testówmożnastosowaćnietylkoprzezanalizęiwykorzystaniedanychwejściowych,lecz
takżeprzezwymuszeniezwróceniaprzezprogramkonkretnychwartości.
GeneratorliczblosowychwsystemieKerberos.Kerberostoprotokółuwierzytelnia-
niaiautoryzacji.Używaalgorytmówkryptograficznych,więcwykorzystujerównieżgene-
ratorliczblosowych.Okazałosię,żeprzezdziewięćlat,od1988do1996roku,protokół
tenwykorzystywałgeneratorlosowyzbłędnieustawionymtzw.ziarnem(ang.seed),czyli
początkowąwartością,naktórejpodstawiebpóźniejgenerowanyciągliczblosowych.
Wrezultacie,wsposóbtrywialnymożnabyłozłamaćzabezpieczeniasystemu.Tegotypu
błądnajczęściejmożnaodkryćpodczasinspekcjiformalnychorazinnychtechnikanalizy
statycznejkodu0
SondakosmicznaMarinerI.22lipca1962rokuNASAwystrzeliłasondękosmicz-
MarineI,mającązazadaniezebraćinformacjenatematplanetyWenus.294se-
kundypostarcieoficerbezpieczeństwazadecydowałozdalnymzniszczeniusondyze
względunaniestabilnątrajektorięlotu,cogroziłoupadkiemrakietynaZiemięispo-
wodowaniemdużychzniszczeńlubnawetśmierciludzi(dodatkowegosmaczkucałej
historiidodajefakt,żesygnałozniszczeniumożnabyłowysłaćnajpóźniejdo5minut
postarciesondy.Gdybyoficerzwlekałzpodjęciemdecyzji6sekunddłużej,ktowie,
jakiesondaspowodowałabyzniszczenia).Taknaprawdędokońcaniewiadomo,co
byłobezpośredniąprzyczynąawarii.Większośćźródełmówiosymbolukreski(łącz-
nika),któryzostałbłędnieprzepisanydokoduźródłowegozkartkizawierającejrów-
naniamatematycznewykorzystywanewoprogramowaniu,przezcoprasaokrzyknę-
łacałąhistorięhnajdroższymłącznikiemwhistorii”.Wastronautycesymbolkreski
nadzmiennąoznaczaoperacjęwygładzania.Omyłka,polegającanaopuszczeniutego
symbolu,spowodowała,żewprogramiewartościjednejzezmiennychniebyływygła-
dzane,powodującdużeskokiwartości,coskutkowałozaburzeniemtoruloturakiety
wynoszącejsondę.Najlepszątechnikądowykrywaniategotypubłędówwszelkiego
rodzajuinspekcjeiprzeglądykodu.
MarsClimateOrbitertosondaNASA,któramiałasłużyćdobadaniapogodyikli-
matuMarsa.Wystrzelonow1998roku,alepodczasdokonywaniamanewruwejścia
naorbitęsondaznalazłasnazłejwysokości,poczymstraconoznkontaktiefekt
projektuołącznejwartości125milionówdolarówspłonąłwatmosferzeMarsa.Przyczy-
awariibyłostosowanieróżnychsystemówmetrycznychprzezróżnezespołypracujące
nadoprogramowaniemsondy.Oprogramowaniestosowaneprzezkontrolęnaziemną
stosowałodlaparametrusiłyjednostkianglosaskie(funty),podczasgdyoprogramowa-
niesondyużywałojednostekSI(niutonów).Tegotypubłędymożnawykryćpodczaste-
stówintegracyjnych,którychnajprawdopodobniejniewykonano.Dobrąpraktykąjest
równieżścisłetrzymaniesustalonychstandardów(np.rodzajusystemumetrycznego
wykorzystywanegowprojekcie).PotymwypadkuNASAwprowadziłaregulacjedoty-
czącetakiejstandaryzacji.
Therac-25tomaszynydoterapiinowotworówstosowanewlatach80.Między1985
a1987rokiemurządzeniatebyłyprzyczynąseriitragicznychwypadków.Wwyniku
10