安全審計(jì)產(chǎn)品知識(shí)分享 - DB Session 與 Web Session
[toc]
1. Why - 為什么審計(jì)產(chǎn)品需要關(guān)注會(huì)話
一個(gè)安全審計(jì)產(chǎn)品是否能有效的呈現(xiàn)給客戶珠漂,需要遵從數(shù)據(jù)--信息--報(bào)告的路線谦趣。 數(shù)據(jù)就是從網(wǎng)絡(luò)封包或者服務(wù)器進(jìn)程/內(nèi)存內(nèi)捕獲到的數(shù)據(jù)献烦,但是如何有效的把這些數(shù)據(jù)串聯(lián)起來(lái)习柠,其中一個(gè)很重要的就是需要依靠Session來(lái)串聯(lián)起來(lái),形成有效的信息:什么人-在什么時(shí)間-在什么地方-對(duì)什么數(shù)據(jù)-進(jìn)行了什么操作稿湿。因此可以說(shuō),基本上沒(méi)有Session, 一個(gè)審計(jì)產(chǎn)品甚至連第二步-信息 都不能有效的構(gòu)建起來(lái)。
2. What - Session(會(huì)話)是什么
如果去檢索百度或者其他技術(shù)文章窍仰,有可能會(huì)給出很抽象的定義。 簡(jiǎn)單來(lái)說(shuō)Session是一種訪問(wèn)憑證礼殊。打個(gè)比方驹吮,今天你要去美聯(lián)儲(chǔ)的黃金存儲(chǔ)地窖,你直接跑到地窖門口說(shuō)你是特蘭普他爹也沒(méi)用晶伦,不會(huì)放你進(jìn)去碟狞,所以你得跑到安保部證明你有權(quán)利進(jìn)去,然后收到一張通行證
婚陪,拿這張通行證到地窖大門前“滴”一聲大門就開了族沃。
那么這張通行證就是你進(jìn)入美聯(lián)儲(chǔ)黃金地窖的Session,你在地窖里面摸了多少次黃金泌参,舔了多少塊金磚脆淹,系統(tǒng)到時(shí)候拿你的通行證(Session)一刷全部列出來(lái)了。
這就是Session的意義沽一。一個(gè)人在某個(gè)敏感的系統(tǒng)上未辆,在什么時(shí)間做了什么操作,背后都需要通過(guò)Sessin的技術(shù)來(lái)串起來(lái)锯玛,形成一條條有用的Information咐柜。
3. How - 安全審計(jì)產(chǎn)品需要關(guān)注的Session及其來(lái)源
本章節(jié)闡述了DB Session和Web Session的數(shù)據(jù)來(lái)源。
updated on 2018-12-24 16:39:07
3.3.1 數(shù)據(jù)庫(kù)會(huì)話描述 (DB Session )
不考慮connection pool的情況 一條DB Session的過(guò)程可以描述為如下:
- 使用pl/sql client login到DB instance中去( Session login)攘残;
- 執(zhí)行select, update, delete, store procedure等操作拙友;
- 關(guān)閉pl/sql client (Session logout)。
小結(jié):1-3這個(gè)過(guò)程 就是DB Session的一個(gè)生命周期(life-cycle)歼郭,對(duì)應(yīng)會(huì)在SQL會(huì)話詳情list頁(yè)面產(chǎn)生一條Session報(bào)表遗契。點(diǎn)擊這個(gè)Session報(bào)表的詳情頁(yè)面鏈接,就可以看到上述2的具體操作(select, update, delete, store procedure等操作)病曾。
3.3.2 應(yīng)用會(huì)話描述-不使用連接池技術(shù)(Web Session without Connection Pool)
Web Session:
- user使用 帳號(hào)和密碼成功登錄web system(Web Session login)
- user在web system上做很多業(yè)務(wù)操作
- user 簽退出web system (Web session logout)
小結(jié):1-3是一條Web session的 life-cycle.
3.3.3 應(yīng)用會(huì)話中-數(shù)據(jù)庫(kù)會(huì)話-不使用連接池
本質(zhì)上是沒(méi)相關(guān)聯(lián)關(guān)系牍蜂,只有時(shí)間關(guān)系的漾根。
- user使用 帳號(hào)和密碼成功登錄web system(Web Session login)
- user在web system上做很多業(yè)務(wù)操作
2.1 user query一張報(bào)表
2.2 web system調(diào)用憑證向DB請(qǐng)求數(shù)據(jù)
2.3 數(shù)據(jù)庫(kù)驗(yàn)證憑證登錄( DB Session login )
2.4 登錄成功,則DB開始查詢數(shù)據(jù)鲫竞,返回tuple數(shù)據(jù)
2.5 Web獲得數(shù)據(jù)辐怕,調(diào)用db.close()接口(DB Session logout)
2.6 Web展示出數(shù)據(jù)
- user 簽退出web system (Web session logout)
小結(jié):上述的 2.3 -2.5
DB Session產(chǎn)生的過(guò)程。需要注意的是从绘,這里為了簡(jiǎn)化描述寄疏,只描述了一種狀況。如果用戶不僅查詢了報(bào)表僵井,還查詢了用戶個(gè)人信息等操作陕截,這時(shí)候會(huì)產(chǎn)生多條DB Session的記錄(而這段時(shí)間內(nèi),該用戶產(chǎn)生的Web Session只有一條)批什。
3.3.4 應(yīng)用會(huì)話中-數(shù)據(jù)庫(kù)會(huì)話-使用連接池
根據(jù)1.2.4.3 小結(jié)描述农曲,用戶如果在登錄上Web系統(tǒng)后,通常需要操作上百條甚至更多的數(shù)據(jù)查詢記錄驻债,這時(shí)候數(shù)據(jù)庫(kù)需要不斷的被打開乳规,操作完又馬上被關(guān)閉,由于打開和關(guān)系的操作過(guò)程需要不斷的占用系統(tǒng)的資源却汉,為了簡(jiǎn)約這種資源損耗驯妄,連接池(connection pool)技術(shù)就在這種需求背景下誕生了。
- user使用 帳號(hào)和密碼成功登錄web system(Web Session login)
- user在web system上做很多業(yè)務(wù)操作
2.1 user query一張報(bào)表
2.2 web system調(diào)用憑證向DB請(qǐng)求數(shù)據(jù)
2.3 數(shù)據(jù)庫(kù)登錄注冊(cè)( reg user login )
2.4 驗(yàn)證通過(guò)合砂,Connection Pool下指令給DB查詢數(shù)據(jù)
2.5 數(shù)據(jù)返回tuple數(shù)據(jù)
2.5 Web獲得數(shù)據(jù)
2.7 Web展示出數(shù)據(jù)
2.8 User query一個(gè)用戶信息
重復(fù) 2.4 --2.7的過(guò)程
- user 簽退出web system (Web session logout)
小結(jié):這時(shí)候的最大的不同是Web系統(tǒng)不再有能力主動(dòng)開啟和關(guān)閉數(shù)據(jù)庫(kù)連接青扔,這個(gè)動(dòng)作全權(quán)交給了Connection Pool來(lái)管理。因此不論用戶請(qǐng)求多少次翩伪,都可能只有一條DB Session去查詢數(shù)據(jù)微猖。