ಮೊಜಿಲ್ಲಾ RLBox ಲೈಬ್ರರಿ ಐಸೊಲೇಶನ್ ತಂತ್ರಜ್ಞಾನದ ಅನುಷ್ಠಾನವನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ

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

ಮೊಜಿಲ್ಲಾ ಕಂಪನಿ ಯೋಜನೆಗಳು ಲೈಬ್ರರಿ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಅನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು ಫೈರ್‌ಫಾಕ್ಸ್ 74 ರ ಲಿನಕ್ಸ್ ಬಿಲ್ಡ್‌ಗಳಲ್ಲಿ ಮತ್ತು ಫೈರ್‌ಫಾಕ್ಸ್ 75 ರ ಮ್ಯಾಕೋಸ್ ಬಿಲ್ಡ್‌ಗಳಲ್ಲಿ ಆರ್‌ಎಲ್‌ಬಾಕ್ಸ್ ಬಳಸಿ ಗ್ರ್ಯಾಫೈಟ್, ರೆಂಡರಿಂಗ್ ಫಾಂಟ್‌ಗಳ ಜವಾಬ್ದಾರಿ. ಆದಾಗ್ಯೂ, RLBox ಫೈರ್‌ಫಾಕ್ಸ್‌ಗೆ ನಿರ್ದಿಷ್ಟವಾಗಿಲ್ಲ ಮತ್ತು ಅನಿಯಂತ್ರಿತ ಯೋಜನೆಗಳಲ್ಲಿ ಯಾವುದೇ ಲೈಬ್ರರಿಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು ಬಳಸಬಹುದು. ಅಭಿವೃದ್ಧಿಗಳು ಆರ್ಎಲ್ಬಾಕ್ಸ್ ಹರಡು MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ. RLBox ಪ್ರಸ್ತುತ Linux ಮತ್ತು macOS ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ, ವಿಂಡೋಸ್ ಬೆಂಬಲವನ್ನು ನಂತರ ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ.

ಕಾರ್ಯವಿಧಾನ RLBox ನ ಕೆಲಸವು ಪ್ರತ್ಯೇಕವಾದ ಲೈಬ್ರರಿಯ C/C++ ಕೋಡ್ ಅನ್ನು ಕೆಳಮಟ್ಟದ ಮಧ್ಯಂತರ WebAssembly ಕೋಡ್‌ಗೆ ಕಂಪೈಲ್ ಮಾಡಲು ಬರುತ್ತದೆ, ನಂತರ ಅದನ್ನು WebAssembly ಮಾಡ್ಯೂಲ್‌ನಂತೆ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಅದರ ಅನುಮತಿಗಳನ್ನು ಈ ಮಾಡ್ಯೂಲ್‌ಗೆ ಮಾತ್ರ ಹೊಂದಿಸಲಾಗಿದೆ (ಉದಾಹರಣೆಗೆ, ಗ್ರಂಥಾಲಯ ಸ್ಟ್ರಿಂಗ್‌ಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ನೆಟ್ವರ್ಕ್ ಸಾಕೆಟ್ ಅಥವಾ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ) . C/C++ ಕೋಡ್ ಅನ್ನು WebAssembly ಗೆ ಪರಿವರ್ತಿಸುವುದನ್ನು ಬಳಸಿ ಮಾಡಲಾಗುತ್ತದೆ ವಾಸಿ-ಎಸ್ಡಿಕೆ.

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

ಜೋಡಿಸಲಾದ ಮಾಡ್ಯೂಲ್ ಪ್ರತ್ಯೇಕ ಮೆಮೊರಿ ಪ್ರದೇಶದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ವಿಳಾಸದ ಉಳಿದ ಜಾಗಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿಲ್ಲ. ಲೈಬ್ರರಿಯಲ್ಲಿನ ದುರ್ಬಲತೆಯನ್ನು ದುರ್ಬಳಕೆ ಮಾಡಿಕೊಂಡರೆ, ಆಕ್ರಮಣಕಾರರು ಸೀಮಿತವಾಗಿರುತ್ತಾರೆ ಮತ್ತು ಮುಖ್ಯ ಪ್ರಕ್ರಿಯೆಯ ಮೆಮೊರಿ ಪ್ರದೇಶಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಅಥವಾ ಪ್ರತ್ಯೇಕ ಪರಿಸರದ ಹೊರಗೆ ನಿಯಂತ್ರಣವನ್ನು ವರ್ಗಾಯಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.

ಮೊಜಿಲ್ಲಾ RLBox ಲೈಬ್ರರಿ ಐಸೊಲೇಶನ್ ತಂತ್ರಜ್ಞಾನದ ಅನುಷ್ಠಾನವನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ

ಡೆವಲಪರ್‌ಗಳಿಗಾಗಿ ಉನ್ನತ ಮಟ್ಟದ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸಲಾಗಿದೆ ಎಪಿಐ, ಇದು ಲೈಬ್ರರಿ ಕಾರ್ಯಗಳನ್ನು ಪ್ರತ್ಯೇಕ ಮೋಡ್‌ನಲ್ಲಿ ಕರೆಯಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. WebAssembly ಹ್ಯಾಂಡ್ಲರ್‌ಗಳಿಗೆ ಯಾವುದೇ ಹೆಚ್ಚುವರಿ ಸಂಪನ್ಮೂಲಗಳ ಅಗತ್ಯವಿಲ್ಲ ಮತ್ತು ಅವರೊಂದಿಗೆ ಸಂವಹನವು ಸಾಮಾನ್ಯ ಕಾರ್ಯಗಳನ್ನು ಕರೆಯುವುದಕ್ಕಿಂತ ಹೆಚ್ಚು ನಿಧಾನವಾಗಿರುವುದಿಲ್ಲ (ಲೈಬ್ರರಿ ಕಾರ್ಯಗಳನ್ನು ಸ್ಥಳೀಯ ಕೋಡ್‌ನ ರೂಪದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಪ್ರತ್ಯೇಕ ಪರಿಸರದೊಂದಿಗಿನ ಪರಸ್ಪರ ಕ್ರಿಯೆಯ ಸಮಯದಲ್ಲಿ ಡೇಟಾವನ್ನು ನಕಲಿಸುವಾಗ ಮತ್ತು ಪರಿಶೀಲಿಸುವಾಗ ಮಾತ್ರ ಓವರ್‌ಹೆಡ್ ವೆಚ್ಚಗಳು ಉದ್ಭವಿಸುತ್ತವೆ). ಪ್ರತ್ಯೇಕವಾದ ಲೈಬ್ರರಿ ಕಾರ್ಯಗಳನ್ನು ನೇರವಾಗಿ ಕರೆಯಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಅದನ್ನು ಬಳಸಿಕೊಂಡು ಪ್ರವೇಶಿಸಬೇಕು
ಲೇಯರ್ invoke_sandbox_function().

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

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

ಮೂಲ: opennet.ru

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