2021年3月1日web
在系統開發的每一個階段都應當考慮安全性。數據庫
編程語言:編譯後不易被第三方操縱,但最終用戶也沒法查看原始指令。
1.編譯型語言:C,Java,FORTRAN
2.解釋型語言:Python,R,JavaScript,VBScript編程
面向對象(OOP)
保證:是據此在系統生命週期內構建信任的正規過程,CC提供了一種標準化的方法
避免和緩解系統故障:
1.輸入驗證
2.身份驗證與繪畫管理
3.故障防禦和應急開放:故障防禦(Fail-secure,故障時,高權才能訪問)、應急開放(Fail-open,故障時,繞過安全控制)後端
系統開發生命週期
1.概念定義:有全部利益相關方(開發人員、客戶、管理人員)協商的簡單聲明,規定了項目用途及系統大致需求。
2.功能需求肯定:三個特徵:輸入、行爲、輸出。輸出:功能需求文檔。
3.控制規範的開發:具備安全意識的組織在開發伊始就設計,從多個安全角度分析:a.恰當訪問控制,只有受權用戶才能訪問系統,並不容許超出受權級別;b.使用正確的加密和數據保護技術來保護關鍵數據的保密性;c.提供審計蹤影來強制實施我的的問責性,提供對非法活動的檢測機制;d.根據系統的重要程度,必須解決可用性和容錯問題。
4.設計評審
5.代碼審計走查
6.用戶驗收測試
7.維護和變動管理安全
生命週期模型
1.瀑布模型:1970年Winstom Royce開發,反饋環特徵,只容許開發人員後退一個階段。
2.螺旋模型:1988年 Barry Boehm提出,元模型,「模型的模型」
3.敏捷軟件開發:強調客戶需求,快速開發新功能,迭代交付。「敏捷宣言」12原則:網絡
甘特圖:顯示不一樣時間項目和調度之間相互關係的條形圖。
計劃評審技術,PERT(Program Evaluation Review Technique),項目調度工具:用於開發中判斷軟件產品大小併爲風險評估計算標準誤差。架構
變動管理:做爲安全工具。三個基本組件:請求變動、變動控制、發佈控制。併發
配置管理:用於控制整個組織範圍內使用的軟件版本,並正式跟蹤和控制對軟件配置的更改。4個主要組件:配置標識、配置控制、配置狀態統計、配置審計。機器學習
DevOps方法:將軟件開發,質量保證,技術操做集中在一個模型中,大幅度縮短開發、測試、部署時間。編程語言
應用編程接口(API):
1.必須考慮身份驗證要求。
2.必須完全測試安全缺陷。
軟件測試:白盒、黑盒、灰盒;靜態、動態。
代碼倉庫:
1.功能:存放源代碼;版本控制、錯誤跟蹤、web託管、發佈管理和可支持軟件開發的通訊功能。
2.安全:必須適當控制開發人員對倉庫的訪問,仔細設計訪問控制,僅容許適當的用戶讀取或寫入。
服務水平協議:除服務指標外,還包括財務和補救措施。
軟件採購:安全:
1.正確配置軟件知足安全目標
2.關注安全公告和補丁,及時修復新發現的漏洞。
3.SaaS中,安全人員也要負責監控供應商的安全,驗證供應商的安全措施。
數據庫管理系統
1.層次式數據庫以分層方式存儲數據;分佈式數據庫的數據映射關係是多對多。
2.關係數據庫:行列組成的二維表。行數爲基數,列數爲度。
候選鍵:可用於惟一標識表中記錄的屬性子集。
主鍵:從表候選鍵中選出來用來惟一標識表中記錄的鍵。
外鍵:用於強制在兩個表之間創建關係。
3.數據庫事務:4個特徵:原子性、一致性、隔離性、持久性
4.數據庫併發性:兩個進程同時更新數據,可能會丟失數據;從沒有成功提價ode事務中讀取記錄,會出現髒讀。
5.ODBC:應用程序和後端數據庫驅動程序之間的代理。
6.NoSQL:鍵值存儲,圖數據庫;文檔數據庫
存儲器類型:
1.主存儲器:內存。CPU可直接讀取。
2.輔助存儲器:硬盤,CD、DVD,可長期存儲。
3.虛擬內存:輔助存儲器模擬主存儲器。
4.虛擬存儲器:主存儲器模擬輔助存儲器,加快文件系統的讀取。
5.隨機訪問存儲器:RAM,硬盤
6.順序訪問存儲器:磁帶。
存儲器威脅:
1.非法訪問:使用加密是最好的方法。
2.隱蔽通道
基於知識的系統
1.專家系統:2個組件:知識庫(包含專家系統已知的規則),推理引擎(對知識庫中的信息進行分析,獲得正確的決策);決策不受情緒影響,適合股票等系統
2.機器學習:從數據集中分析出新知識。監督學習(使用標記數據進行訓練),非監督學習(使用未標記數據進行訓練)
3.神經網絡:計算單元鍵嘗試模仿人腦的生物學推理過程,是機器學習的延伸,又叫深度學習或認知系統
4.安全性應用:基於知識分析技術的優勢:快速作出一致決策的能力
課後習題20題,錯了4個。