Уязвимости Π² скСнСритС Π·Π° сигурност Π·Π° Docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈ изобраТСния

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ инструмСнти Π·Π° тСстванС Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° Π½Π΅ΠΏΠΎΠΏΡ€Π°Π²Π΅Π½ΠΈ уязвимости ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ със сигурността Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ изобраТСния Π½Π° 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).

Уязвимости Π² скСнСритС Π·Π° сигурност Π·Π° Docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈ изобраТСния

Уязвимости Π² скСнСритС Π·Π° сигурност Π·Π° Docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈ изобраТСния

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€