ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಮೂಲಕ ಸ್ಪೆಕ್ಟರ್ ದುರ್ಬಲತೆಗಳ ಶೋಷಣೆಯನ್ನು Google ಪ್ರದರ್ಶಿಸುತ್ತದೆ

ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವಾಗ ಸ್ಪೆಕ್ಟರ್ ವರ್ಗದ ದುರ್ಬಲತೆಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳುವ ಸಾಧ್ಯತೆಯನ್ನು ತೋರಿಸುವ ಹಲವಾರು ಶೋಷಣೆ ಮೂಲಮಾದರಿಗಳನ್ನು Google ಪ್ರಕಟಿಸಿದೆ, ಹಿಂದೆ ಸೇರಿಸಲಾದ ರಕ್ಷಣೆ ವಿಧಾನಗಳನ್ನು ಬೈಪಾಸ್ ಮಾಡುತ್ತದೆ. ಪ್ರಸ್ತುತ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ವೆಬ್ ವಿಷಯವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುತ್ತಿರುವ ಪ್ರಕ್ರಿಯೆಯ ಮೆಮೊರಿಗೆ ಪ್ರವೇಶವನ್ನು ಪಡೆಯಲು ಶೋಷಣೆಗಳನ್ನು ಬಳಸಬಹುದು. ಶೋಷಣೆಯ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಪರೀಕ್ಷಿಸಲು, site leaky.page ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಯಿತು ಮತ್ತು ಕೆಲಸದ ತರ್ಕವನ್ನು ವಿವರಿಸುವ ಕೋಡ್ ಅನ್ನು GitHub ನಲ್ಲಿ ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ.

ಪ್ರಸ್ತಾವಿತ ಮೂಲಮಾದರಿಯು Linux ಮತ್ತು Chrome 7 ಪರಿಸರದಲ್ಲಿ Intel Core i6500-88U ಪ್ರೊಸೆಸರ್‌ಗಳೊಂದಿಗೆ ಸಿಸ್ಟಂಗಳ ಮೇಲೆ ದಾಳಿ ಮಾಡಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಇತರ ಪರಿಸರಗಳಿಗೆ ಶೋಷಣೆಯನ್ನು ಅನ್ವಯಿಸಲು ಬದಲಾವಣೆಗಳ ಅಗತ್ಯವಿದೆ. ಶೋಷಣೆಯ ವಿಧಾನವು ಇಂಟೆಲ್ ಪ್ರೊಸೆಸರ್‌ಗಳಿಗೆ ನಿರ್ದಿಷ್ಟವಾಗಿಲ್ಲ - ಸೂಕ್ತವಾದ ಅಳವಡಿಕೆಯ ನಂತರ, ARM ಆರ್ಕಿಟೆಕ್ಚರ್‌ನ ಆಧಾರದ ಮೇಲೆ Apple M1 ಸೇರಿದಂತೆ ಇತರ ತಯಾರಕರ CPU ಗಳೊಂದಿಗಿನ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಶೋಷಣೆಯನ್ನು ದೃಢೀಕರಿಸಲಾಗಿದೆ. ಸಣ್ಣ ಹೊಂದಾಣಿಕೆಗಳ ನಂತರ, ಕ್ರೋಮಿಯಂ ಎಂಜಿನ್ ಆಧಾರಿತ ಇತರ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗಳು ಮತ್ತು ಇತರ ಬ್ರೌಸರ್‌ಗಳಲ್ಲಿ ಶೋಷಣೆಯು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.

ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಕ್ರೋಮ್ 88 ಮತ್ತು ಇಂಟೆಲ್ ಸ್ಕೈಲೇಕ್ ಪ್ರೊಸೆಸರ್‌ಗಳನ್ನು ಆಧರಿಸಿದ ಪರಿಸರದಲ್ಲಿ, ಪ್ರಸ್ತುತ ಕ್ರೋಮ್ ಟ್ಯಾಬ್‌ನಲ್ಲಿ (ರೆಂಡರರ್ ಪ್ರಕ್ರಿಯೆ) ಪ್ರತಿ ಸೆಕೆಂಡಿಗೆ 1 ಕಿಲೋಬೈಟ್ ದರದಲ್ಲಿ ವೆಬ್ ವಿಷಯವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಜವಾಬ್ದಾರಿಯುತ ಪ್ರಕ್ರಿಯೆಯಿಂದ ಡೇಟಾ ಸೋರಿಕೆಯಾಗಿದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಪರ್ಯಾಯ ಮೂಲಮಾದರಿಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, 8 ಮೈಕ್ರೋಸೆಕೆಂಡ್‌ಗಳ (5 ಮಿಲಿಸೆಕೆಂಡ್‌ಗಳು) ನಿಖರತೆಯೊಂದಿಗೆ performance.now() ಟೈಮರ್ ಅನ್ನು ಬಳಸುವಾಗ ಸೋರಿಕೆ ದರವನ್ನು 0.005kB / s ಗೆ ಹೆಚ್ಚಿಸಲು ಸ್ಥಿರತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುವ ವೆಚ್ಚದಲ್ಲಿ ಅನುಮತಿಸುವ ಒಂದು ಶೋಷಣೆ. . ಒಂದು ರೂಪಾಂತರವನ್ನು ಸಹ ಸಿದ್ಧಪಡಿಸಲಾಗಿದೆ, ಒಂದು ಮಿಲಿಸೆಕೆಂಡ್‌ನ ಟೈಮರ್ ನಿಖರತೆಯೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಇದನ್ನು ಸೆಕೆಂಡಿಗೆ ಸುಮಾರು 60 ಬೈಟ್‌ಗಳ ವೇಗದಲ್ಲಿ ಮತ್ತೊಂದು ಪ್ರಕ್ರಿಯೆಯ ಮೆಮೊರಿಗೆ ಪ್ರವೇಶವನ್ನು ಸಂಘಟಿಸಲು ಬಳಸಬಹುದು.

ಪ್ರಕಟಿತ ಡೆಮೊ ಕೋಡ್ ಮೂರು ಭಾಗಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. CPU ಸೂಚನೆಗಳ ಊಹಾತ್ಮಕ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯ ಪರಿಣಾಮವಾಗಿ ಪ್ರೊಸೆಸರ್ ಸಂಗ್ರಹದಲ್ಲಿ ಉಳಿದಿರುವ ಡೇಟಾವನ್ನು ಮರುಸ್ಥಾಪಿಸಲು ಅಗತ್ಯವಿರುವ ಕಾರ್ಯಾಚರಣೆಗಳ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಮಯವನ್ನು ಅಂದಾಜು ಮಾಡಲು ಮೊದಲ ಭಾಗವು ಟೈಮರ್ ಅನ್ನು ಮಾಪನಾಂಕ ಮಾಡುತ್ತದೆ. ಎರಡನೇ ಭಾಗವು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅರೇ ಅನ್ನು ನಿಯೋಜಿಸುವಾಗ ಬಳಸಲಾಗುವ ಮೆಮೊರಿ ಲೇಔಟ್ ಅನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ.

ಕೆಲವು ಕಾರ್ಯಾಚರಣೆಗಳ ಊಹಾತ್ಮಕ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಪರಿಸ್ಥಿತಿಗಳನ್ನು ರಚಿಸುವ ಪರಿಣಾಮವಾಗಿ ಪ್ರಸ್ತುತ ಪ್ರಕ್ರಿಯೆಯ ಮೆಮೊರಿಯ ವಿಷಯಗಳನ್ನು ನಿರ್ಧರಿಸಲು ಮೂರನೇ ಭಾಗವು ಸ್ಪೆಕ್ಟರ್ ದುರ್ಬಲತೆಯನ್ನು ನೇರವಾಗಿ ಬಳಸಿಕೊಳ್ಳುತ್ತದೆ, ಇದರ ಫಲಿತಾಂಶವು ವಿಫಲವಾದ ಮುನ್ಸೂಚನೆಯನ್ನು ನಿರ್ಧರಿಸಿದ ನಂತರ ಪ್ರೊಸೆಸರ್ನಿಂದ ತಿರಸ್ಕರಿಸಲ್ಪಡುತ್ತದೆ, ಆದರೆ ಮರಣದಂಡನೆ ಕುರುಹುಗಳನ್ನು ಸಾಮಾನ್ಯ ಸಂಗ್ರಹದಲ್ಲಿ ಠೇವಣಿ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ಕ್ಯಾಶ್ ಮಾಡಿದ ಮತ್ತು ಕ್ಯಾಶ್ ಮಾಡದ ಡೇಟಾಗೆ ಪ್ರವೇಶ ಸಮಯದಲ್ಲಿ ಬದಲಾವಣೆಗಳನ್ನು ವಿಶ್ಲೇಷಿಸುವ ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಚಾನಲ್‌ಗಳ ಮೂಲಕ ಸಂಗ್ರಹದ ವಿಷಯಗಳನ್ನು ನಿರ್ಧರಿಸುವ ವಿಧಾನಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಮರುಸ್ಥಾಪಿಸಬಹುದು.

ಪ್ರಸ್ತಾಪಿತ ಶೋಷಣೆ ತಂತ್ರವು performance.now() API ಮೂಲಕ ಲಭ್ಯವಿರುವ ಹೆಚ್ಚಿನ-ನಿಖರವಾದ ಟೈಮರ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ ಮತ್ತು ಹಂಚಿಕೊಂಡ ಮೆಮೊರಿಯಲ್ಲಿ ಅರೇಗಳನ್ನು ರಚಿಸಲು ಅನುಮತಿಸುವ SharedArrayBuffer ಪ್ರಕಾರಕ್ಕೆ ಬೆಂಬಲವಿಲ್ಲದೆ. ಶೋಷಣೆಯು ನಿಯಂತ್ರಿತ ಊಹಾತ್ಮಕ ಕೋಡ್ ಎಕ್ಸಿಕ್ಯೂಶನ್‌ಗೆ ಕಾರಣವಾಗುವ ಸ್ಪೆಕ್ಟರ್ ಗ್ಯಾಜೆಟ್ ಮತ್ತು ಸೈಡ್-ಚಾನೆಲ್ ಲೀಕ್ ವಿಶ್ಲೇಷಕವನ್ನು ಒಳಗೊಂಡಿದೆ, ಇದು ಕ್ಯಾಶ್‌ಗೆ ಸಿಕ್ಕಿದ ಊಹಾತ್ಮಕ ಮರಣದಂಡನೆಯ ಸಮಯದಲ್ಲಿ ಪಡೆದ ಡೇಟಾವನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ.

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

ಸ್ಪೆಕ್ಟರ್ ವರ್ಗದ ದುರ್ಬಲತೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ದಾಳಿಯ ನೈಜತೆಯನ್ನು ತೋರಿಸಲು ಮತ್ತು ಅಂತಹ ದಾಳಿಯಿಂದ ಅಪಾಯಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುವ ತಂತ್ರಗಳನ್ನು ಬಳಸಲು ವೆಬ್ ಡೆವಲಪರ್‌ಗಳನ್ನು ಉತ್ತೇಜಿಸಲು ಗೂಗಲ್ ಮೂಲಮಾದರಿಯ ಶೋಷಣೆಯನ್ನು ಪ್ರಕಟಿಸಿದೆ ಎಂದು ಗಮನಿಸಲಾಗಿದೆ. ಅದೇ ಸಮಯದಲ್ಲಿ, ಪ್ರಸ್ತಾವಿತ ಮೂಲಮಾದರಿಯ ಗಮನಾರ್ಹ ಪರಿಷ್ಕರಣೆಯಿಲ್ಲದೆ, ಪ್ರದರ್ಶನಕ್ಕೆ ಮಾತ್ರವಲ್ಲದೆ ವ್ಯಾಪಕ ಬಳಕೆಗೆ ಸಿದ್ಧವಾಗಿರುವ ಸಾರ್ವತ್ರಿಕ ಶೋಷಣೆಗಳನ್ನು ರಚಿಸುವುದು ಅಸಾಧ್ಯವೆಂದು ಗೂಗಲ್ ನಂಬುತ್ತದೆ.

ಅಪಾಯವನ್ನು ಕಡಿಮೆ ಮಾಡಲು, ಸೈಟ್ ಮಾಲೀಕರು ಇತ್ತೀಚೆಗೆ ಅಳವಡಿಸಲಾದ ಕ್ರಾಸ್-ಆರಿಜಿನ್ ಓಪನರ್ ಪಾಲಿಸಿ (COOP), ಕ್ರಾಸ್-ಆರಿಜಿನ್ ಎಂಬೆಡರ್ ಪಾಲಿಸಿ (COEP), ಕ್ರಾಸ್-ಆರಿಜಿನ್ ರಿಸೋರ್ಸ್ ಪಾಲಿಸಿ (CORP), ಮೆಟಾಡೇಟಾ ವಿನಂತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳಿ, X-ಫ್ರೇಮ್-ಆಯ್ಕೆಗಳನ್ನು ಬಳಸಲು ಪ್ರೋತ್ಸಾಹಿಸಲಾಗುತ್ತದೆ. X -ವಿಷಯ-ಪ್ರಕಾರ-ಆಯ್ಕೆಗಳು ಮತ್ತು SameSite ಕುಕೀಸ್. ಈ ಕಾರ್ಯವಿಧಾನಗಳು ದಾಳಿಯಿಂದ ನೇರವಾಗಿ ರಕ್ಷಿಸುವುದಿಲ್ಲ, ಆದರೆ ಆಕ್ರಮಣಕಾರರ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಪ್ರಕ್ರಿಯೆಗಳಲ್ಲಿ ಸೋರಿಕೆಯಿಂದ ಸೈಟ್ ಡೇಟಾವನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು ಅನುಮತಿಸುತ್ತದೆ (ಸೋರಿಕೆಯು ಪ್ರಸ್ತುತ ಪ್ರಕ್ರಿಯೆಯ ಮೆಮೊರಿಯಿಂದ ಸಂಭವಿಸುತ್ತದೆ, ಇದರಲ್ಲಿ ಆಕ್ರಮಣಕಾರರ ಕೋಡ್ ಜೊತೆಗೆ ಡೇಟಾ ಅದೇ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ತೆರೆಯಲಾದ ಮತ್ತೊಂದು ಸೈಟ್‌ನಿಂದ). ವಿಶ್ವಾಸಾರ್ಹವಲ್ಲದ ಮೂಲಗಳಿಂದ ಪಡೆದ ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಕೋಡ್‌ನಿಂದ ಸೈಟ್ ಕೋಡ್‌ನ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ವಿಭಿನ್ನ ಪ್ರಕ್ರಿಯೆಗಳಲ್ಲಿ ಪ್ರತ್ಯೇಕಿಸುವುದು ಮುಖ್ಯ ಆಲೋಚನೆಯಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, ಐಫ್ರೇಮ್ ಮೂಲಕ ಸೇರಿಸಲಾಗಿದೆ.



ಮೂಲ: opennet.ru

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