ಒಂದು ಹೊಸ ವಿಧಾನವು LLM-ಚಾಲಿತ ಪೆನ್ಟೆಸ್ಟ್ ಏಜೆಂಟ್ ಕೇವಲ ಒಂದು ಭಂಗವನ್ನು (breach) ಪ್ರತಿಪಾದಿಸುವ ಬದಲು, ಅದನ್ನು ಸಾಬೀತುಪಡಿಸುವಂತೆ ಮಾಡುತ್ತದೆ. ಇದು 'challenge-response nonces'ಗಳನ್ನು ಬಳಸುವ ಮೂಲಕ ಸುಳ್ಳು ಪಾಸಿಟಿವ್ಗಳನ್ನು (false positives) ತೆಗೆದುಹಾಕುತ್ತದೆ. HALO ಫ್ರೇಮ್ವರ್ಕ್ನಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲಾದ ಈ ತಂತ್ರವು, “ನಮಗೆ ಶೆಲ್ ಸಿಕ್ಕಿದಂತಿದೆ” ಎಂಬುವುದನ್ನು “ನಮಗೆ ನಿಜವಾಗಿಯೂ ಶೆಲ್ ಸಿಕ್ಕಿದೆ” ಎಂಬದಾಗಿ ಬದಲಾಯಿಸುತ್ತದೆ.
ಸುಳ್ಳು-ಪಾಸಿಟಿವ್ (false-positive) ಭಂಗಗಳು ಏಕೆ ಮುಖ್ಯ?
ಲಾರ್ಜ್ ಲ್ಯಾಂಗ್ವೇಜ್ ಮಾಡೆಲ್ಗಳ ಮೇಲೆ ನಿರ್ಮಿಸಲಾದ ಸ್ವಯಂಚಾಲಿತ ಎಕ್ಸ್ಪ್ಲಾಯ್ಟೇಶನ್ ಇಂಜಿನ್ಗಳು ಒಂದೇ ರನ್ನಲ್ಲಿ ಡಜನ್ಗಟ್ಟಲೆ "ಯಶಸ್ವಿ" ಪೋರ್ಟ್ ಕಾಮಪ್ರೊಮೈಸ್ಗಳನ್ನು (port compromises) ನೀಡಬಹುದು. ಅನೇಕ ಸೇವೆಗಳು ಬ್ಯಾನರ್ಗಳಲ್ಲಿ “uid=0” ನಂತಹ ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು ತೋರಿಸುತ್ತವೆ, ಮತ್ತು ಒಂದು ಸಿದ್ಧಪಡಿಸಿದ ಟಾರ್ಗೆಟ್ ದಾಳಿಗಾರನ ಕೋಡ್ ಅನ್ನು ಎಂದಿಗೂ ಕಾರ್ಯಗತಗೊಳಿಸದೆ ಅಂತಹ ಔಟ್ಪುಟ್ಗಳನ್ನು ಅನುಕರಿಸಬಹುದು. ಏಜೆಂಟ್ ಆ ಮಾಹಿತಿಯನ್ನು ನಂಬಿದಾಗ, ನಂತರದ ಪ್ರತಿಯೊಂದು ನಿರ್ಧಾರವು—ಪಿವೋಟ್ ಮಾಡುವುದು, ಡೇಟಾವನ್ನು ಹೊರತೆಗೆಯುವುದು (exfiltrate) ಅಥವಾ ಲ್ಯಾಟರಲಿ ಮೂವ್ ಆಗುವುದು—ಒಂದು ಸುಳ್ಳಿನ ಮೇಲೆ ನಿಂತಿರುತ್ತದೆ. ಭದ್ರತಾ ತಂಡಗಳು ಕಾಲ್ಪನಿಕ ತಡೆತಗಳ (phantom footholds) ಹಿಂದೆ ಗಂಟೆಗಟ್ಟಲೆ ಸಮಯ ವ್ಯರ್ಥ ಮಾಡುತ್ತವೆ ಮತ್ತು ಇನ್ಸಿಡೆಂಟ್ ರೆಸ್ಪಾಂಡರ್ಗಳು ನೈಜ ಬೆದರಿಕೆಗಳಿಗೆ ತಪ್ಪು ಆದ್ಯತೆ ನೀಡಬಹುದು.
ಕೇವಲ ಹೇಳಿಕೆಯನ್ನು ಸಾಕ್ಷ್ಯವನ್ನಾಗಿ ಬದಲಾಯಿಸುವುದು
ಈ ಪರಿಹಾರವು ಸಾಂಪ್ರದಾಯಿಕ ಅಥೆಂಟಿಕೇಶನ್ ತಂತ್ರಗಳಿಂದ ಎರವಲು ಪಡೆದಿದೆ. ಎಕ್ಸ್ಪ್ಲಾಯ್ಟ್ ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು, ದಾಳಿಗಾರನ ಸಿಸ್ಟಮ್ ಒಂದು ವಿಶಿಷ್ಟ ಟೋಕನ್ ಅಥವಾ 'nonce' ಅನ್ನು ಸೃಷ್ಟಿಸಿ, ಅದನ್ನು ಪೇಲೋಡ್ನಲ್ಲಿ (payload) ಸೇರಿಸುತ್ತದೆ. ಕಂಟ್ರೋಲರ್ ಫಲಿತಾಂಶವನ್ನು ನೈಜ ಭಂಗ ಎಂದು ಒಪ್ಪಿಕೊಳ್ಳಬೇಕೆಂದರೆ, ಎಕ್ಸ್ಪ್ಲಾಯ್ಟ್ ನಿಖರವಾದ ಟೋಕನ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸಬೇಕು. ಒಂದು ನಕಲಿ ಬ್ಯಾನರ್ ಈ nonce ಅನ್ನು ಊಹಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ; ಪ್ರತಿಕ್ರಿಯೆಯಲ್ಲಿ ಟೋಕನ್ ಅನ್ನು ಸೇರಿಸಲು ಅದು ದಾಳಿಗಾರನ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲೇಬೇಕು. ಹಿಂತಿರುಗಿದ ಡೇಟಾದಲ್ಲಿ ಹೊಂದಿಕೆಯಾಗುವ nonce ಇಲ್ಲದಿದ್ದರೆ, ಆ ಪ್ರಯತ್ನವನ್ನು ಸುಳ್ಳು ಪಾಸಿಟಿವ್ ಎಂದು ಪರಿಗಣಿಸಿ ತಿರಸ್ಕರಿಸಲಾಗುತ್ತದೆ.
ಈ ಬದಲಾವಣೆಯು ಪರಿಶೀಲನಾ ಮಾದರಿಯನ್ನು “ಔಟ್ಪುಟ್ ಸರಿಯಾಗಿ ಕಾಣುತ್ತಿದೆ” ಎಂಬುದರಿಂದ “ಔಟ್ಪುಟ್ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಸಾಬೀತುಪಡಿಸುತ್ತದೆ” ಎಂಬುದಕ್ಕೆ ಬದಲಾಯಿಸುತ್ತದೆ. ಇದು ಸ್ವಾಯತ್ತ ಆಫೆನ್ಸಿವ್ ಟೂಲ್ಗಳನ್ನು ಬಾಧಿಸುವ 'ಆಪ್ಟಿಮಿಸಂ ಬಯಾಸ್' ಅನ್ನು (optimism bias) ತೆಗೆದುಹಾಕುತ್ತದೆ.
ವಿಶ್ವಾಸಾರ್ಹ ಡೆಲಿವರಿ ಏಣಿಯನ್ನು ನಿರ್ಮಿಸುವುದು
ಪೇಲೋಡ್ ಅನ್ನು ಟಾರ್ಗೆಟ್ಗೆ ತಲುಪಿಸಲು ಇನ್ನೂ ದೃಢವಾದ ಡೆಲಿವರಿ ಚೈನ್ ಅಗತ್ಯವಿದೆ. HALO ಮೂರು ಸಾಮಾನ್ಯ ಮಾರ್ಗಗಳನ್ನು ವರ್ಗೀಕರಿಸುತ್ತದೆ:
- Reverse shells – ಕಾಮಪ್ರೊಮೈಸ್ ಆದ ಹೋಸ್ಟ್, ದಾಳಿಗಾರನು ನಿಯಂತ್ರಿಸುವ ಲಿಸನರ್ಗೆ (listener) ಹಿಂತಿರುಗಿ ಸಂಪರ್ಕವನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ. ಇನ್ಬೌಂಡ್ ಟ್ರಾಫಿಕ್ ನಿರ್ಬಂಧಿತವಾಗಿದ್ದಾಗ ಇದು ಉಪಯುಕ್ತವಾಗಿದೆ.
- Bind shells – ದಾಳಿಗಾರನು ಟಾರ್ಗೆಟ್ನಲ್ಲಿರುವ ಲಿಸನಿಂಗ್ ಸರ್ವಿಸ್ಗೆ ನೇರವಾಗಿ ಸಂಪರ್ಕಿಸುತ್ತಾನೆ. ಔಟ್ಬೌಂಡ್ ಫಿಲ್ಟರ್ಗಳು ಸಡಿಲವಾಗಿದ್ದಾಗ ಇದು ಕೆಲಸ ಮಾಡುತ್ತದೆ.
- Blind callbacks – ಯಾವುದೇ ನೇರ ಚಾನಲ್ ತೆರೆಯಲು ಸಾಧ್ಯವಾಗದ ಅತ್ಯಂತ ನಿರ್ಬಂಧಿತ ಪರಿಸರಗಳಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಖಚಿತಪಡಿಸುವ ಏಕಮುಖ ಸಿಗ್ನಲ್ (ಉದಾಹರಣೆಗೆ, DNS ವಿನಂತಿ).
ಏಣಿಯ ಪ್ರತಿಯೊಂದು ಹಂತವು nonce ಅನ್ನು ಉಳಿಸಿಕೊಳ್ಳಬೇಕು, ಇಲ್ಲದಿದ್ದರೆ ಮುಂದಿನ ಹಂತದಲ್ಲಿ ಸಾಬೀತುಪಡಿಸುವ ಹಂತವು ವಿಫಲವಾಗುತ್ತದೆ.
ಸ್ವಯಂ-ಸಂಪೂರ್ಣ (self-contained) ಎಕ್ಸ್ಪ್ಲಾಯ್ಟ್ಗಳನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು
ಸುಳ್ಳು ಆತ್ಮವಿಶ್ವಾಸದ ಮತ್ತೊಂದು ಮೂಲವೆಂದರೆ ಟಾರ್ಗೆಟ್ನಲ್ಲಿ ಇಲ್ಲದಿರಬಹುದಾದ ಬಾಹ್ಯ ಲೈಬ್ರರಿಗಳ ಮೇಲಿನ ಅವಲಂಬನೆ. HALO ಕಳುಹಿಸುವ ಮೊದಲು ಅಗತ್ಯವಿರುವ ಪ್ರತಿಯೊಂದು ಘಟಕವನ್ನು ಒಂದೇ ಫೈಲ್ನಲ್ಲಿ ಸಂಯೋಜಿಸುತ್ತದೆ (bundles). ನಂತರ ಈ ಬಂಡಲ್ ಅನ್ನು ಮೂಲ ಅವಲಂಬನೆಗಳಿಲ್ಲದ (dependencies) ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ನಲ್ಲಿ ಪರೀಕ್ಷಿಸಲಾಗುತ್ತದೆ. ಎಕ್ಸ್ಪ್ಲಾಯ್ಟ್ ಇನ್ನೂ ಕಾರ್ಯನಿರ್ವಹಿಸಿದರೆ, ಆ ಆರ್ಟಿಫ್ಯಾಕ್ಟ್ ನಿಜವಾಗಿಯೂ ಸ್ವಯಂ-ಸಂಪೂರ್ಣವಾಗಿದೆ ಮತ್ತು ಲಾಕ್ ಮಾಡಲಾದ ಸಿಸ್ಟಮ್ನಲ್ಲಿ ಅದನ್ನು ನಂಬಬಹುದು.
ಡೆವಲಪ್ಮೆಂಟ್ ಟ್ರೈಲ್ ಅನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸುವುದು
ಸಾರ್ವಜನಿಕ ಬಿಡುಗಡೆಗಾಗಿ ಸಿದ್ಧಪಡಿಸುವಾಗ, ಲೇಖಕರು Git ಇತಿಹಾಸದಲ್ಲಿ ನೈಜ IP ವಿಳಾಸಗಳು ಉಳಿದಿರುವುದನ್ನು ಕಂಡುಕೊಂಡರು. ಕ್ಲೀನ್ ವರ್ಕಿಂಗ್ ಟ್ರೀ ಆ ದಾಖಲೆಗಳನ್ನು ಅಳಿಸುವುದಿಲ್ಲ; Git ಪ್ರತಿಯೊಂದು ಕಮಿಟ್ ಅನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತದೆ. ಲೇಖಕರು ರೆಪೊಸಿಟರಿಯನ್ನು ಒಂದೇ ಕ್ಲೀನ್ ಕಮಿಟ್ಗೆ ಮರುಬರೆದರು ಮತ್ತು ಸೋರಿಕೆಯಾದ ವಿಳಾಸಗಳನ್ನು RFC 5737 ನಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಡಾಕ್ಯುಮೆಂಟೇಶನ್-ಮಾತ್ರದ ವ್ಯಾಪ್ತಿಗಳಿಂದ (ಉದಾಹರಣೆಗೆ, 192.0.2.0/24) ಬದಲಾಯಿಸಿದರು. ಇದು ಟೂಲ್ ಅನ್ನು ಹಂಚಿಕೊಂಡಾಗ ಪ್ರೊಡಕ್ಷನ್ ಇನ್ಫ್ರಾಸ್ಟ್ರಕ್ಚರ್ನ ಅಕಸ್ಮಾತ್ ಪ್ರದರ್ಶನವನ್ನು ತಡೆಯುತ್ತದೆ.
ಸೆಕ್ಯೂರಿಟಿ ಟೂಲಿಂಗ್ಗಾಗಿ ಪ್ರಾಯೋಗಿಕ ನಿಯಮಗಳು
- ಪ್ರತಿ ಟೆಸ್ಟ್ ಫಿಕ್ಚರ್ನಲ್ಲಿ ಡಾಕ್ಯುಮೆಂಟೇಶನ್-ಮಾತ್ರದ IP ವ್ಯಾಪ್ತಿಗಳನ್ನು ಬಳಸಿ.
- ಆರಂಭಿಕ ಕಮಿಟ್ನಿಂದ ಸೀಕ್ರೆಟ್ಗಳು ಮತ್ತು ಸ್ಕೋಪ್ ಫೈಲ್ಗಳನ್ನು ತೆಗೆದುಹಾಕಿ.
- ಯಾವುದೇ ಹೇಳಲಾದ ಭಂಗವನ್ನು ಪರಿಶೀಲಿಸಲು challenge-response nonces ಅನ್ವಯಿಸಿ.
- ಕೇವಲ ಸಂಬಂಧಿತ ಸ್ಕ್ರಿಪ್ಟ್ ಅಲ್ಲದೆ, ಕಳುಹಿಸಲಾಗುವ ನಿಖರವಾದ ಫೈಲ್ ಅನ್ನು ವ್ಯಾಲಿಡೇಟ್ ಮಾಡಿ.
ಸಾಕ್ಷ್ಯವು ಆಪ್ಟಿಮಿಸಂ ಅನ್ನು ಸೋಲಿಸುತ್ತದೆ. ಸ್ವಾಯತ್ತ ಪೆನ್ಟೆಸ್ಟ್ ಏಜೆಂಟ್ ಒಂದು ಪರಿಶೀಲಿಸಬಹುದಾದ ಟೋಕನ್ ಅನ್ನು ಪ್ರಸ್ತುತಪಡಿಸುವಂತೆ ಒತ್ತಾಯಿಸುವ ಮೂಲಕ, ಟಾರ್ಗೆಟ್ ದಾಳಿಗಾರನ ಕೋಡ್ ಅನ್ನು ಚಲಾಯಿಸಿದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸಿದಾಗ ಮಾತ್ರ ಒಂದು ಭಂಗವು ನಿಜವಾದ ಭಂಗ ಎಂದು HALO ತೋರಿಸುತ್ತದೆ. ಮೊದಲು ಗೇಟ್ ನಿರ್ಮಿಸಲ್ಪಡುತ್ತದೆ; ಉಳಿದೆಲ್ಲವೂ ನಂತರ ಬರುತ್ತವೆ.
