ಗೂಢ ಸ್ಕ್ಯಾನರ್ನಲ್ಲಿನ ದೋಷ, ಇದನ್ನು ಕ್ಯಾನರಿಗಳು ಕಂಡುಹಿಡಿಯಲಾಗಲಿಲ್ಲ
ಶಿಪ್ಪಿಂಗ್
ನಾವು ಮಾರಾಟ ಮಾಡುವ ಪ್ರತಿಯೊಂದು ಸಾಫ್ಟ್ವೇರ್ ಕಿಟ್ ಅನ್ನು ಜಿಪ್ ಮಾಡುವ ಮೊದಲು, ನಮ್ಮದೇ ಆದ ಗುಪ್ತ ಮಾಹಿತಿಗಳ ನಿಜವಾದ ಮೌಲ್ಯಗಳಿಗಾಗಿ ಒಂದು ಗೇಟ್ ಅದನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡುತ್ತದೆ. ಪ್ರತಿ ಸ್ಕ್ಯಾನ್ ಕ್ಯಾನರಿಗಳನ್ನು ನೆಡುವುದರೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ, ಪ್ರತಿ ಪ್ರಕಾರದ ಒಂದೊಂದು ಕ್ಯಾನರಿ, ಮತ್ತು ಅವುಗಳೆಲ್ಲವನ್ನೂ ಹಿಡಿಯದ ಹೊರತು ಅದು ಕಾರ್ಯನಿರ್ವಹಿಸಲು ನಿರಾಕರಿಸುತ್ತದೆ. ಅದು ಯಾವಾಗಲೂ ಅವುಗಳನ್ನು ಹಿಡಿಯುತ್ತಿತ್ತು. ಆದರೂ ಅದರಲ್ಲಿ ಒಂದು ಬಗ್ ಇತ್ತು.
ಗೇಟ್ ರಹಸ್ಯಗಳನ್ನು ಹೇಗೆ ಓದುತ್ತದೆ
ಗೇಟ್ ಕೀಗಳ ಆಕಾರ ಇರುವುದನ್ನಷ್ಟೇ ಹುಡುಕುವುದಿಲ್ಲ. ನಮ್ಮ ಗುಪ್ತ ಮಾಹಿತಿ ಇರುವ ಫೈಲ್ಗಳನ್ನು (env ಫೈಲ್ಗಳು, JSON ಕಾನ್ಫಿಗ್ಗಳು, ಕೀ ಫೈಲ್ಗಳು) ಅದು ಓದುತ್ತದೆ, ಹೆಸರು ಗುಪ್ತ ಎಂದು ಸೂಚಿಸುವ ಪ್ರತಿಯೊಂದು ಮೌಲ್ಯವನ್ನು ತೆಗೆದುಕೊಂಡು, ನಾವು ರವಾನಿಸಲಿರುವುದರಲ್ಲಿ ಆ ನಿಖರವಾದ ಮೌಲ್ಯಗಳನ್ನು, ಬರೆಯಲಾದ ರೂಪದಲ್ಲಿ ಮತ್ತು base64-ಎನ್ಕೋಡ್ ಮಾಡಲಾದ ರೂಪದಲ್ಲಿ ಹುಡುಕುತ್ತದೆ.
ಬಗ್
ಈ ರೀತಿಯ ಒಂದು ಲೈನ್ಗಾಗಿ:
DB_PASSWORD='Tr0ub4dor-and-3' # ಮೇ ತಿಂಗಳಲ್ಲಿ ಪರಿಷ್ಕರಿಸಲಾಗಿದೆ
ಓದುಗರು, ಮೌಲ್ಯವು ಕೋಟ್ ಚಿಹ್ನೆಯೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗಿ ಮತ್ತು ಕೊನೆಗೊಂಡಾಗ ಮಾತ್ರ ಸುತ್ತಲಿನ ಕೋಟ್ಗಳನ್ನು ತೆಗೆದುಹಾಕಿದರು. ಮೌಲ್ಯದ ನಂತರ ಟಿಪ್ಪಣಿ ಇದ್ದಾಗ, ಸಾಲು ಅಕ್ಷರದೊಂದಿಗೆ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ, ಆದ್ದರಿಂದ ಕೋಟ್ಗಳು ಉಳಿದುಕೊಂಡವು. ಟಿಪ್ಪಣಿಯನ್ನು ನಂತರ ಕಡಿತಗೊಳಿಸಲಾಯಿತು, ಮತ್ತು ಗೇಟ್ ಕೋಟ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ 'Tr0ub4dor-and-3' ಅನ್ನು ಹುಡುಕಲು ಮುಂದುವರಿಯಿತು. ಆ ಕೋಟ್ಗಳಿಲ್ಲದ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಒಳಗೊಂಡಿರುವ ಸಾಫ್ಟ್ವೇರ್ ಕಿಟ್ ಪಾಸ್ ಆಗಿರುತ್ತಿತ್ತು.
ಕೆನರಿಗಳು ಏಕೆ ಎಂದಿಗೂ ಗಮನಿಸಲಿಲ್ಲ
ಒಂದು ಕ್ಯಾನರಿ ಒಂದು ನೆಟ್ ಅನ್ನು ಪರೀಕ್ಷಿಸುತ್ತದೆ: ಸ್ಕ್ಯಾನರ್ ಈಗಾಗಲೇ ತಿಳಿದಿರುವ ಒಂದು ಮೌಲ್ಯವನ್ನು ಇರಿಸಿ, ಅದು ಕಂಡುಹಿಡಿಯಲ್ಪಟ್ಟಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ. ನಮ್ಮ ಕ್ಯಾನರಿ ಮೌಲ್ಯಗಳನ್ನು ನೇರವಾಗಿ ಸ್ಕ್ಯಾನರ್ಗೆ ನೀಡಲಾಗಿತ್ತು, ಆದ್ದರಿಂದ ಅವು ಎಂದಿಗೂ ಕಾನ್ಫಿಗ್ ಸಾಲನ್ನು ಓದುವ ಕೋಡ್ ಮೂಲಕ ಹಾದುಹೋಗಲಿಲ್ಲ. ಪ್ರತಿ ನೆಟ್ ಪರೀಕ್ಷಿಸಲ್ಪಟ್ಟಿತು, ಆದರೆ ಅವುಗಳ ಮುಂದಿನ ಪಾರ್ಸರ್ ಪರೀಕ್ಷಿಸಲ್ಪಟ್ಟಿರಲಿಲ್ಲ.
ನಾವು ಅದನ್ನು ಹೇಗೆ ಕಂಡುಹಿಡಿದೆವು
ನಾವು ಗೇಟ್ ಅನ್ನು ಸ್ವತಂತ್ರ ಉತ್ಪನ್ನವಾಗಿ ಪರಿವರ್ತಿಸುತ್ತಿದ್ದೆವು ಮತ್ತು ಜನರು ನಿಜವಾಗಿಯೂ ಬರೆಯುವ ರೂಪಗಳಲ್ಲಿ ಕಾನ್ಫಿಗ್ ಫೈಲ್ ಅನ್ನು ಒದಗಿಸುವ ಟೆಸ್ಟ್ ಅನ್ನು ಬರೆದಿದ್ದೆವು: export, ಕೋಟ್ಸ್, ಟ್ರೇಲಿಂಗ್ ಕಾಮೆಂಟ್ಸ್. ಕಾಮೆಂಟ್ ಇರುವ ಕೋಟ್ ಮಾಡಿದ ಸಾಲಿನಲ್ಲಿ ಟೆಸ್ಟ್ ವಿಫಲವಾಯಿತು. ಪರಿಹಾರವು ಕೋಟ್ ಮಾಡಿದ ಮೌಲ್ಯವನ್ನು ಅದರ ಮುಚ್ಚುವ ಕೋಟ್ವರೆಗೆ ಓದುತ್ತದೆ ಮತ್ತು ನಂತರ ಬರುವ ಎಲ್ಲವನ್ನೂ ನಿರ್ಲಕ್ಷಿಸುತ್ತದೆ.
ಅದರಿಂದ ಏನಾದರೂ ಬದಲಾಗುತ್ತದೆಯೇ?
ಬದಲಾವಣೆ ಮಾಡುವ ಮೊದಲು ನಾವು ಪರಿಶೀಲಿಸಿದ್ದೇವೆ. ನಮ್ಮ ಬಿಲ್ಡ್ ಮಷಿನ್ನಲ್ಲಿ ಗೇಟ್ ನೀಡಲಾದ 59 ಫೈಲ್ಗಳಿಂದ 133 ಗುಪ್ತ ಮೌಲ್ಯಗಳನ್ನು ಓದುತ್ತದೆ ಮತ್ತು ಎರಡನೇ ಮಷಿನ್ನಲ್ಲಿ 499; ಯಾವುದಕ್ಕೂ ಆ ಆಕಾರ ಇರಲಿಲ್ಲ. ಹಿಂದಿನ ಯಾವುದೇ ತೀರ್ಪು ಬದಲಾಗುವುದಿಲ್ಲ: ನಾವು ಬಿಡುಗಡೆ ಮಾಡಿರುವ ಪ್ರತಿಯೊಂದು ಸಾಫ್ಟ್ವೇರ್ ಕಿಟ್ ಅನ್ನು ಈಗ ಸ್ಕ್ಯಾನ್ ಮಾಡಲಾಗುವ ಅದೇ ಮೌಲ್ಯಗಳಿಗಾಗಿ ಸ್ಕ್ಯಾನ್ ಮಾಡಲಾಗಿತ್ತು. ಎಲ್ಲಾ ಮೂರು ಮಷಿನ್ಗಳಲ್ಲಿ ಗೇಟ್ ಅನ್ನು ನಾವು ದುರಸ್ತಿ ಮಾಡಿದ್ದೇವೆ.
ಮುಖ್ಯ ಅಂಶ
ಒಂದು ಸ್ಕ್ಯಾನರ್ ತಾನು ಹುಡುಕುವುದನ್ನು ಹೊರತೆಗೆದರೆ, ನಕಲಿ ಮೌಲ್ಯಗಳೊಂದಿಗೆ ಹುಡುಕಾಟವನ್ನು ಮಾತ್ರವಲ್ಲ, ನೈಜ ಇನ್ಪುಟ್ಗಳೊಂದಿಗೆ ಹೊರತೆಗೆಯುವಿಕೆಯನ್ನು ಪರೀಕ್ಷಿಸಿ. ಒಂದು ಕ್ಯಾನರಿ ಜಾಲರಿಯು ಕೆಲಸ ಮಾಡುತ್ತದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸುತ್ತದೆ; ಆದರೆ ಸರಿಯಾದ ಮೀನುಗಳು ಅದನ್ನು ತಲುಪುತ್ತವೆಯೇ ಎಂಬುದರ ಬಗ್ಗೆ ಅದು ಏನನ್ನೂ ಹೇಳುವುದಿಲ್ಲ. Secret Gate ನ ಪರೀಕ್ಷೆಗಳು ಈಗ ಎರಡನ್ನೂ ಒಳಗೊಂಡಿವೆ, ಮತ್ತು ಅದರ ಬಿಡುಗಡೆಗೆ ಮುನ್ನ ನಮ್ಮ ಬಿಲ್ಡ್ ಗೇಟ್ ಓದುವ 133 ಮೌಲ್ಯಗಳನ್ನೇ ಅದು ನಿಖರವಾಗಿ ಓದುತ್ತದೆ ಎಂದು ನಾವು ಪರಿಶೀಲಿಸಿದ್ದೆವು.