ಚೆಕ್ ಪಾಯಿಂಟ್ನಿಂದ ಸಂಶೋಧಕರು
ಯಶಸ್ವಿ ದಾಳಿಗಾಗಿ, ದಾಳಿಗೊಳಗಾದ ಅಪ್ಲಿಕೇಶನ್ಗಳ ಡೇಟಾಬೇಸ್ ಫೈಲ್ಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ, ಇದು ಸಾರಿಗೆ ಮತ್ತು ಇನ್ಪುಟ್ ಡೇಟಾಗೆ ಸ್ವರೂಪವಾಗಿ SQLite ಡೇಟಾಬೇಸ್ ಅನ್ನು ಬಳಸುವ ಅಪ್ಲಿಕೇಶನ್ಗಳ ಮೇಲಿನ ದಾಳಿಗೆ ವಿಧಾನವನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ. ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸ್ಥಳೀಯ ಪ್ರವೇಶವನ್ನು ವಿಸ್ತರಿಸಲು ಈ ವಿಧಾನವನ್ನು ಬಳಸಬಹುದು, ಉದಾಹರಣೆಗೆ, ಗುಪ್ತ ಹಿಂಬಾಗಿಲನ್ನು ಬಳಸಿದ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಸಂಯೋಜಿಸಲು, ಹಾಗೆಯೇ ಭದ್ರತಾ ಸಂಶೋಧಕರು ಮಾಲ್ವೇರ್ ಅನ್ನು ವಿಶ್ಲೇಷಿಸುವಾಗ ಭದ್ರತಾ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಬೈಪಾಸ್ ಮಾಡಲು. ಮಾರ್ಪಡಿಸಿದ ಡೇಟಾಬೇಸ್ನಲ್ಲಿ ಟೇಬಲ್ ವಿರುದ್ಧ ಅಪ್ಲಿಕೇಶನ್ ಮೊದಲ SELECT ಪ್ರಶ್ನೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಕ್ಷಣದಲ್ಲಿ ಫೈಲ್ ಪರ್ಯಾಯದ ನಂತರದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಕೈಗೊಳ್ಳಲಾಗುತ್ತದೆ.
ಉದಾಹರಣೆಯಾಗಿ, ವಿಳಾಸ ಪುಸ್ತಕವನ್ನು ತೆರೆಯುವಾಗ iOS ನಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಚಲಾಯಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ನಾವು ಪ್ರದರ್ಶಿಸಿದ್ದೇವೆ, "AddressBook.sqlitedb" ಡೇಟಾಬೇಸ್ನೊಂದಿಗೆ ಫೈಲ್ ಅನ್ನು ಪ್ರಸ್ತಾವಿತ ವಿಧಾನವನ್ನು ಬಳಸಿಕೊಂಡು ಮಾರ್ಪಡಿಸಲಾಗಿದೆ. ದಾಳಿಯು fts3_tokenizer ಫಂಕ್ಷನ್ನಲ್ಲಿನ ದುರ್ಬಲತೆಯನ್ನು ಬಳಸಿದೆ (CVE-2019-8602, ಪಾಯಿಂಟರ್ ಡೆರೆಫರೆನ್ಸ್ ಸಾಮರ್ಥ್ಯ), ಏಪ್ರಿಲ್ SQLite 2.28 ಅಪ್ಡೇಟ್ನಲ್ಲಿ ಸ್ಥಿರವಾಗಿದೆ, ಜೊತೆಗೆ ಇನ್ನೊಂದು
ದಾಳಿ ವಿಧಾನವು "ಕ್ವೆರಿ ಹೈಜಾಕಿಂಗ್" ಮತ್ತು "ಕ್ವೆರಿ ಓರಿಯೆಂಟೆಡ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್" ಎಂಬ ಎರಡು ತಂತ್ರಗಳ ಬಳಕೆಯನ್ನು ಆಧರಿಸಿದೆ, ಇದು SQLite ಎಂಜಿನ್ನಲ್ಲಿ ಮೆಮೊರಿ ಭ್ರಷ್ಟಾಚಾರಕ್ಕೆ ಕಾರಣವಾಗುವ ಅನಿಯಂತ್ರಿತ ಸಮಸ್ಯೆಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಡೇಟಾಬೇಸ್ನ ರಚನೆಯನ್ನು ನಿರ್ಧರಿಸುವ sqlite_master ಸೇವಾ ಕೋಷ್ಟಕದಲ್ಲಿ "sql" ಕ್ಷೇತ್ರದ ವಿಷಯಗಳನ್ನು ಬದಲಿಸುವುದು "ಕ್ವೆರಿ ಹೈಜಾಕಿಂಗ್" ನ ಮೂಲತತ್ವವಾಗಿದೆ. ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಕ್ಷೇತ್ರವು ಡೇಟಾಬೇಸ್ನಲ್ಲಿನ ವಸ್ತುಗಳ ರಚನೆಯನ್ನು ವಿವರಿಸಲು ಬಳಸಲಾಗುವ DDL (ಡೇಟಾ ಡೆಫಿನಿಷನ್ ಲಾಂಗ್ವೇಜ್) ಬ್ಲಾಕ್ ಅನ್ನು ಒಳಗೊಂಡಿದೆ. ವಿವರಣೆಯನ್ನು ಪ್ರಮಾಣಿತ SQL ಸಿಂಟ್ಯಾಕ್ಸ್ ಬಳಸಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿದೆ, ಅಂದರೆ. "ಕ್ರಿಯೇಟ್ ಟೇಬಲ್" ನಿರ್ಮಾಣವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ,
ಡೇಟಾಬೇಸ್ ಇನಿಶಿಯಲೈಸೇಶನ್ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಇದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ (ಮೊದಲ ಉಡಾವಣೆಯ ಸಮಯದಲ್ಲಿ
ಮೆಮೊರಿಯಲ್ಲಿ ಟೇಬಲ್-ಸಂಬಂಧಿತ ಆಂತರಿಕ ರಚನೆಗಳನ್ನು ರಚಿಸಲು sqlite3LocateTable ಕಾರ್ಯಗಳು.
ಕಲ್ಪನೆಯೆಂದರೆ, "ಕ್ರಿಯೇಟ್ ಟೇಬಲ್" ಅನ್ನು "ಕ್ರಿಯೇಟ್ ವ್ಯೂ" ನೊಂದಿಗೆ ಬದಲಿಸುವ ಪರಿಣಾಮವಾಗಿ, ನಿಮ್ಮ ಸ್ವಂತ ವೀಕ್ಷಣೆಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಮೂಲಕ ಡೇಟಾಬೇಸ್ಗೆ ಯಾವುದೇ ಪ್ರವೇಶವನ್ನು ನಿಯಂತ್ರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. "ವೀಕ್ಷಣೆ ರಚಿಸಿ" ಅನ್ನು ಬಳಸಿಕೊಂಡು "ಆಯ್ಕೆ" ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಟೇಬಲ್ಗೆ ಬಂಧಿಸಲಾಗುತ್ತದೆ, ಇದನ್ನು "ಟೇಬಲ್ ರಚಿಸಿ" ಬದಲಿಗೆ ಕರೆಯಲಾಗುವುದು ಮತ್ತು SQLite ಇಂಟರ್ಪ್ರಿಟರ್ನ ವಿವಿಧ ಭಾಗಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಮುಂದೆ, ದಾಳಿಯ ಸರಳ ವಿಧಾನವೆಂದರೆ "load_extension" ಕಾರ್ಯವನ್ನು ಕರೆಯುವುದು, ಇದು ವಿಸ್ತರಣೆಯೊಂದಿಗೆ ಅನಿಯಂತ್ರಿತ ಲೈಬ್ರರಿಯನ್ನು ಲೋಡ್ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಆದರೆ ಈ ಕಾರ್ಯವನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.
"SELECT" ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಸಾಧ್ಯವಾದಾಗ ದಾಳಿಯನ್ನು ನಡೆಸಲು, "ಪ್ರಶ್ನೆ ಆಧಾರಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್" ತಂತ್ರವನ್ನು ಪ್ರಸ್ತಾಪಿಸಲಾಗಿದೆ, ಇದು ಮೆಮೊರಿ ಭ್ರಷ್ಟಾಚಾರಕ್ಕೆ ಕಾರಣವಾಗುವ SQLite ನಲ್ಲಿ ಸಮಸ್ಯೆಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ. ತಂತ್ರವು ರಿಟರ್ನ್-ಓರಿಯೆಂಟೆಡ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಅನ್ನು ನೆನಪಿಸುತ್ತದೆ (
ಮೂಲ: opennet.ru