Fint med flokk

Sist lørdag hadde Christen Sveaas et innlegg der han skriver at “store gevinster ikke kommer når man går i flokk”. Det har han nok rett i, men å gå sine egne veier kan like gjerne lede til store tap.

Fondets historie viser at aktiv forvaltning hverken har gitt store gevinster eller er noen garanti for ikke å gå i flokk. Fondet gikk nettopp i flokk når det før finanskrisen brukte obligasjonsporteføljen til vanvittig rentespekulasjon sammen med en rekke storbanker. Å følge markedsflokken er en garanti mot slike tabber. For et stort statlig fond som Oljefondet er nok de store gevinstene uansett ikke oppnåelige.

Det vi vet om aksjemarkedet er at den gjennomsnittlige investoren per definisjon oppnår markedsavkastningen. Dersom vi deler markedet inn i aktive og passive investorer, så betyr det at de aktive investorene på grunn av høyere kostnader i gjennomsnitt må tape for at regnestykket skal gå opp.

Dersom markedet for eksempel består av to aksjer og de passive investorene holder 20 prosent av hver aksje, ja så må nødvendigvis de aktive investorene holde de resterende 80, med like store andeler av hver aksje i sin portefølje. I sum holder derfor aktive investorer en portefølje som er identisk med markedsporteføljen.

Aktive investorer må derfor som gruppe tjene mindre enn markedet på grunn av høyere kostnader, men det kan selvsagt eksistere særlig dyktige analytikere som slår markedet så solid at det dekker kostnadene gang på gang. For hver slik suksessforvalter må det da også være investorer som finner seg i å tape stort i forhold til indeksen år etter år uten å desertere til den passive siden.

Det er derfor ikke umulig for Oljefondet å slå markedet, men det kan være en utfordring å få slike suksessanalytikere til å jobbe på statslønn for Norges Bank. Det er muligens dette de eksterne mandatene er til for.
Oljefondet må i tillegg kjempe mot sin egen størrelse. I den grad fondet finner undervurderte aksjer vil fondets egne aksjekjøp presse opp prisen og redusere den potensielle fortjenesten. Størrelsen på beløpet en kan plassere i hvert selskap er derfor veldig begrenset og det vil bli stadig vanskeligere å finne gode investeringsmuligheter ettersom fondet vokser. Resultatet må bli mindre meravkastning, som vist i figuren.

Nå kan man innvende at vi siden 2006 har hatt en finanskrise og at fondet tapte mye på uheldige spekulasjoner i rentepapirer før krisen. Avkastning som svinger med kriser og konjunkturer faller imidlertid ikke inn under definisjonen av meravkastning og dyktighet, men er betaling for risiko. Det kan godt hende at fondet bør ta slik risiko, for eksempel ved å vekte seg opp i selskaper med høy bokverdi og ned i de med høy markedsverdi. I så fall bør man gjøre det systematisk ved å justere indeksen som fondet skal følge. I dag er det summen av enkeltanalytikeres tilfeldige vurderinger som bestemmer strategien til fondet.

I følge en rapport av Ang, Goetzmann og Schaefer om forvaltningen av fondet, så kan så godt som hele fondets meravkastning forklares med velkjente strategier, som å satse på små selskaper på bekostning av store. Dette kan man gjøre kostnadseffektivt ved for eksempel å vekte ned store selskaper og vekte opp små selskaper i indeksen fondet skal følge.
Det finnes i hovedsak to mulig forklaringer på at denne type strategier ser ut til å levere meravkastning over tid. Enten så er det kompensasjon for en eller annen type risiko, eller så finnes det ubrukte pengemaskiner der ute. Dersom sistnevnte er tilfelle kan vi ikke regne med at det vil vedvare, og vi bør ikke satse på dem. Om meravkastingen derimot er kompensasjon for risiko bør man vurdere nøye hvor stor legitimitetskreditt fondet har. Er fondets ultimate eiere, norske privatpersoner, tålmodige nok til å sitte gjennom en ny finanskrise?

I et såpass stort fond som Oljefondet vil det alltid være risiko for store feilinvesteringer, misbruk av fondets midler og informasjon og så videre. En mer passiv indeksnær forvaltning der en eventuelt tillater strategiske veddemål, vil gi mindre handlingsrom for NBIM og dens eksterne forvaltere. Det gir mindre rom for feil og mer legitim avlønning. Avkastningen vil bli omtrent den samme.

Mangelfull matkjedeutredning

Matkjedeutvalgets utredning er mangelfull. En nødvendig analyse er utelatt til fordel for en mindre relevant maktutredning og viktige deler av verdikjeden er unntatt. Det kan virke som om konklusjonen ble skrevet først.

Det merkeligste med Matkjedeutvalgets utredning at de ikke har undersøkt hvor mange prosent av prisen som går til butikkjede og produsent. I følge uvalget er slike marginstudier ”krevende å gjennomføre”. En utredning om dagligvarepriser er imidlertid ikke veldig relevant uten at det foreligger tall på hvor mye hvert ledd i verdikjeden tar. For å sitere utredningen: ”Slike studier er ofte en forutsetning for å kunne gi fullgode svar på hvordan verdiskapningen i verdikjeden for mat fordeles”. At dette er vanskelig å få til er en dårlig unnskyldning.

For eksempel gav Norsk Institutt for Landbruksøkonomisk Forskning ut ”Marginer i kjøttsektoren” i 2005. Utvalget har av ukjent grunn ikke tatt den med i utredningen, men her fremkommer det at butikkjedenes avanse er på ca. femten prosent for kjøttprodukter, hvilket vil si ca. ti prosent etter svinn. Uten bedre informasjon får vi bare anta at ting ikke har endret seg vesentlig siden 2005 og at avansen er tilsvarende på andre varer. En avanse på én tidel er imidlertid så lav at man neppe vil kunne hente mer enn noen få prosentpoeng på effektivisering.

Nyere og bredere marginstudier hadde naturligvis vært en fordel, men utvalget har i stedet prioritert å bruke ressursene på en maktutredning. Utvalget finner at forhandlingene mellom kjeder og leverandører er svært krevende. Noen møter visstnok trusler om å bli tatt ut av butikksortimentet. Det overrasker nok bare Matkjedeutvalget. Utvalget foreslår likevel en ny lov til å regulere dette. Det spørs om ikke en enklere løsning ville være at salgssjefene som ikke takler forhandlingene fant seg en annen jobb.

Det er også nokså uklart hva som er problemet med at butikkjedene har ”for mye” makt i forhandlingene med leverandører. Det er ingen grunn til å tro at lavere innkjøpspriser ikke forplanter seg til konsumenten, uavhengig av konkurransen mellom kjedene.

Ved fremleggelsen kunne utvalgets leder Einar Stensnes fortelle på Dagsrevyen var at det fantes en uforklarlig prisforskjell på 22% mellom Norge og Sverige etter at man visstnok hadde tatt hensyn både forskjell i toll og kostnadsnivå. Leser man utredningen ser man imidlertid at utvalgslederen har misforstått. Man har rett og slett sammenlignet varer uten toll uten å ta hensyn til kostnader, og forskjellen er bare ti prosent til Danmark. Noe av dette kan kanskje skyldes mindre konkurranse i Norge, men uten en marginstudie blir dette uinteressant gjetting fra utvalgets side.

I Norge er Tine, Nortura og Felleskjøpet satt til å regulere markedet for Omsetningsrådet. Sistnevnte kontrolleres igjen av landbruksorganisasjonene. Samvirkene er altså satt til å regulere sitt eget marked. Det blir som om Nils Arne Eggen skulle dømme Follo-Rosenborg. At halveringen av matmomsen i 2001 i det vesentlige gikk til samvirkene er ikke overraskende.

Råvaremarkeder trenger koordinering. Uten vil en svinebonde måtte forsøke å gjette seg til slakteprisene når han planlegger produksjonsvolum noen måneder før, og det går gjerne ikke så bra. En bedre løsning enn et inhabilt omsetningsråd er imidlertid bruk av private finansielle kontrakter, slik at slakteprisen er kjent for bøndene når produksjonen planlegges. En slik ordning fungerer utmerket i andre land og vi har allerede et slikt marked for laks i Norge.

Fjerner man omsetningsrådet og unntaket fra konkurranseloven for landbruket vil både bønder og konsumenter tjene på det. Et unødvendig fordyrende mellomledd er et problem for alle, uavhengig av hva man mener om beskyttelse av norsk landbruk. Det er ironisk at bøndenes kanskje største utfordring er de ineffektive samvirkene som de selv eier.

Årsaken til inneffektiviteten i samvirkene kan vi lese i rapporten: ”[Leverandørene] er bekymret over at de effektiviseringsgevinster som er tatt ut over flere år, i for liten grad har blitt stående igjen i virksomheten. De hevder at interne kostnader som tas ut i stor grad går med på å styrke betingelsessettet i dagligvarekjedene. Dette går på bekostning av midler som kunne ha vært brukt til innovasjon, kompetanse og produktutvikling

Oversatt til norsk: Leverandørene ser ikke noen hensikt i å effektivisere fordi høye driftsmarginer bare fører til krav om lavere priser fra kjedene og trolig også krav om bedre betaling til bøndene. Nærmere en innrømmelse kommer man vel neppe.

Using View > Encoding can kill you (in a manner of speaking)

Here's an interesting tidbit: you should never use the View > Encoding menu in any browser unless you fully trust the visited website.


Picking an alternative encoding through that menu overrides the character set not only for the top-level document, but also for all the nested frames - even if they happen to be cross-domain or hidden from view. And that may very well enable the owner of the visited page to carry out an XSS attack against a random third-party application without your knowledge.


Most security researchers associate encoding-related XSS problems with UTF-7, a somewhat preposterous and unnecessary encoding scheme that, by design, allows overlong encoding of 7-bit ASCII values (with disastrous consequences for HTML parsing). Not all browsers support UTF-7, and users are not likely to make that choice in the aforementioned menu. So, we're fine, right?


Well, not exactly. Many other, still popular multi-byte encodings, including Shift JIS or EUC-*, are also fairly problematic: their parsers often suffer from character consumption bugs, and in contrast to UTF-8, relatively little attention has been given to cleaning this up.


For example, with forced Shift JIS, this input is likely to be exploitable:


<img src="http://fuzzybunnies.com/[0xE0]">
...this is still a part of the markup...
" onerror="alert('Hi mom!')" x="
...

Simple demo here.

Råvarefesten

Oljeprisen er nå over 110 dollar fatet. De fleste vil peke på uroen i Midtøsten og Nord-Afrika som hovedårsak. Mye tyder imidlertid på at det er helt andre mekanismer som ligger bak.


Opptøyene i Midtøsten startet for alvor på nyåret. Prisen på råolje lå imidlertid tett oppunder 100 dollar fatet allerede i desember i fjor. Det er derfor grunn til å tro at toppnoteringen har andre forklaringer.

En indikasjon på hva som er i ferd med å skje kan vi få ved å sammenligne med en mer generell råvareindeks. I figuren ser vi råoljeprisen plottet sammen med prisutviklingen på råvarer uten energi. Likheten mellom utviklingen i råoljeprisen og andre råvarer er slående. Siden april i fjor har faktisk andre råvarer steget mer enn oljeprisen.

Til tross for disse relativt entydige signalene på en generell råvarefest, ser vi stadig forsøk på bortforklaringer. Høy oljepris skyldes Gadaffi, høye hvetepriser skyldes feilslått innhøsting og stadig stigende byggpriser er kanskje spekulantenes feil.

Naturligvis vil både dårlig innhøsting og gale diktatorer kunne ha innvirkning på enkelte råvarer. Når vi ser en generell prisøkning slik som nå virker det imidlertid mer sannsynlig at det finnes mer grunnleggende årsaker. Prisoppgangen gjelder nemlig både kobber, kaffe, svin, storfekjøtt, sukker, soyaolje, aluminium og nær sagt alt annet. Det er usannsynlig at en slik bred oppgang skyldes annet enn en generell økning i etterspørsel.

Spekulanter ble tidlig beskyldt for å drive prisene på råvarer i taket. Forskning, blant annet fra finanskrisen, viser imidlertid at det ikke finnes grunnlag for slike påstander. Det virker også usannsynlig at spekulanter alene skulle kunne presse prisene opp på nær sagt alle råvarer. Å manipulere priser ved å trenge hele verdens råvaremarked inn i et hjørne er en særdeles risikabel strategi og ville krever enorme mengder kapital. En kan kanskje tenke seg at spekulanter kunne manipulere én råvare over en tidsbegrenset periode. At hedgefond og andre høyrisikoinvestorer skulle kunne manipulere den totale verdensetterspørselen etter råvarer i over ett år er imidlertid lite sannsynlig.

Prisene på råvarer er nå på god vei opp til toppen under finanskrisen. Det er særdeles gode nyheter. Enkelte har uttrykt bekymring for at de høye råoljeprisene vil knekke oppgangen i verdensøkonomien. Siden alt tyder på at oppgangen skyldes en generell økning i etterspørselen blir dette å sette saken på hodet. Prisene vi ser i dag er et tegn på at økonomien er i god bedring. En prisøkning er nødvendig for å ballansere den økende etterspørselen med det eksisterende tilbudet. Dette må til for å gi incentiver til å øke produksjonen ytterligere.
Litt mer interessant er det kanskje å se fremover. I figuren er også den amerikanske konsumprisindeksen tegnet inn. Det er relativt lett å se at det er en solid sammenheng mellom prisen på råvarer og konsumprisen. Det skulle naturligvis bare mangle. Konsumprisene er et resultat av bedriftenes kostnader, som i stor grad bestemmes av råvareprisene. Endring i råvarepriser er også et mer generelt tegn på økt etterspørsel, og økt etterspørsel fører normalt til økte konsumpriser.

Sist vi hadde en sterk økning i etterspørselen var frem mot finanskrisen. I ettertid kan det se ut som om sentralbankene da kom bakpå og satte opp rentene for sent og for mye. Det blir derfor interessant å se hva som kommer til å skje denne gangen. Når det gjelder råvarepriser ligner bildet mye på perioden før finanskrisen.

Spørsmålet er derfor hvor hardt sentralbankene denne gang vil bekjempe inflasjonen. I Storbritannia er allerede inflasjonen oppe i 4%. Produsentprisene stiger nå med over 5% i året. Det er langt over målet på 2%. Likevel holder sentralbanken fast på en rente på en halv prosent.

Det er fortsatt mye gjeld i både EU og USA. Mye av dette er statsgjeld. Fristelsen til å oppgi inflasjonsmålet må være stor. Det er i dag ustedet kolossale mengder statsobligasjoner. Inflasjon vil effektivt redusere denne gjelden. Dette vil redusere behovet for økte skatter samtidig som man slipper å ramme boligeiere med høy gjeld. Politisk kan det rett og slett bli en meget behagelig løsning å løsne litt på den rigide inflasjonsstyringen man har fulgt til nå.

Pwn2own considered (somewhat) harmful

I think that hacking challenges and bug bounty programs can be extremely valuable. This is true when they involve transparent, sustained efforts to evaluate the security of a particular platform. For example, I believe that there is a substantial value in Mozilla bug bounties, or in the Chrome reward program. These programs greatly improve the security of the browsers in question, occasionally advance our understanding of web security, and provide tons of statistical data about vendor response processes and attitudes toward security flaws. That last part is arguably the most important metric when dealing with code so complex that for better or worse, it is unlikely to ever be perfectly safe.


I also think that Pwn2own, an annual browser hacking contest run by TippingPoint, does not deliver the same value. The formula of the contest boils down to this: once a year, a single, secretly developed exploit is exchanged for a substantial amount of money. No information about the flaw or its back story is revealed in the process, and given that this trade is negligible in comparison to the annual volume of browser vulnerabilities, there is absolutely no intrinsic value in observing it.


That, alone, is not a compelling criticism; at best, it's a reason not to watch. But then, there are some negative consequences, too: it is in the interest of the conference and contest organizers, and the participating researchers, to get publicity for their findings - and journalists, who do not necessarily have a holistic view of the day-to-day browser security research, embrace such high-profile developments with disproportionate enthusiasm. The resulting ecstatic press coverage ultimately undermines any attempt to have a meaningful and reasonable discussion about the state of browser security.


Take this quote, which likely will be repeated in every Safari-related story for the next twelve months:


"A team was able to exploit Safari to exploit a MacBook Air in five seconds. Yes, five seconds - less time than it takes most people just to type 'Safari got hacked in less than five seconds'."


That's remarkable, but also completely wrong. It takes days or weeks to find and exploit a vulnerability, and Pwn2own is no exception: the actual exploits are prepared months or weeks in advance, and simply executed on the day the contest takes place. I do not think there is a single person in the information security industry who would say that the discovery of a normal browser vulnerability is a notable event: several hundred such flaws are discovered and resolved every year in every browser, as evidenced by release notes maintained by the vendors with varying degrees of accuracy. Neither the fact that somebody discovered a vulnerability before Pwn2own, nor that this person needed needed five seconds to execute that pre-made code, is a useful measure of anything.


Similarly, the survival of Firefox and Chrome intuitively makes me happy, because I know that these browsers give a lot of thought to security - but I do not think that Pwn2own is a meaningful testament to this. Perhaps these two vendors merely patched up the vulnerability somebody wanted to use, and there was not enough time to find a new one. Or perhaps nobody attending the event (which brings together only a tiny fraction of the infosec community) had the expertise and the inclination to target this particular browser.


Yes, there are vendors who lag behind the rest when it comes to vulnerability response and proactive security work; and there are some hard problems we still have to solve to make the web a safer environment. But the headlines inspired by Pwn2own (and probably encouraged by the organizers) are very unfair, and unnecessarily alienate the parties who should be paying attention to their security posture. Investigating real data, and asking some hard-hitting questions, can make more of a difference... and if done right, it can be more fun.

A note on an MHTML vulnerability

There is an ongoing discussion about a recently disclosed, public vulnerability in Microsoft Internet Explorer, and its significance to web application developers. Several of my colleagues investigated this problem in the past few weeks, and so, I wanted to share our findings.


As some of you may be aware, Microsoft Internet Explorer supports MHTML, a simple container format that uses MIME encapsulation (nominally multipart/related) to combine several documents into a single file. Each container may consist of a number of possibly base64-encoded documents, with their content type determined solely by the inline MIME data.


Perhaps by the virtue of not having cross-browser support, the MHTML format is not commonly used on the web - but it is employed by Internet Explorer itself to save downloaded pages to disk; and embraced by some third-party applications to deliver HTML-based documentation and help files.


To facilitate access to MHTML containers, the browser also supports a special mhtml: URL scheme, followed by a fully-qualified URL from which the document is to be retrieved; a "!" delimiter; and the name of the target resource inside the container. Unfortunately, when MHTML containers are accessed over protocols that provide other, normally authoritative means for specifying document type (e.g. Content-Type in HTTP traffic), this protocol-level information is ignored, and a very lax MIME envelope parser is invoked on the retrieved document, instead. The behavior of this parser is not documented, but it appears that in many cases, adequately sanitized user input appearing on HTML pages, in JSON responses, CSV exports, image metadata, and so forth, is sufficient to trick it into treating the underlying document as valid MHTML. All that is needed to keep this parser happy is the ability to place several alphanumeric and punctuation characters on the target page, in several separate lines.


The payload inside such an unintentionally served "MHTML container" is able to execute JavaScript, and has same-origin DOM access to the originating domain; with some minimal effort, it is also able to access to domain-specific cookies. Therefore, this behavior essentially represents a universal cross-site scripting flaw that affects a significant proportion of all sensitive web applications on the Internet.


Based on this 2007 advisory, it appears that a variant of this issue first appeared in 2004, and has been independently re-discovered several times in that timeframe. In 2006, the vendor reportedly acknowledged the behavior as "by design"; but in 2007, partial mitigations against the attack were rolled out as a part of MS07-034 (CVE-2007-2225). Unfortunately, these mitigations did not extend to a slightly modified attack published in the January 2011 post to the full-disclosure@ mailing list.


It appears that the affected sites generally have very little recourse to stop the attack: it is very difficult to block the offending input patterns perfectly, and there may be no reliable way to distinguish between MHTML-related requests and certain other types of navigation (e.g., <embed> loads). A highly experimental server-side workaround devised by Robert Swiecki may involve returning HTTP code 201 Created rather than 200 OK when encountering vulnerable User-Agent strings - as these codes are recognized by most browsers, but seem to confuse the MHTML fetcher itself.


Until the problem is addressed by the vendor through Windows Update, I would urge users to consider installing a FixIt tool released by Microsoft as an interim workaround.


Update: see this announcement for more.

The other reason to beware ExternalInterface.call()

Adobe Flash has a function called ExternalInterface.call(...), which implements a JavaScript bridge to the hosting page. It takes two parameters: the first one is the name of the JavaScript function to call. The second one is a string to pass to this function.


It is understood that the first parameter should not be attacker-controlled (of course, mistakes happen :-). It is also understood that there is no inherent harm in putting user input in the second parameter, if the callback function itself is not behaving stupidly; in fact, Adobe documentation gives an example that follows this very pattern:



  ...

  ExternalInterface.call("sendToJavaScript", input.text);

  ...


Such a call would be translated to an eval(...) statement injected on the embedding page. This statement looks roughly the following way:



  try {

    __flash__toXML(sendToJavaScript, "value of input.text"));

  } catch (e) {

    "<undefined/>";

  }


When writing the supporting code behind this call, the authors remembered to use backslash escaping when outputting the second parameter: hello"world becomes hello\"world. Unfortunately, they overlooked the need to escape any stray backslash characters, too.


So, try to figure out what happens if the value of input.text is set to the following string:



  Hello world!\"+alert(1)); } catch(e) {} //


I reported this problem to Adobe in March 2010. In March 2011, after following up, I received the following response:


"We have not made any change to this behavior for backwards compatibility reasons."


Caveat emptor :-)