ಇಬಿಪಿಎಫ್ ಉಪವ್ಯವಸ್ಥೆಯಲ್ಲಿನ ದೋಷಗಳು ಸ್ಪೆಕ್ಟರ್ ದಾಳಿಯ ವಿರುದ್ಧ ಬೈಪಾಸ್ ರಕ್ಷಣೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ

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

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

ಕರ್ನಲ್ 4.15 ಬಿಡುಗಡೆಯಾದಾಗಿನಿಂದ ಸಮಸ್ಯೆ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತಿದೆ ಮತ್ತು ಪ್ಯಾಚ್‌ಗಳ ರೂಪದಲ್ಲಿ ಪರಿಹರಿಸಲಾಗಿದೆ (1, 2, 3, 4). ವಿತರಣೆಗಳಲ್ಲಿ ದುರ್ಬಲತೆಯು ಸ್ಥಿರವಾಗಿಲ್ಲ (ಡೆಬಿಯನ್, ಆರ್‌ಹೆಚ್‌ಇಎಲ್, ಉಬುಂಟು, ಫೆಡೋರಾ, ಎಸ್‌ಯುಎಸ್‌ಇ, ಆರ್ಚ್).

ಹೆಚ್ಚುವರಿಯಾಗಿ, ಸ್ಪೆಕ್ಟರ್ ದುರ್ಬಲತೆಗಳ ವಿರುದ್ಧ ರಕ್ಷಿಸಲು ಉಪಕರಣಗಳ ಕಾರ್ಯಕ್ಷಮತೆಯ ಪ್ರಭಾವದ ಬಗ್ಗೆ ನೀವು ಟಿಪ್ಪಣಿಯನ್ನು ಗಮನಿಸಬಹುದು. ಟಿಪ್ಪಣಿಯು rr (ರೆಕಾರ್ಡ್ ಮತ್ತು ರಿಪ್ಲೇ) ಡೀಬಗರ್‌ನ ಆಪ್ಟಿಮೈಸೇಶನ್ ಫಲಿತಾಂಶಗಳನ್ನು ಸಾರಾಂಶಗೊಳಿಸುತ್ತದೆ, ಇದನ್ನು ಒಮ್ಮೆ ಮೊಜಿಲ್ಲಾದಲ್ಲಿ ಫೈರ್‌ಫಾಕ್ಸ್‌ನಲ್ಲಿ ಪುನರಾವರ್ತಿಸಲು ಕಷ್ಟಕರವಾದ ದೋಷಗಳನ್ನು ಡೀಬಗ್ ಮಾಡಲು ರಚಿಸಲಾಗಿದೆ. ಡೈರೆಕ್ಟರಿಗಳ ಅಸ್ತಿತ್ವವನ್ನು ಪರಿಶೀಲಿಸಲು ಬಳಸಲಾಗುವ ಸಿಸ್ಟಂ ಕರೆಗಳನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುವುದರಿಂದ ಪರೀಕ್ಷಾ ಯೋಜನೆಗಾಗಿ "rr ಮೂಲಗಳು" ಕಾರ್ಯಾಚರಣೆಯನ್ನು 3 ನಿಮಿಷ 19 ಸೆಕೆಂಡುಗಳಿಂದ 36 ಸೆಕೆಂಡುಗಳಿಗೆ ಕಡಿಮೆಗೊಳಿಸಿತು.

ಸ್ಪೆಕ್ಟರ್ ರಕ್ಷಣೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ ನಂತರ ಕಾರ್ಯಕ್ಷಮತೆ ಹೇಗೆ ಬದಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸಲು ಆಪ್ಟಿಮೈಸೇಶನ್ ಲೇಖಕರು ನಿರ್ಧರಿಸಿದ್ದಾರೆ. "ಮಿಟಿಗೇಶನ್ಸ್=ಆಫ್" ಪ್ಯಾರಾಮೀಟರ್ನೊಂದಿಗೆ ಸಿಸ್ಟಮ್ ಅನ್ನು ಬೂಟ್ ಮಾಡಿದ ನಂತರ, ಆಪ್ಟಿಮೈಸೇಶನ್ ಇಲ್ಲದೆ "ಆರ್ಆರ್ ಮೂಲಗಳ" ಎಕ್ಸಿಕ್ಯೂಶನ್ ಸಮಯವು 2 ನಿಮಿಷ 5 ಸೆಕೆಂಡುಗಳು (1.6 ಪಟ್ಟು ವೇಗವಾಗಿರುತ್ತದೆ), ಮತ್ತು ಆಪ್ಟಿಮೈಸೇಶನ್ನೊಂದಿಗೆ ಇದು 33 ಸೆಕೆಂಡುಗಳು (9% ವೇಗವಾಗಿರುತ್ತದೆ). ಕುತೂಹಲಕಾರಿಯಾಗಿ, ಸ್ಪೆಕ್ಟರ್ ರಕ್ಷಣೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದರಿಂದ ಕರ್ನಲ್ ಮಟ್ಟದಲ್ಲಿ ಕೋಡ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಸಮಯವನ್ನು 1.4 ಪಟ್ಟು ಕಡಿಮೆ ಮಾಡಿತು (2m9s ನಿಂದ 1m32s ವರೆಗೆ), ಆದರೆ ಬಳಕೆದಾರ ಜಾಗದಲ್ಲಿ (1m9s ನಿಂದ 0m33s ವರೆಗೆ) ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಮಯವನ್ನು ಅರ್ಧದಷ್ಟು ಕಡಿಮೆಗೊಳಿಸಿತು, ಸಂಭಾವ್ಯವಾಗಿ ಕಡಿಮೆಯಾದ ದಕ್ಷತೆಯ CPU ಸಂಗ್ರಹ ಕಾರ್ಯಾಚರಣೆ ಮತ್ತು TLB ಸಂಗ್ರಹಣೆಯ ಕಾರಣದಿಂದಾಗಿ. ಸ್ಪೆಕ್ಟರ್ ರಕ್ಷಣೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ ಮರುಹೊಂದಿಸುತ್ತದೆ.

ಮೂಲ: opennet.ru

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