ನಿಮ್ಮ Auth ಲೈಬ್ರರಿ ಮೇಂಟೈನರ್ ಎಂದಿಗೂ ಮಲಗದ ಏಜೆಂಟ್
ಸಾಫ್ಟ್ವೇರ್ ಸಪ್ಲೈ ಚೈನ್ಗಳು ಮುರಿದುಬೀಳುತ್ತಿವೆ.
ಹಳೆಯ ಮಾದರಿಯು ಮನುಷ್ಯರು ಒಳಗೊಂಡಿದ್ದಾರೆ ಎಂದು ಭಾವಿಸುತ್ತದೆ. ನಾವು Semver, Dependabot ಮತ್ತು ಮ್ಯಾನುಯಲ್ ರಿವ್ಯೂಗಳಂತಹ ಪರಿಕರಗಳನ್ನು ಬಳಸುತ್ತೇವೆ. ಈ ಎಲ್ಲಾ ಪರಿಕರಗಳು ಮನುಷ್ಯನ ವೇಗವನ್ನು (human tempo) ಆಧರಿಸಿವೆ. ಮನುಷ್ಯನು changelog ಅನ್ನು ಓದುತ್ತಾನೆ. ಮನುಷ್ಯನು merge ಕ್ಲಿಕ್ ಮಾಡುತ್ತಾನೆ. ಏನಾದರೂ ಮುರಿದರೆ ಮನುಷ್ಯನು ಗಮನಿಸುತ್ತಾನೆ.
ಈಗ, ಏಜೆಂಟ್ಗಳು ಎಲ್ಲವನ್ನೂ ವಶಪಡಿಸಿಕೊಳ್ಳುತ್ತಿವೆ.
ನಾನು ಇತ್ತೀಚೆಗೆ ಕೆಲವು OIDC ಕೋಡ್ ಅನ್ನು ಎರಡು MIT-licensed ಪ್ಯಾಕೇಜ್ಗಳಾಗಿ ಪರಿವರ್ತಿಸಿದೆ. ನಾನು ಅವುಗಳನ್ನು ರಿಜಿಸ್ಟ್ರಿಗೆ ಪ್ರಕಟಿಸಿದೆ. ಶೀಘ್ರದಲ್ಲೇ, ಮತ್ತೊಂದು ಏಜೆಂಟ್ ತನ್ನ ಅಥೆಂಟಿಕೇಶನ್ ಪಾತ್ಗಾಗಿ ಅವುಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಯಿತು.
ಲೆಕ್ಕಾಚಾರ ಬದಲಾಗಿದೆ. ಮೇಂಟೈನರ್ ಒಬ್ಬ ಏಜೆಂಟ್. ಕನ್ಸ್ಯೂಮರ್ ಒಬ್ಬ ಏಜೆಂಟ್. ಇಬ್ಬರೂ 24/7 ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಾರೆ. ಇಬ್ಬರೂ ಯಂತ್ರದ ವೇಗದಲ್ಲಿ ಚಲಿಸುತ್ತಾರೆ. ಒಂದು ಹೊಸ ವರ್ಷನ್, ಪ್ರಕಟಿಸಿದವರಿಂದ ನಿಮ್ಮ ಪ್ರೊಡಕ್ಷನ್ ಕೋಡ್ಗೆ ಕೇವಲ ಸೆಕೆಂಡುಗಳಲ್ಲಿ ತಲುಪಬಹುದು, ಅದರಲ್ಲಿ ಯಾವುದೇ ಮನುಷ್ಯನ ಕಣ್ಣು 'diff' ಅನ್ನು ನೋಡುವುದಿಲ್ಲ.
ನಮ್ಮ ಪ್ರಸ್ತುತ ರಕ್ಷಣಾ ವ್ಯವಸ್ಥೆಗಳು ವಿಫಲವಾಗುತ್ತಿವೆ ಏಕೆಂದರೆ ಅವು ಮನುಷ್ಯರ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿವೆ:
- Semver ರೇಂಜ್ಗಳು ಕೆಟ್ಟ ಪ್ಯಾಚ್ ಅನ್ನು ಮನುಷ್ಯರು ಗಮನಿಸುತ್ತಾರೆ ಎಂದು ಭಾವಿಸುತ್ತವೆ.
- Dependabot ಮನುಷ್ಯರು merge ಕ್ಲಿಕ್ ಮಾಡುವವರೆಗೆ ಕಾಯುತ್ತದೆ.
- ರಿಲೀಸ್ ಕ್ಯಾಡೆನ್ಸ್ಗಳು (Release cadences) ನೈಸರ್ಗಿಕ ರೇಟ್ ಲಿಮಿಟರ್ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ.
ನೀವು ಮನುಷ್ಯರನ್ನು ತೆಗೆದುಹಾಕಿದಾಗ, ಸುರಕ್ಷತಾ ಕಾರ್ಯವಿಧಾನಗಳು ಮಾಯವಾಗುತ್ತವೆ. ಪ್ರಕಟಿಸುವವನು ಬೆಳಗಿನ 3 ಗಂಟೆಗೆ ಹಾನಿಕಾರಕ ಕೋಡ್ ಅನ್ನು ಕಳುಹಿಸಬಹುದು. ಕನ್ಸ್ಯೂಮರ್ ಅದನ್ನು ಬೆಳಗಿನ 3 ಗಂಟೆಗೆ ಆಟೋ-ಡಿಪ್ಲಾಯ್ ಮಾಡಬಹುದು.
ನೀವು ಪ್ರಕಟಿಸುವವರ ಮಾತನ್ನು ನಂಬಲು ಸಾಧ್ಯವಿಲ್ಲ. ಮೇಂಟೈನರ್ "ಈ ರಿಲೀಸ್ ಸುರಕ್ಷಿತವಾಗಿದೆ" ಎಂದು ಹೇಳುವುದು ಕೇವಲ ಸ್ವಯಂ-ವರದಿ (self-report) ಅಷ್ಟೆ. ಒಂದು ವೇಳೆ ಮೇಂಟೈನರ್ನ ಅಕೌಂಟ್ ಹ್ಯಾಕ್ ಆಗಿದ್ದರೆ (compromised), ಅವರು ಅದೇ ಭರವಸೆಯನ್ನು ನೀಡುತ್ತಾರೆ.
ನೀವು ರಿಲೀಸ್ಗಳನ್ನು ಸ್ವತಂತ್ರವಾಗಿ ಪರಿಶೀಲಿಸಬಹುದಾದಂತೆ ಮಾಡಬೇಕು. ಈ ಹಂತಗಳನ್ನು ಬಳಸಿ:
- ಸೆಕ್ಯುರಿಟಿ ಪಾತ್ಗಳಲ್ಲಿ ನಿಖರವಾದ ಪಿನ್ನಿಂಗ್ (exact pinning) ಬಳಸಿ. ಕ್ಯಾರೆಟ್ (caret) ಚಿಹ್ನೆಯನ್ನು ಬಳಸುವುದು ನಿಲ್ಲಿಸಿ. ಅಥೆಂಟಿಕೇಶನ್ ಅಥವಾ ಪೇಮೆಂಟ್ಸ್ಗಳಲ್ಲಿ ವರ್ಷನ್ ಬಂಪ್ (version bump) ಮಾಡುವುದು ಉದ್ದೇಶಪೂರ್ವಕ ಕ್ರಿಯೆಯಾಗಿರಬೇಕು.
- ರಿಪ್ರೊಡ್ಯೂಸಿಬಲ್ ಬಿಲ್ಡ್ಗಳನ್ನು (reproducible builds) ಬಳಸಿ. ರಿಜಿಸ್ಟ್ರಿ ಹ್ಯಾಶ್ ಅನ್ನು ಸೋರ್ಸ್ ಕೋಡ್ ಹ್ಯಾಶ್ನೊಂದಿಗೆ ಹೋಲಿಸಿ. ಕೇವಲ ನಂಬಿಕೆಯ ಮೇಲೆ ಅವಲಂಬಿತರಾಗಬೇಡಿ.
- ಮಷೀನ್-ವೆರಿಫೈಯಬಲ್ ಡಿಫ್ಗಳನ್ನು (machine-verifiable diffs) ಬಳಸಿ. ಟೋಕನ್ ಪಾರ್ಸರ್ಗಳಂತಹ ಸೂಕ್ಷ್ಮ ಫೈಲ್ಗಳನ್ನು ಗುರುತಿಸಿ. ಹೊಸ ವರ್ಷನ್ ಆ ಫೈಲ್ಗಳನ್ನು ಸ್ಪರ್ಶಿಸಿದರೆ, ಅಪ್ಡೇಟ್ ಅನ್ನು ತಡೆಹಿಡಿಯಿರಿ.
- ಸೈನ್ಡ್ ಪ್ರೊವನೆನ್ಸ್ (signed provenance) ಬಳಸಿ. ಏಜೆಂಟ್ನ ಗುರುತನ್ನು ಪರಿಶೀಲಿಸಿ, ಅದು ಹಿಂದಿನ ನಂಬಿಕಾರ್ಹ ರಿಲೀಸ್ಗಳೊಂದಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
ನಾವು "flag ಮಾಡದ ಹೊರತು bump ಮಾಡಿ" ಎಂಬ ಸ್ಥಿತಿಯಿಂದ "verify ಮಾಡದ ಹೊರತು hold ಮಾಡಿ" ಎಂಬ ಸ್ಥಿತಿಗೆ ಬದಲಾಗಬೇಕಾಗಿದೆ.
ಏಜೆಂಟ್ ಎಕಾನಮಿ ಬೆಳೆಯುತ್ತಿದೆ. ಏಜೆಂಟ್ಗಳು ಇತರ ಏಜೆಂಟ್ಗಳಿಗೆ ಪರಿಕರಗಳು ಮತ್ತು ಲೈಬ್ರರಿಗಳನ್ನು ಮಾರಾಟ ಮಾಡುತ್ತಿದ್ದಾರೆ. ಯಾವುದೇ ಅಪ್ಡೇಟ್ ರನ್ ಆಗುವ ಮೊದಲು ಹ್ಯಾಶ್ಗಳು, ಸೂಕ್ಷ್ಮ ಭಾಗಗಳು (sensitive surfaces) ಮತ್ತು ಸಹಿಗಳನ್ನು (signatures) ಯಾಂತ್ರಿಕವಾಗಿ ಪರಿಶೀಲಿಸುವ ಪರಿಕರಗಳು ನಮಗೆ ಬೇಕು.
changelog ಗಳನ್ನು ನಂಬುವುದನ್ನು ನಿಲ್ಲಿಸಿ. ಕೋಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸುವುದನ್ನು ಪ್ರಾರಂಭಿಸಿ.
Source: https://dev.to/colonistone_34/your-auth-librarys-maintainer-is-an-agent-who-never-sleeps-208k
Optional learning community: https://t.me/GyaanSetuAi