ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π΅ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠ΄ΠΈΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°, ΡΠ΅ 4 ΠΎΡ 6 ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ Docker ΡΠΊΠ΅Π½Π΅ΡΠΈ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠ΄ΡΡΠΆΠ°Ρ ΠΊΡΠΈΡΠΈΡΠ½ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ°Π²ΡΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎΡΠΎ Π°ΡΠ°ΠΊΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΌΠΈΡ ΡΠΊΠ΅Π½Π΅Ρ ΠΈ ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ ΠΊΠΎΠ΄ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, Π² Π½ΡΠΊΠΎΠΈ ΡΠ»ΡΡΠ°ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Snyk) Ρ root ΠΏΡΠ°Π²Π°.
ΠΠ° Π΄Π° Π°ΡΠ°ΠΊΡΠ²Π°, Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ½ΠΈΡΠΈΠΈΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ²ΠΎΡ Dockerfile ΠΈΠ»ΠΈ manifest.json, ΠΊΠΎΠΉΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ, ΠΈΠ»ΠΈ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈ Podfile ΠΈ gradlew ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠΊΡΠΏΠ»ΠΎΠ°ΡΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈ ΡΡΠΏΡ Π΄Π° ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΈ
WhiteSource, Π‘Π½ΠΈΠΊ,
ΠΊΡΡ
ΠΈΠ½Π° ΠΈ
ΠΠΎΡΠ²Π°. ΠΠ°ΠΊΠ΅ΡΡΡ ΠΏΠΎΠΊΠ°Π·Π° Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ°ΡΠ° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Clair, ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ Ρ ΠΎΠ³Π»Π΅Π΄ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°. Π ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΡΡΠΎ Π½Π΅ Π±ΡΡ
Π° ΡΡΡΠ°Π½ΠΎΠ²Π΅Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. ΠΡΠ΅Π±Π½Π°Π². Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈΡΠ΅ ΡΠΊΠ΅Π½Π΅ΡΠΈ Π½Π° Docker ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π΄ΠΈ ΠΈΠ»ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ°ΠΌΠΎ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ΅Ρ
Π½ΠΈΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π²Π° ΠΏΡΠΈ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΊΡΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ.
ΠΡΠ² FOSSA, Snyk ΠΈ WhiteSource ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π±Π΅ΡΠ΅ ΡΠ²ΡΡΠ·Π°Π½Π° Ρ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ½ΡΠ΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π²Π°ΡΠΈΡ ΠΊΠΎΠ΄, ΠΊΠ°ΡΠΎ ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΡΠ΅Π½Π·ΠΎΡΠ½ΠΈΡΠ΅ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π²ΡΠ² ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ gradlew ΠΈ ΠΠΎΠ΄ΡΠ°ΠΉΠ».
Snyk ΠΈ WhiteSource Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠΌΠ°Ρ
Π° Π½Π°ΠΌΠ΅ΡΠ΅Π½ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Dockerfile (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² Snyk, ΡΡΠ΅Π· Dockefile, Π±Π΅ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° /bin/ls, ΠΈΠ·Π²ΠΈΠΊΠ°Π½Π° ΠΎΡ ΡΠΊΠ΅Π½Π΅ΡΠ°, Π° Π² WhiteSurce Π±Π΅ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ΄ ΡΡΠ΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ° βΠ΅Ρ
ΠΎ ';Π΄ΠΎΠΊΠΎΡΠ½Π΅ΡΠ΅ /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