Bun Lockfiles ಮತ್ತು ನಿಮ್ಮ ಸಪ್ಲೈ ಚೈನ್ ಸೆಕ್ಯೂರಿಟಿ
ಬೈನರಿ ಲಾಕ್ಫೈಲ್ಗಳು ಒಂದು ಸೆಕ್ಯೂರಿಟಿ ಟ್ಯಾಕ್ಸ್—ಇದನ್ನು ನೀವು ನಂತರ ಬಡ್ಡಿಯೊಂದಿಗೆ ಪಾವತಿಸಬೇಕಾಗುತ್ತದೆ.
Bun ಮೊದಲು ಅವಲಂಬನೆಗಳನ್ನು (dependencies) bun.lockb ಎಂಬ ಬೈನರಿ ಫೈಲ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸುತ್ತಿತ್ತು. ಇದು ವೇಗವಾಗಿತ್ತು ಮತ್ತು ಚಿಕ್ಕದಾಗಿತ್ತು, ಆದರೆ ನೀವು ಅದನ್ನು ಓದಲು ಸಾಧ್ಯವಿರಲಿಲ್ಲ. ನೀವು ಪಲ್ ರಿಕವೆಸ್ಟ್ನಲ್ಲಿ (pull request) ಅದರ ವ್ಯತ್ಯಾಸಗಳನ್ನು (diff) ನೋಡಲು ಅಥವಾ ಏನಾಗ ಬದಲಾಗಿದೆ ಎಂದು ತಿಳಿಯಲು ಸಾಧ್ಯವಿರಲಿಲ್ಲ.
ನೀವು ಅವಲಂಬನೆಯ ಬದಲಾವಣೆಯನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದಾಗ, ನಿಮ್ಮ ಬಳಿ ಯಾವುದೇ ನೀತಿ (policy) ಇರುವುದಿಲ್ಲ—ಕೇವಲ ಒಂದು ಅಂದಾಜು ಮಾತ್ರ ಇರುತ್ತದೆ.
Bun v1.2 ತನ್ನ ಡಿಫಾಲ್ಟ್ ಅನ್ನು ಪಠ್ಯ ಆಧಾರಿತ (text-based) bun.lock ಗೆ ಬದಲಾಯಿಸುತ್ತದೆ. ಇದುವೊಂದೇ ಭದ್ರತೆಯ ದೃಷ್ಟಿಯಿಂದ ದೊಡ್ಡ ಗೆಲುವು.
ಪಠ್ಯ ಆಧಾರಿತ (text-based) ಲಾಕ್ಫೈಲ್ಗಳು ಏಕೆ ಮುಖ್ಯ
- ಅರ್ಥಪೂರ್ಣ ವ್ಯತ್ಯಾಸಗಳು (Meaningful diffs) – ಯಾವ ಪ್ಯಾಕೇಜ್ಗಳು ಬದಲಾಗಿವೆ ಅಥವಾ ಸ್ಥಳಾಂತರಗೊಂಡಿವೆ ಎಂಬುದನ್ನು ಪರಿಶೀಲಕರು (reviewers) ನಿಖರವಾಗಿ ನೋಡಬಹುದು.
- ಸುಲಭವಾದ ನೀತಿ ತಪಾಸಣೆಗಳು (Easy policy checks) – CI ನಿಷೇಧಿತ ಮಾದರಿಗಳು (banned patterns) ಅಥವಾ ನಂಬಲಸಾಧ್ಯವಾದ ರಿಜಿಸ್ಟ್ರರಿಗಳಿಗಾಗಿ (untrusted registries) ಸ್ಕ್ಯಾನ್ ಮಾಡಬಹುದು.
- ವೇಗವಾದ ಫೊರೆನ್ಸಿಕ್ಸ್ (Faster forensics) –
git logಯಾವ ಕಮಿಟ್ (commit) ಮೂಲಕ ದುರುದ್ದೇಶಪೂರಿತ ಪ್ಯಾಕೇಜ್ (malicious package) ಬಂದಿದೆ ಎಂಬುದನ್ನು ನಿಖರವಾಗಿ ತೋರಿಸುತ್ತದೆ.
ಲಾಕ್ಫೈಲ್ ಸಮಗ್ರತೆ (integrity) ಮತ್ತು ಪುನರಾವರ್ತನೆಯನ್ನು (reproducibility) ಖಾತರಿಪಡಿಸುತ್ತದೆ, ಆದರೆ ಇದು ಎಲ್ಲಾ ಸಮಸ್ಯೆಗಳಿಗೂ ಪರಿಹಾರವಲ್ಲ (silver bullet). ಕಾನೂನುಬದ್ಧವಾಗಿ ಪ್ರಕಟಿಸಲಾದ ದುರುದ್ದೇಶಪೂರಿತ ಆವೃತ್ತಿಯನ್ನು ಅಥವಾ ಭ್ರಷ್ಟಗೊಂಡ ನಿರ್ವಾಹಕನನ್ನು (compromised maintainer) ಇದು ತಡೆಯಲಾರದು.
ಪಠ್ಯ ಆಧಾರಿತ ಲಾಕ್ಫೈಲ್ ನೀಡುವ ದೊಡ್ಡ ಅನುಕೂಲವೆಂದರೆ ದೃಶ್ಯತೆ (visibility). ದೃಶ್ಯತೆಯೇ ನಿಮ್ಮ ರಕ್ಷಣೆಯ ಮೊದಲ ಸಾಲು.
ನಿಮ್ಮ Bun ವರ್ಕ್ಫ್ಲೋವನ್ನು (workflow) ಹೇಗೆ ಸುರಕ್ಷಿತಗೊಳಿಸುವುದು
- CI ಯಲ್ಲಿ
bun install --frozen-lockfileಅನ್ನು ರನ್ ಮಾಡಿ. ಲಾಕ್ಫೈಲ್ ಅಪ್ಡೇಟ್ ಆಗಬೇಕಿದ್ದರೆ ಬಿಲ್ಡ್ ಫೇಲ್ ಆಗುತ್ತದೆ. - CI ಯಲ್ಲಿ
bun install --lockfile-onlyಅನ್ನು ರನ್ ಮಾಡಿ. ಇದು ಭಾರೀ ಇನ್ಸ್ಟಾಲ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಚಲಾಯಿಸದೆ ರೆಸಲ್ಯೂಶನ್ ಅನ್ನು ವ್ಯಾಲಿಡೇಟ್ ಮಾಡುತ್ತದೆ. - ಯಾವುದೇ bun.lockb ಫೈಲ್ಗಳನ್ನು ತಕ್ಷಣವೇ bun.lock ಗೆ ಮೈಗ್ರೇಟ್ ಮಾಡಿ.
- ಲಾಕ್ಫೈಲ್ ಬದಲಾವಣೆಗಳಿಗೆ ಮಾನವ ಪರಿಶೀಲನೆಯನ್ನು (human review) ಕಡ್ಡಾಯಗೊಳಿಸಿ. ಪ್ರತಿಯೊಂದು ಅವಲಂಬನೆಯ ಅಪ್ಡೇಟ್ ಅನ್ನು ಸರಿಯಾದ ವ್ಯಕ್ತಿಗಳು ನೋಡುವಂತೆ ಮಾಡಲು
CODEOWNERSಗೆ ಸೂಕ್ತ ಮಾಲೀಕರನ್ನು (owners) ಸೇರಿಸಿ.
ಪರಿಕರವನ್ನು (tool) ಕುರುಡಾಗಿ ನಂಬುವುದನ್ನು ನಿಲ್ಲಿಸಿ. ಬದಲಾಗಿ ಪ್ರತಿಯೊಂದು ಬದಲಾವಣೆಯನ್ನು ಪರಿಶೀಲಿಸಿ.
