ΠΠ±ΡΠ°Π²Π΅Π½ΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΠ΄ Π°Π»Π°ΡΠΊΠΈΡΠ΅ Π·Π° ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π°Ρ Π½Π΅Π·Π°ΠΊΡΠΏΠ΅Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΏΡΡΡΠΈ ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π°Ρ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π²ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Π½Π° Docker. Π Π΅Π²ΠΈΠ·ΠΈΡΠ°ΡΠ° ΠΏΠΎΠΊΠ°ΠΆΠ° Π΄Π΅ΠΊΠ° 4 ΠΎΠ΄ 6 ΠΏΠΎΠ·Π½Π°ΡΠΈ ΡΠΊΠ΅Π½Π΅ΡΠΈ Π·Π° ΡΠ»ΠΈΠΊΠΈ Π½Π° Docker ΡΠΎΠ΄ΡΠΆΠ΅Π»Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΈ ΠΏΡΠΎΠΏΡΡΡΠΈ ΡΡΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈΠ»Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΏΠ°Π΄Π½Π΅ ΡΠ°ΠΌΠΈΠΎΡ ΡΠΊΠ΅Π½Π΅Ρ ΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ ΠΊΠΎΠ΄ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ, Π²ΠΎ Π½Π΅ΠΊΠΎΠΈ ΡΠ»ΡΡΠ°ΠΈ (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Snyk) ΡΠΎ ΠΏΡΠ°Π²Π° Π½Π° root.
ΠΠ° Π΄Π° Π½Π°ΠΏΠ°Π΄Π½Π΅, Π½Π°ΠΏΠ°ΡΠ°ΡΠΎΡ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΡΡΠ΅Π±Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π½Π΅Π³ΠΎΠ²Π°ΡΠ° Dockerfile ΠΈΠ»ΠΈ manifest.json, ΠΊΠΎΡΠ° Π²ΠΊΠ»ΡΡΡΠ²Π° ΡΠΏΠ΅ΡΠΈΡΠ°Π»Π½ΠΎ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½ΠΈ ΠΌΠ΅ΡΠ°ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, ΠΈΠ»ΠΈ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈ Podfile ΠΈ gradlew Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π²ΠΎ ΡΠ»ΠΈΠΊΠ°ΡΠ°. ΠΡΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π³ΠΈ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈΡΠ΅ ΡΡΠΏΠ΅Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΈ
ΠΠ΅Π»ΠΈΠΎΡ ΠΈΠ·Π²ΠΎΡ, Π‘Π½Π°ΡΠΊ,
Π€ΠΎΡΠ° ΠΈ
Π‘ΠΈΠ΄ΡΠΎ. ΠΠ°ΠΊΠ΅ΡΠΎΡ ΠΏΠΎΠΊΠ°ΠΆΠ° Π½Π°ΡΠ΄ΠΎΠ±ΡΠ° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ ΠΡΡΡΡΠ°Π½ΠΈ, ΠΏΡΠ²ΠΈΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΡΠΎ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π½Π° ΡΠΌ. ΠΠΈΡΡ Π²ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΡ Π½Π΅ Π±Π΅Π° ΡΡΠ²ΡΠ΄Π΅Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. Π’ΡΠΈΠ²ΠΈ. ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, Π±Π΅ΡΠ΅ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π΄Π΅ΠΊΠ° ΡΠΊΠ΅Π½Π΅ΡΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Π½Π° Docker ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Π°Ρ Π²ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π΄ΠΈΠ½ΠΈ ΠΈΠ»ΠΈ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΡΠ°ΠΌΠΎ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΎΠΏΡΡΠ²Π΅Π½ΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΠΈ Π΄Π΅ΠΊΠ° ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π²Π° ΠΊΠΎΠ³Π° ΡΠ΅ ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°Π°Ρ ΡΠ°ΠΊΠ²ΠΈΡΠ΅ Π°Π»Π°ΡΠΊΠΈ ΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ½ΡΠΈΡΠ°Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ°.
ΠΠΎ FOSSA, Snyk ΠΈ WhiteSource, ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠ° Π±Π΅ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Π½Π° ΡΠΎ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ΅Π½ ΠΌΠ΅Π½Π°ΡΠ΅Ρ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π·Π° ΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ ΠΈ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ Π΄Π° Π³ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π²Π°ΡΠΈΠΎΡ ΠΊΠΎΠ΄ ΡΠΎ Π½Π°Π²Π΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ Π½Π° Π΄ΠΎΠΏΠΈΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌ Π²ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅. gradlew ΠΈ ΠΠΎΠ΄ΡΠΈΠ»Π΅.
Snyk ΠΈ WhiteSource Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠΌΠ°Π° ΠΏΡΠΎΠ½Π°ΡΠ΄Π΅Π½ΠΈ ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠΈ, ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° ΡΡΠ°ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΠΏΡΠΈ ΠΏΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Dockerfile (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎ Snyk, ΠΏΡΠ΅ΠΊΡ Dockfile, Π±Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈ Π°Π»Π°ΡΠΊΠ°ΡΠ° /bin/ls ΠΏΠΎΠ²ΠΈΠΊΠ°Π½Π° ΠΎΠ΄ ΡΠΊΠ΅Π½Π΅ΡΠΎΡ, Π° Π²ΠΎ WhiteSurce, Π±Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ΄ΠΎΡ ΠΏΡΠ΅ΠΊΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ Π²ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° βecho ';Π΄ΠΎΠΏΡΠ΅ΡΠ΅ /tmp/hacked_whitesource_pip;=1.0 β²β).
Π Π°Π½Π»ΠΈΠ²ΠΎΡΡ Π½Π° ΡΠΈΠ΄ΡΠΎ Π±Π΅ΡΠ΅ Π½Π°ΡΠ΅ΡΠ΅Π½ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ° Π°Π»Π°ΡΠΊΠ°ΡΠ° ΡΠΊΠΎΠΏΠ΅ΠΎ Π·Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΎ Π΄ΠΎΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠΈ. ΠΠΏΠ΅ΡΠ°ΡΠΈΡΠ°ΡΠ° ΡΠ΅ ΡΠ²Π΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΊΠ°ΠΊΠΎ β"os": "$(touch hacked_anchore)"" Π²ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° manifest.json, ΠΊΠΎΠΈ ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΡΠ²Π°Π°Ρ ΠΏΡΠΈ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅ skopeo Π±Π΅Π· ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΎ Π±Π΅Π³ΡΡΠ²ΠΎ (ΡΠ°ΠΌΠΎ Π·Π½Π°ΡΠΈΡΠ΅ ";&<>" Π±Π΅Π° ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈ, Π½ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠ°ΡΠ° β$( )β).
ΠΡΡΠΈΠΎΡ Π°Π²ΡΠΎΡ ΡΠΏΡΠΎΠ²Π΅Π΄Π΅ ΡΡΡΠ΄ΠΈΡΠ° Π·Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠ° Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°ΡΠ΅ Π½Π΅Π·Π°ΠΊΡΠΏΠ΅Π½ΠΈ ΠΏΡΠΎΠΏΡΡΡΠΈ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΈ ΡΠΊΠ΅Π½Π΅ΡΠΈ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Docker ΠΈ Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° Π»Π°ΠΆΠ½ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠ²ΠΈ (ΠΠ΅Π» 1, ΠΠ΅Π» 2, ΠΠ΅Π» 3). ΠΠΎΠ΄ΠΎΠ»Ρ ΡΠ΅ ΠΏΡΠΈΠΊΠ°ΠΆΠ°Π½ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΠ΄ ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° 73 ΡΠ»ΠΈΠΊΠΈ ΠΊΠΎΠΈ ΡΠΎΠ΄ΡΠΆΠ°Ρ ΠΏΠΎΠ·Π½Π°ΡΠΈ ΠΏΡΠΎΠΏΡΡΡΠΈ, Π° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ° ΠΎΡΠ΅Π½ΡΠ²Π°Π°Ρ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠ° Π½Π° ΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΡΡΡΡΠ²ΠΎΡΠΎ Π½Π° ΡΠΈΠΏΠΈΡΠ½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π²ΠΎ ΡΠ»ΠΈΠΊΠΈΡΠ΅ (nginx, tomcat, haproxy, gunicorn, redis, ruby, node).
ΠΠ·Π²ΠΎΡ: opennet.ru