code

2017年12月11日 星期一

Software Security 1 - Introduction

Computer Security

定義軟體 "不該發生什麼行為"

  • 不該違反保密協定 (confidentiality)
  • 不該違反功能完整性 (integrity)
  • 不該違反存取性 (accessibility)


Hacker exploits "Defects"

flaw是系統設計面的瑕疵,意思是software有超出requirement定義的行為。

bug是系統實作面的錯誤。

defects: hackers利用flaws / bugs 來攻擊的漏洞,defects會被hackers利用來侵入系統,這叫做脆弱性 (vulnerability),所以即便bug可能看起來無關緊要,但很有可能給予hackers攻擊的漏洞或是靈感


Software Security

是focus在code層次 安全性的學問。


OS Security

使用到OS system calls都能受到OS層級的安全性保護,例如Alice不能access Bob的folder,或是如果沒開放port 80,則不可能有人能從port 80連出或連進來。

但是OS security涵蓋不瞭Application 內部的安全細節,例如只有database software能分辨與執行機敏性資料的存取政策,OS是幫不上忙的(也不該)。

此外,OS不能貫徹information flow policies,稍後會說明。


Firewalls and Intrusion Detection System (IDSs)

防火牆主要是用來過濾可以存取資料的連線,主要利用hosts / ip / ports 等protocol定義內容來過濾。

侵入偵測系統IDS則是會分析封包內容,找出符合可能風險模式的封包,予以阻擋。

防火牆允許的port不一定是它預設要保護的service,例如port 80不一定是執行http server,例如SOAP是利用http protocol來交換message的一種協定,但這邊就做了很多http server做不到的事,所以防火牆如果假設port 80只會是http server (通常都是)那就可能形成一個可以exploit的入口。

IDS也是能有被降低分析能力的攻擊方法。


Anti-virus Scanners

這是local端的IDS,但也有可能因為performance考量而犧牲了偵測能力。


沒有留言:

張貼留言