近年來,信息技術(shù)的廣泛應(yīng)用極大地促進(jìn)了社會(huì)進(jìn)步,也方便了人們的工作和生活,隨之而來的網(wǎng)絡(luò)安全問題日益突顯。如何構(gòu)建安全可靠的網(wǎng)絡(luò)環(huán)境,如何與時(shí)俱進(jìn)地把新技術(shù)納入網(wǎng)絡(luò)安全防護(hù)的實(shí)踐當(dāng)中,成為網(wǎng)絡(luò)安全工作者的重要課題。
本書聚焦于 Web 服務(wù)常用的安全技術(shù),以案例形式展示 Web 服務(wù)所面臨的威脅,并給出了豐富多樣的解決方案。本書由淺入深地介紹了 Web 安全的相關(guān)主題,包括 Web 應(yīng)用程序基礎(chǔ)理論、Web服務(wù)器與負(fù)載均衡、HTTPS和CDN的安全問題、Web服務(wù)的安全因素、如何保護(hù)Web服務(wù)、WAF原理與實(shí)踐、Web日志審計(jì)、蜜罐技術(shù)、大數(shù)據(jù)時(shí)代的Web安全、網(wǎng)絡(luò)安全解決方案等內(nèi)容。
本書適合網(wǎng)絡(luò)安全領(lǐng)域的研發(fā)人員、運(yùn)維人員、高校師生、培訓(xùn)機(jī)構(gòu)等群體閱讀參考。
1. 獨(dú)特視角解析網(wǎng)絡(luò)攻防之道
本書借鑒了墨家思想,從多個(gè)方面解讀Web安全的攻防原理,不僅涉及Web服務(wù)與安全的基礎(chǔ)理論,也講解了很多時(shí)下熱門的安全技術(shù),例如復(fù)雜均衡、WAF、日志審計(jì)、蜜罐等。
2. 實(shí)用案例探秘企業(yè)級(jí)安全之道
本書案例豐富,適合讀者邊學(xué)邊進(jìn)行實(shí)踐參考,能夠?yàn)榘踩I(lǐng)域的研發(fā)人員、運(yùn)維人員、高校師生、培訓(xùn)機(jī)構(gòu)提供更全面的技術(shù)指導(dǎo)和學(xué)習(xí)素材。
3. 原理解析深入淺出,經(jīng)典案例有源碼配套
本書由資深的安全從業(yè)者和高校老師編寫,融合了產(chǎn)業(yè)界和學(xué)界對(duì)網(wǎng)絡(luò)信息安全的深度思考和實(shí)踐,書中的典型案例還有配套的源碼文件提供,方便讀者使用。
盛洋,新浪網(wǎng)高級(jí)安全與開發(fā)工程師,長期從事企業(yè)信息系統(tǒng)開發(fā)與嵌入式系統(tǒng)開發(fā)。在進(jìn)入互聯(lián)網(wǎng)信息安全領(lǐng)域之后,他將企業(yè)級(jí)信息安全工程方法與對(duì)嵌入式系統(tǒng)高性能的要求融入互聯(lián)網(wǎng)安全信息系統(tǒng)的開發(fā)實(shí)踐中,深度參與了互聯(lián)網(wǎng)企業(yè)云服務(wù)防護(hù)實(shí)踐和安全信息系統(tǒng)的構(gòu)建。他還是《安全客》季刊的作者,F(xiàn)reeBuf安全智庫指導(dǎo)專家顧問及“年度作者”。他也是一名活躍的技術(shù)博主,運(yùn)營公眾號(hào)“糖果的實(shí)驗(yàn)室”。
李華峰,信息安全顧問和自由撰稿人,F(xiàn)reeBuf安全智庫指導(dǎo)專家顧問,多年來一直從事網(wǎng)絡(luò)安全滲透測(cè)試方面的研究工作,在網(wǎng)絡(luò)安全部署、網(wǎng)絡(luò)攻擊與防御以及社會(huì)工程學(xué)等方面有十分豐富的教學(xué)和實(shí)踐經(jīng)驗(yàn)。他還是一位高產(chǎn)的技術(shù)作者,已出版多本原創(chuàng)著作和譯著,為學(xué)界和業(yè)界的網(wǎng)絡(luò)安全教學(xué)和實(shí)踐提供了助力。他經(jīng)常通過公眾號(hào)“邪靈工作室”給大家分享圖書相關(guān)的資料和實(shí)用的技術(shù)指南。
第 1章 初探門徑 ——Web應(yīng)用程序基礎(chǔ)理論 1
1.1 Web應(yīng)用程序是怎樣煉成的 1
1.2 程序員是如何開發(fā)Web應(yīng)用程序的 6
1.2.1 Web程序的分層結(jié)構(gòu) 7
1.2.2 各司其職的程序員 8
1.3 研究Web應(yīng)用程序的“利器” 11
1.3.1 黑盒測(cè)試類工具 11
1.3.2 白盒測(cè)試類工具 13
1.4 小結(jié) 14
第 2章 登堂入室 ——Web服務(wù)器與負(fù)載均衡 15
2.1 羅馬不是一天建成的 15
2.2 眾人拾柴火焰高——集群技術(shù) 17
2.2.1 集群技術(shù)的核心——負(fù)載均衡算法 18
2.2.2 實(shí)現(xiàn)負(fù)載均衡的設(shè)備 19
2.2.3 集群的高可用性 21
2.2.4 負(fù)載均衡設(shè)備的部署 22
2.2.5 集群擴(kuò)展實(shí)例 23
2.3 用LVS實(shí)現(xiàn)負(fù)載均衡 25
2.3.1 DR模式 26
2.3.2 TUN模式 26
2.3.3 NAT模式 27
2.3.4 FULL NAT模式 28
2.4 保證負(fù)載均衡設(shè)備的高可用性 28
2.5 基于OpenResty的負(fù)載均衡方案 32
2.6 使用TOA溯源真實(shí)IP 33
2.7 小結(jié) 34
第3章 禍起蕭墻 ——HTTPS和CDN的安全問題 35
3.1 服務(wù)器與瀏覽器溝通的橋梁——HTTP 35
3.1.1 HTTP的工作原理 36
3.1.2 HTTP的缺陷 37
3.2 以安全為目標(biāo)的HTTPS 38
3.2.1 HTTPS的工作原理 38
3.2.2 針對(duì)HTTPS的攻擊 39
3.2.3 HSTS的工作原理 40
3.2.4 針對(duì)HSTS的攻擊 41
3.3 CDN相關(guān)的概念 43
3.3.1 HTTP范圍請(qǐng)求 45
3.3.2 DDoS攻擊 47
3.3.3 放大攻擊 47
3.4 RangeAmp攻擊 48
3.4.1 小字節(jié)范圍(SBR)攻擊 49
3.4.2 重疊字節(jié)范圍(OBR)攻擊 50
3.5 小結(jié) 52
第4章 四戰(zhàn)之地 ——Web服務(wù)的安全因素 53
4.1 Web服務(wù)所面臨的威脅 53
4.2 Web服務(wù)安全的外部環(huán)境因素 54
4.2.1 操作系統(tǒng)的漏洞 55
4.2.2 服務(wù)器應(yīng)用程序的漏洞 66
4.2.3 Docker的缺陷 69
4.3 Web服務(wù)安全的內(nèi)部代碼因素 71
4.3.1 常見的Web程序漏洞 71
4.3.2 Web漏洞測(cè)試程序(以PHP DVWA為例) 73
4.3.3 命令注入(Shell Injection)的成因與分析 76
4.3.4 文件包含漏洞的分析與利用 82
4.3.5 上傳漏洞的分析與利用 88
4.3.6 跨站請(qǐng)求偽造漏洞的分析與利用 92
4.3.7 XSS的分析與利用 96
4.4 Web服務(wù)安全檢測(cè)工具(靜態(tài)代碼審計(jì)和動(dòng)態(tài)檢測(cè)) 100
4.4.1 信息搜集工具 100
4.4.2 漏洞掃描工具 102
4.4.3 Web安全掃描工具 103
4.4.4 代碼審計(jì)工具 104
4.5 小結(jié) 105
第5章 道高一尺 ——如何保護(hù)Web服務(wù) 106
5.1 WAF基礎(chǔ)知識(shí) 107
5.1.1 WAF簡介 107
5.1.2 反向代理機(jī)制 108
5.1.3 DDoS防護(hù)與WAF的區(qū)別 110
5.1.4 反爬蟲防護(hù)與WAF的區(qū)別 110
5.1.5 WAF的工作原理 110
5.2 Lua語言基礎(chǔ) 115
5.2.1 Lua保留字 115
5.2.2 變量與數(shù)據(jù)結(jié)構(gòu) 115
5.2.3 控制結(jié)構(gòu) 116
5.2.4 函數(shù)聲明與調(diào)用 117
5.2.5 正則表達(dá)式 121
5.3 WAF的規(guī)則編寫 122
5.3.1 XSS攻擊攔截正則 122
5.3.2 SQL注入攔截正則 123
5.4 高級(jí)攔截過濾規(guī)則 124
5.5 WAF的日志分析技術(shù) 126
5.5.1 C模塊日志擴(kuò)展模塊 126
5.5.2 Lua的UDP日志發(fā)送 129
5.5.3 Kafka日志收集 130
5.5.4 在Conf中配置Syslog日志輸出 130
5.5.5 基于log_by_lua階段實(shí)現(xiàn)日志轉(zhuǎn)發(fā) 131
5.6 網(wǎng)關(guān)型WAF系統(tǒng) 132
5.6.1 安裝OpenResty 133
5.6.2 安裝Lapis 133
5.6.3 創(chuàng)建Lua Web應(yīng)用 133
5.6.4 Lor框架 135
5.6.5 Orange網(wǎng)關(guān) 136
5.6.6 在云環(huán)境中部署Orange 140
5.6.7 Apache APISIX網(wǎng)關(guān) 144
5.7 流量鏡像與請(qǐng)求調(diào)度 147
5.7.1 流量鏡像與蜜罐系統(tǒng)的聯(lián)系 147
5.7.2 配置邏輯 148
5.7.3 動(dòng)態(tài)切換上游(蜜罐) 149
5.8 動(dòng)態(tài)跟蹤技術(shù) 151
5.8.1 保證網(wǎng)關(guān)的安全性 151
5.8.2 動(dòng)態(tài)跟蹤技術(shù) 152
5.9 小結(jié) 153
第6章 魔高一丈 ——WAF可以讓我們高枕無憂嗎 154
6.1 入侵者如何檢測(cè)WAF 154
6.1.1 網(wǎng)站有無WAF保護(hù)的區(qū)別 154
6.1.2 檢測(cè)目標(biāo)網(wǎng)站是否使用WAF 155
6.1.3 檢測(cè)目標(biāo)網(wǎng)站使用的WAF產(chǎn)品 158
6.2 入侵者如何繞過云WAF 161
6.3 常見的WAF繞過方法 163
6.3.1 利用WAF的檢查范圍 164
6.3.2 WAF與操作系統(tǒng)的解析差異 165
6.3.3 利用WAF與服務(wù)器應(yīng)用程序的解析差異 170
6.3.4 編解碼技術(shù)的差異 172
6.3.5 其他常用方法 175
6.4 小結(jié) 176
第7章 有跡可循 ——Web日志審計(jì) 177
7.1 Web服務(wù)的日志聚合 178
7.1.1 KafkaCat安裝 178
7.1.2 Nginx和OpenResty日志配置 179
7.1.3 用KafkaCat發(fā)送日志 180
7.2 Kafka數(shù)據(jù)隊(duì)列服務(wù)安裝 180
7.2.1 Kafka安裝與配置 180
7.2.2 Zookeeper安裝與配置 184
7.2.3 創(chuàng)建索引并測(cè)試 186
7.3 NxLog 187
7.3.1 NxLog安裝 187
7.3.2 NxLog配置 187
7.4 Graylog 189
7.5 日志自動(dòng)化取證分析 198
7.6 小結(jié) 204
第8章 太公釣魚,愿者上鉤 ——蜜罐技術(shù) 205
8.1 蜜罐技術(shù)簡介 205
8.2 蜜罐的部署 208
8.2.1 Python環(huán)境安裝 208
8.2.2 安裝PIP 208
8.2.3 安裝VirtualEnv 208
8.2.4 創(chuàng)建Python虛擬環(huán)境 208
8.2.5 安裝OpenCanary 209
8.2.6 蜜罐系統(tǒng)配置管理 209
8.2.7 蜜罐服務(wù)分析 209
8.2.8 啟動(dòng)蜜罐系統(tǒng) 214
8.3 常見的蜜罐服務(wù) 215
8.3.1 HTTP 216
8.3.2 FTP 217
8.3.3 SSH 218
8.3.4 Telnet 218
8.3.5 MySQL 219
8.3.6 Git 219
8.3.7 NTP 220
8.3.8 Redis 220
8.3.9 TCP 221
8.3.10 VNC 221
8.3.11 RDP 222
8.3.12 SIP 223
8.3.13 SNMP 223
8.3.14 Nmap 224
8.3.15 SYN探測(cè) 225
8.3.16 FIN 225
8.3.17 XmasTree 226
8.3.18 Null 227
8.3.19 MSSQL 228
8.3.20 HTTPProxy 228
8.4 虛擬蜜罐技術(shù)與擴(kuò)展 229
8.5 蜜罐運(yùn)維管理 234
8.6 蜜罐流量監(jiān)聽技術(shù)與實(shí)現(xiàn) 236
8.6.1 基于C與Pcap實(shí)現(xiàn)的流量分析工具 236
8.6.2 創(chuàng)建蜜罐監(jiān)聽 237
8.6.3 編寫Makefile 239
8.6.4 核心API解析 239
8.6.5 數(shù)據(jù)源插件 243
8.6.6 過濾插件 245
8.6.7 日志輸出插件 246
8.7 用交換機(jī)端口聚合技術(shù)實(shí)現(xiàn)蜜罐部署 247
8.7.1 交換機(jī)端口聚合與蜜罐VLAN劃分 247
8.7.2 單物理網(wǎng)卡與多IP蜜罐實(shí)例監(jiān)聽 248
8.7.3 案例1:捕獲內(nèi)網(wǎng)服務(wù)發(fā)起的掃描行為 248
8.7.4 案例2:勒索病毒軟件監(jiān)控 249
8.7.5 收集攻擊payload數(shù)據(jù) 249
8.7.6 日志中心與威脅報(bào)警 250
8.7.7 蜜罐系統(tǒng)的監(jiān)控與運(yùn)維 251
8.8 小結(jié) 252
第9章 眾擎易舉 ——大數(shù)據(jù)時(shí)代的Web安全 253
9.1 正常URL與惡意URL 254
9.2 傳統(tǒng)的惡意URL檢測(cè)方法 256
9.3 當(dāng)URL檢測(cè)遇上機(jī)器學(xué)習(xí) 257
9.4 深度學(xué)習(xí)框架 258
9.5 URL的向量表示 259
9.6 基于LSTM的惡意URL識(shí)別模型 261
9.7 URL識(shí)別模型與WAF的結(jié)合 264
9.7.1 自動(dòng)威脅日志采集 265
9.7.2 Sklearn大數(shù)據(jù)環(huán)境 267
9.7.3 大數(shù)據(jù)建模實(shí)踐 269
9.8 小結(jié) 271
第 10章 步步為營 ——網(wǎng)絡(luò)安全解決方案 272
10.1 通過命令注入漏洞進(jìn)行滲透 273
10.1.1 攻防系統(tǒng)結(jié)構(gòu) 273
10.1.2 DVWA的反彈Shell操作 275
10.1.3 日志與數(shù)據(jù)中心 276
10.2 基于DSL的攔截檢查防御 278
10.2.1 DSL與小語言O(shè)penResty EdgeLang 278
10.2.2 基于OpenResty EdgeLang的攔截檢查 280
10.3 基于語義分析庫的威脅攻擊分析 282
10.3.1 語義分析原理 282
10.3.2 libInjection語義分析庫 283
10.3.3 開源語義分析庫的局限 283
10.4 基于神經(jīng)網(wǎng)絡(luò)的威脅建模手段 284
10.4.1 規(guī)則泛化 284
10.4.2 數(shù)據(jù)神經(jīng)網(wǎng)絡(luò) 284
10.5 跟蹤Shell反彈執(zhí)行進(jìn)程 285
10.5.1 System動(dòng)態(tài)跟蹤技術(shù) 285
10.5.2 OpenResty YLang語言 287
10.5.3 火焰圖與動(dòng)態(tài)跟蹤 289
10.5.4 OpenResty YSQL語言 290
10.6 小結(jié) 292