Drupal beveiligingslek

3 November 2014 17:20 Tom van Vliet Algemeen

Eerder deze maand werd in Drupal een kwetsbaarheid voor sql-injectie gevonden. Finalist heeft op dat moment het probleem opgemerkt en er actief op gereageerd door met onze opdrachtgevers te communiceren en, na goedkeuring, een security update uit te rollen. De Drupal community geeft aan dat nu blijkt dat sinds de aankondiging van het lek deze kwetsbaarheid heel snel en in toenemende mate actief is misbruikt voor hacks en geautomatiseerde aanvallen. Zodoende heeft dit lek nu de hoogste risico-rating gekregen. Er kan namelijk in de periode tussen de aankondiging van het lek en de uitrol van de update misbruik zijn gemaakt van het lek.

Feitelijke stand van zaken

Het is zeer lastig te controleren of er daadwerkelijk problemen zijn. Gezien de schaal van het probleem wereldwijd is de kans op een probleem als gevolg van dit beveiligingslek niet te negeren en er zijn al sites gerapporteerd als gehackt.

Een hack kan bijvoorbeeld nu of in de toekomst leiden tot:

  • Het ongewild van buitenaf aanpassen van uw webpagina’s;
  • Misbruik van wachtwoorden;
  • Installatie van kwaadaardige software, bijvoorbeeld spamrobots.

Het security team van de Drupal community stelt hierover:

Dit lek is dusdanig ernstig dat alleen door een zware ingreep de situatie weer genormaliseerd kan worden. Deze ingreep houdt in dat de omgeving terug moet naar een herstelpunt van op of voor 15 oktober. Alle wijzigingen en data van daarna moeten worden beschouwd als potentieel gevaarlijk en afgeschreven als verloren.

Als uw omgeving besmet is, dan is niet alleen de server, maar ook de data een mogelijk nieuwe besmettingsbron. Een slimme hacker zal er namelijk voor zorgen dat hij niet zo snel meer uit het systeem kan worden gegooid door op allerlei plaatsen nieuwe toegangssituaties te creëren. Dit maakt het ook onmogelijk om een systeem te scannen, vergelijken of te bestuderen en vervolgens te identificeren als besmet of als veilig.

Wij zijn ons ervan bewust dat dit een draconische maatregel is met mogelijk veel impact voor u en uw klanten. Toch zien wij dit als de enige manier om u en uw data voor de toekomst veilig te stellen. Wij zullen u hierbij zoveel mogelijk helpen om de impact zo laag mogelijk te houden.

De hierna volgende punten en het stappenplan bevatten technische terminologie. Wij kunnen ons voorstellen dat dat mogelijk niet altijd even helder voor u is. U kunt te allen tijde contact met ons opnemen voor een andere toelichting.

Algemene punten

Naar aanleiding van security-bug SA-CORE-2014-005 dienen alle systemen die niet binnen 7 uur na de melding zijn gepatcht en niet achter een login staan (moet géén Drupallogin zijn) als verloren te worden beschouwd en dient het systeem te worden hersteld naar 15 oktober via dit stappenplan.

Er moet daarom gebruik worden gemaakt van backups van vóór 15 oktober 2014 11pm UTC (01:00 16/10 NL).

De meeste niet-productieomgevingen staan overigens achter een basislogin en zijn dus niet aangetast. Deze zullen worden gebruikt als herstelsysteem voor deze operatie.

Al deze stappen worden in ons tracking systeem Jira vastgelegd ten behoeve van de administratie, voor het afstemmen van keuzes die met u worden gemaakt en voor het borgen van de stappen zelf. Niet elke stap is voor elke omgeving van toepassing. Kijk daarom in uw eigen Jira omgeving wat wel en niet relevant is.

Het stappenplan

Hieronder vindt u het stappenplan dat zal worden doorlopen.

NB: In het onderstaande stuk dient ‘testomgeving’ te worden gelezen als acceptatieomgeving als deze bestaat.

  1. Backup van de productie-omgeving van voor 15 oktober veiligstellen door systeembeheer;

  2. Backup van de testomgeving maken indien gewenst (in geval van lopend project / content voorbereiding) door systeembeheer;

  3. Testomgeving voorbereiden als herstelomgeving wanneer deze niet achter basis-login staat, door systeembeheer. NB: deze stap is meestal niet nodig;

  4. Gekozen backup van de productie-omgeving restoren op de testomgeving door systeembeheer;

  5. Nieuwste code uitrollen en het uitvoeren van upgrades indien van toepassing door het Drupalteam;

  6. Alle wachtwoorden resetten en alle lopende Drupalsessies verwijderen door systeembeheer en het Drupalteam;

  7. Administrator wachtwoord genereren en documenteren door systeembeheer;

  8. U kunt nu opnieuw content maken op de testomgeving aan de hand van de productieomgeving en het wijzigingen-log, waartoe u toegang krijgt. Dit zal worden uitgelegd in het Jira issue.
    Let op dat formulier-inzendingen en reacties in principe verloren gaan. We kunnen hier extra aandacht aan besteden indien gewenst. Zo geldt voor de meeste formulieren dat een export naar MS Excel mogelijk is, zodat u toch een back-up hebt.

  9. Productie-uitrol door systeembeheer;

  10. Backup van de testomgeving terugzetten (ivm lopend project / content voorbereiding; indien stap 2 nodig was)
    Let op; wanneer testomgeving NIET achter een basic-login staat, moet ook het testproject worden opgeruimd. Aangezien er van testomgevingen geen backups zijn, moet de snapshot als verloren worden beschouwd.

De voorziene tijdsbesteding en kosten zullen per omgeving verschillen. Uiteraard treden we hierover nader met u in overleg.

Algemene updates over dit issue zullen we communiceren via deze pagina.

Daarnaast zullen we uiteraard over uw specifieke sitiuatie met u blijven communiceren via de reguliere wegen.

Reageer

Toegankelijkheid les 1: Afbeeldingen zijn niet geschikt als knop

19 February 2014 9:00 Jasper Stroomer Algemeen

U komt ze vast regelmatig tegen op websites en in webapplicaties, van die prachtig opgemaakte menubalken en knoppen. Ziet er leuk uit, maar de toegankelijkheid voor visueel gehandicapten laat vaak te wensen over.

Zolang de softwareontwikkelaars zich aan de webrichtlijnen houden is er niets aan de hand, maar soms kiest men er echter voor om een afbeelding in te zetten als knop. Dit levert helaas onwerkbare situaties op als het een knop betreft die essentieel is voor de werking van de webapplicatie. Lees verder

Reageer

Agile coach camp 2013

4 June 2013 12:27 Lennaert van der Linden Agile, Scrum

Na het succes van vorig jaar, wilde ik dit jaar natuurlijk weer graag naar Agile coach camp. Ik was gelukkig op tijd met inschrijvingen dus ging ik met 50 deelnemers een weekend met open space sessies tegemoet, waaronder agile coaches, scrum masters en agile ontwikkelaars. In dit artikel beschrijf ik twee bijzondere sessies.

Lees verder

Reageer

Pakketbeheer in PHP met Composer

9 April 2013 9:33 Lennaert van der Linden Algemeen, PHP

In Java wordt vaak gebruik gemaakt van maven om afhankelijkheden op derde partij bibliotheken aan te duiden en deze op te halen. Met composer is dit ook voor PHP mogelijk. In dit artikel beschrijf ik de stappen om composer te gebruiken in een bestaand project. Hierbij komt ook de packagist repository kort aan bod.

Lees verder

2 reacties

Traits in PHP

26 March 2013 12:12 Lennaert van der Linden Algemeen, PHP

In PHP 5.4 zijn een aantal nieuwe functionaliteiten toegevoegd, waaronder de callable typehint, de verkorte array syntax en traits. In dit artikel geef ik een introductie tot traits in PHP.

Lees verder

Reageer

FreeMind diagrammen in Alfresco

17 March 2013 16:33 Cees Roele Alfresco

Vorige week wilde ik een FreeMind mindmap diagram toevoegen aan een aantal documenten in Alfresco. Dus vanuit FreeMind een export gemaakt naar PNG, upload naar Alfresco, en klaar.

Toch? Nou nee. Het zat met niet lekker. Waarom niet het FreeMind diagram direct in Alfresco plaatsen?
Lees verder

Reageer

Over feature-teams en component-teams

29 January 2013 15:50 Lennaert van der Linden Agile, Algemeen

Een klant vertelde me eens over een project dat in zijn bedrijf werd gestart om een back-end systeem opnieuw te implementeren. In een latere fase zou het front-end systeem worden aangepakt. De fasering was begrijpelijk, maar ik had zo mijn bedenkingen. In dit artikel geef ik aan waarom.

Lees verder

2 reacties

Workflow voor mappen in Alfresco

14 November 2012 15:58 Cees Roele Alfresco

Gemeenten gebruiken zaaksystemen om allerhande aanvragen in behandeling te nemen. Daarin wordt voor iedere zaak bijgehouden wanneer deze is begonnen, wat voor type deze heeft, wat voor typen documenten kunnen worden toegevoegd, wie de aanvrager is, wie verantwoordelijk is, wat de status op een bepaald moment is, en welke taken dienen te worden uitgevoerd om het behandelen van de betreffende zaak tot een resultaat te laten leiden.

Alfresco bevat als Document Management Systeem en Record Management Systeem de basis voor een zaaksysteem. Vertaald naar Alfresco is een zaak te zien als een map. Binnen zo’n map kunnen de bijbehorende documenten worden geplaatst. Zowel mappen als documenten kunnen door Alfresco modellering worden voorzien van de extra metadata die nodig is voor zaaktypen en documenttypen. Om de behandeling van een zaak te modelleren moet een map onderdeel kunnen worden van een workflow. Dat kan niet standaard in Alfresco. Dit artikel laat zien welke aanpassingen in Alfresco nodig zijn om deze functionaliteit toe te voegen.
Lees verder

Reageer

Data providers in PHPUnit

21 September 2012 10:11 Lennaert van der Linden Algemeen, PHP, Testen

Soms wil je met dezelfde test meerdere invoerwaarden nalopen, of wil je de invoerwaarde gescheiden houden zodat de unit test overzichtelijker is. Met behulp van data providers in PHPUnit is dit eenvoudig te realiseren. In dit artikel wordt een voorbeeld van een dergelijke test gegeven en hoe je deze compacter en beter te begrijpen kunt maken met een dataProvider.

Lees verder

Reageer

Middleman, de regelneef die alles doet

23 August 2012 0:00 Kevin Tuhumury Algemeen, Ruby

Elke ontwikkelaar zet weleens een simpele HTML pagina in elkaar. Of dit nou als reden heeft om een HTML prototype in elkaar te zetten of om een custom jQuery plugin in een minimale omgeving te testen, de situatie doet zich vaak genoeg voor. Rails staat tot beschikking van elke Rubyist, maar in een dergelijke omstandigheid is het een te zwaar en log framework. Sinatra is in zo’n geval een betere keus om eenvoudige websites zonder al te veel effort neer te zetten. Vaak is de eenvoud van Sinatra een graag geziene eigenschap, maar zijn de vele functionaliteiten uit frameworks zoals Rails een gemis. Middleman brengt beide werelden (en vele andere) samen in een klein pakket, zoals een behoorlijk tussenpersoon betaamt. Lees verder

Reageer

It’s a trap!

14 August 2012 13:31 Lennaert van der Linden Agile, Algemeen, Testen

Een paar maanden terug bezocht ik een Agile Holland meetup waar Jamie Dobson een hands-on sessie verzorgde genaamd The Butterfly Flaps Its Wings. Een erg leuke en interessante sessie waarvan ik mijn ervaringen wil delen.

Lees verder

Reageer

CSS3 functies voor een nog vloeiender gebruik van Responsive Web Design

5 August 2012 20:34 Kevin Tuhumury Algemeen, CSS3

Er zijn veel verborgen juwelen te vinden in de CSS3 specificatie, daarom hebben we in het artikel CSS3 units, nieuwe meeteenheden voor een Responsive Web Design het huidige aanbod aan CSS3 units bekeken. Gezien de lengte van het artikel was er geen ruimte om verder te duiken in functies als calc(), min() en max(). Al deze functies kunnen gebruikt worden om een property te voorzien van een waarde, net zoals de CSS units dat doen.

Door in dit artikel hierop een blik te werpen krijgen we een mooie aansluiting op het vorige artikel en een completer beeld van CSS3 units. Onze focus zal liggen op de calc() functie gezien de bruikbaarheid ervan de meeste invloed heeft op Responsive Web Design. Lees verder

Reageer

CSS3 units, nieuwe meeteenheden voor een Responsive Web Design

18 July 2012 17:30 Kevin Tuhumury Algemeen, CSS3, Sass

CoffeeScript en syntactische meta talen zijn inmiddels de revue gepasseerd op het Finalist weblog. In het artikel Syntactische meta talen maken front-end werk eenvoudiger is te lezen dat CSS een syntactisch helderder equivalent heeft, namelijk Sass. Sass zorgt o.a. voor minder typewerk en een overzichtelijk geheel voor de front-end ontwikkelaar. Dit maal keren we echter terug naar de basis, CSS. Om precies te zijn CSS3 en een aantal zeer interessante functionaliteiten die deze versie met zich meebrengt.
Lees verder

Eén reactie

Een kort verslag van Agile Coach Camp NL 2012

22 May 2012 11:11 Lennaert van der Linden Algemeen

In het weekend van 27 tot en met 29 april vond het Agile Coach Camp 2012 plaats in Nunspeet. Ik was een van de gelukkige aanwezigen en dit is mijn persoonlijke verslag. We begonnen op vrijdagavond met een maaltijd (ik was wat later binnen), een voorstelronde en een borrel. Aan het einde van de avond kende ik al wat mensen (velen kenden elkaar al van eerdere sessies) of wist ik al iets van ze.

De inhoudelijke sessies begonnen op de tweede dag. Bijzonder was dat er wel ruimtes en tijd beschikbaar waren gesteld, maar dat er nog helemaal geen programma was. Het programma werd ‘s-ochtends gevuld op basis van voorstellen van de deelnemers. Lees verder

Eén reactie

Syntactische meta talen maken front-end werk eenvoudiger

17 May 2012 13:00 Kevin Tuhumury Algemeen, CoffeeScript, Haml, HTML, Sass

Een aantal weken geleden nam ik de lezer van dit weblog mee in de wereld van CoffeeScript, een mooiere manier om JavaScript te schrijven. In het artikel stipte ik al aan dat naast JavaScript, ook HTML en CSS een syntactisch helderder equivalent hebben. Respectievelijk Haml (of Slim) en Sass (of Less) zijn de vereenvoudigde versies ervan. Beiden zorgen voor minder typewerk en voor een overzichtelijk geheel voor de front-end ontwikkelaar. Daar waar de ontwikkelaar bij CoffeeScript wellicht nog een wat hoge leercurve had, zal dit bij Haml en Sass nauwelijks het geval zijn.
Lees verder

2 reacties