Af og til vikler jeg mig ind i til tider ophedede diskussioner om sikkerhed i softwareudvikling og specielt om forskellen ved open source software (OSS) og closed source software (CSS). Det er som oftest spændende at deltage i. Det er ikke så meget fordi argumenterne skifter så meget - faktisk er der ret meget "Tordenskjolds soldater" over det, men det er spændende, da jeg oplever at mine holdninger bliver udfordret og dermed afpudset.
Nå ... en diskussion for nyligt fik mig til at tænke på, om OSS i sig selv indebærer større sikkerhed end CSS, og jeg fremtænkte dette scenarium:
(afsnit fra indlæg som jeg planlagde at poste på version2.dk)
En person tæt på build-processen for openoffice.org ønsker at indsætte overvågning i kildekoden. Hun gør herefter følgende:
- Kildekoden trækkes ud af repository på ganske normal vis.
- Inden kildekoden kompileres modificeres et par af filerne, hvor et par liniers kode tilføjes
- Hun publicerer herefter den binære fil på da.openoffice.org sammen med en checksum af den binære kode.
Hvad har hun nu opnået med dette? Jo, hun har opnået at lave en modifikation af koden, der ikke kan linkes tilbage til kildekoden og CVS/SVN etc. Størstedelen af de brugere, der downloader openoffice, vil slet ikke bekymre sig om checksummen - men de der gør vil opleve, at checksummen er korrekt - den er jo lavet på baggrund af den modificerede binære fil.
Den eneste måde at opdage fixet på er ved at hente kildekoden, kompilere den selv samt sammenligne resultatet af de to binære filer. Problemet i dette er, at størrelsen af den binære fil vil være afhængig af en lang række parametre såsom valg af oversætterværktøj, platform, eventuelle valgte optimizers etc. Det er derfor ikke ganske entydigt, at forskellige størrelser filer betyder forskellig kildekode.
Mit spørgsmål til jer, kære læsere, er naturligvis ... holder scenariet vand? Der er jo mange af jer, der som jeg arbejder med software hver dag, så jeres input vil blive værdsat. Det er som sådan ikke så interessant om scenariet er sandsynligt - men mere om det rent faktisk er muligt.
På forhånd tak :o)