◎系所教育目標: 為配合國家建設及產業發展之需要,本系以培育中高級資訊科技人才為目的。在教學理念上除了注重理論的探討之外並強調實際動手的能力,以期培育出具有深厚學識基礎並能實際應用的資訊科技人才。在專業必修中涵蓋基礎理論、電腦硬體、作業系統、資料結構及計算機網路等方面,並有畢業專題製作,使學生紮實基礎,同時課程包含四個專業學程,兼顧學術及實務之分流與訓練。分別為一:軟體工程及知識工程學程、二:互動多媒體學程、三:網路及資訊安全學程、四:資訊系統開發實務學程,以期作為日後升學就業的準備。 |
◎核心能力 | 關聯性 |
1.應用數理邏輯推理之能力 | 5 關聯性最強 |
2.具備資訊軟體專業之能力 | 5 關聯性最強 |
3.具備資訊硬體專業之能力 | 1 關聯性最弱 |
4.發掘、分析及解決問題之能力 | 3 關聯性中等 |
5.現代資訊發展工具之使用與熟悉資訊應用系統之能力 | 4 關聯性稍強 |
6.資訊軟體或硬體創新設計與實作之能力 | 3 關聯性中等 |
7.有效溝通與團隊合作之能力 | 3 關聯性中等 |
8.培養人文素養、專業倫理責任、社會關懷與生活技能之能力 | 1 關聯性最弱 |
◎本學科內容概述: 本學科主要講述安全程式設計的概念,由此概念延伸,理解駭客針對網路及系統服務的攻擊模式與防禦的方法。由於程式碼本身可能有的威脅與攻擊,因此如何設計一個高品質及安全的程式,便成為重要的課題。近年來網站web 程式的安全威脅有更加氾濫的趨勢,因此課程中亦針對裝站安全進行深入剖析。本課程亦著重教導學生有關安全程式設計的方法以及利用工具檢測程式碼的安全。而在駭客攻防技術方面,將教授滲透測試的流程與原理並進行各項攻防技術之演練。 |
◎本學科教學內容大綱: 1. 軟體安全。2. 靜態分析 (Static Analysis) 與程式碼檢查 (Code Review)。3. 安全程式實務。4. 程式安全與 Exploitation 技術演練。5. 網站安全。6. 滲透測試。7. 網路攻防技術原理與演練。 |
◎本學科學習目標: 本課程旨在使同學了解安全程式設計的概念,如何設計一個高品質及安全的程式、程式碼本身可能有的威脅與攻擊,以及在其他方面如 網站web 程式設計所需注意的安全威脅。本課程亦著重教導學生有關安全程式設計的方法以及利用工具檢測程式碼的安全。對於駭客技術方面,則著重在滲透測試的流程與各項攻防技術之原理理解與演練。 |
◎教學進度: |
週次 | 主題 | 教學內容 | 教學方法 |
01 02/19 | 軟體安全 | 軟體的安全與基本問題分析 | 講授。 |
02 02/26 | 靜態分析 (Static Analysis)與程式碼檢查 (Code Review) (I) | 靜態分析 (Static Analysis) 簡介 | 講授、討論。 |
03 03/04 | 靜態分析 (Static Analysis)與程式碼檢查 (Code Review) (II) | 利用靜態分析進行程式碼檢查 (Code Review)
檢查工具演練(SonarSource、Snyk 等)
C/C++/Java 程式等 (I) | 講授、討論。 |
04 03/11 | 安全程式設計實務 (I) | 字串 (String) 安全
整數安全
Pointer 安全
Buffer Overflows (緩衝區溢位) 攻擊與防禦實驗 | 作業/習題演練、操作/實作、講授、討論。 |
05 03/18 | 安全程式設計實務 (II) | Shellcode 技術與攻擊演練
動態記憶體管理 | 講授、討論。 |
06 03/25 | 程式安全與 Exploitation 技術演練 | 上機實作演練
緩衝區溢位與 Shellcode 技術
Pwntools | 作業/習題演練、操作/實作、講授、討論。 |
07 04/01 | Introduction to DevSecOps | DevSecOps Pipeline
CI/CD and Security
Docker & Jenkins
GitHub Actions
GitLab | 操作/實作、講授、討論。 |
08 04/08 | 網站Web application安全程式設計(I) | SQL Injection 攻擊與防禦、Cross-site Scripting (XSS) 相關之攻擊與防禦
CSRF 、XXE、Session Cookies 等相關之攻擊與防禦
Dann Vulnerable Web App (DVWA)、WebGoat、bWAPP 等練習 | 操作/實作、講授、討論。 |
09 04/15 | 期中考 | 期中考 | 考試。 |
10 04/22 | 網站Web application安全程式設計(II)
網頁攻防演練 | OWASP Broken Web Applications Project 練習 (上機實作演練)
Burp Suite 之 代理伺服器 Proxy 應用
Web 相關 CTF 攻擊訓練 | 作業/習題演練、操作/實作、講授、討論。 |
11 04/29 | Python Security | Python Flask Security (Web)
Input Validation
反序列化 (Deserialization) 之安全性
虛擬環境 (Virtual Environment) | 講授、討論。 |
12 05/06 | 安全程式設計其他主題 (錯誤例外處理與特權程式)(I) | 隱私與保密程式 (Privacy and Secrets)
密碼程式(Cryptographic Programming)
錯誤與例外處理 (Errors and Exceptions)
模糊測試 (Fuzz Testing) | 作業/習題演練、講授、討論。 |
13 05/13 | 安全程式設計其他主題 (錯誤例外處理、特權程式、持續整合與持續部署之安全)(II) | 特權程式 (Privileged Programs) 安全
CI/CD for SAST, DAST and SCA
(Continuous Integration/Continuous Deployment)
(Static Application Security Testing)
(Dynamic Application Security Testing )
(Software Composition Analysis) | 操作/實作、講授、討論。 |
14 05/20 | 滲透測試與網路攻防技術原理與演練 (I) - 資料搜集與連接埠掃描、漏洞掃描與利用原理及工具 | 駭客追蹤與網路封包分析、Port Scanning 等工具
ARP Spoofing、通行密碼破解、滲透測試 (Penetration Testing) 、攻擊防禦技術、Kali Linux、Metasploit、Nessus、OpenVAS 等工具
CVE & CVSS
上機實作演練駭客攻防技術 | 操作/實作、講授、討論。 |
15 05/27 | 滲透測試與網路攻防技術原理與演練 (II) - 進階技術 | 滲透測試進階技術說明與展示
訓練學生透過撰寫 Python 及 Ruby 等腳本程式進行系統檢測與滲透測試等程序 | 作業/習題演練、講授、討論。 |
16 06/03 | 滲透測試與網路攻防技術原理與演練 (III) - 防禦技術 | 網路安全防禦技術:防火牆 (iptables)
入侵偵測系統 (Snort)
系統漏洞相關 CTF 攻擊訓練 | 操作/實作、講授、討論。 |
17 06/10 | 期末專案展示 | 分組進行實務專案報告
相關 CTF 攻擊訓練 | 操作/實作、口頭報告、討論、課程調整。 |
18 06/17 | 期末考 | 期末考 | 考試。 |
◎課程要求: 本課程以課程講授及實驗、習作為主要的方式。在課程講授方面,以 Brian Chess, Jacob West 所著之 Secure Programming with Static Analysis 以及 Robert C. Seacord 所著之 Secure Coding in C and C++ 為內容,並輔以其他教科書及教材,說明 web 程式設計安全以及密碼安全程式設計等課程內容。本課程實驗規劃著重於安全程式設計的開發與實驗。例如:Buffer Overflows (緩衝區溢位) 攻擊與防禦實驗、安全程式碼分析工具之使用及測試、Web 攻擊測試與安全程設防護、DevSecOps 介紹以及密碼技術程式練習等。
此外,對於駭客攻防則以滲透測試(Penetration Testing)流程為主要講解內容,並透過原理解說、 Kali Linux 架設與 Metasploit 工具使用讓學生更能熟悉相關技術,而內容也包含防禦技術與工具之講解。 |
◎成績考核 課堂參與討論15% : 到課率、討論情形 期中考25% 期末考30% : 紙筆測驗或期末專案製作與展示 作業/習題演練30% : 作業、課堂練習與實驗 |
◎參考書目與學習資源 1. Brian Chess, Jacob West, Secure Programming with Static Analysis, Addison Wesley, 2007.(教科書)
2. Robert C. Seacord, Secure Coding in C and C++(2nd Edition), Addison Wesley, 2013.(教科書)
3. Robert C. Seacord, The CERT C Secure Coding Standard, Addison Wesley, 2008.
4. Rafay Baloch. Ethical Hacking and Penetration Testing Guide, Auerbach Publications, 1 edition, 2014.
4. Chris Shiflett, Essential PHP Security, O'Reilly Media, 2005.
5. Dafydd Stuttard and Marcus Pinto, The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws, Wiley, 2 edition, 2011.
6. Chris Snyder, Thomas Myer and Michael Southwell, Pro PHP Security: From Application Security Principles to the Implementation of XSS Defenses, Apress, 2 edition, 2010.
7. Jon Erickson, Hacking: The Art of Exploitation, 2nd Edition, No Starch Press, 2008.
8. Daniel Regalado, Shon Harris and Allen Harper, Gray Hat Hacking The Ethical Hacker's Handbook, Fifth Edition, McGraw-Hill Education, 2018.
9. Mohit Raj, Python Penetration Testing Essentials, Packt Publishing Ltd., 2015.
10. Christopher Duffy. Learning Penetration Testing with Python. Packt Publishing, 2015.
11. James Broad, Andrew Bindner, Hacking with Kali: Practical Penetration Testing Techniques, Syngress, 2014.
12. Vijay Kumar Velu and Robert Beggs, Mastering Kali Linux for Advanced Penetration Testing - Third Edition, Packt Publishing Ltd., 2019.
13. José Manuel Ortega, Mastering Python for Networking and Security, 2nd Edition. Packt Publishing, 2021. |
◎教材講義 請改以帳號登入校務系統選擇全校課程查詢方能查看教材講義 |