660 likes | 992 Views
駭客攻防 - 從資安演習談起. 石翔任 GCIH , RHCE. 大 綱. 資安演習 資安事件處理基本步驟 駭客攻擊基本步驟與基本防護 事前勘查 (Reconnaissance) 探測掃描 (Probe 、 Scanning) 入侵破壞 (Exploit System) 維持存取 (Keeping Access) 隱藏行蹤 (Covering The Tracks) 其他建議. 資 安 演 習. 91 年資安演習 示範觀摩 92 年資安演習 限定手法實際攻擊 93 年資安演習 規劃中. 92 年資安演習 成功手法與數量統計.
E N D
駭客攻防- 從資安演習談起 石翔任 GCIH,RHCE
大 綱 • 資安演習 • 資安事件處理基本步驟 • 駭客攻擊基本步驟與基本防護 • 事前勘查(Reconnaissance) • 探測掃描(Probe、Scanning) • 入侵破壞(Exploit System) • 維持存取(Keeping Access) • 隱藏行蹤(Covering The Tracks) • 其他建議
資 安 演 習 • 91 年資安演習 • 示範觀摩 • 92 年資安演習 • 限定手法實際攻擊 • 93 年資安演習 • 規劃中
92 年資安演習成功手法與數量統計 • FrontPage Server Extension 權限管控不當 - 29 • SQL Injection - 17 • 網芳無密碼或弱密碼 - 8 • Solaris Login Buffer Overflow - 4 • MSSQL Server 預設管理帳號空密碼 - 3 • Samba Buffer Overflow - 3 • IIS Unicode - 2 • ATU-R 預設密碼 - 28 • 其他 - 5
92 年資安演習未成功但重要手法 • SQL Server Resolution Buffer Overflow - MS02-039 • OpenSSL Buffer Overflow 弱點 • Apache Chunk Buffer Overflow 弱點 • IIS ASP Buffer Overflow 弱點 - MS02-018 • Wu-ftpd Buffer Overflow 弱點
駭客的動機 • 研究導向 • 證明本身實力 • 出名、炫耀、好玩 - 駭客登錄網站 • 張揚本身訴求 • 為求本身利益 - 入侵 ISP、超級電腦、非法轉帳、竊取信用卡卡號、販售盜版圖利 • 商業利益 - 竊取商業機密、阻斷商業服務、破壞商業信譽、影響股市與經濟 • 反社會心態 - 純破壞 • 兩岸駭客攻防
攻擊動機與手法統計 From zone-h2004/2
攻擊作業系統統計 From zone-h 2004/2
Web Server Survey From Netcraft 2004/2
攻擊 Top Level Domain 統計 From zone-h2004/2
攻擊事件造成的影響 • 資料外洩,包括客戶資料、單位機密資料等。如果被攻擊對象是政府資料庫、金融證券機構、國家安全機構,其影響層面無法想像 • 網路服務暫停、網頁置換,致使單位名譽受損 - 駭客登錄網站 • 電子商務網站的交易糾紛 • 架站心血一夕白費 • 成為攻擊其他系統的跳板 • 法律問題
駭客登錄網站 From zone-h2004/2
系統管理者對資安的重要性 • 人員是很好的入侵偵測機制 • 外人很難完全了解你的系統 • 現成軟體有不足處 • 專業的訓練 • 良好的通報流程 • 適度獎勵
資安事件處理基本步驟PICERF • Preparation - 預防準備階段 • Identification - 偵測識別階段 • Containment - 封鎖圍堵階段 • Eradication - 根除階段 • Recovery - 回復階段 • Follow Up/Lesson Learned - 檢討學習階段
駭客攻擊基本步驟 • 事前勘查(Reconnaissance) • 探測掃描(Probe、Scanning) • 入侵破壞(Exploit System) • 維持存取(Keeping Access) • 隱藏行蹤(Covering The Tracks)
事前勘查(Reconnaissance)攻擊方 - 1 • 一般指透過第三方系統收集資訊,通常尚未直接接觸欲攻擊系統 • 設定攻擊的目的 • 利用資源、竊取資訊、置換網頁、阻斷服務 • 攻擊目標的確立 • 選定有價值的目標 - 存放機密資料、帳號多、資料庫、大硬碟、大頻寬 • 選定容易入侵的目標 - 先以容易入侵的目標為跳板,以避開防火牆的阻擋
事前勘查(Reconnaissance)攻擊方 - 2 • 透過網路上公開可得資訊,獲取攻擊目標相關資訊 • Whois • 搜尋網站、News 群組或該單位 Web • DNS • IRC 聊天室 • 社交工程
事前勘查(Reconnaissance)攻擊方 - 3 • Whois - 可獲取單位使用 IP 網段、管理者電子郵件及電話等資訊 • Twnic http://www.twnic.net - 台灣 • Apnic http://www.apnic.net - 亞太 • ARIN http://www.arin.net - 美洲 • RIPE http://www.ripe.net/perl/whois - 歐洲 • Whois Source http://www.whois.sc • InetrNIC http://www.internic.com/whois.html • UNIX 上的 whois 指令,其他 Windows 上含有圖形介面的軟體
事前勘查(Reconnaissance)攻擊方 - 4 • 搜尋網站、News 群組或該單位 Web - 可獲取更多聯絡人或系統相關資訊,如可能有管理者在 News 群組求助該單位防火牆設定問題,攻擊者遇到經驗不足的管理者,幾可推測該單位可能尚含有設備預設帳號密碼等,下列網站常可令攻擊者獲得有用資訊 • Google http://www.google.com • Yahoo http://www.yahoo.com • Netcraft http://news.netcraft.com
事前勘查(Reconnaissance)攻擊方 - 5 • DNS - 透過 DNS Zone Transfer 列出單位內有註冊網域名稱的系統,藉此取得較明確的攻擊目標 • IRC 聊天室 - 與駭客同好交換經驗與所得資訊 • 社交工程 - 直接以電話、電子郵件或其他方式騙取帳號密碼等資訊
事前勘查(Reconnaissance)防護方 • 此階段雖未對系統造成直接損害,仍需避免被攻擊者取得過多有利攻擊的資訊 • 於註冊 Domain Name 資訊時,可使用職稱式的 email (如 sitemaster、webmaster),避免使用含有私人資訊的 email • 儘量勿在公開站台談論或發布過多內部資訊 • 建議可取消 DNS Zone Transfer 功能,或將此功能限於 Slave DNS Server 與 Master DNS Server 間 • 對於更改密碼應建立標準程序,並需確實確認對方身份等
探測掃描(Probe、Scanning)攻擊方 - 1 • 對目標系統送出特定封包,藉由回應獲取有用資訊 • Ping - 獲取存活(alive)主機之資訊,一般有 ICMP 與 TCP Ping • Traceroute - 找出到目標主機路徑上所經過路由器(router) • Port Scan - 找出該主機開啟了哪些通訊埠 (port),常用工具如 Nmap、SuperScan 等 • War dialing - 掃描是否有數據機 • War driving - 竊聽無線網路 • OS fingerprint - 獲得主機之作業系統版本 • 抓取標誌(banner) - 獲得伺服器程式之版本
探測掃描(Probe、Scanning)攻擊方 - 2 • 以弱點掃描軟體找出系統存在之漏洞 • 開放原始碼的弱點掃描軟體 • Nessus - 一般目的弱點掃描軟體 • nikto - 掃描是否有安裝某些 CGI 程式 • Whisker - 掃描是否有安裝某些 CGI 程式(已停止發展) • 商業版弱點掃描軟體 • Internet Scanner • Retina • Cyber Cop • 自行撰寫特定弱點掃描軟體
探測掃描(Probe、Scanning)攻擊方 - 3 • 遠端猜測密碼 - hydra、流光 • Windows Null Session - 列舉 Windows 系統之使用者名稱及分享資源等 • 試著描繪出網路架構及主機間之信賴關係 - Cheops-ng • 找出防火牆 policy - Firewalk
探測掃描(Probe、Scanning)防護方 - 1 • 使用防火牆 - 在這階段主要可透過防火牆明確定義哪些系統是需對外提供服務的,使用防火牆將不須對外之網路系統及服務與外部網路有效隔離,濾掉不需要的 ICMP 訊息,並須定期檢驗防火牆 policy 是否如預期 • 使用入侵偵測系統(IDS)或入侵預防系統(IPS) - 早期發現如 port scan 或弱點掃描等入侵前置動作
探測掃描(Probe、Scanning)防護方 - 2 • 內部非必要不提供數據機撥入,並教育同仁勿私接數據機 • 對於無線網路的使用需注意採用較強的加密與認證機制,可考慮使用 VPN,並儘量將無線電波的傳送範圍限制在使用單位的建築物內 • 可考慮內部網路一律使用 private IP address,再透過 NAT 連上 Internet
探測掃描(Probe、Scanning)防護方 - 3 • 關閉 Windows NULL Session • Windows 2000 可透過安全性原則 -> 安全性設定 -> 本機原則 -> 安全性選項 將 匿名使用者連線的其他限制 設為 沒有明確宣告的匿名權限則不能存取 • Windows NT 可執行 regedit,將 HKLM\SYSTEM\CurrebtControlSet\Contrl\LSA 中加入 RestricAnonymous 之 DWORD 值,將其設為 1
探測掃描(Probe、Scanning)防護方 - 4 • 設定強健密碼並啟用多次密碼錯誤帳號鎖住機制 - 至少須有警示訊息 • 安裝修補程式 • 關閉非必要服務
入侵破壞(Exploit System)攻擊方 - 1 • 利用各種弱點操控系統、竊取資料、置換網頁或造成阻斷服務等破壞,網路上可找到許多現成的攻擊程式(Exploit code) • 利用作業系統或套裝軟體設計不良 • 利用網頁應用程式設計不良 • 利用管理者錯誤的設定 • 利用預設安裝所存在的帳號 • 存取控制與信賴關係 • 攔截、代換封包(Session Hijacking) • 阻斷服務攻擊(DoS、DDoS) • 利用一般使用者
入侵破壞(Exploit System)攻擊方 - 2 • 利用作業系統或套裝軟體設計不良所存在的弱點 • 緩衝區溢位 (Buffer Overflow) • MS RPC DCOM (Blast Worm - 2003/8/11,修補程式 2003/7/16 MS03-026,MS03-039) • MS SQL Server Resolution Service (SQL Slammer Worm - 2003/1 ,修補程式 2002/7/24 MS02-039) • IIS ida/idq ISAPI filter (CodeRed Worm - 2001/7,修補程式 2001/6/13 MS01-033) • OpenSSL (Apache/mod_ssl (Slapper) Worm - 2002/9 ,修補程式 2002/7) • Apache Chunk
入侵破壞(Exploit System)攻擊方 - 3 • 路徑檢查不嚴謹 • IIS Directory Traversal (Unicode - Nimda Worm - 2001/9,IIS Worm - 2001/5,修補程式 2000/10/17 MS00-078) • IIS Double Decode (Nimda Worm,修補程式 2001/5/14 MS01-026) • ../../../etc/passwd • UNIX pipe | • 過度強大的功能 • hta - HTML Application • 巨集
入侵破壞(Exploit System)攻擊方 - 4 • 利用網頁應用程式設計不良 • 未正確檢查使用者輸入 - SQL Injection 等 • 認證機制不嚴謹 - 預設使用身分證字號、生日、電話等當成密碼,傳輸過程未強制加密 • 參數檢查不嚴謹 - 許多 CGI 程式如 phf • 架站程式本身弱點 - PHP Nuke 多個弱點 • 大部分撰寫網頁應用程式的人員並未經過專業資安訓練
入侵破壞(Exploit System)攻擊方 - 5 • 利用管理者錯誤設定 • 空密碼或容易猜測的密碼 • 密碼破解 - 在取得加密過的密碼的情況下,以密碼學方法解出密碼,如使用 L0phtCrack、John The Ripper • 密碼猜測 - 直接以各種帳號密碼組合嘗試登入,如使用 hydra、流光 • Windows NT/2000 預設分享 • FPSE • HTTP PUT • 利用預設安裝所存在的帳號 • MS SQL Server sa 帳號 • 網路設備預設帳號密碼
入侵破壞(Exploit System)攻擊方 - 6 • 存取控制與信賴關係 • 假造 IP 位址(IP Spoofing),搭配 Source Routing 以接收回傳封包 • 偽造 DNS 資訊(DNS cache poison) • 攔截、代換封包(Session Hijack) • ARP Spoofing - LAN • ICMP redirect • 提升權限、特權跳脫 - 當取得一般使用者權限後,試圖取得更高管理者權限
入侵破壞(Exploit System)攻擊方 - 7 • 阻斷服務攻擊(DoS、DDoS) - 利用各種方法,使用戶無法正常接受服務 • 使伺服器當掉 - OOB • 耗盡 CPU 資源 • 耗盡記憶體或硬碟空間 • 攻擊各作業系統對網路協定實做的弱點 • Cisco IOS DoS
入侵破壞(Exploit System)攻擊方 - 8 • DDoS(分散式阻斷服務攻擊)- 攻擊者常會以操縱多部系統發動佔滿網路頻寬式攻擊 • 佔滿網路頻寬 - Smurf • 攻擊網路協定弱點 - SYN flood • 寄出大量電子郵件 • 大量送出 HTTP request • CodeRed - 攻擊美國白宮網站 • Slammer Worm - 攻擊 Windows Update 網站 • MyDoom - 攻擊 www.sco.com
入侵破壞(Exploit System)攻擊方 - 9 • 利用一般使用者 • E-mail • Internet Explorer
入侵破壞(Exploit System)防護方 - 1 • 若此階段失守,則對系統之損害已造成,因此需努力防止,可依網路、主機伺服器、應用程式及資訊本身等不同等級實行下列基本步驟 • 網路部份: • 正確規劃網路架構,將敏感網路與一般網路隔開 • 有效設定路由器存取控制列表(ACL),濾掉由外部介面進入含有內部網址之封包,濾掉 Source Routing 等 • 安裝網路型防火牆 • 安裝網路型入侵偵測系統(NIDS)/網路型入侵預防系統(NIPS)
入侵破壞(Exploit System)防護方 - 2 • 主機伺服器部分: • 弱點掃描 - 比駭客早一步發現系統存在弱點,及早採取補強措施 • 安裝修補程式: • Windows 系統直接使用 Windows Update 或連上下列 URL • http://windowsupdate.microsoft.com/ • RedHat Linux 可執行 up2date 或連上下列 URL • http://www.redhat.com/apps/support/errata/ • Sun Solaris 安裝 Recommended Patch • http://sunsolve.sun.com/pub-cgi/show.pl?target=patchpage • FreeBSD 使用 cvsup • 大量 Windows 系統用戶可考慮安裝 SUS 或 SMS 以減少下載修補程式佔用之頻寬
入侵破壞(Exploit System)防護方 - 3 • 關閉非必要的服務: • Windows 2000 系統可在我的電腦 -> 按右鍵 -> 選管理 -> 選服務及應用程式下的服務,將非必要的服務關閉 • RedHat Linux 可執行 ntsysv • Sun Solaris 及大部分 UNIX 可檢查/etc/inetd.conf 及開機 scripts (/etc/rc.*) • 防 DNS Cache Poision • 安裝較新版本 DNS • 限制 DNS recursion 查詢 • 限制動態 DNS 更新
入侵破壞(Exploit System)防護方 - 4 • 主機伺服器的其他建議 • 設定強健密碼 • 更改系統預設值 • 安裝主機型防火牆 • Linux - iptables • FreeBSD - pf、ipf • Solaris - ipf • Windows - TCP/IP 篩選、IP 安全性 • 儘量勿讓伺服器軟體以管理者權限執行 • 安裝主機型入侵偵測系統 • 安裝防毒軟體 • 不隨意安裝來路不明或不需要之軟體 • 了解系統狀態 - Open Port、Process、Hard Disk、CPU、Memory…
入侵破壞(Exploit System)防護方 - 5 • 應用程式: • 套裝軟體需安裝更新修補程式 • 自行撰寫的程式需注意輸入查驗(Input Validation)的問題,如 SQL Injection 中最主要造成問題的單引號 「 ’ 」等 • 自行撰寫的程式亦需注意所能存取資料的權限管控,做好適當的認證機制 • 若使用現成函數庫(如 OpenSSL),亦須注意其是否存在安全問題
入侵破壞(Exploit System)防護方 - 6 • 資訊本身: • 對於機密資訊加密儲存,即使儲存於系統中的資料遭竊取時,攻擊者仍可能因無法解密而降低損害 • 只將機密資訊儲存於必須之系統中,並採取異地備份以期遭破壞時能迅速回復 • 機密資料透過網路傳遞一律使用加密機制 - SSL、SSH、PGP、VPN
維持存取(Keeping Access)攻擊方 • 建立後門或安裝遠端管理程式,以利再次進入系統 • 新增特權帳號 • 遠端管理程式 - VNC、Terminal Server • 後門程式 - BO、NetBUS、SubSeven • 安裝 rootkit • 使管理者無法察覺入侵者的存在,隱藏入侵者所開啟的 port、執行的程式及暗藏的檔案等 • 取代系統檔案或作業系統核心 - w、ps、ls、netstat、df、du… • 安裝竊聽軟體 (sniffer) - 竊聽帳號密碼或其他有用資訊 • 當成跳板繼續攻佔其他系統
維持存取(Keeping Access)防護方 - 1 • 偵測不明連線 • 監看系統是否有開啟不明的通訊埠,在系統上可執行如 netstat、tcpview、Active Ports、FPort 或 lsof • 透過網路對系統做通訊埠掃描 - 如使用 Nmap 或 SuperScan • 在系統正常時留下電子檔與紙本記錄,以供後續比較 • 防火牆保留 Server 所有連線記錄 • 若 IDS 偵測到來自內部系統的可疑封包,常是被植入後門的徵兆 • 使用 sniffer - 注意隱私權問題 • 可至下列網址查看 port 的使用 http://www.neohapsis.com/neolabs/neo-ports/neo-ports.html
維持存取(Keeping Access)防護方 - 2 • 偵測不明程式 • 注意 CPU、記憶體、網路頻寬 • Windows 可透過工作管理員,UNIX 可透過 ps 或 top 查看是否有不明程式 • 在系統正常時留下電子檔與紙本記錄,以供後續比較 • 注意硬碟使用率是否暴增 - 可能是有 sniffer 的徵兆