ಸೂಕ್ಷ್ಮ ಡೇಟಾವನ್ನು ಹೊರತೆಗೆಯಲು ಅಥವಾ ಎನ್‌ಕ್ಲೇವ್‌ನಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು Intel SGX ಮೇಲೆ ದಾಳಿ ಮಾಡಿ

ಚೀನಾದ ಪೀಪಲ್ಸ್ ಲಿಬರೇಶನ್ ಆರ್ಮಿಯ ರಕ್ಷಣಾ ವಿಜ್ಞಾನ ಮತ್ತು ತಂತ್ರಜ್ಞಾನ ವಿಶ್ವವಿದ್ಯಾಲಯ, ಸಿಂಗಾಪುರದ ರಾಷ್ಟ್ರೀಯ ವಿಶ್ವವಿದ್ಯಾಲಯ ಮತ್ತು ETH ಜ್ಯೂರಿಚ್‌ನ ಸಂಶೋಧಕರು ಪ್ರತ್ಯೇಕವಾದ Intel SGX (ಸಾಫ್ಟ್‌ವೇರ್ ಗಾರ್ಡ್ ವಿಸ್ತರಣೆಗಳು) ಎನ್‌ಕ್ಲೇವ್‌ಗಳ ವಿರುದ್ಧ ಹೊಸ ದಾಳಿ ವಿಧಾನವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ್ದಾರೆ. ದಾಳಿಯನ್ನು ಸ್ಮಾಶ್ಎಕ್ಸ್ ಎಂದು ಕರೆಯಲಾಯಿತು ಮತ್ತು ಇಂಟೆಲ್ ಎಸ್‌ಜಿಎಕ್ಸ್‌ಗಾಗಿ ರನ್‌ಟೈಮ್ ಘಟಕಗಳ ಕಾರ್ಯಾಚರಣೆಯ ಸಮಯದಲ್ಲಿ ವಿನಾಯಿತಿಗಳನ್ನು ನಿರ್ವಹಿಸುವಲ್ಲಿನ ಮರುಪ್ರವೇಶದ ಸಮಸ್ಯೆಗಳಿಂದ ಉಂಟಾಗಿದೆ. ಕಾರ್ಯಾಚರಣಾ ವ್ಯವಸ್ಥೆಯ ಮೇಲೆ ನಿಯಂತ್ರಣವಿದ್ದಲ್ಲಿ, ಎನ್‌ಕ್ಲೇವ್‌ನಲ್ಲಿರುವ ಗೌಪ್ಯ ಡೇಟಾವನ್ನು ನಿರ್ಧರಿಸಲು ಅಥವಾ ಎನ್‌ಕ್ಲೇವ್‌ನ ಮೆಮೊರಿಗೆ ಒಬ್ಬರ ಕೋಡ್‌ನ ನಕಲು ಮತ್ತು ಅದರ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಸಂಘಟಿಸಲು ಉದ್ದೇಶಿತ ದಾಳಿ ವಿಧಾನವು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ.

Intel SGX SDK (CVE-2021-0186) ಮತ್ತು Microsoft Open Enclave (CVE-2021-33767) ಆಧಾರಿತ ರನ್‌ಟೈಮ್ ಎನ್‌ಕ್ಲೇವ್‌ಗಳಿಗಾಗಿ ಎಕ್ಸ್‌ಪ್ಲೋಯಿಟ್ ಪ್ರೊಟೊಟೈಪ್‌ಗಳನ್ನು ಸಿದ್ಧಪಡಿಸಲಾಗಿದೆ. ಮೊದಲ ಪ್ರಕರಣದಲ್ಲಿ, HTTPS ಗಾಗಿ ವೆಬ್ ಸರ್ವರ್‌ನಲ್ಲಿ ಬಳಸಲಾದ RSA ಕೀಲಿಯನ್ನು ಹೊರತೆಗೆಯುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಪ್ರದರ್ಶಿಸಲಾಯಿತು, ಮತ್ತು ಎರಡನೆಯದರಲ್ಲಿ, ಎನ್‌ಕ್ಲೇವ್‌ನೊಳಗೆ ಚಾಲನೆಯಲ್ಲಿರುವ ಕರ್ಲ್ ಉಪಯುಕ್ತತೆಯಿಂದ ಪಡೆದ ವಿಷಯವನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಯಿತು. ಇಂಟೆಲ್ SGX SDK 2.13 ಮತ್ತು ಓಪನ್ ಎನ್‌ಕ್ಲೇವ್ 0.17.1 ಬಿಡುಗಡೆಗಳಲ್ಲಿ ದುರ್ಬಲತೆಯನ್ನು ಈಗಾಗಲೇ ಪ್ರೋಗ್ರಾಮ್ಯಾಟಿಕ್‌ನಲ್ಲಿ ಸರಿಪಡಿಸಲಾಗಿದೆ. Intel SGX SDK ಮತ್ತು Microsoft Open Enclave ಜೊತೆಗೆ, ದುರ್ಬಲತೆಯು Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX ಮತ್ತು ವೆರಾಕ್ರಜ್‌ನಲ್ಲಿಯೂ ಸಹ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ.

SGX (ಸಾಫ್ಟ್‌ವೇರ್ ಗಾರ್ಡ್ ವಿಸ್ತರಣೆಗಳು) ತಂತ್ರಜ್ಞಾನವು ಆರನೇ ತಲೆಮಾರಿನ ಇಂಟೆಲ್ ಕೋರ್ ಪ್ರೊಸೆಸರ್‌ಗಳಲ್ಲಿ (ಸ್ಕೈಲೇಕ್) ಕಾಣಿಸಿಕೊಂಡಿದೆ ಮತ್ತು ಬಳಕೆದಾರರ ಮಟ್ಟದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಮುಚ್ಚಿದ ಮೆಮೊರಿ ಪ್ರದೇಶಗಳನ್ನು ನಿಯೋಜಿಸಲು ಅನುಮತಿಸುವ ಸೂಚನೆಗಳ ಸರಣಿಯನ್ನು ನೀಡುತ್ತದೆ - ಎನ್‌ಕ್ಲೇವ್‌ಗಳ ವಿಷಯಗಳನ್ನು ಓದಲು ಮತ್ತು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ರಿಂಗ್0, SMM ಮತ್ತು VMM ವಿಧಾನಗಳಲ್ಲಿ ಕರ್ನಲ್ ಮತ್ತು ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಸಾಂಪ್ರದಾಯಿಕ ಜಂಪ್ ಕಾರ್ಯಗಳು ಮತ್ತು ರೆಜಿಸ್ಟರ್‌ಗಳು ಮತ್ತು ಸ್ಟಾಕ್‌ನೊಂದಿಗೆ ಮ್ಯಾನಿಪ್ಯುಲೇಷನ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಎನ್‌ಕ್ಲೇವ್‌ನಲ್ಲಿನ ಕೋಡ್‌ಗೆ ನಿಯಂತ್ರಣವನ್ನು ವರ್ಗಾಯಿಸುವುದು ಅಸಾಧ್ಯ - ವಿಶೇಷವಾಗಿ ರಚಿಸಲಾದ ಹೊಸ ಸೂಚನೆಗಳು EENTER, EEXIT ಮತ್ತು ERESUME ಅನ್ನು ಎನ್‌ಕ್ಲೇವ್‌ಗೆ ನಿಯಂತ್ರಣವನ್ನು ವರ್ಗಾಯಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ, ಇದು ಅಧಿಕೃತ ಪರಿಶೀಲನೆಗಳನ್ನು ಮಾಡುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಎನ್‌ಕ್ಲೇವ್‌ನಲ್ಲಿ ಇರಿಸಲಾದ ಕೋಡ್ ಎನ್‌ಕ್ಲೇವ್‌ನ ಒಳಗೆ ಕಾರ್ಯಗಳನ್ನು ಕರೆಯಲು ಕ್ಲಾಸಿಕ್ ಕರೆ ವಿಧಾನಗಳನ್ನು ಮತ್ತು ಬಾಹ್ಯ ಕಾರ್ಯಗಳನ್ನು ಕರೆಯಲು ವಿಶೇಷ ಸೂಚನೆಯನ್ನು ಬಳಸಬಹುದು. DRAM ಸಂಪರ್ಕದಂತಹ ಹಾರ್ಡ್‌ವೇರ್ ದಾಳಿಯಿಂದ ರಕ್ಷಿಸಲು ಎನ್‌ಕ್ಲೇವ್ ಮೆಮೊರಿ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.

ಸೂಕ್ಷ್ಮ ಡೇಟಾವನ್ನು ಹೊರತೆಗೆಯಲು ಅಥವಾ ಎನ್‌ಕ್ಲೇವ್‌ನಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು Intel SGX ಮೇಲೆ ದಾಳಿ ಮಾಡಿ

ಸಮಸ್ಯೆ ಏನೆಂದರೆ, SGX ತಂತ್ರಜ್ಞಾನವು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗೆ ಹಾರ್ಡ್‌ವೇರ್ ವಿನಾಯಿತಿಯನ್ನು ಎಸೆಯುವ ಮೂಲಕ ಎನ್‌ಕ್ಲೇವ್‌ನ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಅಡ್ಡಿಪಡಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಮತ್ತು ಎನ್‌ಕ್ಲೇವ್‌ಗಳು ಅಂತಹ ವಿನಾಯಿತಿಗಳನ್ನು ಪರಮಾಣುವಾಗಿ ನಿರ್ವಹಿಸಲು ಪ್ರಾಚೀನತೆಯನ್ನು ಸರಿಯಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸುವುದಿಲ್ಲ. ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಕರ್ನಲ್ ಮತ್ತು ಸಾಮಾನ್ಯ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಂತಲ್ಲದೆ, ಎನ್‌ಕ್ಲೇವ್‌ಗಳ ಒಳಗಿನ ಕೋಡ್ ಅಸಮಕಾಲಿಕವಾಗಿ ಬೆಳೆದ ವಿನಾಯಿತಿಗಳ ನಿರ್ವಹಣೆಯ ಸಮಯದಲ್ಲಿ ಪರಮಾಣು ಕ್ರಿಯೆಗಳನ್ನು ಸಂಘಟಿಸಲು ಪ್ರಾಚೀನತೆಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ. ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಪರಮಾಣು ಮೂಲಗಳು ಇಲ್ಲದೆ, ಎನ್‌ಕ್ಲೇವ್‌ನಲ್ಲಿ ನಿರ್ಣಾಯಕ ವಿಭಾಗಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿರುವಾಗ ಮತ್ತು ಅದು ಅಸುರಕ್ಷಿತ ಸ್ಥಿತಿಯಲ್ಲಿದ್ದಾಗ (ಉದಾಹರಣೆಗೆ, ಸಿಪಿಯು ರೆಜಿಸ್ಟರ್‌ಗಳನ್ನು ಉಳಿಸದಿರುವಾಗ/ಮರುಸ್ಥಾಪಿಸದಿದ್ದಾಗ) ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಎನ್‌ಕ್ಲೇವ್ ಅನ್ನು ಅಡ್ಡಿಪಡಿಸಬಹುದು ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು. .

ಸೂಕ್ಷ್ಮ ಡೇಟಾವನ್ನು ಹೊರತೆಗೆಯಲು ಅಥವಾ ಎನ್‌ಕ್ಲೇವ್‌ನಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು Intel SGX ಮೇಲೆ ದಾಳಿ ಮಾಡಿ

ಸಾಮಾನ್ಯ ಕಾರ್ಯಾಚರಣೆಗಾಗಿ, ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದಾದ ಹಾರ್ಡ್‌ವೇರ್ ವಿನಾಯಿತಿಗಳೊಂದಿಗೆ ಎನ್‌ಕ್ಲೇವ್‌ನ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಅಡ್ಡಿಪಡಿಸಲು SGX ತಂತ್ರಜ್ಞಾನವು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಈ ವೈಶಿಷ್ಟ್ಯವು ಎನ್‌ಕ್ಲೇವ್ ರನ್‌ಟೈಮ್‌ಗಳನ್ನು ಇಂಟ್ರಾ-ಎನ್‌ಕ್ಲೇವ್ ಎಕ್ಸೆಪ್ಶನ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ ಅಥವಾ ಸಿಗ್ನಲ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಅನುಮತಿಸುತ್ತದೆ, ಆದರೆ ಇದು ಮರುಪ್ರವೇಶ ದೋಷಗಳನ್ನು ಸಹ ಪರಿಚಯಿಸಬಹುದು. SmashEx ದಾಳಿಯು SDK ಯಲ್ಲಿನ ದೋಷಗಳ ಶೋಷಣೆಯನ್ನು ಆಧರಿಸಿದೆ, ಇದರಿಂದಾಗಿ ವಿನಾಯಿತಿ ಹ್ಯಾಂಡ್ಲರ್ನ ಮರು-ಕರೆ ಮಾಡುವ ಪರಿಸ್ಥಿತಿಯನ್ನು ಸರಿಯಾಗಿ ನಿರ್ವಹಿಸಲಾಗಿಲ್ಲ. ದುರ್ಬಲತೆಯನ್ನು ಬಳಸಿಕೊಳ್ಳುವ ಸಲುವಾಗಿ, ಆಕ್ರಮಣಕಾರರು ಎನ್ಕ್ಲೇವ್ನ ಮರಣದಂಡನೆಯನ್ನು ಅಡ್ಡಿಪಡಿಸಲು ಶಕ್ತರಾಗಿರಬೇಕು, ಅಂದರೆ. ಸಿಸ್ಟಮ್ ಪರಿಸರದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನಿಯಂತ್ರಿಸಬೇಕು.

ಒಂದು ವಿನಾಯಿತಿಯನ್ನು ಎಸೆದ ನಂತರ, ಆಕ್ರಮಣಕಾರರು ಸಣ್ಣ ಸಮಯದ ವಿಂಡೋವನ್ನು ಪಡೆಯುತ್ತಾರೆ, ಈ ಸಮಯದಲ್ಲಿ ಇನ್ಪುಟ್ ನಿಯತಾಂಕಗಳ ಕುಶಲತೆಯ ಮೂಲಕ ಮರಣದಂಡನೆಯ ಹರಿವನ್ನು ಪ್ರತಿಬಂಧಿಸಲು ಸಾಧ್ಯವಿದೆ. ನಿರ್ದಿಷ್ಟವಾಗಿ ಹೇಳುವುದಾದರೆ, ನೀವು ಸಿಸ್ಟಮ್‌ಗೆ (ಎನ್‌ಕ್ಲೇವ್‌ನ ಹೊರಗಿನ ಪರಿಸರ) ಪ್ರವೇಶವನ್ನು ಹೊಂದಿದ್ದರೆ, ಎನ್‌ಕ್ಲೇವ್ (EENTER) ಅನ್ನು ನಮೂದಿಸುವ ಸೂಚನೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದ ನಂತರ ನೀವು ಹೊಸ ವಿನಾಯಿತಿಯನ್ನು ರಚಿಸಬಹುದು, ಅದು ಸ್ಟಾಕ್ ಕಾನ್ಫಿಗರೇಶನ್ ಹಂತದಲ್ಲಿ ಸಿಸ್ಟಮ್‌ಗೆ ನಿಯಂತ್ರಣವನ್ನು ನೀಡುತ್ತದೆ ಏಕೆಂದರೆ ಎನ್‌ಕ್ಲೇವ್ ಇನ್ನೂ ಪೂರ್ಣಗೊಂಡಿಲ್ಲ, ಇದರಲ್ಲಿ ಈ ಸಂಖ್ಯೆಯು CPU ರೆಜಿಸ್ಟರ್‌ಗಳ ಸ್ಥಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ.

ಸಿಸ್ಟಮ್ ನಂತರ ನಿಯಂತ್ರಣವನ್ನು ಎನ್‌ಕ್ಲೇವ್‌ಗೆ ಹಿಂತಿರುಗಿಸಬಹುದು, ಆದರೆ ಅಡಚಣೆಯ ಸಮಯದಲ್ಲಿ ಎನ್‌ಕ್ಲೇವ್ ಸ್ಟಾಕ್ ಅನ್ನು ಹೊಂದಿಸಲಾಗಿಲ್ಲವಾದ್ದರಿಂದ, ಸಿಸ್ಟಮ್ ಮೆಮೊರಿಯಲ್ಲಿ ವಾಸಿಸುವ ಸ್ಟಾಕ್‌ನೊಂದಿಗೆ ಎನ್‌ಕ್ಲೇವ್ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತದೆ, ಇದನ್ನು ರಿಟರ್ನ್-ಓರಿಯೆಂಟೆಡ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಅನ್ನು ಅನ್ವಯಿಸಲು ಬಳಸಬಹುದು ( ROP) ತಂತ್ರಗಳು. ಆಧಾರಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್). ROP ತಂತ್ರವನ್ನು ಬಳಸುವಾಗ, ಆಕ್ರಮಣಕಾರನು ತನ್ನ ಕೋಡ್ ಅನ್ನು ಮೆಮೊರಿಯಲ್ಲಿ ಇರಿಸಲು ಪ್ರಯತ್ನಿಸುವುದಿಲ್ಲ, ಆದರೆ ಲೋಡ್ ಮಾಡಲಾದ ಲೈಬ್ರರಿಗಳಲ್ಲಿ ಈಗಾಗಲೇ ಲಭ್ಯವಿರುವ ಯಂತ್ರ ಸೂಚನೆಗಳ ತುಣುಕುಗಳ ಮೇಲೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಾನೆ, ನಿಯಂತ್ರಣ ರಿಟರ್ನ್ ಸೂಚನೆಯೊಂದಿಗೆ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ (ನಿಯಮದಂತೆ, ಇವು ಗ್ರಂಥಾಲಯದ ಅಂತ್ಯಗಳಾಗಿವೆ. ಕಾರ್ಯಗಳು). ಶೋಷಣೆಯ ಕಾರ್ಯಾಚರಣೆಯು ಅಪೇಕ್ಷಿತ ಕಾರ್ಯವನ್ನು ಪಡೆಯಲು ಒಂದೇ ರೀತಿಯ ಬ್ಲಾಕ್‌ಗಳಿಗೆ ("ಗ್ಯಾಜೆಟ್‌ಗಳು") ಕರೆಗಳ ಸರಪಳಿಯನ್ನು ನಿರ್ಮಿಸಲು ಬರುತ್ತದೆ.

ಸೂಕ್ಷ್ಮ ಡೇಟಾವನ್ನು ಹೊರತೆಗೆಯಲು ಅಥವಾ ಎನ್‌ಕ್ಲೇವ್‌ನಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು Intel SGX ಮೇಲೆ ದಾಳಿ ಮಾಡಿ
ಸೂಕ್ಷ್ಮ ಡೇಟಾವನ್ನು ಹೊರತೆಗೆಯಲು ಅಥವಾ ಎನ್‌ಕ್ಲೇವ್‌ನಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು Intel SGX ಮೇಲೆ ದಾಳಿ ಮಾಡಿ


ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ