iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 27
0
Security

認證信息系統安全專業人員(CISSP)學習筆記系列 第 27

應用程式安全(Application Security)

  • SDLC
    一種在系統的每個階段標準化需求發現,設計,開發,測試和實施的方法性方法。
    在設計階段做出的決定是開發階段的關鍵步驟。

  • 驗證(Certification)
    系統的技術測試

  • 認證(Accreditation)
    管理層給予的正式授權,允許系統在特定環境中運行

  • 測試(Testing)
    驗證確定產品是否符合規格。
    驗證確定產品是否為問題提供了必要的解決方案。

  • 單元(Unit):單個組件處於受控環境中,程序員可以在其中驗證數據結構,邏輯和邊界條件

  • 整合(Integration):驗證組件是否可以協同工作

  • 驗收(Acceptance):確保代碼符合客戶要求

  • 回歸(Regression):對系統進行更改後,進行重新測試以確保功能,性能和保護

描述產品和客戶要求的文件
用於以有組織的方式定義和分組項目的各個工作元素的工具。
SDLC應該以WBS格式說明。
很少或根本沒有計劃。發生問題時進行處理(發布後)。

  • 瀑布式生命週期方法
    每個階段都必須完整地完成,然後才能開始下一個階段。
    在每個階段的最後,都會進行檢查以確保項目在正確的路徑上。
    該模型強調每個階段的產品驗證和確認。
    每個階段都必須在下一階段開始之前完成。
  • V 模型
    需要在整個開發階段進行測試,而不僅是等到項目結束時才進行測試。
    因此與瀑布模型相比,它具有更大的成功機會。
  • 原型(Prototyping)
    分析(Analysis)-設計(design)-開發(code)-測試(test)->交付(delivery)
    這與多瀑布循環相似,它在開發循環中逐漸成熟。
    每個增量階段都會產生可交付成果,這是一個可操作的產品。
    開發的早期階段就可以使用。
    當需要在產品開發週期的早期了解與風險,程序複雜性,資金和功能要求有關的問題時。
    如果客戶在產品開發過程中需要快速獲得一些基本功能,那麼這可能是一個很好的模型。
  • 螺旋(spiral)
    • 迭代方法(iterative approach):強調風險分析
      此模型允許在發現新需求時對其進行處理。
      評估階段允許客戶評估產品的當前狀態並提供反饋。
      對於有流動性要求的複雜項目非常有用。
      4個階段:
      • 規劃(Planing)
      • 風險分析(Risk analysis)
      • 發展(Development)
      • 測試與評估(Test and evaluation)
  • 快速的應用開發(Rapid Application Development)
    原型(prototyping)和迭代方法(iterative approach)結合。
    該模型允許客戶參與開發階段,以便最終結果以更實際的方式映射到他們的需求。
    • 分析和快速設計
      • 展示(demonstrate)
      • 細化(refine)
      • 建立(build)
    • 測試(testing)
    • 實施(implementing)
  • 敏捷(Agile)
    促進跨職能團隊合作和持續反饋機制。
    側重於個人交互,而不是流程和工具。
    它強調通過全面而費力的文檔開發正確的軟件產品。
    敏捷不使用原型來代表完整的產品,而是將產品分解為單獨的功能。
  • 探索(Exploratory)
    在沒有提出明確定義的項目目標時使用。
    依靠涵蓋可能會影響最終產品功能的一組規範。
    測試是探索性開發的重要組成部分。
    因為它可以確定項目的當前階段符合可能的實施方案。
  • 聯合分析開發(Joint Analysis Development, JAD)
    在面向研討會的環境中使用團隊方法進行應用程序開發
  • 重用(Reuse)
    減少使用現有原型進行開發所需的時間
  • 無塵室(Cleanroom)
    嘗試通過遵循結構化和正式的開發和測試方法來防止錯誤或錯誤。
    此方法用於將通過嚴格認證過程的高質量和關鍵應用程序。

能力成熟度模型集成(Capability Maturity Model Integration, CMMI)
一種流程改進方法,為組織提供有效流程的基本要素,這將改善其績效。
CMMI的5個成熟度級別:

  • 初始(initial):開發過程是臨時的

  • 可重複(repeatable):變更控制,質量保證到位

  • 定義(Defined):正式程序到位

  • 管理(Managed):指標流程

  • 優化(Optimizing):持續改進流程的綜合計劃

  • 變更管理(Change Control)
    控制系統生命週期中發生的變更並記錄必要的變更控制活動的過程。

  • 軟體組態管理(Software Configuration Management, SCM)
    識別軟件在各個時間點的屬性,並對更改進行有條不紊的控制,以在整個軟件開發生命週期中保持軟件的完整性和可追溯性。

軟體管理(Software Escrow)
使用第三方託管代理存儲軟體的原始碼。

  • 程式語言和概念
    1.機器語言(Machine language)
    2.組合語言( Assembly language)
    3.高階語言(High-level language)
    4.極高階語言(Very high level)
    5.自然語言(Natural language)

  • 聚合(Cohesion)
    一種度量,指示模組需要執行多少種不同類型的任務。
    高聚合意味著模組只能執行一項任務(或幾項非常相似的任務)。

  • 耦合(Coupling)
    一種度量,指示一個模組執行其任務需要多少交互。
    低(鬆散)耦合意味著模組無需與許多其他模組通信即可執行其工作。

  • 分散式電腦環境(Distributed Computing Environment, DCE)
    第用於開發客戶端及伺服器應用程序以允許進行分佈式計算的框架和開發工具。

物件請求代理(Common Object Request Broker Architecture, CORBA)
由物件管理群組(Object Management Group, OMG)開發的開放式物件的標準體系結構。
這些標準使使用不同計算機語言編寫並在不同系統上運行的軟體組件進行通信。

IT 包含兩個主要部分:

  • 物件導向

  • 應用程式導向

  • 物件請求代理(Object Request Broker, ORB)
    管理組件之間的所有通信,並使它們能夠在異構和分佈式環境中進行互動。
    ORB 作為客戶端對來自分散式物件的服務的請求與該請求的完成之間的代理。
    ORB是一種中介軟體,它允許客戶端及服務器之間的通信發生在不同系統上的物件之間。

  • 組件物件模型(Component Object Model, COM)
    由Microsoft開發的模型,該模型允許可能在同一計算機系統上用不同編程語言編寫的應用程序之間進行進程間通信。

  • 分散式物件模型(Distributed Component Object Model, DCOM)
    支持分散式程序(Process)間通信(IPC),允許訪問停留在網路不同部分的物件。

  • 物件連結嵌入(Object linking and embedding, OLE)
    提供一種在本地計算機上共享物件並使用COM作為其基礎的方法。
    它是Microsoft開發的技術,允許嵌入和鏈接到文檔及其他物件。

  • 簡單對象訪問協定(Simple Object Access Protocol, SOAP)
    基於XML的協定,可在Web服務環境中對消息進行加密。

  • Web服務描述語言(Web Service Description Language, WSDL)
    提供服務提供的特定操作的機器可讀描述。
    WSDL文檔描述了與請求的服務進行交互的需求。

  • UDDI
    通用描述,發現和整合。
    是基於XML的註冊表,列出了可用的服務。
    它為服務提供者註冊服務並由服務使用者定位服務提供了一種方法。
    UDDI提供了一種機制,使全世界的企業可以發布其服務,而其他企業可以發現和使用這些服務。

  • 混搭(Mashup)
    兩個或多個來源的功能,資料和表示功能的組合,以提供某種類型的新服務或功能。

軟體即服務(Software as a Service, SAAS)
一種軟體交付模型,允許應用程序和資料由客戶端(通常是Web瀏覽器)集中託管和訪問。
雲計算的一種常見交付方式。

雲計算(Cloud computing)
一種將計算作為服務而非物理產品提供的方法。 它是基於Internet的計算,因此可以根據需要向計算機和其他設備提供共享資源和軟件。

移動密碼(Mobile Code)
可以在網路上傳輸的代碼,由另一端的系統或設備執行。

Java Applets
當執行applet時,JVM將創建一個虛擬機,該虛擬機提供一個稱為沙箱的環境。

ActiveX
基於COM和DCOM的OOP技術和工具集。它是定義可重用軟體組件的框架。

認證碼(Authenticode)
Microsoft實現的ActiveX使用的代碼簽名,不是沙箱。

跨站點腳本(Cross-site scripting, XSS)

  • 攻擊者誘使用戶處理用惡意腳本程式的URL來竊取受害者的敏感資訊
    (Cookie,Session ID)時,就會發生非持久XSS或反映。
    原理在於利用動態網站上缺乏適當的輸入或輸出驗證的問題。
  • 永久性XSS或存儲的或第二級的漏洞,通常針對允許用戶輸入存儲在資料庫中資料的網站。
  • 基於DOM的XSS或本地跨站點腳本,攻擊者使用DOM修改JScript原始碼。

參數驗證(Parameter validation)

  • 網路代理(Web proxy)工具
    • Achilles
    • Burp
    • Fiddler

資料庫管理

  • 關聯型(Relational)
  • 分層的(Hierarchical)
  • 網路(Network)-建立在分層之上
  • 物件:比關係型更動態
  • 物件關聯:前端提供程序

介面(interface)

  • ODBC:API允許與數據庫通信
  • OLE DB:替換ODBC,基於COM,可通過ADO訪問
  • ADO:高級,COM函式庫,不需要SQL
  • JDBC:Java API,可以通過ODBC橋接或直接連接

語言定義
- DDL:數據定義語言
定義數據庫的結構和架構
- DML:數據處理語言
允許用戶查看和使用數據庫的命令(查看,添加,排序,刪除)
- QL:查詢語言
允許用戶向數據庫發出請求

  • 安全問題(Security issues)
    聚合與推論(Aggregation & Inference)
    合併來自不同來源的訊息的行為。
    組合訊息的敏感度大於各個部分
    推論是獲得未明確提供的訊息的能力。

上一篇
實體及環境安全(Physical (Environmental) Security )
下一篇
應用程式安全(Application Security)
系列文
認證信息系統安全專業人員(CISSP)學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言