ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΡ ΡΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π΅ΠΈΠ·ΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π² ΠΎΠ±ΡΠ°Π·ΠΈΡΠ΅ Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Docker. ΠΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° ΠΏΠΎΠΊΠ°Π·Π°, ΡΠ΅ Π² 4 ΠΎΡ 6 ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ ΡΠΊΠ°Π½ΠΈΡΠ°ΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΎΠ±ΡΠ°Π·ΠΈ Docker ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π° ΠΊΡΠΈΡΠΈΡΠ½ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π°ΡΠ°ΠΊΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π½Π° ΡΠ°ΠΌΠΈΡ ΡΠΊΠ΅Π½Π΅Ρ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΠΊΠΎΠ΄ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ»ΡΡΠ°ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Snyk) Ρ ΠΏΡΠ°Π²Π° Π½Π° root.
ΠΠ° Π°ΡΠ°ΠΊΠ°ΡΠ° Π½Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΠΈΠ½ΠΈΡΠΈΠΈΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ²ΠΎΡ Dockerfile ΠΈΠ»ΠΈ manifest.json, Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Π½ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ, ΠΈΠ»ΠΈ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈ Π²ΡΡΡΠ΅ Π² ΠΎΠ±ΡΠ°Π·Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Podfile ΠΈ gradlew. ΠΡΠΎΡΠΎΡΠΈΠΏΠΈ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠΈΡΠΈ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΈ
, ,
ΠΈ
. ΠΠ°ΠΉ-Π΄ΠΎΠ±ΡΠ°ΡΠ° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΏΠΎΠΊΠ°Π·Π° ΠΏΠ°ΠΊΠ΅ΡΡΡ , Π½Π°ΠΏΠΈΡΠ°Π½ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Ρ ΠΎΠ³Π»Π΅Π΄ Π½Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°. ΠΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π΅ Π±ΡΡ
Π° ΠΎΡΠΊΡΠΈΡΠΈ ΠΈ Π² ΠΏΠ°ΠΊΠ΅ΡΠ° . Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ ΠΈΠ·Π²ΠΎΠ΄, ΡΠ΅ ΡΠΊΠ΅Π½Π΅ΡΠΈΡΠ΅ Π½Π° Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π΄ΠΈ ΠΈΠ»ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ°ΠΌΠΎ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π·ΠΈ ΠΈ Π΄Π° ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π²Π° ΠΏΡΠΈ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ.
Π FOSSA, Snyk ΠΈ WhiteSource ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π±Π΅ΡΠ΅ ΡΠ²ΡΡΠ·Π°Π½Π° Ρ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠ½ΡΠ΅Π½ ΠΏΠ°ΠΊΠ΅ΡΠ΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΡΡΠ΅Π· ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ touch ΠΈ system Π² ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΠΈ .
Π Snyk ΠΈ WhiteSource Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π±ΡΡ Π° , Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° Dockerfile (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Snyk ΡΡΠ΅Π· Dockefile ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° /bin/ls, ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π° ΠΎΡ ΡΠΊΠ΅Π½Π΅ΡΠ°, Π° Π² WhiteSource ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠ΄ΡΡΠ°Π²Π΅Π½ ΠΊΠΎΠ΄ ΡΡΠ΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° βecho β;touch /tmp/hacked_whitesource_pip;=1.0ββ).
Π Anchore ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Docker-ΠΎΠ±ΡΠ°Π·ΠΈ. ΠΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΡΡΡΡΠΎΠ΅ΡΠ΅ Π² Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π² ΡΠ°ΠΉΠ»Π° manifest.json Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΎΡ Π²ΠΈΠ΄Π° βΒ»osΒ»: Β«$(touch hacked_anchore)Β»β, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄ΡΡΠ°Π²ΡΡ ΠΏΡΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° skopeo Π±Π΅Π· Π°Π΄Π΅ΠΊΠ²Π°ΡΠ½ΠΎ Π΅ΠΊΡΠ°Π½ΠΈΡΠ°Π½Π΅ (ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Ρ Π° ΡΠ΅ ΡΠ°ΠΌΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ Β«;&Β», Π½ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΡΠ° Β«$()Β» Π±Π΅ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π°).
Π‘ΡΡΠΈΡΡ Π°Π²ΡΠΎΡ ΠΈΠ·Π²ΡΡΡΠΈ ΠΏΡΠΎΡΡΠ²Π°Π½Π΅ Π½Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π½Π° ΠΎΡΠΊΡΠΈΡΠΈΠ΅ Π½Π° Π½Π΅ΠΈΠ·ΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΊΠ΅Π½Π΅ΡΠΈΡΠ΅ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π½Π° docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° Π»ΡΠΆΠ»ΠΈΠ²ΠΈ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ (, , ). ΠΠΎ-Π΄ΠΎΠ»Ρ ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΡΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° 73 ΠΎΠ±ΡΠ°Π·Π°, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΎΡΠ΅Π½ΠΊΠ° Π·Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠΈΠΏΠΈΡΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΎΠ±ΡΠ°Π·ΠΈΡΠ΅ (nginx, tomcat, haproxy, gunicorn, redis, ruby, node).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
