ಒಬ್ಬ SaaS ಡೆವಲಪರ್ ತನ್ನ ಖಾತೆಯಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಡೊಮೇನ್ಗೆ Cloudflare ನ Bot Fight Mode ಅನ್ನು ಆನ್ ಮಾಡುವುದರಿಂದ ಒಂದು ತಿಂಗಳ ಕಾಲ API ಟ್ರಾಫಿಕ್ ಸ್ಥಗಿತಗೊಂಡಿತು ಎಂದು ಕಂಡುಕೊಂಡರು, ಇದರಿಂದಾಗಿ ಪಾವತಿಸುವ ಗ್ರಾಹಕರು ತನ್ನ ಉತ್ಪನ್ನದ ಪ್ರಮುಖ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.
ಬಳಕೆಯ ಮೆಟ್ರಿಕ್ಗಳಲ್ಲಿ (usage metrics) ಇದ್ದಕ್ಕಿದ್ದಂತೆ ಕುಸಿತ ಕಂಡುಬಂದಾಗ ಈ ಸಮಸ್ಯೆ ಎದುರಾಯಿತು. ಹೊಸ ಸೈನ್-ಅಪ್ಗಳು ಬರುತ್ತಲೇ ಇದ್ದವು, ಆದರೆ ಸಕ್ರಿಯ ಸೆಷನ್ಗಳು (active sessions) ಬೆಳೆಯುತ್ತಿರಲಿಲ್ಲ. ವಾರಗಟ್ಟಲೆ ಕೋಡ್ ಮರುಬರಹ ಮತ್ತು ಡಿಬಗ್ಗಿಂಗ್ ಮಾಡಿದ ನಂತರ, ಒಂದು ಸಣ್ಣ ಸೆಕ್ಯೂರಿಟಿ ಟೋಗಲ್ (security toggle) ಈ ಸಮಸ್ಯೆಗೆ ಕಾರಣವೆಂದು ತಿಳಿದುಬಂದಿತು: Cloudflare ನ Bot Fight Mode, ಆ SaaS ನ ಸ್ವಂತ AWS Lambda ಎಂಡ್ಪಾಯಿಂಟ್ ಅನ್ನು ದುಷ್ಟ ಬಾಟ್ (malicious bot) ಎಂದು ಗುರುತಿಸಿ ಅದನ್ನು ಬ್ಲಾಕ್ ಮಾಡಿತ್ತು.
ಒಂದು ಸಣ್ಣ ಸೆಟ್ಟಿಂಗ್ ಇಡೀ ಸೇವೆಯನ್ನು ಹೇಗೆ ಹಾಳುಮಾಡಿತು
ಡೆವಲಪರ್ನ ಸ್ಟ್ಯಾಕ್ ಸರ್ವರ್-ಟು-ಸರ್ವರ್ ಕರೆಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿತ್ತು. ಒಂದು ಇಂಟರ್ನಲ್ Lambda ಫಂಕ್ಷನ್ ನಿಯಮಿತವಾಗಿ SaaS ನ ಪಬ್ಲಿಕ್ ಡೊಮೇನ್ಗೆ ಡೇಟಾವನ್ನು ಪೋಸ್ಟ್ ಮಾಡುತ್ತಿತ್ತು, ಇದು ಆಧುನಿಕ micro-service architectures ನಲ್ಲಿ ಸಾಮಾನ್ಯವಾದ ಮಾದರಿಯಾಗಿದೆ. Bot Fight Mode ಸ್ವಯಂಚಾಲಿತ ಸ್ಕ್ರೇಪರ್ಗಳಂತೆ (automated scrapers) ಕಾಣುವ ವಿನಂತಿಗಳನ್ನು (requests) ಸವಾಲು ಮಾಡುತ್ತದೆ ಅಥವಾ ಬ್ಲಾಕ್ ಮಾಡುತ್ತದೆ, ಇದು ಕಂಟೆಂಟ್-ಡ್ರಿವನ್ ಸೈಟ್ಗಳನ್ನು ಡೇಟಾ ಹಾರ್ವೆಸ್ಟಿಂಗ್ನಿಂದ ರಕ್ಷಿಸುತ್ತದೆ.
ಎಲ್ಲಾ ವಲಯಗಳಲ್ಲಿ (zones) ಈ ಮೋಡ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ, Cloudflare ಆ Lambda ನ ಔಟ್ಬೌಂಡ್ ವಿನಂತಿಯನ್ನು ಮತ್ತೊಂದು ಸ್ವಯಂಚಾಲಿತ ಕ್ಲೈಂಟ್ ಎಂದು ಪರಿಗಣಿಸಿತು. ವಿನಂತಿಯು ಅಪ್ಲಿಕೇಶನ್ಗೆ ತಲುಪಲೇ ಇಲ್ಲ, ಮತ್ತು ಬ್ಲಾಕ್ ಆಗಿರುವುದು ಎಡ್ಜ್ (edge) ಮಟ್ಟದಲ್ಲಿ ನಡೆದ ಕಾರಣ, SaaS ನ ಮಾನಿಟರಿಂಗ್ ಪರಿಕರಗಳಿಗೆ ಯಾವುದೇ ದೋಷ (error) ಕಂಡುಬರಲಿಲ್ಲ - ಟ್ರಾಫಿಕ್ ಸುಮ್ಮನೆ ಮಾಯವಾಗಿತ್ತು. ಡೆವಲಪರ್ನ Cloudflare Workers ಮೇಲಿನ CPU ಬಳಕೆ ಹೆಚ್ಚಾಯಿತು, ಇದು ಅವನಿಗೆ ತನ್ನ ಸ್ವಂತ ಬ್ಯಾಕೆಂಡ್ ಬದಲಿಗೆ ಬಾಹ್ಯ ಸ್ಕ್ರೇಪರ್ನ ಮೇಲೆ ಅನುಮಾನ ಬರುವಂತೆ ಮಾಡಿತು.
Cloudflare ನ ಲಾಗ್ಗಳನ್ನು (logs) ಆಳವಾಗಿ ಪರಿಶೀಲಿಸಿದ ನಂತರವೇ, Lambda ನ IP ಶ್ರೇಣಿಗೆ (IP range) ಹೊಂದಿಕೆಯಾಗುವ "Bot Fight Mode" ಬ್ಲಾಕ್ ಎಂಟ್ರಿಗಳನ್ನು ಅವರು ಕಂಡರು. ಅವರು ಬಾಧಿತ ವಲಯಗಳಿಗೆ ಈ ಫೀಚರ್ ಅನ್ನು ಆಫ್ ಮಾಡಿದರು, ತಕ್ಷಣವೇ API ಟ್ರಾಫಿಕ್ ಪುನರಾರಂಭವಾಯಿತು ಮತ್ತು ಬಳಕೆ ಮೆಟ್ರಿಕ್ಗಳು ಮತ್ತೆ ಸಾಮಾನ್ಯ ಸ್ಥಿತಿಗೆ ಬಂದವು.
SaaS ಆಪರೇಟರ್ಗಳಿಗೆ ಈ ತಪ್ಪಿನ ಪ್ರಾಮುಖ್ಯತೆ ಏಕೆ?
- API-ಕೇಂದ್ರಿತ ಉತ್ಪನ್ನಗಳಿಗೆ ಮುಕ್ತ ಸರ್ವರ್-ಟು-ಸರ್v ಚಾನಲ್ಗಳು ಬೇಕು. Bot Fight Mode ಮುಖ್ಯ ಟ್ರಾಫಿಕ್ ಎಂದರೆ HTML, ಚಿತ್ರಗಳು ಅಥವಾ ಸ್ಟ್ಯಾಟಿಕ್ ಅಸೆಟ್ಗಳಿಗಾಗಿ ಮಾನವ-ಬ್ರೌಸರ್ ವಿನಂತಿಗಳು ಎಂದು ಭಾವಿಸುತ್ತದೆ. APIಗಳು, webhooks ಅಥವಾ ಇಂಟರ್ನಲ್ ಕರಲ್ಬ್ಯಾಕ್ಗಳನ್ನು (callbacks) ಬಳಸುವ SaaS ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳು ಅಪ್ಲಿಕೇಶನ್ ಲೇಯರ್ಗೆ ಯಾವುದೇ ದೃಶ್ಯ ದೋಷ ಕೋಡ್ (error code) ತಲುಪದೆಯೇ ನಿರ್ಬಂಧಿತವಾಗಬಹುದು ಅಥವಾ ಬ್ಲಾಕ್ ಆಗಬಹುದು.
- ಜಾಗತಿಕ ಸೆಕ್ಯೂರಿಟಿ ಸೆಟ್ಟಿಂಗ್ಗಳು ಎಲ್ಲಾ ವರ್ಕ್ಲೋಡ್ಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುವುದು ಅಪರೂಪ. ಎಲ್ಲಾ ಡೊಮೇನ್ಗಳಿಗೆ ಒಂದೇ Cloudflare ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಅನ್ವಯಿಸುವುದು ಪ್ರತಿಯೊಂದು ಸೈಟ್ ಅನ್ನು ಒಂದೇ ರೀತಿಯ ಬೆದರಿಕೆ ಮಾದರಿಯನ್ನು (threat model) ಹೊಂದಿರುವಂತೆ ಪರಿಗಣಿಸುತ್ತದೆ. ಕಂಟೆಂಟ್ ಸೈಟ್ಗಳು, ಫೋರಮ್ಗಳು ಮತ್ತು SaaS ಬ್ಯಾಕ್ಎಂಡ್ಗಳು ವಿಭಿನ್ನ ಸೆಕ್ಯೂರಿಟಿ ಅವಶ್ಯಕತೆಗಳನ್ನು ಹೊಂದಿರುತ್ತವೆ.
- ಮೌನ ವೈಫಲ್ಯಗಳು (Silent failures) ಆದಾಯವನ್ನು ಕುಂದಿಸುತ್ತವೆ. ಬ್ಲಾಕ್ ಮಾಡಲಾದ ವಿನಂತಿಗಳು ಅಪ್ಲಿಕೇಶನ್ಗೆ ತಲುಪದ ಕಾರಣ ಡೆವಲಪರ್ನ ಅಲರ್ಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಕಾರ್ಯನಿರ್ವಹಿಸಲಿಲ್ಲ. ಬಳಕೆದಾರರ ಎಂಗೇಜ್ಮೆಂಟ್ ಮೆಟ್ರಿಕ್ಗಳಲ್ಲಿನ ಕುಸಿತ ಮಾತ್ರ ಸಮಸ್ಯೆಯನ್ನು ಸೂಚಿಸಿತು. ಮುನ್ನೆಚ್ಚರಿಕೆಯ ಎಡ್ಜ್-ಮಟ್ಟದ ಲಾಗ್ ಪರಿಶೀಲನೆ ಇಲ್ಲದಿದ್ದರೆ, ಇಂತಹ ಸಮಸ್ಯೆಗಳು ಗಮನಕ್ಕೆ ಬಾರದೆ ಉಳಿಯಬಹುದು.
ಇದೇ ರೀತಿಯ ಪರಿಸ್ಥಿತಿಯನ್ನು ತಪ್ಪಿಸಲು ಡೆವಲಪರ್ಗಳು ಏನು ಮಾಡಬಹುದು
- ಪ್ರತಿಯೊಂದು ವಲಯದ (zone) ಟ್ರಾಫಿಕ್ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಆಡಿಟ್ ಮಾಡಿ. Bot Fight Mode ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೊದಲು, ನಿಮ್ಮ ಡೊಮೇನ್ ನಿರೀಕ್ಷಿಸುವ ವಿನಂತಿಗಳ ಪ್ರಕಾರಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಿ: ಮಾನವ ಬ್ರೌಸರ್ಗಳು, API ಕರೆಗಳು, webhook ಕರಲ್ಬ್ಯಾಕ್ಗಳು ಅಥವಾ ಇಂಟರ್ನಲ್ ಸರ್ವಿಸ್ ಕರೆಗಳು. ಇವುಗಳಲ್ಲಿ ಯಾವುದಾದರೂ ಪ್ರಮುಖ ಕಾರ್ಯಚಟುವಟಿಕೆಗೆ ಅಗತ್ಯವಾಗಿದ್ದರೆ, ಆ ವಲಯವನ್ನು "API-first" ಎಂದು ಪರಿಗಣಿಸಿ ಮತ್ತು ಬಾಟ್-ಮಿಟಿಗೇಶನ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಕನಿಷ್ಠ ಮಟ್ಟದಲ್ಲಿ ಇರಿಸಿ.
- ಸ್ಟೇಜ್ಡ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ನಲ್ಲಿ (staged environment) ಬದಲಾವಣೆಗಳನ್ನು ಪರೀಕ್ಷಿಸಿ. Cloudflare ನಿಮಗೆ ಒಂದು ಸಬ್ಡೊಮೇನ್ ಅಥವಾ ಸ್ಟೇಜಿಂಗ್ ವಲಯಕ್ಕೆ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಅನ್ವಯಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಬದಲಾವಣೆಯನ್ನು ಜಾಗತಿಕವಾಗಿ ಜಾರಿಗೆ ತರುವ ಮೊದಲು ಕಾನೂನುಬದ್ಧ ಆಟೊಮೇಷನ್ ಇನ್ನೂ ಕೆಲಸ ಮಾಡುತ್ತಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
- ನಿಮ್ಮ ಅಬ್ಸರ್ವೇಬಿಲಿಟಿ ಸ್ಟ್ಯಾಕ್ನ (observability stack) ಭಾಗವಾಗಿ ಎಡ್ಜ್-ಮಟ್ಟದ ಲಾಗ್ಗಳನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿ. Cloudflare ನ ಫೈರ್ವಾಲ್ ಮತ್ತು ಬಾಟ್-ಮಿಟಿಗೇಶನ್ ಲಾಗ್ಗಳನ್ನು SIEM, Loki ಅಥವಾ ಯಾವುದೇ ಅಗ್ರಿಗೇಶನ್ ಸೇವೆಗೆ ಸ್ಟ್ರೀಮ್ ಮಾಡಿ. ಮೌನ ವೈಫಲ್ಯಗಳನ್ನು ಬೇಗನೆ ಪತ್ತೆಹಚ್ಚಲು ಅಪ್ಲಿಕೇಶನ್ ಮೆಟ್ರಿಕ್ಗಳಲ್ಲಿನ ಕುಸಿತದೊಂದಿಗೆ ಬ್ಲಾಕ್ ಮಾಡಲಾದ ವಿನಂತಿಗಳ ಏರಿಕೆಯನ್ನು ಹೋಲಿಸಿ ನೋಡಿ.
- ಸೆಕ್ಯೂರಿಟಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಹಿಂಪಡೆಯುವಂತಿರಲಿ (reversible). ದಾಖಲಿತ ರೋಲ್ಬ್ಯಾಕ್ ಯೋಜನೆಯನ್ನು (rollback plan) ಇಟ್ಟುಕೊಳ್ಳಿ. ಹೊಸ ನಿಯಮವು ಅನಿರೀಕ್ಷಿತ ವರ್ತನೆಯನ್ನು ಉಂಟುಮಾಡಿದರೆ, ಕೋಡ್ನಲ್ಲಿ ಪರಿಹಾರಗಳನ್ನು ಹುಡುಕುವ ಮೊದಲು ಅದನ್ನು ಮೊದಲು ಅಸಕ್ರಿಯಗೊಳಿಸಿ ಮತ್ತು ಬದಲಾವಣೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
- ಸರಿಯಾದ ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳಿ. "ಸ್ಕ್ರೇಪರ್ಗಳನ್ನು ನಾನು ಹೇಗೆ ತಡೆಯಬಹುದು?" ಎಂದು ಕೇಳುವ ಬದಲು "ಈ ಸಾಧನವು ನಾನು ನೋಡುತ್ತಿರುವ ನಿರ್ದಿಷ್ಟ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುತ್ತದೆಯೇ?" ಎಂದು ಕೇಳಿ. ಸ್ಕ್ರೇಪರ್ಗಳನ್ನು ಬ್ಲಾಕ್ ಮಾಡುವ ಸೆಕ್ಯೂರಿಟಿ ಫೀಚರ್, ಮುಕ್ತ API ಪ್ರವೇಶದ ಅಗತ್ಯವಿರುವ SaaS ಗೆ ಸೂಕ್ತವಾದ ಉತ್ತರವಾಗಿರುವುದಿಲ್ಲ.
ವಿಶಾಲವಾದ ದೃಷ್ಟಿಕೋನ
ಬಲವಾದ ಕ್ರಾಲರ್ಗಳಿಂದ (crawlers) ಸ್ಟ್ಯಾಟಿಕ್ ಕಂಟೆಂಟ್ ಅನ್ನು ರಕ್ಷಿಸಬೇಕಾದ ಸೈಟ್ಗಳಿಗೆ Bot Fight Mode ಉಪಯುಕ್ತವಾಗಿದೆ. ಆದರೆ, ಇದು ಹಾನಿಕಾರಕ ಸ್ಕ್ರೇಪರ್ ಮತ್ತು ಒಂದೇ ರೀತಿಯ HTTP ಮಾದರಿಗಳನ್ನು ಅನುಸರಿಸುವ ಕಾನೂನುಬದ್ಧ ಸ್ವಯಂಚಾಲಿತ ಕ್ಲೈಂಟ್ ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಗುರುತಿಸಲು ಅಸಮರ್ಥವಾಗಿದೆ.
ಸಾರಾಂಶ
ನೀವು ಒಂದೇ Cloudflare ಖಾತೆಯ ಅಡಿಯಲ್ಲಿ ಹಲವಾರು ಡೊಮೇನ್ಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತಿದ್ದಾಗ, ಪ್ರತಿಯೊಂದನ್ನೂ ವಿಭಿನ್ನ ಸೆಕ್ಯೂರಿಟಿ ವಲಯವಾಗಿ ಪರಿಗಣಿಸಿ. ಟ್ರಾಫಿಕ್ ಸಂಪೂರ್ಣವಾಗಿ ಮಾನವ-ಚಾಲಿತವಾಗಿದ್ದಾಗ ಮಾತ್ರ Bot Fight Mode ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ; API-ಹೆಚ್ಚಿನ SaaS ವರ್ಕ್ಲೋಡ್ಗಳಿಗಾಗಿ, ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಆಫ್ ಮಾಡಿ ಅಥವಾ ಕಸ್ಟಮ್ ಫೈರ್ವಾಲ್ ನಿಯಮಗಳೊಂದಿಗೆ ಅದನ್ನು ಫೈನ್-ಟ್ಯೂನ್ ಮಾಡಿ. ಒಂದು ಕ್ಲಿಕ್ ಸ್ಕ್ರೇಪರ್ ಅನ್ನು ತಡೆಯುವಷ್ಟೇ ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಕಾನೂನುಬದ್ಧ ಟ್ರಾಫಿಕ್ ಅನ್ನು ಮೌನಗೊಳಿಸಬಹುದು.
