ನಿಮಗೆ ತಿಳಿದಿರುವಂತೆ, ಎನ್ಕ್ಲೇವ್ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾದ ಕೋಡ್ ಅದರ ಕಾರ್ಯಚಟುವಟಿಕೆಯಲ್ಲಿ ಗಂಭೀರವಾಗಿ ಸೀಮಿತವಾಗಿದೆ. ಇದು ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಇದು I/O ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಇದು ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ನ ಕೋಡ್ ವಿಭಾಗದ ಮೂಲ ವಿಳಾಸವನ್ನು ತಿಳಿದಿರುವುದಿಲ್ಲ. ಇದು jmp ಅಥವಾ ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ ಅನ್ನು ಕರೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ. ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಿಯಂತ್ರಿಸುವ ವಿಳಾಸದ ಸ್ಥಳ ರಚನೆಯ ಬಗ್ಗೆ ಇದು ಯಾವುದೇ ಕಲ್ಪನೆಯನ್ನು ಹೊಂದಿಲ್ಲ (ಉದಾಹರಣೆಗೆ, ಯಾವ ಪುಟಗಳನ್ನು ಮ್ಯಾಪ್ ಮಾಡಲಾಗಿದೆ ಅಥವಾ ಆ ಪುಟಗಳಲ್ಲಿ ಯಾವ ರೀತಿಯ ಡೇಟಾ ಇದೆ). ಇದು ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ನ ಮೆಮೊರಿಯ ತುಣುಕನ್ನು ಮ್ಯಾಪ್ ಮಾಡಲು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಕೇಳಲು ಸಾಧ್ಯವಿಲ್ಲ (ಉದಾಹರಣೆಗೆ, /proc/pid/maps ಮೂಲಕ). ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ನ ಅನಿಯಂತ್ರಿತ ಮೆಮೊರಿ ಪ್ರದೇಶವನ್ನು ಕುರುಡಾಗಿ ಓದುವ ನಿಷ್ಕಪಟ ಪ್ರಯತ್ನಗಳು, ಬರೆಯುವ ಪ್ರಯತ್ನಗಳನ್ನು ಉಲ್ಲೇಖಿಸಬಾರದು, ಬೇಗ ಅಥವಾ ನಂತರ (ಹೆಚ್ಚಾಗಿ ಹಿಂದಿನದು) ಎನ್ಕ್ಲೇವ್ ಪ್ರೋಗ್ರಾಂನ ಬಲವಂತದ ಮುಕ್ತಾಯಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ. ಎನ್ಕ್ಲೇವ್ನಿಂದ ವಿನಂತಿಸಲಾದ ವರ್ಚುವಲ್ ವಿಳಾಸ ಸ್ಥಳ ಪ್ರದೇಶವು ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ಗೆ ಪ್ರವೇಶಿಸಲಾಗದಿದ್ದಾಗ ಇದು ಸಂಭವಿಸುತ್ತದೆ.
ಇಂತಹ ಕಠೋರ ಸತ್ಯಗಳನ್ನು ಗಮನಿಸಿದರೆ, ಒಬ್ಬ ವೈರಸ್ ಬರಹಗಾರನು ತನ್ನ ದುರುದ್ದೇಶಪೂರಿತ ಗುರಿಗಳನ್ನು ಸಾಧಿಸಲು SGX ಎನ್ಕ್ಲೇವ್ಗಳನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆಯೇ?
ಮೇಲಿನ ಎಲ್ಲಾ ಆಧಾರದ ಮೇಲೆ, ಎನ್ಕ್ಲೇವ್ ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ಗೆ ಮಾತ್ರ ಸೇವೆ ಸಲ್ಲಿಸಲು ಸಮರ್ಥವಾಗಿದೆ ಮತ್ತು ಎನ್ಕ್ಲೇವ್ ದುರುದ್ದೇಶಪೂರಿತವಾದವುಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ತನ್ನದೇ ಆದ ಉಪಕ್ರಮವನ್ನು ಚಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ ಎಂದು ಸಾಮಾನ್ಯವಾಗಿ ಒಪ್ಪಿಕೊಳ್ಳಲಾಗಿದೆ. ಇದರರ್ಥ ಎನ್ಕ್ಲೇವ್ಗಳು ವೈರಸ್ ಬರಹಗಾರರಿಗೆ ಪ್ರಾಯೋಗಿಕ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿಲ್ಲ. ಈ ಆತುರದ ಊಹೆಯು SGX ರಕ್ಷಣೆಯು ಅಸಮಪಾರ್ಶ್ವವಾಗಿರುವ ಕಾರಣಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ: ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ ಎನ್ಕ್ಲೇವ್ ಮೆಮೊರಿಯನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ, ಆದರೆ ಎನ್ಕ್ಲೇವ್ ಕೋಡ್ ಯಾವುದೇ ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ ಮೆಮೊರಿ ವಿಳಾಸವನ್ನು ಓದಬಹುದು ಮತ್ತು ಬರೆಯಬಹುದು.
ಆದ್ದರಿಂದ, ದುರುದ್ದೇಶಪೂರಿತ ಎನ್ಕ್ಲೇವ್ ಕೋಡ್ ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ನ ಪರವಾಗಿ ಅನಿಯಂತ್ರಿತ ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ಮಾಡಲು, ಅದರ ಪರವಾಗಿ ಅನಿಯಂತ್ರಿತ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು, ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ನ ಮೆಮೊರಿಯನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಲು ಮತ್ತು ಅದರಲ್ಲಿ ನಿಂದನೀಯ ROP ಸರಪಳಿಗಳನ್ನು ಹುಡುಕಲು ಸಾಧ್ಯವಾದರೆ, ಅದು ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ನ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣವನ್ನು ವಶಪಡಿಸಿಕೊಳ್ಳಬಹುದು. ರಹಸ್ಯ ಮೋಡ್. ಇದು ಬಳಕೆದಾರರ ಫೈಲ್ಗಳನ್ನು ಕದಿಯಲು ಮತ್ತು ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಲು ಮಾತ್ರವಲ್ಲದೆ ಬಳಕೆದಾರರ ಪರವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಅವನ ಪರವಾಗಿ ಫಿಶಿಂಗ್ ಇಮೇಲ್ಗಳನ್ನು ಕಳುಹಿಸಿ ಅಥವಾ DoS ದಾಳಿಗಳನ್ನು ನಡೆಸಿ. ಸ್ಟ್ಯಾಕ್ ಕ್ಯಾನರಿಗಳು ಮತ್ತು ವಿಳಾಸ ನೈರ್ಮಲ್ಯೀಕರಣದಂತಹ ಅತ್ಯಂತ ಆಧುನಿಕ ರಕ್ಷಣಾತ್ಮಕ ಕಾರ್ಯವಿಧಾನಗಳ ಭಯವಿಲ್ಲದೆ.
ಆಕ್ರಮಣಕಾರರು ತಮ್ಮ ಸ್ವಂತ ದುರುದ್ದೇಶಪೂರಿತ ಉದ್ದೇಶಗಳಿಗಾಗಿ SGX ನ ಲಾಭವನ್ನು ಪಡೆಯಲು ಮೇಲೆ ವಿವರಿಸಿದ ಮಿತಿಗಳನ್ನು ಜಯಿಸಲು ಬಳಸುವ ಕೆಲವು ಹ್ಯಾಕ್ಗಳನ್ನು ನಾವು ನಿಮಗೆ ತೋರಿಸುತ್ತೇವೆ: ROP ದಾಳಿಗಳು. ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ ಪ್ರಕ್ರಿಯೆಯಂತೆ ಅನಿಯಂತ್ರಿತ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು (ಮಾಲ್ವೇರ್ನಿಂದ ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸಲಾಗುವ ಹಾಲೋವಿಂಗ್ ಅನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವಂತೆ), ಅಥವಾ ಸಿದ್ಧ ಮಾಲ್ವೇರ್ ಅನ್ನು ಮರೆಮಾಚಲು (ಆಂಟಿವೈರಸ್ಗಳು ಮತ್ತು ಇತರ ರಕ್ಷಣಾ ಕಾರ್ಯವಿಧಾನಗಳ ಕಿರುಕುಳದಿಂದ ಅದರ ಮಾಲ್ವೇರ್ ಅನ್ನು ಉಳಿಸಲು).
ವಿಳಾಸಗಳನ್ನು ಓದಲು ಸಾಧ್ಯವೇ ಎಂದು ನೋಡಲು ಹ್ಯಾಕ್ ಮಾಡಿ
ಆತಿಥೇಯ ಅಪ್ಲಿಕೇಶನ್ಗೆ ವರ್ಚುವಲ್ ವಿಳಾಸ ಸ್ಥಳದ ಯಾವ ಶ್ರೇಣಿಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು ಎಂದು ಎನ್ಕ್ಲೇವ್ಗೆ ತಿಳಿದಿಲ್ಲವಾದ್ದರಿಂದ ಮತ್ತು ಪ್ರವೇಶಿಸಲಾಗದ ವಿಳಾಸವನ್ನು ಓದಲು ಪ್ರಯತ್ನಿಸುವಾಗ ಎನ್ಕ್ಲೇವ್ ಅನ್ನು ಕೊನೆಗೊಳಿಸಲು ಬಲವಂತವಾಗಿ, ಆಕ್ರಮಣಕಾರರು ದೋಷದ ಮಾರ್ಗವನ್ನು ಕಂಡುಹಿಡಿಯುವ ಕಾರ್ಯವನ್ನು ಎದುರಿಸಬೇಕಾಗುತ್ತದೆ- ವಿಳಾಸ ಜಾಗವನ್ನು ಸಹಿಷ್ಣುವಾಗಿ ಸ್ಕ್ಯಾನ್ ಮಾಡಿ. ಲಭ್ಯವಿರುವ ವರ್ಚುವಲ್ ವಿಳಾಸಗಳನ್ನು ನಕ್ಷೆ ಮಾಡಲು ಮಾರ್ಗವನ್ನು ಕಂಡುಕೊಳ್ಳಿ. ಖಳನಾಯಕ ಇಂಟೆಲ್ನ TSX ತಂತ್ರಜ್ಞಾನವನ್ನು ದುರುಪಯೋಗಪಡಿಸಿಕೊಳ್ಳುವ ಮೂಲಕ ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುತ್ತಾನೆ. TSX ನ ಅಡ್ಡಪರಿಣಾಮಗಳಲ್ಲಿ ಒಂದನ್ನು ಬಳಸುತ್ತದೆ: ಮೆಮೊರಿ ಪ್ರವೇಶ ಕಾರ್ಯವನ್ನು TSX ವಹಿವಾಟಿನಲ್ಲಿ ಇರಿಸಿದರೆ, ಅಮಾನ್ಯ ವಿಳಾಸಗಳನ್ನು ಪ್ರವೇಶಿಸುವುದರಿಂದ ಉಂಟಾಗುವ ವಿನಾಯಿತಿಗಳನ್ನು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ತಲುಪದೆ TSX ನಿಂದ ನಿಗ್ರಹಿಸಲಾಗುತ್ತದೆ. ಅಮಾನ್ಯವಾದ ಮೆಮೊರಿ ವಿಳಾಸವನ್ನು ಪ್ರವೇಶಿಸಲು ಪ್ರಯತ್ನಿಸಿದರೆ, ಪ್ರಸ್ತುತ ವಹಿವಾಟು ಮಾತ್ರ ಸ್ಥಗಿತಗೊಳ್ಳುತ್ತದೆ, ಸಂಪೂರ್ಣ ಎನ್ಕ್ಲೇವ್ ಪ್ರೋಗ್ರಾಂ ಅಲ್ಲ. ಅದು. TSX ಒಂದು ವಹಿವಾಟಿನ ಒಳಗಿನಿಂದ ಯಾವುದೇ ವಿಳಾಸವನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಪ್ರವೇಶಿಸಲು ಎನ್ಕ್ಲೇವ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ - ಕುಸಿತದ ಅಪಾಯವಿಲ್ಲದೆ.
ವೇಳೆ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ವಿಳಾಸ ಲಭ್ಯವಿದೆ ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್, TSX ವಹಿವಾಟು ಹೆಚ್ಚಾಗಿ ಯಶಸ್ವಿಯಾಗುತ್ತದೆ. ಅಪರೂಪದ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಇದು ಅಡಚಣೆಗಳು (ಉದಾಹರಣೆಗೆ ಶೆಡ್ಯೂಲರ್ ಅಡಚಣೆಗಳು), ಸಂಗ್ರಹ ಹೊರಹಾಕುವಿಕೆಗಳು ಅಥವಾ ಬಹು ಪ್ರಕ್ರಿಯೆಗಳಿಂದ ಮೆಮೊರಿ ಸ್ಥಳದ ಏಕಕಾಲಿಕ ಮಾರ್ಪಾಡುಗಳಂತಹ ಬಾಹ್ಯ ಪ್ರಭಾವಗಳಿಂದ ವಿಫಲವಾಗಬಹುದು. ಈ ಅಪರೂಪದ ಸಂದರ್ಭಗಳಲ್ಲಿ, ವೈಫಲ್ಯವು ತಾತ್ಕಾಲಿಕವಾಗಿದೆ ಎಂದು ಸೂಚಿಸುವ ದೋಷ ಕೋಡ್ ಅನ್ನು TSX ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಈ ಸಂದರ್ಭಗಳಲ್ಲಿ, ನೀವು ವಹಿವಾಟನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕಾಗಿದೆ.
ವೇಳೆ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ವಿಳಾಸವು ಲಭ್ಯವಿಲ್ಲ ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್, TSX ಸಂಭವಿಸಿದ ವಿನಾಯಿತಿಯನ್ನು ನಿಗ್ರಹಿಸುತ್ತದೆ (OS ಗೆ ಸೂಚಿಸಲಾಗಿಲ್ಲ) ಮತ್ತು ವಹಿವಾಟನ್ನು ಸ್ಥಗಿತಗೊಳಿಸುತ್ತದೆ. ದೋಷ ಕೋಡ್ ಅನ್ನು ಎನ್ಕ್ಲೇವ್ ಕೋಡ್ಗೆ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ, ಇದರಿಂದಾಗಿ ವ್ಯವಹಾರವನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ ಎಂಬ ಅಂಶಕ್ಕೆ ಪ್ರತಿಕ್ರಿಯಿಸಬಹುದು. ಪ್ರಶ್ನೆಯಲ್ಲಿರುವ ವಿಳಾಸವು ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ಗೆ ಲಭ್ಯವಿಲ್ಲ ಎಂದು ಈ ದೋಷ ಸಂಕೇತಗಳು ಸೂಚಿಸುತ್ತವೆ.
ಎನ್ಕ್ಲೇವ್ನ ಒಳಗಿನಿಂದ ಟಿಎಸ್ಎಕ್ಸ್ನ ಈ ಕುಶಲತೆಯು ಖಳನಾಯಕನಿಗೆ ಉತ್ತಮ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಹೊಂದಿದೆ: ಎನ್ಕ್ಲೇವ್ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದ ಸಮಯದಲ್ಲಿ ಹೆಚ್ಚಿನ ಹಾರ್ಡ್ವೇರ್ ಕಾರ್ಯಕ್ಷಮತೆ ಕೌಂಟರ್ಗಳನ್ನು ನವೀಕರಿಸದ ಕಾರಣ, ಎನ್ಕ್ಲೇವ್ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾದ ಟಿಎಸ್ಎಕ್ಸ್ ವಹಿವಾಟುಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುವುದು ಅಸಾಧ್ಯ. ಹೀಗಾಗಿ, TSX ನ ದುರುದ್ದೇಶಪೂರಿತ ಕುಶಲತೆಯು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ಗೆ ಸಂಪೂರ್ಣವಾಗಿ ಅಗೋಚರವಾಗಿರುತ್ತದೆ.
ಹೆಚ್ಚುವರಿಯಾಗಿ, ಮೇಲಿನ ಹ್ಯಾಕ್ ಯಾವುದೇ ಸಿಸ್ಟಮ್ ಕರೆಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿಲ್ಲದಿರುವುದರಿಂದ, ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ಸರಳವಾಗಿ ನಿರ್ಬಂಧಿಸುವ ಮೂಲಕ ಅದನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಅಥವಾ ತಡೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ; ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಮೊಟ್ಟೆಯ ಬೇಟೆಯ ವಿರುದ್ಧದ ಹೋರಾಟದಲ್ಲಿ ಧನಾತ್ಮಕ ಫಲಿತಾಂಶವನ್ನು ನೀಡುತ್ತದೆ.
ROP ಸರಣಿಯನ್ನು ರೂಪಿಸಲು ಸೂಕ್ತವಾದ ಗ್ಯಾಜೆಟ್ಗಳಿಗಾಗಿ ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ ಅನ್ನು ಹುಡುಕಲು ಖಳನಾಯಕನು ಮೇಲೆ ವಿವರಿಸಿದ ಹ್ಯಾಕ್ ಅನ್ನು ಬಳಸುತ್ತಾನೆ. ಅದೇ ಸಮಯದಲ್ಲಿ, ಅವರು ಪ್ರತಿ ವಿಳಾಸವನ್ನು ತನಿಖೆ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ. ವರ್ಚುವಲ್ ವಿಳಾಸ ಜಾಗದ ಪ್ರತಿ ಪುಟದಿಂದ ಒಂದು ವಿಳಾಸವನ್ನು ತನಿಖೆ ಮಾಡಲು ಸಾಕು. ಎಲ್ಲಾ 16 ಗಿಗಾಬೈಟ್ಗಳ ಮೆಮೊರಿಯನ್ನು ಪರೀಕ್ಷಿಸಲು ಸುಮಾರು 45 ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ (ಇಂಟೆಲ್ i7-6700K ನಲ್ಲಿ). ಪರಿಣಾಮವಾಗಿ, ಖಳನಾಯಕನು ROP ಸರಪಳಿಯನ್ನು ನಿರ್ಮಿಸಲು ಸೂಕ್ತವಾದ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಪುಟಗಳ ಪಟ್ಟಿಯನ್ನು ಪಡೆಯುತ್ತಾನೆ.
ಬರವಣಿಗೆಗಾಗಿ ವಿಳಾಸಗಳನ್ನು ತನಿಖೆ ಮಾಡಲು ಹ್ಯಾಕ್ ಮಾಡಿ
ROP ದಾಳಿಯ ಎನ್ಕ್ಲೇವ್ ಆವೃತ್ತಿಯನ್ನು ಕೈಗೊಳ್ಳಲು, ಆಕ್ರಮಣಕಾರರು ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ನ ಬರೆಯಬಹುದಾದ ಬಳಕೆಯಾಗದ ಮೆಮೊರಿ ಪ್ರದೇಶಗಳನ್ನು ಹುಡುಕಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಆಕ್ರಮಣಕಾರರು ನಕಲಿ ಸ್ಟಾಕ್ ಫ್ರೇಮ್ ಅನ್ನು ಇಂಜೆಕ್ಟ್ ಮಾಡಲು ಮತ್ತು ಪೇಲೋಡ್ ಅನ್ನು (ಶೆಲ್ಕೋಡ್) ಇಂಜೆಕ್ಟ್ ಮಾಡಲು ಈ ಮೆಮೊರಿ ಸ್ಥಳಗಳನ್ನು ಬಳಸುತ್ತಾರೆ. ಬಾಟಮ್ ಲೈನ್ ಎಂದರೆ ದುರುದ್ದೇಶಪೂರಿತ ಎನ್ಕ್ಲೇವ್ಗೆ ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ಗೆ ಮೆಮೊರಿಯನ್ನು ನಿಯೋಜಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ, ಬದಲಿಗೆ ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ನಿಂದ ಈಗಾಗಲೇ ನಿಯೋಜಿಸಲಾದ ಮೆಮೊರಿಯನ್ನು ದುರುಪಯೋಗಪಡಿಸಿಕೊಳ್ಳಬಹುದು. ಸಹಜವಾಗಿ, ಎನ್ಕ್ಲೇವ್ ಅನ್ನು ಕುಸಿಯದೆ ಅಂತಹ ಪ್ರದೇಶಗಳನ್ನು ಹುಡುಕಲು ಅವನು ನಿರ್ವಹಿಸಿದರೆ.
TSX ನ ಮತ್ತೊಂದು ಅಡ್ಡ ಪರಿಣಾಮವನ್ನು ಬಳಸಿಕೊಳ್ಳುವ ಮೂಲಕ ಖಳನಾಯಕನು ಈ ಹುಡುಕಾಟವನ್ನು ನಡೆಸುತ್ತಾನೆ. ಮೊದಲಿಗೆ, ಹಿಂದಿನ ಪ್ರಕರಣದಂತೆ, ಅದು ಅದರ ಅಸ್ತಿತ್ವಕ್ಕಾಗಿ ವಿಳಾಸವನ್ನು ತನಿಖೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ನಂತರ ಈ ವಿಳಾಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಪುಟವನ್ನು ಬರೆಯಬಹುದೇ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಇದನ್ನು ಮಾಡಲು, ಖಳನಾಯಕನು ಈ ಕೆಳಗಿನ ಹ್ಯಾಕ್ ಅನ್ನು ಬಳಸುತ್ತಾನೆ: ಅವನು TSX ವಹಿವಾಟಿನಲ್ಲಿ ಬರೆಯುವ ಕಾರ್ಯವನ್ನು ಇರಿಸುತ್ತಾನೆ ಮತ್ತು ಅದು ಪೂರ್ಣಗೊಂಡ ನಂತರ, ಆದರೆ ಅದು ಪೂರ್ಣಗೊಳ್ಳುವ ಮೊದಲು, ಅವನು ವಹಿವಾಟನ್ನು ಬಲವಂತವಾಗಿ ಸ್ಥಗಿತಗೊಳಿಸುತ್ತಾನೆ (ಸ್ಪಷ್ಟವಾದ ಸ್ಥಗಿತ).
TSX ವಹಿವಾಟಿನಿಂದ ರಿಟರ್ನ್ ಕೋಡ್ ಅನ್ನು ನೋಡುವ ಮೂಲಕ, ಆಕ್ರಮಣಕಾರರು ಅದನ್ನು ಬರೆಯಬಹುದೇ ಎಂದು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತಾರೆ. ಇದು "ಸ್ಪಷ್ಟ ಗರ್ಭಪಾತ" ಆಗಿದ್ದರೆ, ಖಳನಾಯಕನು ಅದನ್ನು ಅನುಸರಿಸಿದರೆ ರೆಕಾರ್ಡಿಂಗ್ ಯಶಸ್ವಿಯಾಗುತ್ತಿತ್ತು ಎಂದು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತಾನೆ. ಪುಟವು ಓದಲು-ಮಾತ್ರವಾಗಿದ್ದರೆ, ವ್ಯವಹಾರವು "ಸ್ಪಷ್ಟವಾದ ಸ್ಥಗಿತ" ಹೊರತುಪಡಿಸಿ ದೋಷದೊಂದಿಗೆ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ.
TSX ನ ಈ ಕುಶಲತೆಯು ವಿಲನ್ಗೆ ಉತ್ತಮವಾದ ಮತ್ತೊಂದು ವೈಶಿಷ್ಟ್ಯವನ್ನು ಹೊಂದಿದೆ (ಹಾರ್ಡ್ವೇರ್ ಕಾರ್ಯಕ್ಷಮತೆ ಕೌಂಟರ್ಗಳ ಮೂಲಕ ಟ್ರ್ಯಾಕಿಂಗ್ ಅಸಾಧ್ಯವಲ್ಲದ ಜೊತೆಗೆ): ವಹಿವಾಟು ಯಶಸ್ವಿಯಾದರೆ ಮಾತ್ರ ಎಲ್ಲಾ ಮೆಮೊರಿ ಬರೆಯುವ ಆಜ್ಞೆಗಳು ಬದ್ಧವಾಗಿರುತ್ತವೆ, ವಹಿವಾಟನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಒತ್ತಾಯಿಸುವುದು ತನಿಖೆಯ ಮೆಮೊರಿ ಕೋಶವನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಬದಲಾಗದೆ ಉಳಿದಿದೆ.
ನಿಯಂತ್ರಣ ಹರಿವನ್ನು ಮರುನಿರ್ದೇಶಿಸಲು ಹ್ಯಾಕ್ ಮಾಡಿ
ಎನ್ಕ್ಲೇವ್ನಿಂದ ROP ದಾಳಿಯನ್ನು ನಡೆಸುವಾಗ - ಸಾಂಪ್ರದಾಯಿಕ ROP ದಾಳಿಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿ - ಆಕ್ರಮಣಕಾರರು ದಾಳಿಗೊಳಗಾದ ಪ್ರೋಗ್ರಾಂನಲ್ಲಿ ಯಾವುದೇ ದೋಷಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳದೆಯೇ RIP ರಿಜಿಸ್ಟರ್ನ ನಿಯಂತ್ರಣವನ್ನು ಪಡೆಯಬಹುದು (ಬಫರ್ ಓವರ್ಫ್ಲೋ ಅಥವಾ ಹಾಗೆ). ದಾಳಿಕೋರರು ಸ್ಟಾಕ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ RIP ರಿಜಿಸ್ಟರ್ನ ಮೌಲ್ಯವನ್ನು ನೇರವಾಗಿ ಮೇಲ್ಬರಹ ಮಾಡಬಹುದು. ನಿರ್ದಿಷ್ಟವಾಗಿ ಹೇಳುವುದಾದರೆ, ಇದು ಈ ರಿಜಿಸ್ಟರ್ನ ಮೌಲ್ಯವನ್ನು ತನ್ನದೇ ಆದ ROP ಸರಪಳಿಯೊಂದಿಗೆ ಬದಲಾಯಿಸಬಹುದು.
ಆದಾಗ್ಯೂ, ROP ಸರಪಳಿಯು ದೀರ್ಘವಾಗಿದ್ದರೆ, ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ನ ಸ್ಟಾಕ್ನ ದೊಡ್ಡ ಭಾಗವನ್ನು ತಿದ್ದಿ ಬರೆಯುವುದು ಡೇಟಾ ಭ್ರಷ್ಟಾಚಾರ ಮತ್ತು ಅನಿರೀಕ್ಷಿತ ಪ್ರೋಗ್ರಾಂ ನಡವಳಿಕೆಗೆ ಕಾರಣವಾಗಬಹುದು. ತನ್ನ ದಾಳಿಯನ್ನು ರಹಸ್ಯವಾಗಿ ನಡೆಸಲು ಯತ್ನಿಸುವ ಖಳನಾಯಕನಿಗೆ ಈ ಸ್ಥಿತಿಯಿಂದ ತೃಪ್ತನಾಗುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ, ಅದು ಸ್ವತಃ ನಕಲಿ ತಾತ್ಕಾಲಿಕ ಸ್ಟಾಕ್ ಫ್ರೇಮ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ ಮತ್ತು ಅದರ ROP ಸರಪಳಿಯನ್ನು ಅದರಲ್ಲಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ. ನಕಲಿ ಸ್ಟಾಕ್ ಫ್ರೇಮ್ ಅನ್ನು ಯಾದೃಚ್ಛಿಕವಾಗಿ ಬರೆಯಬಹುದಾದ ಮೆಮೊರಿ ಸ್ಥಳದಲ್ಲಿ ಇರಿಸಲಾಗುತ್ತದೆ, ನೈಜ ಸ್ಟಾಕ್ ಅನ್ನು ಹಾಗೇ ಬಿಡಲಾಗುತ್ತದೆ.
ಮೇಲೆ ಪಟ್ಟಿ ಮಾಡಲಾದ ಮೂರು ಭಿನ್ನತೆಗಳು ಖಳನಾಯಕನಿಗೆ ಏನು ನೀಡುತ್ತವೆ?
(1) ಮೊದಲನೆಯದಾಗಿ, ದುರುದ್ದೇಶಪೂರಿತ ಎನ್ಕ್ಲೇವ್ ಮೂಲಕ ವಿಳಾಸಗಳನ್ನು ಓದಲು ಸಾಧ್ಯವೇ ಎಂದು ನೋಡಲು ಹ್ಯಾಕ್ ಮಾಡಿ, – ನಿಂದನೀಯ ROP ಗ್ಯಾಜೆಟ್ಗಳಿಗಾಗಿ ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಹುಡುಕುತ್ತದೆ.
(2) ನಂತರ ಮೂಲಕ ಬರವಣಿಗೆಗಾಗಿ ವಿಳಾಸಗಳನ್ನು ತನಿಖೆ ಮಾಡಲು ಹ್ಯಾಕ್ ಮಾಡಿ, - ದುರುದ್ದೇಶಪೂರಿತ ಎನ್ಕ್ಲೇವ್ ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ನ ಮೆಮೊರಿಯಲ್ಲಿ ಪೇಲೋಡ್ ಅನ್ನು ಇಂಜೆಕ್ಟ್ ಮಾಡಲು ಸೂಕ್ತವಾದ ಪ್ರದೇಶಗಳನ್ನು ಗುರುತಿಸುತ್ತದೆ.
(3) ಮುಂದೆ, ಎನ್ಕ್ಲೇವ್ ಹಂತ (1) ರಲ್ಲಿ ಪತ್ತೆಯಾದ ಗ್ಯಾಜೆಟ್ಗಳಿಂದ ROP ಸರಪಳಿಯನ್ನು ರಚಿಸುತ್ತದೆ ಮತ್ತು ಈ ಸರಪಳಿಯನ್ನು ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ ಸ್ಟಾಕ್ಗೆ ಚುಚ್ಚುತ್ತದೆ.
(4) ಅಂತಿಮವಾಗಿ, ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ ಹಿಂದಿನ ಹಂತದಲ್ಲಿ ರಚಿಸಲಾದ ROP ಸರಣಿಯನ್ನು ಎದುರಿಸಿದಾಗ, ದುರುದ್ದೇಶಪೂರಿತ ಪೇಲೋಡ್ ಕಾರ್ಯಗತಗೊಳ್ಳಲು ಪ್ರಾರಂಭಿಸುತ್ತದೆ - ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ನ ಸವಲತ್ತುಗಳು ಮತ್ತು ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ಮಾಡುವ ಸಾಮರ್ಥ್ಯದೊಂದಿಗೆ.
ರಂಝೋವರಿಯನ್ನು ರಚಿಸಲು ಖಳನಾಯಕನು ಈ ಹ್ಯಾಕ್ಗಳನ್ನು ಹೇಗೆ ಬಳಸುತ್ತಾನೆ
ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ ECALL ಗಳಲ್ಲಿ ಒಂದರ ಮೂಲಕ ನಿಯಂತ್ರಣವನ್ನು ಎನ್ಕ್ಲೇವ್ಗೆ ವರ್ಗಾಯಿಸಿದ ನಂತರ (ಈ ಎನ್ಕ್ಲೇವ್ ದುರುದ್ದೇಶಪೂರಿತವಾಗಿದೆ ಎಂದು ಅನುಮಾನಿಸದೆ), ದುರುದ್ದೇಶಪೂರಿತ ಎನ್ಕ್ಲೇವ್ ಕೋಡ್ ಅನ್ನು ಇಂಜೆಕ್ಟ್ ಮಾಡಲು ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ನ ಮೆಮೊರಿಯಲ್ಲಿ ಮುಕ್ತ ಸ್ಥಳವನ್ನು ಹುಡುಕುತ್ತದೆ (ಆ ಕೋಶಗಳ ಅನುಕ್ರಮಗಳನ್ನು ಮುಕ್ತ ಸ್ಥಳಗಳಾಗಿ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಅದು ಸೊನ್ನೆಗಳಿಂದ ತುಂಬಿದೆ). ನಂತರ ಮೂಲಕ ವಿಳಾಸಗಳನ್ನು ಓದಲು ಸಾಧ್ಯವೇ ಎಂದು ನೋಡಲು ಹ್ಯಾಕ್ ಮಾಡಿ, – ಎನ್ಕ್ಲೇವ್ ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಪುಟಗಳಿಗಾಗಿ ಹುಡುಕುತ್ತದೆ ಮತ್ತು ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ "RANSOM" ಹೆಸರಿನ ಹೊಸ ಫೈಲ್ ಅನ್ನು ರಚಿಸುವ ROP ಸರಪಳಿಯನ್ನು ರಚಿಸುತ್ತದೆ (ನೈಜ ದಾಳಿಯಲ್ಲಿ, ಎನ್ಕ್ಲೇವ್ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಬಳಕೆದಾರ ಫೈಲ್ಗಳನ್ನು ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡುತ್ತದೆ) ಮತ್ತು ಸುಲಿಗೆ ಸಂದೇಶವನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ಅದೇ ಸಮಯದಲ್ಲಿ, ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ ನಿಷ್ಕಪಟವಾಗಿ ಎನ್ಕ್ಲೇವ್ ಎರಡು ಸಂಖ್ಯೆಗಳನ್ನು ಸೇರಿಸುತ್ತಿದೆ ಎಂದು ನಂಬುತ್ತದೆ. ಕೋಡ್ನಲ್ಲಿ ಇದು ಹೇಗೆ ಕಾಣುತ್ತದೆ?
ಗ್ರಹಿಕೆಯ ಸುಲಭತೆಗಾಗಿ, ವ್ಯಾಖ್ಯಾನಗಳ ಮೂಲಕ ಕೆಲವು ಜ್ಞಾಪಕಶಾಸ್ತ್ರಗಳನ್ನು ಪರಿಚಯಿಸೋಣ:
ಪೇಲೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದ ನಂತರ ಹೋಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ನ ಸಾಮಾನ್ಯ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಪುನಃಸ್ಥಾಪಿಸಲು ನಾವು RSP ಮತ್ತು RBP ರೆಜಿಸ್ಟರ್ಗಳ ಮೂಲ ಮೌಲ್ಯಗಳನ್ನು ಉಳಿಸುತ್ತೇವೆ:
ನಾವು ಸೂಕ್ತವಾದ ಸ್ಟಾಕ್ ಫ್ರೇಮ್ಗಾಗಿ ಹುಡುಕುತ್ತಿದ್ದೇವೆ ("ನಿಯಂತ್ರಣ ಹರಿವನ್ನು ಮರುನಿರ್ದೇಶಿಸಲು ಹ್ಯಾಕ್" ವಿಭಾಗದಿಂದ ಕೋಡ್ ಅನ್ನು ನೋಡಿ).
ಸೂಕ್ತವಾದ ROP ಗ್ಯಾಜೆಟ್ಗಳನ್ನು ಹುಡುಕಲಾಗುತ್ತಿದೆ:
ಪೇಲೋಡ್ ಅನ್ನು ಚುಚ್ಚಲು ಸ್ಥಳವನ್ನು ಕಂಡುಹಿಡಿಯುವುದು:
ನಾವು ROP ಸರಪಳಿಯನ್ನು ನಿರ್ಮಿಸುತ್ತೇವೆ:
ದುರುದ್ದೇಶಪೂರಿತ ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಎದುರಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಇಂಟೆಲ್ನ SGX ತಂತ್ರಜ್ಞಾನವು ವಿರುದ್ಧ ಗುರಿಗಳನ್ನು ಸಾಧಿಸಲು ಖಳನಾಯಕರು ಹೇಗೆ ಬಳಸಿಕೊಳ್ಳುತ್ತಾರೆ.
ಮೂಲ: www.habr.com