ಅಪಹರಿಸಲಾದ ವೆಬ್ ಗೇಟ್ವೇ ಇನ್ನೂ ಎಲ್ಲಿಗೆ ತಲುಪಬಲ್ಲದು?
ವೆಬ್ ಗೇಟ್ವೇ ಸಂದರ್ಶಕರು ಏನನ್ನು ತೆರೆಯುತ್ತಾರೆ ಎಂಬುದನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ, ಅಪಹರಿಸಲಾದ ಹೋಸ್ಟ್ ಎಲ್ಲಿಗೆ ಸಂಪರ್ಕಿಸಬಹುದು ಎಂಬುದನ್ನಲ್ಲ. ಎರಡು ಪರಿಶೀಲನೆಗಳು, ಅಧಿಕಾರ ಕೋಷ್ಟಕ ಮತ್ತು ತಲುಪುವಿಕೆಯ ಅಳತೆ ಆದೇಶಗಳು.
ಗೇಟ್ವೇ ಹೋಸ್ಟ್ನ ಪ್ರಮಾಣಪತ್ರ ಇನ್ನೂ ಮಾನ್ಯವಾಗಿರುವಾಗಲೇ ಅದು ಅಪಹರಿಸಲ್ಪಟ್ಟಿದೆ ಎಂದು ಭಾವಿಸೋಣ. ಸಂದರ್ಶಕರು ಯಾವ ಪುಟಗಳನ್ನು ವಿನಂತಿಸಬಹುದು ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸಿದ ಪ್ರತಿಯೊಂದು ನಿಯಮವೂ ಜಾರಿಯಲ್ಲಿದೆ, ಮತ್ತು ಆ ನಿಯಮಗಳಲ್ಲಿ ಯಾವುದೂ ಆಕ್ರಮಣಕಾರರು ಈಗ ಆ ಹೋಸ್ಟ್ನಿಂದ ಡೇಟಾಬೇಸ್ ಉಪಜಾಲಕ್ಕೆ ತೆರೆಯುವ ಸಂಪರ್ಕವನ್ನು ಮಿತಿಗೊಳಿಸುವುದಿಲ್ಲ. ಈ ಕಂದರವೇ ಕೇವಲ-ವೆಬ್ ಪ್ರವೇಶ ಬಿಂದುವು ವಿಭಜಿತ ಜಾಲದಂತೆಯೇ ಅಲ್ಲ ಎಂಬುದಕ್ಕೆ ಕಾರಣ. ಎರಡೂ ಪ್ರತಿಪಾದನೆಗಳಿಗೂ ಪ್ರತ್ಯೇಕ ಪರಿಶೀಲನೆಗಳು ಬೇಕು, ಬೇರೆ ಬೇರೆ ಆರಂಭಿಕ ಬಿಂದುಗಳಿಂದ, ಅವುಗಳಲ್ಲಿ ಯಾವುದನ್ನಾದರೂ ಪ್ರಾಮಾಣಿಕವಾಗಿ ಮಾಡುವ ಮೊದಲು.
ಎರಡು ಪ್ರತಿಪಾದನೆಗಳು, ಮತ್ತು ಅವುಗಳಲ್ಲಿ ಒಂದೇ ಸಂದರ್ಶಕನಿಂದ ಆರಂಭವಾಗುತ್ತದೆ
ಮೊದಲ ಪ್ರತಿಪಾದನೆ ಒಬ್ಬ ವ್ಯಕ್ತಿಯ ಬಗ್ಗೆ: ಬ್ರೌಸರ್ ಮತ್ತು ಮಾನ್ಯ ಸೆಷನ್ ಇರುವ ಸಂದರ್ಶಕರು ಒಂದು ಅಪ್ಲಿಕೇಶನ್ ತೆರೆಯಬಹುದು, ಬೇರೆ ಏನೂ ಇಲ್ಲ. ಕೇವಲ-ವೆಬ್ ಪ್ರವೇಶ ಬಿಂದುವು ಆ ಪ್ರತಿಪಾದನೆಗೆ ಚೆನ್ನಾಗಿ ಉತ್ತರಿಸುತ್ತದೆ, ಏಕೆಂದರೆ ಸಂದರ್ಶಕರಿಗೆ ಮಾರ್ಗದ ಬದಲು ಪುಟ ಸಿಗುತ್ತದೆ. ಆ ಉತ್ತರವನ್ನು ಇಟ್ಟುಕೊಳ್ಳುವುದು ಯೋಗ್ಯ, ಮತ್ತು ಅದೇ ಹೆಚ್ಚಿನ ರೇಖಾಚಿತ್ರಗಳು ದಾಖಲಿಸುವ ಏಕೈಕ ಪ್ರತಿಪಾದನೆ.
ಎರಡನೇ ಪ್ರತಿಪಾದನೆ ಒಂದು ಘಟಕದ ಬಗ್ಗೆ: ಗೇಟ್ವೇ, ಅಥವಾ ಅದರ ಹಿಂದಿನ ಅಪ್ಲಿಕೇಶನ್ ಪ್ರಕ್ರಿಯೆ, ಬೇರೆಯವರ ನಿಯಂತ್ರಣದಲ್ಲಿದೆ ಎಂದು ಊಹಿಸಲಾಗುತ್ತದೆ. ಆ ಊಹೆಯಿಂದ ಪ್ರಶ್ನೆ ಯಾವ URL ಅನುಮತಿಸಲಾಗಿದೆ ಎಂಬುದರಿಂದ ಪ್ರಕ್ರಿಯೆ ಇನ್ನೂ ಯಾವ ಗಮ್ಯಸ್ಥಾನಗಳು ಮತ್ತು ಗುರುತುಗಳನ್ನು ತಲುಪಬಲ್ಲದು ಎಂಬುದಕ್ಕೆ ಬದಲಾಗುತ್ತದೆ.
ಎರಡೂ ಪ್ರತಿಪಾದನೆಗಳಿಗೆ ಬೇರೆ ಬೇರೆ ಮಾಲೀಕರಿದ್ದಾರೆ, ಬೇರೆ ಬೇರೆ ಸಾಕ್ಷ್ಯ ನೀಡುತ್ತವೆ ಮತ್ತು ಸ್ವತಂತ್ರವಾಗಿ ವಿಫಲವಾಗುತ್ತವೆ. ಗುರುತಿನ ತಂಡವು ಸೆಷನ್ ಪರೀಕ್ಷೆಯಿಂದ ಮೊದಲನೆಯದನ್ನು ತೋರಿಸಬಹುದು; ಎರಡನೆಯದಕ್ಕೆ ಜಾಲ ನೀತಿ, ಸೇವಾ ಖಾತೆ ಪರಿಶೀಲನೆ ಮತ್ತು ಹೋಸ್ಟ್ ನಿಯಂತ್ರಣಗಳು ಬೇಕು. ಕೇವಲ ಸಂದರ್ಶಕರ ಅರ್ಧ ಭಾಗವನ್ನು ದಾಖಲಿಸುವ ವಿನ್ಯಾಸವು ಪರಿಶೀಲನಾ ಸ್ಲೈಡ್ನಲ್ಲಿ ಪೂರ್ಣವಾಗಿ ಮತ್ತು ಘಟನೆಯ ಸಮಯದಲ್ಲಿ ತೆಳುವಾಗಿ ಕಾಣುತ್ತದೆ, ಏಕೆಂದರೆ ಅಪಹರಣದ ನಂತರ ಮುಖ್ಯವಾದ ನಿಯಂತ್ರಣಗಳು ಎಂದಿಗೂ ವ್ಯಾಪ್ತಿಯಲ್ಲಿರಲಿಲ್ಲ. ಯಾವ ನಿಯಂತ್ರಣ ಯಾವ ಪ್ರತಿಪಾದನೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ ಎಂದು ಹೆಸರಿಸಿ, ಇಲ್ಲದಿದ್ದರೆ ಒಂದು ಗೇಟ್ವೇ ನಿಯಮ ಎರಡಕ್ಕೂ ಸಲ್ಲುತ್ತದೆ.
ಕೆಲಸ ಮಾಡಿದ ವೆಚ್ಚ ಸೇವೆ, ಮತ್ತು ಅದು ಸೋಲುವ ಎರಡು ದಾರಿಗಳು
ವೆಚ್ಚ ಸೇವೆಯನ್ನು ತೆಗೆದುಕೊಳ್ಳಿ: 10.60.4.10 ನಲ್ಲಿ ಸಾರ್ವಜನಿಕ ಗೇಟ್ವೇ ಸಿಬ್ಬಂದಿಯನ್ನು ದೃಢೀಕರಿಸುತ್ತದೆ ಮತ್ತು ಅನುಮೋದಿತ ವಿನಂತಿಗಳನ್ನು ಪೋರ್ಟ್ 8443 ನ ಅಪ್ಲಿಕೇಶನ್ ಶ್ರೋತೃಕ್ಕೆ ಕಳುಹಿಸುತ್ತದೆ, ಮತ್ತು ಆ ಅಪ್ಲಿಕೇಶನ್ expenses_app ಪಾತ್ರವಾಗಿ 10.60.4.20:5432 ನಲ್ಲಿ ಒಂದು PostgreSQL ಶ್ರೋತೃವನ್ನು ತಲುಪುತ್ತದೆ. ಉದ್ಯೋಗಿಗಳು ಸಾಮಾನ್ಯ ಆಂತರಿಕ ಪ್ರವೇಶ ಪಡೆಯಬಾರದು. ಸಾಮಾನ್ಯ ಕಾರ್ಯಾಚರಣೆಯಲ್ಲಿ ವಿನ್ಯಾಸವು ಡೇಟಾಬೇಸ್ ಶ್ರೋತೃವನ್ನು ಎಲ್ಲಿಯೂ ಪ್ರಕಟಿಸದೆ ಅಪ್ಲಿಕೇಶನ್-ನಿರ್ದಿಷ್ಟ ಪ್ರವೇಶವನ್ನು ನಿಜವಾಗಿಯೂ ನೀಡುತ್ತದೆ. ವಿಳಾಸಗಳು ಮುಖ್ಯ, ಏಕೆಂದರೆ ಈ ಲೇಖನದ ಪ್ರತಿಯೊಂದು ಪರಿಶೀಲನೆಯೂ ಅವುಗಳನ್ನು ಹೆಸರಿಸುತ್ತದೆ.
ಈಗ ಗೇಟ್ವೇಯನ್ನು ವಿಶ್ವಾಸಾರ್ಹ ಗುಂಪಿನಿಂದ ತೆಗೆದುಹಾಕಿ. 10.60.4.10 ನ ಪ್ರಕ್ರಿಯೆ ಆಕ್ರಮಣಕಾರನದಾದ ಮೇಲೆ ಅದು ಯಾವ ಗಮ್ಯಸ್ಥಾನಗಳನ್ನು ತಲುಪಬಲ್ಲದು? ಸಂದರ್ಶಕರನ್ನು ಮಿತಿಗೊಳಿಸಿದ URL ಫಿಲ್ಟರ್ ಗೇಟ್ವೇ ಹೋಸ್ಟ್ ಡೇಟಾಬೇಸ್ ಉಪಜಾಲದತ್ತ ತೆರೆಯುವ ಸಂಪರ್ಕದ ಬಗ್ಗೆ ಏನನ್ನೂ ಹೇಳುವುದಿಲ್ಲ.
ಬದಲಿಗೆ ಅಪ್ಲಿಕೇಶನ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ತೆಗೆದುಹಾಕಿ, ಆಗ ಅಧಿಕಾರವು ರೂಪ ಬದಲಾಯಿಸುತ್ತದೆ: expenses_app ಪಾತ್ರ, ಆ ಸರ್ವರ್ ತಲುಪಬಲ್ಲ ಸೇವೆಗಳು, ಮತ್ತು ಆ ಖಾತೆ ಓದಬಲ್ಲ ಫೈಲ್ಗಳು. ಎರಡೂ ಸಂದರ್ಭಗಳಲ್ಲಿ ಮುಂಭಾಗದ ಬಾಗಿಲು ಕೇವಲ-ವೆಬ್ ಆಗಿರಬಹುದು, ಆದರೆ ಬ್ಯಾಕೆಂಡ್ ಗಡಿ ಇರುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ ಮುಂಭಾಗದ ಬಾಗಿಲಿನ ಲೇಬಲ್ ಎರಡೂ ಪ್ರಶ್ನೆಗಳಿಗೆ ಉತ್ತರವಲ್ಲ.
ಪ್ರತಿ ಪಕ್ಷದ ನಿಜವಾದ ಅಧಿಕಾರವನ್ನು ನಕ್ಷೆ ಮಾಡಿ
ಉದ್ದೇಶಿತ ಅನುಮತಿಗಳಾಗಿ ಬರೆದ ಒಪ್ಪಂದವು ವಿನ್ಯಾಸವನ್ನು ನಿಮಗೆ ಮತ್ತೆ ಹೇಳುತ್ತದೆ. ಅದನ್ನು ಹೊಂದಿರುವ ಅಧಿಕಾರ, ಹೆಚ್ಚುವರಿಯನ್ನು ನಿರಾಕರಿಸುವ ಪರಿಶೀಲನೆ ಮತ್ತು ಆ ಪರಿಶೀಲನೆಯ ಮಾಲೀಕ ಎಂದು ಬರೆಯಿರಿ, ಆಗ ಪ್ರತಿ ಸಾಲೂ ಪರೀಕ್ಷಿಸಬಹುದಾದದ್ದಾಗುತ್ತದೆ. ಈ ಕೋಷ್ಟಕವು ಮೇಲಿನ ಉದಾಹರಣೆಗೆ ಒಂದು ಪ್ರಸ್ತಾಪ, ಉತ್ಪನ್ನದ ಪ್ರತಿಪಾದನೆ ಅಲ್ಲ:
| Component | Authority it actually holds | Check that proves the denial | Owner of the check |
|---|---|---|---|
| Identity provider | Issues assertions and session cookies, and holds no network path of its own | A request to the application URL without a session is redirected to the login page | Identity team |
| Public gateway host | TCP reachability to whatever its routing table and egress rules permit | An egress rule drops 10.60.4.20:5432 and the probe reports the port filtered | Network platform team |
| Application role | SQL privileges granted to expenses_app inside the expenses database | A privilege query shows no ownership or create right on any other schema | Application team |
| Database listener | Accepts connections only from the source ranges named in its host-based rules | A connection from an unlisted address is refused before authentication | Database administrator |
| Management path | Administrative access reserved for patching, monitoring and recovery | A staff workstation cannot reach the administrative port or jump through it | Platform owner |
ಮಾಲೀಕತ್ವವು ಅಧಿಕಾರವನ್ನು ಅನುಸರಿಸುತ್ತದೆ. ಗುರುತಿನ ತಂಡವು ಪ್ರತಿಪಾದನೆಗಳನ್ನು, ಜಾಲ ವೇದಿಕೆ ತಂಡವು ಮಾರ್ಗಗಳನ್ನು, ಅಪ್ಲಿಕೇಶನ್ ತಂಡವು ಡೇಟಾಬೇಸ್ ಪಾತ್ರವನ್ನು, ಡೇಟಾಬೇಸ್ ನಿರ್ವಾಹಕರು ಶ್ರೋತೃ ಮತ್ತು ಅದರ ಹೋಸ್ಟ್-ಆಧಾರಿತ ನಿಯಮಗಳನ್ನು, ಮತ್ತು ವೇದಿಕೆ ಮಾಲೀಕರು ನಿರ್ವಹಣಾ ಸಮತಲವನ್ನು ಹೊಂದಿದ್ದಾರೆ. ಮಾಲೀಕರಿಲ್ಲದ ನಿರಾಕರಣೆ ದಾಖಲೆಯಲ್ಲಿ ಒಂದು ವಾಕ್ಯ, ನಿಯಂತ್ರಣವಲ್ಲ.
ಈ ವಿಭಜನೆ ಎರಡು ಬಾರಿ ಎಣಿಕೆಯನ್ನೂ ತಡೆಯುತ್ತದೆ. ಪೋರ್ಟ್ ನಿರ್ಬಂಧವು ಕೋಷ್ಟಕ ಸವಲತ್ತನ್ನು ವ್ಯಕ್ತಪಡಿಸಲಾರದು, ಮತ್ತು ಡೇಟಾಬೇಸ್ ಪಾತ್ರವು ಹೋಸ್ಟ್ ಸಂಬಂಧವಿಲ್ಲದ ಉಪಜಾಲಕ್ಕೆ ಸಾಕೆಟ್ ತೆರೆಯುವುದನ್ನು ತಡೆಯಲಾರದು.
ಗೇಟ್ವೇ ಎಲ್ಲಿಗೆ ತಲುಪಬಲ್ಲದು ಎಂದು ಪ್ರತಿಪಾದಿಸುವ ಬದಲು ಎಣಿಸಿ
ಗಡಿ ಪ್ರತಿಪಾದನೆಯು ಅದರ ಹಿಂದಿನ ಎಣಿಕೆಯಷ್ಟೇ ಒಳ್ಳೆಯದು. ಗೇಟ್ವೇ ಹೋಸ್ಟ್ನಲ್ಲಿ ಮೂರು ಆದೇಶಗಳು ಮಾರ್ಗ ಆಯ್ಕೆ, ಜೀವಂತ ಪ್ರೋಬ್ ಮತ್ತು ನಿರ್ಗಮನ ನೀತಿಯನ್ನು ಒಳಗೊಳ್ಳುತ್ತವೆ:
ip route get 10.60.4.20
nc -zv 10.60.4.20 5432
sudo nft list chain inet filter outputಔಟ್ಪುಟ್ ಅನ್ನು ಆ ಕ್ರಮದಲ್ಲಿ ಓದಿ. ಮಾರ್ಗವು 10.60.4.20 ಆ ಹೋಸ್ಟ್ನಿಂದಲೇ ಆಯ್ಕೆಯಾಗುತ್ತದೆಯೇ ಎಂದು ಹೇಳುತ್ತದೆ; ಪ್ರೋಬ್ ಶ್ರೋತೃ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆಯೇ ಎಂದು ಹೇಳುತ್ತದೆ; ನಿಯಮಗಳ ಪಟ್ಟಿ ನೀತಿ ಪ್ಯಾಕೆಟ್ ಅನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆಯೇ ಅಥವಾ ಅದರ ಮಾರ್ಗದಲ್ಲಿ ಎಂದಿಗೂ ಏನೂ ಇರಲಿಲ್ಲವೇ ಎಂದು ತೋರಿಸುತ್ತದೆ.
ಅಪ್ಲಿಕೇಶನ್ ಹೋಸ್ಟ್ನಿಂದ ಎಣಿಕೆಯನ್ನು ಪುನರಾವರ್ತಿಸಿ. ಅಲ್ಲಿಂದ ಡೇಟಾಬೇಸ್ ಭಾಗವು ಅಪ್ಲಿಕೇಶನ್ ಪಾತ್ರವಾಗಿ ಚಲಾಯಿಸುವ ಒಂದು ಪ್ರಶ್ನೆ:
psql -h 10.60.4.20 -U expenses_app -d expenses -c 'select rolname, rolsuper, rolcreatedb from pg_roles'ಇನ್ನೊಂದು ಸ್ಕೀಮಾವನ್ನು ಓದಲಾಗದ ಪಾತ್ರದ ಅಡಿಯಲ್ಲಿ ಯಶಸ್ವಿ ಸಂಪರ್ಕವು ಮಾಲೀಕ ಪಾತ್ರದ ಅಡಿಯಲ್ಲಿ ಯಶಸ್ವಿ ಸಂಪರ್ಕಕ್ಕಿಂತ ಬೇರೆ ಫಲಿತಾಂಶ. ಎರಡನೆಯದು ಮಾತ್ರ ಒಂದು ಶೋಧನೆ.
ನಿರಾಕರಣೆಗಳನ್ನು ದಾಖಲಿಸಿ, ನಂತರ ಪರಿಶೀಲನೆಗೆ ದಿನಾಂಕ ಹಾಕಿ
ಸ್ವೀಕೃತಿಯನ್ನು ಉದ್ದೇಶಗಳಲ್ಲ, ಫಲಿತಾಂಶಗಳಾಗಿ ಬರೆಯಲಾಗುತ್ತದೆ: ಉದ್ಯೋಗಿ ಸೆಷನ್ ಶ್ರೋತೃವನ್ನು ತಲುಪಲಾರದು, ಗೇಟ್ವೇ ಹೋಸ್ಟ್ ಸಂಬಂಧವಿಲ್ಲದ ಉಪಜಾಲವನ್ನು ತಲುಪಲಾರದು, ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ ಪಾತ್ರ ಡೇಟಾಬೇಸ್ ರಚಿಸಲಾರದು. ಪ್ರತಿಯೊಂದೂ ಹೆಸರಿಸಿದ ಮಾಲೀಕ ಮತ್ತು ದಿನಾಂಕದೊಂದಿಗೆ ಪ್ರತ್ಯೇಕ ಪರಿಶೀಲನೆ.
ಮೇಲ್ವಿಚಾರಣೆ, ಪ್ಯಾಚಿಂಗ್ ಮತ್ತು ಮರುಪ್ರಾಪ್ತಿಯನ್ನು ಅವುಗಳಿಗಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಿದ ನಿರ್ವಹಣಾ ಮಾರ್ಗದ ಮೂಲಕ ತಲುಪಬಹುದಾಗಿ ಇರಿಸಿ. ತನ್ನ ಮಾಲೀಕನನ್ನೂ ತಡೆಯುವ ಗಡಿಯು ಅಡಚಣೆಯಾಗುತ್ತದೆ, ಮತ್ತು ಆ ಅಡಚಣೆಗೆ ಸಾಮಾನ್ಯ ಮೊದಲ ಪ್ರತಿಕ್ರಿಯೆ ನಿಯಮವನ್ನು ಮತ್ತೆ ವಿಸ್ತರಿಸುವುದು. CISA ಪರಿಧಿ ಮಾರ್ಗದರ್ಶನ ಒಳಬರುವ ಮತ್ತು ಹೊರಹೋಗುವ ಪ್ರವೇಶವನ್ನು ಸಮರ್ಥಿತ ಪೋರ್ಟ್ಗಳು ಮತ್ತು ಪ್ರೋಟೋಕಾಲ್ಗಳಿಗೆ ಸೀಮಿತಗೊಳಿಸುವಂತೆ ಕೇಳುತ್ತದೆ, ಒಳಗಿನ ಜಾಲಗಳ ನಡುವಿನ ಸಂಚಾರ ಸೇರಿದಂತೆ, ಇದು ಬ್ಯಾಕೆಂಡ್ನಿಂದ ಪ್ರಾರಂಭವಾಗುವ ದಿಕ್ಕು ಮತ್ತು ಹೆಚ್ಚಿನ ರೇಖಾಚಿತ್ರಗಳು ಬಿಟ್ಟುಬಿಡುತ್ತವೆ.
ಪರಿಶೀಲನೆಗೆ ದಿನಾಂಕ ಹಾಕಿ ಮತ್ತು ಅದರ ಮಾಲೀಕರನ್ನು ಹೆಸರಿಸಿ. ಗೇಟ್ವೇ ಇಮೇಜ್, ರೂಟಿಂಗ್ ಕೋಷ್ಟಕ ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್ ಪಾತ್ರದಲ್ಲಿ ಯಾವುದೇ ಬದಲಾವಣೆಯ ನಂತರ ಎಣಿಕೆ ಮತ್ತು ಸವಲತ್ತು ಪ್ರಶ್ನೆಯನ್ನು ಮತ್ತೆ ಚಲಾಯಿಸಿ.