แผนผังโครงสร้างระบบ

โทโพโลยีเครือข่าย e-GP, บริการ K8s และขั้นตอนการยืนยันตัวตน

Guest
G
210
บริการ K8s
27
รหัส DB ที่รั่วไหล
27
Actuator ที่เปิดอยู่
1270
ตัวแปร Env ที่ดึงได้

โทโพโลยีเครือข่าย — 203.170.16.x

ทำงาน
www
203.170.16.1
Main Website
ทำงาน
mail
203.170.16.2
Mail Server
ทำงาน
report
203.170.16.10
Report Server
ทำงาน
p3
203.170.16.12
Process3 (WebSphere)
ทำงาน
p4
203.170.16.27
Process4
บางส่วน
p5
203.170.16.41
Process5 (K8s+nginx)
ทำงาน
login
203.170.16.42
Keycloak SSO
บางส่วน
kms
203.170.16.43
Vault KMS
ทำงาน
sms
203.170.16.88
SMS/OTP Gateway

ขั้นตอนการยืนยันตัวตน

ขั้นตอน 1
Browser
OIDC Auth Code Flow
→ Keycloak
ขั้นตอน 2
Keycloak
JWT Token (4h TTL)
→ Browser
ขั้นตอน 3
Browser
redirectToEndpoint
→ egp-authen-service
ขั้นตอน 4
Browser
standBySession
→ Process3
ขั้นตอน 5
Browser
API Calls
→ API Services
ขั้นตอน 6
API Services
Transit Encrypt/Decrypt
→ Vault
ช่องโหว่ในขั้นตอนยืนยันตัวตน:
  • บายพาส E1538: ส่ง dataProfile ใน POST body แทน header
  • ปลอม DP: เซิร์ฟเวอร์ไม่ตรวจสอบ JWT.sub กับ DP identity
  • JWT หมดอายุ: 14 endpoint + Vault ยอมรับ token หมดอายุ
  • กุญแจ AES = JWT.sub: ไม่ hash, ไม่ salt — ใช้ UUID ดิบเป็นกุญแจเข้ารหัส

ส่วนประกอบโครงสร้างพื้นฐาน

ส่วนประกอบ เวอร์ชัน บทบาท หมายเหตุ
Keycloak 14-16 SSO/Authentication allowed-origins: [*], client: egp-login-keycloak-web
HashiCorp Vault 1.11.3 (EOL) KMS/Encryption Shamir 3/5, Raft storage, 30+ unpatched CVEs
IBM DB2 Driver 4.25.13 Database 3 servers, K8s internal only
nginx 1.22 Reverse Proxy Process5 frontend
F5 ASM N/A WAF Bypass: %61ctuator URL encoding
JBoss EAP N/A Application Server Java 11.0.13, RHEL 8.6, OpenShift
ActiveMQ AMQP Message Queue admin user, 2-node cluster, 13 queues
IBM WebSphere N/A Process3 App Server UP 24/7

บริการ Kubernetes (27 บริการ)

ชื่อบริการ Endpoints สถานะ ผู้ใช้ DB หมายเหตุ
egp-merchant-ebidding-service 72 ทำงาน MERBID01 Main bidding service
egp-doc-examine-service 7 ทำงาน DEX01 Document examination
egp-doc-price-estimate-service 4 ทำงาน N/A Price estimates
egp-upload-service 5 ทำงาน N/A File upload/download, apiKey auth only
egp-doc-review-service 18 ทำงาน N/A secret=password
egp-common-service 10 วันทำการ EGPMS01 getBidder endpoint
egp-project-service 8 วันทำการ PROJECT Project metadata
egp-master-ebidding-service 6 วันทำการ N/A Master data
egp-flow-agency-service 5 วันทำการ N/A Workflow
egp-template-service 4 วันทำการ TEMPLATE Document templates
egp-authen-service 6 ทำงาน N/A Authentication, delUserSession
egp-rdb-service 5 ทำงาน EGPMS01 Report database
egp-procure-project-service 4 ทำงาน EGPMS01 Procurement
egp-merchant-econtract-service 6 ทำงาน N/A E-contract
egp-report-service 8 ทำงาน egpsme Reports
egp-bidding-service 5 ทำงาน N/A Bidding core
egp-budget-service 4 ทำงาน N/A Budget
egp-appeal-service 3 ทำงาน N/A Appeals
egp-blockchain-service 3 ทำงาน N/A Blockchain verify
egp-acc-merchant-service 4 วันทำการ N/A Merchant accounts
egp-sme-service 3 ทำงาน N/A SME, clientId=CGD
egp-mail-service 2 ทำงาน N/A Email notifications
egp-improve-service 2 ทำงาน N/A Improvements
egp-register-interface-service 3 ทำงาน N/A Registration
egp-dashboard-service 5 ทำงาน N/A Dashboard, 3rd DB (egpalltemp)
egp-trader-report-service 4 ทำงาน N/A Trader reports
egp-doc-winner-service 4 วันทำการ N/A Winner docs

เซิร์ฟเวอร์ IBM DB2 (3 เซิร์ฟเวอร์)

egpcoredb
พอร์ต: 50088
ฐานข้อมูล: EGPDB
บริการ: report, rdb, procure-project, common, merchant-econtract, authen, appeal, trader-report
รหัสที่รั่วไหล:
egpsme : •••••••••••• (report)
EGPMS01 : •••••••••••• (rdb, procure-project)
egpmsdb
พอร์ต: 50188
ฐานข้อมูล: EGP5DB
บริการ: doc-examine, project, template, merchant-ebidding, merchant-emarket, budget, bidding
รหัสที่รั่วไหล:
MERBID01 : •••••••••••• (merchant-ebidding)
DEX01 : •••••••••••• (doc-examine)
PROJECT : •••••••••••• (project)
TEMPLATE : •••••••••••• (template)
egpalltemp
พอร์ต: 50066
ฐานข้อมูล: ALLTEMP
บริการ: dashboard
หมายเหตุ: เซิร์ฟเวอร์ DB2 อยู่ภายใน K8s เท่านั้น (172.28.x.x) ไม่สามารถเข้าถึงจากภายนอกได้

คิวและหัวข้อ ActiveMQ

Q_MERBID_INFOSUBMIT Q_PUB_INFOANNOUNCE Q_BID2FLW_STEP Q_MERBID_REGSUBMIT Q_MERBID_EXTENDBID Q_PRJ_PROJECTSTATUS Q_DEX_INFONEWBID Q_PRJ_INFOPROJECT Q_PUB_ANNOUNCEREVIEW T_PUB_INFOANNOUNCE_MERBID T_MERBID_REGSUBMIT_MERBID T_PRJ_PROJECTSTATUS_MERBID T_DEX_INFONEWBID_MERBID
ผู้ดูแล: admin (รหัสเริ่มต้น) | คลัสเตอร์ AMQP 2 โหนด ใน amq-system namespace