服務(wù)器端應(yīng)用安全

原文鏈接:http://blog.csdn.net/qq_22329521/article/details/76128654

SQL注入

盲注

Web服務(wù)器關(guān)閉了錯(cuò)誤回顯苛秕,對(duì)于攻擊者就缺少了重要的調(diào)試信息古劲,所以攻擊者知道一個(gè)方法來(lái)驗(yàn)證SQL語(yǔ)句是否執(zhí)行
比如

http://xxxx.com/items.php?id=2
構(gòu)造
http://xxxx.com/items.php?id=2 and 1=2
如果頁(yè)面是空的,或者出差假夺,可以猜測(cè)這可能存在注入的機(jī)會(huì)
再次修改
http://xxxx.com/items.php?id=2 and 1=1
如果正常返回,就可以判斷注入成功

BENCHMARK函數(shù)

BENCHMARK函數(shù)用來(lái)測(cè)試函數(shù)性能

BENCHMARK(10000000,ENCODE('msg','by 5 seconds'))
將encode(xxx,xxx)執(zhí)行xxxx次數(shù)

利用BENCHMARK函數(shù),可以讓同一個(gè)行數(shù)執(zhí)行若干次暇检,使得結(jié)果返回的時(shí)間比平時(shí)長(zhǎng)款熬,通過(guò)時(shí)間長(zhǎng)度變化深寥,可以判斷注入語(yǔ)句是否執(zhí)行成功

下面有具體的sql實(shí)例
http://blog.csdn.net/emaste_r/article/details/8156108

防御sql注入

  • 預(yù)編譯語(yǔ)句,綁定變量
  • 使用存儲(chǔ)過(guò)程贤牛,調(diào)用存在數(shù)據(jù)庫(kù)里的函數(shù)
  • 檢查數(shù)據(jù)類型惋鹅,如果輸入是數(shù)字,就用integer做檢驗(yàn)殉簸,如果是郵箱則正則表達(dá)式去做校驗(yàn)等
  • 使用定義好的安全函數(shù)來(lái)轉(zhuǎn)義闰集。
  • 設(shè)置數(shù)據(jù)庫(kù)用戶的最小權(quán)限沽讹。

文件上傳漏洞

文件上傳后導(dǎo)致的常見(jiàn)安全問(wèn)題一般有:

  • 上傳文件是Web腳本語(yǔ)言,服務(wù)器的Web容器解釋并執(zhí)行用戶上傳的腳本返十,導(dǎo)致代碼執(zhí)行
  • 上傳文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在該域下的行為(其他通過(guò)類似行為控制策略文件的情況類似)
  • 上傳文件是病毒妥泉,木馬文件,用以誘惑用戶或者管理員下載執(zhí)行
  • 上傳文件是釣魚(yú)圖片或?yàn)榘_本的圖片洞坑,在某些版本瀏覽器中會(huì)被作為腳本執(zhí)行盲链,被用于釣魚(yú)和欺詐

設(shè)計(jì)安全的文件上傳功能

  • 文件上傳的目錄設(shè)置為不可執(zhí)行:只要Web容器無(wú)法解析該目錄下的文件,即使上傳了腳本文件也不收影響
  • 判斷文件類型:可以結(jié)合MIME Type,后綴檢查等方式迟杂。
  • 使用隨機(jī)數(shù)改寫(xiě)文件名和文件路徑:只要修改路徑刽沾,上傳的文件查找的不容易
  • 單獨(dú)設(shè)置文件服務(wù)器的域名:同源策略的關(guān)系,一系列客戶端攻擊將生效

用戶信息管理

密碼強(qiáng)度
  • 普通應(yīng)用要求長(zhǎng)度為6位以上
  • 重要應(yīng)用要求長(zhǎng)度為8位以上排拷,并考慮雙因素認(rèn)證
  • 密碼區(qū)分大小寫(xiě)字母
  • 密碼為大寫(xiě)字母侧漓,小寫(xiě)字幕、數(shù)字监氢、特殊符號(hào)中兩種以上的組合
  • 不要有連續(xù)性的字符
  • 盡量避免出現(xiàn)重復(fù)的字符
  • 密碼保存:必須以不可逆的加密算法布蔗,或者是單向散列函數(shù)算法,加密后存儲(chǔ)在數(shù)據(jù)庫(kù)中
  • 在計(jì)算密碼明文的時(shí)候加一個(gè)salt MD5(salt+password),避免password 單一容易被彩虹表收集到

Session注意點(diǎn)

  • Seesion在登陸完成后浪腐,重寫(xiě)SessionId纵揍,避免SessionFixation攻擊
  • 服務(wù)器設(shè)置固定時(shí)間強(qiáng)制銷毀Session,因?yàn)榭蛻舳丝梢孕薷挠脩舻拇婊顣r(shí)間议街,定時(shí)拿seesionId去請(qǐng)求泽谨。
  • 降低SSO的風(fēng)險(xiǎn),在一些敏感的系統(tǒng)特漩,在單獨(dú)實(shí)現(xiàn)額外的認(rèn)證機(jī)制吧雹。

訪問(wèn)控制

  • 垂直權(quán)限管理:現(xiàn)在應(yīng)用廣泛的一種方法是基于角色的范圍控制:RBAC,Java中的Spring Security 權(quán)限管理涂身,就是RBAC模型的一個(gè)實(shí)現(xiàn)
  • 水平權(quán)限管理雄卷,RBAC只能驗(yàn)證用戶A屬于角色RoleX,但不會(huì)判斷用戶A是否能訪問(wèn)只屬于用戶B的數(shù)據(jù)B,發(fā)生了越權(quán)訪問(wèn)蛤售,這種問(wèn)題一般是具體問(wèn)題具體解決龙亲,至今仍是一個(gè)難題,它難以發(fā)現(xiàn)
  • 設(shè)計(jì)方案時(shí)悍抑,都應(yīng)該滿足“最小權(quán)限原則"

加密算法與隨機(jī)數(shù)

略鳄炉。。搜骡。

記下結(jié)論

  • 不要使用ECB模式
  • 不要使用流密碼(RC4)
  • 使用HMAC-SHA1替代MD5(甚至是替代SHA1)
  • 不要使用相同的key做不同的事情
  • salts與IV需要隨機(jī)生成
  • 不要自己實(shí)現(xiàn)加密算法拂盯,盡量使用安全專家已經(jīng)實(shí)現(xiàn)好的庫(kù)
  • 不要依賴系統(tǒng)的保密性
  • 使用CBC模式的AES256加密
  • 使用HMAC-SHA512用于完整性檢查
  • 使用帶salt的SHA-256或SHA-512用于Hash

DDOS

DDOS又稱為分布式拒絕服務(wù)利用合理的請(qǐng)求造成資源過(guò)載,導(dǎo)致服務(wù)不可用

SYN flood攻擊

  1. 客戶端向服務(wù)器端發(fā)送一個(gè)SYN包记靡,包含客戶單使用的端口號(hào)和初始序列號(hào)X
  2. 服務(wù)器端接受到客戶單發(fā)送的SYN包后谈竿,向客戶端發(fā)送一個(gè)SYN包和ACK都置位的TCP報(bào)文团驱,包含確認(rèn)號(hào)x+1和服務(wù)器端的初始序列號(hào)y
  3. 客戶端收到服務(wù)器端返回的SYN+ACK報(bào)文后,向服務(wù)器端返回一個(gè)確認(rèn)號(hào)為y+1空凸、序號(hào)為x+1的ACK報(bào)文嚎花,一個(gè)標(biāo)準(zhǔn)的TCP連接

SYN flood攻擊,首先偽造大量的源IP地址呀洲,分別向服務(wù)器端發(fā)送大量的SYN包紊选,此時(shí)服務(wù)器端會(huì)返回SYN/ACK包,因?yàn)樵吹刂肥莻卧斓牡蓝海詡卧斓腎P并不會(huì)應(yīng)答兵罢,服務(wù)器端沒(méi)有收到偽造IP的回應(yīng),會(huì)重試3-5次并且等待一個(gè)SYN Time(一般為30秒至2分鐘)滓窍,如果超時(shí)則丟棄連接卖词。攻擊者大量發(fā)送這種偽造源地址的SYN請(qǐng)求,服務(wù)器會(huì)消耗非常多的資源來(lái)處理這種半連接吏夯。

對(duì)抗SYN flood的主要策略有SYN Cookie/SYN Proxy,safereset等算法,SYN Cookie 主要思想是為每一個(gè)IP地址分配一個(gè) cookie此蜈,并統(tǒng)計(jì)每個(gè)ip地址的訪問(wèn)頻率,如果短時(shí)間收到大量的請(qǐng)求噪生,則丟棄這些ip地址的包

應(yīng)用層DDOS

由于發(fā)生在應(yīng)用層裆赵,tcp三次握手已經(jīng)完成,連接建立杠园,發(fā)起的ip都是真實(shí)的顾瞪,這種ddos逼網(wǎng)絡(luò)層ddos更可怕
CC攻擊
CC攻擊原理非常簡(jiǎn)單舔庶,就是對(duì)一些消耗資源較大的應(yīng)用頁(yè)面不斷發(fā)起正常的請(qǐng)求抛蚁,以達(dá)到消耗服務(wù)器資源的目的。在Web應(yīng)用中惕橙,查詢數(shù)據(jù)庫(kù)瞧甩,讀/寫(xiě)硬盤(pán)文件等操作,相對(duì)都會(huì)消耗成比較多的資源
應(yīng)用層的攻擊還可以通過(guò)一下方式:黑客入侵了一個(gè)流量大的網(wǎng)站后弥鹦,通過(guò)篡改頁(yè)面肚逸,將巨大的用戶流量分流到目標(biāo)網(wǎng)站

<iframe src="target" width=0,height=0/>

資源耗盡攻擊

Slowloris攻擊
其原理是以極低的速度往服務(wù)器發(fā)送HTTP請(qǐng)求。由于Web Server對(duì)于并發(fā)的連接數(shù)有一定的上限彬坏,因此若是惡意地占用住這些連接不釋放朦促。那么無(wú)法接收到正常的請(qǐng)求
實(shí)現(xiàn)是構(gòu)造一個(gè)畸形的HTTP請(qǐng)求

Content-Length:42\r\n\r\n

由于WebServer只收到一個(gè)\r\n,因此將認(rèn)為Http Headers部分沒(méi)有結(jié)束,并保持

優(yōu)化服務(wù)器性能的方式

  • 將使用頻率高的數(shù)據(jù)放到memcache中栓始,將數(shù)據(jù)庫(kù)的壓力轉(zhuǎn)移到內(nèi)存中务冕,此外及時(shí)釋放資源
  • 在針對(duì)每個(gè)客戶端做一個(gè)請(qǐng)求頻率的限制(但是如果對(duì)方使用代理服務(wù)器通過(guò)不斷變化IP地址,如果服務(wù)器對(duì)單個(gè)IP地址的請(qǐng)求就無(wú)效了)
  • 在網(wǎng)絡(luò)架構(gòu)上做好優(yōu)化幻赚,善于利用負(fù)載均衡禀忆,避免用戶流量集中在單臺(tái)服務(wù)器上臊旭,同時(shí)可以充分利用好CDN和鏡像站點(diǎn)的分流作用,緩解主站的壓力
  • 驗(yàn)證碼箩退,為了識(shí)別人與機(jī)器的交互
  • 可以在Http頭中的User-Agent字段來(lái)識(shí)別客戶端离熏,讓客戶端解析一段JavaScript,并給出正確的運(yùn)行結(jié)果等
  • 在WebServer做出一些處理戴涝,其好處在于請(qǐng)求尚未到達(dá)后端滋戳,在Apache的配置文件中,有一些參數(shù)可以緩解DDOS攻擊喊括,比如調(diào)小Timeout,KeepAliveTimeout值胧瓜,增加MaxClients的值

垃圾處理

如何防范垃圾注冊(cè)和垃圾消息,垃圾處理離不開(kāi)
兩個(gè)步驟:‘識(shí)別’和‘?dāng)r截’
"批量"和“自動(dòng)化”的特點(diǎn)意味著:

  1. 同一客戶端會(huì)多次請(qǐng)求同樣的URL地址
  2. 頁(yè)面與頁(yè)面直接的跳轉(zhuǎn)流程不支持
  3. 同意客戶端兩次請(qǐng)求時(shí)間短
  4. 客戶端的UserAgent看起來(lái)不像瀏覽器
  5. 客戶端可能無(wú)法解析JavaScript和Flash
  6. 在大多數(shù)情況下驗(yàn)證碼是有效的

如果在從垃圾注冊(cè)和垃圾消息的內(nèi)容分析郑什,發(fā)現(xiàn)的特點(diǎn)

  1. 注冊(cè)時(shí)填寫(xiě)的用戶名可能是隨機(jī)生成的字符串府喳,而非自然語(yǔ)言
  2. 不同賬號(hào)的資料可能出現(xiàn)同樣的內(nèi)容
  3. 可能含有一些敏感詞
  4. 可能出現(xiàn)文字變形,比如全角變半角

與業(yè)務(wù)結(jié)合蘑拯,更多的特征

  1. 如果某個(gè)用戶給多個(gè)用戶發(fā)送消息钝满,但是接受者不會(huì),這個(gè)人可能在發(fā)送消息
  2. 如果某個(gè)用戶加入IM群中申窘,發(fā)送的消息是相同的內(nèi)容弯蚜,不說(shuō)其他話,可能也是在發(fā)送垃圾消息

有了這些特征剃法,可以建立規(guī)則和模型

參考文章
白帽子講Web安全
http://www.bubuko.com/infodetail-1784365.html
http://blog.csdn.net/emaste_r/article/details/8156108

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碎捺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子贷洲,更是在濱河造成了極大的恐慌收厨,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件优构,死亡現(xiàn)場(chǎng)離奇詭異诵叁,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)钦椭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)拧额,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人彪腔,你說(shuō)我怎么就攤上這事侥锦。” “怎么了德挣?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵恭垦,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)署照,這世上最難降的妖魔是什么祸泪? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮建芙,結(jié)果婚禮上没隘,老公的妹妹穿的比我還像新娘。我一直安慰自己禁荸,他們只是感情好右蒲,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著赶熟,像睡著了一般瑰妄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上映砖,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天间坐,我揣著相機(jī)與錄音,去河邊找鬼邑退。 笑死竹宋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的地技。 我是一名探鬼主播蜈七,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼莫矗!你這毒婦竟也來(lái)了飒硅?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤作谚,失蹤者是張志新(化名)和其女友劉穎三娩,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體食磕,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尽棕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年喳挑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了彬伦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡伊诵,死狀恐怖单绑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情曹宴,我是刑警寧澤搂橙,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站笛坦,受9級(jí)特大地震影響区转,放射性物質(zhì)發(fā)生泄漏苔巨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一废离、第九天 我趴在偏房一處隱蔽的房頂上張望侄泽。 院中可真熱鬧,春花似錦蜻韭、人聲如沸悼尾。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)闺魏。三九已至,卻和暖如春俯画,著一層夾襖步出監(jiān)牢的瞬間析桥,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工艰垂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烹骨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓材泄,卻偏偏與公主長(zhǎng)得像沮焕,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拉宗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容