Π₯Π΅Ρ Π₯Π°Π±Ρ!
Π£ ΡΠ°Π²ΡΠ΅ΠΌΠ΅Π½ΠΎΡ ΡΡΠ²Π°ΡΠ½ΠΎΡΡΠΈ, Π·Π±ΠΎΠ³ ΡΠ²Π΅ Π²Π΅ΡΠ΅ ΡΠ»ΠΎΠ³Π΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡΠ΅ Ρ ΡΠ°Π·Π²ΠΎΡΠ½ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΠΈΠΌΠ°, ΠΏΠΈΡΠ°ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅ΡΠΈΠ²Π°ΡΠ° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠΈΡΠΈΡ ΡΠ°Π·Π° ΠΈ Π΅Π½ΡΠΈΡΠ΅ΡΠ° ΠΏΠΎΠ²Π΅Π·Π°Π½ΠΈΡ ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠΌΠ° Π½ΠΈΡΠ΅ Π½Π°ΡΠΌΠ°ΡΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΠ΅. Π‘ΠΏΡΠΎΠ²ΠΎΡΠ΅ΡΠ΅ ΡΡΡΠ½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠ° ΠΎΠ΄ΡΠ·ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π°, ΡΠ°ΠΊΠΎ Π΄Π° Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄ΠΎΠ±ΡΠΎ ΠΏΡΠ΅Π΄ΡΠ·Π΅ΡΠΈ Π±Π°ΡΠ΅ΠΌ ΠΏΠΎΡΠ΅ΡΠ½Π΅ ΠΊΠΎΡΠ°ΠΊΠ΅ ΠΊΠ° Π°ΡΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΠΈ ΠΎΠ²ΠΎΠ³ ΠΏΡΠΎΡΠ΅ΡΠ°.
Π£ ΠΎΠ²ΠΎΠΌ ΡΠ»Π°Π½ΠΊΡ ΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΠΈ Π³ΠΎΡΠΎΠ²Π΅ ΡΠΊΡΠΈΠΏΡΠ΅ Π·Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΠΎΡΠΊΠ΅Ρ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΈΡ
ΡΡΠ»ΡΠΆΠ½ΠΈΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΈ ΡΠΏΡΡΡΡΠ²Π° ΠΎ ΡΠΎΠΌΠ΅ ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΠΌΠ°Π»ΠΈ Π΄Π΅ΠΌΠΎ ΡΡΠ°Π½Π΄ Π·Π° ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ ΠΎΠ²ΠΎΠ³ ΠΏΡΠΎΡΠ΅ΡΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈΡΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»Π΅ Π·Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ°ΡΠ΅ ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΡΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ΅Ρ ΡΠ΅ΡΡΠΈΡΠ°ΡΠ° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡΠΈ ΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅ ΡΠ»ΠΈΠΊΠ° ΠΈ ΡΠΏΡΡΡΡΠ°Π²Π°. ΠΠ°ΡΠ½ΠΎ ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΡΠ°Π·Π²ΠΎΡΠ° ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡΠ° Π·Π° ΡΠ²Π°ΠΊΠΎΠ³Π°, ΠΏΠ° ΡΡ Ρ Π½Π°ΡΡΠ°Π²ΠΊΡ Π΄Π°ΡΠΈ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΌΠΎΠ³ΡΡΠΈΡ
ΠΎΠΏΡΠΈΡΠ°.
Π£ΡΠ»ΡΠΆΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π·Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½Ρ ΠΏΡΠΎΠ²Π΅ΡΡ
ΠΠΎΡΡΠΎΡΠΈ Π²Π΅Π»ΠΈΠΊΠΈ Π±ΡΠΎΡ ΡΠ°Π·Π»ΠΈΡΠΈΡΠΈΡ
ΠΏΠΎΠΌΠΎΡΠ½ΠΈΡ
Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° ΠΈ ΡΠΊΡΠΈΠΏΡΠΈ ΠΊΠΎΡΠ΅ Π²ΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠΈΡΠΈΠΌ Π°ΡΠΏΠ΅ΠΊΡΠΈΠΌΠ° ΠΠΎΡΠΊΠ΅Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅. ΠΠ΅ΠΊΠΈ ΠΎΠ΄ ΡΠΈΡ
ΡΡ Π²Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈ Ρ ΠΏΡΠ΅ΡΡ
ΠΎΠ΄Π½ΠΎΠΌ ΡΠ»Π°Π½ΠΊΡ (
Π₯Π°Π΄ΠΎΠ»ΠΈΠ½Ρ
ΠΡΠΈΠ»ΠΈΡΠ½ΠΎ ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π°Π½ ΡΡΠ»ΡΠΆΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌ Π·Π° ΠΊΠΎΠ½Π·ΠΎΠ»Ρ ΠΊΠΎΡΠΈ ΠΏΠΎΠΌΠ°ΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅Π½ΠΈ ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡ ΠΈ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ ΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠ° (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ ΡΠ°ΠΌΠΎ Π΄ΠΎΠ·Π²ΠΎΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΠ°ΡΠ° ΡΠ»ΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ ΡΡΠ΄ΠΎ).
ΠΠΎΡΠΊΠ»Π΅
Π£ΡΠ»ΡΠΆΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌ Π·Π° ΠΊΠΎΠ½Π·ΠΎΠ»Ρ ΠΊΠΎΡΠΈ ΡΠ°Π΄ΠΈ Π½Π° ΡΠ»ΠΈΡΠΈ (ΠΈΠ»ΠΈ Π½Π° ΡΠ°ΡΡΠ²Π°Π½ΠΎΡ Π°ΡΡ
ΠΈΠ²ΠΈ ΡΠ»ΠΈΠΊΠ°) ΠΊΠΎΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ°Π²Π° ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡ ΠΈ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ ΠΎΠ΄ΡΠ΅ΡΠ΅Π½Π΅ ΡΠ»ΠΈΠΊΠ΅ ΠΊΠ°ΠΎ ΡΠ°ΠΊΠ²Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΡΡΠΈ ΡΠ΅Π½Π΅ ΡΠ»ΠΎΡΠ΅Π²Π΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ β ΠΊΠΎΡΠΈ ΡΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ ΠΊΡΠ΅ΠΈΡΠ°Π½ΠΈ, ΠΊΠΎΡΠ° ΡΠΏΡΡΡΡΠ²Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅, ΠΊΠΎΡΠΈ Π²ΠΎΠ»ΡΠΌΠ΅Π½ΠΈ ΡΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΡ , ΠΏΡΠΈΡΡΡΡΠ²ΠΎ ΠΏΡΠ°Π·Π½Π΅ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ΅ ΠΈΡΠ΄. Π΅. ΠΠΎΠΊ Π±ΡΠΎΡ ΠΏΡΠΎΠ²Π΅ΡΠ° Π½ΠΈΡΠ΅ Π²Π΅Π»ΠΈΠΊΠΈ ΠΈ Π·Π°ΡΠ½ΠΈΠ²Π° ΡΠ΅ Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΡΠΎΠΏΡΡΠ²Π΅Π½ΠΈΡ
ΠΏΡΠΎΠ²Π΅ΡΠ° ΠΈ ΠΏΡΠ΅ΠΏΠΎΡΡΠΊΠ°
Π’ΡΠΈΠ²ΠΈ
ΠΠ²Π°Ρ ΡΡΠ»ΡΠΆΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌ ΠΈΠΌΠ° Π·Π° ΡΠΈΡ Π΄Π° ΠΏΡΠΎΠ½Π°ΡΠ΅ Π΄Π²Π΅ Π²ΡΡΡΠ΅ ΡΠ°ΡΠΈΠ²ΠΎΡΡΠΈ - ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠ° ΠΈΠ·Π³ΡΠ°Π΄ΡΠΎΠΌ ΠΠ‘ (ΠΏΠΎΠ΄ΡΠΆΠ°Π½ΠΈ ΠΎΠ΄ ΠΠ»ΠΏΠΈΠ½Π΅, Π Π΅Π΄Π₯Π°Ρ (ΠΠ), Π¦Π΅Π½ΡΠΠ‘, ΠΠ΅Π±ΠΈΠ°Π½ ΠΠΠ£, Π£Π±ΡΠ½ΡΡ) ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠ° Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈΠΌΠ° (ΠΠ΅ΠΌΡΠΈΠ»Π΅.Π»ΠΎΡΠΊ, ΠΠΈΠΏΡΠΈΠ»Π΅.Π»ΠΎΡΠΊ, ΡΠΎΠΌΠΏΠΎΡΠ΅Ρ.Π»ΠΎΡΠΊ, ΠΏΠ°ΡΠΊΠ°Π³Π΅ -Π»ΠΎΡΠΊ.ΡΡΠΎΠ½ , ΠΈΠ°ΡΠ½.Π»ΠΎΡΠΊ, ΡΠ°ΡΠ³ΠΎ.Π»ΠΎΡΠΊ). Π’ΡΠΈΠ²ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΊΠ΅Π½ΠΈΡΠ° ΠΈ ΡΠ»ΠΈΠΊΡ Ρ ΡΠΏΡΠ΅ΠΌΠΈΡΡΡ ΠΈ Π»ΠΎΠΊΠ°Π»Π½Ρ ΡΠ»ΠΈΠΊΡ, Π° ΡΠ°ΠΊΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΊΠ΅Π½ΠΈΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Ρ ΠΏΡΠ΅Π½Π΅ΡΠ΅ .ΡΠ°Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ ΡΠ° ΠΠΎΡΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠΎΠΌ.
ΠΠΏΡΠΈΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ ΠΊΠΎΠΌΡΠ½Π°Π»Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°
ΠΠ° Π±ΠΈΡ ΠΈΡΠΏΡΠΎΠ±Π°ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅ Ρ ΠΈΠ·ΠΎΠ»ΠΎΠ²Π°Π½ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅ΡΡ, Π΄Π°ΡΡ ΡΠΏΡΡΡΡΠ²Π° Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΡΠ²ΠΈΡ ΡΡΠ»ΡΠΆΠ½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Ρ Π΄ΠΎΠ½Π΅ΠΊΠ»Π΅ ΠΏΠΎΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²ΡΠ΅Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡ.
ΠΠ»Π°Π²Π½Π° ΠΈΠ΄Π΅ΡΠ° ΡΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ ΠΊΠ°ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ Π°ΡΡΠΎΠΌΠ°ΡΡΠΊΡ ΠΏΡΠΎΠ²Π΅ΡΡ ΡΠ°Π΄ΡΠΆΠ°ΡΠ° Π·Π° ΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅Ρ ΠΈ ΠΠΎΡΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠ΅ ΠΊΠΎΡΠ΅ ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°ΡΡ ΡΠΎΠΊΠΎΠΌ ΡΠ°Π·Π²ΠΎΡΠ°.
Π‘Π°ΠΌΠ° Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠ΅ ΡΠ°ΡΡΠΎΡΠΈ ΠΎΠ΄ ΡΠ»Π΅Π΄Π΅ΡΠΈΡ ΠΊΠΎΡΠ°ΠΊΠ°:
- ΠΡΠΎΠ²Π΅ΡΠ° ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΠΈ ΠΈ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡΠΈ ΡΠΏΡΡΡΡΠ°Π²Π° Π·Π° ΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅ ΠΏΠΎΠΌΠΎΡΡ ΡΡΠ»ΡΠΆΠ½ΠΎΠ³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π·Π° Π»ΠΈΠ½ΡΠ΅Ρ Π₯Π°Π΄ΠΎΠ»ΠΈΠ½Ρ
- ΠΡΠΎΠ²Π΅ΡΠ° ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΠΈ ΠΈ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ½Π°ΡΠ½ΠΈΡ ΠΈ ΡΡΠ΅Π΄ΡΠΈΡ ΡΠ»ΠΈΠΊΠ° - ΡΡΠ»ΡΠΆΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌ ΠΠΎΡΠΊΠ»Π΅
- ΠΡΠΎΠ²Π΅ΡΠ° ΠΎΠΏΡΡΠ΅ ΠΏΠΎΠ·Π½Π°ΡΠΈΡ ΡΠ°ΡΠΈΠ²ΠΎΡΡΠΈ (Π¦ΠΠ) Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡ ΡΠ»ΠΈΡΠΈ ΠΈ Π±ΡΠΎΡ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ - ΠΏΠΎΠΌΠΎΡΡ ΡΡΠ»ΡΠΆΠ½ΠΎΠ³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π’ΡΠΈΠ²ΠΈ
ΠΠ°ΡΠ½ΠΈΡΠ΅ Ρ ΡΠ»Π°Π½ΠΊΡ Π΄Π°ΡΡ ΡΡΠΈ ΠΎΠΏΡΠΈΡΠ΅ Π·Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΠΎΠ²ΠΈΡ
ΠΊΠΎΡΠ°ΠΊΠ°:
ΠΡΠ²ΠΈ ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ΠΌ Π¦Π/Π¦Π ΡΠ΅Π²ΠΎΠ²ΠΎΠ΄Π° Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΠΈΡΠΠ°Π±-Π° (ΡΠ° ΠΎΠΏΠΈΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΠ° ΠΏΠΎΠ΄ΠΈΠ·Π°ΡΠ° ΡΠ΅ΡΡ ΠΈΠ½ΡΡΠ°Π½ΡΠ΅).
ΠΡΡΠ³ΠΈ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ ΡΡ
Π΅Π»Π» ΡΠΊΡΠΈΠΏΡΠ΅.
Π’ΡΠ΅ΡΠΈ ΡΠ΅ ΡΡΠ²Π°ΡΠ°ΡΠ΅ ΠΠΎΡΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠ΅ Π·Π° ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠ΅ ΠΠΎΡΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠ°.
ΠΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ΄Π°Π±ΡΠ°ΡΠΈ ΠΎΠΏΡΠΈΡΡ ΠΊΠΎΡΠ° Π²Π°ΠΌ Π½Π°ΡΠ²ΠΈΡΠ΅ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ°, ΠΏΡΠ΅Π½Π΅ΡΠΈ ΡΠ΅ Π½Π° ΡΠ²ΠΎΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄ΠΈΡΠΈ ΡΠ΅ ΡΠ²ΠΎΡΠΈΠΌ ΠΏΠΎΡΡΠ΅Π±Π°ΠΌΠ°.
Π‘Π²Π΅ ΠΏΠΎΡΡΠ΅Π±Π½Π΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ ΠΈ Π΄ΠΎΠ΄Π°ΡΠ½Π° ΡΠΏΡΡΡΡΠ²Π° ΡΠ΅ ΡΠ°ΠΊΠΎΡΠ΅ Π½Π°Π»Π°Π·Π΅ Ρ ΡΠΏΡΠ΅ΠΌΠΈΡΡΡ:
ΠΠΈΡΠΠ°Π± Π¦Π/Π¦Π ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ°
Π£ ΠΏΡΠ²ΠΎΡ ΠΎΠΏΡΠΈΡΠΈ ΡΠ΅ΠΌΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π°ΡΠΈ ΠΊΠ°ΠΊΠΎ ΡΠ΅ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½Π΅ ΠΏΡΠΎΠ²Π΅ΡΠ΅ ΠΌΠΎΠ³Ρ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°ΡΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠΈ ΠΠΈΡΠΠ°Π± ΡΠΈΡΡΠ΅ΠΌ ΡΠΈΠ·Π½ΠΈΡΠ΅ ΠΊΠ°ΠΎ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΠ²Π΄Π΅ ΡΠ΅ΠΌΠΎ ΠΏΡΠΎΡΠΈ ΠΊΡΠΎΠ· ΠΊΠΎΡΠ°ΠΊΠ΅ ΠΈ Π²ΠΈΠ΄Π΅ΡΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΏΠΎΠ΄Π΅ΡΠΈΠΌΠΎ ΡΠ΅ΡΡΠ½ΠΎ ΠΎΠΊΡΡΠΆΠ΅ΡΠ΅ ΡΠ° ΠΠΈΡΠΠ°Π±-ΠΎΠΌ ΠΎΠ΄ Π½ΡΠ»Π΅, ΠΊΡΠ΅ΠΈΡΠ°ΠΌΠΎ ΠΏΡΠΎΡΠ΅Ρ ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠ° ΠΈ ΠΏΠΎΠΊΡΠ΅Π½Π΅ΠΌΠΎ ΡΡΠ»ΡΠΆΠ½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ Π·Π° ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ ΡΠ΅ΡΡΠ½ΠΎΠ³ ΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅-Π° ΠΈ Π½Π°ΡΡΠΌΠΈΡΠ½Π΅ ΡΠ»ΠΈΠΊΠ΅ - ΠΡΠΈΡΠ΅Π‘Ρ ΠΎΠΏ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΡ.
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΠΠΈΡΠΠ°Π±-Π°
1. ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΡΠ΅ ΠΠΎΡΠΊΠ΅Ρ:
sudo apt-get update && sudo apt-get install docker.io
2. ΠΠΎΠ΄Π°ΡΡΠ΅ ΡΡΠ΅Π½ΡΡΠ½ΠΎΠ³ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠ° Ρ Π΄ΠΎΡΠΊΠ΅Ρ Π³ΡΡΠΏΡ ΡΠ°ΠΊΠΎ Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π΄ΠΈΡΠ΅ ΡΠ° Π΄ΠΎΡΠΊΠ΅Ρ-ΠΎΠΌ Π±Π΅Π· ΡΠΏΠΎΡΡΠ΅Π±Π΅ ΡΡΠ΄ΠΎ:
sudo addgroup <username> docker
3. ΠΡΠΎΠ½Π°ΡΠΈΡΠ΅ ΡΠ²ΠΎΡΡ ΠΠ Π°Π΄ΡΠ΅ΡΡ:
ip addr
4. ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΡΠ΅ ΠΈ ΠΏΠΎΠΊΡΠ΅Π½ΠΈΡΠ΅ ΠΠΈΡΠΠ°Π± Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΡ, Π·Π°ΠΌΠ΅ΡΡΡΡΡΠΈ ΠΠ Π°Π΄ΡΠ΅ΡΡ Ρ ΠΈΠΌΠ΅Π½Ρ Ρ ΠΎΡΡΠ° ΡΠ²ΠΎΡΠΎΠΌ:
docker run --detach
--hostname 192.168.1.112
--publish 443:443 --publish 80:80
--name gitlab
--restart always
--volume /srv/gitlab/config:/etc/gitlab
--volume /srv/gitlab/logs:/var/log/gitlab
--volume /srv/gitlab/data:/var/opt/gitlab
gitlab/gitlab-ce:latest
Π§Π΅ΠΊΠ°ΠΌΠΎ Π΄Π° ΠΠΈΡΠΠ°Π± Π·Π°Π²ΡΡΠΈ ΡΠ²Π΅ Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π½Π΅ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΎΠ½Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ (ΠΏΡΠΎΡΠ΅Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ°ΡΠΈΡΠΈ ΠΊΡΠΎΠ· ΠΈΠ·Π»Π°Π· Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ Π΅Π²ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅: Π΄ΠΎΡΠΊΠ΅Ρ Π»ΠΎΠ³Ρ -Ρ Π³ΠΈΡΠ»Π°Π±).
5. ΠΡΠ²ΠΎΡΠΈΡΠ΅ ΡΠ²ΠΎΡ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΠ Ρ ΠΏΡΠ΅ΡΡΠ°ΠΆΠΈΠ²Π°ΡΡ ΠΈ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠΎΡΠ° Π½ΡΠ΄ΠΈ ΠΏΡΠΎΠΌΡΠ΅Π½Ρ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ΅ Π·Π° ΡΠΎΠΎΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠ°:
ΠΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π½ΠΎΠ²Ρ Π»ΠΎΠ·ΠΈΠ½ΠΊΡ ΠΈ ΠΈΠ΄ΠΈΡΠ΅ Π½Π° ΠΠΈΡΠΠ°Π±.
6. ΠΡΠ΅ΠΈΡΠ°ΡΡΠ΅ Π½ΠΎΠ²ΠΈ ΠΏΡΠΎΡΠ΅ΠΊΠ°Ρ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΡΠ΄-ΡΠ΅ΡΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΡΠ°Π»ΠΈΠ·ΡΡΡΠ΅ Π³Π° ΡΠ° ΠΏΠΎΡΠ΅ΡΠ½ΠΎΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΎΠΌ Π ΠΠΠΠΠ.ΠΌΠ΄:
7. Π‘Π°Π΄Π° ΠΌΠΎΡΠ°ΠΌΠΎ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠΎ ΠΠΈΡΠΠ°Π± Π ΡΠ½Π½Π΅Ρ: Π°Π³Π΅Π½Ρ ΠΊΠΎΡΠΈ ΡΠ΅ Π½Π° Π·Π°Ρ
ΡΠ΅Π² ΠΏΠΎΠΊΡΠ΅Π½ΡΡΠΈ ΡΠ²Π΅ ΠΏΠΎΡΡΠ΅Π±Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ΅.
ΠΡΠ΅ΡΠ·ΠΌΠΈΡΠ΅ Π½Π°ΡΠ½ΠΎΠ²ΠΈΡΡ Π²Π΅ΡΠ·ΠΈΡΡ (Ρ ΠΎΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°ΡΡ, ΠΏΠΎΠ΄ ΠΠΈΠ½ΡΠΊΠΎΠΌ 64-Π±ΠΈΡ):
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
8. Π£ΡΠΈΠ½ΠΈΡΠ΅ Π³Π° ΠΈΠ·Π²ΡΡΠ½ΠΈΠΌ:
sudo chmod +x /usr/local/bin/gitlab-runner
9. ΠΠΎΠ΄Π°ΡΡΠ΅ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠ° ΠΠ‘-Π° Π·Π° Π ΡΠ½Π½Π΅Ρ ΠΈ ΠΏΠΎΠΊΡΠ΅Π½ΠΈΡΠ΅ ΡΡΠ»ΡΠ³Ρ:
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
Π’ΡΠ΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΎΡΠΏΡΠΈΠ»ΠΈΠΊΠ΅ ΠΎΠ²Π°ΠΊΠΎ:
local@osboxes:~$ sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
Runtime platform arch=amd64 os=linux pid=8438 revision=0e5417a3 version=12.0.1
local@osboxes:~$ sudo gitlab-runner start
Runtime platform arch=amd64 os=linux pid=8518 revision=0e5417a3 version=12.0.1
10. Π‘Π°Π΄Π° ΡΠ΅Π³ΠΈΡΡΡΡΡΠ΅ΠΌΠΎ Π ΡΠ½Π½Π΅Ρ ΡΠ°ΠΊΠΎ Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΠΌΡΠ½ΠΈΡΠΈΡΠ° ΡΠ° Π½Π°ΡΠΎΠΌ ΠΠΈΡΠΠ°Π± ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠΌ.
ΠΠ° Π±ΠΈΡΡΠ΅ ΡΠΎ ΡΡΠ°Π΄ΠΈΠ»ΠΈ, ΠΎΡΠ²ΠΎΡΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π‘Π΅ΡΡΠΈΠ½Π³Ρ-Π¦Π/Π¦Π (Ρ
ΡΡΠΏ://ΠΠ£Π _ ΠΠ_ΠΠΠΠ ΠΠ‘Π‘/ΡΠΎΠΎΡ/ΡΠΈΡΠ΄-ΡΠ΅ΡΡ/-/ΡΠ΅ΡΡΠΈΠ½Π³Ρ/ΡΠΈ_ΡΠ΄) ΠΈ Π½Π° ΠΊΠ°ΡΡΠΈΡΠΈ Π ΡΠ½Π½Π΅ΡΡ ΠΏΡΠΎΠ½Π°ΡΠΈΡΠ΅ Π£Π Π ΠΈ ΡΠΎΠΊΠ΅Π½ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡΡ:
11. Π Π΅Π³ΠΈΡΡΡΡΡΡΠ΅ ΡΡΠΊΠ°ΡΠ° Π·Π°ΠΌΠ΅Π½ΠΎΠΌ Π£Π Π-Π° ΠΈ ΡΠΎΠΊΠ΅Π½Π° Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡΡ:
sudo gitlab-runner register
--non-interactive
--url "http://<URL>/"
--registration-token "<Registration Token>"
--executor "docker"
--docker-privileged
--docker-image alpine:latest
--description "docker-runner"
--tag-list "docker,privileged"
--run-untagged="true"
--locked="false"
--access-level="not_protected"
ΠΠ°ΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ, Π΄ΠΎΠ±ΠΈΡΠ°ΠΌΠΎ Π³ΠΎΡΠΎΠ² ΡΠ°Π΄Π½ΠΈ ΠΠΈΡΠΠ°Π±, Ρ ΠΊΠΎΡΠΈ ΡΡΠ΅Π±Π° Π΄Π° Π΄ΠΎΠ΄Π°ΠΌΠΎ ΡΠΏΡΡΡΡΠ²Π° Π·Π° ΠΏΠΎΠΊΡΠ΅ΡΠ°ΡΠ΅ Π½Π°ΡΠΈΡ ΡΡΠ»ΡΠΆΠ½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°. Π£ ΠΎΠ²ΠΎΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡΠΈ, Π½Π΅ΠΌΠ°ΠΌΠΎ ΠΊΠΎΡΠ°ΠΊΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡΠ΅, Π°Π»ΠΈ Ρ ΡΡΠ²Π°ΡΠ½ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅ΡΡ ΠΎΠ½ΠΈ ΡΠ΅ ΠΏΡΠ΅ΡΡ ΠΎΠ΄ΠΈΡΠΈ ΠΊΠΎΡΠ°ΡΠΈΠΌΠ° ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠ° ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠΈ ΡΠ»ΠΈΠΊΠ΅ ΠΈ ΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅ Π·Π° Π°Π½Π°Π»ΠΈΠ·Ρ.
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ ΡΠ΅Π²ΠΎΠ²ΠΎΠ΄Π°
1. ΠΠΎΠ΄Π°ΡΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ Ρ ΡΠΏΡΠ΅ΠΌΠΈΡΡΠ΅ ΠΌΠΈΠ΄ΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅.Π΄Ρ (ΠΎΠ²ΠΎ ΡΠ΅ ΡΠ΅ΡΡ ΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅ ΠΊΠΎΡΠΈ ΡΠ΅ΠΌΠΎ ΡΠ΅ΡΡΠΈΡΠ°ΡΠΈ) ΠΈ ΠΠΈΡΠΠ°Π± Π¦Π/Π¦Π ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½ΠΈ ΡΠ°ΡΠ» ΠΏΡΠΎΡΠ΅ΡΠ° .Π³ΠΈΡΠ»Π°Π±-ΡΠΈΡΠ΄.ΠΈΠΌΠ», ΠΊΠΎΡΠΈ Π½Π°Π²ΠΎΠ΄ΠΈ ΡΠΏΡΡΡΡΠ²Π° Π·Π° ΡΠΊΠ΅Π½Π΅ΡΠ΅ (ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ ΠΏΠ°ΠΆΡΡ Π½Π° ΡΠ°ΡΠΊΡ Ρ Π½Π°Π·ΠΈΠ²Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅).
ΠΠΠΠ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠ°Π΄ΡΠΆΠΈ ΡΠΏΡΡΡΡΠ²Π° Π·Π° ΠΏΠΎΠΊΡΠ΅ΡΠ°ΡΠ΅ ΡΡΠΈ ΡΡΠ»ΡΠΆΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° (Π₯Π°Π΄ΠΎΠ»ΠΈΠ½Ρ, ΠΠΎΡΠΊΠ»Π΅ ΠΈ Π’ΡΠΈΠ²ΠΈ) ΠΊΠΎΡΠΈ ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠΈ ΠΈΠ·Π°Π±ΡΠ°Π½ΠΈ ΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅ ΠΈ ΡΠ»ΠΈΠΊΡ Π½Π°Π²Π΅Π΄Π΅Π½Ρ Ρ ΠΏΡΠΎΠΌΠ΅Π½ΡΠΈΠ²ΠΎΡ ΠΠΠ¦ΠΠΠ Π€ΠΠΠ. Π‘Π²Π΅ ΠΏΠΎΡΡΠ΅Π±Π½Π΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅ΡΠ·Π΅ΡΠΈ ΠΈΠ· ΡΠΏΡΠ΅ΠΌΠΈΡΡΠ°:
ΠΠ·Π²ΠΎΠ΄ ΠΈΠ· ΠΌΠΈΠ΄ΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅.Π΄Ρ (ΠΎΠ²ΠΎ ΡΠ΅ Π°ΠΏΡΡΡΠ°ΠΊΡΠ½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠ° ΡΠΊΡΠΏΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΡΠ½ΠΈΡ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠ° ΡΠ°ΠΌΠΎ Π΄Π° Π±ΠΈ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ ΠΊΠ°ΠΊΠΎ ΡΡΠ»ΡΠΆΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ΅). ΠΠΈΡΠ΅ΠΊΡΠ½Π° Π²Π΅Π·Π° Π΄ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅:
Π‘Π°Π΄ΡΠΆΠ°Ρ ΠΌΠΈΠ΄ΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅.Π΄Ρ
FROM amd64/node:10.16.0-alpine@sha256:f59303fb3248e5d992586c76cc83e1d3700f641cbcd7c0067bc7ad5bb2e5b489 AS tsbuild
COPY package.json .
COPY yarn.lock .
RUN yarn install
COPY lib lib
COPY tsconfig.json tsconfig.json
COPY tsconfig.app.json tsconfig.app.json
RUN yarn build
FROM amd64/ubuntu:18.04@sha256:eb70667a801686f914408558660da753cde27192cd036148e58258819b927395
LABEL maintainer="Rhys Arkins <[email protected]>"
LABEL name="renovate"
...
COPY php.ini /usr/local/etc/php/php.ini
RUN cp -a /tmp/piik/* /var/www/html/
RUN rm -rf /tmp/piwik
RUN chown -R www-data /var/www/html
ADD piwik-cli-setup /piwik-cli-setup
ADD reset.php /var/www/html/
## ENTRYPOINT ##
ADD entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
USER root
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° ΠΠΠΠ-Π° ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΎΠ²Π°ΠΊΠΎ (ΡΠ°ΠΌΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π½Π°ΡΠΈ ΠΏΡΠ΅ΠΊΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠ½Π΅ Π²Π΅Π·Π΅ ΠΎΠ²Π΄Π΅:
Π‘Π°Π΄ΡΠΆΠ°Ρ .Π³ΠΈΡΠ»Π°Π±-ΡΠΈ.ΠΈΠΌΠ»
variables:
DOCKER_HOST: "tcp://docker:2375/"
DOCKERFILE: "mydockerfile.df" # name of the Dockerfile to analyse
DOCKERIMAGE: "bkimminich/juice-shop" # name of the Docker image to analyse
# DOCKERIMAGE: "knqyf263/cve-2018-11235" # test Docker image with several CRITICAL CVE
SHOWSTOPPER_PRIORITY: "CRITICAL" # what level of criticality will fail Trivy job
TRIVYCACHE: "$CI_PROJECT_DIR/.cache" # where to cache Trivy database of vulnerabilities for faster reuse
ARTIFACT_FOLDER: "$CI_PROJECT_DIR"
services:
- docker:dind # to be able to build docker images inside the Runner
stages:
- scan
- report
- publish
HadoLint:
# Basic lint analysis of Dockerfile instructions
stage: scan
image: docker:git
after_script:
- cat $ARTIFACT_FOLDER/hadolint_results.json
script:
- export VERSION=$(wget -q -O - https://api.github.com/repos/hadolint/hadolint/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/1/')
- wget https://github.com/hadolint/hadolint/releases/download/v${VERSION}/hadolint-Linux-x86_64 && chmod +x hadolint-Linux-x86_64
# NB: hadolint will always exit with 0 exit code
- ./hadolint-Linux-x86_64 -f json $DOCKERFILE > $ARTIFACT_FOLDER/hadolint_results.json || exit 0
artifacts:
when: always # return artifacts even after job failure
paths:
- $ARTIFACT_FOLDER/hadolint_results.json
Dockle:
# Analysing best practices about docker image (users permissions, instructions followed when image was built, etc.)
stage: scan
image: docker:git
after_script:
- cat $ARTIFACT_FOLDER/dockle_results.json
script:
- export VERSION=$(wget -q -O - https://api.github.com/repos/goodwithtech/dockle/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/1/')
- wget https://github.com/goodwithtech/dockle/releases/download/v${VERSION}/dockle_${VERSION}_Linux-64bit.tar.gz && tar zxf dockle_${VERSION}_Linux-64bit.tar.gz
- ./dockle --exit-code 1 -f json --output $ARTIFACT_FOLDER/dockle_results.json $DOCKERIMAGE
artifacts:
when: always # return artifacts even after job failure
paths:
- $ARTIFACT_FOLDER/dockle_results.json
Trivy:
# Analysing docker image and package dependencies against several CVE bases
stage: scan
image: docker:git
script:
# getting the latest Trivy
- apk add rpm
- export VERSION=$(wget -q -O - https://api.github.com/repos/knqyf263/trivy/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/1/')
- wget https://github.com/knqyf263/trivy/releases/download/v${VERSION}/trivy_${VERSION}_Linux-64bit.tar.gz && tar zxf trivy_${VERSION}_Linux-64bit.tar.gz
# displaying all vulnerabilities w/o failing the build
- ./trivy -d --cache-dir $TRIVYCACHE -f json -o $ARTIFACT_FOLDER/trivy_results.json --exit-code 0 $DOCKERIMAGE
# write vulnerabilities info to stdout in human readable format (reading pure json is not fun, eh?). You can remove this if you don't need this.
- ./trivy -d --cache-dir $TRIVYCACHE --exit-code 0 $DOCKERIMAGE
# failing the build if the SHOWSTOPPER priority is found
- ./trivy -d --cache-dir $TRIVYCACHE --exit-code 1 --severity $SHOWSTOPPER_PRIORITY --quiet $DOCKERIMAGE
artifacts:
when: always # return artifacts even after job failure
paths:
- $ARTIFACT_FOLDER/trivy_results.json
cache:
paths:
- .cache
Report:
# combining tools outputs into one HTML
stage: report
when: always
image: python:3.5
script:
- mkdir json
- cp $ARTIFACT_FOLDER/*.json ./json/
- pip install json2html
- wget https://raw.githubusercontent.com/shad0wrunner/docker_cicd/master/convert_json_results.py
- python ./convert_json_results.py
artifacts:
paths:
- results.html
ΠΠΊΠΎ ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ, ΡΠ°ΠΊΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠΈ ΡΠ°ΡΡΠ²Π°Π½Π΅ ΡΠ»ΠΈΠΊΠ΅ ΠΊΠ°ΠΎ .ΡΠ°Ρ Π°ΡΡ ΠΈΠ²Ρ (ΠΌΠ΅ΡΡΡΠΈΠΌ, ΠΌΠΎΡΠ°ΡΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ»Π°Π·Π½Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ Π·Π° ΡΡΠ»ΡΠΆΠ½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ Ρ ΠΠΠΠ Π΄Π°ΡΠΎΡΠ΅ΡΠΈ)
ΠΠ°ΠΏΠΎΠΌΠ΅Π½Π°: Π’ΡΠΈΠ²ΠΈ Π·Π°Ρ ΡΠ΅Π²Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ ΡΠΏΠΌ ΠΈ git. Π£ ΡΡΠΏΡΠΎΡΠ½ΠΎΠΌ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠΈ Π³ΡΠ΅ΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΈΠΊΠΎΠΌ ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠ° ΡΠ»ΠΈΠΊΠ° Π·Π°ΡΠ½ΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π Π΅Π΄Π₯Π°Ρ-Ρ ΠΈ Π΄ΠΎΠ±ΠΈΡΠ°ΡΠ° Π°ΠΆΡΡΠΈΡΠ°ΡΠ° Π±Π°Π·Π΅ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° ΡΠ°ΡΠΈΠ²ΠΎΡΡΠΈ.
2. ΠΠ°ΠΊΠΎΠ½ Π΄ΠΎΠ΄Π°Π²Π°ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Ρ ΡΠΏΡΠ΅ΠΌΠΈΡΡΠ΅, ΠΏΡΠ΅ΠΌΠ° ΡΠΏΡΡΡΡΠ²ΠΈΠΌΠ° Ρ Π½Π°ΡΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½ΠΎΡ Π΄Π°ΡΠΎΡΠ΅ΡΠΈ, ΠΠΈΡΠΠ°Π± ΡΠ΅ Π°ΡΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΠΏΠΎΠΊΡΠ΅Π½ΡΡΠΈ ΠΏΡΠΎΡΠ΅Ρ ΠΏΡΠ°Π²ΡΠ΅ΡΠ° ΠΈ ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠ°. ΠΠ° ΠΊΠ°ΡΡΠΈΡΠΈ Π¦Π / Π¦Π β Π¦Π΅Π²ΠΎΠ²ΠΎΠ΄ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΠΈ Π½Π°ΠΏΡΠ΅Π΄Π°ΠΊ ΡΠΏΡΡΡΡΠ°Π²Π°.
ΠΠ°ΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ, ΠΈΠΌΠ°ΠΌΠΎ ΡΠ΅ΡΠΈΡΠΈ Π·Π°Π΄Π°ΡΠΊΠ°. Π’ΡΠΈ ΠΎΠ΄ ΡΠΈΡ
ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΠΊΡΡΡΠ΅Π½Π΅ Ρ ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠ΅, Π° ΠΏΠΎΡΠ»Π΅Π΄ΡΠΈ (ΠΠ·Π²Π΅ΡΡΠ°Ρ) ΠΏΡΠΈΠΊΡΠΏΡΠ° ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π°Π½ ΠΈΠ·Π²Π΅ΡΡΠ°Ρ ΠΈΠ· ΡΠ°ΡΡΡΠΊΠ°Π½ΠΈΡ
Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠ° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΠΌΠ° ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠ°.
Π’ΡΠΈΠ²ΠΈ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π½ΠΎ Π·Π°ΡΡΡΠ°Π²ΡΠ° ΡΠ²ΠΎΡΠ΅ ΠΈΠ·Π²ΡΡΠ°Π²Π°ΡΠ΅ Π°ΠΊΠΎ ΡΠ΅ Π½Π° ΡΠ»ΠΈΡΠΈ ΠΈΠ»ΠΈ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈΠΌΠ° ΠΏΡΠΎΠ½Π°ΡΡ ΠΠ ΠΠ’ΠΠ§ΠΠ ΡΠ°ΡΠΈΠ²ΠΎΡΡΠΈ. Π£ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, Π₯Π°Π΄ΠΎΠ»ΠΈΠ½Ρ ΡΠ²Π΅ΠΊ Π²ΡΠ°ΡΠ° Π‘ΡΡΡΠ΅ΡΡ Ρ ΠΊΠΎΠ΄Ρ Π·Π° ΠΈΠ·Π²ΡΡΠ°Π²Π°ΡΠ΅, ΠΏΠΎΡΡΠΎ ΡΠ΅Π³ΠΎΠ²ΠΎ ΠΈΠ·Π²ΡΡΠ°Π²Π°ΡΠ΅ ΡΠ²Π΅ΠΊ ΠΈΠΌΠ° Π½Π°ΠΏΠΎΠΌΠ΅Π½Π΅, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ΄ΠΈ Π΄ΠΎ Π·Π°ΡΡΡΠ°Π²ΡΠ°ΡΠ° ΠΈΠ·Π³ΡΠ°Π΄ΡΠ΅.
Π£ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ ΠΎΠ΄ Π²Π°ΡΠΈΡ
ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈΡ
Π·Π°Ρ
ΡΠ΅Π²Π°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ΅ΡΠ΅ ΠΈΠ·Π»Π°Π·Π½ΠΈ ΠΊΠΎΠ΄ ΡΠ°ΠΊΠΎ Π΄Π° ΠΊΠ°Π΄Π° ΠΎΠ²ΠΈ ΡΡΠ»ΡΠΆΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΎΡΠΊΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΎΠ΄ΡΠ΅ΡΠ΅Π½Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊΠΎΡΠ΅ Π·Π°ΡΡΡΠ°Π²ΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅Ρ ΠΏΡΠ°Π²ΡΠ΅ΡΠ°. Π£ Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°ΡΡ, ΠΈΠ·Π³ΡΠ°Π΄ΡΠ° ΡΠ΅ ΡΠ΅ Π·Π°ΡΡΡΠ°Π²ΠΈΡΠΈ ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ Π’ΡΠΈΠ²ΠΈ ΠΎΡΠΊΡΠΈΡΠ΅ ΡΠ°ΡΠΈΠ²ΠΎΡΡ ΡΠ° ΠΊΡΠΈΡΠΈΡΠ½ΠΎΡΡΡ ΠΊΠΎΡΡ ΡΠΌΠΎ Π½Π°Π²Π΅Π»ΠΈ Ρ ΠΏΡΠΎΠΌΠ΅Π½ΡΠΈΠ²ΠΎΡ Π‘Π₯ΠΠΠ‘Π’ΠΠΠΠΠ Ρ .Π³ΠΈΡΠ»Π°Π±-ΡΠΈ.ΠΈΠΌΠ».
Π Π΅Π·ΡΠ»ΡΠ°Ρ ΡΠ°Π΄Π° ΡΠ²Π°ΠΊΠΎΠ³ ΡΡΠ»ΡΠΆΠ½ΠΎΠ³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΌΠΎΠΆΠ΅ ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΠΈ Ρ Π΅Π²ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈ ΡΠ²Π°ΠΊΠΎΠ³ Π·Π°Π΄Π°ΡΠΊΠ° ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠ°, Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Ρ ΡΡΠΎΠ½ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΠΌΠ° Ρ ΠΎΠ΄Π΅ΡΠΊΡ Π°ΡΡΠ΅ΡΠ°ΠΊΠ°ΡΠ° ΠΈΠ»ΠΈ Ρ ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎΠΌ Π₯Π’ΠΠ ΠΈΠ·Π²Π΅ΡΡΠ°ΡΡ (Π²ΠΈΡΠ΅ ΠΎ ΡΠΎΠΌΠ΅ Ρ Π½Π°ΡΡΠ°Π²ΠΊΡ):
3. ΠΠ° Π±ΠΈ ΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠΈ ΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»ΠΈ Ρ ΠΌΠ°Π»ΠΎ ΡΠΈΡΡΠΈΠ²ΠΈΡΠΎΡ ΡΠΎΡΠΌΠΈ, ΠΌΠ°Π»Π° ΠΠΈΡΡ
ΠΎΠ½ ΡΠΊΡΠΈΠΏΡΠ° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΠΏΡΠ΅ΡΠ²Π°ΡΠ°ΡΠ΅ ΡΡΠΈ ΡΡΠΎΠ½ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ Ρ ΡΠ΅Π΄Π½Ρ Π₯Π’ΠΠ Π΄Π°ΡΠΎΡΠ΅ΠΊΡ ΡΠ° ΡΠ°Π±Π΅Π»ΠΎΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠ°ΠΊΠ°.
ΠΠ²Π° ΡΠΊΡΠΈΠΏΡΠ° ΡΠ΅ ΠΏΠΎΠΊΡΠ΅ΡΠ΅ ΠΏΠΎΡΠ΅Π±Π½ΠΈΠΌ Π·Π°Π΄Π°ΡΠΊΠΎΠΌ ΠΠ·Π²Π΅ΡΡΠ°ΡΠ°, Π° ΡΠ΅Π½ ΠΊΠΎΠ½Π°ΡΠ½ΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡ ΡΠ΅ Π₯Π’ΠΠ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠ° ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠ΅ΠΌ. ΠΠ·Π²ΠΎΡ ΡΠΊΡΠΈΠΏΡΠ΅ ΡΠ΅ ΡΠ°ΠΊΠΎΡΠ΅ Π½Π°Π»Π°Π·ΠΈ Ρ ΡΠΏΡΠ΅ΠΌΠΈΡΡΡ ΠΈ ΠΌΠΎΠΆΠ΅ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄ΠΈΡΠΈ Π²Π°ΡΠΈΠΌ ΠΏΠΎΡΡΠ΅Π±Π°ΠΌΠ°, Π±ΠΎΡΠ°ΠΌΠ° ΠΈΡΠ΄.
Π‘Ρ Π΅Π»Π» ΡΠΊΡΠΈΠΏΡΠ°
ΠΡΡΠ³Π° ΠΎΠΏΡΠΈΡΠ° ΡΠ΅ ΠΏΠΎΠ³ΠΎΠ΄Π½Π° Π·Π° ΡΠ»ΡΡΠ°ΡΠ΅Π²Π΅ ΠΊΠ°Π΄Π° ΡΡΠ΅Π±Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ ΠΠΎΡΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠ΅ ΠΊΠΎΡΠ΅ Π½ΠΈΡΡ Ρ ΠΎΠΊΠ²ΠΈΡΡ Π¦Π/Π¦Π ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΈΠ»ΠΈ ΠΌΠΎΡΠ°ΡΠ΅ Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΡΠ²Π΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠ΅ Ρ ΠΎΠ±Π»ΠΈΠΊΡ ΠΊΠΎΡΠΈ ΡΠ΅ ΠΌΠΎΠΆΠ΅ ΠΈΠ·Π²ΡΡΠΈΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π½Π° Ρ ΠΎΡΡΡ. ΠΠ²Ρ ΠΎΠΏΡΠΈΡΡ ΠΏΠΎΠΊΡΠΈΠ²Π° Π³ΠΎΡΠΎΠ²Π° ΡΡ Π΅Π»Π» ΡΠΊΡΠΈΠΏΡΠ° ΠΊΠΎΡΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ ΠΏΠΎΠΊΡΠ΅Π½ΡΡΠΈ Π½Π° ΡΠΈΡΡΠΎΡ Π²ΠΈΡΡΡΠ΅Π»Π½ΠΎΡ (ΠΈΠ»ΠΈ ΡΠ°ΠΊ ΡΡΠ²Π°ΡΠ½ΠΎΡ) ΠΌΠ°ΡΠΈΠ½ΠΈ. Π‘ΠΊΡΠΈΠΏΡΠ° ΠΏΡΠ°ΡΠΈ ΠΈΡΡΠ° ΡΠΏΡΡΡΡΠ²Π° ΠΊΠ°ΠΎ Π³ΠΈΡΠ»Π°Π±-ΡΡΠ½Π½Π΅Ρ ΠΈΠ·Π½Π°Π΄.
ΠΠ° Π±ΠΈ ΡΠΊΡΠΈΠΏΡΠ° ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π»Π°, ΠΠΎΡΠΊΠ΅Ρ ΠΌΠΎΡΠ° Π±ΠΈΡΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΡΠ΅Π½ΡΡΠ½ΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ ΠΌΠΎΡΠ° Π±ΠΈΡΠΈ Ρ Π³ΡΡΠΏΠΈ Π·Π° Π΄ΠΎΡΠΊΠ΅Ρ.
Π‘Π°ΠΌΠ° ΡΠΊΡΠΈΠΏΡΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π½Π°ΡΠΈ ΠΎΠ²Π΄Π΅:
ΠΠ° ΠΏΠΎΡΠ΅ΡΠΊΡ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅, ΠΏΡΠΎΠΌΠ΅Π½ΡΠΈΠ²Π΅ ΠΎΠ΄ΡΠ΅ΡΡΡΡ ΠΊΠΎΡΡ ΡΠ»ΠΈΠΊΡ ΡΡΠ΅Π±Π° ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠΈ ΠΈ ΠΊΠΎΡΠΈ Π΄Π΅ΡΠ΅ΠΊΡΠΈ ΠΊΡΠΈΡΠΈΡΠ½ΠΎΡΡΠΈ ΡΠ΅ ΠΏΡΠΎΡΠ·ΡΠΎΠΊΠΎΠ²Π°ΡΠΈ Π΄Π° ΡΡΠ»ΡΠΆΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌ Π’ΡΠΈΠ²ΠΈ ΠΈΠ·Π°ΡΠ΅ ΡΠ° Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π³ΡΠ΅ΡΠΊΠ΅.
Π’ΠΎΠΊΠΎΠΌ ΠΈΠ·Π²ΡΡΠ°Π²Π°ΡΠ° ΡΠΊΡΠΈΠΏΡΠ΅, ΡΠ²ΠΈ ΡΡΠ»ΡΠΆΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΡΠ΅ Π±ΠΈΡΠΈ ΠΏΡΠ΅ΡΠ·Π΅ΡΠΈ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠΌ Π΄ΠΎΡΠΊΠ΅Ρ_ΡΠΎΠΎΠ»Ρ, ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΡΠΈΡ ΠΎΠ²ΠΎΠ³ ΡΠ°Π΄Π° - Ρ ΠΈΠΌΠ΅Π½ΠΈΠΊΡ Π΄ΠΎΡΠΊΠ΅Ρ_ΡΠΎΠΎΠ»Ρ/ΡΡΠΎΠ½, Π° Π₯Π’ΠΠ ΡΠ° ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠ΅ΠΌ ΡΠ΅ Π±ΠΈΡΠΈ Ρ Π΄Π°ΡΠΎΡΠ΅ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ.Ρ ΡΠΌΠ».
ΠΡΠΈΠΌΠ΅Ρ ΠΈΠ·Π»Π°Π·Π° ΡΠΊΡΠΈΠΏΡΠ΅
~/docker_cicd$ ./docker_sec_check.sh
[+] Setting environment variables
[+] Installing required packages
[+] Preparing necessary directories
[+] Fetching sample Dockerfile
2020-10-20 10:40:00 (45.3 MB/s) - βDockerfileβ saved [8071/8071]
[+] Pulling image to scan
latest: Pulling from bkimminich/juice-shop
[+] Running Hadolint
...
Dockerfile:205 DL3015 Avoid additional packages by specifying `--no-install-recommends`
Dockerfile:248 DL3002 Last USER should not be root
...
[+] Running Dockle
...
WARN - DKL-DI-0006: Avoid latest tag
* Avoid 'latest' tag
INFO - CIS-DI-0005: Enable Content trust for Docker
* export DOCKER_CONTENT_TRUST=1 before docker pull/build
...
[+] Running Trivy
juice-shop/frontend/package-lock.json
=====================================
Total: 3 (UNKNOWN: 0, LOW: 1, MEDIUM: 0, HIGH: 2, CRITICAL: 0)
+---------------------+------------------+----------+---------+-------------------------+
| LIBRARY | VULNERABILITY ID | SEVERITY | VERSION | TITLE |
+---------------------+------------------+----------+---------+-------------------------+
| object-path | CVE-2020-15256 | HIGH | 0.11.4 | Prototype pollution in |
| | | | | object-path |
+---------------------+------------------+ +---------+-------------------------+
| tree-kill | CVE-2019-15599 | | 1.2.2 | Code Injection |
+---------------------+------------------+----------+---------+-------------------------+
| webpack-subresource | CVE-2020-15262 | LOW | 1.4.1 | Unprotected dynamically |
| | | | | loaded chunks |
+---------------------+------------------+----------+---------+-------------------------+
juice-shop/package-lock.json
============================
Total: 20 (UNKNOWN: 0, LOW: 1, MEDIUM: 6, HIGH: 8, CRITICAL: 5)
...
juice-shop/package-lock.json
============================
Total: 5 (CRITICAL: 5)
...
[+] Removing left-overs
[+] Making the output look pretty
[+] Converting JSON results
[+] Writing results HTML
[+] Clean exit ============================================================
[+] Everything is done. Find the resulting HTML report in results.html
ΠΠΎΡΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠ° ΡΠ° ΡΠ²ΠΈΠΌ ΡΡΠ»ΡΠΆΠ½ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΠΌΠ°
ΠΠ°ΠΎ ΡΡΠ΅ΡΡ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ, ΡΠ°ΡΡΠ°Π²ΠΈΠΎ ΡΠ°ΠΌ Π΄Π²Π° ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½Π° ΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅-Π° Π΄Π° Π±ΠΈΡ Π½Π°ΠΏΡΠ°Π²ΠΈΠΎ ΡΠ»ΠΈΠΊΡ ΠΏΠΎΠΌΠΎΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΠ½ΠΈΡ ΡΡΠ»ΡΠΆΠ½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°. ΠΠ΅Π΄Π°Π½ ΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅ ΡΠ΅ ΠΏΠΎΠΌΠΎΡΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠΊΡΠΏ Π·Π° ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠ΅ ΡΠ»ΠΈΠΊΠ΅ ΠΈΠ· ΡΠΏΡΠ΅ΠΌΠΈΡΡΠ°, Π΄ΡΡΠ³ΠΈ (ΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅_ΡΠ°Ρ) ΡΠ΅ ΠΏΠΎΠΌΠΎΡΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠ΅Ρ Π·Π° ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠ΅ ΡΠ°Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ ΡΠ° ΡΠ»ΠΈΠΊΠΎΠΌ.
1. Π£Π·ΠΈΠΌΠ°ΠΌΠΎ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ°ΡΡΡΡ ΠΠΎΡΠΊΠ΅Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΡ ΠΈ ΡΠΊΡΠΈΠΏΡΠ΅ ΠΈΠ· ΡΠΏΡΠ΅ΠΌΠΈΡΡΠ°
2. ΠΠΎΠΊΡΠ΅Π½ΠΈΡΠ΅ Π³Π° Π·Π° ΡΠΊΠ»Π°ΠΏΠ°ΡΠ΅:
docker build -t dscan:image -f docker_security.df .
3. ΠΠ°ΠΊΠΎΠ½ ΡΡΠΎ ΡΠ΅ Π³ΡΠ°Π΄ΡΠ° Π·Π°Π²ΡΡΠ΅Π½Π°, ΠΊΡΠ΅ΠΈΡΠ°ΡΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΎΠ΄ ΡΠ»ΠΈΠΊΠ΅. ΠΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ, ΠΏΡΠΎΡΠ»Π΅ΡΡΡΠ΅ΠΌΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΡΠΈΠ²Ρ ΠΎΠΊΡΡΠΆΠ΅ΡΠ° ΠΠΠ¦ΠΠΠ ΠΠΠΠΠ ΡΠ° ΠΈΠΌΠ΅Π½ΠΎΠΌ ΡΠ»ΠΈΠΊΠ΅ ΠΊΠΎΡΠ° Π½Π°Ρ Π·Π°Π½ΠΈΠΌΠ° ΠΈ ΠΌΠΎΠ½ΡΠΈΡΠ°ΠΌΠΎ ΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅ ΠΊΠΎΡΠΈ ΠΆΠ΅Π»ΠΈΠΌΠΎ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠΎ ΡΠ° Π½Π°ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Π΅ Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΡ /ΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅ (ΠΈΠΌΠ°ΡΡΠ΅ Π½Π° ΡΠΌΡ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½Π° Π°ΠΏΡΠΎΠ»ΡΡΠ½Π° ΠΏΡΡΠ°ΡΠ° Π΄ΠΎ ΠΎΠ²Π΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅):
docker run --rm -v $(pwd)/results:/results -v $(pwd)/docker_security.df:/Dockerfile -e DOCKERIMAGE="bkimminich/juice-shop" dscan:image
[+] Setting environment variables
[+] Running Hadolint
/Dockerfile:3 DL3006 Always tag the version of an image explicitly
[+] Running Dockle
WARN - DKL-DI-0006: Avoid latest tag
* Avoid 'latest' tag
INFO - CIS-DI-0005: Enable Content trust for Docker
* export DOCKER_CONTENT_TRUST=1 before docker pull/build
INFO - CIS-DI-0006: Add HEALTHCHECK instruction to the container image
* not found HEALTHCHECK statement
INFO - DKL-LI-0003: Only put necessary files
* unnecessary file : juice-shop/node_modules/sqlite3/Dockerfile
* unnecessary file : juice-shop/node_modules/sqlite3/tools/docker/architecture/linux-arm64/Dockerfile
* unnecessary file : juice-shop/node_modules/sqlite3/tools/docker/architecture/linux-arm/Dockerfile
[+] Running Trivy
...
juice-shop/package-lock.json
============================
Total: 20 (UNKNOWN: 0, LOW: 1, MEDIUM: 6, HIGH: 8, CRITICAL: 5)
...
[+] Making the output look pretty
[+] Starting the main module ============================================================
[+] Converting JSON results
[+] Writing results HTML
[+] Clean exit ============================================================
[+] Everything is done. Find the resulting HTML report in results.html
ΠΠ°Π»Π°Π·ΠΈ
ΠΠΎΠΊΡΠΈΠ»ΠΈ ΡΠΌΠΎ ΡΠ°ΠΌΠΎ ΡΠ΅Π΄Π°Π½ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΠΊΡΠΏ ΠΠΎΡΠΊΠ΅Ρ ΡΡΠ»ΡΠΆΠ½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π·Π° ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΠ°ΡΠ°, Π·Π° ΠΊΠΎΡΠΈ ΠΌΠΈΡΠ»ΠΈΠΌ Π΄Π° ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ Π΅ΡΠΈΠΊΠ°ΡΠ½ΠΎ ΠΏΠΎΠΊΡΠΈΠ²Π° Π΄ΠΎΠ±Π°Ρ Π΄Π΅ΠΎ Π·Π°Ρ ΡΠ΅Π²Π° Π·Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ ΡΠ»ΠΈΠΊΠ΅. ΠΠΎΡΡΠΎΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ»Π°ΡΠ΅Π½ΠΈΡ ΠΈ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΈΡ Π°Π»Π°ΡΠ° ΠΊΠΎΡΠΈ ΠΌΠΎΠ³Ρ Π΄Π° Π²ΡΡΠ΅ ΠΈΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠ΅, ΡΡΡΠ°ΡΡ ΠΏΡΠ΅Π»Π΅ΠΏΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π΄Π΅ ΠΈΡΠΊΡΡΡΠΈΠ²ΠΎ Ρ ΡΠ΅ΠΆΠΈΠΌΡ ΠΊΠΎΠ½Π·ΠΎΠ»Π΅, ΠΏΠΎΠΊΡΠΈΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π·Π° ΡΠΏΡΠ°Π²ΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠΌΠ°, ΠΈΡΠ΄. ΠΡΠ΅Π³Π»Π΅Π΄ ΠΎΠ²ΠΈΡ Π°Π»Π°ΡΠ° ΠΈ Π½Π°ΡΠΈΠ½Π° Π½Π° ΠΊΠΎΡΠΈ ΠΈΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ΅ΠΌΠΎ ΠΌΠΎΠΆΠ΅ ΡΠ΅ ΠΏΠΎΡΠ°Π²ΠΈΡΠΈ ΠΌΠ°Π»ΠΎ ΠΊΠ°ΡΠ½ΠΈΡΠ΅.
ΠΠΎΠ·ΠΈΡΠΈΠ²Π½Π° ΡΡΡΠ°Π½Π° ΡΠΊΡΠΏΠ° Π°Π»Π°ΡΠ° ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Ρ ΡΠ»Π°Π½ΠΊΡ ΡΠ΅ Π΄Π° ΡΡ ΡΠ²ΠΈ ΠΈΠ·Π³ΡΠ°ΡΠ΅Π½ΠΈ Π½Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΎΠΌ ΠΊΠΎΠ΄Ρ ΠΈ Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ°ΡΠΈ ΡΠ° ΡΠΈΠΌΠ° ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ»ΠΈΡΠ½ΠΈΠΌ Π°Π»Π°ΡΠΈΠΌΠ° Π΄Π° Π±ΠΈΡΡΠ΅ ΠΏΡΠΎΠ½Π°ΡΠ»ΠΈ ΡΡΠ° ΡΠ°ΡΠ½ΠΎ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ° Π²Π°ΡΠΈΠΌ Π·Π°Ρ ΡΠ΅Π²ΠΈΠΌΠ° ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΈΠΌ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠ°. ΠΠ°ΡΠ°Π²Π½ΠΎ, ΡΠ²Π΅ ΡΠ°ΡΠΈΠ²ΠΎΡΡΠΈ ΠΊΠΎΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠ½Π°ΡΡ ΡΡΠ΅Π±Π° ΠΏΡΠΎΡΡΠΈΡΠΈ Π·Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΠΈΠ²ΠΎΡΡ Ρ ΠΎΠ΄ΡΠ΅ΡΠ΅Π½ΠΈΠΌ ΡΡΠ»ΠΎΠ²ΠΈΠΌΠ°, Π°Π»ΠΈ ΠΎΠ²ΠΎ ΡΠ΅ ΡΠ΅ΠΌΠ° Π·Π° Π±ΡΠ΄ΡΡΠΈ Π²Π΅Π»ΠΈΠΊΠΈ ΡΠ»Π°Π½Π°ΠΊ.
ΠΠ°Π΄Π°ΠΌ ΡΠ΅ Π΄Π° ΡΠ΅ Π²Π°ΠΌ ΠΎΠ²Π° ΡΠΏΡΡΡΡΠ²Π°, ΡΠΊΡΠΈΠΏΡΠ΅ ΠΈ ΡΡΠ»ΡΠΆΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΈ ΠΏΠΎΡΡΠ°ΡΠΈ ΠΏΠΎΠ»Π°Π·Π½Π° ΡΠ°ΡΠΊΠ° Π·Π° ΡΡΠ²Π°ΡΠ°ΡΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΈΡΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅ Ρ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡΠ΅.
ΠΠ·Π²ΠΎΡ: Π²Π²Π².Ρ
Π°Π±Ρ.ΡΠΎΠΌ