ಇಬಿಪಿಎಫ್‌ನಲ್ಲಿನ ದೋಷಗಳು ಸ್ಪೆಕ್ಟರ್ 4 ದಾಳಿಯ ರಕ್ಷಣೆಯನ್ನು ಬೈಪಾಸ್ ಮಾಡಬಹುದು

ಲಿನಕ್ಸ್ ಕರ್ನಲ್‌ನಲ್ಲಿ ಎರಡು ದುರ್ಬಲತೆಗಳನ್ನು ಗುರುತಿಸಲಾಗಿದೆ ಅದು eBPF ಉಪವ್ಯವಸ್ಥೆಯನ್ನು ಸ್ಪೆಕ್ಟರ್ v4 ದಾಳಿಯ (SSB, ಸ್ಪೆಕ್ಯುಲೇಟಿವ್ ಸ್ಟೋರ್ ಬೈಪಾಸ್) ವಿರುದ್ಧ ರಕ್ಷಣೆಯನ್ನು ಬೈಪಾಸ್ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ. ಸವಲತ್ತುಗಳಿಲ್ಲದ BPF ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಬಳಸಿಕೊಂಡು, ಆಕ್ರಮಣಕಾರರು ಕೆಲವು ಕಾರ್ಯಾಚರಣೆಗಳ ಊಹಾತ್ಮಕ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಪರಿಸ್ಥಿತಿಗಳನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು ಕರ್ನಲ್ ಮೆಮೊರಿಯ ಅನಿಯಂತ್ರಿತ ಪ್ರದೇಶಗಳ ವಿಷಯಗಳನ್ನು ನಿರ್ಧರಿಸಬಹುದು. ಕರ್ನಲ್‌ನಲ್ಲಿನ eBPF ಉಪವ್ಯವಸ್ಥೆಗಳ ನಿರ್ವಾಹಕರು ಪ್ರಾಯೋಗಿಕವಾಗಿ ದಾಳಿಗಳನ್ನು ನಡೆಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಪ್ರದರ್ಶಿಸುವ ಮೂಲಮಾದರಿಯ ಶೋಷಣೆಗೆ ಪ್ರವೇಶವನ್ನು ಪಡೆದರು. ಸಮಸ್ಯೆಗಳನ್ನು ಪ್ಯಾಚ್‌ಗಳ ರೂಪದಲ್ಲಿ (1, 2) ಪರಿಹರಿಸಲಾಗಿದೆ, ಇದನ್ನು ಮುಂದಿನ ಲಿನಕ್ಸ್ ಕರ್ನಲ್ ನವೀಕರಣದಲ್ಲಿ ಸೇರಿಸಲಾಗುತ್ತದೆ. ವಿತರಣಾ ಕಿಟ್‌ಗಳಲ್ಲಿನ ನವೀಕರಣಗಳನ್ನು ಇನ್ನೂ ರಚಿಸಲಾಗಿಲ್ಲ (ಡೆಬಿಯನ್, ಆರ್‌ಹೆಚ್‌ಇಎಲ್, ಎಸ್‌ಯುಎಸ್‌ಇ, ಆರ್ಚ್, ಫೆಡೋರಾ, ಉಬುಂಟು).

ಸ್ಪೆಕ್ಟರ್ 4 ದಾಳಿ ವಿಧಾನವು ಪರೋಕ್ಷ ವಿಳಾಸವನ್ನು ಬಳಸಿಕೊಂಡು ಪರ್ಯಾಯ ಬರೆಯುವ ಮತ್ತು ಓದುವ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವಾಗ ಕಾರ್ಯಾಚರಣೆಗಳ ಊಹಾತ್ಮಕ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯ ಫಲಿತಾಂಶವನ್ನು ತ್ಯಜಿಸಿದ ನಂತರ ಪ್ರೊಸೆಸರ್ ಸಂಗ್ರಹದಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಡೇಟಾವನ್ನು ಮರುಸ್ಥಾಪಿಸುವ ಮೇಲೆ ಆಧಾರಿತವಾಗಿದೆ. ಓದುವ ಕಾರ್ಯಾಚರಣೆಯು ಬರೆಯುವ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಅನುಸರಿಸಿದಾಗ (ಉದಾ., mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), ಇದೇ ರೀತಿಯ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸುವುದರಿಂದ ಓದುವ ವಿಳಾಸದ ಆಫ್‌ಸೆಟ್ ಈಗಾಗಲೇ ತಿಳಿದಿರಬಹುದು (ಓದುವ ಕಾರ್ಯಾಚರಣೆಗಳು ಹೆಚ್ಚು ಆಗಾಗ್ಗೆ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಕ್ಯಾಶ್‌ನಿಂದ ಓದುವಿಕೆಯನ್ನು ನಿರ್ವಹಿಸಬಹುದು) ಮತ್ತು ಬರಹದ ಪರೋಕ್ಷ ಆಫ್‌ಸೆಟ್ ಅನ್ನು ಲೆಕ್ಕಹಾಕಲು ಕಾಯದೆ ಪ್ರೊಸೆಸರ್ ಬರೆಯುವ ಮೊದಲು ಓದುವಿಕೆಯನ್ನು ಊಹಾತ್ಮಕವಾಗಿ ನಿರ್ವಹಿಸುತ್ತದೆ.

ಆಫ್‌ಸೆಟ್ ಅನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಿದ ನಂತರ, ಬರೆಯಲು ಮತ್ತು ಓದಲು ಮೆಮೊರಿ ಪ್ರದೇಶಗಳ ಛೇದಕ ಪತ್ತೆಯಾದರೆ, ಪ್ರೊಸೆಸರ್ ಈಗಾಗಲೇ ಊಹಾತ್ಮಕವಾಗಿ ಪಡೆದ ಓದಿದ ಫಲಿತಾಂಶವನ್ನು ತಿರಸ್ಕರಿಸುತ್ತದೆ ಮತ್ತು ಈ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಪುನರಾವರ್ತಿಸುತ್ತದೆ. ಸ್ಟೋರ್ ಕಾರ್ಯಾಚರಣೆಯು ಇನ್ನೂ ಪೂರ್ಣಗೊಂಡಿಲ್ಲದಿರುವಾಗ ಕೆಲವು ವಿಳಾಸದಲ್ಲಿ ಹಳೆಯ ಮೌಲ್ಯವನ್ನು ಪ್ರವೇಶಿಸಲು ಈ ವೈಶಿಷ್ಟ್ಯವು ಓದುವ ಸೂಚನೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ವಿಫಲವಾದ ಊಹಾತ್ಮಕ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ತ್ಯಜಿಸಿದ ನಂತರ, ಅದರ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯ ಕುರುಹುಗಳು ಸಂಗ್ರಹದಲ್ಲಿ ಉಳಿಯುತ್ತವೆ, ಅದರ ನಂತರ ಸಂಗ್ರಹದ ವಿಷಯಗಳನ್ನು ನಿರ್ಧರಿಸುವ ವಿಧಾನಗಳಲ್ಲಿ ಒಂದನ್ನು ಕ್ಯಾಶ್ ಮಾಡಿದ ಮತ್ತು ಸಂಗ್ರಹಿಸದ ಡೇಟಾಗೆ ಪ್ರವೇಶ ಸಮಯದ ಬದಲಾವಣೆಗಳ ವಿಶ್ಲೇಷಣೆಯ ಆಧಾರದ ಮೇಲೆ ಅದನ್ನು ಹಿಂಪಡೆಯಲು ಬಳಸಬಹುದು.

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

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

ಮೂಲ: opennet.ru

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