De Binary Analysis Tool is een framework waarmee je kunt nagaan uit welke onderdelen gecompileerde code bestaat. Het is geschreven om na te gaan of embedded firmware voldoet aan de GPL. Techworld sprak met de maker ervan.

Armijn Hemel is al meer dan vier jaar GPL Compliance Engineer in dienst van Loohuis Consulting. In die tijd heeft hij de binaries doorgenomen van vele honderden firmwares, van routers, IP-camera’s, storage-apparaten, media-apparaten en nog veel meer van dat soort spul met embedded Linux. “Eerst doe je daar heel lang over”, zegt hij. “Maar op een gegeven moment weet je gewoon waar je op moet letten. Nu doe ik het in een paar minuten.”

In hexadecimalen

Voorheen speurde Armijn Hemel de binaries af naar overtredingen van de GPL in hexadecimalen, en al sinds hij dit werk doet is hij ervan overtuigd dat het te automatiseren is. Met dat idee heeft hij jarenlang gespeeld, maar voordat hij die plannen kon realiseren moest er financiering voor komen. Uiteindelijk heeft NLnet geld gestoken in het project en nu is versie 0.1 uitgekomen van de Binary Analysis Tool. Door sommigen wordt de toolset ‘BAT’ genoemd, maar zo noemt Armijn Hemel zijn tool liever niet. “The Bat! is ook een tool waar heel veel mee wordt gespamd, dus daar word ik liever niet meer geassocieerd”, zegt hij.

De toolset is vrijgegeven onder de Apache-licentie. Het is natuurlijk vreemd dat een tool waarmee GPL-overtredingen kunnen worden opgespoord niet onder de GPL valt, maar daar zijn goede redenen voor. Er wordt namelijk gebruik gemaakt van een tool met een Apache-licentie. Bovendien voelen veel bedrijven zich veiliger bij Apache, stelt Hemel. “Zelf vind ik dat een drogreden, maar als het een hoger doel dient, dan heb ik er niets op tegen.”

Onder een bus

Op dit moment bestaat de toolset alleen uit het framework, dat nog bepaald niet makkelijk is te gebruiken voor mensen die niet weten waar ze op moeten letten. Het maakt de binaries leesbaar en geeft uitvoer in XML. Maar er moet nog veel werk verricht worden. Zo moet er nog een database aan worden gehangen met GPL-programma’s en libraries. En er moet duidelijk worden gewaarschuwd als GPL-programma’s worden gelinkt met bibliotheken die niet GPL compatibel zijn. De XML-uitvoer moet tot slot op allerlei manieren omgezet kunnen worden in rapportages.

Overigens zal het programma nooit met zekerheid kunnen zeggen of de GPL overtreden wordt, omdat het zich richt op binaries en niet op broncode, geeft Hemel toe. Maar het wijst wel probleemplaatsen aan, waar GPL compliance Engineers dus naar kunnen kijken. “Andere engineers kunnen hiermee worden opgeleid”, zegt hij. Dat is een andere reden waarom hij dit programma wilde schrijven. “Ik heb heel veel kennis opgebouwd, maar als ik morgen onder een bus kom, dan is dat allemaal weg.” Hij heeft al wel een document geschreven waarin hij aanwijzingen geeft, maar dat bleek voor veel mensen lastig te lezen. “Met deze tool kunnen beginnende engineers snel aan de slag om te kijken of ze iets herkennen”

Rechtszaken

Op basis van het werk van Armijn Hemel zijn er in Duitsland al een aantal rechtszaken aangespannen en gewonnen, onder andere tegen Skype en D-link. Die rechtszaken zijn belangrijk, aldus Hemel, maar ze pakken het probleem niet bij de bron aan. De bron ligt bij de manier waarop de apparaten gebouwd worden, zegt hij. “Dat gaat heel erg slordig. Het moet eigenlijk allemaal gisteren opgeleverd worden, en daarom heerst er een sterk korte termijn-denken. De marges op de software zijn erg laag, en de concurrentie is moordend. Als ze ergens een bocht kunnen afsnijden, dan zullen ze dat zeker doen.”

Dat geldt volgens Hemel niet alleen voor de omgang met de GPL, maar ook voor de beveiliging. Terwijl hij de software doorspit komt hij regelmatig bugs tegen. “Die bugs zie je jarenlang terugkomen”, zegt hij. In 2006 rapporteerde hij bijvoorbeeld een bug in UPnP, die nu nog steeds in software voorkomt. Deze slordige softwareontwikkeling levert op korte termijn geld op, en juist daarom moeten de rechtszaken aangespannen worden tegen de leveranciers in Europa, stelt Hemel. “Zij moeten met hun neus op het probleem worden gedrukt, zodat ze hun toeleveranciers onder druk kunnen zetten om het goed te doen.”

Sneller op de markt

Er is al heel wat belangstelling van de leveranciers voor de toolset van Loohuis Consulting. Hemel wil geen namen noemen, maar hij hoopt wel dat een aantal leveranciers de verdere ontwikkeling van zijn toolset zal gaan financieren. “Ze krijgen vaak maar één enkele sample voordat ze de hele lading ontvangen voor de verkoop. En als ze die lading eenmaal in huis hebben, dan kunnen ze niet meer eerst uitgebreid gaan testen. Want het product van de concurrent is met hetzelfde schip aangekomen en ligt morgen in de winkels. Bovendien is de levensduur van dit soort apparaten hooguit anderhalf jaar. Dus hoe sneller je op de markt bent, hoe meer je kunt verkopen.”

Voor leveranciers die GPL compliant willen zijn, is het dus belangrijk dat ze het sample dat ze vooraf krijgen goed en efficiënt kunnen onderzoeken. Daardoor kunnen ze ervoor zorgen dat ze de juiste broncode en de juiste configuratiefiles bij het product voegen, zodat ze zeker geen rechtszaak aan hun broek krijgen. Eigenlijk moet dat op cd, zegt Hemel, al vindt hij het zelf voldoende als leveranciers de broncode op hun website publiceren. Alleen laat de GPLv2 dat niet toe. “De GPLv2 is ouderwets. Die komt uit 1991, en in die tijd kon er nog niet zoveel over het netwerk als nu.” Ondertussen heeft de GPL al wel een upgrade gekregen naar versie 3, maar Linux en Busybox, de software waar het meestal om gaat, zijn nu eenmaal uitgebracht onder de GPLv2 en daar zal voorlopig geen verandering in komen.

Bron: Techworld