Många CMS plugins är att inaktivera TLS-certifikat validering… och det är mycket dåligt

0
113

Noll

decrypted-lock.png Dennis Nicolai Andersen, ZDNet [ytterligare redigeringar]

Ett absurt antal CMS-plugins och PHP-bibliotek är att inaktivera SSL/TLS-certifikat validering på syfte, och genom att göra så, de är att sätta miljontals internet användare med stor risk.

För att göra saken värre, många av dessa plugins och bibliotek som används för att upprätta anslutningar till betalning leverantör av servrar, anslutningar, genom vilken de senare överföra känsliga uppgifter eller hantera finansiella transaktioner.

Denna viktiga, men mindre kända säkerhetsproblem, upptäcktes och fördes till ZDNet uppmärksamhet genom att Scott Arciszewski, Chief Development Officer på Paragon Initiativ Företaget.

Frågan är bosatt i hur författarna av CMS plugins och PHP bibliotek konfigurerar sin kod, och särskilt några cURL alternativ.

cURL är ett kommandoradsverktyg som finns på alla webbhotell servrar, som används för att överföra data till och från externa servrar. cURL är allestädes närvarande i webbutveckling samhället, och många CMS plugins och PHP-bibliotek använder det för att ladda ned, skicka, och ladda upp data till externa servrar via server underliggande konsolen, i stället för att öppna själva webbläsaren sessioner för varje anslutning.

cURL stöder ett gäng protokoll, som öppnar anslutningar via HTTP, FTP, SMTP, POP3, LDAP, och mer.

Till exempel, när en WordPress plugin som hanterar finansiella transaktioner för att “Betalningen #46,” det använder cURL anslutningar i bakgrunden för att faktiskt ladda upp dina känsliga kreditkortsuppgifter till betalning leverantörens servrar. Detta sker vanligtvis via cURL anslutningar ställa upp via HTTPS, som cURL också hanterar SSL/TLS-certifikat validering ett viktigt steg i att se till att du talar till en legitim HTTPS-server.

Men Arciszewski har nyligen upptäckt att utvecklare av många CMS plugins och PHP-bibliotek är handikappande cURL säkerhetsfunktioner för när cURL används för att hämta eller skicka data via HTTPS-anslutningar, som de ovan.

Detta är ett enormt problem, speciellt för de fall där cURL används för att hantera finansiella transaktioner och känsliga uppgifter.

Med dessa anslutningar förhandlas fram via försvagad HTTPS-anslutningar är en katastrof som väntar på att hända, eftersom det kan göra det möjligt för angripare att enkelt trick webbplatser till att hämta eller skicka legitima uppgifter till skadliga servrar. Eftersom de två funktionerna är avstängda, ursprung webbplats som inte utlöser några varningar för att antingen användare eller webbplatsernas ägare.

De flesta devs är handikappande två viktiga cURL säkerhetsinställningar

Enligt Arciszewski, detta händer på grund av två cURL inställningar som utvecklare av CMS plugins och PHP bibliotek inaktivera på syftet.

Den första är “CURLOPT_SSL_VERIFYHOST”, som många plugins och bibliotek satt till “false” i stället för “sant”.

Vad den här inställningen innebär att cURL kommer inte att kontrollera värden URL-adress som det är anslutning för att ladda ner eller ladda upp data. Så länge servern har ett giltigt intyg, undertecknat av någon slumpmässig certifikatutfärdare, till exempel Låt oss Kryptera eller Comodo, serverns URL-adressen kan vara legitimate-site.com eller malicious-site.com och den webbplats från vilken cURL begäran härstammar inte bryr sig.

Den andra cURL inställning som många utvecklare är handikappande är “CURLOPT_SSL_VERIFYPEER”, som många devs är inställningen till “0” i stället för den mer säker “2” – värde.

Denna inställning innebär att webbplatser kommer att acceptera anslutningar till någon random HTTPS-server, även till dem som använder självsignerade certifikat.

“Detta utsätter dig för mycket triviala man-in-the-middle-attacker,” Arciszewski sade i en rapport som publicerades förra veckan.

Detta är ingen liten fråga som kan ignoreras. Problemet är mycket utbredd i PHP gemenskapen, särskilt.

En hastig GitHub sök för första och andra inställningar avslöjar hundratals av tusentals projekt där utvecklare är handikappande cURL intyg validering, inklusive i hundratals WordPress plugins.

En enkel korrigeringsfil är nu tillgänglig

Men Arciszewski är inte din typiska säkerhet expert som bara pekar ut frågor till fearmonger hans väg in i ett rykte. Han erbjuder också en enkel lösning.

Som Arciszewski har påpekat i en rapport nyligen, och som PHP samhället har bekräftats i Reddit diskussioner här veckan, den främsta anledningen till varför så många projekt är att inaktivera dessa två cURL funktioner beror på att när de är aktiverade de tenderar att generera skrämmande säkerhet-relaterade fel på kunders servrar. För att undvika alarmerande sina kunder, de flesta utvecklare väljer att vända dessa två funktioner, medan omedvetet veta vad de egentligen gör.

Orsaken till dessa fel, som Arciszewski förklarar, är att krypa behov att kontrollera certifikat remote HTTPS-servrar mot en lista av kända och giltigt SSL/TLS-certifikat.

Denna lista över giltiga Certifikat Myndigheter –organisationer tillstånd att utfärda SSL/TLS-certifikat– finns tillgängligt för nedladdning på många ställen.

Tyvärr, vissa webbhotell inte lagra denna lista på alla, medan många förvara den på annan server platser, vilket gör det omöjligt att konfigurera cURL inställningar för CMS plugins och PHP-bibliotek i en universell sätt som fungerar sömlöst på alla servrar.

För att åtgärda detta problem Arciszewski har skapat en egen PHP-bibliotek som heter Säkerhet som kommer att ladda ner denna fil (cacert.pem) från cURL hemsida med jämna mellanrum och värd det lokalt, se hemsidor alltid har en uppdaterad lista över giltiga Certifikat.

CMS plugin, och PHP-bibliotek ägare kan ta med detta bibliotek i sina projekt och sedan aktivera de två cURL inställningar i sina projekt utan att behöva oroa dig för att utlösa skrämma säkerhet varningar efteråt.

Visst, en osäker miljö inne i ett bibliotek i en annan, bibliotek kan låta som en obetydlig roll, men när det osäkra inställningen används i hundratals av tusentals projekt, som är en obetydlig fråga blir en internet-hela problemet och åtgärda det kan kräva något så enkelt som att släppa bättre verktyg.

Arciszewski och hans företag, Paragonie, har varit kända för att släppa dessa “bättre verktyg” under de senaste åren, alla med öppen källkod och finns tillgängliga på bolagets GitHub-konto.

RELATERADE TÄCKNING:

Cirka 62% av alla Internet-webbplatser kommer att köra en PHP-version som inte stöds i 10 veckorGoogle lanserar reCAPTCHA v3 som upptäcker trafik utan interaktion med användarenIETF godkänner nya internet-standarder för att säkra authentication tokensTolv skadliga Python bibliotek som hittas och tas bort från PyPIApple värd 2.000 gratis kodning lektioner på Europeiska butiker CNETVarför Kotlin exploderar i popularitet bland unga utvecklare TechRepublicwebbhotell ta tre dagar, i genomsnitt, för att svara på missbruk rapporterEfter två decennier av PHP, platser fortfarande exponera känslig information via debug-lägeMajoritet av länets val webbplatser i 20 viktiga stater som använder non-.gov domäner

Relaterade Ämnen:

Öppen Källkod

Säkerhet-TV

Hantering Av Data

CXO

Datacenter

0