久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

【Web安全】之【1.0 序章】

 印度阿三17 2020-12-16

1.0 序章

1.1 Web 技術演化

簡單網站

靜態(tài)頁面

Web技術在最初階段,網站的主要內容是靜態(tài)的,,**大多站點托管在ISP上,,由文字和圖片組成,制作和表現(xiàn)形式也是以表格為主,。**當時的用戶行為也非常簡單,,基本只是瀏覽網頁。

多媒體階段

隨著技術的不斷發(fā)展,,音頻,、視頻、Flash等多媒體技術誕生了,。多媒體的加入使得網頁變得更加生動形象,,網頁上的交互也給用戶帶來了更好的體驗。

CGI 階段

漸漸的,,多媒體已經不能滿足人們的請求,,于是CGI (Common Gateway Interface) 應運而生。CGI定義了Web服務器與外部應用程序之間的通信接口標準,,因此Web服務器可以通過CGI執(zhí)行外部程序,,讓外部程序根據Web請求內容生成動態(tài)的內容。

在這個時候,,各種編程語言如PHP/ASP/JSP也逐漸加入市場,,基于這些語言可以實現(xiàn)更加模塊化的、功能更強大的應用程序,。

Ajax

在開始的時候,,用戶提交整個表單后才能獲取結果,用戶體驗極差,。于是Ajax (Asynchronous Javascript And XML) 技術逐漸流行起來,,它使得應用在不更新整個頁面的前提下也可以獲得或更新數(shù)據。這使得Web應用程序更為迅捷地回應用戶動作,,并避免了在網絡上發(fā)送那些沒有改變的信息,。

MVC

隨著Web應用開發(fā)越來越標準化,出現(xiàn)了MVC等思想,。MVC是Model/View/Control的縮寫,,Model用于封裝數(shù)據和數(shù)據處理方法,視圖View是數(shù)據的HTML展現(xiàn),,控制器Controller負責響應請求,,協(xié)調Model和View,。

Model,View和Controller的分開,,是一種典型的關注點分離的思想,,**使得代碼復用性和組織性更好,Web應用的配置性和靈活性也越來越好,。**而數(shù)據訪問也逐漸通過面向對象的方式來替代直接的SQL訪問,,出現(xiàn)了ORM (Object Relation Mapping) 的概念。

除了MVC,,類似的設計思想還有MVP,,MVVM等。

數(shù)據交互

簡單數(shù)據交互

在Web技術發(fā)展最初,,前后端交互大部分都使用Web表單,、XML、SOAP等較為簡單的方式,。

RESTful

在CGI時期,,前后端通常是沒有做嚴格區(qū)分的,隨著解耦和的需求不斷增加,,前后端的概念開始變得清晰,。前端主要指網站前臺部分,運行在PC端,、移動端等瀏覽器上展現(xiàn)給用戶瀏覽的網頁,,由HTML5、CSS3,、JavaScript組成,。后端主要指網站的邏輯部分,涉及數(shù)據的增刪改查等,。

此時,,REST (Representation State Transformation) 逐漸成為一種流行的Web架構風格。

**REST鼓勵基于URL來組織系統(tǒng)功能,,充分利用HTTP本身的語義,,而不是僅僅將HTTP作為一種遠程數(shù)據傳輸協(xié)議。**一般RESTful有以下的特征:

  • 域名和主域名分開
    • api.example.com
    • example.com/api/
  • 帶有版本控制
    • api.example.com/v1
    • api.example.com/v2
  • 使用URL定位資源
    • GET /users 獲取所有用戶
    • GET /team/:team/users 獲取某團隊所有用戶
    • POST /users 創(chuàng)建用戶
    • PATCH/PUT /users 修改某個用戶數(shù)據
    • DELETE /users 刪除某個用戶數(shù)據
  • 用 HTTP 動詞描述操作
    • GET 獲取資源,,單個或多個
    • POST 創(chuàng)建資源
    • PUT/PATCH 更新資源,,客戶端提供完整的資源數(shù)據
    • DELETE 刪除資源
  • 正確使用狀態(tài)碼
    • 使用狀態(tài)碼提高返回數(shù)據的可讀性
  • 默認使用 JSON 作為數(shù)據響應格式
  • 有清晰的文檔

GraphQL

部分網絡服務場景的數(shù)據有復雜的依賴關系,為了應對這些場景,,**Facebook 推出了 GraphQL ,,以圖狀數(shù)據結構對數(shù)據進行查詢存儲。**部分網站也應用了 GraphQL 作為 API 交互的方式,。

二進制

隨著業(yè)務對性能的要求提高,,前后端開始使用HTTP/2,、自定義Protocol Buffer等方式來加快數(shù)據交互,。

中間件

架構復雜化

隨著業(yè)務的不斷發(fā)展,,業(yè)務架構也越來越復雜。傳統(tǒng)的功能被拆分成不同的模塊,,出現(xiàn)了中間件,、中臺等概念。代理服務,、負載均衡,、數(shù)據庫分表、異地容災,、緩存,、CDN、消息隊列,、安全防護等技術應用越來越廣泛,,增加了Web開發(fā)和運維的復雜度。

客戶端的形態(tài)越來越多,,除了Web之外iOS,、Android等其他場景也出現(xiàn)在Web服務的客戶端場景。

數(shù)據庫從最開始的輕量數(shù)據庫,,出現(xiàn)了Redis/Memcached緩存數(shù)據庫等一類滿足特定需求的數(shù)據庫,。

為了滿足特定的業(yè)務需求,出現(xiàn)了Lucene/Solr/Elasticsearch搜索應用服務器,,Kafka/RabbitMQ/ZeroMQ消息系統(tǒng),,Spark計算引擎,Hive數(shù)據倉庫平臺等不同的基礎架構,。

分布式

隨著數(shù)據量的不斷提高,,單臺設備難以承載這樣的訪問量,同時不同功能也被拆分到不同的應用中,,于是出現(xiàn)了提高業(yè)務復用及整合的分布式服務框架(RPC),。

CI/CD

持續(xù)集成 (Continuous Integration, CI) 是讓開發(fā)人員將工作集成到共享分支中的過程。頻繁的集成有助于解決隔離,,減少每次提交的大小,,以降低合并沖突的可能性。

持續(xù)交付 (Continuous Deployment, CD) 是持續(xù)集成的擴展,,它將構建從集成測試套件部署到預生產環(huán)境,。這使得它可以直接在類生產環(huán)境中評估每個構建,因此開發(fā)人員可以在無需增加任何工作量的情況下,,驗證bug修復或者測試新特性,。

云服務

云計算誕生之前,,大部分計算資源是處于“裸金屬”狀態(tài)的物理機,運維人員選擇對應規(guī)格的硬件,,建設機房的 IDC 網絡,,完成服務的提供,投入硬件基礎建設和維護的成本很高,。云服務出現(xiàn)之后,,使用者可以直接購買云主機,基礎設施由供應商管理,,這種方式也被稱作 IaaS (Infrastructure-as-a-Service) ,。

隨著架構的繼續(xù)發(fā)展,應用的運行更加細粒度,,部署環(huán)境容器化,,各個功能拆成微服務或是Serverless的架構。

Serverless

Serverless 架構由兩部分組成,,即 Faas (Function-as-a-Service) 和 BaaS (Backend-as-a-Service) ,。

FaaS是運行平臺,用戶上傳需要執(zhí)行的邏輯函數(shù)如一些定時任務,、數(shù)據處理任務等到云函數(shù)平臺,,配置執(zhí)行條件觸發(fā)器、路由等等,,就可以通過云平臺完成函數(shù)的執(zhí)行,。

BaaS包含了后端服務組件,它基于 API 完成第三方服務,,主要是數(shù)據庫,、對象存儲、消息隊列,、日志服務等等,。

微服務

微服務起源于2005年Peter Rodgers博士在云端運算博覽會提出的微Web服務 (Micro-Web-Service),根本思想類似于Unix的管道設計理念,。2014年,,由Martin Fowler與 James Lewis共同提出了微服務的概念,定義了微服務架構風格是一種通過一套小型服務來開發(fā)單個應用的方法,,每個服務運行在自己的進程中,,并通過輕量級的機制進行通訊 (HTTP API) 。

微服務是一種應用于組件設計和部署架構的軟件架構風格,。它利用模塊化的方式組合出復雜的大型應用程序:

  • 各個服務功能內聚,,實現(xiàn)與接口分離。
  • 各個服務高度自治、相互解耦,,可以獨立進行部署,、版本控制和容量伸縮。
  • 各個服務之間通過 API 的方式進行通信,。
  • 各個服務擁有獨立的狀態(tài),,并且只能通過服務本身來對其進行訪問。

API 網關

API網關是一個服務器,,客戶端只需要使用簡單的訪問方式,,統(tǒng)一訪問API網關,,由API網關來代理對后端服務的訪問,,同時由于服務治理特性統(tǒng)一放到API網關上面,服務治理特性的變更可以做到對客戶端透明,,一定程度上實現(xiàn)了服務治理等基礎特性和業(yè)務服務的解耦,,服務治理特性的升級也比較容易實現(xiàn)。

1.2 網絡攻防技術演化

歷史發(fā)展

1939年,,圖靈破解了Enigma,,使戰(zhàn)爭提前結束了兩年,這是較早的一次計算機安全開始出現(xiàn)在人們的視野中,,這個時候計算機的算力有限,,人們使用的攻防方式也相對初級。

1949年,,**約翰·馮·諾依曼(John Von Neumann)**提出了一種可自我復制的程序的設計,,這被認為是世界上第一種計算機病毒。

1970年到2009年間,,隨著因特網不斷發(fā)展,,網絡安全也開始進入人們的視野,。在網絡發(fā)展的初期,,很多系統(tǒng)都是零防護的,安全意識也尚未普及開來,。很多系統(tǒng)的設計也只考慮了可用性,,對安全性的考慮不多,所以在當時結合搜索引擎與一些集成滲透測試工具,,可以很容易的拿到數(shù)據或者權限,。

1972年,緩沖區(qū)溢出攻擊被 Computer Security Technology Planning Study 提出,。

1984年,,Ken Thompson 在 Reflections on Trusting Trust 一文中介紹了自己如何在編譯器中增加后門來獲取 Unix 權限的,這也是較早的供應鏈攻擊。

1988年,,卡耐基梅隆大學(Carnegie Mellon University, CMU)的一位學生以測試的目的編寫了Morris Worm,,對當時的互聯(lián)網造成了極大的損害。

同年,,CMU的CERT Coordination Center (CERT-CC)為了處理Morris Worm對互聯(lián)網造成的破壞,,組成了第一個計算機緊急響應小組(Computer Emergency Response Team),而后全球多個國家,、地區(qū),、團體都構建了CERT、SRC等組織,。

同樣是在1988年,,Barton Miller教授在威斯康星大學的 計算機實驗課上 ,首次提出Fuzz生成器(Fuzz Generator)的概念,,用于測試Unix程序的健壯性,,即用隨機數(shù)據來測試程序直至崩潰。因此,,Barton Miller教授也被多數(shù)人尊稱為"模糊測試之父",。

1989年,C.J.Cherryh 發(fā)表了小說 The Cuckoo’s Egg: Tracking a Spy Through the Maze of Computer Espionage ,,這本書是作者根據追溯黑客攻擊的真實經歷改編,,在書中提出了蜜罐技術的雛形。

1990年,,一些網絡防火墻的產品開始出現(xiàn),,此時主要是基于網絡的防火墻,可以處理FTP等應用程序,。

1993年起,,Jeff Moss開始每年在美國內華達州的拉斯維加斯舉辦 DEFCON (也寫做 DEF CON, Defcon, or DC, 全球最大的計算機安全會議之一) 。CTF (Capture The Flag) 比賽的形式也是起源于1996年的 DEFCON ,。

1993年7月,,Windows NT 3.1發(fā)布,引入了身份認證,、訪問控制和安全審計等安全控制機制,,在此之前的 Windows 9x 內核幾乎沒有任何安全性機制。

1996年,,Smashing the Stack For Fun and Profit發(fā)表,,在堆棧的緩沖區(qū)溢出的利用方式上做出了開創(chuàng)性的工作。

1997年起,,Jeff Moss開始舉辦 Black Hat ,,以中立的立場進行信息安全研究的交流和培訓,到目前為止,Black Hat 也會在歐洲和亞洲舉行,。

1998年12月,,Jeff Forristal在一篇 文章 中提到了使用SQL注入的技巧攻擊一個網站的例子,從此SQL注入開始被廣泛討論,。

1999年1月21日-22日的第二屆 Research with Security Vulnerability Databases 的 WorkShop 上,, MITRE 的創(chuàng)始人 David E. Mann 和 Steven M. Christey 發(fā)表了一篇名為《Towards a Common Enumeration of Vulnerabilities》的白皮書,提出了CVE (Common Vulnerabilities and Exposures, 通用漏洞披露) 的概念,,在當年收錄并公開了321個CVE漏洞,。

1999年12月,MSRC的一些工程師發(fā)現(xiàn)了一些網站被注入代碼的例子,,他們在整理討論后公開了這種攻擊,,并稱為 Cross Site Scripting。

2002年1月,,Microsoft發(fā)起了 “可信賴計算” (Trustworthy Computing) 計劃,,以幫助確保產品和服務在本質上具有高度安全性,可用性,,可靠性以及業(yè)務完整性,SDL (Security Development Lifecycle) 也在此時被提出,。

2001年9月9日,,Mark Curphey啟動了OWASP (Open Web Application Security Project) 項目,開始在社區(qū)中提供一些Web攻擊技術的文章,、方法和工具等,。

在此之后,Responsible disclosure / Full disclosure 等概念也不斷進入人們的視野之中,。

2002年10月4日,,Kevin Mitnick 編著的 The Art of Deception (欺騙的藝術) 出版,這本書詳細的介紹了社會工程學在攻擊中是如何應用的,,Kevin Mitnick 也被認為是社會工程學的開山鼻祖,。

2005年7月25日,Zero Day Initiative (ZDI) 創(chuàng)建,,鼓勵負責任的漏洞披露,。

2005年11月,基于從1941年2月開始的情報收集積累和發(fā)展,,Director of National Intelligence 宣布成立 Open Source Center (OSC) ,,進行開源情報的收集,而后 Open-source intelligence (OSINT) 的概念也不斷被人們認知,。

2006年,,APT(Advanced Persistent Threat, 高級持續(xù)威脅) 攻擊的概念被正式提出,用來描述從20世紀90年代末到21世紀初在美國軍事和政府網絡中發(fā)現(xiàn)的隱蔽且持續(xù)的網絡攻擊。

2006年起,,美國國土安全部(DHS)開始每兩年舉行一次 “網絡風暴” (Cyber Storm) 系列國家級網絡事件演習,。

隨著時代不斷的發(fā)展,攻防技術有了很大的改變,,防御手段,、安全意識也隨著演化。在攻擊發(fā)生前有威脅情報,、黑名單共享等機制,,威脅及時能傳播。在攻擊發(fā)生時有基于各種機制的防火墻如關鍵字檢測,、語義分析,、深度學習,有的防御機制甚至能一定程度上防御零日攻擊,。在攻擊發(fā)生后,,一些關鍵系統(tǒng)系統(tǒng)做了隔離,攻擊成果難以擴大,,就算拿到了目標也很難做進一步的攻擊,。也有的目標蜜罐仿真程度很高,有正常的服務和一些難以判斷真假的業(yè)務數(shù)據,。

2010年6月,,震網 (Stuxnet) 被發(fā)現(xiàn),在這之后供應鏈攻擊事件開始成為網絡空間安全的新興威脅之一,。隨后的XcodeGhost,、CCleaner等供應鏈攻擊事件都造成了重大影響。

在2010年Forrester Research Inc.的分析師提出了“零信任”的概念模型時,。

2012年1月,,Gartner 公司提出了 IAST (Interactive Application Security Testing) 的概念,提供了結合 DAST 和 SAST 兩種技術的解決方案,。

2012年9月,,Gartner 公司研究員 David Cearley 提出了 DevSecOps 的概念,表示 DevOps 的流程應該包含安全理念,。

2013年,,MITRE 提出了 ATT&CK? (Adversarial Tactics, Techniques, and Common Knowledge, ATT&CK) ,這是一個站在攻擊者的視角來描述攻擊中各階段用到的技術的模型,。

2013年,,Michigan 大學開始了 ZMap 項目,在2015年這個項目演化為 Censys ,,從這之后網絡空間測繪的項目逐漸出現(xiàn),。

2014年,,在 Gartner Security and Risk Management Summit 上,Runtime Application Self-protection (RASP) 的概念被提出,,在應用層進行安全保護,。

2015年,Gartner 首次提出了 SOAR 的概念,,最初的定義是 Security Operations, Analytics and Reporting,,即安全運維分析與報告。

2017年,,Gartner 對 SOAR 概念做了重新定義:Security Orchestration, Automation and Response, 即安全編排,、自動化與響應。

1.3 網絡安全觀

定義

網絡安全的一個通用定義指網絡信息系統(tǒng)的硬件,、軟件及其系統(tǒng)中的數(shù)據受到保護,,不因偶然的或者惡意的破壞、更改,、泄露,,系統(tǒng)能連續(xù)、可靠,、正常地運行,,服務不中斷。網絡安全簡單的說是在網絡環(huán)境下能夠識別和消除不安全因素的能力,。

網絡安全在不同環(huán)境和應用中有不同的解釋,,例如系統(tǒng)運行的安全、系統(tǒng)信息內容的安全,、信息通信與傳播的安全等。

網絡安全的基本需求包括可靠性,、可用性,、保密性、完整性,、不可抵賴性,、可控性、可審查性,、真實性等,。其中三個最基本的要素是機密性 (Confidentiality)、完整性 (Integrity),、可用性 (Availability),。

機密性是不將有用信息泄漏給非授權用戶的特性??梢酝ㄟ^信息加密,、身份認證,、訪問控制、安全通信協(xié)議等技術實現(xiàn),,信息加密是防止信息非法泄露的最基本手段,,主要強調有用信息只被授權對象使用的特征。

完整性是指信息在傳輸,、交換,、存儲和處理過程中,保持信息不被破壞或修改,、不丟失和信息未經授權不能改變的特性,,也是最基本的安全特征。

可用性指信息資源可被授權實體按要求訪問,、正常使用或在非正常情況下能恢復使用的特性,。在系統(tǒng)運行時正確存取所需信息,當系統(tǒng)遭受意外攻擊或破壞時,,可以迅速恢復并能投入使用,。是衡量網絡信息系統(tǒng)面向用戶的一種安全性能,以保障為用戶提供服務,。

網絡安全的主體是保護網絡上的數(shù)據和通信的安全,,數(shù)據安全性是指軟硬件保護措施,用來阻止對數(shù)據進行非授權的泄漏,、轉移,、修改和破壞等,通信安全性是通信保護措施,,要求在通信中采用保密安全性,、傳輸安全性、輻射安全性等措施,。

系統(tǒng)脆弱性

信息系統(tǒng)本身是脆弱的,,信息系統(tǒng)的硬件資源、通信資源,、軟件及信息資源等都可能因為可預見或不可預見甚至惡意的原因而可能導致系統(tǒng)受到破壞,、更改、泄露和功能失效,,從而使系統(tǒng)處于異常狀態(tài),,甚至崩潰癱瘓。

硬件資源的脆弱性主要表現(xiàn)為物理安全方面的問題,,多源于設計,,采用軟件程序的方法見效不大。

軟件的脆弱性來源于設計和軟件工程實施中遺留問題,,如設計中的疏忽,、內部設計的邏輯混亂,,沒有遵守信息系統(tǒng)安全原則進行設計等。

來源:https://www./content-4-788201.html

    本站是提供個人知識管理的網絡存儲空間,,所有內容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多