EMBEDDED WORLD Efter att tidigare bara stött x86-processorer, stöder version 4.2 av Grammatechs statiska kodanalysverktyg Codesonar även ARM.
Alla ARM-processorer stöds, både 32- och 64-bitare, och både Thumb och Thumb 2-instruktioner. Codesonar behöver utveckla stöd för olika arkitekturer, men är däremot oberoende av programmeringsspråk eftersom det som analyseras är den kompilerade maskinkoden.
Att ta fram stöd för en ny arkitektur är en omfattande operation. Inget stöd för arkitekturer vid sidan av x86 och ARM är under utveckling.
Marc Brown |
– När andra arkitekturer börjar dyka som kommer vi att kolla upp dem. Vi väntar tills det finns en kommersiell efterfrågan, säger Marc Brown, affärsutvecklingschef på Grammatech.
Codesonar kan se till att kodutvecklaren följer regelverk som Misra C, men den kan också upptäcka programfel och varna för riskabel kod, exempelvis där program som körs samtidigt försöker synkronisera sig. All analys sker utan att Codesonar vare sig simulerar eller testkör programmet – det är därför analysen kallas statisk.
Grammatech anser inte att statisk kodanalys är allena saliggörande, också dynamisk analys måste användas av den som söker kodbuggar.
– Ingen av dem övertrumfar den andra. Båda krävs.
Enligt Grammatch kommer Internet of Things nu att börja ge upphov till nya synkroniseringsbuggar, exempelvis race conditions och deadlocks.
– Folk måste börja använda statisk kodanalys mer. Utnyttjandet av multikärnor blir allt större inom IoT och parallellitet är ett svårt problem.
Ytterligare en risk med IoT är cyberattacker. Det är ett problem att industriella system som använts i decennier nu plötsligt kommer att kopplas upp på Internet, något som de vad gäller säkerhet inte ursprungligen anpassades för.
– Många utvecklingsgruppper saknar expertis inom området, så det finns några attackvektorer som används framgångsrikt om och om igen. Du hör talas om dem varje vecka, nätverksproblem, scadasystem – det återstår många säkerhetsproblem att reda ut, säger Marc Brown.
För att skydda IoT-system kan Codesonar larma för misstag som hackers ofta utnyttjar, som att minne används utanför det reserverade området.
Utöver statisk kodanalys erbjuder Grammatech något man kallar ”härdning” av mjukvara. Istället för att identifiera alla buggar, läggs extra skyddande lager programkod kring befintlig programkod, och fångar eventuella fel innan de hinner göra skada.
– Ett exempel är buggen Heartbleed som berodde läsning av ickereserevrat minne. Efter härdning kan den buggen inte utnyttjas som en attackväg, även om den finns kvar i koden.
Idag kan Grammatech via härdning skydda program mot minnesläckor. Företaget kommer att släppa ytterligare härdningskomponenter mot andra problem.
Det är en utmaning i marknadsföringen är att förmå kunderna att våga lägga in extra maskinkod på detta vis i sina kompilerade program - de oroar sig över att programmets funktion ska ändras.
Ett annat problem är att eventuell certifiering förstörs av härdning, eftersom det som certifieras är just maskinkoden, och efteråt får den inte röras.
– Det är inget vi kan göra något åt nu. Men vi för dialoger om förändring, säger Marc Brown.
Grammatech hoppas på ändringar i reglerna för certifiering och att man kommer att kunna certifiera att de egna härdningskomponenterna inte ändrar funktionaliteten i redan certifierad kod.