rezultatele testării instrumentelor pentru identificarea vulnerabilităților necorectate și depistarea problemelor de securitate în imaginile containerelor Docker izolate. Verificarea a arătat că în 4 din 6 scanere cunoscute de imagini Docker existau vulnerabilități critice, care permiteau atacarea directă a scannerului și executarea codului propriu în sistem, în unele cazuri (de exemplu, la utilizarea Snyk) cu drepturi de root.
Pentru atac, un atacator trebuie doar să inițieze verificarea Dockerfile-ului sau manifest.json-ului său, care include metadate concepute special, sau să plaseze în interiorul imaginii fișierele Podfile și gradlew. Prototipurile exploit-urilor pentru sisteme
, ,
și
. Pachetul , scris inițial cu o atenție specială asupra securității, a demonstrat cea mai bună securitate. Probleme nu au fost identificate în pachetul . În concluzie, s-a ajuns la concluzia că scanerele containerelor Docker ar trebui rulată în medii izolate sau utilizate doar pentru verificarea propriilor imagini, precum și să se manifeste prudență atunci când se conectează astfel de instrumente la sistemele de integrare continuă automatizată.
În FOSSA, Snyk și WhiteSource vulnerabilitatea a fost asociată cu apelul unui manager de pachete extern pentru determinarea dependențelor și a permis organizarea executării codului propriu prin specificarea comenzilor touch și system în fișierele și .
În Snyk și WhiteSource au fost de asemenea , cu organizarea execuției comenzilor sistemului la analiza Dockerfile-ului (de exemplu, în Snyk prin Dockerfile putea fi înlocuit utilitarul /bin/ls, apelat de scanner, iar în WhiteSource putea fi introdus cod prin argumente sub formă „echo ‘;touch /tmp/hacked_whitesource_pip;=1.0’”).
În Anchore vulnerabilitatea utilizarea utilitarului pentru lucrul cu imaginile docker. Exploatarea a constat în adăugarea în fișierul manifest.json a unor parametri de tipul ‘"os": "$(touch hacked_anchore)"‘, care sunt introduși la apelul skopeo fără o corespunzătoare escapare (au fost eliminate doar caracterele „;&”, dar construcția „$()” a fost permisă).
Același autor a desfășurat o cercetare asupra eficienței identificării vulnerabilităților necorectate de către scanerele de securitate ale containerelor docker și nivelul alarmelor false., , ). Aici sunt prezentate rezultatele testării a 73 de imagini, conținând vulnerabilități cunoscute, precum și o evaluare a eficienței identificării aplicațiilor standard în imagini (nginx, tomcat, haproxy, gunicorn, redis, ruby, node).
Sursa: opennet.ro
