ಜನರು "audit" (ಲೆಕ್ಕಪರಿಶೋಧನೆ) ಎಂಬ ಪದವನ್ನು ಕೇಳಿದಾಗ, ಸಾಮಾನ್ಯವಾಗಿ ಅಕೌಂಟೆಂಟ್ಗಳು, ಸ್ಪ್ರೆಡ್ಶೀಟ್ಗಳು ಮತ್ತು ತೆರಿಗೆ ಕಾಲವನ್ನು ನೆನಪಿಸಿಕೊಳ್ಳುತ್ತಾರೆ. ಸಾಫ್ಟ್ವೇರ್ನಲ್ಲಿ, ಆಡಿಟಿಂಗ್ ಎಂಬುದು ಸಂಪೂರ್ಣವಾಗಿ ವಿಭಿನ್ನವಾದ ವಿಷಯವಾಗಿದೆ. ಇದು ಲೆಡ್ಜರ್ಗಳನ್ನು ಸಮತೋಲನಗೊಳಿಸುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿ ನಿಮ್ಮ ಕೋಡ್, ನಿಮ್ಮ ಡೇಟಾ ಮತ್ತು ನಿಮ್ಮ ನಿಯಂತ್ರಣಗಳ ಬಗ್ಗೆ ಕಠಿಣ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳುವುದರ ಬಗ್ಗೆ ಇರುತ್ತದೆ. ಸಿಸ್ಟಮ್ಸ್ ಆಡಿಟ್ (systems audit) ನಿಮ್ಮ ಮಾಹಿತಿ ಆಸ್ತಿಗಳು ಸುರಕ್ಷಿತವಾಗಿವೆಯೇ, ನಿಮ್ಮ ಡೇಟಾ ನಿಖರವಾಗಿವೆಯೇ ಮತ್ತು ನಿಮ್ಮ ಸಂಪನ್ಮೂಲಗಳು ನೀವು ಭಾವಿಸಿದಂತೆಯೇ ಕೆಲಸ ಮಾಡುತ್ತಿವೆಯೇ ಎಂಬುದನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುತ್ತದೆ.
ಒಂದು ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಸಿಸ್ಟಮ್ ಮತ್ತು ನಂಬಲರ್ಹವಾದ ಸಿಸ್ಟಮ್ ಒಂದೇ ಆಗಿರಲಾರವು. ಒಂದು ಶೈಕ್ಷಣಿಕ ದಾಖಲೆಗಳ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ವಿದ್ಯಾರ್ಥಿಗಳನ್ನು ಸರಿಯಾಗಿ ನೋಂದಾಯಿಸಬಹುದು ಮತ್ತು ಸ್ಪಷ್ಟವಾದ ಟ್ರಾನ್ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ತಯಾರಿಸಬಹುದು, ಆದರೆ ಅಷ್ಟೇ ಸಮಯದಲ್ಲಿ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ಪ್ಲೇನ್ ಟೆಕ್ಸ್ಟ್ನಲ್ಲಿ (plain text) ಗುಟ್ಟಾಗಿ ಸಂಗ್ರಹಿಸಿರಬಹುದು. ಒಂದು ಲಾಜಿಸ್ಟಿಕ್ಸ್ ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಪರಿಪೂರ್ಣ ವಿತರಣಾ ಸಮಯವನ್ನು ತೋರಿಸಬಹುದು, ಆದರೆ ಸಾರ್ವಜನಿಕವಾಗಿ ಓದಬಹುದಾದ ಸೋರ್ಸ್ ಕೋಡ್ನಲ್ಲಿ ತನ್ನ ಡೇಟಾಬೇಸ್ ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳನ್ನು (database credentials) ಬಹಿರಂಗಪಡಿಸಿರಬಹುದು. ಆ ಅಂತರವನ್ನು ಮುಚ್ಚಲು ಸಿಸ್ಟಮ್ಸ್ ಆಡಿಟಿಂಗ್ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ.
ಸಿಸ್ಟಮ್ಸ್ ಆಡಿಟ್ ವಾಸ್ತವವಾಗಿ ಏನನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ
ಇದರ ಮೂಲತಃ, ಸಿಸ್ಟಮ್ಸ್ ಆಡಿಟ್ ಮೂರು ವಿಷಯಗಳನ್ನು ನೋಡುತ್ತದೆ: ಗೌಪ್ಯತೆ (confidentiality), ಸಮಗ್ರತೆ (integrity) ಮತ್ತು ದಕ್ಷತೆ (efficiency). ಗೌಪ್ಯತೆ ಎಂದರೆ ನಿಮ್ಮ ವಿದ್ಯಾರ್ಥಿಗಳ ದಾಖಲೆಗಳು, ವಹಿವಾಟಿನ ಲಾಗ್ಗಳು ಅಥವಾ ರೋಗಿಗಳ ಫೈಲ್ಗಳು ಸರಿಯಾದ ಜನರಿಗೆ ಮಾತ್ರ ಲಭ್ಯವಿರಬೇಕು ಎಂದರ್ಥ. ಸಮಗ್ರತೆ ಎಂದರೆ ಡೇಟಾ ಕಾಲಾನಂತರದಲ್ಲಿ ತನ್ನಷ್ಟಕ್ಕೆ ತಾನೇ ಹಾಳಾಗಬಾರದು, ಅದರ ಮೂಲವನ್ನು ಕಳೆದುಕೊಳ್ಳಬಾರದು ಅಥವಾ ವಾಸ್ತವದಿಂದ ದೂರ ಸರಿಯಬಾರದು ಎಂದರ್ಥ. ದಕ್ಷತೆ ಎಂದರೆ ನಿಮ್ಮ ಸರ್ವರ್ಗಳು, ಸೇವೆಗಳು ಮತ್ತು ಪ್ರಕ್ರಿಯೆಗಳು ಕೇವಲ ಸಂಪನ್ಮೂಲಗಳನ್ನು ವ್ಯರ್ಥ ಮಾಡದೆ ಮೌಲ್ಯವನ್ನು ನೀಡಬೇಕು ಎಂದರ್ಥ.
ಈ ಮೂರು ಗುಣಲಕ್ಷಣಗಳು ಪರಿಶೀಲಿಸಬಹುದಾದಂತಿರಬೇಕು. ನಿಮ್ಮ ಡೇಟಾಬೇಸ್ ಇದುವರೆಗೆ ಕ್ರ್ಯಾಶ್ ಆಗಿಲ್ಲ ಎಂಬ ಕಾರಣಕ್ಕೆ ಅದನ್ನು ನಂಬುವುದು ಪರಿಶೀಲನೆಯಲ್ಲ. ಒಬ್ಬ ನಿಯಂತ್ರಕ (regulator), ಗ್ರಾಹಕ ಅಥವಾ ನಿಮ್ಮ ಭವಿಷ್ಯದ ನೀವೇ "ಸಿಸ್ಟಮ್ ಸರಿಯಾಗಿದೆ ಎಂದು ನಿಮಗೆ ಹೇಗೆ ಗೊತ್ತು?" ಎಂದು ಕೇಳಿದಾಗ ನೀವು ತೋರಿಸಬಹುದಾದ ಪುರಾವೆಗಳನ್ನು ಒಂದು ನೈಜ ಆಡಿಟ್ ನೀಡುತ್ತದೆ.
ಸಿಸ್ಟಮ್ಸ್ ಆಡಿಟ್ಗಳ ಮುಖ್ಯ ವಿಧಗಳು
ಪ್ರತಿಯೊಂದು ಆಡಿಟ್ ಒಂದೇ ವಿಷಯವನ್ನು ನೋಡುವುದಿಲ್ಲ. ನೀವು ಎದುರಿಸುವ ಅಪಾಯಗಳ ಆಧಾರದ ಮೇಲೆ, ನಿಮಗೆ ಈ ಕೆಳಗಿನವುಗಳಲ್ಲಿ ಒಂದක් ಅಥವಾ ಹೆಚ್ಚಿನವುಗಳ ಅಗತ್ಯವಿರಬಹುದು:
ಅಪ್ಲಿಕೇಶನ್ ಆಡಿಟ್ (Application Audit). ಇದು ಸಾಫ್ಟ್ವೇರ್ ಲಾಜಿಕ್ ಸರಿಯಾಗಿದೆಯೇ ಎಂದು ನೋಡುತ್ತದೆ. ಲೆಕ್ಕಾಚಾರಗಳು ನಿಖರವಾಗಿದೆಯೇ? ಸ್ಟೇಟ್ ಮೆಷೀನ್ಗಳು (state machines) ಎಡ್ಜ್ ಕೇಸ್ಗಳನ್ನು (edge cases) ನಿರ್ವಹಿಸುತ್ತವೆಯೇ? ಸೂಕ್ಷ್ಮ ಡೇಟಾವನ್ನು ಬಳಸುವ ಪ್ರತಿಯೊಂದು ಫಂಕ್ಷನ್ನಲ್ಲಿ ಅಧಿಕಾರೀಕರಣವನ್ನು (authorization) ಜಾರಿಗೆ ತರಲಾಗಿದೆಯೇ? ಅಪ್ಲಿಕೇಶನ್ ಮಟ್ಟದ ವಿಫಲತೆಗೆ ಒಂದು ಉದಾಹರಣೆಯೆಂದರೆ, ದಶಮಾಂಶಗಳನ್ನು ತಪ್ಪಾಗಿ ರೌಂಡ್ ಮಾಡುವ ಗ್ರೇಡಿಂಗ್ ಮಾಡ್ಯೂಲ್ ಅಥವಾ ಡ್ರಾಪ್ಡೌನ್ ಮೌಲ್ಯವನ್ನು ಬದಲಾಯಿಸುವ ಮೂಲಕ ಬೈಪಾಸ್ ಮಾಡಬಹುದಾದ ಸ್ಕಾಲರ್ಶಿಪ್ ಅರ್ಹತಾ ಪರಿಶೀಲನೆ.
ಸೆಕ್ಯೂರಿಟಿ ಆಡಿಟ್ (Security Audit). ಇದು ಅಕ್ಸೆಸ್ ಕಂಟ್ರೋಲ್ಸ್, ಎನ್ಕ್ರಿಪ್ಶನ್ ಮತ್ತು ದೋಷಗಳ (vulnerabilities) ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ. ಯಾವ ದಾಖಲೆಗಳನ್ನು ಯಾರು ಓದಬಹುದು, ಡೇಟಾ ವರ್ಗಾವಣೆಯ ಸಮಯದಲ್ಲಿ ಮತ್ತು ಸಂಗ್ರಹಣೆಯ ಸಮಯದಲ್ಲಿ ಎನ್ಕ್ರಿಪ್ಟ್ ಆಗಿದೆಯೇ ಮತ್ತು ನಿಮ್ಮ ಸೆಷನ್ ಮ್ಯಾನೇಜ್ಮೆಂಟ್ ತಿದ್ದುಪಡಿಗಳಿಗೆ (tampering) ಒಳಗಾಗದಂತೆ ತಡೆಯಬಲ್ಲದೇ ಎಂದು ಇದು ಕೇಳುತ್ತದೆ. ನಿಮ್ಮ ಡಿಪೆಂಡೆನ್ಸಿಗಳು (dependencies) ನಿಮಗೆ ಅಪಾಯ ತರುವಂತಹ 알려진 (known) ದೋಷಗಳನ್ನು ಹೊಂದಿವೆಯೇ ಎಂಬುದನ್ನು ಸಹ ಇದು ಪರಿಶೀಲಿಸುತ್ತದೆ.
ಡೇಟಾಬೇಸ್ ಆಡಿಟ್ (Database Audit). ಡೇಟಾ ಸಮಗ್ರತೆಯು ಇಲ್ಲಿರುತ್ತದೆ. ರೆಫರೆನ್ಶಿಯಲ್ ಕನ್ಸ್ಟ್ರೇಂಟ್ಗಳನ್ನು (referential constraints) ಜಾರಿಗೆ ತರಲಾಗಿದೆಯೇ? ಬ್ಯಾಕಪ್ಗಳನ್ನು ನಿಜವಾಗಿಯೂ ಮರುಸ್ಥಾಪಿಸಲು (restore) ಸಾಧ್ಯವೇ ಅಥವಾ ನೀವು ಕೇವಲ ಅವುಗಳನ್ನು ಶೆಡ್ಯೂಲ್ ಮಾಡಿದ್ದೀರಾ? ರಿಟೆನ್ಷನ್ ಪಾಲಿಸಿಗಳು ಕಾನೂನು ಅವಶ್ಯಕತೆಗಳಿಗೆ ಅನುಗುಣವಾಗಿವೆಯೇ? ಡೇಟಾಬೇಸ್ ಆಡಿಟ್ ರಿಕವರಿ ಪ್ಲಾನ್ಗಳನ್ನು ಸಹ ಪರಿಶೀಲಿಸುತ್ತದೆ, ಏಕೆಂದರೆ ನೀವು ಎಂದಿಗೂ ಪರೀಕ್ಷಿಸದ ಬ್ಯಾಕಪ್ ಕೇವಲ ಒಂದು ಸಿದ್ಧಾಂತವಷ್ಟೇ.
ನೆಟ್ವರ್ಕ್ ಆಡಿಟ್ (Network Audit). ಇದು ಸರ್ವರ್ಗಳು, ಫೈರ್ವಾಲ್ಗಳು, ರೂಟಿಂಗ್ ಮತ್ತು ಲಭ್ಯತೆಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಅಗತ್ಯವಿರುವ ಪೋರ್ಟ್ಗಳು ಮಾತ್ರ ತೆರೆದಿವೆ, ಫೈರ್ವಾಲ್ ನಿಯಮಗಳನ್ನು ದಾಖಲಿಸಲಾಗಿದೆ ಮತ್ತು ನಿಮ್ಮ ಇನ್ಫ್ರಾಸ್ಟ್ರಕ್ಚರ್ ಟ್ರಾಫಿಕ್ ಏರಿಕೆ ಅಥವಾ denial-of-service ಘಟನೆಗಳನ್ನು ನಿಭಾಯಿಸಬಲ್ಲದು ಎಂಬುದನ್ನು ಇದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಇದು ಕೇವಲ ಅಪ್ಲಿಕೇಶನ್ ಲೇಯರ್ ಮಾತ್ರವಲ್ಲದೆ, ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ಗಳು ಪ್ಯಾಚ್ ಆಗಿವೆಯೇ ಎಂಬುದನ್ನು ಸಹ ಪರಿಶೀಲಿಸುತ್ತದೆ.
ಕಂಪಲಯನ್ಸ್ ಆಡಿಟ್ (Compliance Audit). ಇದು ಬಾಹ್ಯ ನಿಯಮಗಳ ಆಧಾರದ ಮೇಲೆ ಸಿಸ್ಟಮ್ ಅನ್ನು ಅಳೆಯುತ್ತದೆ. ಶೈಕ್ಷಣಿಕ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳು FERPA ನಿಯಮಗಳನ್ನು ಪಾಲಿಸಬೇಕಾಗಬಹುದು. ಆರೋಗ್ಯ ರಕ್ಷಣಾ ವ್ಯವಸ್ಥೆಗಳು HIPAA ಅನ್ನು ಪೂರೈಸಬೇಕು. ಪೇಮೆಂಟ್ ಪ್ರೊಸೆಸಿಂಗ್ಗೆ PCI-DSS ಹೊಂದಾಣಿಕೆಯ ಅಗತ್ಯವಿದೆ. ಕಂಪ್ಲೈಯನ್ಸ್ ಎಂದರೆ ಕೇವಲ ಸುರಕ್ಷಿತವಾಗಿರುವುದು ಮಾತ್ರವಲ್ಲ; ಬಾಹ್ಯ ಅಧಿಕಾರಿಗೆ ಆ ಸುರಕ್ಷತೆಯನ್ನು ಪ್ರದರ್ಶಿಸುವುದು ಕೂಡ ಆಗಿದೆ.
ಆಪರೇಷನಲ್ ಆಡಿಟ್ (Operational Audit). ಕೋಡ್ ಕೇವಲ ಅರ್ಧದ ಕಥೆ ಮಾತ್ರ. ಈ ಆಡಿಟ್ ನಿರ್ವಹಣಾ ಪ್ರಕ್ರಿಯೆಗಳು, ಸಪೋರ್ಟ್ ವರ್ಕ್ಫ್ಲೋಗಳು, ಚೇಂಜ್ ಮ್ಯಾನೇಜ್ಮೆಂಟ್ ಮತ್ತು ಡಾಕ್ಯುಮೆಂಟೇಶನ್ನ ನವೀಕೃತ ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಅದರ ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ಪೈಪ್ಲೈನ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಏಕೈಕ ವ್ಯಕ್ತಿ ಸಂಸ್ಥೆಯನ್ನು ಬಿಟ್ಟು ಹೋದಾಗ, ಒಂದು ಅದ್ಭುತವಾದ ಅಪ್ಲಿಕೇಶನ್ ಹೊರೆಯಾಗಿ ಪರಿಣಮಿಸುತ್ತದೆ.
ಒಂದು ನೈಜ ಉದಾಹರಣೆ: EduManage v1.0 ಅನ್ನು ಆಡಿಟ್ ಮಾಡುವುದು
ನಾನು ಇತ್ತೀಚೆಗೆ ಶೈಕ್ಷಣಿಕ ನಿರ್ವಹಣಾ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಆದ EduManage v1.0 ಮೇಲೆ ಆಂತರಿಕ ಸೆಕ್ಯೂರಿಟಿ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ ಆಡಿಟ್ ನಡೆಸಿದೆ. ಈ ಸಿಸ್ಟಮ್ ನೋಂದಣಿ, ದಾಖಲೆಗಳು ಮತ್ತು ಗ್ರೇಡಿಂಗ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತಿತ್ತು. ಇದು ನಿಜವಾದ ವಿದ್ಯಾರ್ಥಿಗಳ ಡೇಟಾವನ್ನು ಬಳಸುವ ಮೊದಲೇ, ಇದನ್ನು ನಂಬಬಹುದೇ ಎಂದು ನಮಗೆ ತಿಳಿಯಬೇಕಿತ್ತು. ನಾನು ಸರಳವಾದ ಆರು ಹಂತಗಳ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಅನುಸರಿಸಿದೆ ಮತ್ತು ಹೆಚ್ಚಿನ ಆಂತರಿಕ ಆಡಿಟ್ಗಳಿಗಾಗಿ ಇದೇ ರಚನೆಯನ್ನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇನೆ.
ವ್ಯಾಪ್ತಿಯನ್ನು ಯೋಜಿಸಿ. ಮಿತಿಗಳಿಲ್ಲದ ಆಡಿಟ್ಗಳು ಅಂತ್ಯವಿಲ್ಲದ ಕಷ್ಟಕರ ಕೆಲಸಗಳಾಗಿ ಬದಲಾಗುತ್ತವೆ. ಯಾವ ಮಾಡ್ಯೂಲ್ಗಳು ವ್ಯಾಪ್ತಿಯಲ್ಲಿದ್ದವು ಎಂಬುದನ್ನು ನಾವು ನಿಖರವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಿದೆವು: ಅಥೆಂಟಿಕೇಶನ್, ರೆಕಾರ್ಡ್ ಮ್ಯಾನೇಜ್ಮೆಂಟ್ ಮತ್ತು ಕೋರ್ ಎನ್ರೋಲ್ಮೆಂಟ್ ವರ್ಕ್ಫ್ಲೋಗಳು. ಥರ್ಡ್-ಪಾರ್ಟಿ ಇಂಟಿಗ್ರೇಷನ್ಗಳು ಮತ್ತು ಭೌತಿಕ ಮೂಲಸೌಕರ್ಯಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ವ್ಯಾಪ್ತಿಯಿಂದ ಹೊರಗಿಡಲಾಗಿತ್ತು. ನಾವು ಎರಡು ವಾರಗಳನ್ನು ಮೀಸಲಿಟ್ಟೆವು ಮತ್ತು ಪ್ರಶ್ನೆಗಳಿಗೆ ಉತ್ತರಿಸಬಲ್ಲ ಪ್ರಮುಖ ವ್ಯಕ್ತಿಗಳನ್ನು ಗುರುತಿಸಿದೆವು. ಈ ಸ್ಪಷ್ಟತೆಯು ಸ್ಕೋಪ್ ಕ್ರೀಪ್ (scope creep) ಅನ್ನು ತಡೆಯುತ್ತದೆ ಮತ್ತು ಎಲ್ಲರನ್ನೂ ಒಂದೇ ಗುರಿಯೊಂದಿಗೆ ಇರಿಸುತ್ತದೆ.
ಮಾಹಿತಿ ಮತ್ತು ದಾಖಲೆಗಳನ್ನು ಸಂಗ್ರಹಿಸಿ. ನಾನು ಆರ್ಕಿಟೆಕ್ಚರ್ ಡೈಗ್ರಾಮ್ಗಳು, API ಡಾಕ್ಯುಮೆಂಟೇಶನ್, ಡೇಟಾಬೇಸ್ ಸ್ಕೀಮಾಗಳು ಮತ್ತು ಹಿಂದಿನ ಘಟನೆಗಳ ವರದಿಗಳನ್ನು ಸಂಗ್ರಹಿಸಿದೆ. ನಾನು ಲೀಡ್ ಡೆವಲಪರ್ ಜೊತೆಗೆ ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ಪದ್ಧತಿಗಳು ಮತ್ತು ಟೆಕ್ ಸ್ಟ್ಯಾಕ್ ಆಯ್ಕೆಗಳ ಬಗ್ಗೆ ಮಾತನಾಡಿದೆ. ನಿಮಗೆ ಅರ್ಥವಾಗದಿದ್ದನ್ನು ನೀವು ಪರೀಕ್ಷಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ, ಮತ್ತು ಈ ಹಂತದಲ್ಲಿ ಮಾಡುವ ಊಹೆಗಳು ನಂತರದ ಪ್ರತಿಯೊಂದು ಸಂಶೋಧನೆಯನ್ನು ಕೆಡಿಸಬಹುದು.
ಪರೀಕ್ಷೆಗಳನ್ನು ನಿರ್ವಹಿಸಿ. ನಾವು ಮೂರು ದೃಷ್ಟಿಕೋನಗಳಿಂದ ವ್ಯವಸ್ಥೆಯನ್ನು ಪರೀಕ್ಷಿಸಿದೆವು. ಕೋಡ್ ರಿವ್ಯೂ ಮೂಲಕ ಆಂಟಿ-ಪ್ಯಾಟರ್ನ್ಗಳು, ಇಂಜೆಕ್ಷನ್ ದೋಷಗಳು ಮತ್ತು ಅಸುರಕ್ಷಿತ ಅವಲಂಬನೆಗಳನ್ನು ಹುಡುಕಲಾಯಿತು. ಫಂಕ್ಷನಲ್ ಟೆಸ್ಟ್ಗಳು ಬಿಸಿನೆಸ್ ರೂಲ್ಸ್ಗಳನ್ನು—ಉದಾಹರಣೆಗೆ ಎನ್ರೋಲ್ಮೆಂಟ್ ಕ್ಯಾಪ್ಸ್ ಮತ್ತು ಪ್ರಿರೆಕ್ವಿಸೈಟ್ ಚೆಕ್ಗಳು—ಕೇವಲ ಫ್ರಂಟ್ ಎಂಡ್ ಕೋಡ್ನ ಹಿಂದೆ ಅಡಗಿಸುವುದರ ಬದಲಾಗಿ, ಅಸಮರ್ಪಕ ಸ್ಥಿತಿಗಳನ್ನು (invalid states) ವಾಸ್ತವವಾಗಿ ತಡೆಯುತ್ತಿವೆಯೇ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸಿದವು. ಪೆನೆಟ್ರೇಶನ್ ಟೆಸ್ಟ್ಗಳು ಬಾಹ್ಯ ದಾಳಿಗಾರನಂತೆ ವರ್ತಿಸಿ, ಎಕ್ಸ್ಪೋಸ್ಡ್ ಎಂಡ್ಪಾಯಿಂಟ್ಗಳನ್ನು ಪರೀಕ್ಷಿಸಿ ಮತ್ತು ರಿಕ್ವೆಸ್ಟ್ಗಳನ್ನು ಬದಲಾಯಿಸುವ ಮೂಲಕ ಏನಾದರೂ ಸೋರಿಕೆಯಾಗುತ್ತಿದೆಯೇ ಅಥವಾ ವ್ಯವಸ್ಥೆ ಕುಸಿಯುತ್ತಿದೆಯೇ ಎಂದು ನೋಡಿದವು.
ಅಪಾಯಗಳು ಮತ್ತು ಸಂಶೋಧನೆಗಳನ್ನು ವಿಶ್ಲೇಷಿಸಿ. ಕೇವಲ ದೌರ್ಬಲ್ಯಗಳು ಸಮಾನವಾಗಿ ಮುಖ್ಯವಾಗಿರುವುದಿಲ್ಲ. ನಾವು ಪ್ರತಿಯೊಂದು ಸಂಶೋಧನೆಯನ್ನು ಅದರ ಸಂಭವನೀಯತೆ ಮತ್ತು
