ಮೈಕ್ರೋಸಾಫ್ಟ್ ಸಿ ಕೋಡ್ ಭದ್ರತೆಯನ್ನು ಸುಧಾರಿಸಲು ಹಾರ್ಡ್‌ವೇರ್ ಪರಿಹಾರವಾದ CHERIoT ಅನ್ನು ತೆರೆಯುತ್ತದೆ

C ಮತ್ತು C++ ನಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕೋಡ್‌ನಲ್ಲಿ ಭದ್ರತಾ ಸಮಸ್ಯೆಗಳನ್ನು ತಡೆಯುವ ಗುರಿಯನ್ನು ಹೊಂದಿರುವ CHERIoT (ಇಂಟರ್‌ನೆಟ್ ಆಫ್ ಥಿಂಗ್ಸ್‌ಗಾಗಿ RISC-V ಗೆ ಸಾಮರ್ಥ್ಯದ ಹಾರ್ಡ್‌ವೇರ್ ವಿಸ್ತರಣೆ) ಯೋಜನೆಗೆ ಸಂಬಂಧಿಸಿದ ಬೆಳವಣಿಗೆಗಳನ್ನು Microsoft ಕಂಡುಹಿಡಿದಿದೆ. CHERIoT ಪರಿಹಾರವನ್ನು ನೀಡುತ್ತದೆ ಅದು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ C/C++ ಕೋಡ್‌ಬೇಸ್‌ಗಳನ್ನು ಪುನಃ ಕೆಲಸ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲದೇ ರಕ್ಷಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಪ್ರೊಸೆಸರ್ ಮತ್ತು ಹಾರ್ಡ್‌ವೇರ್ ಮಟ್ಟದಲ್ಲಿ ಮೆಮೊರಿ ಪ್ರವೇಶವನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಮೂಲಕ ಒದಗಿಸಲಾದ ವಿಶೇಷ ವಿಸ್ತೃತ ಪ್ರೊಸೆಸರ್ ಸೂಚನೆಗಳನ್ನು (ISA) ಬಳಸುವ ಮಾರ್ಪಡಿಸಿದ ಕಂಪೈಲರ್‌ನ ಬಳಕೆಯ ಮೂಲಕ ರಕ್ಷಣೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ, ಪಾಯಿಂಟರ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸದ ನಿಖರತೆಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ ಮತ್ತು ಕೋಡ್ ಬ್ಲಾಕ್‌ಗಳ ಪ್ರತ್ಯೇಕತೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.

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

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

CHERIoT ಹಾರ್ಡ್‌ವೇರ್ ಘಟಕಗಳನ್ನು RISC-V ಆರ್ಕಿಟೆಕ್ಚರ್‌ನ ಆಧಾರದ ಮೇಲೆ ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್‌ನಂತೆ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಸಂರಕ್ಷಿತ CHERI (Capability Hardware Extension to RISC-V) ಪ್ರೊಸೆಸರ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ, ಇದು "ಸಾಮರ್ಥ್ಯ" (ಪ್ರತಿಯೊಂದು ಓದಲು ಮತ್ತು ಬರೆಯಲು) ಆಧಾರದ ಮೇಲೆ ನಿಯಂತ್ರಿತ ಮೆಮೊರಿ ಪ್ರವೇಶದ ಮಾದರಿಯನ್ನು ಒದಗಿಸುತ್ತದೆ. ಮೆಮೊರಿಗೆ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಅಧಿಕೃತಗೊಳಿಸಲಾಗಿದೆ) . CHERIoT ನಲ್ಲಿ ಒದಗಿಸಲಾದ ಸೂಚನಾ ಸೆಟ್ ಆರ್ಕಿಟೆಕ್ಚರ್ (ISA) ಅನ್ನು ಆಧರಿಸಿ, ಸಾಫ್ಟ್‌ವೇರ್ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಲಾಗಿದೆ ಅದು ಪ್ರತ್ಯೇಕ ವಸ್ತುಗಳ ಮಟ್ಟದಲ್ಲಿ ಮೆಮೊರಿಯೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಸುರಕ್ಷತೆಯನ್ನು ಖಾತರಿಪಡಿಸುತ್ತದೆ, ಈಗಾಗಲೇ ಮುಕ್ತವಾದ ಮೆಮೊರಿಗೆ ಪ್ರವೇಶದ ವಿರುದ್ಧ ರಕ್ಷಣೆ ನೀಡುತ್ತದೆ ಮತ್ತು ಹಗುರವಾದ ಮೆಮೊರಿ ಪ್ರವೇಶ ಪ್ರತ್ಯೇಕ ವ್ಯವಸ್ಥೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. . ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಸಾಫ್ಟ್‌ವೇರ್ ಸಂರಕ್ಷಣಾ ಮಾದರಿಯು C/C++ ಭಾಷಾ ಮಾದರಿಯಲ್ಲಿ ನೇರವಾಗಿ ಪ್ರತಿಫಲಿಸುತ್ತದೆ, ಇದು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ರಕ್ಷಿಸಲು ಅದನ್ನು ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ (ISA CHERIoT ಅನ್ನು ಬೆಂಬಲಿಸುವ ಸಾಧನಗಳಲ್ಲಿ ಮಾತ್ರ ಮರುಕಂಪೈಲಿಂಗ್ ಮತ್ತು ಚಾಲನೆಯಲ್ಲಿರುವ ಅಗತ್ಯವಿದೆ).

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

ಯೋಜನೆಯು ವಿಸ್ತೃತ CHERIoT ಸೂಚನಾ ಸೆಟ್ ಆರ್ಕಿಟೆಕ್ಚರ್‌ನ ವಿವರಣೆಯನ್ನು ಒಳಗೊಂಡಿದೆ, CHERIOT ISA ಅನ್ನು ಬೆಂಬಲಿಸುವ 32-ಬಿಟ್ RISC-V CPU ನ ಉಲ್ಲೇಖದ ಅನುಷ್ಠಾನ, ಮತ್ತು ಮಾರ್ಪಡಿಸಿದ LLVM ಟೂಲ್‌ಕಿಟ್. ವೆರಿಲಾಗ್‌ನಲ್ಲಿನ CPU ಮೂಲಮಾದರಿಯ ರೇಖಾಚಿತ್ರಗಳು ಮತ್ತು ಹಾರ್ಡ್‌ವೇರ್ ಬ್ಲಾಕ್ ವಿವರಣೆಗಳನ್ನು Apache 2.0 ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ. LowRISC ಯೋಜನೆಯಿಂದ Ibex ಕೋರ್ ಅನ್ನು CPU ಗೆ ಆಧಾರವಾಗಿ ಬಳಸಲಾಗಿದೆ. CHERIoT ISA ಕೋಡ್ ಮಾದರಿಯನ್ನು ಸೈಲ್ ಭಾಷೆಯಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ ಮತ್ತು BSD ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ಪರವಾನಗಿ ಪಡೆದಿದೆ.

ಹೆಚ್ಚುವರಿಯಾಗಿ, CHERIoT RTOS ನೈಜ-ಸಮಯದ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ನ ಮೂಲಮಾದರಿಯನ್ನು ಪ್ರಸ್ತಾಪಿಸಲಾಗಿದೆ, ಇದು 256 MB RAM ಹೊಂದಿರುವ ಎಂಬೆಡೆಡ್ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ ಸಹ ವಿಭಾಗಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ. CHERIoT RTOS ಕೋಡ್ ಅನ್ನು C++ ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ. ಬೂಟ್ಲೋಡರ್, ಶೆಡ್ಯೂಲರ್ ಮತ್ತು ಮೆಮೊರಿ ವಿತರಣಾ ವ್ಯವಸ್ಥೆಯಂತಹ OS ನ ಮೂಲ ಘಟಕಗಳನ್ನು ವಿಭಾಗಗಳ ರೂಪದಲ್ಲಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ.

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

ಮೂಲ: opennet.ru

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