ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Google ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»Π° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ SLSA (Supply-chain Levels for Software Artifacts), Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ±ΠΎΠ±ΡΡΠ½ ΠΈΠΌΠ΅ΡΡΠΈΠΉΡΡ ΠΎΠΏΡΡ ΠΏΠΎ Π·Π°ΡΠΈΡΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡ Π°ΡΠ°ΠΊ, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΠΌΡΡ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°.
ΠΡΠΎΡΠ΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π²ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ ΠΈ Π·Π°Π²ΠΈΡΡΡΠΈΠΌΠΈ ΠΎΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π±Π»Π°Π³ΠΎΠΏΡΠΈΡΡΠ½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Π°ΡΠ°ΠΊ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π½Π΅ Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠ΅ΠΉ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠ΅, Π° Ρ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (Π°ΡΠ°ΠΊΠΈ «supply chain», ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π½Π°ΡΠ΅Π»Π΅Π½Π½ΡΠ΅ Π½Π° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ).
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΡΡΠΈΡΡΠ²Π°Π΅Ρ 8 Π²ΠΈΠ΄ΠΎΠ² Π°ΡΠ°ΠΊ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΠ³ΡΠΎΠ·Π°ΠΌΠΈ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π°, ΡΠ±ΠΎΡΠΊΠΈ, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°.
- A. ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ
Π±ΡΠΊΠ΄ΠΎΡΡ ΠΈΠ»ΠΈ ΡΠΊΡΡΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠΈΠ΅ ΠΊ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠΌ.
ΠΡΠΈΠΌΠ΅Ρ Π°ΡΠ°ΠΊΠΈ: «Hypocrite Commits» — ΠΏΠΎΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΄ΡΠΎ Linux ΠΏΠ°ΡΡΠ΅ΠΉ Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠΌΠΈ.
ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΡΠΈΡΡ: Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ΅ ΡΠ΅ΡΠ΅Π½Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π²ΡΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ.
- B. ΠΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠ°ΡΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
ΠΡΠΈΠΌΠ΅Ρ Π°ΡΠ°ΠΊΠΈ: Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Ρ Π±ΡΠΊΠ΄ΠΎΡΠΎΠΌ Π² Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ° PHP ΠΏΠΎΡΠ»Π΅ ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΡΠΈΡΡ: ΠΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ Π·Π°ΡΠΈΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠΌ (Π² ΡΠ»ΡΡΠ°Π΅ PHP Π°ΡΠ°ΠΊΠ° Π±ΡΠ»Π° ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π° ΡΠ΅ΡΠ΅Π· ΠΌΠ°Π»ΠΎ ΠΊΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ HTTPS-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π΄ΠΎΠΏΡΡΠΊΠ°Π²ΡΠΈΠΉ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π΅ ΠΏΠΎ ΠΏΠ°ΡΠΎΠ»Ρ Π±Π΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ SSH-ΠΊΠ»ΡΡΠ°, ΠΏΡΠΈ ΡΠΎΠΌ, ΡΡΠΎ Π΄Π»Ρ Ρ ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΡΡ Π½Π΅Π½Π°Π΄ΡΠΆΠ½ΡΠΉ MD5).
- C. ΠΠ½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΊΠΎΠ΄Π° Π² ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ (ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ΄, Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄Ρ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ).
ΠΡΠΈΠΌΠ΅Ρ Π°ΡΠ°ΠΊΠΈ: Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠΊΠ΄ΠΎΡΠ° Π² Webmin ΠΏΡΡΠ΅ΠΌ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ±ΠΎΡΠΎΡΠ½ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ, ΠΏΡΠΈΠ²Π΅Π΄ΡΠΈΡ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΡ ΡΡ ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΡΠΈΡΡ: ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅.
- D. ΠΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠ°ΡΠΈΡ ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
ΠΡΠΈΠΌΠ΅Ρ Π°ΡΠ°ΠΊΠΈ: Π°ΡΠ°ΠΊΠ° SolarWinds, Π² Ρ ΠΎΠ΄Π΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ±ΠΎΡΠΊΠΈ Π±ΡΠ»ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠΊΠ΄ΠΎΡΠ° Π² ΠΏΡΠΎΠ΄ΡΠΊΡ SolarWinds Orion.
ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΡΠΈΡΡ: Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ ΠΌΠ΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
- E. ΠΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠ΅ΡΠ΅Π· Π½Π΅ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
ΠΡΠΈΠΌΠ΅Ρ Π°ΡΠ°ΠΊΠΈ: Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠΊΠ΄ΠΎΡΠ° Π² ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ event-stream, ΡΠ΅ΡΠ΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΡΡΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΎ Π² git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, Π° ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°Π»ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² Π³ΠΎΡΠΎΠ²ΠΎΠΌ MNP-ΠΏΠ°ΠΊΠ΅ΡΠ΅).
ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΡΠΈΡΡ: ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ SLSA ΠΊΠΎ Π²ΡΠ΅ΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌ (Π² ΡΠ»ΡΡΠ°Π΅ event-stream ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π±Ρ Π²ΡΡΠ²ΠΈΠ»Π° ΡΠ±ΠΎΡΠΊΡ ΠΊΠΎΠ΄Π°, Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ).
- F. ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΎΠ², Π½Π΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ
Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ CI/CD.
ΠΡΠΈΠΌΠ΅Ρ Π°ΡΠ°ΠΊΠΈ: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΡΠΊΡΠΈΠΏΡ CodeCov, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²ΡΠ΅Π³ΠΎ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Ρ ΡΠ°Π½ΠΈΠΌΡΡ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΡΠΈΡΡ: ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π° ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΈ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡΡ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΎΠ² (Π² ΡΠ»ΡΡΠ°Π΅ Ρ CodeCov ΠΌΠΎΠ³Π»ΠΎ Π±ΡΡΡ Π²ΡΡΠ²Π»Π΅Π½ΠΎ, ΡΡΠΎ ΠΎΡΠ΄Π°Π²Π°Π΅ΠΌΡΠΉ Ρ ΡΠ°ΠΉΡΠ° codecov.io ΡΠΊΡΠΈΠΏΡ Bash Uploader Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΠ΄Ρ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°).
- G. ΠΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠ°ΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
ΠΡΠΈΠΌΠ΅Ρ Π°ΡΠ°ΠΊΠΈ: ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Π·Π΅ΡΠΊΠ°Π»Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Ρ ΡΠ΅Π»ΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· Π½ΠΈΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΡΠΈΡΡ: ΠΡΠΎΠ²Π΅ΡΠΊΠ°, ΡΡΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΠΌΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ ΡΠΎΠ±ΡΠ°Π½Ρ ΠΈΠ· Π·Π°ΡΠ²Π»Π΅Π½Π½ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ².
- H. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π΅ ΡΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ Π°ΡΠ°ΠΊΠΈ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠΏΡΠΊΠ²ΠΎΡΡΠΈΠ½Π³Π° (NPM, RubyGems, PyPI) Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΏΠΎΡ ΠΎΠΆΠΈΡ ΠΏΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, coffe-script Π²ΠΌΠ΅ΡΡΠΎ coffee-script).
ΠΠ»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΡΡ ΡΠ³ΡΠΎΠ· SLSA ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π°Π±ΠΎΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π°ΡΠ΄ΠΈΡΠ°. SLSA ΠΎΠ±ΠΎΠ±ΡΠ°Π΅Ρ ΡΠΈΠΏΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π°ΡΠ°ΠΊ ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΡΡΠΎΠ²Π½Π΅ΠΉ Π·Π°ΡΠΈΡΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠ΅Π΄ΡΡΠ²Π»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. Π§Π΅ΠΌ Π²ΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ SLSA, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ² Π·Π°ΡΠΈΡΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΎ ΠΈ ΡΠ΅ΠΌ Π»ΡΡΡΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π·Π°ΡΠΈΡΠ΅Π½Π° ΠΎΡ ΡΠΈΠΏΠΎΠ²ΡΡ Π°ΡΠ°ΠΊ.
- SLSA 1 — ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠ±ΠΎΡΠΎΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π±ΡΠ» ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π» ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ («provenance») ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ ΡΠΎΠ±ΡΠ°Π½Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠ°Ρ , Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ (Π΄Π»Ρ GitHub Actions ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π°ΡΠ΄ΠΈΡΠ°). SLSA 1 Π½Π΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π·Π°ΡΠΈΡΡ ΠΎΡ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π° Π»ΠΈΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠΌΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠΈΡΠΊΠΎΠ².
- SLSA 2 — ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΈ ΡΠ±ΠΎΡΠΎΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠΈΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ SLSA 2 ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄, Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ Π΄ΠΎΠ²Π΅ΡΠΈΡ ΡΠ±ΠΎΡΠΎΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ².
- SLSA 3 — ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ, ΡΡΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡ ΠΈ ΡΠ±ΠΎΡΠΎΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ², Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π°ΡΠ΄ΠΈΡΠ° ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ . ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ Π°ΡΠ΄ΠΈΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ².
- SLSA 4 — Π½Π°ΠΈΠ²ΡΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ, Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΡΡΠΎΠ²Π½ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ:
- ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄Π²ΡΠΌΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ.
- ΠΡΠ΅ ΡΠ°Π³ΠΈ ΡΠ±ΠΎΡΠΊΠΈ, ΠΊΠΎΠ΄ ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠΎΠ²Π°Π½Ρ, Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Ρ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Ρ, Π° ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±Π΅Π· Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΠΈ.
- ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ — Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΠΈΠ»Π°ΠΌΠΈ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΡΠΎΠ±ΡΠ°Π½ ΠΈΠ· ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ².
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru