├── .github └── workflows │ └── render.yml ├── .gitignore ├── .gitmodules ├── .travis.yml ├── .travis └── travis.key.enc ├── README.md ├── attach ├── chap0x05 │ ├── arping-demo.pcap │ ├── arping.py │ ├── curl-http.pcap │ ├── icmp-broadcast-scan.pcap │ ├── icmp-sweep-scan.pcap │ ├── icmping.py │ ├── scapy-ping.pcap │ └── scapy-ssh.pcap └── chap0x09 │ ├── Anderson80-IDS-TechReport.pdf │ ├── IEEEToSE1987-ID-Model.pdf │ ├── SP90-NetSecMonitor.pdf │ ├── SP91-IDES-StatisticalAnomalyDetector.pdf │ └── kumar-spaf-overview.pdf ├── chap0x01-slim.md ├── chap0x01.md ├── chap0x02-slim.md ├── chap0x02.md ├── chap0x03-slim.md ├── chap0x03.md ├── chap0x04.md ├── chap0x05.md ├── chap0x06.md ├── chap0x07.md ├── chap0x08-slim.md ├── chap0x08.md ├── chap0x09-slim.md ├── chap0x09.md ├── chap0x10.md ├── chap0x11.md ├── chap0x12-slim.md ├── chap0x12.md ├── chap0x13.md ├── client └── .gitkeep ├── images ├── chap0x01 │ ├── ATTACKMatrixforEnterprise.png │ ├── ChinaNetSecRules.jpg │ ├── Cyber_Security_Measurement_and_Management_Poster.png │ ├── P2DR.png │ ├── P2DR2.png │ ├── SCE-2011-8-26-p2.png │ ├── apt3vsapt29.svg │ ├── attack-navigation-layer.svg │ ├── captcha-demo.jpg │ ├── cve-capec.png │ ├── cve-cpe.png │ ├── cve-cvss.png │ ├── cve-cvss3x.png │ ├── cve-cwe.png │ ├── cve-nvd.png │ ├── cve-oval.png │ ├── cyber-security-laws.png │ ├── layered-protection.png │ ├── pyramid-1.jpg │ ├── pyramid-2.jpg │ ├── risk-management.jpg │ └── security-threat-model.png ├── chap0x02 │ ├── AccessControlFlow.png │ ├── Linux_Distribution_Timeline.clipped.png │ ├── MAC-1.png │ ├── MAC-2.png │ ├── RBAC.jpg │ ├── URL.png │ ├── acl-bypass.jpg │ ├── cve-2014-6271-2vs3.png │ ├── cvss-4.0-changes.png │ ├── tcp-state-machine.png │ ├── windows_operating_systems_history.png │ ├── x509-github-1.png │ └── x509-github-2.png ├── chap0x03 │ ├── anonymity-system-protection.png │ ├── anonymity-system.png │ ├── browser-fingerprinting.png │ ├── crowds-network.png │ ├── cyber-security-internals.png │ ├── foxy-proxy.png │ ├── hsts-browser-support.png │ ├── hsts-in-chrome.png │ ├── mix-net-1.png │ ├── mix-net-2.png │ ├── pptp-pcapr.png │ ├── proxy-model.png │ ├── proxy-server-examples.png │ ├── proxy-setup-chrome-example.png │ ├── proxy-setup-firefox-options-1.png │ ├── proxy-setup-firefox-options-2.png │ ├── reverse-http-proxy.png │ ├── socks-proxy.png │ ├── tarzan.png │ ├── tor-applications.png │ ├── tor-control-panel.png │ ├── tor-detection.png │ ├── tor-exit-node.png │ ├── tor-network-arch.png │ ├── vpn-by-layers.png │ ├── vpn-data-frames.png │ ├── vpn-usage.png │ ├── what-happened-after-url-typedin-proxy-mode.png │ └── what-happened-after-url-typedin.png ├── chap0x04 │ ├── arp-from-a2c.gif │ ├── arp-from-c2a.gif │ ├── arp-ping.png │ ├── arp-req-resp-example.png │ ├── arp-table.png │ ├── awesome-mitm.png │ ├── detect-promisc-nc.gif │ ├── dos-switch.gif │ ├── garp-demo.gif │ ├── generalize-mitm.gif │ ├── mitm-all-stack.png │ ├── mitm-all-tables.png │ ├── poison-switch-cam.gif │ ├── sniff-with-hub.gif │ ├── sniff-with-switch.gif │ ├── weird-arp-resp.png │ └── wireshark.png ├── chap0x05 │ ├── arping-flowgraph.png │ ├── curl-http.png │ ├── etc.services.png │ ├── icmp-broadcast-scan.png │ ├── icmp-format.png │ ├── icmp-sweep-scan.png │ ├── linux-os-fingerprint.png │ ├── maltego-1.png │ ├── maltego-2.png │ ├── maltego-3.png │ ├── mcafee-leader-gps-leakage.png │ ├── nmap-in-movies.png │ ├── nmap-scan-flow.png │ ├── photo-exif-0.png │ ├── photo-exif-1.png │ ├── photo-exif-2.png │ ├── ping-detect-os.png │ ├── scan-by-layers.png │ ├── scan-kb-by-layers.png │ ├── scan-seq.png │ ├── scapy-ping.png │ ├── tcp-hdr-format.png │ ├── tcp-idle-scan.png │ ├── tcp-proxy-scan.png │ ├── udp-hdr-format.png │ └── windows-os-fingerprint.png ├── chap0x06 │ ├── 2012-sqli.png │ ├── 3d-infosec-model.png │ ├── Email.png │ ├── Real Name.png │ ├── THE-CYBER-KILL-CHAIN-body.png │ ├── Telephone.png │ ├── Username.png │ ├── beyond-google-hacking-1.png │ ├── beyond-google-hacking-2.png │ ├── beyond-google-hacking-3.png │ ├── beyond-google-hacking-4.png │ ├── built-with-info.png │ ├── cdn-based-cloud-fw.png │ ├── cdn.png │ ├── evolution-of-the-web-2.png │ ├── evolution-of-the-web.png │ ├── fail2ban-logs.png │ ├── get-sites-from-ip-1.png │ ├── get-sites-from-ip-2.png │ ├── google-hacking-1.png │ ├── google-hacking-2.png │ ├── google-hacking-3.png │ ├── google-hacking-defense.png │ ├── location.png │ ├── network-layer.jpg │ ├── pwned-passwords.png │ ├── shodan.io.jpg │ ├── vulnerabilities-by-year.png │ ├── web-threat-flow.png │ ├── whois-info.png │ └── zoomeye.org.jpg ├── chap0x07 │ ├── csrf-facebook-add-backdoor-account.mp4 │ ├── dns-poison.png │ ├── dnsbin-1.png │ ├── file-hdr-demo.png │ ├── file-upload-rce-1.png │ ├── firefox-in-kali-debug-mode.png │ ├── invalid-gif.png │ ├── noscript-xss.png │ ├── npmjs-poison.png │ ├── php-include-data-1.png │ ├── php-include-local-1.png │ ├── php-include-php-input-0.png │ ├── php-include-php-input-1.png │ ├── php-include-remote-0.png │ ├── php-include-remote-1.png │ ├── privilege-triangle-model.png │ ├── pypi-poison.png │ ├── sqli-labs-lesson-11.png │ ├── struts-on-cnvd.png │ ├── struts-on-wooyun.png │ ├── struts2-stats.png │ ├── tomcat-information-disclosure-1.jpg │ ├── tomcat-information-disclosure-2.png │ ├── web-sec-model.png │ ├── xss-auditor-removed.png │ ├── xss-chrome.png │ ├── xss-cve-history-1.png │ ├── xss-cve-history-2.png │ ├── xss-cve-history-3.png │ ├── xss-firefox-blame.png │ ├── xss-firefox.png │ ├── xss-hello-world-in-2020.08.27-with-notes.png │ ├── xss-hello-world-in-2020.08.27.png │ └── xss-history-1.png ├── chap0x08 │ ├── firewall-definition.png │ ├── firewall-history.png │ ├── gartner-2019-fw-magic-quadrant.png │ ├── gartner-2022-fw-magic-quadrant.png │ ├── hybrid-mode.png │ ├── lb-fw.png │ ├── nat-type-1.png │ ├── nat-type-2.png │ ├── nat-type-3.png │ ├── netfilter-iptables-arch-1.png │ ├── netfilter-iptables-arch-2.png │ ├── netfilter-iptables-arch-3.png │ ├── netfilter-iptables-on-host.png │ ├── netfilter-iptables-workflow.png │ ├── packet-filter.png │ ├── private-addr-range.png │ ├── proxy-1.png │ ├── proxy-2.png │ ├── routing-mode.png │ ├── state-check-1.png │ ├── state-check-2.png │ ├── tips-fw.png │ └── transparent-mode.png ├── chap0x09 │ ├── fpr-fnr.png │ ├── ids-arch-1.png │ ├── ids-arch-2.png │ ├── ids-arch-3.png │ ├── ids-deploy.png │ ├── ids-fw-idr.png │ ├── ids-history.png │ ├── ids-model.png │ ├── ids-role.png │ ├── integraded-ids.png │ └── suricata-rules-demo.png ├── chap0x10 │ ├── 0day.png │ ├── cyber-security-3d-model.png │ ├── func-model-1.png │ ├── func-model-2.png │ ├── func-model-3.png │ ├── func-model-4.png │ ├── func-model-5.png │ ├── heartbleed.png │ ├── mod-security.png │ ├── object-oriented-harden.png │ └── web-threat-model.png ├── chap0x11 │ ├── CanaryTokens-1.png │ ├── CanaryTokens-2.png │ ├── honeyfarm.png │ ├── honeynet-1.png │ ├── honeynet-2.png │ ├── honeypot-1.png │ ├── honeypot-arch.png │ └── redirect-in-honeyfarm.png ├── chap0x12 │ └── md5-collision-pe.png ├── chap0x13 │ ├── 360-number-leak.jpg │ ├── 4g-fake-base-station.png │ ├── 5g-fake-base-station.png │ ├── anti-shoulder-surfing.jpg │ ├── appleid-icloud-blackmail.jpg │ ├── callerid-spoof.jpg │ ├── dumpster-diving.jpg │ ├── mobile-dial-sound.png │ ├── phishing-quiz.png │ ├── qrcode.png │ ├── shoulder-surfing.jpg │ ├── volte.png │ ├── watering-hole.png │ ├── winrar4.20.exploit.gif │ ├── wl-thzp.png │ ├── wx-con-1.jpg │ └── wx-con-2.jpg ├── llm-sec │ ├── LLM-Alignment-Frameworks.png │ ├── SurveyOfHallucination.png │ ├── TruthfulQA.png │ ├── jailbreak-demo-chatgpt-chatglm.png │ ├── jailbreak-demo-doubao.png │ ├── knowledge-shortcut-1.png │ ├── knowledge-shortcut-2.png │ ├── let-chatgpt-teach-you-jailbreak-1.png │ ├── let-chatgpt-teach-you-jailbreak-2.png │ ├── llm-defense-flowgraph.svg │ └── llm-genealogy.webp ├── reveal.js-multiplex.gif └── vuls-awd │ ├── log4j2-vul-codes.png │ ├── log4shell-and-aliyun.png │ ├── log4shell-detect-1.jpeg │ └── log4shell-entrypoint.png ├── index.md ├── intro.md ├── lib ├── revealjs.template.html └── revealjs.template.v4.html ├── llm-security.md ├── package-lock.json ├── render.sh ├── revealjs-codeblock.lua ├── server └── .gitkeep └── vuls-awd.md /.github/workflows/render.yml: -------------------------------------------------------------------------------- 1 | name: "Render PPT" 2 | on: 3 | push: 4 | branches: 5 | - master # trigger branch 6 | 7 | jobs: 8 | build: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: Checkout action 12 | uses: actions/checkout@v2 13 | with: 14 | submodules: true 15 | - name: install pandoc 16 | run: wget https://github.com/jgm/pandoc/releases/download/2.9.1.1/pandoc-2.9.1.1-1-amd64.deb && sudo dpkg -i pandoc-2.9.1.1-1-amd64.deb 17 | - name: render html 18 | run: bash render.sh 19 | - name: git submodule update 20 | run: git submodule update --init --recursive 21 | - name: Deploy 22 | uses: peaceiris/actions-gh-pages@v3 23 | with: 24 | github_token: ${{ secrets.GITHUB_TOKEN }} 25 | publish_dir: ./ 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lib/reveal.js"] 2 | path = lib/reveal.js 3 | url = https://github.com/c4pr1c3/reveal.js 4 | [submodule "lib/reveal.js.v4"] 5 | path = lib/reveal.js.v4 6 | url = https://github.com/c4pr1c3/reveal.js 7 | branch = v4 8 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | notifications: 2 | email: 3 | on_success: never 4 | 5 | before_install: 6 | - openssl aes-256-cbc -K $gitee_key -iv $gitee_iv -in ./.travis/travis.key.enc -out gitee_deploy_key -d 7 | - chmod 600 gitee_deploy_key 8 | - eval $(ssh-agent) 9 | - ssh-add gitee_deploy_key 10 | - git remote add gitee git@gitee.com:c4pr1c3/cuc-ns-ppt.git 11 | 12 | install: 13 | - sudo apt-get update 14 | - wget https://github.com/jgm/pandoc/releases/download/2.9.1.1/pandoc-2.9.1.1-1-amd64.deb && sudo dpkg -i pandoc-2.9.1.1-1-amd64.deb 15 | 16 | before_script: 17 | - pandoc -v 18 | 19 | script: 20 | - bash render.sh 21 | 22 | after_script: 23 | - git checkout -b gh-pages 24 | - git add *.html 25 | - git submodule update --init --recursive # prepare to translate submodule to regular dir 26 | - mv lib/reveal.js lib/reveal.js_tmp # ref: https://stackoverflow.com/questions/1759587/un-submodule-a-git-submodule 27 | - mv lib/reveal.js.v4 lib/reveal.js.v4_tmp # ref: https://stackoverflow.com/questions/1759587/un-submodule-a-git-submodule 28 | - git submodule deinit lib/reveal.js 29 | - git submodule deinit lib/reveal.js.v4 30 | - git rm lib/reveal.js lib/reveal.js.v4 31 | - mv lib/reveal.js_tmp lib/reveal.js 32 | - mv lib/reveal.js.v4_tmp lib/reveal.js.v4 33 | - rm -rf lib/reveal.js/.git 34 | - rm -rf lib/reveal.js.v4/.git 35 | - rm -rf lib/reveal.js.v4/plugin/reveal.js-plugins/.git 36 | - rm -rf lib/reveal.js.v4/plugin/reveal.js-plugins/menu/.git 37 | - git add lib/reveal.js 38 | - git add lib/reveal.js.v4 39 | - git commit -m "Updated By Travis-CI With Build $TRAVIS_BUILD_NUMBER For Github Pages" 40 | - git push --force --quiet "https://${TOKEN}@${REF}" gh-pages 41 | - git push --force --quiet gitee gh-pages 42 | 43 | branches: 44 | only: 45 | - master 46 | 47 | env: 48 | global: 49 | - REF=github.com/c4pr1c3/cuc-ns-ppt.git # 设置 github 地址 50 | 51 | addons: 52 | ssh_known_hosts: 53 | - gitee.com 54 | -------------------------------------------------------------------------------- /.travis/travis.key.enc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/.travis/travis.key.enc -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 网络安全 2 | 3 | [![License: CC BY-NC-SA 4.0](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/) 4 | 5 | 配套 [《网络安全》本科生教材](https://github.com/c4pr1c3/cuc-ns) 的课件。 6 | 7 | ## 使用「演示」模式 8 | 9 | ```bash 10 | # 1. 在「演示」服务器上安装必要的依赖 11 | npm install 12 | 13 | # 2. 启动「演示」广播控制服务 socket.io 14 | node node_modules/reveal-multiplex 15 | 16 | # 3. 访问 http://127.0.0.1:1948/token 获得 secret 和 socketId 的值 17 | # 3.1. 修改 lib/revealjs.template.html 中所有标记为【TO REPLACE】的变量值 18 | 19 | # 4. 渲染页面 20 | export PRETOKEN="" 21 | export PREID="" 22 | export PRESERVER="http://<观众和演讲者浏览器均可访问到的 IP>:1948" 23 | bash render.sh 24 | 25 | # 5. 分别开启「演讲者服务器」和「观众服务器」 26 | 27 | # 5.1. 推荐「演讲者服务器」仅限演讲者自己本地可访问 28 | # 5.1. 例如 127.0.0.1 29 | # 5.1. 「演讲者服务器」的站点根目录在 server/ 30 | 31 | # 5.2. 「观众服务器」要能让观众访问到 32 | # 5.2. 例如互联网上的一个服务器 IP 或域名 33 | # 5.2. 「观众服务器」的站点根目录在 client/ 34 | 35 | # 5.3. socket.io 服务 IP 要保证能被「观众」的浏览器访问到 36 | 37 | # 以下建立 http 静态文件服务器的方法可选,按需自取 38 | python3 -m http.server -b 127.0.0.1 9090 39 | php -S 127.0.0.1:9090 40 | ``` 41 | 42 | ### 「演示」模式效果 43 | 44 | ![](images/reveal.js-multiplex.gif) 45 | 46 | ### ⚠️ 警告 ⚠️ 47 | 48 | 1. **「演讲者服务器」严格只能单用户、单页面打开** ,避免观众的页面被并发的冲突控制指令所扰乱。 49 | 2. **页面切换间隔建议不小于 1 秒**,避免观众的页面进入混乱切换状态。 50 | 51 | ### 参考资料 52 | 53 | * [reveal/multiplex](https://github.com/reveal/multiplex) 54 | 55 | -------------------------------------------------------------------------------- /attach/chap0x05/arping-demo.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/attach/chap0x05/arping-demo.pcap -------------------------------------------------------------------------------- /attach/chap0x05/arping.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python 2 | # arping: arpings a network 3 | 4 | import sys 5 | from scapy.all import srp, Ether, ARP, conf 6 | 7 | 8 | if len(sys.argv) != 2: 9 | print("Usage: arping \n eg: arping 192.168.56.1/24") 10 | sys.exit(1) 11 | 12 | conf.verb = 0 13 | 14 | pkt = Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=sys.argv[1]) 15 | ans, unans = srp(pkt, timeout=2) 16 | 17 | for snd, rcv in ans: 18 | print("{} {}".format(rcv.src, rcv.psrc)) 19 | -------------------------------------------------------------------------------- /attach/chap0x05/curl-http.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/attach/chap0x05/curl-http.pcap -------------------------------------------------------------------------------- /attach/chap0x05/icmp-broadcast-scan.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/attach/chap0x05/icmp-broadcast-scan.pcap -------------------------------------------------------------------------------- /attach/chap0x05/icmp-sweep-scan.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/attach/chap0x05/icmp-sweep-scan.pcap -------------------------------------------------------------------------------- /attach/chap0x05/icmping.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import sys 4 | import threading 5 | import ipaddress 6 | from scapy.all import ICMP, IP, sr1 7 | from queue import Queue 8 | 9 | if len(sys.argv) < 2: 10 | print("Usage: icmping [icmp_type] [icmp_code]\n") 11 | print("eg: icmping 192.168.56.0/24") 12 | print("eg: icmping 192.168.56.0/24 13 0") 13 | print("eg: icmping 192.168.56.0/24 15 0") 14 | print("eg: icmping 192.168.56.0/24 17 0") 15 | sys.exit(1) 16 | 17 | network = sys.argv[1] 18 | if len(sys.argv) < 3: 19 | icmp_type = 8 20 | else: 21 | icmp_type = int(sys.argv[2]) 22 | 23 | if len(sys.argv) < 4: 24 | icmp_code = 0 25 | else: 26 | icmp_code = int(sys.argv[3]) 27 | 28 | max_threads = 100 29 | ip_net = ipaddress.ip_network(network) 30 | all_hosts = list(ip_net.hosts()) 31 | live_count = 0 32 | 33 | print('Sweeping Network with ICMP: {} type={}/code={}'.format(network, icmp_type, icmp_code)) 34 | 35 | 36 | def pingsweep(ip): 37 | host = str(all_hosts[ip]) 38 | resp = sr1( 39 | IP(dst=str(host))/ICMP(type=icmp_type, code=icmp_code), 40 | timeout=2, 41 | verbose=0, 42 | ) 43 | 44 | if resp is None: 45 | # print(f"{host} is down or not responding.") 46 | return 0 47 | elif ( 48 | int(resp.getlayer(ICMP).type) == 3 and int(resp.getlayer(ICMP).code) in [1, 2, 3, 9, 10, 13] 49 | ): 50 | # print(f"{host} is blocking ICMP.") 51 | return 0 52 | else: 53 | print(f"{host} is responding.") 54 | return 1 55 | 56 | 57 | def threader(): 58 | while True: 59 | worker = q.get() 60 | pingsweep(worker) 61 | q.task_done() 62 | 63 | 64 | q = Queue() 65 | 66 | for x in range(max_threads): 67 | t = threading.Thread(target=threader) 68 | t.daemon = True 69 | t.start() 70 | 71 | for worker in range(len(all_hosts)): 72 | q.put(worker) 73 | 74 | q.join() 75 | -------------------------------------------------------------------------------- /attach/chap0x05/scapy-ping.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/attach/chap0x05/scapy-ping.pcap -------------------------------------------------------------------------------- /attach/chap0x05/scapy-ssh.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/attach/chap0x05/scapy-ssh.pcap -------------------------------------------------------------------------------- /attach/chap0x09/Anderson80-IDS-TechReport.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/attach/chap0x09/Anderson80-IDS-TechReport.pdf -------------------------------------------------------------------------------- /attach/chap0x09/IEEEToSE1987-ID-Model.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/attach/chap0x09/IEEEToSE1987-ID-Model.pdf -------------------------------------------------------------------------------- /attach/chap0x09/SP90-NetSecMonitor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/attach/chap0x09/SP90-NetSecMonitor.pdf -------------------------------------------------------------------------------- /attach/chap0x09/SP91-IDES-StatisticalAnomalyDetector.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/attach/chap0x09/SP91-IDES-StatisticalAnomalyDetector.pdf -------------------------------------------------------------------------------- /attach/chap0x09/kumar-spaf-overview.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/attach/chap0x09/kumar-spaf-overview.pdf -------------------------------------------------------------------------------- /chap0x01-slim.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "网络安全" 3 | author: 黄玮 4 | output: revealjs::revealjs_presentation 5 | --- 6 | 7 | # 第一章 网络安全基础 8 | 9 | --- 10 | 11 | ## 提纲 12 | 13 | * 从风险管理开始入门 14 | * 威胁模型 15 | * 漏洞管理相关标准 16 | * 计算机⽹络安全模型 17 | * 等级安全保护 18 | * 计算机安全法规 19 | 20 | # 风险管理的一张神图 21 | 22 | --- 23 | 24 | ![](images/chap0x01/risk-management.jpg) 25 | 26 | # 风险管理的类比案例 27 | 28 | --- 29 | 30 | 小明⼝袋里有100元,因为打瞌睡,被小偷偷⾛了,导致小明晚上没饭吃 31 | 32 | * 风险 33 | * 资产 34 | * 影响 35 | * 威胁 36 | * 弱点 37 | * 攻击 38 | 39 | --- 40 | 41 | 小明⼝袋里有100元,因为打瞌睡,被小偷偷⾛了,导致小明晚上没饭吃 42 | 43 | * 风险 - 钱被偷走 44 | * 资产 - 100 元 45 | * 影响 - 晚上没饭吃 46 | * 威胁 - 小偷 47 | * 弱点 - 打瞌睡 48 | * 攻击 - 偷 49 | 50 | --- 51 | 52 | ## 重要启示 53 | 54 | * 如果没有 漏洞(弱点),攻击⽆法得⼿ 55 | * 如果没有价值(资产),不会招来威胁 56 | 57 | # 威胁模型 58 | 59 | --- 60 | 61 | ## 微软 STRIDE 模型 62 | 63 | | 威胁 | 安全性属性 | 64 | | ----------------------------------- | ------------ | 65 | | 假冒 (Spoof) | 认证(Authentication) | 66 | | 篡改 (Tamper) | **完整性** | 67 | | 否认 (Repudiation) | 不可抵赖性 | 68 | | 信息泄露 (Information Disclosure) | **机密性** | 69 | | 拒绝服务 (Denial of Service) | **可用性** | 70 | | 提升权限 (Elevation of Privilege) | 授权(Authorization) | 71 | 72 | --- 73 | 74 | ## 安全性属性的扩充 75 | 76 | * 认证 / 授权 / 不可抵赖性 77 | * 不可抵赖性可通过审计来保证 78 | * 认证(Authentication):身份验证 79 | * 授权(Authorization):⾏为验证 80 | * 审计(Audit):结果验证+责任认定 81 | * 责任认定(能⼒):Accountability 82 | 83 | --- 84 | 85 | ## 概念对比 86 | 87 | * 真实性 = 完整性+(身份)认证 88 | * 复合概念 89 | * 完整性 90 | * 原⼦概念 91 | 92 | # 漏洞管理相关标准 93 | 94 | --- 95 | 96 | | 漏洞标准 | 英文全称 | 中文名称 | 建议书编号 | 97 | |----------|----------|----------|------------| 98 | | CVE | Common Vulnerability and Exposure | 通用漏洞及曝光 | [ITU-T X.1520](https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=11061) | 99 | | CVSS | Common Vulnerability Scoring System | 通用漏洞评分系统 | [ITU-T X.1521](https://www.itu.int/rec/T-REC-X.1521/en) | 100 | | CWE | Common Weakness Enumeration | 通用缺陷枚举 | [ITU-T X.1524](https://www.itu.int/rec/T-REC-X.1524/en) | 101 | | CWSS | Common Weakness Scoring System | 通用缺陷评分系统 | [ITU-T X.1525](https://www.itu.int/rec/T-REC-X.1525/en) | 102 | | CPE | Common Platform Enumeration | 通用平台枚举 | [ITU-T X.1528](https://www.itu.int/rec/T-REC-X.1528/en) | 103 | | OVAL | Open Vulnerability and Assesment Language | 开放漏洞评估语言 | [ITU-T X.1526](https://www.itu.int/rec/T-REC-X.1526/en) | 104 | | CAPEC | Common Attack Pattern Enumeration and Classification | 常见攻击模式枚举和分类 | [ITU-T X.1544](https://www.itu.int/rec/T-REC-X.1544/en) | 105 | 106 | --- 107 | 108 | ![网络安全漏洞管理标准的安全测量和安全管理架构](images/chap0x01/Cyber_Security_Measurement_and_Management_Poster.png) 109 | 110 | --- 111 | 112 | ![网络安全漏洞管理标准的安全测量关系图](images/chap0x01/SCE-2011-8-26-p2.png) 113 | 114 | --- 115 | 116 | ## CVSS 117 | 118 | > 通用弱点评价体系(Common Vulnerability Scoring System, CVSS)是由美国国土安全部主导的 NIAC(国家资讯与分析中心)开发、FIRST(Forum of Incident Response and Security Teams,事件反应和安全小组论坛)维护的一个开放并且能够被产品厂商免费采用的标准。 119 | 120 | 在 [第二章](chap0x02.md.html) 中,我们将详细介绍CVSS的具体内容。 121 | 122 | --- 123 | 124 | ## CVE 125 | 126 | * CVE 的全称是 Common Vulnerabilities & Exposures ,中文翻译对应「公共漏洞曝光」 127 | * CVE 目前已经是信息安全界内有关漏洞的一个事实上的标准,安全研究人员也把自己发现的漏洞能够具备 CVE-ID 编号为荣 128 | * **并不是所有发现的安全漏洞都能获得 CVE-ID** ,申请 CVE-ID 有一个严格的流程 129 | 130 | --- 131 | 132 | ## CNVD 133 | 134 | [国家信息安全漏洞共享平台(China National Vulnerability Database,简称CNVD)](http://www.cnvd.org.cn/webinfo/list?type=7) 是由国家计算机网络应急技术处理协调中心(中文简称国家互联应急中心,英文简称 **CNCERT** )联合国内重要信息系统单位、基础电信运营商、网络安全厂商、软件厂商和互联网企业建立的信息安全漏洞信息共享知识库。 135 | 136 | --- 137 | 138 | > [国家信息安全漏洞共享平台(China National Vulnerability Database,简称CNVD)](http://www.cnvd.org.cn/webinfo/list?type=7) 由国家互联网应急中心、国家信息技术安全研究中心于2009年10月牵头发起,由国家互联网应急中心(简称 **CNCERT** )具体组织运作,联合国内重要信息系统单位、基础电信运营商、网络安全厂商、软件厂商和互联网企业建立的信息安全漏洞信息共享知识库。 139 | 140 | --- 141 | 142 | ## NVD 143 | 144 | NVD(National Vulnerability Database)是美国的国家漏洞数据库,其角色和作用同我国的 CNVD。 145 | 146 | --- 147 | 148 | ## CNNVD 149 | 150 | > [国家信息安全漏洞库,英文名称"China National Vulnerability Database of Information Security "简称"CNNVD",于2009年10月18日正式成立,是 **中国信息安全测评中心** 为切实履行漏洞分析和风险评估的职能,负责建设运维的国家信息安全漏洞库,面向国家、行业和公众提供灵活多样的信息安全数据服务,为我国信息安全保障提供基础服务](http://www.cnnvd.org.cn/web/xxk/gyCnnvdJs.tag) 151 | 152 | --- 153 | 154 | ## CWE 155 | 156 | [常见缺陷列表(Common Weakness Enumeration, CWE)](http://cwe.mitre.org/about/index.html)是对常见软件缺陷和漏洞进行分类整理的一套标准,该标准的制订目标是归纳和整理不同的软件缺陷机理,统一软件安全漏洞(包括架构、设计或代码实现层面)的描述语言以便于开发出自动化工具来识别、修复和预防这些缺陷。 157 | 158 | --- 159 | 160 | 无论 CVSS ,还是 CVE 、CWE ,其基本目标都是围绕创建 **可度量的安全**(标准)。 161 | 162 | # 以「破壳」漏洞为例 163 | 164 | --- 165 | 166 | ## CVE-2014-6271 on NVD 167 | 168 | [![](images/chap0x01/cve-nvd.png)](https://nvd.nist.gov/vuln/detail/CVE-2014-6271) 169 | 170 | --- 171 | 172 | ## CVSS v2.0 of CVE-2014-6271 173 | 174 | [![](images/chap0x01/cve-cvss.png)](https://nvd.nist.gov/vuln-metrics/cvss/v2-calculator?name=CVE-2014-6271&vector=(AV:N/AC:L/Au:N/C:C/I:C/A:C)&source=NIST) 175 | 176 | --- 177 | 178 | ## CVSS v3.x of CVE-2014-6271 179 | 180 | [![](images/chap0x01/cve-cvss3x.png)](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2014-6271&vector=AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.1&source=NIST) 181 | 182 | --- 183 | 184 | ## CWE of CVE-2014-6271 185 | 186 | [![](images/chap0x01/cve-cwe.png)](https://nvd.nist.gov/vuln/detail/CVE-2014-6271) 187 | 188 | --- 189 | 190 | ## CPE of CVE-2014-6271 191 | 192 | [![](images/chap0x01/cve-cpe.png)](https://nvd.nist.gov/vuln/detail/CVE-2014-6271) 193 | 194 | --- 195 | 196 | ## CAPEC of CVE-2014-6271 197 | 198 | [![](images/chap0x01/cve-capec.png)](https://cve.circl.lu/cve/CVE-2014-6271) 199 | 200 | --- 201 | 202 | ## OVAL of CVE-2014-6271 203 | 204 | [![](images/chap0x01/cve-oval.png)](https://cve.circl.lu/cve/CVE-2014-6271) 205 | 206 | # ATT&CK 207 | 208 | --- 209 | 210 | * `ATT&CK` 模型是 `MITRE` 在洛克希德-马丁公司提出的 `网络杀伤链(Cyber Kill Chain)` 模型 的基础上,构建了一套更细粒度、更易共享的知识模型和框架 211 | * 分支 212 | * PRE-ATT&CK 213 | * ATT&CK for Enterprise 214 | * ATT&CK for Mobile 215 | 216 | --- 217 | 218 | ## PRE-ATT&CK 219 | 220 | 覆盖杀伤链模型的前两个阶段,包含了与攻击者在尝试利用特定目标网络或系统漏洞进行相关操作有关的战术和技术。 221 | 222 | --- 223 | 224 | ## ATT&CK for Enterprise 225 | 226 | 覆盖杀伤链模型的后五个阶段,ATT&CK for Enterprise 由适用于 Windows 、Linux 和 macOS 系统的技术和战术部分共同组成。 227 | 228 | --- 229 | 230 | [![](images/chap0x01/ATTACKMatrixforEnterprise.png)](https://attack.mitre.org/) 231 | 232 | --- 233 | 234 | ## ATT&CK for Mobile 235 | 236 | 包含适用于移动设备的战术和技术。 237 | 238 | --- 239 | 240 | ## [ATT&CK 导航工具](https://mitre-attack.github.io/attack-navigator/enterprise/) {id='attack-navigator'} 241 | 242 | * 一个很有用的工具,可用于映射针对 `ATT&CK` 技术的控制措施 243 | * 可以添加不同的层,来显示特定的检测控制措施、预防控制措施甚至观察到的行为 244 | * 导航工具可以在线使用,快速搭建模型或场景,也可以下载下来,进行内部设置,作为一个持久化的解决方案 245 | 246 | --- 247 | 248 | 下一页如图所示,就是使用 `ATT&CK 导航工具` 制作的针对 2 次「APT 攻击事件报告」整理出的不同攻击过程的标准化定义描述。 249 | 250 | --- 251 | 252 | [![一个例子 APT3 VS. APT29](images/chap0x01/apt3vsapt29.svg)](https://mitre-attack.github.io/attack-navigator/enterprise/#layerURL=https://gist.githubusercontent.com/c4pr1c3/797ac8d50be1ce09689576dfdea1cf5b/raw/b99bd4c77ca9b6ebb78c794a0d8a8b1db1763f22/apt3-vs-apt29) 253 | 254 | --- 255 | 256 | * 可视化不同组织在「攻击技术」选择上的差异 257 | * 可视化不同安全事件中所涉及到的「攻击技术」差异 258 | * 可量化(主观评分,配置着色方案)攻击技术 259 | 260 | --- 261 | 262 | ## ATT&CK 典型应用场景 {id="attack-applications"} 263 | 264 | * 对抗模拟和攻防演练 265 | * 渗透测试活动 266 | * 制定行为分析方案 267 | * 防御差距评估 268 | * SOC 成熟度评估 269 | * 网络威胁情报收集 270 | 271 | --- 272 | 273 | ## ATT&CK 对比 CWE / CAPEC 274 | 275 | * ATT&CK 作为一个「知识库」,其所有「知识条目」均来自于「公开披露的真实安全事件」 276 | * ATT&CK 强调「实战性」 277 | * CWE / CAPEC 中并非所有「知识条目」都有「公开披露的真实安全事件」作为实例 278 | * CWE / CAPEC 强调「知识完备性」 279 | 280 | # 计算机网络安全模型 281 | 282 | --- 283 | 284 | ## 静态模型(分层模型) 285 | 286 | ![](images/chap0x01/security-threat-model.png) 287 | 288 | --- 289 | 290 | * 每一层的安全威胁是既相互独立,又相互联系、相互影响的 291 | * 每一层的安全威胁必须依靠当前层的安全策略和安全机制解决 292 | * 下一层的安全机制是上一层安全机制的基础 293 | * 上一层的安全机制等级不会高于下一层的安全机制等级 294 | * 下层不安全,上层的安全无法保障 295 | * 下层安全,并不代表上层安全 296 | 297 | --- 298 | 299 | ## 动态模型—— P2DR 模型 300 | 301 | * 策略(Policy) 302 | * 防护(Protection) 303 | * 检测(Detection) 304 | * 响应(Response) 305 | 306 | --- 307 | 308 | ![](images/chap0x01/P2DR.png) 309 | 310 | --- 311 | 312 | ### 防护 313 | 314 | * 主动防护。例如:数据加密、身份认证、访问控制、虚拟专用网 VPN 等; 315 | * 被动防护。例如:防火墙、安全扫描、入侵检测。 316 | 317 | --- 318 | 319 | ### 检测 320 | 321 | * 主动检测。安全测试、蜜罐和安全审计。 322 | * 被动检测。蜜罐、入侵检测。 323 | 324 | --- 325 | 326 | ### 响应 327 | 328 | * 产生警告(Alert / Log):这是「检测」到异常时的「必选」行为,严格意义上来说并不能算作一种「有效响应」,只是起到了「通知」的作用。 329 | * 拒绝访问(Deny):限制「入站」流量。 330 | * 中断(Disrupt):限制「出站」流量。 331 | * 降级/限制访问(Degrade):「过滤」流量,有选择允许和禁止访问。 332 | * 欺骗(Deception / Deceive):「重定向」流量。 333 | * 灾难恢复(Recovery):启用备用系统、数据恢复措施等。 334 | 335 | --- 336 | 337 | ## 用P2DR模型审视:STRIDE/CVSS/CVE/CWE 338 | 339 | * 策略 340 | * 基于 `STRIDE` 进⾏系统设计 341 | * 防护 342 | * 基于 `CWE` 在系统开发过程中规避已知弱点 343 | * 检测 344 | * 检测到新漏洞后添加到 `CVE` 345 | * 响应 346 | * 基于 `CVSS` 对 `CVE` 条目的评分确定响应策略:轻重缓急 347 | 348 | --- 349 | 350 | ## 动态模型—— P2DR2 模型 351 | 352 | * 策略(Policy) 353 | * 防护(Protection) 354 | * 检测(Detection) 355 | * 响应(Response) 356 | * 恢复(Recovery) 357 | 358 | --- 359 | 360 | ![](images/chap0x01/P2DR2.png) 361 | 362 | --- 363 | 364 | ## 计算机⽹络安全模型小结 365 | 366 | * 从静态的视角看计算机⽹络安全模型:安全威胁是可以分层的 367 | * 从动态的视角看计算机⽹络安全模型:安全威胁是持续变化的 368 | * 计算机⽹络安全模型的核⼼特点 369 | * **对抗**:威胁 VS. 安全策略/机制 370 | * **变化**:威胁 / 安全策略/机制 / 环境 371 | 372 | # 等级安全保护 373 | 374 | --- 375 | 376 | * 橘皮书:TCSEC 377 | * 红皮书:TNI 378 | * ITSEC 379 | * CC 380 | 381 | --- 382 | 383 | ## 我国等级保护现状 384 | 385 | * [《中华人民共和国网络安全法》(以下简称《网络安全法》](http://www.cac.gov.cn/2016-11/07/c_1119867116.htm) 于 2016 年 11 月 7 日第十二届全国人民代表大会常务委员会第二十四次会议通过,于 2017 年 6 月 1 日起施行 386 | * 《网络安全法》出台后,等级安全保护进入 2.0 时代。这意味着在遵照[《信息安全等级保护管理办法》](http://www.gov.cn/gzdt/2007-07/24/content_694380.htm) 及其配套的标准[《信息系统安全等级保护定级指南》](http://www.djbh.net/webdev/file/webFiles/File/jsbz/2012323103010.pdf) 建立的「信息安全等级保护体系」已全面升级 387 | * 随着 2018 年 1 月 19 日,全国信息安全标准化技术委员会发布关于 [《信息安全技术 网络安全等级保护定级指南(征求意见稿)》](http://www.djbh.net/webdev/web/HomeWebAction.do?p=getGzjb&id=8a8182565fd8b6b901612bc8a72e00e5) (以下简称《定级指南》),标准修订完成后,《信息安全技术 **网络安全**等级保护定级指南》 将替代原来的 GB/T22240-2008《信息安全技术**信息系统安全**等级保护定级指南》 388 | 389 | --- 390 | 391 | ### 等保定级原则 392 | 393 | ![](images/chap0x01/layered-protection.png) 394 | 395 | --- 396 | 397 | * 关于上述三类受侵害的客体分类,一般损害、严重损害和特别严重损害的定义,基本沿袭原有表达。但是在《定级指南》中,对公民、法人和其他组织的合法权益,遭受特别严重损害的,明确定级在“第三级”,彰显了对私权利维护的升级。 398 | * 对于基础信息网络、云计算平台、大数据平台等支撑类网络,应根据其承载或将要承载的等级保护对象的重要程度确定其安全保护等级,原则上应不低于其承载的等级保护对象的安全保护等级。 399 | * 《定级指南》规定,原则上,大数据安全保护等级不低于第三级。对于确定为关键信息基础设施的,原则上其安全保护等级不低于第三级。 400 | 401 | --- 402 | 403 | ## 等级保护的意义 404 | 405 | * 明确安全需求 406 | * 资产在哪⼉?价值多⼤? 407 | * 安全防护是需要成本投⼊的 408 | * 信息安全与信息化建设要协调 409 | * 安全建设和管理需要兼顾系统性、针对性、可⾏性 410 | * 明确重点、突出重点、保护重点 411 | 412 | # 计算机安全法规 413 | 414 | --- 415 | 416 | 刑法修正案(七)在刑法第285条中增加两款(第⼆款、第三款) 417 | 418 | > 违反国家规定,侵⼊前款规定以外的计算机信息系统或者采用其他技术⼿段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚⾦;情节特别严重的,处三年以上七年以下有期徒刑,并处罚⾦。 419 | 420 | > 提供专门用于侵⼊、非法控制计算机信息系统的程序、⼯具,或者明知他⼈实施侵⼊、非法控制计算机信息系统的违法犯罪⾏为⽽为其提供程序、⼯具,情节严重的,依照前款的规定处罚。 421 | 422 | --- 423 | 424 | ## ⽹络安全不可⼉戏 425 | 426 | 《最⾼⼈民法院、最⾼⼈民检察院关于办理危害计算机信息系统安全刑事案件应用法律若⼲问题的解释》 427 | 428 | * 2011年6月20日最⾼⼈民法院审判委员会第1524次会议、2011年7月11日最⾼⼈民检察院第⼗⼀届检察委员会第63次会议通过 429 | * 自2011年9月1日起施⾏ 430 | 431 | --- 432 | 433 | ## 中华人民共和国网络安全法 434 | 435 | ![](images/chap0x01/ChinaNetSecRules.jpg) 436 | 437 | --- 438 | 439 | ### 第七章,第七⼗六条(⼆) 440 | 441 | > 网络安全,是指通过采取必要措施,防范对网络的攻击、侵入、干扰、破坏和非法使用以及意外事故,使网络处于稳定可靠运行的状态,以及保障网络数据的 **完整性** 、**保密性** 、**可用性** 的能力。 442 | 443 | --- 444 | 445 | ## 重要法律法规一览 {id="laws-1"} 446 | 447 | [![](images/chap0x01/cyber-security-laws.png)](http://www.itsec.gov.cn/fgbz/) 448 | 449 | --- 450 | 451 | ## 重要法律法规一览 {id="laws-2"} 452 | 453 | [我国近年来数据安全法律法规最全汇编 2019-08-09](https://www.secrss.com/articles/12854) 454 | 455 | --- 456 | 457 | ## 知法守法 458 | 459 | * ⽹络安全攻防实验必须严格限制在局域⽹范围内 460 | * 了解保密相关法律法规 461 | * 泄密坐牢,卖密杀头 462 | * 涉密不联⽹,联⽹不涉密 463 | 464 | # 课后思考题 465 | 466 | --- 467 | 468 | 以下⾏为分别破坏了CIA和AAA中哪⼀个属性或多个属性? 469 | 470 | * 小明抄小强的作业 471 | * 小明把小强的系统折腾死机了 472 | * 小明修改了小强的淘宝订单 473 | * 小明冒充小强的信用卡账单签名 474 | * 小明把自⼰电脑的IP修改为小强电脑的IP,导致小强的电脑⽆法上⽹ 475 | 476 | --- 477 | 478 | 有⼀次,小明⼝袋里有100元,因为打瞌睡,被小偷偷⾛了,搞得晚上没饭吃。又⼀天,小明⼝袋里有200元,这次小明为了防范小偷,不打瞌睡了,但却被强盗持⼑威胁抢⾛了,搞得⼀天没饭吃,小明当天就报警了。 479 | 480 | * 试分析两次失窃事件中的:风险、资产、威胁、弱点、攻击、影响 481 | * 试用P2DR模型分析以上案例中的“现⾦被抢”事件中的安全策略、安全防护、安全检测和安全响应 482 | * “被抢”事件中,小明的安全策略存在何问题? 483 | 484 | --- 485 | 486 | 针对下述论点,分别设计⼀场景案例(必须和课程相关),使得该论点在该场景中成立 487 | 488 | * 预防比检测和恢复更重要 489 | * 检测比预防和恢复更重要 490 | * 恢复比预防和检测更重要 491 | 492 | --- 493 | 494 | 试分析“CAPTCHA图片验证码技术可以阻⽌恶意批量注册⾏为”这句话中的安全策略、安全机制和安全假设分别是什么?CAPTCHA图片举例 495 | 496 | ![](images/chap0x01/captcha-demo.jpg) 497 | 498 | --- 499 | 500 | 某⼤型软件开发公司的总裁担⼼公司的专利软件设计⽅法被内部员⼯泄露给其他公司,他打算防⽌泄密事件的发⽣。于是他设计了这样⼀个安全机制: **所有员⼯必须每天向他汇报自⼰和其他竞争对⼿公司员⼯的所有联系(包括IM、电⼦邮件、电话等等)** 。你认为该安全机制能达到总裁的预期安全效果吗?为什么? 501 | 502 | --- 503 | 504 | 请列举你经常使用的互联⽹服务有哪些,通过公开渠道检索这些服务提供商在历史上是否经历过安全事件?据此,撰写⼀篇主题为:《某某互联⽹服务安全问题概要》的调研报告。 505 | 506 | -------------------------------------------------------------------------------- /chap0x02-slim.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "网络安全" 3 | author: 黄玮 4 | output: revealjs::revealjs_presentation 5 | --- 6 | 7 | # 第二章 系统安全、风险评估理论与应用 8 | 9 | --- 10 | 11 | ## 温故 12 | 13 | * 基本术语 14 | * 网络空间安全是什么?CIA的内涵? 15 | * 资产、威胁、风险、漏洞、影响、攻击 16 | * 可度量安全 17 | * CVE / CVSS / CWE / CPE / CAPEC / ATT&CK 18 | * P2DR模型 19 | * 安全是持续循环、动态变化过程 20 | * 等级安全保护 21 | 22 | --- 23 | 24 | ## 知新 25 | 26 | * 操作系统中的 27 | * 安全策略:访问控制策略 28 | * 安全机制:访问控制机制 29 | * 通用弱点评价系统 —— CVSS 30 | * **C**ommon **V**ulnerability **S**coring **S**ystem 31 | * 风险评估的基本原理与案例分析 32 | 33 | --- 34 | 35 | ## 本章内容提要 36 | 37 | * 数字标识理论 38 | * 访问控制理论 39 | * 风险评估理论与实践 40 | 41 | # 数字标识理论 42 | 43 | --- 44 | 45 | ## 定义 46 | 47 | * 实体 48 | * Entity 49 | * 业务操作的发起者(主体)或对象(客体) 50 | * 标识 51 | * Identity 52 | * 对实体的数字化指代 53 | * 又可称为“数字标识” 54 | 55 | --- 56 | 57 | ## 数字标识的意义 58 | 59 | * 对信息安全相关实体建立标识体系是构建信息安全系统的基础⼯作之⼀ 60 | * 身份认证 61 | * 访问控制 62 | * 安全审计 63 | * ⽹络协议 64 | 65 | --- 66 | 67 | ## 常见的数字标识技术 68 | 69 | * 系统实体标识 70 | * 系统资源标识 71 | * 用户、组和角⾊标识 72 | * 与数字证书相关的标识 73 | * ⽹络实体标识 74 | * 主机、⽹络和连接标识 75 | * ⽹络资源标识 76 | * 连接及其状态标识 77 | 78 | --- 79 | 80 | ### 系统实体标识 81 | 82 | * 操作系统 83 | * ⽂件标识 84 | * ⽂件名和存储路径 85 | * 进程标识 86 | * 进程号:PID 87 | * 数据库系统 88 | * 数据表标识 89 | * 数据库名和表名 90 | 91 | --- 92 | 93 | ### 用户、组和角色标识 94 | 95 | * 用户 96 | * 用户号:UID 97 | * 用户组 98 | * 用户组号:GID 99 | * 角⾊标识 100 | * 特殊用户分组 101 | 102 | 103 | --- 104 | 105 | ## 与数字证书相关的标识 106 | 107 | * 数字证书用于绑定证书所有者情况及其公钥 108 | * 在数字签名和认证中用于向签名验证者或身份认证者提供这些信息 109 | * X.509证书 110 | * 基本信息 111 | * 辅助(扩展)信息 112 | * 数字证书通常由证书签发者对证书签名 113 | * 基于数字证书的标识具有抗篡改的特性 114 | 115 | --- 116 | 117 | ### X.509 证书基本信息 118 | 119 | [![](images/chap0x02/x509-github-1.png)](https://c4pr1c3.github.io/cuc-ns/chap0x02/main.html) 120 | 121 | --- 122 | 123 | ### X.509 证书扩展信息 124 | 125 | ![](images/chap0x02/x509-github-2.png) 126 | 127 | --- 128 | 129 | ## 主机、网络和连接标识 130 | 131 | * 主机标识 132 | * 数据链路层:MAC地址 133 | * 例如:08-00-27-07-DD-0A 134 | * ⽹络层:⽹络地址 135 | * 对于TCP/IP⽹络,即 `IP地址` 136 | * 应用层:域名地址 137 | 138 | --- 139 | 140 | ## 网络资源标识 141 | 142 | * 统⼀资源定位符(URL:Uniform Resources Locator) 143 | 144 | ![](images/chap0x02/URL.png) 145 | 146 | --- 147 | 148 | ## 连接及其状态标识 {id="con-state-id-1"} 149 | 150 | * 唯⼀标识⼀个⽹络(会话)连接:`IP 五元组` 151 | * 源 IP 地址 152 | * 目的 IP 地址 153 | * 源端⼝ 154 | * 目的端⼝ 155 | * 传输层协议类型 156 | 157 | --- 158 | 159 | ## 连接及其状态标识 {id="con-state-id-2"} 160 | 161 | * (会话)连接状态标识 162 | 163 | ![](images/chap0x02/tcp-state-machine.png) 164 | 165 | # 访问控制理论 166 | 167 | --- 168 | 169 | ![](images/chap0x02/acl-bypass.jpg) 170 | 171 | > 安全砖家: “报告老板,通往停车场的道路已经被我们 封锁 了!绝对安全! 172 | 173 | --- 174 | 175 | ## 访问控制的基本概念 176 | 177 | --- 178 | 179 | ### 主体 180 | 181 | > 主动的实体,是访问的发起者,它造成了信息的流动和系统状态的改变,主体通常包括⼈、进程和设备等。 182 | 183 | --- 184 | 185 | ### 客体 186 | 187 | > 包含或接受信息的被动实体,客体在信息流动中的地位是被动的,客体通常包括⽂件、设备、信号量和⽹络节点等。 188 | 189 | --- 190 | 191 | ### 访问 192 | 193 | > 使信息在主体和客体之间流动的⼀种交互⽅式。 194 | 195 | --- 196 | 197 | ### 授权访问 198 | 199 | > 主体访问客体的允许,授权访问对每⼀对主体和客体来说是给定的 200 | 201 | --- 202 | 203 | ### 安全访问策略 204 | 205 | > ⼀套规则,可用于确定⼀个主体是否对客体拥有访问能⼒ 206 | 207 | > 主体对客体的操作⾏为集和约束条件集 208 | 209 | --- 210 | 211 | ### 访问控制三要素 212 | 213 | > 主体、客体、安全访问策略 214 | 215 | --- 216 | 217 | ## 访问控制的三个基本面 218 | 219 | * 认证 220 | * 身份认证:客体对主体的识别认证 221 | * 客体和主体的身份可以随着时间、应用场景⽽改变 222 | * 授权 223 | * 访问控制 **策略实现** 224 | * 授权主体对客体可以正常访问 225 | * 非授权主体对客体⽆法访问 226 | * 审计 227 | * 记录访问历史,实现 `不可抵赖性` 228 | 229 | --- 230 | 231 | ## 访问控制过程 232 | 233 | ![](images/chap0x02/AccessControlFlow.png) 234 | 235 | --- 236 | 237 | ## 访问控制策略 238 | 239 | * 自主访问控制 240 | * DAC: Discretionary Access Control 241 | * 强制访问控制 242 | * MAC: Mandatory Access Control 243 | * 基于角⾊的访问控制 244 | * RAC: Role-Based Access Control 245 | 246 | --- 247 | 248 | ### 自主访问控制 249 | 250 | * 已授权主体可以访问客体 251 | * 非授权主体⽆法访问客体 252 | * 访问授权可以自主分配( **授权** 和 **取消授权**) 253 | * 用户A可以访问⽂件a,则用户A可以授权用户B也能访问⽂件a 254 | 255 | --- 256 | 257 | ### 自主访问控制实现⽅式举例 258 | 259 | * 访问控制列表(ACL:Access Control List) 260 | * 访问控制矩阵 261 | * 面向过程的访问控制 262 | 263 | --- 264 | 265 | * 访问控制矩阵实例 266 | 267 | | | 文件A | 文件B | 进程A | 进程B | 268 | | :- | :- | :- | :- | :- | 269 | | 进程A | 读、写、属主 | 读 | 读、写、执行、属主 | 写 | 270 | | 进程B | 追加 | 写、属主 | 读 | 读、写、执行、属主 | 271 | 272 | > 属主:绝⼤多数现代操作系统,属主权限的拥有主体可以对所拥有的权限自⾏分配。 273 | 274 | --- 275 | 276 | ### 强制访问控制 277 | 278 | * (操作)系统对访问主体和受控对象(客体)实⾏强制访问控制 279 | * 多级访问控制策略 280 | * (操作)系统预先分配好主客体安全级别:安全标签 281 | * 主体访问客体时先进⾏安全级别属性比较,再决定访问主体能否访问该受控对象(客体) 282 | 283 | --- 284 | 285 | ## 访问控制机制 286 | 287 | --- 288 | 289 | ### 身份认证 290 | 291 | * 将身份标识唯一的绑定到主体 292 | * 外部实体能够向系统证明其身份标识唯一性的因素 293 | * 知道的(例如:口令或秘密信息) knows 294 | * 拥有的(例如:令牌或磁卡) has 295 | * 生物特征(例如:指纹、虹膜) is 296 | * 实体位置(例如:在特定终端上) where 297 | * 以上因素可以单一使用,也可以多个同时使用 298 | 299 | --- 300 | 301 | ### 访问授权 302 | 303 | * 授权类型 304 | * 授予(grant)权限 305 | * 拥有该权限的主体可以将所拥有的客体访问权限分配给其他主体 306 | * 属主(own)权限 307 | * 客体的创建者通常都会拥有属主权限,该权限可以由创建者自己授予他人 308 | * 权限的弱化原则 309 | * 主体无法将自己不具备的权限授予他人 310 | * 主体如果具有属主权限则不受上述原则约束 311 | 312 | --- 313 | 314 | ### 撤销访问授权 315 | 316 | * 为何需要撤销访问授权? 317 | * 认证凭据丢失/被盗 318 | * 人员变动(离职/岗位变动等) 319 | * 如何取消访问授权? 320 | * 身份认证环节:禁用/取消/删除认证凭据 321 | * 访问授权环节:禁用/取消/删除/修改访问控制列表中的授权项 322 | 323 | --- 324 | 325 | ## 访问审计 326 | 327 | * 内涵 328 | * 主体对客体的访问行为会被记录,用于安全责任追查和认定 329 | * 意义 330 | * 检测是否存在违反安全(访问控制)策略的行为 331 | * 重建安全事件 332 | * 手段 333 | * 日志 334 | 335 | --- 336 | 337 | ## 认证、授权和审计的关系 338 | 339 | ![](images/chap0x02/AccessControlFlow.png) 340 | 341 | # 通用安全漏洞评估系统(CVSS) 342 | 343 | --- 344 | 345 | ## 简介 346 | 347 | * 由 NIAC 开发、FIRST 维护的一个开放并且能够被各产品厂商免费采用的行业标准 348 | * 量化评价,总分取值范围:[0, 10] 349 | * 三组指标 350 | * 基本评估 351 | * 时效性评估 352 | * 环境评估 353 | 354 | --- 355 | 356 | ## 演进中的 CVSS {id="cvss-versions"} 357 | 358 | * 2023.11 [CVSS 4.0](https://www.first.org/cvss/v4.0/specification-document) 359 | * 2019.6 [CVSS 3.1](https://www.first.org/cvss/v3.1/specification-document) 360 | * 2015.6 [CVSS 3.0](https://www.first.org/cvss/v3.0/specification-document) 361 | * 2007.6 [CVSS 2.0](https://www.first.org/cvss/v2/guide) 362 | 363 | --- 364 | 365 | ## 特别说明 366 | 367 | 以下内容主要针对 `CVSS 2.0` 和 `CVSS 3.x` 。 368 | 369 | --- 370 | 371 | ## 评估主体框架 372 | 373 | * `基础评估` 指标描述安全漏洞 **固有的**、根本性的属性,这些属性不随时间或用户具体环境的变化而改变 374 | * `时效性评估` 指标是指安全漏洞与 **时间相关** 的属性,这些属性可能随着时间的变化而变化 375 | * `环境评估` 指标在不同的用户的 **具体使用环境** 中,产品安全漏洞所造成危害程度也不同 376 | 377 | --- 378 | 379 | ## 基础评估 380 | 381 | * 入侵途径 2.0+ 382 | * 入侵复杂性 2.0+ 383 | * 身份认证要素 2.0 384 | * **是否需要(被攻击)用户交互** 3.0+ 385 | * **影响波及范围** 3.0+ 386 | * 信息机密性影响 2.0+ 387 | * 信息完整性影响 2.0+ 388 | * 服务持续性影响 2.0+ 389 | 390 | --- 391 | 392 | ### 基础评估指标的完善 393 | 394 | | | 2.0 | 3.0 | 395 | | :- | :- | :- | 396 | | AV | L,A,N | 新增 **P** | 397 | | AC | H,M,L | 移除 **M** | 398 | | CIA | N,P,C | **P**artial 变更为 **L**ow | 399 | 400 | --- 401 | 402 | ## 时效性评估 - 可利用性 {id="exploitability"} 403 | 404 | * 跳过评估 `Not Defined` / `E:X` 405 | * 不确定是否存在漏洞利用工具 `Unproven that exploit exists` / `E:U` 406 | * 存在漏洞存在性验证工具 `Proof of concept code` / `E:P` 407 | * 存在漏洞利用工具 `Functional exploit exists` / `E:F` 408 | * 存在自动化利用工具或无需特别利用工具且资料成熟 `High` / `E:H` 409 | 410 | --- 411 | 412 | ## 时效性评估 - 缓解措施级别 {id="remediation-level"} 413 | 414 | * 跳过评估 `Not Defined` / `E:X` 415 | * 存在官方补丁 `Official fix` / `RL:O` 416 | * 存在临时补丁 `Temporary fix` / `RL:T` 417 | * 存在缓解措施 `Workaround` / `RL:W` 418 | * 无补丁 `Unavailable` / `RL:U` 419 | 420 | --- 421 | 422 | ## 时效性评估 - 报告可信度 {id="report-confidence"} 423 | 424 | * 跳过评估 `Not Defined` / `E:X` 425 | * 未知 / 未确认 426 | * `Unknown` / `RC:U` 3.0+ 倾向于「半信半疑」 427 | * `Unconfirmed` / `RC:UC` 2.0 强调报告来源单一或不同来源报告可能存在「自相矛盾」,倾向于「不相信」 428 | * 部分确认 / 未经证实 429 | * `Reasonable` / `RC:R` 3.0+ 强调已经存在「部分可验证」,倾向于「相信」 430 | * `Uncorroborated` / `RC:UR` 2.0 强调漏洞报告来源是「小道消息」、可能不同来源的信息会「自相矛盾」,倾向于「不相信」 431 | * 已确认 `Confirmed` / `RC:C` 432 | 433 | --- 434 | 435 | ## 环境评估 3.0+ {id="environmental-score-metrics-3"} 436 | 437 | * 「基础评估指标」修正 438 | * 「影响力指标」修正 439 | * 「影响力子分数」修正:资产对特定影响力的风险承受能力匹配 440 | 441 | --- 442 | 443 | ## 环境评估 2.0 {id="environmental-score-metrics-2"} 444 | 445 | * 「通用」修正 446 | * 综合损失估计:跳过评估、无影响、 447 | * (受影响)目标分布 448 | * 「影响力子分数」修正 449 | 450 | --- 451 | 452 | ## 总体评估原则 453 | 454 | 1. 每个安全漏洞都必须单独评估 ,不得考虑与其他安全漏洞的交叉影响 455 | 2. 只考虑每个安全漏洞的直接影响 ,不考虑其他间接影响 456 | 3. 应该按照通常使用的权限 来评估安全漏洞的影响 457 | * 假设客户端应用使用的是根用户权限,而 Web 应用则假设使用的是普通用户权限 458 | 4. 当安全漏洞有很多种入侵途径时,应该能造成最大伤害的入侵途径为依据 459 | 460 | --- 461 | 462 | ## 从「定量」到「定性」 463 | 464 | | 2.0 | 基础分范围 | 3.0 | 基础分范围 | 465 | | :-: | :-: | :-: | :-: | 466 | | | | None | 0.0 | 467 | | Low | 0.0-3.9 | Low | 0.1-3.9 | 468 | | Medium | 4.0-6.9 | Medium | 4.0-6.9 | 469 | | High | 7.0-10.0 | High | **7.0-8.9** | 470 | | | | Critical | 9.0-10.0 | 471 | 472 | --- 473 | 474 | ## CVSS 2.0 VS. CVSS 3.0+ 🌰 {id="cve-2014-6271-demo-1"} 475 | 476 | ![](images/chap0x02/cve-2014-6271-2vs3.png) 477 | 478 | --- 479 | 480 | ## CVSS 2.0 VS. CVSS 3.0+ 🌰 {id="cve-2014-6271-demo-2"} 481 | 482 | * [CVE-2014-6271 的 CVSS 3.0/3.1 评分详情](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2014-6271&vector=AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.1) 483 | * [CVE-2014-6271 的 CVSS 2.0 评分详情](https://nvd.nist.gov/vuln-metrics/cvss/v2-calculator?name=CVE-2014-6271&vector=(AV:N/AC:L/Au:N/C:C/I:C/A:C)&version=2.0) 484 | 485 | --- 486 | 487 | ## CVSS 的局限性和不足 {id="cvss-flaws"} 488 | 489 | 1. 每个安全漏洞都必须 **单独评估** ,不得考虑与其他安全漏洞的交叉影响 490 | 2. 只考虑每个安全漏洞的 **直接影响** ,不考虑其他间接影响 491 | 3. 当安全漏洞有很多种入侵途径时,应该能造成 **最大伤害的入侵途径** 为依据 492 | 4. 时效性指标,由于攻防信息的天然不对称性,守方通常倾向于低估漏洞危害 493 | * 基于客观事实的主观评价打分 494 | 5. 环境指标依赖于安全团队水平:对本方网络与系统的认知水平偏差 495 | 6. 高危漏洞的修复方式难度和低危漏洞修复方式难度并没有直接的可比性 496 | 497 | --- 498 | 499 | ## CVSS 的应用 {id="cvss-howto"} 500 | 501 | * 管理层重视漏洞管理 502 | * 漏洞管理工作流程化、制度化、日常化,并有专门的部门和人员负责实施与检查 503 | * 建立高效、准确、更新及时的资产清单管理系统 504 | * 推进标准化和自动化配置 IT 资产 505 | 506 | --- 507 | 508 | ## CVSS 4.0 相比于 3.1 的主要变化 509 | 510 | ![](images/chap0x02/cvss-4.0-changes.png) 511 | 512 | # 课后思考题 513 | 514 | --- 515 | 516 | 1. 生物特征身份认证方式有哪些?优缺点分析?应用场景举例。 517 | 2. “找回口令功能”和“忘记密码”在访问授权机制中的意义?请尝试设计几种安全的“找回口令功能”,详细描述找回口令的用户具体操作过程。 518 | 3. 绘制用户使用用户名/口令+图片验证码方式录系统的流程图。考虑认证成功和失败两种场景,考虑授权成功和失败两种场景。 519 | 4. 用权限三角形模型来理解并描述下 2 种威胁模型:提权、仿冒。 520 | 521 | --- 522 | 523 | 5. 试通过操作系统的访问控制机制来达到预防一种真实病毒的运行目的。 524 | 6. 什么是 OAuth? 525 | 7. 什么是 OpenID? 526 | 8. 试用本章所学理论分析 OAuth 和 OpenID 的区别与联系。 527 | 9. 如何使用 OAuth 和 OpenID 相关技术实现单点登录(Single Sign On)? 528 | 529 | -------------------------------------------------------------------------------- /chap0x02.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "网络安全" 3 | author: 黄玮 4 | output: revealjs::revealjs_presentation 5 | --- 6 | 7 | # 第二章 系统安全、风险评估理论与应用 8 | 9 | --- 10 | 11 | ## 温故 12 | 13 | * 基本术语 14 | * 网络空间安全是什么?CIA的内涵? 15 | * 资产、威胁、风险、漏洞、影响、攻击 16 | * 可度量安全 17 | * CVE / CVSS / CWE / CPE / CAPEC / ATT&CK 18 | * 安全策略和安全机制 19 | * 声明和实现 20 | * P2DR模型 21 | * 安全是持续循环、动态变化过程 22 | * 等级安全保护 23 | 24 | --- 25 | 26 | ## 知新 27 | 28 | * 操作系统中的 29 | * 安全策略:访问控制策略 30 | * 安全机制:访问控制机制 31 | * 通用弱点评价系统 —— CVSS 32 | * **C**ommon **V**ulnerability **S**coring **S**ystem 33 | * 风险评估的基本原理与案例分析 34 | 35 | --- 36 | 37 | ## 本章内容提要 38 | 39 | * 操作系统简史 40 | * 数字标识理论 41 | * 访问控制理论 42 | * 风险评估理论与实践 43 | 44 | # 操作系统简史 45 | 46 | --- 47 | 48 | ## Windows 49 | 50 | ![](images/chap0x02/windows_operating_systems_history.png) 51 | 52 | --- 53 | 54 | ### Windows XP -- 稳定、易用且快速 55 | 56 | * ⚠️ 自动播放:U盘病毒肆虐的推手 57 | * ⚠️ 默认管理员账户 58 | * ✅ 用户权限模型改进:普通用户、管理员用户、受限管理员用户 59 | * ✅ 细粒度系统级安全策略用户自定义 60 | * ✅ 2005 年发布了免费公测版 `Windows Defender` ,专杀间谍软件和广告软件 61 | * ✅ 系统级自动更新:微软全家桶自动更新 62 | * ✅ 系统级防火墙 63 | 64 | --- 65 | 66 | ### Windows Vista -- 安全智能 67 | 68 | * ✅ 用户账户控制(UAC) 69 | * ✅ 内置 `Windows Defender` ,专杀间谍软件和广告软件 70 | * ✅ BitLocker:系统级文件系统加密 71 | 72 | --- 73 | 74 | ### Windows 7 75 | 76 | * ✅ 数据执行保护(DEP) 77 | * ✅ 系统级「地址随机化(ALSR)」对抗内存破坏类攻击 78 | * ✅ BitLocker 增强 79 | * ✅ 密码学算法更新(废弃掉大量已过期密码学算法) 80 | 81 | --- 82 | 83 | ### Windows 8 -- 移动化 84 | 85 | * ✅ 充分利用「硬件级别」安全机制 86 | * ✅ 系统级「应用容器」 87 | * 允许「低完整性等级」应用访问「中」、「高」级别系统对象 88 | 89 | --- 90 | 91 | ### Windows 10 92 | 93 | * ✅ 新增 `Windows Defender Credential Guard` 只允许「特权系统进程」访问账户相关敏感信息 94 | 95 | --- 96 | 97 | ### Windows 小结 {id="windows-summary"} 98 | 99 | * 安全性成为越来越重要的「系统级」、「原生」特性 100 | * 拥抱云计算 101 | * 从参与开源到主导开源 102 | 103 | # 数字标识理论 104 | 105 | --- 106 | 107 | ## 定义 108 | 109 | * 实体 110 | * Entity 111 | * 业务操作的发起者(主体)或对象(客体) 112 | * 标识 113 | * Identity 114 | * 对实体的数字化指代 115 | * 又可称为“数字标识” 116 | 117 | --- 118 | 119 | ## 数字标识的意义 120 | 121 | * 对信息安全相关实体建立标识体系是构建信息安全系统的基础⼯作之⼀ 122 | * 身份认证 123 | * 访问控制 124 | * 安全审计 125 | * ⽹络协议 126 | 127 | --- 128 | 129 | ## 常见的数字标识技术 130 | 131 | * 系统实体标识 132 | * 系统资源标识 133 | * 用户、组和角⾊标识 134 | * 与数字证书相关的标识 135 | * ⽹络实体标识 136 | * 主机、⽹络和连接标识 137 | * ⽹络资源标识 138 | * 连接及其状态标识 139 | 140 | --- 141 | 142 | ### 系统实体标识 143 | 144 | * 操作系统 145 | * ⽂件标识 146 | * ⽂件名和存储路径 147 | * 进程标识 148 | * 进程号:PID 149 | * 数据库系统 150 | * 数据表标识 151 | * 数据库名和表名 152 | 153 | --- 154 | 155 | ### 用户、组和角色标识 156 | 157 | * 用户 158 | * 用户号:UID 159 | * 用户组 160 | * 用户组号:GID 161 | * 角⾊标识 162 | * 特殊用户分组 163 | 164 | 165 | --- 166 | 167 | ## 与数字证书相关的标识 168 | 169 | * 数字证书用于绑定证书所有者情况及其公钥 170 | * 在数字签名和认证中用于向签名验证者或身份认证者提供这些信息 171 | * X.509证书 172 | * 基本信息 173 | * 辅助(扩展)信息 174 | * 数字证书通常由证书签发者对证书签名 175 | * 基于数字证书的标识具有抗篡改的特性 176 | 177 | --- 178 | 179 | ### X.509 证书基本信息 180 | 181 | [![](images/chap0x02/x509-github-1.png)](https://c4pr1c3.github.io/cuc-ns/chap0x02/main.html) 182 | 183 | --- 184 | 185 | ### X.509 证书扩展信息 186 | 187 | ![](images/chap0x02/x509-github-2.png) 188 | 189 | --- 190 | 191 | ## 主机、网络和连接标识 192 | 193 | * 主机标识 194 | * 数据链路层:MAC地址 195 | * 例如:08-00-27-07-DD-0A 196 | * ⽹络层:⽹络地址 197 | * 对于TCP/IP⽹络,即 `IP地址` 198 | * 应用层:域名地址 199 | 200 | --- 201 | 202 | ## 网络资源标识 203 | 204 | * 统⼀资源定位符(URL:Uniform Resources Locator) 205 | 206 | ![](images/chap0x02/URL.png) 207 | 208 | --- 209 | 210 | ## 连接及其状态标识 {id="con-state-id-1"} 211 | 212 | * 唯⼀标识⼀个⽹络(会话)连接:`IP 五元组` 213 | * 源 IP 地址 214 | * 目的 IP 地址 215 | * 源端⼝ 216 | * 目的端⼝ 217 | * 传输层协议类型 218 | 219 | --- 220 | 221 | ## 连接及其状态标识 {id="con-state-id-2"} 222 | 223 | * (会话)连接状态标识 224 | 225 | ![](images/chap0x02/tcp-state-machine.png) 226 | 227 | # 访问控制理论 228 | 229 | --- 230 | 231 | ![](images/chap0x02/acl-bypass.jpg) 232 | 233 | > 安全专家: “报告老板,通往停车场的道路已经被我们 封锁 了!绝对安全! 234 | 235 | --- 236 | 237 | ## 访问控制的基本概念 238 | 239 | --- 240 | 241 | ### 主体 242 | 243 | > 主动的实体,是访问的发起者,它造成了信息的流动和系统状态的改变,主体通常包括⼈、进程和设备等。 244 | 245 | --- 246 | 247 | ### 客体 248 | 249 | > 包含或接受信息的被动实体,客体在信息流动中的地位是被动的,客体通常包括⽂件、设备、信号量和⽹络节点等。 250 | 251 | --- 252 | 253 | ### 访问 254 | 255 | > 使信息在主体和客体之间流动的⼀种交互⽅式。 256 | 257 | --- 258 | 259 | ### 授权访问 260 | 261 | > 主体访问客体的允许,授权访问对每⼀对主体和客体来说是给定的 262 | 263 | --- 264 | 265 | ### 安全访问策略 266 | 267 | > ⼀套规则,可用于确定⼀个主体是否对客体拥有访问能⼒ 268 | 269 | > 主体对客体的操作⾏为集和约束条件集 270 | 271 | --- 272 | 273 | ### 访问控制三要素 274 | 275 | > 主体、客体、安全访问策略 276 | 277 | --- 278 | 279 | ## 访问控制的三个基本面 280 | 281 | * 认证 282 | * 身份认证:客体对主体的识别认证 283 | * 客体和主体的身份可以随着时间、应用场景⽽改变 284 | * 授权 285 | * 访问控制 **策略实现** 286 | * 授权主体对客体可以正常访问 287 | * 非授权主体对客体⽆法访问 288 | * 审计 289 | * 记录访问历史,实现 `不可抵赖性` 290 | 291 | --- 292 | 293 | ## 访问控制过程 294 | 295 | ![](images/chap0x02/AccessControlFlow.png) 296 | 297 | --- 298 | 299 | ## 访问控制策略 300 | 301 | * 自主访问控制 302 | * DAC: Discretionary Access Control 303 | * 强制访问控制 304 | * MAC: Mandatory Access Control 305 | * 基于角⾊的访问控制 306 | * RAC: Role-Based Access Control 307 | 308 | --- 309 | 310 | ### 自主访问控制 311 | 312 | * 已授权主体可以访问客体 313 | * 非授权主体⽆法访问客体 314 | * 访问授权可以自主分配( **授权** 和 **取消授权**) 315 | * 用户A可以访问⽂件a,则用户A可以授权用户B也能访问⽂件a 316 | 317 | --- 318 | 319 | ### 自主访问控制实现⽅式举例 320 | 321 | * 访问控制列表(ACL:Access Control List) 322 | * 访问控制矩阵 323 | * 面向过程的访问控制 324 | 325 | --- 326 | 327 | * 访问控制矩阵实例 328 | 329 | | | 文件A | 文件B | 进程A | 进程B | 330 | | :- | :- | :- | :- | :- | 331 | | 进程A | 读、写、属主 | 读 | 读、写、执行、属主 | 写 | 332 | | 进程B | 追加 | 写、属主 | 读 | 读、写、执行、属主 | 333 | 334 | > 属主:绝⼤多数现代操作系统,属主权限的拥有主体可以对所拥有的权限自⾏分配。 335 | 336 | --- 337 | 338 | ### 强制访问控制 339 | 340 | * (操作)系统对访问主体和受控对象(客体)实⾏强制访问控制 341 | * 多级访问控制策略 342 | * (操作)系统预先分配好主客体安全级别:安全标签 343 | * 主体访问客体时先进⾏安全级别属性比较,再决定访问主体能否访问该受控对象(客体) 344 | 345 | --- 346 | 347 | ![🌰 保密性:允许 **上写下读**](images/chap0x02/MAC-1.png) 348 | 349 | --- 350 | 351 | * 手机锁屏状态下的所有操作 352 | * ✅ 不解锁直接使用「照相机 📷 」功能: **上写** 行为被允许 353 | * ✅ 可以查看「此次解锁期间」拍的所有照片: **下读** 行为被允许 354 | * 🚫 非「此次解锁期间」的照片均被禁止查看: **上读** 行为被禁止 355 | * 生活中的 **上写下读** 356 | * 『校长信箱』允许所有人向其中投递(写)邮件,但仅限校长及其授权人才能查看(读) 357 | 358 | --- 359 | 360 | ### 小测试 🤔 361 | 362 | > 你的手机在锁屏状态下可以查看到「系统通知信息内容」吗?符合 **上写下读** 原则吗? 363 | 364 | --- 365 | 366 | ![🌰 完整性:允许 **上读下写**](images/chap0x02/MAC-2.png) 367 | 368 | --- 369 | 370 | * ✅ 操作系统安装「安全更新」只允许『特权进程』更改系统文件: **下写** 行为被允许 371 | * ✅ `/etc/passwd` 允许『所有用户』用户权限读取: **上读** 行为被允许 372 | * 🚫 `/etc/passwd` 只允许『管理员』用户权限修改: **上写** 行为被禁止 373 | 374 | --- 375 | 376 | ### 基于角色的访问控制 377 | 378 | * `强制访问控制` 模型的⼀种实现形式 379 | * 但不是基于多级访问控制策略的实现 380 | * 用户和访问权限的逻辑分离 381 | * 访问权限首先是与角⾊相关联 382 | * 然后角⾊再与用户关联 383 | * 从⽽完成基于角⾊的访问授权 384 | * 用户不能任意的将访问权限传递给其他用户 385 | * 和 `DAC` 的最基本区别 386 | 387 | --- 388 | 389 | ![基于角色的访问控制模型](images/chap0x02/RBAC.jpg) 390 | 391 | --- 392 | 393 | ## 访问控制机制 394 | 395 | --- 396 | 397 | ### 身份认证 398 | 399 | * 将身份标识唯一的绑定到主体 400 | * 外部实体能够向系统证明其身份标识唯一性的因素 401 | * 知道的(例如:口令或秘密信息) knows 402 | * 拥有的(例如:令牌或磁卡) has 403 | * 生物特征(例如:指纹、虹膜) is 404 | * 实体位置(例如:在特定终端上) where 405 | * 以上因素可以单一使用,也可以多个同时使用 406 | 407 | --- 408 | 409 | ### 访问授权 410 | 411 | * 授权类型 412 | * 授予(grant)权限 413 | * 拥有该权限的主体可以将所拥有的客体访问权限分配给其他主体 414 | * 属主(own)权限 415 | * 客体的创建者通常都会拥有属主权限,该权限可以由创建者自己授予他人 416 | * 权限的弱化原则 417 | * 主体无法将自己不具备的权限授予他人 418 | * 主体如果具有属主权限则不受上述原则约束 419 | 420 | --- 421 | 422 | ### 撤销访问授权 423 | 424 | * 为何需要撤销访问授权? 425 | * 认证凭据丢失/被盗 426 | * 人员变动(离职/岗位变动等) 427 | * 如何取消访问授权? 428 | * 身份认证环节:禁用/取消/删除认证凭据 429 | * 访问授权环节:禁用/取消/删除/修改访问控制列表中的授权项 430 | 431 | --- 432 | 433 | ## 访问审计 434 | 435 | * 内涵 436 | * 主体对客体的访问行为会被记录,用于安全责任追查和认定 437 | * 意义 438 | * 检测是否存在违反安全(访问控制)策略的行为 439 | * 重建安全事件 440 | * 手段 441 | * 日志 442 | 443 | --- 444 | 445 | ## 认证、授权和审计的关系 446 | 447 | ![](images/chap0x02/AccessControlFlow.png) 448 | 449 | # 通用安全漏洞评估系统(CVSS) 450 | 451 | --- 452 | 453 | ## 简介 454 | 455 | * 由 NIAC 开发、FIRST 维护的一个开放并且能够被各产品厂商免费采用的行业标准 456 | * 量化评价,总分取值范围:[0, 10] 457 | * 三组指标 458 | * 基本评估 459 | * 时效性评估 460 | * 环境评估 461 | 462 | --- 463 | 464 | ## 演进中的 CVSS {id="cvss-versions"} 465 | 466 | * 2019.6 [CVSS 3.1](https://www.first.org/cvss/v3.1/specification-document) 467 | * 2015.6 [CVSS 3.0](https://www.first.org/cvss/v3.0/specification-document) 468 | * 2007.6 [CVSS 2.0](https://www.first.org/cvss/v2/guide) 469 | 470 | --- 471 | 472 | ## 评估主体框架 473 | 474 | * `基础评估` 指标描述安全漏洞 **固有的**、根本性的属性,这些属性不随时间或用户具体环境的变化而改变 475 | * `时效性评估` 指标是指安全漏洞与 **时间相关** 的属性,这些属性可能随着时间的变化而变化 476 | * `环境评估` 指标在不同的用户的 **具体使用环境** 中,产品安全漏洞所造成危害程度也不同 477 | 478 | --- 479 | 480 | ## 基础评估 481 | 482 | * 入侵途径 2.0+ 483 | * 入侵复杂性 2.0+ 484 | * 身份认证要素 2.0 485 | * **是否需要(被攻击)用户交互** 3.0+ 486 | * **影响波及范围** 3.0+ 487 | * 信息机密性影响 2.0+ 488 | * 信息完整性影响 2.0+ 489 | * 服务持续性影响 2.0+ 490 | 491 | --- 492 | 493 | ### 基础评估指标的完善 494 | 495 | | | 2.0 | 3.0 | 496 | | :- | :- | :- | 497 | | AV | L,A,N | 新增 **P** | 498 | | AC | H,M,L | 移除 **M** | 499 | | CIA | N,P,C | **P**artial 变更为 **L**ow | 500 | 501 | --- 502 | 503 | ## 时效性评估 - 可利用性 {id="exploitability"} 504 | 505 | * 跳过评估 `Not Defined` / `E:X` 506 | * 不确定是否存在漏洞利用工具 `Unproven that exploit exists` / `E:U` 507 | * 存在漏洞存在性验证工具 `Proof of concept code` / `E:P` 508 | * 存在漏洞利用工具 `Functional exploit exists` / `E:F` 509 | * 存在自动化利用工具或无需特别利用工具且资料成熟 `High` / `E:H` 510 | 511 | --- 512 | 513 | ## 时效性评估 - 缓解措施级别 {id="remediation-level"} 514 | 515 | * 跳过评估 `Not Defined` / `E:X` 516 | * 存在官方补丁 `Official fix` / `RL:O` 517 | * 存在临时补丁 `Temporary fix` / `RL:T` 518 | * 存在缓解措施 `Workaround` / `RL:W` 519 | * 无补丁 `Unavailable` / `RL:U` 520 | 521 | --- 522 | 523 | ## 时效性评估 - 报告可信度 {id="report-confidence"} 524 | 525 | * 跳过评估 `Not Defined` / `E:X` 526 | * 未知 / 未确认 527 | * `Unknown` / `RC:U` 3.0+ 倾向于「半信半疑」 528 | * `Unconfirmed` / `RC:UC` 2.0 强调报告来源单一或不同来源报告可能存在「自相矛盾」,倾向于「不相信」 529 | * 部分确认 / 未经证实 530 | * `Reasonable` / `RC:R` 3.0+ 强调已经存在「部分可验证」,倾向于「相信」 531 | * `Uncorroborated` / `RC:UR` 2.0 强调漏洞报告来源是「小道消息」、可能不同来源的信息会「自相矛盾」,倾向于「不相信」 532 | * 已确认 `Confirmed` / `RC:C` 533 | 534 | --- 535 | 536 | ## 环境评估 3.0+ {id="environmental-score-metrics-3"} 537 | 538 | * 「基础评估指标」修正 539 | * 「影响力指标」修正 540 | * 「影响力子分数」修正:资产对特定影响力的风险承受能力匹配 541 | 542 | --- 543 | 544 | ## 环境评估 2.0 {id="environmental-score-metrics-2"} 545 | 546 | * 「通用」修正 547 | * 综合损失估计:跳过评估、无影响、 548 | * (受影响)目标分布 549 | * 「影响力子分数」修正 550 | 551 | --- 552 | 553 | ## 总体评估原则 554 | 555 | 1. 每个安全漏洞都必须单独评估 ,不得考虑与其他安全漏洞的交叉影响 556 | 2. 只考虑每个安全漏洞的直接影响 ,不考虑其他间接影响 557 | 3. 应该按照通常使用的权限 来评估安全漏洞的影响 558 | * 假设客户端应用使用的是根用户权限,而 Web 应用则假设使用的是普通用户权限 559 | 4. 当安全漏洞有很多种入侵途径时,应该能造成最大伤害的入侵途径为依据 560 | 561 | --- 562 | 563 | ## 从「定量」到「定性」 564 | 565 | | 2.0 | 基础分范围 | 3.0 | 基础分范围 | 566 | | :-: | :-: | :-: | :-: | 567 | | | | None | 0.0 | 568 | | Low | 0.0-3.9 | Low | 0.1-3.9 | 569 | | Medium | 4.0-6.9 | Medium | 4.0-6.9 | 570 | | High | 7.0-10.0 | High | **7.0-8.9** | 571 | | | | Critical | 9.0-10.0 | 572 | 573 | --- 574 | 575 | ## CVSS 2.0 VS. CVSS 3.0+ 🌰 {id="cve-2014-6271-demo-1"} 576 | 577 | ![](images/chap0x02/cve-2014-6271-2vs3.png) 578 | 579 | --- 580 | 581 | ## CVSS 2.0 VS. CVSS 3.0+ 🌰 {id="cve-2014-6271-demo-2"} 582 | 583 | * [CVE-2014-6271 的 CVSS 3.0/3.1 评分详情](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2014-6271&vector=AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.1) 584 | * [CVE-2014-6271 的 CVSS 2.0 评分详情](https://nvd.nist.gov/vuln-metrics/cvss/v2-calculator?name=CVE-2014-6271&vector=(AV:N/AC:L/Au:N/C:C/I:C/A:C)&version=2.0) 585 | 586 | --- 587 | 588 | ## CVSS 的局限性和不足 {id="cvss-flaws"} 589 | 590 | 1. 每个安全漏洞都必须 **单独评估** ,不得考虑与其他安全漏洞的交叉影响 591 | 2. 只考虑每个安全漏洞的 **直接影响** ,不考虑其他间接影响 592 | 3. 当安全漏洞有很多种入侵途径时,应该能造成 **最大伤害的入侵途径** 为依据 593 | 4. 时效性指标,由于攻防信息的天然不对称性,守方通常倾向于低估漏洞危害 594 | * 基于客观事实的主观评价打分 595 | 5. 环境指标依赖于安全团队水平:对本方网络与系统的认知水平偏差 596 | 6. 高危漏洞的修复方式难度和低危漏洞修复方式难度并没有直接的可比性 597 | 598 | --- 599 | 600 | ## CVSS 的应用 {id="cvss-howto"} 601 | 602 | * 管理层重视漏洞管理 603 | * 漏洞管理工作流程化、制度化、日常化,并有专门的部门和人员负责实施与检查 604 | * 建立高效、准确、更新及时的资产清单管理系统 605 | * 推进标准化和自动化配置 IT 资产 606 | 607 | 608 | # 课后思考题 609 | 610 | --- 611 | 612 | 1. 生物特征身份认证方式有哪些?优缺点分析?应用场景举例。 613 | 2. “找回口令功能”和“忘记密码”在访问授权机制中的意义?请尝试设计几种安全的“找回口令功能”,详细描述找回口令的用户具体操作过程。 614 | 3. 绘制用户使用用户名/口令+图片验证码方式录系统的流程图。考虑认证成功和失败两种场景,考虑授权成功和失败两种场景。 615 | 4. Windows XP / 7 中的访问控制策略有哪些?访问控制机制有哪些? 616 | 5. 用权限三角形模型来理解并描述下 2 种威胁模型:提权、仿冒。 617 | 618 | --- 619 | 620 | 6. 试通过操作系统的访问控制机制来达到预防一种真实病毒的运行目的。 621 | 7. 什么是 OAuth? 622 | 8. 什么是 OpenID? 623 | 9. 试用本章所学理论分析 0Auth 和 OpenID 的区别与联系。 624 | 10. 如何使用 OAuth 和 OpenID 相关技术实现单点登录(Single Sign On)? 625 | 626 | -------------------------------------------------------------------------------- /chap0x03-slim.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "网络安全" 3 | author: 黄玮 4 | output: revealjs::revealjs_presentation 5 | --- 6 | 7 | # 第三章 网络安全应用基础 8 | 9 | --- 10 | 11 | ## 温故 12 | 13 | * TCP/IP网络分层模型 14 | * 安全三要素: CIA 15 | * 私有地址 16 | * 公有地址 17 | * 数字标识 18 | * 网络标识 19 | * 主机标识 20 | 21 | --- 22 | 23 | ## 知新 24 | 25 | * IP地址不能作为确认攻击者身份的唯一标识 26 | * 源和目的地址都是私有地址的数据包也能在“公网”上传输 27 | * 代理服务的实现形式多种多样 28 | * 公开协议 29 | * 私有协议 30 | 31 | --- 32 | 33 | ## 本章内容提要 34 | 35 | * 常见代理服务 36 | * HTTP代理 37 | * 虚拟专用网(VPN) 38 | * SOCKS代理 39 | * 高级代理服务 40 | * 代理服务的检测 41 | 42 | # 经典代理服务模型 43 | 44 | --- 45 | 46 | ![经典代理服务模型](images/chap0x03/proxy-model.png) 47 | 48 | --- 49 | 50 | * 代理服务器同时扮演服务器和客户端两种角色 51 | * 代理服务器是客户与服务器关系的 中间人 52 | * 「缓存」作为可选组件是常见的「安全风险点」 53 | 54 | --- 55 | 56 | ## 网络代理的基本类型 57 | 58 | * **正向** 代理 59 | * 转发代理,最常见 60 | * 开放代理 61 | * 互联网上人人可访问的 `转发代理` 62 | * **反向** 代理 63 | * 将客户端请求转发给后端服务器集群中的某个节点处理并返回处理结果给客户端 64 | 65 | --- 66 | 67 | ## 正向代理的应用场景 68 | 69 | * 过滤 70 | * 内容过滤 71 | * 缓存 72 | * 绕过内容过滤和网络审查 73 | * 日志和嗅探 74 | * 私有网络的网关 75 | * 匿名服务访问 76 | 77 | --- 78 | 79 | ## 反向代理的应用场景 80 | 81 | * 提升加密链接性能 82 | * 负载均衡 83 | * 静态内容缓存 84 | * 压缩(代理) 85 | * 适配低网速客户端 86 | * 安全网关 87 | * 外网发布 88 | 89 | --- 90 | 91 | ## 网络代理的应用 —— 亦正亦邪 {id="proxy-apps-1"} 92 | 93 | * ✅ 加密通信数据* 94 | * 防止通信数据被窃听和篡改(机密性和完整性保护) 95 | * ⛑ 审查网络通信数据* 96 | * 恶意流量检测和过滤 97 | * 失泄密行为发现和阻止 98 | * 💡 改变网络拓扑结构* 99 | * 跨局域网/异构网络通信 100 | 101 | > `* 视具体代理服务实现技术而定` 102 | 103 | --- 104 | 105 | ### ⛑ 审查网络通信数据 106 | 107 | * 用户隐私 🆚 网络与系统安全 108 | 109 | --- 110 | 111 | ## 网络代理的应用 —— 亦正亦邪 {id="proxy-apps-2"} 112 | 113 | * ⚠️ 隐藏来源 IP 114 | * ⚠️ 绕过网络安全审查/检测机制 115 | 116 | > 威胁网络安全检测、监测、审计机制 117 | 118 | --- 119 | 120 | 网络安全的 对抗 本质在「代理技术」的应用中体现地淋漓尽致。 121 | 122 | # HTTP 代理 {id="http-proxy"} 123 | 124 | --- 125 | 126 | ## 回顾 HTTP {id="http-review-1"} 127 | 128 | * RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1 129 | * RFC 2617: HTTP Authentication: Basic and Digest Access Authentication 130 | * RFC 2818: HTTP Over TLS 131 | * RFC 6265: HTTP State Management Mechanism 132 | * RFC 2145 : Use and Interpretation of HTTP Version Numbers - Informational 133 | * MIME相关RFC 134 | * RFC 2045, RFC 2046, RFC 2047, RFC 4288, RFC 4289, RFC 2049 135 | 136 | --- 137 | 138 | ## 回顾 HTTP {id="http-review-2"} 139 | 140 | * HTTP (会话)基本过程 141 | * 建立连接(连接准备、连接) 142 | * 客户端发送请求 / 服务器发送响应 143 | * 关闭连接 144 | 145 | --- 146 | 147 | ## HTTP 代理类型 {id="http-proxy-types"} 148 | 149 | * 正向代理 150 | * 通常意义上的“代理” 151 | * 改变通信数据内容* 152 | * 反向代理 153 | * 面向用户完全透明 154 | * 对通信内容无修改* 155 | 156 | > `* 和HTTP 代理的工作模式有关 157 | 158 | --- 159 | 160 | ### 不同浏览器的(正向)代理设置方法 161 | 162 | > <浏览器名称> 设置代理 163 | 164 | ![](images/chap0x03/proxy-setup-chrome-example.png) 165 | 166 | --- 167 | 168 | ### 浏览器代理设置的常见陷阱 {id="proxy-setup-pitfalls-1"} 169 | 170 | ![](images/chap0x03/proxy-setup-firefox-options-1.png) 171 | 172 | --- 173 | 174 | #### 浏览器输入URL 后发生了什么 {id="what-happened-after-url-typedin-1"} 175 | 176 | ![精简版浏览器访问 Web 站点流程图](images/chap0x03/what-happened-after-url-typedin.png) 177 | 178 | --- 179 | 180 | ### 浏览器代理设置的常见陷阱 {id="proxy-setup-pitfalls-2"} 181 | 182 | ![](images/chap0x03/proxy-setup-firefox-options-2.png) 183 | 184 | --- 185 | 186 | #### 浏览器输入URL 后发生了什么 {id="what-happened-after-url-typedin-2"} 187 | 188 | ![代理模式的访问流程简图](images/chap0x03/what-happened-after-url-typedin-proxy-mode.png) 189 | 190 | --- 191 | 192 | * 如果 DNS 解析的结果「被污染」? 193 | * 如果 `代理服务器` 审查用户的 `访问请求` 和服务器 `响应内容` ? 194 | 195 | --- 196 | 197 | ## HTTP 代理的主要用途 198 | 199 | * 访问受限制的Web站点 200 | * 限制机制:根据客户端来源IP过滤 201 | * 优化Web站点访问速度 202 | * 预先缓存客户端要访问的数据 203 | * 内容审查 204 | * 发现恶意内容并加以过滤阻止 205 | 206 | --- 207 | 208 | ## HTTP 代理的工作模式 209 | 210 | * `X-Forwarded-For` (XFF) 211 | * 非 RFC 标准定义 212 | * Squid 代理的开发人员最早引入该 HTTP 消息头 213 | * 标识客户端真实IP 214 | * `X-Forwarded-For: client1, proxy1, proxy2` 215 | * 匿名代理 216 | * 不提供 `X-Forwarded-For` 字段 217 | * 非匿名代理 218 | * 提供 `X-Forwarded-For` 字段 219 | 220 | --- 221 | 222 | ### 实际应用中的 HTTP 代理类型 223 | 224 | | | REMOTE_ADDR | HTTP_VIA | HTTP_X_FORWARDED_FOR | 225 | | :- | :- | :- | :- | 226 | | 透明代理 | 最后一个代理服务器IP | 代理服务器IP或内部代理别名 | 客户端真实IP,或(经过多个代理时)遵循XFF标准 | 227 | | 普通匿名 | 最后一个代理服务器IP | 代理服务器IP或内部代理别名 | 部分遵循XFF标准(隐藏客户端真实IP) | 228 | | 欺骗代理 | 代理服务器IP | 代理服务器IP或内部代理别名 | 伪造经过的代理服务器IP列表 | 229 | | 高匿名代理 | 代理服务器IP | 无数值或不显示 | 无数值或不显示 | 230 | 231 | > [$_SERVER in PHP](https://www.php.net/manual/en/reserved.variables.server.php) 232 | 233 | --- 234 | 235 | ### 代理地址实例 236 | 237 | ![](images/chap0x03/proxy-server-examples.png) 238 | 239 | --- 240 | 241 | ### 本地代理模拟小实验 242 | 243 | ```php 244 | // proxy.php 245 | 260 | # string(9) "127.0.0.1" 261 | # ["HTTP_X_FORWARDED_FOR"]=> 262 | # string(7) "8.8.8.8" 263 | # } 264 | ``` 265 | 266 | --- 267 | 268 | ## HTTP 反向代理 {id="reverse-http-proxy"} 269 | 270 | ![](images/chap0x03/reverse-http-proxy.png) 271 | 272 | --- 273 | 274 | ### HTTP 反向代理主要用途 {id="reverse-http-proxy-usage"} 275 | 276 | * 内网对外服务的堡垒主机 277 | * 负载均衡 278 | * 缓冲 279 | * 内容小偷网站 280 | * 黑帽SEO 281 | 282 | # HTTP 正向代理实验 {id="http-proxy-exp"} 283 | 284 | --- 285 | 286 | ## 必备理论知识 287 | 288 | * **H**TTP **S**trict **T**ransport **S**ecurity 289 | * `HSTS` 强制客户端和服务器之间的所有通信流量必须使用 HTTPS 290 | * `HSTS` 的实现强烈依赖于「客户端」支持 291 | * 内置 `HSTS` 站点名单 292 | * 首次访问后按照服务器约定,在浏览器本地存储 293 | 294 | --- 295 | 296 | ### HSTS 的浏览器支持情况汇总 {id="hsts-compatibility-check-matrix"} 297 | 298 | [![](images/chap0x03/hsts-browser-support.png)](https://caniuse.com/#feat=stricttransportsecurity) 299 | 300 | --- 301 | 302 | ### 以 Google Chrome 浏览器为例 303 | 304 | [chrome://net-internals/#hsts](chrome://net-internals/#hsts) 305 | 306 | ![](images/chap0x03/hsts-in-chrome.png) 307 | 308 | > auth.alipay.com 只有访问一次才能被「记忆」 309 | 310 | * [Chromium 内置 HSTS 站点列表](https://www.chromium.org/hsts/) 311 | 312 | --- 313 | 314 | ## 实验环境 315 | 316 | * Kali Rolling 317 | * [tinyproxy](https://tinyproxy.github.io/) 318 | * wireshark 319 | * [burpsuite](https://portswigger.net/burp) (课后实验用) 320 | 321 | --- 322 | 323 | ## 主要操作步骤 324 | 325 | ```bash 326 | # 安装 tinyproxy 327 | apt update && apt install tinyproxy 328 | 329 | # 启动 tinyproxy 330 | systemctl start tinyproxy 331 | 332 | # 访问前述 proxy.php 333 | curl -x http://127.0.0.1:8888 http://127.0.0.1:8080/proxy.php 334 | # array(19) { 335 | # ["REMOTE_ADDR"]=> 336 | # string(9) "127.0.0.1" 337 | # ["HTTP_HOST"]=> 338 | # string(14) "127.0.0.1:8080" 339 | # ["HTTP_VIA"]=> 340 | # string(32) "1.1 tinyproxy (tinyproxy/1.10.0)" 341 | # } 342 | 343 | # 在客户端请求头中加入客户端真实 IP 344 | sed -i.bak "s/#XTinyproxy Yes/XTinyproxy Yes/" /etc/tinyproxy/tinyproxy.conf 345 | 346 | # 重启 tinyproxy 服务 347 | systemctl restart tinyproxy 348 | 349 | # 在独立 shell 窗口开启 tinyproxy 日志监控小程序 350 | tail -F /var/log/tinyproxy/tinyproxy.log 351 | 352 | # 访问 HTTPS 站点 353 | curl -x http://127.0.0.1:8888 https://auth.alipay.com/login/index.htm 354 | 355 | # 查看 356 | # CONNECT Jul 06 17:17:15 [7672]: Connect (file descriptor 7): localhost [127.0.0.1] 357 | # CONNECT Jul 06 17:17:15 [7672]: Request (file descriptor 7): CONNECT auth.alipay.com:443 HTTP/1.1 358 | # INFO Jul 06 17:17:15 [7672]: No upstream proxy for auth.alipay.com 359 | # INFO Jul 06 17:17:15 [7672]: opensock: opening connection to auth.alipay.com:443 360 | # INFO Jul 06 17:17:15 [7672]: opensock: getaddrinfo returned for auth.alipay.com:443 361 | # CONNECT Jul 06 17:17:15 [7672]: Established connection to host "auth.alipay.com" using file descriptor 8. 362 | # INFO Jul 06 17:17:15 [7672]: Not sending client headers to remote machine 363 | # INFO Jul 06 17:17:15 [7672]: Closed connection between local client (fd:7) and remote client (fd:8) 364 | 365 | # 查看 HSTS 响应头 366 | curl -I -x http://127.0.0.1:8888 https://auth.alipay.com/login/index.htm 367 | # HTTP/1.0 200 Connection established 368 | # Proxy-agent: tinyproxy/1.10.0 369 | # 370 | # HTTP/2 302 371 | # server: nginx/1.6.2 372 | # date: Mon, 06 Jul 2020 09:19:07 GMT 373 | # content-length: 0 374 | # location: https://authsa127.alipay.com:443/error.htm?exception_marking=the+requestMethod+%5BHEAD%5D+is+not+supported+by+handlers%2Cyou+can+try+with+%5BGET%2CPOST%5D%21&messageCode=common.uncaughtException 375 | # set-cookie: zone=RZ54A; Domain=.alipay.com; Path=/ 376 | # strict-transport-security: max-age=31536000 377 | # set-cookie: JSESSIONID=05BCA44886FEE4B2C3368F9167D55C83; Path=/; HttpOnly 378 | # set-cookie: JSESSIONID=05BCA44886FEE4B2C3368F9167D55C83; Path=; HttpOnly 379 | # set-cookie: ALIPAYJSESSIONID=RZ54drLXXabsSYlmZr5T8qeGb1zCKyauthRZ54; Domain=.alipay.com; Path=/ 380 | # set-cookie: ctoken=UH5ZAmhY7PZUtB7I; Domain=.alipay.com; Path=/ 381 | # content-language: zh-CN 382 | # set-cookie: spanner=8YfCP1RF/xNEmob8naEHjZVRrhGwKYJXXt2T4qEYgj0=;path=/;secure; 383 | # via: spanner-internet-5405.sa127[302] 384 | ``` 385 | 386 | --- 387 | 388 | ## 课后实验 389 | 390 | * [详见课本中本章实验](https://c4pr1c3.github.io/cuc-ns/chap0x03/exp.html) 391 | 392 | # SOCKS 代理 393 | 394 | --- 395 | 396 | ![SOCKS 代理基本原理](images/chap0x03/socks-proxy.png) 397 | 398 | --- 399 | 400 | ## SOCKS 代理的应用 {id="socks-proxy-usage"} 401 | 402 | * 电子邮件 403 | * 新闻组软件 404 | * 网络传呼 405 | * 网络聊天 406 | * 使用代理服务器「联网」打游戏 407 | 408 | --- 409 | 410 | ## 实战体验 411 | 412 | ```bash 413 | # 建立宿主机到虚拟机的 SSH 隧道(socks5 代理) 414 | # 推荐使用 Host-only 网卡对应的 VM IP 作为目标 IP 415 | ssh -D 127.0.0.1:1080 cuc@192.168.56.136 -q -C -N -v 416 | 417 | # 使用上述建立的 SSH 隧道访问虚拟机内的「本地网页」 418 | curl http://127.0.0.1:8080/proxy.php -x socks5://127.0.0.1:1080 419 | 420 | # 使用远程服务器完成 DNS 解析请求 421 | curl http://127.0.0.1:8080/proxy.php -x socks5://127.0.0.1:1080 --socks5-hostname 127.0.0.1:1080 422 | 423 | # 自行抓包研究通信过程 424 | # TODO 是否存在「可辨识」的「网页访问」行为痕迹? 425 | 426 | # 查看 PHP 终端日志 427 | # TODO 访问来源 IP 是「宿主机」IP 吗? 428 | ``` 429 | 430 | --- 431 | 432 | ## 常见代理服务小结 433 | 434 | * 使用开放代理要谨慎 435 | * 避免敏感数据被嗅探 436 | * 避免重要数据被篡改 437 | * 一般情况下的代理安全性排序 438 | * VPN ≥ Socks代理 > HTTP代理 439 | 440 | # 代理服务的检测 441 | 442 | --- 443 | 444 | ## 检测需求 445 | 446 | * 网络流量计费 447 | * 避免计费误差和损失 448 | * 网络安全审计 449 | * 打击网络攻击源头 450 | * 网络滥用 451 | * 打击网络滥用源头 452 | 453 | --- 454 | 455 | ## 检测手段 456 | 457 | * 静态特征 458 | * 协议关键字 459 | * 动态特征 460 | * 流量统计特征 461 | 462 | --- 463 | 464 | ### 静态特征检测 465 | 466 | * 端口扫描 467 | * 协议字段变量特征 468 | * 网络数据报文 469 | * 头部字段 470 | * 负载数据 471 | 472 | --- 473 | 474 | ### 端口扫描检测方式 475 | 476 | * 端口扫描方式主要适用于对代理服务器的检测 477 | * 代理服务器一般最为常用的端口有8080/3218等,可以通过扫描这些端口获得 478 | * 对于采用非常用端口的代理服务器,端口扫描方式的效率低,准确性也差 479 | 480 | --- 481 | 482 | ### 变量特征 483 | 484 | * HTTP 代理常见的变量特征: 485 | * VIA 486 | * X-FORWARDED-FOR 487 | * CACHE-CONTROL 488 | * FORWAREDED 489 | * PROXY-CONNECTION 490 | 491 | --- 492 | 493 | ### 动态特征 494 | 495 | * 协议行为特征(照搬「对匿名通信系统」的攻击) 496 | * 流量形状攻击 497 | * 通信模式攻击 498 | * 消息频度攻击 499 | * 报文计数攻击 500 | * 交集攻击 501 | * 重放攻击 502 | * 刷新攻击 503 | * 时间攻击 504 | 505 | --- 506 | 507 | ## 代理服务检测 508 | 509 | * 设置浏览器使用HTTP代理 510 | * 伪造HTTP请求头 511 | * X-Forwarded-For 设置单个、多个IP地址 512 | * X-Forwarded-For 设置任意字符 513 | 514 | --- 515 | 516 | ![顺着网线找到你](images/chap0x03/browser-fingerprinting.png) 517 | 518 | --- 519 | 520 | ![](images/chap0x03/tor-detection.png) 521 | 522 | * 代理检测方法的效果取决于检测方所拥有的资源多少、权限大小 523 | * 主机、交换机、路由器、核心网交换机、ISP路由器。。。 524 | * 主机监控软件、网络嗅探、网络篡改。。。 525 | 526 | --- 527 | 528 | ![无对抗不安全](images/chap0x03/cyber-security-internals.png) 529 | 530 | # 课后思考题 531 | 532 | --- 533 | 534 | * 代理技术在网络攻防中的意义? 535 | * 对攻方的意义? 536 | * 对守方的意义? 537 | * 常规代理技术和高级代理技术的设计思想区别与联系? 538 | 539 | -------------------------------------------------------------------------------- /chap0x04.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "网络安全" 3 | author: 黄玮 4 | output: revealjs::revealjs_presentation 5 | --- 6 | 7 | # 第四章 网络监听 8 | 9 | --- 10 | 11 | ## 温故 12 | 13 | * 代理模型中的嗅探问题 14 | * 所有通信数据都会经过代理服务器 15 | * 网络数据包嗅探工具 16 | * Wireshark工具的高级使用 17 | * 协议分析 / 网络故障诊断 18 | 19 | --- 20 | 21 | ## 知新 22 | 23 | * 交换式网络环境依然可以网络监听 24 | * 网络监听是通信内容机密性的大敌 25 | * 如何抓出局域网中的嗅探者 26 | * 如何防范网络监听 27 | 28 | # 网络监听原理 29 | 30 | --- 31 | 32 | * 被动监听 33 | * 共享式网络环境 34 | * 交换式网络环境 35 | * 主动监听 36 | * 数据链路层的漏洞利用 37 | * ARP欺骗 38 | 39 | --- 40 | 41 | ## 共享式网络环境 42 | 43 | * IEEE 802.3以太局域网采用广播机制 44 | * 局域网上的所有主机共享相同的通信链路 45 | * 单个主机的标识 46 | * MAC(Media Access Control)地址 47 | * 网卡检查接收到的数据包的目的地址 48 | * 正常状态下的网卡操作 49 | * 只接收目的MAC地址是自己的数据包,其他数据包丢弃 50 | * 混杂模式 51 | * 不检查目的 MAC 地址,来者不拒 52 | 53 | --- 54 | 55 | > 完全被动的嗅探,很难发现嗅探者 56 | 57 | --- 58 | 59 | ![共享式网络环境中的嗅探](images/chap0x04/sniff-with-hub.gif) 60 | 61 | --- 62 | 63 | ## 交换式网络环境 64 | 65 | * 交换机的 `CAM` 表 66 | * `Content Addressable Memory` 67 | * 存储局域网中每台计算机的 MAC 地址 68 | * MAC 地址关联存储到网卡所连接的交换机端口号 69 | * 数据包转发基于 `CAM` 表查找,不再广播 70 | 71 | --- 72 | 73 | ![交换式网络环境中的嗅探](images/chap0x04/sniff-with-switch.gif) 74 | 75 | --- 76 | 77 | **交换式网络环境就没有被嗅探的可能了吗?** 78 | 79 | --- 80 | 81 | > 主动监听! 82 | 83 | # 主动监听 84 | 85 | --- 86 | 87 | ## 主动监听的原理 88 | 89 | * 数据链路层的漏洞利用 90 | * ARP欺骗的三种模式 91 | * 终端ARP缓存投毒 92 | * 主动嗅探/中间人攻击 93 | * 交换机 `DoS` 94 | * 强制交换机进入 `Hub` 模式:广播 95 | * 交换机投毒 96 | * 主动 **污染** 交换机的 `MAC-Port` 转发表 97 | * `Content Addressable Memory (CAM)` 98 | 99 | --- 100 | 101 | ### 温故:ARP {id="arp-review"} 102 | 103 | * `ARP`: `Address Resolution Protocol` 104 | * 地址解析协议 105 | * 主机在发送帧前将 `目标 IP 地址` 转换成 `目标 MAC 地址` 的过程 106 | * 局域网中的主机间通信依赖于 `ARP` 找到目标主机 107 | * 局域网中的主机访问外网依赖于 `ARP` 找到网关 108 | * ARP表 109 | * 动态学习 110 | * 静态配置 111 | 112 | --- 113 | 114 | ![ARP 地址表示例](images/chap0x04/arp-table.png) 115 | 116 | --- 117 | 118 | ![](images/chap0x04/arp-req-resp-example.png) 119 | 120 | * `who has 222.31.66.220? Tell 222.31.66.224` ARP 请求 121 | * 提问 122 | * `222.31.66.220 is at 00:16:17:ad:e9:18` ARP 响应 123 | * 举手 124 | 125 | --- 126 | 127 | ### 温故:GARP {id="garp-review"} 128 | 129 | * `Gratuitous ARP (GARP)` 130 | * 无故 ARP 131 | * 检查重复地址或 IP 地址冲突(如果收到 ARP 响应则表明存在重复地址或 IP 地址冲突) 132 | * 用于通告一个新的数据链路标识 133 | * 当一个设备收到一个 `arp 请求` 时,发现 `arp 查找表` 中已有发送者的 IP 地址,则更新此 IP 地址对应的 MAC 地址条目 134 | 135 | --- 136 | 137 | ![GARP 过程示意](images/chap0x04/garp-demo.gif) 138 | 139 | --- 140 | 141 | ![终端 ARP 投毒:劫持 A -> C 通信](images/chap0x04/arp-from-a2c.gif) 142 | 143 | --- 144 | 145 | ![终端 ARP 投毒:劫持 C -> A 通信](images/chap0x04/arp-from-c2a.gif) 146 | 147 | --- 148 | 149 | ![针对交换机的 DoS 攻击/泛洪/洪泛](images/chap0x04/dos-switch.gif) 150 | 151 | --- 152 | 153 | ![交换机投毒](images/chap0x04/poison-switch-cam.gif) 154 | 155 | # 网络监听工具 156 | 157 | --- 158 | 159 | ## Wireshark 简介 {id="wireshark-intro-1"} 160 | 161 | Wireshark是网络包分析工具,前身是Ethereal,主要用来捕获网络包,具有以下特性 162 | 163 | * 多平台支持:Win / Mac / *nix 164 | * 实时捕获网络数据包 165 | * 详细显示数据包的协议信息 166 | * 读取/保存数据包 167 | * 支持基于规则的数据包/协议统计分析 168 | * 支持多种方式过滤捕获/显示网络数据包 169 | * 导入/导出其他网络嗅探程序支持的数据包格式 170 | * 多种方式查找包 171 | 172 | --- 173 | 174 | ## Wireshark 简介 {id="wireshark-intro-2"} 175 | 176 | ![](images/chap0x04/wireshark.png) 177 | 178 | --- 179 | 180 | ## 命令行版 Wireshark 的基本使用 {id="tshark"} 181 | 182 | ```bash 183 | # 捕获指定IP地址相关的数据包并保存到文件 184 | sudo tshark -f "host " -w 185 | 186 | # 获取当前系统上所有可捕获的网卡ID 187 | sudo tshark -D 188 | 189 | # 指定数据包捕获所使用的网卡 190 | sudo tshark –I 191 | ``` 192 | 193 | --- 194 | 195 | ## 不可思议的 Wireshark 功能 {id="wireshark-feature-1"} 196 | 197 | 大流量数据捕获优化 198 | 199 | * 非实时更新报文窗口 200 | * 文件切割保存 201 | * 禁用MAC地址/域名/协议类型反向解析 202 | * 自定义数据包捕获终结条件 203 | * 按报文个数 / 大小 / 捕获时间 204 | 205 | --- 206 | 207 | ## 不可思议的 Wireshark 功能 {id="wireshark-feature-2"} 208 | 209 | 自定义过滤规则 210 | 211 | * 数据包捕获时过滤规则——大流量数据捕获优化 212 | * 报文显示时过滤规则——协议分析辅助 213 | 214 | --- 215 | 216 | ## 不可思议的 Wireshark 功能 {id="wireshark-feature-3"} 217 | 218 | 网络状况分析 219 | 220 | * 网络质量参数分析 221 | * 按协议分类报文速率 222 | * 丢包率/重传报文数/畸形包数量 223 | * TCP QoS参数 224 | * RTT / 带宽 / 时序图 225 | 226 | --- 227 | 228 | ## 不可思议的 Wireshark 功能 {id="wireshark-feature-4"} 229 | 230 | 一键导出防火墙规则 231 | 232 | * Cisco IOS / iptables /windows firewall / IPFirewall 233 | 234 | --- 235 | 236 | ## 不可思议的 Wireshark 功能 {id="wireshark-feature-5"} 237 | 238 | 协议分析神器 239 | 240 | * TCP/UDP会话跟踪 241 | * Follow TCP/UDP Stream 242 | * VoIP协议分析 243 | * 信令 / 语音数据自动识别和提取 244 | * 应用层负载数据关键词检索 245 | * 二进制 / 十六进制 / 文本 246 | * 一键导出保存应用层负载到 247 | * 文本 / 二进制原始数据 / 十六进制 / C语言数组 248 | * 报文统计规律 249 | * 按报文长度 / 按协议分层会话 / 自定义报文显示过滤 250 | 251 | --- 252 | 253 | ## 常用报文「捕获」过滤规则举例 {id="wirehsark-capture-filter"} 254 | 255 | ```bash 256 | # 只捕获IP地址为172.18.5.4的相关报文 257 | tshark -f "host 172.18.5.4" 258 | 259 | # 只捕获指定网段的相关报文 260 | tshark -f "net 192.168.0.0/24" 261 | 262 | # 只捕获特定端口流量 263 | tshark -f "port 53 or port 80" 264 | 265 | # 只捕获指定端口范围的TCP报文 266 | tshark -f "tcp portrange 1501-1549" 267 | ``` 268 | 269 | --- 270 | 271 | ## 常用报文「显示」过滤规则举例 {id="wireshark-display-filter"} 272 | 273 | ```bash 274 | # 只显示SMTP和ICMP相关报文 275 | tshark -r sample.pcap "tcp.port eq 25 or icmp" 276 | 277 | # 只匹配显示UDP报文头部或负载的连续3字节值为0x81, 0x60, 0x03 278 | tshark -r sample.pcap "udp contains 81:60:03" 279 | 280 | # 应用层正则式匹配查找 281 | tshark -r sample.pcap 'sip.To contains "^a1762$"' 282 | tshark -r sample.pcap 'http.request.uri matches "^id=[\d]*"' 283 | ``` 284 | 285 | --- 286 | 287 | ## 协议分析样本资源 288 | 289 | * [Wireshark官方的报文样本库](http://wiki.wireshark.org/SampleCaptures) 290 | * [Web 2.0 Packet Samples](http://pcapr.net) 291 | 292 | --- 293 | 294 | > 网络流量分析 Show Time 295 | 296 | --- 297 | 298 | ## 被动监听小结 299 | 300 | * 网络管理 301 | * 网络质量监视 302 | * 网络故障排查 303 | * 网络协议分析 304 | * 已知协议的自动化分析辅助 305 | * 未知协议的逆向分析辅助 306 | * 一般方法 307 | * 应用命令行版数据捕获工具完成报文捕获 308 | * 使用 GUI 工具深入分析捕获的报文 309 | 310 | # 一道二术三器 311 | 312 | --- 313 | 314 | ![](images/chap0x04/awesome-mitm.png) 315 | 316 | --- 317 | 318 | * 不变之「道」:持续对抗 319 | * 演进之「术」:中间人攻击 320 | * 走马灯「器」:dsniff, ettercap, mitmf, bettercap, …… 321 | 322 | # 网络监听的检测与防范 323 | 324 | --- 325 | 326 | ## 回顾:网络监听的方法 327 | 328 | * 被动监听 329 | * 共享式网络环境 330 | * 交换式网络环境 331 | * 主动监听 332 | * 终端 ARP 缓存投毒 333 | * 交换机 DoS 334 | * 交换机投毒 335 | 336 | --- 337 | 338 | ![局域网监听方法推广到互联网范围](images/chap0x04/generalize-mitm.gif) 339 | 340 | --- 341 | 342 | ![小心被监听或劫持的「寻址协议」](images/chap0x04/mitm-all-stack.png) 343 | 344 | --- 345 | 346 | ![小心被毒化的「查找表」](images/chap0x04/mitm-all-tables.png) 347 | 348 | --- 349 | 350 | ## 扩展:任意网络拓扑主动监听的基本原理 351 | 352 | * 寻址机制是主动监听的攻击重点 353 | * 查找:CAM / ARP / 路由 / DNS 354 | * 引流是主动监听的核心手段 355 | * 让通信流量(双向)通过监听者控制的设备、系统 356 | * 获取通信负载是主动监听的核心目标 357 | 358 | --- 359 | 360 | ![](images/chap0x04/detect-promisc-nc.gif) 361 | 362 | --- 363 | 364 | ## 检测终端 ARP 缓存投毒者 {id="detect-arp-poisoner-1"} 365 | 366 | ```bash 367 | # 正常状态 368 | arp -a 369 | Internet 地址 物理地址 类型 370 | 10.0.2.2 52-54-00-12-35-02 动态 371 | 372 | # 被投毒状态(同一个 IP 地址对应多个不同 MAC 地址或异常的 IP-MAC ) 373 | arp -a 374 | Internet 地址 物理地址 类型 375 | 10.0.2.2 52-54-00-12-35-02 动态 376 | 10.0.2.2 25-35-FE-12-35-12 动态 377 | ``` 378 | 379 | > 桌面 ARP 防火墙可以有效检测、发现和防护 380 | 381 | --- 382 | 383 | ## 检测终端 ARP 缓存投毒者 {id="detect-arp-poisoner-2"} 384 | 385 | * 发送ARP请求包 386 | * 正确的 IP 地址 387 | * 错误目的 MAC 地址 388 | * 只有工作于混杂模式的网卡会响应该ARP请求数据包 389 | * 工作于混杂模式网卡的操作系统内核会自动回应该 ARP请求数据包 390 | 391 | --- 392 | 393 | ### 不同操作系统对 ARP 广播包的处理方式有差异 {id="arp-br-handler-except"} 394 | 395 | 例如,虚假广播消息: 396 | 397 | * FF:FF:FF:FF:FF:FF:FF:FE (Br47): Last bit missing 398 | * FF:FF:00:00:00:00:00:00 (Br16): Only first 16 bits are the same as for broadcast. 399 | * FF:00:00:00:00:00:00:00 (Br8) 400 | * F0:00:00:00:00:00:00:00 (Br4) 401 | 402 | --- 403 | 404 | ### 不同操作系统的内核过滤机制有差异 405 | 406 | 例如,虚假组播消息: 407 | 408 | * 01:00:00:00:00:00:00:00 (Gr): Only group-bit set. 409 | * 01:00:5E:00:00:00:00:00 (M0): Multicast address zero is usually not used 410 | * 01:00:5E:00:00:00:00:01 (M1): (assigned to all) Multicast address one should be received by all in the test system 411 | * 01:00:5E:00:00:00:00:02 (M2): (assigned to different set of nodes) Multicast address two should not be received by systems in the test group. 412 | * 01:00:5E:00:00:00:00:03 (M3): (not registered) 413 | 414 | --- 415 | 416 | ![](images/chap0x04/weird-arp-resp.png) 417 | 418 | --- 419 | 420 | ### 非混杂模式 VS. 混杂模式网卡对 ARP 请求的响应实例 {id="arp-resp-comparison"} 421 | 422 | ![](images/chap0x04/arp-ping.png) 423 | 424 | * 左图:目标主机对「与己无关」的 ARP 请求「毫无反应」 425 | * 右图:目标主机对「与己无关」的 ARP 请求「积极响应」 426 | 427 | --- 428 | 429 | ## 检测针对交换机的泛洪攻击 430 | 431 | 网络抓包分析 432 | 433 | * 启用交换机的端口镜像 434 | * 重点关注 435 | * 链路通信质量参数:丢包率/重传率 436 | * 未知MAC地址 437 | 438 | --- 439 | 440 | ## 检测交换机投毒者 441 | 442 | 交换机CAM表中的异常更新记录 443 | 444 | * 同一个MAC地址反复被映射到不同物理端口 445 | 446 | --- 447 | 448 | ## 终端用户如何防范网络嗅探攻击 449 | 450 | * 安装桌面型ARP防火墙 451 | * 防护终端ARP投毒 452 | * 配置静态ARP地址表 453 | * 绑定网关IP与MAC地址 454 | * `arp -s <网关IP> <网关MAC>` 455 | * 敏感数据加密后再传输并使用加密通信协议 456 | * 应用层(负载)加密 457 | * 遵循 `纵深防御` 原则 458 | 459 | --- 460 | 461 | ## 网络管理员如何防范网络嗅探攻击 462 | 463 | * 启用并正确配置交换机的安全机制 464 | * 交换机的端口安全机制 465 | * 交换机物理端口和MAC地址的静态绑定 466 | * 限制交换机单个物理端口可以动态绑定的MAC地址数量 467 | * 划分VLAN 468 | * 部署内网安全监控设备 469 | * 监视异常网络状况 470 | * 丢包/ 重传 / 畸形包 / 广播风暴 … 471 | 472 | 473 | 474 | -------------------------------------------------------------------------------- /chap0x06.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "网络安全" 3 | author: 黄玮 4 | output: revealjs::revealjs_presentation 5 | --- 6 | 7 | # 第六章 网络与系统渗透 8 | 9 | --- 10 | 11 | ## 温故 12 | 13 | * 网络扫描是网络入侵的序曲 14 | * 网络扫描的目的是信息收集 15 | * 网络监听是内网安全的大敌 16 | 17 | --- 18 | 19 | ## 知新 20 | 21 | * 网络与系统渗透基本原理 22 | * 网络与系统渗透案例讲解 23 | * 渗透测试工具 24 | * 工具只是辅助,最重要的是人 25 | 26 | # 序曲 27 | 28 | --- 29 | 30 | * 先有网络应用,后有网络安全 31 | * 脱离应用,谈安全是空谈 32 | * **保护资产价值是信息安全一切问题的本原需求** 33 | * 等级安全保护 34 | * 信息安全是一个 **持续对抗** 过程 35 | * 应用技术发展带动安全技术发展 36 | * 攻击技术发展带动防御技术发展 37 | * 此消彼长,知己知彼 38 | * 猫鼠游戏 39 | 40 | --- 41 | 42 | [![](images/chap0x06/evolution-of-the-web.png)](http://www.evolutionoftheweb.com/?hl=zh-cn) 43 | 44 | --- 45 | 46 | [![](images/chap0x06/evolution-of-the-web-2.png)](http://www.evolutionoftheweb.com/?hl=zh-cn) 47 | 48 | --- 49 | 50 | > 我们谈到「网络空间安全」的时候到底指的是哪些方面的安全问题? 51 | 52 | --- 53 | 54 | > **网络空间安全** 涉及到在网络空间中 **电磁设备、信息通信系统、运行数据、系统应用** 中所存在的安全问题,既要保护信息通信技术系统及其承载的数据不受损害;也要防止对这些信息通信技术系统的运用或滥用对 **政治安全、经济安全、文化安全、社会安全与国防安全** 的冲击。 55 | 56 | —— [方滨兴 《从“六论”视角论网络空间安全观念》2017.9](https://www.easyaq.com/news/137389782.shtml) 57 | 58 | --- 59 | 60 | ## **新** 应用场景 {id="new-application"} 61 | 62 | * 区块链 63 | * 容器 64 | * 边缘计算、雾计算 65 | * 工控 66 | * 物联网 67 | * 智能家居 68 | 69 | # 专业术语与概念定义 70 | 71 | --- 72 | 73 | * 交换机 Switch 74 | * 客户端 Client 75 | * 服务器 Server 76 | * 骨干网 / 广域网 / 局域网 77 | * 虚拟主机 / VPS / 主机托管 78 | 79 | --- 80 | 81 | * 域名解析服务器 DNS: Domain Name System 82 | * 域名解析:将域名翻译、转换成IP地址 83 | * Web服务器 Web Server:Static Page Serve 84 | * 应用程序服务器 App Server:Dynamic Pages Serve 85 | * 数据库服务器 Database Server 86 | 87 | --- 88 | 89 | * 网络渗透/系统渗透 Network Penetration / System Penetration 90 | * 内容分发网络 CDN: Content Delivery Network 91 | 92 | --- 93 | 94 | ## 内容分发网络 95 | 96 | ![](images/chap0x06/cdn.png) 97 | 98 | --- 99 | 100 | ## 云防火墙 101 | 102 | ![](images/chap0x06/cdn-based-cloud-fw.png) 103 | 104 | --- 105 | 106 | ## 云安全? 107 | 108 | * 基于 CDN 的云安全 109 | * 保护第三方 Web 站点 110 | * 云计算安全 111 | * IDC 安全 112 | * VPS 安全 113 | * Web 安全 114 | 115 | --- 116 | 117 | > 新概念不断,但网络安全的基本原理并没有改变 118 | 119 | --- 120 | 121 | ## 网络应用与网络安全问题示例 122 | 123 | | 网络应用 | 网络安全 | 124 | | -- | -- | 125 | | 电子邮件 | 垃圾邮件、社会工程学攻击 | 126 | | 局域网 | ARP 投毒、网络嗅探与中间人攻击 | 127 | | 网购 | 诈骗、钓鱼、羊毛党 | 128 | | 网游 | 盗号、虚拟货币盗窃 | 129 | | 微博 | 盗号、垃圾@、虚假信息 | 130 | | 论坛 | 盗号、垃圾广告与反动言论 | 131 | | 视频 | 畸形视频(恶意代码捆绑) | 132 | | 电子书 | 恶意代码捆绑 | 133 | 134 | # 网络安全简史 135 | 136 | --- 137 | 138 | * 1984 年 英国菲利普王子的电子邮箱被黑 139 | * 1988 年 莫瑞斯蠕虫,感染了 6000 台主机(全球互联网1/10的主机) 140 | * 1995 年 美国法院、CIA、空军的门户网站页面被篡改 141 | * 2003 年 冲击波蠕虫 142 | * 针对 Windows 操作系统 RPC 服务(445端口) 143 | * 导致运营商们大规模运用防火墙、访问控制技术封锁互联网上的非 Web 服务端口 144 | * 每小时感染 2500 台主机 145 | 146 | --- 147 | 148 | * 2005 年 MySpace Samy 蠕虫:史上第一个利用XSS漏洞传播的蠕虫 149 | * 传播速度惊人:20 小时感染上百万台主机(每小时感染 50000 台主机) 150 | * 2008 年 全球范围内频繁出现大规模 SQL 注入攻击网站事件。 151 | * 2010 年 6 月,震网(Stuxnet)病毒被曝光,这是史上第一个“超级破坏性武器”,就此揭开了「高级持续威胁(Advanced Persistent Threat, APT)」这个研究主题 152 | 153 | --- 154 | 155 | * 2016 年 8 月,一个名为 “Shadow Brokers” 的黑客组织号称入侵了方程式组织窃取了大量机密文件,并有选择的公开了一部分黑客工具(0day 漏洞利用工具),其中就包含一个名为 `Eternalblue(永恒之蓝)` 的针对 Windows 445 端口远程代码执行的漏洞利用工具。 156 | * 方程式(Equation Group)据称是美国国家安全局(NSA)下属的黑客组织,有着极高的技术手段 157 | * 2017 年 WannaCry **勒索** 病毒袭击了全球 150 多个国家和地区,影响领域包括政府部门、医疗服务、公共交通、邮政、通信和汽车制造业。这次事件的罪魁祸首正是来自于 `永恒之蓝` 漏洞利用工作所针对的漏洞。 158 | 159 | --- 160 | 161 | ![2012 年 4 月 Nikjju 大规模 SQL 注入篡改了至少 18 万个网页](images/chap0x06/2012-sqli.png) 162 | 163 | --- 164 | 165 | ## 全球个人口令泄露总量惊人 166 | 167 | [![](images/chap0x06/pwned-passwords.png)](https://haveibeenpwned.com/Passwords) 168 | 169 | --- 170 | 171 | ![真实的互联网小破站点日常](images/chap0x06/fail2ban-logs.png) 172 | 173 | --- 174 | 175 | ## 网络安全的威胁态势历史 176 | 177 | * 1999 年~2002 年 萌芽:摸索 178 | * 2003 年~2006 年 暗黑:混乱、攻击 179 | * 2007 年~2011 年 光明:有序、防御 180 | * 2012 年~ 泛在:移动、物联网 181 | 182 | --- 183 | 184 | ## 网络安全的威胁分类 185 | 186 | * 代码执行是网络安全的最严重威胁 187 | * 拒绝服务攻击是网络安全永恒的主题 188 | * Web 安全是网络安全当前的主战场 189 | * Everything is connected! Everything is Hackable! 190 | * **新应用场景** 安全需求蓬勃发展 191 | 192 | --- 193 | 194 | [![CVE 漏洞历年统计数据(截止 2020 年 8 月)](images/chap0x06/vulnerabilities-by-year.png)](https://nvd.nist.gov/vuln/search/statistics?form_type=Basic&results_type=statistics&search_type=all) 195 | 196 | # 网络与系统渗透基本原理 197 | 198 | --- 199 | 200 | ## 总体差异 201 | 202 | | | 渗透测试 | 网络入侵 | 203 | | -- | -- | -- | 204 | | 目的 | 发现漏洞,提出漏洞修补建议 | 破坏 CIA | 205 | | 手段 | 业务连续性和数据完整性是红线 | 无限制的漏洞利用手段 | 206 | | 结果 | 渗透测试报告,所有已发现漏洞得到修补 | CIA 被破坏 | 207 | 208 | --- 209 | 210 | ## 方法论区别与联系 211 | 212 | | | 渗透测试 | 网络入侵 | 213 | | -- | -- | -- | 214 | | **取得被测试目标的法律授权** | ✅ | ❌ | 215 | | 信息收集 | ✅ | ✅ | 216 | | 目标踩点 | ✅ | ✅ | 217 | | 网络扫描 | ✅ | ✅ | 218 | | 漏洞发现 | ✅ | ✅ | 219 | | 漏洞扫描(识别已知漏洞) | ✅ | ✅ | 220 | | 漏洞挖掘(发现未知漏洞) | ✅ | ✅ | 221 | | 漏洞利用之提升权限 | ✅ | ✅ | 222 | | **漏洞利用之后门植入** | ❌ | ✅ | 223 | | **提供测试报告** | ✅ | ❌ | 224 | | **擦除入侵痕迹** | ℹ️ | ✅ | 225 | 226 | --- 227 | 228 | > ℹ️ 正常的渗透测试由于不会对被测试目标系统及网络造成破坏、点到即止。既然不是「入侵」,当然不存在「擦除入侵痕迹」的需求。但是,有时会在测试过程中出于评估漏洞危害的目的出发做的一些轻微的系统改动或测试数据获取(例如创建用户、读取指定用户数据),会在渗透测试结束后清理掉本地保存的测试数据以及还原测试前数据和系统状态。 229 | 230 | --- 231 | 232 | ## 渗透测试的核心关键技术 233 | 234 | * 第五章 网络扫描 235 | * 信息收集 236 | * 目标踩点 237 | * 网络扫描 238 | * 本章重点 239 | * 漏洞扫描 240 | * 漏洞利用 241 | * 提升权限 242 | 243 | --- 244 | 245 | ## 黑客入侵的一般思维方式 246 | 247 | 1. 信息收集 248 | * 社会工程学手段 249 | * 网络扫描 250 | * 漏洞发现 251 | 2. 目标踩点 252 | * 确认收集到的信息 253 | 3. 漏洞利用 254 | * 实现攻击目标 255 | 4. 维持系统控制权 256 | * 后门植入 257 | 5. 清理访问痕迹 258 | 259 | > ℹ️ 周而复始,按需执行 1. 和 2. 260 | 261 | --- 262 | 263 | ## 网络空间杀伤链(Cyber Kill Chain)模型 {id="cyber-kill-chain-1"} 264 | 265 | 洛克希德-马丁公司提出的网络空间杀伤链如下图所示: 266 | 267 | [![](images/chap0x06/THE-CYBER-KILL-CHAIN-body.png)](https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html) 268 | 269 | --- 270 | 271 | ## 网络空间杀伤链(Cyber Kill Chain)模型 {id="cyber-kill-chain-2"} 272 | 273 | * 识别 - 武器化 - 投递 - 漏洞利用 - 安装(后门) - 命令与控制 - 达成目标 274 | * Reconnaissance - Weaponization - Delivery - Exploitation - Installation - Command & Control - Actions on Objective 275 | 276 | --- 277 | 278 | ## 军事学中的杀伤链(Kill Chain)模型 279 | 280 | * 发现 - 定位- 跟踪 - 瞄准 - 打击 - 评价 281 | * Find - Fix - Track - Target - Engage - Assess 282 | * F2T2EA 283 | * 可以用于对抗上述「网络空间杀伤链」模型,所以又被称为「反杀伤链」模型 284 | 285 | --- 286 | 287 | ## 网络防御的意识误区 288 | 289 | * 我购买并部署了价格昂贵的安全设备就可以高枕无忧了 290 | * 任何安全设备都是由程序员开发的 291 | * [无论是硬件还是软件,都是依赖于代码执行](https://mp.weixin.qq.com/s/qJGLQaJM0FrHto3uJhh09w) 292 | * 过滤所有监听端口的入站数据就可以高枕无忧了 293 | * 过滤策略和机制都可能由于存在漏洞而被绕过 294 | * 攻击之前一定会有扫描行为 295 | * 社会工程学手段、滥用第三方服务都可以实现信息收集而不留下任何扫描行为记录 296 | 297 | > 黑客是一群不按常理出牌的人。 298 | 299 | # 案例一:从信息收集到入侵提权 {id="from-intel-to-intrusion"} 300 | 301 | --- 302 | 303 | > 案例“目标”:www.hack-test.com 304 | 305 | > ℹ️ 重要的不是具体站点,而是方法。 306 | 307 | --- 308 | 309 | * 从域名获取 IP 310 | * 从 IP 获取旁站 311 | * 收集系统与网络配置详细信息 312 | * 踩点 313 | * 发现漏洞 314 | * 漏洞利用 315 | * 维持系统控制权 316 | * 清理访问痕迹 317 | 318 | --- 319 | 320 | ## 从域名获取 IP {id="step1-get-ip-from-dns"} 321 | 322 | [![asciicast](https://asciinema.org/a/XdZH8ROTEFtUKDUJVMAIyui2N.svg)](https://asciinema.org/a/XdZH8ROTEFtUKDUJVMAIyui2N) 323 | 324 | --- 325 | 326 | ## 从 IP 获取旁站 {id="step2-get-sites-from-ip-1"} 327 | 328 | ![ip domain reverse lookup](images/chap0x06/get-sites-from-ip-1.png) 329 | 330 | --- 331 | 332 | ## 从 IP 获取旁站 {id="step2-get-sites-from-ip-2"} 333 | 334 | ![](images/chap0x06/get-sites-from-ip-2.png) 335 | 336 | --- 337 | 338 | > ℹ️ 主站不得入,绕道拿旁站。 339 | 340 | --- 341 | 342 | ## 收集系统与⽹络配置详细信息 343 | 344 | * 网络拓扑信息 345 | * 域名解析记录 346 | * 域名注册人信息、公司信息、邮箱地址等 347 | * 开放端口 348 | * 服务器数量及分布 349 | * 系统配置信息 350 | * 操作系统版本 351 | * Web服务器版本 352 | * Web应用系统架构信息 353 | * 脚本类型、开发框架 354 | 355 | --- 356 | 357 | ![](images/chap0x06/whois-info.png) 358 | 359 | --- 360 | 361 | [开源情报收集思路(可选,课后自行阅读学习)](https://inteltechniques.com/blog/2018/03/06/updated-osint-flowcharts/) 362 | 363 | --- 364 | 365 | ![从电子邮件地址开始...](images/chap0x06/Email.png) 366 | 367 | --- 368 | 369 | ![从电话号码开始...](images/chap0x06/Telephone.png) 370 | 371 | --- 372 | 373 | ![从真实姓名开始...](images/chap0x06/Real Name.png) 374 | 375 | --- 376 | 377 | ![从用户名开始...](images/chap0x06/Username.png) 378 | 379 | --- 380 | 381 | ![从位置信息开始...](images/chap0x06/location.png) 382 | 383 | --- 384 | 385 | ## 踩点 386 | 387 | ![正常访问过程就是【踩点】](images/chap0x06/built-with-info.png) 388 | 389 | --- 390 | 391 | ## 发现漏洞 392 | 393 | * 漏洞扫描工具 394 | * 基于「应用和版本指纹识别」 395 | * 手工分析 396 | * 针对开源软件:直接基于源代码分析 397 | * 针对闭源软件:黑盒 Fuzz 测试 398 | 399 | --- 400 | 401 | ## 漏洞利用 402 | 403 | * 利用 [开放漏洞信息库](http://www.exploit-db.com) 404 | * 利用自动化工具 405 | * [metasploit](https://www.metasploit.com/) 406 | * [burpsuite](https://portswigger.net/burp) 407 | * 针对具体漏洞的定制开发漏洞利用程序 408 | 409 | --- 410 | 411 | ## 维持系统控制权 412 | 413 | * 上传木马 414 | * 网页木马 415 | * 系统级木马 416 | * 创建后门账户 417 | 418 | --- 419 | 420 | ## 清理访问痕迹 421 | 422 | * 系统日志清理 423 | * 临时文件删除 424 | * 后门隐藏 425 | * 后门软件隐藏 426 | * 后门进程隐藏 427 | * 后门账户隐藏 428 | * 后门端口隐藏 429 | 430 | # 案例二:2012 年新浪微博用户密码泄露漏洞(旁站注入) {id="weibo-sqli-2012"} 431 | 432 | --- 433 | 434 | * 2012 年元旦 新浪微博网友 `evilniang` 发现新浪爱问频道存在 `SQL 注入漏洞` 435 | * 利用该漏洞课读取爱问频道数据库内内容 436 | * 包括明文密码在内的 7000 多万新浪用户信息 437 | * 刘谦微博被 PoC 代码测试 438 | 439 | --- 440 | 441 | ## 后续应急响应 442 | 443 | * 修复新浪爱问频道的网站代码漏洞 444 | * 对用户信息数据库中的敏感信息进行脱敏操作 445 | * 使用更安全的 [口令散列算法](https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html) 处理用户的明文口令后再持久化存储,例如 `Argon2`,`PBKDF2` 和 `Bcrypt` 等 446 | 447 | # 案例三:Google Hacking {id="google-hacking-cases"} 448 | 449 | --- 450 | 451 | ![](images/chap0x06/google-hacking-1.png) 452 | 453 | --- 454 | 455 | ![](images/chap0x06/google-hacking-2.png) 456 | 457 | --- 458 | 459 | ![](images/chap0x06/google-hacking-3.png) 460 | 461 | --- 462 | 463 | ## 防范 Google Hacking {id="prevent-google-hacking"} 464 | 465 | * 机密信息不上网 466 | * 小心使用 robots.txt 467 | 468 | ![使用Google 的网站站长工具删除被 Google 索引的内容](images/chap0x06/google-hacking-defense.png) 469 | 470 | 471 | # 不仅是 Google Hacking {id="beyond-google-hacking"} 472 | 473 | --- 474 | 475 | ### 搜索 webshell —— 百度 476 | 477 | ![](images/chap0x06/beyond-google-hacking-2.png) 478 | 479 | --- 480 | 481 | ### 搜索 webshell —— Google 482 | 483 | ![](images/chap0x06/beyond-google-hacking-3.png) 484 | 485 | --- 486 | 487 | ### 搜索 webshell —— 360 488 | 489 | ![](images/chap0x06/beyond-google-hacking-4.png) 490 | 491 | --- 492 | 493 | ## 网络空间搜索引擎之 shodan.io 494 | 495 | [![](images/chap0x06/shodan.io.jpg)](https://www.shodan.io/) 496 | 497 | --- 498 | 499 | ## 网络空间搜索引擎之 fofa.so 500 | 501 | [![](images/chap0x06/beyond-google-hacking-1.png)](https://fofa.so/) 502 | 503 | --- 504 | 505 | ## 网络空间搜索引擎之 zoomeye.org 506 | 507 | [![](images/chap0x06/zoomeye.org.jpg)](https://www.zoomeye.org/) 508 | 509 | # 回到课堂,进入模型与方法论 510 | 511 | --- 512 | 513 | ![](images/chap0x06/3d-infosec-model.png) 514 | 515 | --- 516 | 517 | ## 网络与系统渗透的入口点选择 518 | 519 | * 人 520 | * 社会工程学 521 | * 一种通过对受害者 **心理弱点、本能反应、好奇心、信任、贪婪** 等 **心理弱点** 进行诸如欺骗、伤害等危害手段 522 | * 骗取秘密(如口令)/ 控制行为(如钓鱼) 523 | * 技术 524 | * 应用层 525 | * 网络层 526 | * 物理层 527 | 528 | --- 529 | 530 | ## 网络与系统渗透的入口点选择——技术方向 531 | 532 | * nmap官方对互联网上端口开放频率的统计 533 | 534 | ```bash 535 | sort -rk 3 /usr/share/nmap/nmap-services | grep -v -E '^#' | head -n20 536 | # http 80/tcp 0.484143 # World Wide Web HTTP 537 | # ipp 631/udp 0.450281 # Internet Printing Protocol 538 | # snmp 161/udp 0.433467 # Simple Net Mgmt Proto 539 | # netbios-ns 137/udp 0.365163 # NETBIOS Name Service 540 | # ntp 123/udp 0.330879 # Network Time Protocol 541 | # netbios-dgm 138/udp 0.297830 # NETBIOS Datagram Service 542 | # ms-sql-m 1434/udp 0.293184 # Microsoft-SQL-Monitor 543 | # microsoft-ds 445/udp 0.253118 544 | # msrpc 135/udp 0.244452 # Microsoft RPC services 545 | # dhcps 67/udp 0.228010 # DHCP/Bootstrap Protocol Server 546 | # telnet 23/tcp 0.221265 547 | # domain 53/udp 0.213496 # Domain Name Server 548 | # https 443/tcp 0.208669 # secure http (SSL) 549 | # ftp 21/tcp 0.197667 # File Transfer [Control] 550 | # netbios-ssn 139/udp 0.193726 # NETBIOS Session Service 551 | # ssh 22/tcp 0.182286 # Secure Shell Login 552 | # isakmp 500/udp 0.163742 553 | # dhcpc 68/udp 0.140118 # DHCP/Bootstrap Protocol Client 554 | # route 520/udp 0.139376 # router routed -- RIP 555 | # upnp 1900/udp 0.136543 # Universal PnP 556 | ``` 557 | 558 | --- 559 | 560 | * Web 应用是最常见的网络渗透入口点 561 | * Web 软件是最普遍的云服务实现载体 562 | * 云存储 563 | * 即时通信 564 | * 微博 565 | * 视频 566 | * 手机和物联网终端设备的云端服务 567 | 568 | --- 569 | 570 | ![典型Web应用系统网络拓扑](images/chap0x06/network-layer.jpg) 571 | 572 | --- 573 | 574 | * 异构应用和服务多 575 | * 网络拓扑结构复杂 576 | * 业务应用模型多样 577 | 578 | --- 579 | 580 | ![典型Web应用系统威胁数据流图](images/chap0x06/web-threat-flow.png) 581 | 582 | --- 583 | 584 | > 如何全面的理解Web应用程序漏洞原理呢? 585 | 586 | --- 587 | 588 | 且待下一章分解! 589 | 590 | # 课后思考题 591 | 592 | --- 593 | 594 | * 渗透过程中最重要的是什么?各抒己见。 595 | * 用自己的话去阐述“网络与系统安全是一个持续对抗过程”。 596 | * 在了解了网络与系统渗透基本原理之后,你对如何做好网络与系统安全加固有何见解? 597 | 598 | -------------------------------------------------------------------------------- /chap0x08-slim.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "网络安全" 3 | author: 黄玮 4 | output: revealjs::revealjs_presentation 5 | --- 6 | 7 | # 第八章 防火墙 8 | 9 | --- 10 | 11 | ## 温故 12 | 13 | * 网络与系统渗透无孔不入 14 | * 人 15 | * 应用程序 16 | * 网络设备 17 | * 主机/服务器操作系统 18 | * 物理设备 19 | * 掌握网络与系统渗透方法 20 | * 知己知彼,百战不殆 21 | 22 | --- 23 | 24 | ## 知新 25 | 26 | * 防火墙在网络与系统防御中的作用和地位 27 | * 防火墙实现的关键技术 28 | * 防火墙实例及应用 29 | 30 | # 防火墙概述 31 | 32 | --- 33 | 34 | ## 定义 35 | 36 | > 在两个 **信任程度不同** 的网络之间设置的、用于加强 `访问控制` 的 **软硬件** 保护措施。 37 | 38 | ![](images/chap0x08/firewall-definition.png) 39 | 40 | --- 41 | 42 | ### 信任程度不同的网络 43 | 44 | * 外网:外部网络,不仅包括互联网,泛指一切非当前防火墙保护范围的网络 45 | * 内网:内部网络,此处特指防火墙保护范围内的网络 46 | * 边界:外网和内网之间的通信过程必须经过「防火墙」的 `访问控制` ,此时防火墙在整个网络拓扑中的逻辑位置相当于就是网络「边界」 47 | 48 | --- 49 | 50 | ### 访问控制 {id="network-acl-1"} 51 | 52 | * 入站(`Inbound`)。从 `外网` 发起,目的地是 `内网` 的流量方向 53 | * 出站(`Outbound`)。从 `内网` 发起,目的地是 `外网` 的流量方向 54 | * 防外不防内 55 | * 防外:与外部网络有关的流量可以被防火墙审查,进而达到保护效果 56 | * 不防内:非 `入站` 和 `出站` 流量,属于内部网络中节点之间的流量由于不流经防火墙,所以防火墙无法对流量进行审查,自然就无法保护了 57 | 58 | --- 59 | 60 | ### 访问控制 {id="network-acl-2"} 61 | 62 | * 粗粒度防护:取决于网络防火墙对网络流量的检查 **粒度** ,绝大多数情况下我们使用的都是网络层防火墙,不具备 **深度包检测** 能力 63 | * 深度包检测(`Deep Packet Insepction`, `DPI`):又称 **完全数据包探测(complete packet inspection)** 或 **信息萃取(Information eXtraction,IX)**,是一种网络数据包过滤技术,用来检查通过检测点数据包的内容负载部分(也可能包含其报文头部) 64 | 65 | --- 66 | 67 | 为什么要强调 **深度包检测** 这个概念? 68 | 69 | --- 70 | 71 | > 因为只有看见,才能让「访问控制」有的放矢,才能落实保护。 72 | 73 | --- 74 | 75 | ## 防火墙发展简史 76 | 77 | ![](images/chap0x08/firewall-history.png) 78 | 79 | --- 80 | 81 | ### “上古” 防火墙 {id="legacy-fw"} 82 | 83 | * 第一代防火墙 84 | * 采用了包过滤技术 85 | * 第二代、第三代防火墙 86 | * 1989 年,推出了电路层防火墙和应用层防火墙的初步结构 87 | * 第四代防火墙 88 | * 1992 年,开发出了基于动态包过滤技术的第四代防火墙 89 | * 第五代防火墙 90 | * 1998 年,NAI公司推出一种自适应代理技术,可以称之为第五代防火墙 91 | 92 | --- 93 | 94 | ### 现代防火墙 {id="modern-fw"} 95 | 96 | * 一体化安全网关 UTM 97 | * 统一威胁管理 98 | * 整合防火墙、入侵检测、入侵保护、防病毒、防垃圾邮件等综合功能 99 | * 应用防火墙 100 | * 又可以称为IPS:入侵保护 101 | * 普遍采用了 `深度包检测` 技术 102 | * 病毒防火墙 103 | * Web 防火墙 104 | * VoIP 防火墙 105 | * 。。。 106 | 107 | --- 108 | 109 | ## 防火墙现状与发展 {id="fw-status-and-future-1"} 110 | 111 | * 网络安全基础设施必有一席之地 112 | * 开源产品和商业产品百家齐放 113 | * 开源防火墙代表:[pfSense](https://www.pfsense.org/)、[OPNSense](https://opnsense.org/)、[Untangle – NG Firewall](https://www.untangle.com/)、[ClearOS](https://www.clearos.com/)、[IPFire](https://www.ipfire.org/)、[Smoothwall Express](http://www.smoothwall.org/)、[IPCop](https://distrowatch.com/)、[ufw](https://help.ubuntu.com/community/UFW)、[Shorewall](http://www.shorewall.org/)、[Endian Firewall Community](https://www.endian.com/)、[VyOS](https://www.vyos.io/) 114 | * 不断提升的 **吞吐性能** 115 | * 接入带宽:百兆 / 千兆 / 万兆 116 | * 并发处理能力(状态检测防火墙):千、万、十万、百万 117 | 118 | --- 119 | 120 | ## 防火墙现状与发展 {id="fw-status-and-future-2"} 121 | 122 | * 持续发展的 `深度包检测` 123 | * 支持识别的应用层协议种类越来越多 124 | * 加密流量的处理方式「八仙过海各显神通」 125 | * 集成恶意代码、垃圾信息检测等多样化防护能力 126 | * 增值功能越来越多 127 | * 代理、负载均衡、计费、VPN 等 128 | * 满足云计算环境中的防火墙部署需求 129 | * 虚拟化能力 130 | * SDN 能力 131 | 132 | --- 133 | 134 | ![](images/chap0x08/gartner-2019-fw-magic-quadrant.png) 135 | 136 | > 华为、深信服(Sangfor)、启明星辰(Venustech)、山石网科(Hillstone)、新华三(H3C) 137 | 138 | --- 139 | 140 | ![](images/chap0x08/gartner-2022-fw-magic-quadrant.png) 141 | 142 | > 华为、深信服(Sangfor)、启明星辰(Venustech)、山石网科(Hillstone)、新华三(H3C)、阿里云(Alibaba Cloud) 143 | 144 | # 防火墙技术原理 145 | 146 | --- 147 | 148 | ## 防火墙关键技术 149 | 150 | * 包过滤技术 151 | * 状态检测技术 152 | * 应用级代理技术 153 | 154 | --- 155 | 156 | ## 包过滤技术 157 | 158 | ![](images/chap0x08/packet-filter.png) 159 | 160 | --- 161 | 162 | ### 检查数据包的报头信息 163 | 164 | 1. IP 数据报的源 IP 地址、目的 IP 地址、协议类型,选项字段等 165 | 2. TCP 数据包的源端口、目标端口、标志段等 166 | 3. UDP 数据包的源端口、目标端口 167 | 4. ICMP 类型 168 | 169 | --- 170 | 171 | ### 包过滤技术的优点 172 | 173 | * 不需要内部网络用户做任何配置,对用户来说是完全透明的 174 | * 过滤速度快,效率高 175 | 176 | --- 177 | 178 | ### 包过滤技术的缺点 179 | 180 | * 不能进行数据内容级别的访问控制 181 | * 一些应用协议不适合用数据报过滤 182 | * 过滤规则的配置复杂,容易产生冲突和漏洞 183 | 184 | --- 185 | 186 | ## 状态检测技术 187 | 188 | ![](images/chap0x08/state-check-1.png) 189 | 190 | --- 191 | 192 | ![](images/chap0x08/state-check-2.png) 193 | 194 | --- 195 | 196 | ### 状态检测技术的优点 197 | 198 | * 状态表是动态建立的,可以实现对一些复杂协议建立的临时端口进行有效的管理 199 | * 状态检测技术是为每一个会话连接建立、维护其状态信息,并利用这些状态信息对数据包进行过滤 200 | * 动态状态表是状态检测防火墙的核心,利用其可以实现比包过滤防火墙更强的控制访问能力 201 | 202 | --- 203 | 204 | ### 状态检测技术的缺点 205 | 206 | * 没有对数据包内容进行检测,不能进行数据内容级别的控制 207 | * 允许外网主机与内网主机直接连接,增加了内网主机被外部攻击者直接攻击的风险 208 | 209 | --- 210 | 211 | ## 应用级代理 212 | 213 | ![](images/chap0x08/proxy-1.png) 214 | 215 | --- 216 | 217 | ### 应用级代理示例 218 | 219 | ![](images/chap0x08/proxy-2.png) 220 | 221 | --- 222 | 223 | ### 应用级代理优点 224 | 225 | * 内部网络的拓扑、IP 地址等被代理防火墙屏蔽,能有效实现内外网络的隔离 226 | * 具有强鉴别和日志能力,支持用户身份识别,实现用户级的安全 227 | * 能进行数据内容的检查,实现基于内容的过滤,对通信进行严密的监控 228 | * 过滤规则比数据包过滤规则简单 229 | 230 | --- 231 | 232 | ### 应用级代理缺点 233 | 234 | * 代理服务的额外处理请求降低了过滤性能,其过滤速度比包过滤器速度慢 235 | * 需要为每一种应用服务编写代理软件模块,提供的服务数目有限 236 | * 对操作系统的依赖程度高,容易因操作系统和应用软件的缺陷而受到攻击 237 | 238 | # 防火墙的实现技术 239 | 240 | --- 241 | 242 | 以 Linux 操作系统上的 Netfilter/iptables 机制为例 243 | 244 | --- 245 | 246 | ## Netfilter/iptables 框架简介 247 | 248 | * `Netfilter/iptables` 从 `Linux` 内核版本 `2.4` 开始,默认被包含在内核源代码树中 249 | * 可以对操作系统的流入和流出数据报文进行控制 250 | * 防火墙 251 | * NAT 252 | * 数据报文自定义修改 253 | * `Netfilter` 工作在系统内核层 254 | * `iptables` 工作在用户态 255 | 256 | --- 257 | 258 | ## Netfilter/iptables 架构 {id="netfilter-iptables-arch-1"} 259 | 260 | ![](images/chap0x08/netfilter-iptables-arch-1.png) 261 | 262 | --- 263 | 264 | ## Netfilter/iptables 架构 {id="netfilter-iptables-arch-2"} 265 | 266 | ![](images/chap0x08/netfilter-iptables-arch-2.png) 267 | 268 | --- 269 | 270 | ## iptables 基本概念 {id="iptables-basics-1"} 271 | 272 | * 表(tables) 273 | * filter表、nat表、mangle表、raw表 274 | * 链(chains) 275 | * 数据包的传输路径,每条链其实就是众多规则中的一个检查清单 276 | * Input、Forward、PreRouting、PostRouting、Output 277 | * 规则(rules) 278 | * 网络管理员预定义的网络 **访问控制策略** 279 | 280 | --- 281 | 282 | ## iptables 基本概念 {id="iptables-basics-2"} 283 | 284 | * filter 表 285 | * 报文过滤 286 | * 只读过滤报文 287 | * nat 表 288 | * 实现 NAT 服务 289 | * mangle表 290 | * 报文处理:修改报文和附加额外数据到报文 291 | * raw表 292 | * 可以对收到的报文在连接跟踪前进行处理 293 | * 只作用于 `PreRouting` 和 `Output` 链 294 | 295 | --- 296 | 297 | ## iptables 中的报文检查流程 {id="iptables-workflow"} 298 | 299 | ![](images/chap0x08/netfilter-iptables-workflow.png) 300 | 301 | > raw > mangle > nat > filter 302 | 303 | --- 304 | 305 | ## netfilter 架构的数据流图 {id="netfilter-internal-workflow"} 306 | 307 | ![](images/chap0x08/netfilter-iptables-arch-3.png) 308 | 309 | --- 310 | 311 | ## 部署了 Netfilter/iptables 的操作系统 {id="netfilter-iptables-on-host"} 312 | 313 | ![](images/chap0x08/netfilter-iptables-on-host.png) 314 | 315 | --- 316 | 317 | ## 硬件防火墙 318 | 319 | * 通用 CPU 架构 320 | * ASIC 架构 321 | * 网络处理器架构 322 | 323 | # 防火墙的配置和应用 {id="setup-iptables"} 324 | 325 | --- 326 | 327 | ## 路由模式 328 | 329 | ![](images/chap0x08/routing-mode.png) 330 | 331 | --- 332 | 333 | ## 透明模式 334 | 335 | ![](images/chap0x08/transparent-mode.png) 336 | 337 | --- 338 | 339 | ## 混合模式 340 | 341 | ![](images/chap0x08/hybrid-mode.png) 342 | 343 | --- 344 | 345 | ## 防火墙部署的其他细节 {id="fw-setup-tips-1"} 346 | 347 | * 双机热备模式 348 | * 避免单点故障 349 | * 负载均衡模式 350 | * 性能扩展 351 | * 避免单点故障 352 | 353 | --- 354 | 355 | ### 负载均衡模式部署的防火墙 356 | 357 | ![](images/chap0x08/lb-fw.png) 358 | 359 | --- 360 | 361 | ## 防火墙部署的其他细节 {id="fw-setup-tips-2"} 362 | 363 | ![](images/chap0x08/tips-fw.png) 364 | 365 | --- 366 | 367 | ## 单机防火墙配置 368 | 369 | * ufw 370 | * ufw 简介 371 | * ufw 使用 372 | * iptables 373 | * iptables 简介 374 | * iptables 使用 375 | 376 | --- 377 | 378 | ### UFW - Uncomplicated Firewall 379 | 380 | * UFW 是 `Ubuntu` 开发团队为 `Ubuntu` 发行版量身定制的简化版 `iptables` 命令行配置工具 381 | 382 | --- 383 | 384 | ### ufw 使用 {id="ufw-howto-use"} 385 | 386 | [UFW 官网文档](https://help.ubuntu.com/community/UFW) 387 | 388 | --- 389 | 390 | ## iptables 391 | 392 | > sudo iptables --help 393 | 394 | --- 395 | 396 | ### 推荐的 iptables 规则管理方法 {id="recommended-rules-manage"} 397 | 398 | ```bash 399 | # 需要 root 权限 400 | # 导出当前防火墙规则到文件 401 | iptables-save > iptables.rules 402 | 403 | # 备份当前规则文件 404 | cp iptables.rules iptables.rules.bak 405 | 406 | # 用文本编辑器编辑上一步备份出来的当前 iptables 规则文件的副本 iptables.rules 407 | 408 | # 应用编辑后的防火墙规则 409 | # -c 指定在还原 iptables 时候,重置当前的数据包计数器和字节计数器的值为零 410 | iptables-restore < iptables.rules 411 | 412 | # 随时可以使用之前备份的 iptables.rules.bak 来重置回最近一次没问题的规则 413 | ``` 414 | 415 | # 基于防火墙实现 NAT {id="nat-based-on-fw"} 416 | 417 | --- 418 | 419 | * 私有地址(private address)属于非注册地址,是专门为组织机构内部使用而划定的。如下图: 420 | 421 | ![](images/chap0x08/private-addr-range.png) 422 | 423 | --- 424 | 425 | * NAT 是将一个地址域(如专用 Intranet)映射到另一个地址域(如 Internet)的标准方法 426 | * NAT 可以将内部网络中的所有节点的地址转换成一个 IP 地址,反之亦然 427 | * 可以应用到防火墙技术里,把个别 IP 地址隐藏起来不被外部发现,使外部无法直接访问内部网络设备 428 | 429 | --- 430 | 431 | ## NAT 工作原理 {id="nat-internals"} 432 | 433 | * 静态网络地址转换 434 | * 动态网络地址转换 435 | * 网络地址端口映射 436 | 437 | --- 438 | 439 | ### 静态地址转换 440 | 441 | * 将公网 IP 地址一一对应地转换为内部私有 IP 地址 442 | 443 | ![](images/chap0x08/nat-type-1.png) 444 | 445 | --- 446 | 447 | ### 动态地址转换 448 | 449 | * 将内部本地地址与内部合法地址一对一的进行转换 450 | 与静态地址转换不同的是它是从内部合法地址池动态分配临时的 IP 地址来对内部本地地址进行转换 451 | 452 | ![](images/chap0x08/nat-type-2.png) 453 | 454 | --- 455 | 456 | ### 网络地址端口映射 457 | 458 | 将公网 IP 映射到私有 IP ,而外网多个 IP 被映射到同一内部共有 IP 地址的不同端口 459 | 460 | ![](images/chap0x08/nat-type-3.png) 461 | 462 | # 防火墙规则调试和审查 463 | 464 | --- 465 | 466 | ## 防火墙规则调试 467 | 468 | 按照课本里的 [实验四:防火墙规则调试](https://c4pr1c3.github.io/cuc-ns/chap0x08/exp.html#%E5%AE%9E%E9%AA%8C%E5%9B%9B%EF%BC%9A%E9%98%B2%E7%81%AB%E5%A2%99%E8%A7%84%E5%88%99%E8%B0%83%E8%AF%95) 动手实验完成。 469 | 470 | --- 471 | 472 | ## 防火墙规则审查 473 | 474 | * 静态分析工具(主要是商业工具,缺开源解决方案) 475 | * 防火墙规则的语义理解 476 | * 数据流图分析 477 | * 自动化规则树生成 478 | * 黑盒测试工具 479 | * 基于网络扫描器的模糊测试 480 | 481 | # nftables 482 | 483 | --- 484 | 485 | 摘录 [nftables 官网](https://www.netfilter.org/projects/nftables/index.html) 的一句话描述 486 | 487 | > **nftables** replaces the popular **{ip,ip6,arp,eb}tables**. This software provides a new in-kernel packet classification framework that is based on a network-specific Virtual Machine (VM) and a new **nft** userspace command line tool. **nftables** reuses the existing Netfilter subsystems such as the existing hook infrastructure, the connection tracking system, NAT, userspace queueing and logging subsystem. 488 | 489 | --- 490 | 491 | ## nftables 与 iptables 的关系 {id="nftables-vs-iptables"} 492 | 493 | * 均基于 `Netfilter` 内核 494 | * `nftables` 简化了配置语法和新增了「语法糖」 495 | * 一个工具整合了多重协议栈多个独立工具 {ip,ip6,arp,eb}tables 496 | * 允许一条规则定义多重匹配条件 497 | * 允许一条规则匹配后执行多个 action 498 | * `nftables` 提升了规则匹配和报文处理性能 499 | * `nftables` 支持导出数据为 `JSON` 和 `XML` 格式 500 | * `nftables` 增强了调试便利性 501 | * `nftables` 没有内置默认「表/链」 502 | 503 | --- 504 | 505 | ## [从 iptables 迁移到 nftables](https://wiki.nftables.org/wiki-nftables/index.php/Moving_from_iptables_to_nftables) {id="moving-from-iptables-to-nftables"} 506 | 507 | ```bash 508 | # 检查当前系统内核是否加载了 nf_tables 内核模块 509 | modinfo nf_tables 510 | # 如下输出信息表示已加载 511 | # filename: /lib/modules/5.7.0-kali1-amd64/kernel/net/netfilter/nf_tables.ko 512 | # alias: nfnetlink-subsys-10 513 | # author: Patrick McHardy 514 | # license: GPL 515 | # depends: nfnetlink 516 | # retpoline: Y 517 | # intree: Y 518 | # name: nf_tables 519 | # vermagic: 5.7.0-kali1-amd64 SMP mod_unload modversions 520 | 521 | # 检查加载了哪些 nf_tables 有关的模块 522 | lsmod | grep nf_tableso 523 | # nf_tables 229376 237 nft_compat,nft_counter,nft_chain_nat 524 | # nfnetlink 16384 4 nft_compat,nf_conntrack_netlink,nf_tables 525 | # 检查当前系统上是否已安装 nftables 工具 526 | 527 | apt policy nftables 528 | # nftables: 529 | # Installed: 0.9.6-1 530 | # Candidate: 0.9.6-1 531 | # Version table: 532 | # *** 0.9.6-1 500 533 | # 500 http://http.kali.org/kali kali-rolling/main amd64 Packages 534 | # 100 /var/lib/dpkg/status 535 | 536 | # 如果没有安装,则执行安装操作 537 | sudo apt update && sudo apt install nftables 538 | 539 | # 导出 iptables 规则 540 | iptables-save > iptables.rules 541 | 542 | # 使用 iptables-restore-translate 翻译 iptables 规则并保存 543 | iptables-restore-translate -f iptables.rules > ruleset.nft 544 | 545 | # 查看当前 nftables 规则 546 | nft list ruleset 547 | 548 | # 确认已备份当前主机的防火墙规则 549 | # nftables 已加载了当前防火墙规则 550 | # 清空 iptables 规则,并准备禁用 iptables 只保留 nftables 用来规则防火墙规则 551 | sudo iptables -F 552 | sudo ip6tables -F 553 | ``` 554 | 555 | --- 556 | 557 | ## 主流 Linux 发行版对 nftables 的支持情况 558 | 559 | * 从 2014 年 1 月 19 日发布的 Linux 内核源代码 3.13 开始支持 `nftables` 560 | * [2020 年 4 月 28 日发布的 Fedora 32 默认启用 nftables 代替 iptables](https://fedoraproject.org/wiki/Releases/32/ChangeSet#Firewalld_Default_to_nftables) 561 | * [2019 年 5 月 7 日发布的 RedHat 企业版 8 开始默认启用 nftables 代替 iptables](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/getting-started-with-nftables_configuring-and-managing-networking) 562 | * [2019 年 7 月 6 日发布的 Debian Buster(10.0) 版本开始默认启用 nftables 代替 iptables](https://wiki.debian.org/nftables) 563 | 564 | # 网闸 565 | 566 | --- 567 | 568 | * 其他别名:安全隔离与信息交换系统 / 物理隔离网闸 / 安全隔离网闸 569 | * 实现 **不同安全级别网络** 之间的安全隔离,并提供适度可控的 **数据交换** 的软硬件系统 570 | * 从「隔离」网络的角度来说,和防火墙的作用有相似之处 571 | 572 | --- 573 | 574 | ## 网闸与防火墙的区别与联系 {id="ng-vs-fw-1"} 575 | 576 | * 网闸是相对新的一个产品概念,与防火墙相比,网闸缺少标准化的学术模型 577 | * 只应用在「高安全等级」网络保护环境 578 | * 网闸直接采用 `物理隔离` 方式实现 **不同信任程度** 之间网络的隔离 579 | 580 | --- 581 | 582 | ## 网闸与防火墙的区别与联系 {id="ng-vs-fw-2"} 583 | 584 | * 网闸采用基于非 TCP/IP 协议的 **数据交换** 方式,杜绝基于 TCP/IP 协议的网络攻击手段 585 | * 网闸软硬件实现均不基于通用操作系统,而是走定制化(基于 BSD 或精简安全加固后 Linux 系统、嵌入式操作系统 VxWorks 等)专用操作系统路线 586 | * 网闸不支持跨网络的访问,不同网络之间实现 **通信协议** 级别隔离,只支持 **数据交换** ,且同一时刻只允许「 **单向** 数据流动」 587 | * 类似「自动化」U 盘数据摆渡系统 588 | 589 | # 防水墙 590 | 591 | --- 592 | 593 | 填补防火墙「防外不防内」的防护能力空白:专注于「内部网络」安全问题 594 | 595 | * 信息泄露 596 | * 限制内网的「横向移动」行为 597 | 598 | --- 599 | 600 | * 和网闸类似,防水墙同样缺少标准化的学术模型,防水墙的安全能力边界并没有统一定义 601 | * 缺少开源解决方案,只有商业解决方案 602 | 603 | # 课后思考题 604 | 605 | --- 606 | 607 | 1. 防火墙的典型网络部署方式有哪些 608 | 2. 防火墙能实现的和不能实现的防护各有哪些 609 | 610 | -------------------------------------------------------------------------------- /chap0x08.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "网络安全" 3 | author: 黄玮 4 | output: revealjs::revealjs_presentation 5 | --- 6 | 7 | # 第八章 防火墙 8 | 9 | --- 10 | 11 | ## 温故 12 | 13 | * 网络与系统渗透无孔不入 14 | * 人 15 | * 应用程序 16 | * 网络设备 17 | * 主机/服务器操作系统 18 | * 物理设备 19 | * 掌握网络与系统渗透方法 20 | * 知己知彼,百战不殆 21 | 22 | --- 23 | 24 | ## 知新 25 | 26 | * 防火墙在网络与系统防御中的作用和地位 27 | * 防火墙实现的关键技术 28 | * 防火墙实例及应用 29 | 30 | # 防火墙概述 31 | 32 | --- 33 | 34 | ## 定义 35 | 36 | > 在两个 **信任程度不同** 的网络之间设置的、用于加强 `访问控制` 的 **软硬件** 保护措施。 37 | 38 | ![](images/chap0x08/firewall-definition.png) 39 | 40 | --- 41 | 42 | ### 信任程度不同的网络 43 | 44 | * 外网:外部网络,不仅包括互联网,泛指一切非当前防火墙保护范围的网络 45 | * 内网:内部网络,此处特指防火墙保护范围内的网络 46 | * 边界:外网和内网之间的通信过程必须经过「防火墙」的 `访问控制` ,此时防火墙在整个网络拓扑中的逻辑位置相当于就是网络「边界」 47 | 48 | --- 49 | 50 | ### 访问控制 {id="network-acl-1"} 51 | 52 | * 入站(`Inbound`)。从 `外网` 发起,目的地是 `内网` 的流量方向 53 | * 出站(`Outbound`)。从 `内网` 发起,目的地是 `外网` 的流量方向 54 | * 防外不防内 55 | * 防外:与外部网络有关的流量可以被防火墙审查,进而达到保护效果 56 | * 不防内:非 `入站` 和 `出站` 流量,属于内部网络中节点之间的流量由于不流经防火墙,所以防火墙无法对流量进行审查,自然就无法保护了 57 | 58 | --- 59 | 60 | ### 访问控制 {id="network-acl-2"} 61 | 62 | * 粗粒度防护:取决于网络防火墙对网络流量的检查 **粒度** ,绝大多数情况下我们使用的都是网络层防火墙,不具备 **深度包检测** 能力 63 | * 深度包检测(`Deep Packet Insepction`, `DPI`):又称 **完全数据包探测(complete packet inspection)** 或 **信息萃取(Information eXtraction,IX)**,是一种网络数据包过滤技术,用来检查通过检测点数据包的内容负载部分(也可能包含其报文头部) 64 | 65 | --- 66 | 67 | 为什么要强调 **深度包检测** 这个概念? 68 | 69 | --- 70 | 71 | > 因为只有看见,才能让「访问控制」有的放矢,才能落实保护。 72 | 73 | --- 74 | 75 | ## 防火墙发展简史 76 | 77 | ![](images/chap0x08/firewall-history.png) 78 | 79 | --- 80 | 81 | ### “上古” 防火墙 {id="legacy-fw"} 82 | 83 | * 第一代防火墙 84 | * 采用了包过滤技术 85 | * 第二代、第三代防火墙 86 | * 1989 年,推出了电路层防火墙和应用层防火墙的初步结构 87 | * 第四代防火墙 88 | * 1992 年,开发出了基于动态包过滤技术的第四代防火墙 89 | * 第五代防火墙 90 | * 1998 年,NAI公司推出一种自适应代理技术,可以称之为第五代防火墙 91 | 92 | --- 93 | 94 | ### 现代防火墙 {id="modern-fw"} 95 | 96 | * 一体化安全网关 UTM 97 | * 统一威胁管理 98 | * 整合防火墙、入侵检测、入侵保护、防病毒、防垃圾邮件等综合功能 99 | * 应用防火墙 100 | * 又可以称为IPS:入侵保护 101 | * 普遍采用了 `深度包检测` 技术 102 | * 病毒防火墙 103 | * Web 防火墙 104 | * VoIP 防火墙 105 | * 。。。 106 | 107 | --- 108 | 109 | ## 防火墙现状与发展 {id="fw-status-and-future-1"} 110 | 111 | * 网络安全基础设施必有一席之地 112 | * 开源产品和商业产品百家齐放 113 | * 开源防火墙代表:[pfSense](https://www.pfsense.org/)、[OPNSense](https://opnsense.org/)、[Untangle – NG Firewall](https://www.untangle.com/)、[ClearOS](https://www.clearos.com/)、[IPFire](https://www.ipfire.org/)、[Smoothwall Express](http://www.smoothwall.org/)、[IPCop](https://distrowatch.com/)、[ufw](https://help.ubuntu.com/community/UFW)、[Shorewall](http://www.shorewall.org/)、[Endian Firewall Community](https://www.endian.com/)、[VyOS](https://www.vyos.io/) 114 | * 不断提升的 **吞吐性能** 115 | * 接入带宽:百兆 / 千兆 / 万兆 116 | * 并发处理能力(状态检测防火墙):千、万、十万、百万 117 | 118 | --- 119 | 120 | ## 防火墙现状与发展 {id="fw-status-and-future-2"} 121 | 122 | * 持续发展的 `深度包检测` 123 | * 支持识别的应用层协议种类越来越多 124 | * 加密流量的处理方式「八仙过海各显神通」 125 | * 集成恶意代码、垃圾信息检测等多样化防护能力 126 | * 增值功能越来越多 127 | * 代理、负载均衡、计费、VPN 等 128 | * 满足云计算环境中的防火墙部署需求 129 | * 虚拟化能力 130 | * SDN 能力 131 | 132 | --- 133 | 134 | ![](images/chap0x08/gartner-2019-fw-magic-quadrant.png) 135 | 136 | > 华为、深信服(Sangfor)、启明星辰(Venustech)、山石网科(Hillstone)、新华三(H3C) 137 | 138 | --- 139 | 140 | ![](images/chap0x08/gartner-2022-fw-magic-quadrant.png) 141 | 142 | > 华为、深信服(Sangfor)、启明星辰(Venustech)、山石网科(Hillstone)、新华三(H3C)、阿里云(Alibaba Cloud) 143 | 144 | 145 | # 防火墙技术原理 146 | 147 | --- 148 | 149 | ## 防火墙关键技术 150 | 151 | * 包过滤技术 152 | * 状态检测技术 153 | * 应用级代理技术 154 | 155 | --- 156 | 157 | ## 包过滤技术 158 | 159 | ![](images/chap0x08/packet-filter.png) 160 | 161 | --- 162 | 163 | ### 检查数据包的报头信息 164 | 165 | 1. IP 数据报的源 IP 地址、目的 IP 地址、协议类型,选项字段等 166 | 2. TCP 数据包的源端口、目标端口、标志段等 167 | 3. UDP 数据包的源端口、目标端口 168 | 4. ICMP 类型 169 | 170 | --- 171 | 172 | ### 包过滤技术的优点 173 | 174 | * 不需要内部网络用户做任何配置,对用户来说是完全透明的 175 | * 过滤速度快,效率高 176 | 177 | --- 178 | 179 | ### 包过滤技术的缺点 180 | 181 | * 不能进行数据内容级别的访问控制 182 | * 一些应用协议不适合用数据报过滤 183 | * 过滤规则的配置复杂,容易产生冲突和漏洞 184 | 185 | --- 186 | 187 | ## 状态检测技术 188 | 189 | ![](images/chap0x08/state-check-1.png) 190 | 191 | --- 192 | 193 | ![](images/chap0x08/state-check-2.png) 194 | 195 | --- 196 | 197 | ### 状态检测技术的优点 198 | 199 | * 状态表是动态建立的,可以实现对一些复杂协议建立的临时端口进行有效的管理 200 | * 状态检测技术是为每一个会话连接建立、维护其状态信息,并利用这些状态信息对数据包进行过滤 201 | * 动态状态表是状态检测防火墙的核心,利用其可以实现比包过滤防火墙更强的控制访问能力 202 | 203 | --- 204 | 205 | ### 状态检测技术的缺点 206 | 207 | * 没有对数据包内容进行检测,不能进行数据内容级别的控制 208 | * 允许外网主机与内网主机直接连接,增加了内网主机被外部攻击者直接攻击的风险 209 | 210 | --- 211 | 212 | ## 应用级代理 213 | 214 | ![](images/chap0x08/proxy-1.png) 215 | 216 | --- 217 | 218 | ### 应用级代理示例 219 | 220 | ![](images/chap0x08/proxy-2.png) 221 | 222 | --- 223 | 224 | ### 应用级代理优点 225 | 226 | * 内部网络的拓扑、IP 地址等被代理防火墙屏蔽,能有效实现内外网络的隔离 227 | * 具有强鉴别和日志能力,支持用户身份识别,实现用户级的安全 228 | * 能进行数据内容的检查,实现基于内容的过滤,对通信进行严密的监控 229 | * 过滤规则比数据包过滤规则简单 230 | 231 | --- 232 | 233 | ### 应用级代理缺点 234 | 235 | * 代理服务的额外处理请求降低了过滤性能,其过滤速度比包过滤器速度慢 236 | * 需要为每一种应用服务编写代理软件模块,提供的服务数目有限 237 | * 对操作系统的依赖程度高,容易因操作系统和应用软件的缺陷而受到攻击 238 | 239 | # 防火墙的实现技术 240 | 241 | --- 242 | 243 | 以 Linux 操作系统上的 Netfilter/iptables 机制为例 244 | 245 | --- 246 | 247 | ## Netfilter/iptables 框架简介 248 | 249 | * `Netfilter/iptables` 从 `Linux` 内核版本 `2.4` 开始,默认被包含在内核源代码树中 250 | * 可以对操作系统的流入和流出数据报文进行控制 251 | * 防火墙 252 | * NAT 253 | * 数据报文自定义修改 254 | * `Netfilter` 工作在系统内核层 255 | * `iptables` 工作在用户态 256 | 257 | --- 258 | 259 | ## Netfilter/iptables 架构 {id="netfilter-iptables-arch-1"} 260 | 261 | ![](images/chap0x08/netfilter-iptables-arch-1.png) 262 | 263 | --- 264 | 265 | ## Netfilter/iptables 架构 {id="netfilter-iptables-arch-2"} 266 | 267 | ![](images/chap0x08/netfilter-iptables-arch-2.png) 268 | 269 | --- 270 | 271 | ## iptables 基本概念 {id="iptables-basics-1"} 272 | 273 | * 表(tables) 274 | * filter表、nat表、mangle表、raw表 275 | * 链(chains) 276 | * 数据包的传输路径,每条链其实就是众多规则中的一个检查清单 277 | * Input、Forward、PreRouting、PostRouting、Output 278 | * 规则(rules) 279 | * 网络管理员预定义的网络 **访问控制策略** 280 | 281 | --- 282 | 283 | ## iptables 基本概念 {id="iptables-basics-2"} 284 | 285 | * filter 表 286 | * 报文过滤 287 | * 只读过滤报文 288 | * nat 表 289 | * 实现 NAT 服务 290 | * mangle表 291 | * 报文处理:修改报文和附加额外数据到报文 292 | * raw表 293 | * 可以对收到的报文在连接跟踪前进行处理 294 | * 只作用于 `PreRouting` 和 `Output` 链 295 | 296 | --- 297 | 298 | ## iptables 中的报文检查流程 {id="iptables-workflow"} 299 | 300 | ![](images/chap0x08/netfilter-iptables-workflow.png) 301 | 302 | > raw > mangle > nat > filter 303 | 304 | --- 305 | 306 | ## netfilter 架构的数据流图 {id="netfilter-internal-workflow"} 307 | 308 | ![](images/chap0x08/netfilter-iptables-arch-3.png) 309 | 310 | --- 311 | 312 | ## 部署了 Netfilter/iptables 的操作系统 {id="netfilter-iptables-on-host"} 313 | 314 | ![](images/chap0x08/netfilter-iptables-on-host.png) 315 | 316 | --- 317 | 318 | ## 硬件防火墙 319 | 320 | * 通用 CPU 架构 321 | * ASIC 架构 322 | * 网络处理器架构 323 | 324 | --- 325 | 326 | ### 通用 CPU 架构防火墙 {id="x86-fw"} 327 | 328 | * 又被称为x86架构 329 | * 采用通用CPU和PCI总线接口 330 | * 可编程性高 331 | * 更灵活 332 | * 更易扩展 333 | * 产品功能主要由软件实现 334 | * 代表产品 335 | * 大部分的开源/商业软件防火墙(基于*nix系统) 336 | 337 | --- 338 | 339 | ### ASIC 架构防火墙 {id="asic-fw"} 340 | 341 | * Application Specific Integrated Circuit 342 | * 专用集成电路 343 | * 一种带有逻辑处理的加速处理器 344 | * 把一些原先由 CPU 完成的经常性和重复工作交给 ASIC 芯片来负责完成 345 | * 交换机、路由器、智能 IC 卡 346 | * 通常配合通用CPU单元来完成复杂运算 347 | * 代表产品 348 | * 大部分国外的商业硬件防火墙 349 | 350 | --- 351 | 352 | ### NP 架构防火墙 {id="np-fw"} 353 | 354 | * Network Processor:网络处理器 355 | * 通用 CPU 架构和 ASIC 架构的折衷 356 | * 开发难度 357 | * 性能 358 | * 灵活性/可扩展性 359 | * 代表产品 360 | * 大部分国内的商业硬件防火墙 361 | 362 | --- 363 | 364 | ### 三种硬件架构的横向比较 365 | 366 | | 架构类型 | X86 | NP | ASIC | 367 | | :--- | :--- | :--- | :--- | 368 | | 灵活性 | ★★★ | ★★ | ★ | 369 | | 扩展性 | ★★★ | ★★ | ★ | 370 | | 性能 | ★ | ★★ | ★★★ | 371 | | 安全性 | ★ | ★★ | ★★★ | 372 | | 价格 | 低 | 中等 | 较高 | 373 | 374 | # 防火墙的配置和应用 {id="setup-iptables"} 375 | 376 | --- 377 | 378 | ## 路由模式 379 | 380 | ![](images/chap0x08/routing-mode.png) 381 | 382 | --- 383 | 384 | ## 透明模式 385 | 386 | ![](images/chap0x08/transparent-mode.png) 387 | 388 | --- 389 | 390 | ## 混合模式 391 | 392 | ![](images/chap0x08/hybrid-mode.png) 393 | 394 | --- 395 | 396 | ## 防火墙部署的其他细节 {id="fw-setup-tips-1"} 397 | 398 | * 双机热备模式 399 | * 避免单点故障 400 | * 负载均衡模式 401 | * 性能扩展 402 | * 避免单点故障 403 | 404 | --- 405 | 406 | ### 负载均衡模式部署的防火墙 407 | 408 | ![](images/chap0x08/lb-fw.png) 409 | 410 | --- 411 | 412 | ## 防火墙部署的其他细节 {id="fw-setup-tips-2"} 413 | 414 | ![](images/chap0x08/tips-fw.png) 415 | 416 | --- 417 | 418 | ## 单机防火墙配置 419 | 420 | * ufw 421 | * ufw 简介 422 | * ufw 使用 423 | * iptables 424 | * iptables 简介 425 | * iptables 使用 426 | 427 | --- 428 | 429 | ### UFW - Uncomplicated Firewall 430 | 431 | * UFW 是 `Ubuntu` 开发团队为 `Ubuntu` 发行版量身定制的简化版 `iptables` 命令行配置工具 432 | 433 | --- 434 | 435 | ### ufw 使用 {id="ufw-howto-use"} 436 | 437 | [UFW 官网文档](https://help.ubuntu.com/community/UFW) 438 | 439 | --- 440 | 441 | ## iptables 442 | 443 | > sudo iptables --help 444 | 445 | --- 446 | 447 | ### 推荐的 iptables 规则管理方法 {id="recommended-rules-manage"} 448 | 449 | ```bash 450 | # 需要 root 权限 451 | # 导出当前防火墙规则到文件 452 | iptables-save > iptables.rules 453 | 454 | # 备份当前规则文件 455 | cp iptables.rules iptables.rules.bak 456 | 457 | # 用文本编辑器编辑上一步备份出来的当前 iptables 规则文件的副本 iptables.rules 458 | 459 | # 应用编辑后的防火墙规则 460 | # -c 指定在还原 iptables 时候,重置当前的数据包计数器和字节计数器的值为零 461 | iptables-restore < iptables.rules 462 | 463 | # 随时可以使用之前备份的 iptables.rules.bak 来重置回最近一次没问题的规则 464 | ``` 465 | 466 | # 基于防火墙实现 NAT {id="nat-based-on-fw"} 467 | 468 | --- 469 | 470 | * 私有地址(private address)属于非注册地址,是专门为组织机构内部使用而划定的。如下图: 471 | 472 | ![](images/chap0x08/private-addr-range.png) 473 | 474 | --- 475 | 476 | * NAT 是将一个地址域(如专用 Intranet)映射到另一个地址域(如 Internet)的标准方法 477 | * NAT 可以将内部网络中的所有节点的地址转换成一个 IP 地址,反之亦然 478 | * 可以应用到防火墙技术里,把个别 IP 地址隐藏起来不被外部发现,使外部无法直接访问内部网络设备 479 | 480 | --- 481 | 482 | ## NAT 工作原理 {id="nat-internals"} 483 | 484 | * 静态网络地址转换 485 | * 动态网络地址转换 486 | * 网络地址端口映射 487 | 488 | --- 489 | 490 | ### 静态地址转换 491 | 492 | * 将公网 IP 地址一一对应地转换为内部私有 IP 地址 493 | 494 | ![](images/chap0x08/nat-type-1.png) 495 | 496 | --- 497 | 498 | ### 动态地址转换 499 | 500 | * 将内部本地地址与内部合法地址一对一的进行转换 501 | 与静态地址转换不同的是它是从内部合法地址池动态分配临时的 IP 地址来对内部本地地址进行转换 502 | 503 | ![](images/chap0x08/nat-type-2.png) 504 | 505 | --- 506 | 507 | ### 网络地址端口映射 508 | 509 | 将公网 IP 映射到私有 IP ,而外网多个 IP 被映射到同一内部共有 IP 地址的不同端口 510 | 511 | ![](images/chap0x08/nat-type-3.png) 512 | 513 | # 防火墙规则调试和审查 514 | 515 | --- 516 | 517 | ## 防火墙规则调试 518 | 519 | 按照课本里的 [实验四:防火墙规则调试](https://c4pr1c3.github.io/cuc-ns/chap0x08/exp.html#%E5%AE%9E%E9%AA%8C%E5%9B%9B%EF%BC%9A%E9%98%B2%E7%81%AB%E5%A2%99%E8%A7%84%E5%88%99%E8%B0%83%E8%AF%95) 动手实验完成。 520 | 521 | --- 522 | 523 | ## 防火墙规则审查 524 | 525 | * 静态分析工具(主要是商业工具,缺开源解决方案) 526 | * 防火墙规则的语义理解 527 | * 数据流图分析 528 | * 自动化规则树生成 529 | * 黑盒测试工具 530 | * 基于网络扫描器的模糊测试 531 | 532 | # nftables 533 | 534 | --- 535 | 536 | 摘录 [nftables 官网](https://www.netfilter.org/projects/nftables/index.html) 的一句话描述 537 | 538 | > **nftables** replaces the popular **{ip,ip6,arp,eb}tables**. This software provides a new in-kernel packet classification framework that is based on a network-specific Virtual Machine (VM) and a new **nft** userspace command line tool. **nftables** reuses the existing Netfilter subsystems such as the existing hook infrastructure, the connection tracking system, NAT, userspace queueing and logging subsystem. 539 | 540 | --- 541 | 542 | ## nftables 与 iptables 的关系 {id="nftables-vs-iptables"} 543 | 544 | * 均基于 `Netfilter` 内核 545 | * `nftables` 简化了配置语法和新增了「语法糖」 546 | * 一个工具整合了多重协议栈多个独立工具 {ip,ip6,arp,eb}tables 547 | * 允许一条规则定义多重匹配条件 548 | * 允许一条规则匹配后执行多个 action 549 | * `nftables` 提升了规则匹配和报文处理性能 550 | * `nftables` 支持导出数据为 `JSON` 和 `XML` 格式 551 | * `nftables` 增强了调试便利性 552 | * `nftables` 没有内置默认「表/链」 553 | 554 | --- 555 | 556 | ## [从 iptables 迁移到 nftables](https://wiki.nftables.org/wiki-nftables/index.php/Moving_from_iptables_to_nftables) {id="moving-from-iptables-to-nftables"} 557 | 558 | ```bash 559 | # 检查当前系统内核是否加载了 nf_tables 内核模块 560 | modinfo nf_tables 561 | # 如下输出信息表示已加载 562 | # filename: /lib/modules/5.7.0-kali1-amd64/kernel/net/netfilter/nf_tables.ko 563 | # alias: nfnetlink-subsys-10 564 | # author: Patrick McHardy 565 | # license: GPL 566 | # depends: nfnetlink 567 | # retpoline: Y 568 | # intree: Y 569 | # name: nf_tables 570 | # vermagic: 5.7.0-kali1-amd64 SMP mod_unload modversions 571 | 572 | # 检查加载了哪些 nf_tables 有关的模块 573 | lsmod | grep nf_tableso 574 | # nf_tables 229376 237 nft_compat,nft_counter,nft_chain_nat 575 | # nfnetlink 16384 4 nft_compat,nf_conntrack_netlink,nf_tables 576 | # 检查当前系统上是否已安装 nftables 工具 577 | 578 | apt policy nftables 579 | # nftables: 580 | # Installed: 0.9.6-1 581 | # Candidate: 0.9.6-1 582 | # Version table: 583 | # *** 0.9.6-1 500 584 | # 500 http://http.kali.org/kali kali-rolling/main amd64 Packages 585 | # 100 /var/lib/dpkg/status 586 | 587 | # 如果没有安装,则执行安装操作 588 | sudo apt update && sudo apt install nftables 589 | 590 | # 导出 iptables 规则 591 | iptables-save > iptables.rules 592 | 593 | # 使用 iptables-restore-translate 翻译 iptables 规则并保存 594 | iptables-restore-translate -f iptables.rules > ruleset.nft 595 | 596 | # 查看当前 nftables 规则 597 | nft list ruleset 598 | 599 | # 确认已备份当前主机的防火墙规则 600 | # nftables 已加载了当前防火墙规则 601 | # 清空 iptables 规则,并准备禁用 iptables 只保留 nftables 用来规则防火墙规则 602 | sudo iptables -F 603 | sudo ip6tables -F 604 | ``` 605 | 606 | --- 607 | 608 | ## 主流 Linux 发行版对 nftables 的支持情况 609 | 610 | * 从 2014 年 1 月 19 日发布的 Linux 内核源代码 3.13 开始支持 `nftables` 611 | * [2020 年 4 月 28 日发布的 Fedora 32 默认启用 nftables 代替 iptables](https://fedoraproject.org/wiki/Releases/32/ChangeSet#Firewalld_Default_to_nftables) 612 | * [2019 年 5 月 7 日发布的 RedHat 企业版 8 开始默认启用 nftables 代替 iptables](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/getting-started-with-nftables_configuring-and-managing-networking) 613 | * [2019 年 7 月 6 日发布的 Debian Buster(10.0) 版本开始默认启用 nftables 代替 iptables](https://wiki.debian.org/nftables) 614 | 615 | # 网闸 616 | 617 | --- 618 | 619 | * 其他别名:安全隔离与信息交换系统 / 物理隔离网闸 / 安全隔离网闸 620 | * 实现 **不同安全级别网络** 之间的安全隔离,并提供适度可控的 **数据交换** 的软硬件系统 621 | * 从「隔离」网络的角度来说,和防火墙的作用有相似之处 622 | 623 | --- 624 | 625 | ## 网闸与防火墙的区别与联系 {id="ng-vs-fw-1"} 626 | 627 | * 网闸是相对新的一个产品概念,与防火墙相比,网闸缺少标准化的学术模型 628 | * 只应用在「高安全等级」网络保护环境 629 | * 网闸直接采用 `物理隔离` 方式实现 **不同信任程度** 之间网络的隔离 630 | 631 | --- 632 | 633 | ## 网闸与防火墙的区别与联系 {id="ng-vs-fw-2"} 634 | 635 | * 网闸采用基于非 TCP/IP 协议的 **数据交换** 方式,杜绝基于 TCP/IP 协议的网络攻击手段 636 | * 网闸软硬件实现均不基于通用操作系统,而是走定制化(基于 BSD 或精简安全加固后 Linux 系统、嵌入式操作系统 VxWorks 等)专用操作系统路线 637 | * 网闸不支持跨网络的访问,不同网络之间实现 **通信协议** 级别隔离,只支持 **数据交换** ,且同一时刻只允许「 **单向** 数据流动」 638 | * 类似「自动化」U 盘数据摆渡系统 639 | 640 | # 防水墙 641 | 642 | --- 643 | 644 | 填补防火墙「防外不防内」的防护能力空白:专注于「内部网络」安全问题 645 | 646 | * 信息泄露 647 | * 限制内网的「横向移动」行为 648 | 649 | --- 650 | 651 | * 和网闸类似,防水墙同样缺少标准化的学术模型,防水墙的安全能力边界并没有统一定义 652 | * 缺少开源解决方案,只有商业解决方案 653 | 654 | # 课后思考题 655 | 656 | --- 657 | 658 | 1. 防火墙的典型网络部署方式有哪些 659 | 2. 防火墙能实现的和不能实现的防护各有哪些 660 | 661 | -------------------------------------------------------------------------------- /chap0x11.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "网络安全" 3 | author: 黄玮 4 | output: revealjs::revealjs_presentation 5 | --- 6 | 7 | # 第十一章 蜜罐和蜜网 8 | 9 | --- 10 | 11 | ## 温故 {id="review-1"} 12 | 13 | * 信息安全的本质——持续对抗 14 | * 网络渗透与系统入侵 VS. 防火墙 / 入侵检测 / 应用程序安全加固 15 | * 持续对抗的双方是 **非对称** 的对抗 16 | 17 | --- 18 | 19 | ## 温故 {id="review-2"} 20 | 21 | * 工作量不对称 22 | * 攻击方:夜深人静, 节假日,攻其不备 23 | * 防守方:24*7, 全面防护,木桶原理 24 | * 信息不对称 25 | * 攻击方:通过信息收集、网络扫描、探测、踩点对攻击目标全面了解 26 | * 防守方:对攻击方一无所知 27 | * 后果不对称 28 | * 攻击方:任务失败,极少受到损失 29 | * 防守方:安全机制被突破,资产损失,其他影响 30 | 31 | --- 32 | 33 | ## 知新 34 | 35 | * 使用蜜罐和蜜网来扭转对抗不对称局面 36 | * 扭转工作量不对称 37 | * 增加攻击成本-假目标 38 | * 扭转信息不对称-了解你的敌人! 39 | * 他们是谁? 40 | * 他们使用什么工具?如何操作? 41 | * 为什么攻击你? 42 | * 扭转后果不对称 43 | * 防守方避免资产损失和其他影响 44 | * 计算机取证-对攻击方的威慑 45 | 46 | ## 本章内容概要 47 | 48 | --- 49 | 50 | * 蜜罐发展史 51 | * 欺骗防御 52 | * 动态防御 53 | * 动态攻击 54 | * 蜜罐关键技术 55 | * 蜜网技术 56 | 57 | # 蜜罐发展史 58 | 59 | --- 60 | 61 | ## 基本概念 62 | 63 | * Honeypot 64 | * 首次出现在Cliff Stoll的小说 `The Cuckoo's Egg` (1990) 65 | * 蜜网项目组给出如下定义(价值/意义): 66 | * `A security resource who's value lies in being probed, attacked or compromised` 67 | * 没有业务上的用途 68 | * 所有流入/流出蜜罐的流量都预示着扫描、攻击及攻陷 69 | * 用以监视、检测和分析攻击 70 | 71 | --- 72 | 73 | ## 蜜罐发展的里程碑 {id="history-of-honeypot"} 74 | 75 | ![](images/chap0x11/honeypot-1.png) 76 | 77 | * 1990: `The Cuckoo's Egg` 78 | * 1997: Fred Cohen: DTK 79 | * 模拟网络服务,虚拟系统 80 | * 2000: 蜜网项目组: Gen II 蜜网 81 | 82 | --- 83 | 84 | ## 蜜罐的分类 {id="classification-of-honeypot-1"} 85 | 86 | * 部署目标 87 | * 产品型 88 | * 研究型 89 | * 交互性:攻击者在蜜罐中活动的交互性级别 90 | * 低交互型 91 | * 高交互型 92 | * 混合型 93 | 94 | --- 95 | 96 | ## 蜜罐的分类 {id="classification-of-honeypot-2"} 97 | 98 | * 新型蜜罐 99 | * 主动式蜜罐 100 | * 蜜场(honeyfarm) 101 | * 蜜信(honeytoken) 102 | * 应用层蜜罐(honeyapp) 103 | * 客户端蜜罐(honeyclient) 104 | 105 | --- 106 | 107 | ## 产品型蜜罐 108 | 109 | * 部署目标: 保护单位网络 110 | * 防御 111 | * 检测 112 | * 帮助对攻击的响应 113 | * 需要网管尽可能少的工作 114 | * 商业产品 115 | * [KFSensor](http://www.keyfocus.net/kfsensor/index.php) 116 | 117 | --- 118 | 119 | ## 研究型蜜罐 120 | 121 | * 部署目标:对黑客攻击进行捕获和分析 122 | * 这些“坏家伙”在干什么 123 | * 了解攻击方法 124 | * 捕获他们的击键记录 125 | * 捕获他们的攻击工具 126 | * 监控他们的会话 127 | * 需要大量时间和精力投入!! 128 | * 实例 129 | * [GenII 蜜网](http://honeynet.onofri.org/papers/gen2/) 130 | * [Honeyd](https://github.com/DataSoft/Honeyd) 131 | 132 | --- 133 | 134 | ## 低交互蜜罐 135 | 136 | * 模拟服务和操作系统 137 | * 只能捕获少量信息 138 | * 容易部署,减少风险 139 | * 实例 140 | * [Dionaea](https://github.com/DinoTools/dionaea) 141 | * [Honeyd](https://github.com/DataSoft/Honeyd) 142 | * [KFSensor](http://www.keyfocus.net/kfsensor/index.php) 143 | 144 | --- 145 | 146 | ## 高交互蜜罐 147 | 148 | * 提供真实的操作系统和服务,而不是模拟 149 | * 可以捕获更丰富的信息 150 | * 部署复杂,高安全风险 151 | * 实例 152 | * [Shadow Daemon](https://shadowd.zecure.org/overview/introduction/) 153 | * [Lyrebird](https://hub.docker.com/r/lyrebird/honeypot-base/) 154 | 155 | --- 156 | 157 | ## 主动式蜜罐技术 158 | 159 | * 动态蜜罐 160 | * 即插即用的解决方案 161 | * 自动调整 162 | * 被动指纹识别技术 163 | * 了解所处的网络环境 164 | * 动态配置 165 | * 虚拟蜜罐 166 | 167 | --- 168 | 169 | ## 蜜场基本思想 170 | 171 | ![](images/chap0x11/honeyfarm.png) 172 | 173 | --- 174 | 175 | ## 重定向机制 176 | 177 | * 对高价值目标映射蜜罐系统 178 | * 动态蜜罐技术 179 | * 不需创建新的目标,而使用已存在的目标 180 | * 将恶意的、未经授权的活动重定向到蜜罐 181 | * 监视和捕获攻击者在蜜罐中的活动 182 | * 计算机取证技术 183 | 184 | --- 185 | 186 | ## 什么时候重定向 187 | 188 | * 非预期的流量 – Hot Zoning 189 | * 非业务(Non-production)目标端口 190 | * 非业务源端口 191 | * Time of day 192 | * 已知攻击 – Bait-n-Switch 193 | * Snort 的修改版本,内联网关 194 | * 将检测到的活动重定向到蜜罐中 195 | * 基于主机的监控 196 | * 监控主机上的未授权活动、或恶意活动, 然后重定向: PaX, Systrace 197 | 198 | --- 199 | 200 | ## 重定向示例 201 | 202 | ![](images/chap0x11/redirect-in-honeyfarm.png) 203 | 204 | 205 | --- 206 | 207 | ## 蜜罐的欺骗性 208 | 209 | * 真实的系统环境 210 | * 系统标识 211 | * IP、traceroute 路径 212 | * 主机名、操作系统内核版本… 213 | * 系统配置和应用程序 214 | * 开放的网络服务… 215 | * 安装的应用程序 216 | * 数据内容 217 | * Proxy and cache? 218 | * 优势:在一个高度可控的环境中愚弄/观察攻击者的所有行动 219 | 220 | --- 221 | 222 | ## 蜜信(HoneyToken) 223 | 224 | * 概念出发点:威胁不仅仅是针对信息系统,也针对 **信息** 本身 225 | * HoneyToken: 正常情况不会使用的一些诱饵信息 226 | * 数据库诱饵记录 227 | * 伪造的弱用户名/口令对 228 | * 如果 HoneyToken 一旦被访问, 预示着攻击发生, 对它进行监视跟踪 229 | 230 | --- 231 | 232 | ### CanaryTokens 233 | 234 | 免费且开源的蜜信制作工具 235 | 236 | [![](images/chap0x11/CanaryTokens-1.png)](https://canarytokens.org/generate) 237 | 238 | --- 239 | 240 | ![](images/chap0x11/CanaryTokens-2.png) 241 | 242 | --- 243 | 244 | ## 应用层蜜罐(Honeyapp) 245 | 246 | * 模拟应用层的服务对非自动化的攻击更具吸引力 247 | * 在应用层能够更有效地对攻击进行分析 248 | * 实例 249 | * Web application honeypot 250 | 251 | --- 252 | 253 | ## 客户端蜜罐(Honeyclient) 254 | 255 | * 越来越多的攻击针对客户端软件 256 | * Web 浏览器 257 | * Email 客户端 258 | * Honeyclient 的设计要考虑 259 | * 应用协议本身 260 | * 需要捕获的攻击 261 | * 基于完整性测试判断是否遭受攻击 262 | * 程序本身 263 | * 配置文件、注册表等 264 | * 分类 265 | * Active honeyclient: 同步交互,如 web-based honeyclient 266 | * Passive honeyclient: 异步交互,如 email honeyclient 267 | 268 | --- 269 | 270 | ## 蜜罐实例 271 | 272 | [Awesome Honeypots](https://github.com/paralax/awesome-honeypots) 273 | 274 | --- 275 | 276 | ## 蜜罐技术优势 277 | 278 | * 高保真-高质量的小数据集 279 | * 低误报率和低漏报率 280 | * 捕获新的攻击及战术 281 | * 并不是资源密集型 282 | * 简单 283 | 284 | --- 285 | 286 | ## 蜜罐技术弱势 287 | 288 | * 劳力/技术密集型 289 | * 局限的视图 290 | * 不能直接防护信息系统 291 | * 引入新的安全风险 292 | * 蜜罐被攻陷 293 | 294 | --- 295 | 296 | ## 安全风险 297 | 298 | * 发现蜜罐 299 | * 蜜罐指纹识别 VS. 消除蜜罐的指纹 300 | * 一旦识破蜜罐:攻击者会向蜜罐反馈虚假、伪造的信息 301 | * 利用蜜罐攻击第三方 302 | * 期望黑客获得蜜罐的 `root` 权限 VS. 获得 `root` 权限之后是否真的可以为所欲为? 303 | * 系统仿真程度越高、开放服务越多会引入更多攻击暴露面 304 | * 完全隔离网络? or 伴随仿真蜜网? 305 | 306 | # 欺骗防御 307 | 308 | --- 309 | 310 | ## 军事学渊源 311 | 312 | * 孙子兵法有云:`兵者诡道也` 、`实者虚之,虚者实之` 313 | * `诡道` 是一切战略的核心与基础 314 | * 运用「千变万化的方法」去迷惑敌人,使得敌人进退维谷,从而使得防御方在对抗中获得主动权和争取到行动时间 315 | 316 | --- 317 | 318 | ## [孙子兵法·虚实篇](https://baike.baidu.com/item/%E5%AD%99%E5%AD%90%E5%85%B5%E6%B3%95%C2%B7%E8%99%9A%E5%AE%9E%E7%AF%87/19831524) 319 | 320 | * 通过「分散集结」、「包围迂回」,造成 **预定会战地点** 上的我强敌劣,以少胜多 321 | * 蜜罐和蜜网就是防御者为攻击者精心准备的「会战之地」 322 | * `凡先处战地而待敌者佚,后处战地而趋战者劳,故善战者,致人而不致于人` 323 | * `故知战之地,知战之日,则可千里而会战` 324 | 325 | --- 326 | 327 | ## 经典欺骗防御理论模型 328 | 329 | [A Note on the Role of Deception in Information Protection (c) 1998 Fred Cohen](http://all.net/journal/deception/deception.html) 330 | 331 | * 欺骗增加了攻击者工作量,因为他们无法轻易预测哪些攻击行为会成功哪些会失败 332 | * 欺骗允许防御者追踪攻击者的种种入侵尝试并在攻击者找到防御者的真实漏洞之前进行响应 333 | * 欺骗消耗攻击者资源 334 | * 欺骗增加了对攻击者的更高技能要求 335 | * 欺骗增加了攻击者的不确定性 336 | 337 | --- 338 | 339 | ## Cohen 设计的欺骗防御模型 340 | 341 | * 影响攻击者的策略选择,使其按照防御者设计的攻击路径执行 342 | * 尽快检测到攻击者,联动切断其他攻击路径 343 | * 消耗攻击者资源 344 | 345 | --- 346 | 347 | ## 蜜罐与欺骗防御的关系 348 | 349 | * 蜜罐是「欺骗防御」策略在网络安全领域最早落地的产品级实现 350 | * 网络安全的核心特征: **持续** 对抗 351 | * 蜜罐的天然弱点促使其演进方向必然是「动态」和「自适应」 352 | * 无论是低交互还是高交互蜜罐,蜜罐的核心组成是「代码」 353 | * 随着代码规模的增长,代码漏洞将无法避免 354 | * 蜜罐作为一个软硬件混合产品,全生命周期都不是一劳永逸的 355 | 356 | --- 357 | 358 | ## 回顾第六章的「杀伤链」和「反杀伤链」模型 359 | 360 | | | 杀伤链模型 | 反杀伤链模型 | 361 | | -- | -- | -- | 362 | | | 识别 | 发现 | 363 | | | 武器化 | N/A | 364 | | | 投递 | 定位 | 365 | | | 漏洞利用 | 跟踪 | 366 | | | 安装(后门) | 瞄准 | 367 | | | 命令与控制 | 打击 | 368 | | | 达成目标 | 评价 | 369 | 370 | --- 371 | 372 | ## 让对手误判 373 | 374 | * 网络安全的核心特征:「持续对抗」 375 | * 攻防双方都希望在对抗中「击败对手」 376 | * 防御方的欺骗之道 377 | * 蜜罐:让攻击者对「陷阱」目标「信以为真」,从一开始就误导对手「白费力气」并「越陷越深」 378 | * 动态防御:让攻击者「投递」的攻击载荷到达「真实目标」成为「随机或低概率」事件 379 | 380 | # 动态防御 381 | 382 | --- 383 | 384 | ## 攻击面(Attack Surface) 385 | 386 | * 系统中可被利用、遭受攻击的系统资源集合 387 | * 攻击目标(网络和主机) 388 | * 通道和协议(`CVSS 3.x` 中定义的 `Attack Vector`) 389 | * 访问控制(权限约束条件) 390 | 391 | --- 392 | 393 | ## Moving Target Defense, MTD 394 | 395 | * [2009 年](https://www.nitrd.gov/nitrdgroups/index.php?title=National_Cyber_Leap_Year) 在美国的《National Cyber Leap Year》活动中征集到的「改变游戏规则」研究方向:移动目标防御 396 | * 这是一个基于 `动态化`、`随机化`、`多样化` 思想改造现有信息系统防御缺陷的理论和方法,其核心思想致力于构建一种 「动态、异构、不确定」 的网络空间目标环境来增加攻击者的攻击难度,以系统的 **随机性** 和 **不可预测性** 来对抗网络攻击 397 | * 让 `攻击面` 持续移动起来 398 | 399 | --- 400 | 401 | ## MTD 的常见维度 {id="mtd-implementation"} 402 | 403 | * 网络 404 | * 主机 405 | 406 | --- 407 | 408 | ### 网络层面的 MTD {id="mtd-in-networks-1"} 409 | 410 | * 动态网络架构:通过实施 `网络攻击面` 资源的转移,动态变换网络资源及配置,同时保持架构内各部分组件的信息交换和协同转移,以此提高应对网络攻击的动态防御能力 411 | * 可变网络(mutable networks, MUTE) 412 | * 自屏蔽动态网络架构(self-shielding dynamic network architecture, 简称SDNA) 413 | * MOTAG架构 414 | * 移动自组网络(mobile ad hoc networks, MANETs) 415 | * 基于 SDN 的动态网络架构 416 | 417 | --- 418 | 419 | ### 网络层面的 MTD {id="mtd-in-networks-2"} 420 | 421 | * 网络地址随机化:为网络地址引入动态变换更新机制, 通过对网络数据包进行特殊的处理或通过一定机制协同变换网络地址, 使得攻击者始终无法确定通信双方的真实地址, 从而破坏了攻击者的嗅探攻击, 实现了对主机的隐私保护, 以此提升通信双方的安全性 422 | * 端信息随机跳变:在端到端的数据传输中, 通信双方或一方按照协定伪随机地改变端口、地址、时隙、加密算法甚至协议等信息, 从而实现网络的主动防御. 423 | * 基于 SDN 的端信息跳变技术 424 | 425 | --- 426 | 427 | ### 主机层面的 MTD {id="mtd-in-host-1"} 428 | 429 | * 硬件 430 | * 指令集随机化(ISR) 431 | * 操作系统及基础软件 432 | * 多操作系统轮换 433 | * 基础软件轮换 434 | * 基于虚拟化的动态迁移 435 | 436 | --- 437 | 438 | ### 主机层面的 MTD {id="mtd-in-host-2"} 439 | 440 | * 应用软件 441 | * 目标代码生成阶段:「异构同效」代码(软件的 `多态化`) 442 | * 地址空间布局随机化(ASLR) 443 | * 代码生成随机化 444 | * 对抗 ROP(返回导向编程)、JOP(跳转导向编程) 445 | * 运行时阶段:(拟态防御)动态异构冗余(Dynamic Heterogeneous Redundancy, DHR) 446 | * 地址空间布局随机化(ASLR) 447 | 448 | --- 449 | 450 | ## 拟态防御 451 | 452 | * `Cyber Mimic Defense`, `CMD` 453 | * 中国工程院院士、国家数字交换系统工程技术研究中心主任邬江兴主导创立的理论 454 | * [拟态防御理论](http://jcs.iie.ac.cn/xxaqxb/ch/reader/create_pdf.aspx?file_no=20160401&year_id=2016&quarter_id=4&falg=1) 455 | 456 | --- 457 | 458 | ### 8122 459 | 460 | 1. 针对一个前提:防范未知漏洞后门等不确定威胁 461 | 2. 基于一个公理:相对正确公理 462 | 3. 依据一个发现:熵不减系统能稳定抵抗未知攻击 463 | 4. 借鉴二种理论:可靠性理论与自动控制理论 464 | 5. 发明一种构造:动态异构冗余构造(IT领域创新使能技术) 465 | 6. 导入一类机制:拟态伪装机制 466 | 7. 形成一个效应:测不准效应 467 | 8. 获得一类功能:内生安全功能 468 | 9. 达到一种效果:融合现有安全技术可指数量级提升防御增益 469 | 10. 实现二个目标:归一化处理传统/非传统安全问题—- 获得广义鲁棒控制属性 470 | 471 | 472 | --- 473 | 474 | ## MTD 与 CMD 475 | 476 | | | MTD | CMD | 477 | | -- | -- | -- | 478 | | 理论定位 | “道” | “术” | 479 | | 设计目标 | 以动态变化增加对抗成本、让对手测不准、提升安全性 | 同 MTD | 480 | | 技术路线 | 异构同效 | 异构同效 | 481 | 482 | --- 483 | 484 | ## 举一反三:从「移动」防御到「移动」对抗 485 | 486 | **多维度** 移动以降低 **对手** 优势从而增加对抗胜算。 487 | 488 | # 动态攻击 489 | 490 | --- 491 | 492 | ## Moving Target Attacks, MTA {id="mta-1"} 493 | 494 | * 多态(Polymorphism):改变恶意代码的签名,躲避杀软检测 495 | * 变形(Metamorphism / self-modification):恶意代码运行时自我修改,躲避杀软检测 496 | * 混淆(Obfuscation):降低代码可读性,隐藏关键代码逻辑,对抗逆向工程 497 | * 自加密(Self-encryption):用加密手段达到多态、变形和混淆等价效果 498 | 499 | --- 500 | 501 | ## Moving Target Attacks, MTA {id="mta-2"} 502 | 503 | * 反沙箱/沙盒(Anti-VM/sandboxes):识别动态取证环境并在运行时改变关键代码逻辑 504 | * 反调试(Anti-Debugging):识别调试环境并在运行时改变关键代码逻辑 505 | * 加密漏洞利用载荷(Encrypted exploits):用加密手段达到对抗检测与取证分析目的 506 | 507 | # 蜜罐关键技术 508 | 509 | --- 510 | 511 | ## 设计目标 512 | 513 | * 捕获数据 514 | * 避免被识别 515 | * 防止被攻陷 516 | * 提供有价值的分析报告 517 | * 攻击来源 518 | * 攻击意图 519 | * 攻击过程 520 | * 攻击结果 521 | 522 | --- 523 | 524 | ## 蜜罐的基本功能 525 | 526 | * 伪装和模拟 527 | * 服务/应用/系统/网络/主机 528 | * 数据捕获 529 | * 网络流量 530 | * 系统操作记录 531 | * 日志 532 | * 数据控制 533 | * 数据分析 534 | 535 | --- 536 | 537 | ## 蜜罐的基本体系架构 {id="honeypot-arch-1"} 538 | 539 | ![](images/chap0x11/honeypot-arch.png) 540 | 541 | --- 542 | 543 | ## 蜜罐的基本体系架构 {id="honeypot-arch-2"} 544 | 545 | * 决策 546 | * 监听收集事件,根据策略与欺骗、诱导信息库中的记录进行比较后决定诱导或欺骗 547 | * 诱导 548 | * 将攻击者的连接转向蜜罐系统 549 | * 欺骗(误导) 550 | * 分析 551 | * 系统所作的欺骗和诱导事件都记录到日志中,由分析模块进行分析,调整欺骗诱导策略 552 | 553 | 554 | --- 555 | 556 | ## 蜜罐和入侵检测的关系 557 | 558 | | | 蜜罐 | 入侵检测 | 559 | | --- | --- | --- | 560 | | 目的 | 还原入侵 | 发现入侵 | 561 | | 手段 | 异常检测 | 误用检测、异常检测 | 562 | 563 | --- 564 | 565 | ### 还原入侵 VS. 发现入侵 566 | 567 | | | 还原入侵 | 发现入侵 | 568 | | --- | --- | --- | 569 | | where (来源) | ✅ | ✅ | 570 | | what (类型) | ✅ | ✅ | 571 | | how (攻击图) | ✅ | ❌ | 572 | | why (攻击意图) | ✅ | ❌ | 573 | | who (幕后推手) | ✅ | ❌ | 574 | | 影响评估 | ✅ | ❌ | 575 | 576 | # 蜜网技术 577 | 578 | --- 579 | 580 | ## Gen II 蜜网技术的数据捕获的数据流 581 | 582 | ![](images/chap0x11/honeynet-1.png) 583 | 584 | --- 585 | 586 | ## Gen II 蜜网技术的数据控制架构的数据流 587 | 588 | ![](images/chap0x11/honeynet-2.png) 589 | 590 | --- 591 | 592 | > 欺骗防御一节的「网络层面 MTD」 593 | 594 | --- 595 | 596 | ## 蜜罐与蜜网技术的典型应用场景 597 | 598 | * 恶意代码捕获 599 | * 恶意代码分析 600 | * 入侵取证 601 | * 分流攻击流量 602 | 603 | # 课后思考题 604 | 605 | --- 606 | 607 | * 举几个生活中的类比蜜罐实例 608 | * 用自己的话去描述蜜罐的核心思想关键字:诱、骗、捕 609 | -------------------------------------------------------------------------------- /chap0x13.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "网络安全" 3 | author: 黄玮 4 | output: revealjs::revealjs_presentation 5 | --- 6 | 7 | # 第十三章 社会化网络安全 8 | 9 | --- 10 | 11 | ## 温故 {id="review-1"} 12 | 13 | > 网络空间(Cyberspace)是一种包含互联网、通信网、物联网、工控网等信息基础设施, 并由人-机-物相互作用而形成的动态虚拟空间 14 | 15 | --- 16 | 17 | ## 温故 {id="review-2"} 18 | 19 | > 网络空间安全既涵盖包括人、机、物等实体在内的基础设施安全, 也涉及到其中产生、处理、传输、存储的各种信息数据的安全 20 | 21 | --- 22 | 23 | ## 温故 {id="review-3"} 24 | 25 | * 网络(空间)安全的研究对象是:具备通信和计算能力的「机器节点」 26 | * 人「控制」机器与机器之间的通信过程 27 | * 交互式控制:通过鼠标、键盘、触摸屏、语音、体感等 28 | * 可编程控制:自动化、智能化、恶意代码等 29 | * 网络空间安全问题的影响力不再局限于数据篡改、系统控制和信息泄露等「狭义」网络安全问题,真实世界和社会的行为可以被来自其「数字孪生」世界的特定组织所操控 30 | 31 | --- 32 | 33 | ## 知新 {id="agenda-1"} 34 | 35 | * 社会化网络 36 | * 远早于互联网而独立存在和发展 37 | 38 | --- 39 | 40 | ## 知新 {id="agenda-2"} 41 | 42 | 43 | * 美国早期传播学实用主义三大代表之一,也是芝加哥学派的先驱 **约翰·杜威** 提出的经典传播学论断 44 | 45 | > 社会不仅是由于传递、传播而得以持续存在, 而且还应该是在传递、传播之间存在着。在共同、共同体、**沟通** 这几个语词之间不仅存在字面上的联系,人们因享有共同的东西而生活于共同体,而 **沟通** 是使他们享有共同的东西的途径 46 | 47 | 48 | --- 49 | 50 | ## 知新 {id="agenda-3"} 51 | 52 | * `互联网等新兴技术` 赋予「社会化网络」新的 **沟通** 内涵和形式 53 | * 载体类型:语音、纯文字、富文本、图像、录播视频、直播/实时视频、VR/AR 等 54 | * 通信手段:电信技术、即时通信、兴趣社群、电子商务等 55 | 56 | --- 57 | 58 | ## 知新 {id="agenda-4"} 59 | 60 | * 社会化网络安全的研究对象是:具备通信、思考(计算)和行动能力的「人」 61 | * 人与人之间的传承、传播和沟通借助「机器」收发和在「网络空间」传输 62 | 63 | --- 64 | 65 | ## 知新 {id="agenda-5"} 66 | 67 | | | 通信网/计算机网络 | 社会化网络 | 68 | | -- | -- | -- | 69 | | 通信对象 | 机器与机器(M2M) | 人与人(P2P)`over M2M` | 70 | | 安全性需求(属性) | CIA | CIA + **隐私** | 71 | 72 | > M2M: Machine to Machine 73 | 74 | > P2P: Person to Person 75 | 76 | --- 77 | 78 | ## 知新 {id="agenda-6"} 79 | 80 | 1. 社交网络安全 81 | 2. 电信诈骗与防范 82 | 3. 电子商务网络安全 83 | 4. 网络勒索 84 | 5. 大数据应用与隐私保护 85 | 86 | # 社交网络安全 87 | 88 | --- 89 | 90 | * 本章所关注的「社交网络」安全特指「互联网+社交网络」安全 91 | * 互联网构建在计算机网络之上,相应的本章所关注的社交网络也是构建在计算机网络之上的 92 | 93 | --- 94 | 95 | ## 闪回第一章威胁「分层模型」基本理论 96 | 97 | - 每一层的安全威胁是既相互独立,又相互联系、相互影响的 98 | - 每一层的安全威胁必须依靠当前层的安全策略和安全机制解决 99 | - 下一层的安全机制是上一层安全机制的基础 100 | - 上一层的安全机制等级不会高于下一层的安全机制等级 101 | - 下层不安全,上层的安全无法保障;下层安全,并不代表上层安全 102 | 103 | --- 104 | 105 | ## 本章关注『社交网络』层特有的威胁形式 106 | 107 | * 社会工程学与网络钓鱼 108 | * 谣言 109 | * 恶意营销 110 | 111 | # 社会工程学与网络钓鱼 112 | 113 | --- 114 | 115 | ## 什么是「社会工程学」 116 | 117 | * 「社会工程学」(以下简称“社工”)在 **信息安全专业** 语境条件下泛指 `人们对执行行为或泄露机密信息的心理操纵`。 118 | * “社工”是一种用于信息收集,欺诈或系统访问的信任技巧,它与传统的“骗局”不同,它通常是更复杂的欺诈方案中的众多步骤之一 119 | 120 | > 任何影响他人采取可能符合或不符合其最佳利益的行为的行为。 121 | 122 | --- 123 | 124 | ## 「社工」手段概述 125 | 126 | * 所有社会工程学攻击都建立在使人决策产生认知偏差的基础上。这种认知偏差可以被称为 `人类意识漏洞`。 127 | * 社工不仅会利用 `人类意识漏洞` ,也会配合使用「软硬件漏洞利用」的技术手段 128 | * [CAPEC-403: Social Engineering (Version 3.3) ](https://capec.mitre.org/data/definitions/403.html) 129 | 130 | 131 | --- 132 | 133 | ## 社工手段分类 134 | 135 | | | 钓鱼 | 窥视 | 垃圾搜索 | 反向社工 | 水坑攻击 | 诱饵 | 136 | | :-: | :-: | :-: | :-: | :-: | :-: | :-: | 137 | | 电邮 | ✓ | ✓ | ✓ | ✓ | | ✓ | 138 | | 即时通信 | ✓ | ✓ | ✓ | ✓ | | ✓ | 139 | | 电话 | ✓ | ✓ | | ✓ | | | 140 | | 社交网络 | ✓ | ✓ | ✓ | ✓ | | ✓ | 141 | | 云计算 | ✓ | ✓ | ✓ | | | | 142 | | 网站 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 143 | | 物理实体 | ✓ | ✓ | ✓ | ✓ | | ✓ | 144 | 145 | --- 146 | 147 | ### 窥视 148 | 149 | * `肩窥`(`shoulder surfing`) 150 | 151 | ![](images/chap0x13/shoulder-surfing.jpg) 152 | 153 | --- 154 | 155 | ### 防御窥视 156 | 157 | * 查看和输入敏感信息时注意观察周围环境风险 158 | * 使用 **防偷窥贴膜** 159 | 160 | ![](images/chap0x13/anti-shoulder-surfing.jpg) 161 | 162 | --- 163 | 164 | ### 垃圾搜索(Dumpster Diving) 165 | 166 | ![](images/chap0x13/dumpster-diving.jpg) 167 | 168 | --- 169 | 170 | 从海量电子数据中进行数据挖掘也可以被视为技术手段的「垃圾搜索」 171 | 172 | --- 173 | 174 | ### 防御垃圾搜索 175 | 176 | * 使用碎纸机处理废弃纸质文档 177 | * 根据数据保护等级选择合规的数据销毁标准 178 | 179 | --- 180 | 181 | ### 反向社工 182 | 183 | * 不同于主动联系受害者的社工方法 184 | * 反向社工会「设计」让受害者主动联系攻击者 185 | 186 | --- 187 | 188 | ### 反向社工的三个阶段 189 | 190 | 1. 蓄意攻击(制造问题) 191 | 2. 广而告之自己有办法解决(增加曝光,提供联系方式,吸引受害者) 192 | 3. 协助解决(取得信任,顺手牵羊) 193 | 194 | --- 195 | 196 | ### 防御反向社工 197 | 198 | * 遇到问题不要慌张 199 | * 多种渠道查找解决办法 200 | * 识别搜索引擎结果里的「推广」结果 201 | * 主动联系官方售后 202 | * 拒绝「主动找上门」的解决方案 203 | 204 | --- 205 | 206 | ### 钓鱼 207 | 208 | * 使用 IT 技术的「劝说型」社工手段 209 | * 常见 IT 钓鱼技术 210 | * 钓鱼邮件 211 | * 鱼叉式钓鱼:更有针对性、目标接收者范围更小 212 | * 即时通信钓鱼 213 | * 社交网络钓鱼 214 | 215 | --- 216 | 217 | ### 防范钓鱼 218 | 219 | * 不要轻易下载和打开(邮件或聊天窗口中接收到的)链接和附件 220 | * 使用杀毒软件扫描附件 221 | * 使用搜索引擎搜索链接 222 | * 使用 [在线威胁检测工具](https://www.virustotal.com/gui/) 检测链接和附件 223 | * 不要轻信「诱惑性」或「劝说性」图文、语音等 224 | 225 | --- 226 | 227 | ### 水坑攻击 228 | 229 | ![](images/chap0x13/watering-hole.png) 230 | 231 | --- 232 | 233 | ### 防御水坑攻击 234 | 235 | * 做好终端安全防护 236 | * 安装终端安全软件 237 | * 依赖于其他专业人士做好网络安全加固与监测 238 | * “祈祷” 你经常访问的网站和应用没有被攻陷、没有被植入后门 239 | * “祈祷” 你的上网环境没有被攻陷、不存在网络嗅探者 240 | 241 | --- 242 | 243 | ### 诱饵 244 | 245 | * 🌰 本课程教学 Wiki 上的 `期末试题样本.docx` 246 | * 🌰 遗落在角落的 U 盘 247 | 248 | --- 249 | 250 | ### 防御诱饵 251 | 252 | * 提高安全意识 253 | * 控制自己的好奇心 254 | * 抑制自己的贪欲 255 | 256 | --- 257 | 258 | ## 一次虚构的社工案例演示 259 | 260 | ![](images/chap0x13/winrar4.20.exploit.gif) 261 | 262 | --- 263 | 264 | ## 钓鱼测试 265 | 266 | ![](images/chap0x13/phishing-quiz.png) 267 | 268 | --- 269 | 270 | * [钓鱼测试(中文版)](https://phishingquiz.withgoogle.com/) 271 | * [钓鱼测试(英文版)](https://www.opendns.com/phishing-quiz/) 272 | 273 | # 用「钓鱼网址识别」来检验一下你的反社工能力 274 | 275 | --- 276 | 277 | ![](images/chap0x13/qrcode.png) 278 | 279 | --- 280 | 281 | 3 道题,每道题 10 分,你能得多少分?😁 282 | 283 | 284 | # 谣言 285 | 286 | --- 287 | 288 | ## 关键特征 289 | 290 | * 内容 291 | * 渠道 292 | * 传播 293 | 294 | --- 295 | 296 | ### 内容特征 297 | 298 | 没有事实依据或有真有假(为了提高内容的可信度)的信息,往往具备明显的「话题性」和「争议性」。 299 | 300 | --- 301 | 302 | ### 渠道特征 303 | 304 | 言论发布者、转载者均非官方权威渠道。 305 | 306 | --- 307 | 308 | ### 传播特征 309 | 310 | 快速传播,类似网络空间中的蠕虫病毒传播。 311 | 312 | 313 | --- 314 | 315 | ## 谣言造成的危害 316 | 317 | * 恐吓营销 318 | * 让消费者感受到对某种东西,或者是某种可能的担忧,从而促使他们购买了商家的产品 319 | * 操纵民意 320 | * 舆情、煽动民意 321 | 322 | --- 323 | 324 | ## 谣言管控手段 325 | 326 | * 预防 327 | * 检测 328 | * 溯源 329 | * 辟谣 330 | 331 | --- 332 | 333 | ### 面向内容特征的管控 334 | 335 | * `检测` 为主 336 | * 内容识别和理解 337 | * `预防` 为辅 338 | * 开通谣言举报渠道 339 | 340 | --- 341 | 342 | ### 面向渠道特征的管控 343 | 344 | * 建立官方信息发布渠道和 `辟谣` 平台 345 | * 信息发布渠道监管( `检测` ) 346 | * 2017 年 6 月 1 日起,[《互联网新闻信息服务管理规定》正式实施](http://www.xinhuanet.com/yuqing/2017-05/09/c_129596824.htm) ,将各类新媒体纳入管理范畴 347 | 348 | --- 349 | 350 | ### 面向传播特征的管控 351 | 352 | * `检测` 为主 353 | * 舆情热点发现 354 | * `溯源` 为上 355 | * 传播路径按照时间线还原和追溯 356 | 357 | # 恶意营销 358 | 359 | --- 360 | 361 | 利用谣言夸大威胁影响和风险发生概率进行恐吓营销则属于恶意营销范畴。 362 | 363 | --- 364 | 365 | ## 诱导分享+裂变+诈骗+套取个人隐私 {id="malicious-share-1"} 366 | 367 | ![](images/chap0x13/wx-con-1.jpg) 368 | 369 | --- 370 | 371 | ## 诱导分享+裂变+诈骗+套取个人隐私 {id="malicious-share-2"} 372 | 373 | ![](images/chap0x13/wx-con-2.jpg) 374 | 375 | 376 | --- 377 | 378 | ## 其他恶意营销案例 379 | 380 | * 「货到付款」骗局 381 | * 集赞骗局 382 | * 奖励“缩水”风险 383 | * 套取个人隐私 384 | 385 | --- 386 | 387 | ## 恶意营销管控 388 | 389 | 参考『谣言管控手段』。 390 | 391 | # 电信诈骗与防范 392 | 393 | --- 394 | 395 | * 网络听号诈骗 396 | * 网络改号诈骗 397 | * 伪基站诈骗 398 | * 木马远控 399 | * 换号诈骗 400 | 401 | --- 402 | 403 | ## 网络听号诈骗 404 | 405 | ![](images/chap0x13/wl-thzp.png) 406 | 407 | --- 408 | 409 | ### 手机拨号音在专业音频处理软件中呈现出的波形图 410 | 411 | ![](images/chap0x13/360-number-leak.jpg) 412 | 413 | --- 414 | 415 | ### 看似人畜无害甚至有些有趣的手机拨号音 416 | 417 | ![](images/chap0x13/mobile-dial-sound.png) 418 | 419 | --- 420 | 421 | ### 防御拨号音泄漏隐私 422 | 423 | * 避免在语音或视频通话过程中使用拨号功能 424 | * 关闭手机拨号按键的击键音 425 | 426 | --- 427 | 428 | ## 网络改号诈骗 429 | 430 | > 杨女士收到一个自称某银行的电话告知自己的信用卡欠款逾期未还,需要在当天下午4点前还清。杨女士称自己的信用卡没有欠款,对方称杨女士可能涉嫌信用卡诈骗。并轮番冒充警方、检查院的电话对杨女士进行恐吓。为了洗脱罪名,诈骗分子让杨女士去开通了网银,并将密码器上的支付密码告诉诈骗分子,结果银行卡中的资金被瞬间转走44万元。由于目前资金已经被转到境外,所以仍然无法追回。 431 | 432 | --- 433 | 434 | ### 网络改号的技术原理 435 | 436 | ![](images/chap0x13/callerid-spoof.jpg) 437 | 438 | --- 439 | 440 | ### 防御网络改号诈骗 {id="defend-against-callerid-spoof-1"} 441 | 442 | * 即使接收到「官方号码」发来的短信、电话,也不能掉以轻心 443 | * 避免点击短信中的链接,不要在电话交谈中泄漏自己的隐私信息和帐号口令等 444 | * 使用搜索引擎检索验证「官方号码」的真实性 445 | * 在必要的时候,可以通过更换一个不同运营商的号码 **回拨** 「官方号码」的方式来验证来电内容 446 | * 官方账号一旦被盗用,发布虚假内容可以认为是「社交媒体时代」的「网络改号」诈骗 447 | 448 | --- 449 | 450 | ### 防御网络改号诈骗 {id="defend-against-callerid-spoof-2"} 451 | 452 | 在社交网络时代对于「身份」的真实性鉴别并不是仅仅根据号码、昵称、头像、加V认证等就能断定的,要「听其言、观其行、多源交叉验证」其言行。 453 | 454 | --- 455 | 456 | ## 伪基站诈骗 457 | 458 | * 针对手机用户的「改号诈骗」 459 | * 「官方号码」短信或来电不再可信 460 | * 可以对手机用户造成「拒绝服务」的效果 461 | 462 | --- 463 | 464 | ### 防范伪基站诈骗 465 | 466 | * 使用最新的、被安全验证的移动通信技术 467 | 468 | --- 469 | 470 | ### 仅开启最新通信技术支持,防御「降级攻击」 471 | 472 | ![](images/chap0x13/volte.png) 473 | 474 | --- 475 | 476 | ![](images/chap0x13/4g-fake-base-station.png) 477 | 478 | --- 479 | 480 | ![](images/chap0x13/5g-fake-base-station.png) 481 | 482 | --- 483 | 484 | ## 木马远控 485 | 486 | * 技术手段上类似 PC 时代的木马远控 487 | * 危害 488 | * 短信监听与劫持 489 | * 二次攻击跳板 490 | * 监听与劫持应用间通信与跳转 491 | 492 | --- 493 | 494 | ### 防范木马远控 495 | 496 | * 做好终端系统安全防护 497 | * 及时安装手机系统的安全更新补丁 498 | * 从官方应用商店安装软件 499 | * 提高个人使用终端的安全意识 500 | * 避免连入公共无线网络 501 | * 防范前述社工攻击 502 | 503 | --- 504 | 505 | ## 换号诈骗 506 | 507 | > 我换号了,敬请惠存 138-xxxx-yyyy 508 | 509 | > 先是以朋友名义通知换号,再要你“帮忙”。 510 | 511 | --- 512 | 513 | ### 微信等即时通信软件或社交网络应用上的换号诈骗 514 | 515 | * 诈骗者往往会通过一些信息收集手段,在确认「原版」帐号暂时不可用状态之后 516 | * 例如可以通过盗号改密码、恶意投诉等方式让目标帐号暂时无法使用 517 | * 用「山寨版」帐号去添加「原版」帐号社交关系网络中的好友,加好友的理由就是冠冕堂皇的「换号」 518 | * 对于一些警惕性高的人,可能会试图联系「原版」帐号并发现确实无法联系了,则会相信骗子的「换号」加好友请求的真实性 519 | * 一旦「换号」加好友成功,后续的骗局展开就和电话换号诈骗如出一辙了 520 | 521 | --- 522 | 523 | ### 防范换号诈骗 524 | 525 | * 线下二次验证 526 | * 视频二次验证 527 | * 语音二次验证 528 | 529 | # 电子商务网络安全 530 | 531 | --- 532 | 533 | ## 消费端 {id="con-of-consumer-1"} 534 | 535 | * [心愿购物单](https://www.zhihu.com/question/28173417/answer/122551812) 功能被滥用:钓鱼通知伪装成系统通知 536 | * 匿名晒单评价功能:避免爬虫过度收集用户数据、建立用户画像进而进行 **精准** 广告/推荐/骚扰/钓鱼/诈骗 537 | * 第三方收货平台和电商收货专用小号:面向商家保护消费者隐私联系方式信息 538 | 539 | --- 540 | 541 | ## 消费端 {id="con-of-consumer-2"} 542 | 543 | * 延时发货骗局 544 | * 搜索黑优化手段:低价引流、冲高销量、自然搜索排序提升、提价正常发货、低价到期自动退款 545 | * 免费收集买家真实联系方式信息:低价付款抽奖,不中奖退款 546 | * 快递面单的隐私化处理 547 | * 防御「垃圾搜索」 548 | * 货到付款骗局 549 | 550 | --- 551 | 552 | ## 企业端 553 | 554 | * 评价管理:恶意差评管理 555 | * 库存管理:恶意秒杀不付款 556 | * 价格管理:错标低价商品被羊毛党扫荡 557 | 558 | --- 559 | 560 | ## 平台端 561 | 562 | * 刷单 563 | * 反向刷单 564 | 565 | # 网络勒索 566 | 567 | --- 568 | 569 | * 勒索病毒 570 | * iCloud 反向劫持 571 | 572 | --- 573 | 574 | ## 利用远程管理手机功能锁定受害人手机 575 | 576 | ![](images/chap0x13/appleid-icloud-blackmail.jpg) 577 | 578 | # 大数据应用与隐私保护 579 | 580 | --- 581 | 582 | * 数据窃取风险 583 | * 数据滥用风险 584 | * 数据误用风险 585 | 586 | --- 587 | 588 | ## 数据窃取风险 589 | 590 | * 2013 年曝光的斯诺登事件 591 | * 内部威胁大于外部威胁 592 | 593 | --- 594 | 595 | ## 数据滥用风险 596 | 597 | * 内部员工的非授权数据访问 598 | * 数据共享风险 599 | 600 | --- 601 | 602 | ## 数据误用风险 603 | 604 | * 用户画像与精准营销 605 | * 大数据杀熟 606 | 607 | --- 608 | 609 | ### 同商品不同用户不同价一定是大数据杀熟? 610 | 611 | * 不同地区的差异化定价 612 | * 生产厂商对不同地区实施的区域价格保护机制和促销策略 613 | * 不同地区就近库存差异 614 | * 新用户叠加新人促销优惠折扣 615 | 616 | --- 617 | 618 | ## 以系统为中心的安全 vs. 以数据为中心的安全 619 | 620 | * 类比于医院里的「心血管科」和「血液科」 621 | * 前者解决(血液循环 vs. 软硬件系统与通信系统)系统本身的安全 622 | * 后者保障血液自身安全(存储在系统中和通过系统处理、传输的数据) 623 | * 以系统为中心的数据安全生命周期:输入、处理和输出 624 | * 以数据为中心的数据安全生命周期:数据共享、交换、交易、流通 625 | 626 | --- 627 | 628 | ## 传统数据安全 vs. 数据能力成熟度模型 629 | 630 | * 传统数据安全:`CIA` 631 | * 数据能力成熟度模型(`Data Security Maturity Model, DSMM`) 632 | * 数据的权属并不总是属于数据处理者 633 | * 用户根据对自身所拥有数据的安全等级期望选择与之相匹配安全能力的组织机构来处理其所拥有的数据 634 | * 数据共享、交换、交易和流通环节中的数据流通双方需要具备与所处理数据安全等级相匹配的安全能力成熟度 635 | 636 | --- 637 | 638 | ## 展望数据安全 639 | 640 | * 法律能解决数据来源的合法性,但不能解决这些合法获得的数据是否会被安全保存或安全使用 641 | * 过去把安全行业当作特种行业进行管理的思路是行不通的:数据无处无时不在,数据安全治理无处无时不在 642 | * 很多数据安全前沿技术还有待突破:安全多方计算、同态加密、密文搜索等 643 | 644 | # 本课程已完结 645 | 646 | --- 647 | 648 | 🎉🎉🎉 649 | 650 | -------------------------------------------------------------------------------- /client/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/client/.gitkeep -------------------------------------------------------------------------------- /images/chap0x01/ATTACKMatrixforEnterprise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/ATTACKMatrixforEnterprise.png -------------------------------------------------------------------------------- /images/chap0x01/ChinaNetSecRules.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/ChinaNetSecRules.jpg -------------------------------------------------------------------------------- /images/chap0x01/Cyber_Security_Measurement_and_Management_Poster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/Cyber_Security_Measurement_and_Management_Poster.png -------------------------------------------------------------------------------- /images/chap0x01/P2DR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/P2DR.png -------------------------------------------------------------------------------- /images/chap0x01/P2DR2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/P2DR2.png -------------------------------------------------------------------------------- /images/chap0x01/SCE-2011-8-26-p2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/SCE-2011-8-26-p2.png -------------------------------------------------------------------------------- /images/chap0x01/captcha-demo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/captcha-demo.jpg -------------------------------------------------------------------------------- /images/chap0x01/cve-capec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/cve-capec.png -------------------------------------------------------------------------------- /images/chap0x01/cve-cpe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/cve-cpe.png -------------------------------------------------------------------------------- /images/chap0x01/cve-cvss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/cve-cvss.png -------------------------------------------------------------------------------- /images/chap0x01/cve-cvss3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/cve-cvss3x.png -------------------------------------------------------------------------------- /images/chap0x01/cve-cwe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/cve-cwe.png -------------------------------------------------------------------------------- /images/chap0x01/cve-nvd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/cve-nvd.png -------------------------------------------------------------------------------- /images/chap0x01/cve-oval.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/cve-oval.png -------------------------------------------------------------------------------- /images/chap0x01/cyber-security-laws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/cyber-security-laws.png -------------------------------------------------------------------------------- /images/chap0x01/layered-protection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/layered-protection.png -------------------------------------------------------------------------------- /images/chap0x01/pyramid-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/pyramid-1.jpg -------------------------------------------------------------------------------- /images/chap0x01/pyramid-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/pyramid-2.jpg -------------------------------------------------------------------------------- /images/chap0x01/risk-management.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/risk-management.jpg -------------------------------------------------------------------------------- /images/chap0x01/security-threat-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x01/security-threat-model.png -------------------------------------------------------------------------------- /images/chap0x02/AccessControlFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x02/AccessControlFlow.png -------------------------------------------------------------------------------- /images/chap0x02/Linux_Distribution_Timeline.clipped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x02/Linux_Distribution_Timeline.clipped.png -------------------------------------------------------------------------------- /images/chap0x02/MAC-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x02/MAC-1.png -------------------------------------------------------------------------------- /images/chap0x02/MAC-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x02/MAC-2.png -------------------------------------------------------------------------------- /images/chap0x02/RBAC.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x02/RBAC.jpg -------------------------------------------------------------------------------- /images/chap0x02/URL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x02/URL.png -------------------------------------------------------------------------------- /images/chap0x02/acl-bypass.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x02/acl-bypass.jpg -------------------------------------------------------------------------------- /images/chap0x02/cve-2014-6271-2vs3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x02/cve-2014-6271-2vs3.png -------------------------------------------------------------------------------- /images/chap0x02/cvss-4.0-changes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x02/cvss-4.0-changes.png -------------------------------------------------------------------------------- /images/chap0x02/tcp-state-machine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x02/tcp-state-machine.png -------------------------------------------------------------------------------- /images/chap0x02/windows_operating_systems_history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x02/windows_operating_systems_history.png -------------------------------------------------------------------------------- /images/chap0x02/x509-github-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x02/x509-github-1.png -------------------------------------------------------------------------------- /images/chap0x02/x509-github-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x02/x509-github-2.png -------------------------------------------------------------------------------- /images/chap0x03/anonymity-system-protection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/anonymity-system-protection.png -------------------------------------------------------------------------------- /images/chap0x03/anonymity-system.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/anonymity-system.png -------------------------------------------------------------------------------- /images/chap0x03/browser-fingerprinting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/browser-fingerprinting.png -------------------------------------------------------------------------------- /images/chap0x03/crowds-network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/crowds-network.png -------------------------------------------------------------------------------- /images/chap0x03/cyber-security-internals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/cyber-security-internals.png -------------------------------------------------------------------------------- /images/chap0x03/foxy-proxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/foxy-proxy.png -------------------------------------------------------------------------------- /images/chap0x03/hsts-browser-support.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/hsts-browser-support.png -------------------------------------------------------------------------------- /images/chap0x03/hsts-in-chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/hsts-in-chrome.png -------------------------------------------------------------------------------- /images/chap0x03/mix-net-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/mix-net-1.png -------------------------------------------------------------------------------- /images/chap0x03/mix-net-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/mix-net-2.png -------------------------------------------------------------------------------- /images/chap0x03/pptp-pcapr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/pptp-pcapr.png -------------------------------------------------------------------------------- /images/chap0x03/proxy-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/proxy-model.png -------------------------------------------------------------------------------- /images/chap0x03/proxy-server-examples.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/proxy-server-examples.png -------------------------------------------------------------------------------- /images/chap0x03/proxy-setup-chrome-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/proxy-setup-chrome-example.png -------------------------------------------------------------------------------- /images/chap0x03/proxy-setup-firefox-options-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/proxy-setup-firefox-options-1.png -------------------------------------------------------------------------------- /images/chap0x03/proxy-setup-firefox-options-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/proxy-setup-firefox-options-2.png -------------------------------------------------------------------------------- /images/chap0x03/reverse-http-proxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/reverse-http-proxy.png -------------------------------------------------------------------------------- /images/chap0x03/socks-proxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/socks-proxy.png -------------------------------------------------------------------------------- /images/chap0x03/tarzan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/tarzan.png -------------------------------------------------------------------------------- /images/chap0x03/tor-applications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/tor-applications.png -------------------------------------------------------------------------------- /images/chap0x03/tor-control-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/tor-control-panel.png -------------------------------------------------------------------------------- /images/chap0x03/tor-detection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/tor-detection.png -------------------------------------------------------------------------------- /images/chap0x03/tor-exit-node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/tor-exit-node.png -------------------------------------------------------------------------------- /images/chap0x03/tor-network-arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/tor-network-arch.png -------------------------------------------------------------------------------- /images/chap0x03/vpn-by-layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/vpn-by-layers.png -------------------------------------------------------------------------------- /images/chap0x03/vpn-data-frames.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/vpn-data-frames.png -------------------------------------------------------------------------------- /images/chap0x03/vpn-usage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/vpn-usage.png -------------------------------------------------------------------------------- /images/chap0x03/what-happened-after-url-typedin-proxy-mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/what-happened-after-url-typedin-proxy-mode.png -------------------------------------------------------------------------------- /images/chap0x03/what-happened-after-url-typedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x03/what-happened-after-url-typedin.png -------------------------------------------------------------------------------- /images/chap0x04/arp-from-a2c.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/arp-from-a2c.gif -------------------------------------------------------------------------------- /images/chap0x04/arp-from-c2a.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/arp-from-c2a.gif -------------------------------------------------------------------------------- /images/chap0x04/arp-ping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/arp-ping.png -------------------------------------------------------------------------------- /images/chap0x04/arp-req-resp-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/arp-req-resp-example.png -------------------------------------------------------------------------------- /images/chap0x04/arp-table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/arp-table.png -------------------------------------------------------------------------------- /images/chap0x04/awesome-mitm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/awesome-mitm.png -------------------------------------------------------------------------------- /images/chap0x04/detect-promisc-nc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/detect-promisc-nc.gif -------------------------------------------------------------------------------- /images/chap0x04/dos-switch.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/dos-switch.gif -------------------------------------------------------------------------------- /images/chap0x04/garp-demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/garp-demo.gif -------------------------------------------------------------------------------- /images/chap0x04/generalize-mitm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/generalize-mitm.gif -------------------------------------------------------------------------------- /images/chap0x04/mitm-all-stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/mitm-all-stack.png -------------------------------------------------------------------------------- /images/chap0x04/mitm-all-tables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/mitm-all-tables.png -------------------------------------------------------------------------------- /images/chap0x04/poison-switch-cam.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/poison-switch-cam.gif -------------------------------------------------------------------------------- /images/chap0x04/sniff-with-hub.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/sniff-with-hub.gif -------------------------------------------------------------------------------- /images/chap0x04/sniff-with-switch.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/sniff-with-switch.gif -------------------------------------------------------------------------------- /images/chap0x04/weird-arp-resp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/weird-arp-resp.png -------------------------------------------------------------------------------- /images/chap0x04/wireshark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x04/wireshark.png -------------------------------------------------------------------------------- /images/chap0x05/arping-flowgraph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/arping-flowgraph.png -------------------------------------------------------------------------------- /images/chap0x05/curl-http.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/curl-http.png -------------------------------------------------------------------------------- /images/chap0x05/etc.services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/etc.services.png -------------------------------------------------------------------------------- /images/chap0x05/icmp-broadcast-scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/icmp-broadcast-scan.png -------------------------------------------------------------------------------- /images/chap0x05/icmp-format.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/icmp-format.png -------------------------------------------------------------------------------- /images/chap0x05/icmp-sweep-scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/icmp-sweep-scan.png -------------------------------------------------------------------------------- /images/chap0x05/linux-os-fingerprint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/linux-os-fingerprint.png -------------------------------------------------------------------------------- /images/chap0x05/maltego-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/maltego-1.png -------------------------------------------------------------------------------- /images/chap0x05/maltego-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/maltego-2.png -------------------------------------------------------------------------------- /images/chap0x05/maltego-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/maltego-3.png -------------------------------------------------------------------------------- /images/chap0x05/mcafee-leader-gps-leakage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/mcafee-leader-gps-leakage.png -------------------------------------------------------------------------------- /images/chap0x05/nmap-in-movies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/nmap-in-movies.png -------------------------------------------------------------------------------- /images/chap0x05/nmap-scan-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/nmap-scan-flow.png -------------------------------------------------------------------------------- /images/chap0x05/photo-exif-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/photo-exif-0.png -------------------------------------------------------------------------------- /images/chap0x05/photo-exif-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/photo-exif-1.png -------------------------------------------------------------------------------- /images/chap0x05/photo-exif-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/photo-exif-2.png -------------------------------------------------------------------------------- /images/chap0x05/ping-detect-os.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/ping-detect-os.png -------------------------------------------------------------------------------- /images/chap0x05/scan-by-layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/scan-by-layers.png -------------------------------------------------------------------------------- /images/chap0x05/scan-kb-by-layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/scan-kb-by-layers.png -------------------------------------------------------------------------------- /images/chap0x05/scan-seq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/scan-seq.png -------------------------------------------------------------------------------- /images/chap0x05/scapy-ping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/scapy-ping.png -------------------------------------------------------------------------------- /images/chap0x05/tcp-hdr-format.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/tcp-hdr-format.png -------------------------------------------------------------------------------- /images/chap0x05/tcp-idle-scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/tcp-idle-scan.png -------------------------------------------------------------------------------- /images/chap0x05/tcp-proxy-scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/tcp-proxy-scan.png -------------------------------------------------------------------------------- /images/chap0x05/udp-hdr-format.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/udp-hdr-format.png -------------------------------------------------------------------------------- /images/chap0x05/windows-os-fingerprint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x05/windows-os-fingerprint.png -------------------------------------------------------------------------------- /images/chap0x06/2012-sqli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/2012-sqli.png -------------------------------------------------------------------------------- /images/chap0x06/3d-infosec-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/3d-infosec-model.png -------------------------------------------------------------------------------- /images/chap0x06/Email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/Email.png -------------------------------------------------------------------------------- /images/chap0x06/Real Name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/Real Name.png -------------------------------------------------------------------------------- /images/chap0x06/THE-CYBER-KILL-CHAIN-body.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/THE-CYBER-KILL-CHAIN-body.png -------------------------------------------------------------------------------- /images/chap0x06/Telephone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/Telephone.png -------------------------------------------------------------------------------- /images/chap0x06/Username.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/Username.png -------------------------------------------------------------------------------- /images/chap0x06/beyond-google-hacking-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/beyond-google-hacking-1.png -------------------------------------------------------------------------------- /images/chap0x06/beyond-google-hacking-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/beyond-google-hacking-2.png -------------------------------------------------------------------------------- /images/chap0x06/beyond-google-hacking-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/beyond-google-hacking-3.png -------------------------------------------------------------------------------- /images/chap0x06/beyond-google-hacking-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/beyond-google-hacking-4.png -------------------------------------------------------------------------------- /images/chap0x06/built-with-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/built-with-info.png -------------------------------------------------------------------------------- /images/chap0x06/cdn-based-cloud-fw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/cdn-based-cloud-fw.png -------------------------------------------------------------------------------- /images/chap0x06/cdn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/cdn.png -------------------------------------------------------------------------------- /images/chap0x06/evolution-of-the-web-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/evolution-of-the-web-2.png -------------------------------------------------------------------------------- /images/chap0x06/evolution-of-the-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/evolution-of-the-web.png -------------------------------------------------------------------------------- /images/chap0x06/fail2ban-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/fail2ban-logs.png -------------------------------------------------------------------------------- /images/chap0x06/get-sites-from-ip-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/get-sites-from-ip-1.png -------------------------------------------------------------------------------- /images/chap0x06/get-sites-from-ip-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/get-sites-from-ip-2.png -------------------------------------------------------------------------------- /images/chap0x06/google-hacking-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/google-hacking-1.png -------------------------------------------------------------------------------- /images/chap0x06/google-hacking-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/google-hacking-2.png -------------------------------------------------------------------------------- /images/chap0x06/google-hacking-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/google-hacking-3.png -------------------------------------------------------------------------------- /images/chap0x06/google-hacking-defense.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/google-hacking-defense.png -------------------------------------------------------------------------------- /images/chap0x06/location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/location.png -------------------------------------------------------------------------------- /images/chap0x06/network-layer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/network-layer.jpg -------------------------------------------------------------------------------- /images/chap0x06/pwned-passwords.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/pwned-passwords.png -------------------------------------------------------------------------------- /images/chap0x06/shodan.io.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/shodan.io.jpg -------------------------------------------------------------------------------- /images/chap0x06/vulnerabilities-by-year.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/vulnerabilities-by-year.png -------------------------------------------------------------------------------- /images/chap0x06/web-threat-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/web-threat-flow.png -------------------------------------------------------------------------------- /images/chap0x06/whois-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/whois-info.png -------------------------------------------------------------------------------- /images/chap0x06/zoomeye.org.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x06/zoomeye.org.jpg -------------------------------------------------------------------------------- /images/chap0x07/csrf-facebook-add-backdoor-account.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/csrf-facebook-add-backdoor-account.mp4 -------------------------------------------------------------------------------- /images/chap0x07/dns-poison.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/dns-poison.png -------------------------------------------------------------------------------- /images/chap0x07/dnsbin-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/dnsbin-1.png -------------------------------------------------------------------------------- /images/chap0x07/file-hdr-demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/file-hdr-demo.png -------------------------------------------------------------------------------- /images/chap0x07/file-upload-rce-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/file-upload-rce-1.png -------------------------------------------------------------------------------- /images/chap0x07/firefox-in-kali-debug-mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/firefox-in-kali-debug-mode.png -------------------------------------------------------------------------------- /images/chap0x07/invalid-gif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/invalid-gif.png -------------------------------------------------------------------------------- /images/chap0x07/noscript-xss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/noscript-xss.png -------------------------------------------------------------------------------- /images/chap0x07/npmjs-poison.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/npmjs-poison.png -------------------------------------------------------------------------------- /images/chap0x07/php-include-data-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/php-include-data-1.png -------------------------------------------------------------------------------- /images/chap0x07/php-include-local-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/php-include-local-1.png -------------------------------------------------------------------------------- /images/chap0x07/php-include-php-input-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/php-include-php-input-0.png -------------------------------------------------------------------------------- /images/chap0x07/php-include-php-input-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/php-include-php-input-1.png -------------------------------------------------------------------------------- /images/chap0x07/php-include-remote-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/php-include-remote-0.png -------------------------------------------------------------------------------- /images/chap0x07/php-include-remote-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/php-include-remote-1.png -------------------------------------------------------------------------------- /images/chap0x07/privilege-triangle-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/privilege-triangle-model.png -------------------------------------------------------------------------------- /images/chap0x07/pypi-poison.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/pypi-poison.png -------------------------------------------------------------------------------- /images/chap0x07/sqli-labs-lesson-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/sqli-labs-lesson-11.png -------------------------------------------------------------------------------- /images/chap0x07/struts-on-cnvd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/struts-on-cnvd.png -------------------------------------------------------------------------------- /images/chap0x07/struts-on-wooyun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/struts-on-wooyun.png -------------------------------------------------------------------------------- /images/chap0x07/struts2-stats.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/struts2-stats.png -------------------------------------------------------------------------------- /images/chap0x07/tomcat-information-disclosure-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/tomcat-information-disclosure-1.jpg -------------------------------------------------------------------------------- /images/chap0x07/tomcat-information-disclosure-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/tomcat-information-disclosure-2.png -------------------------------------------------------------------------------- /images/chap0x07/web-sec-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/web-sec-model.png -------------------------------------------------------------------------------- /images/chap0x07/xss-auditor-removed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/xss-auditor-removed.png -------------------------------------------------------------------------------- /images/chap0x07/xss-chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/xss-chrome.png -------------------------------------------------------------------------------- /images/chap0x07/xss-cve-history-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/xss-cve-history-1.png -------------------------------------------------------------------------------- /images/chap0x07/xss-cve-history-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/xss-cve-history-2.png -------------------------------------------------------------------------------- /images/chap0x07/xss-cve-history-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/xss-cve-history-3.png -------------------------------------------------------------------------------- /images/chap0x07/xss-firefox-blame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/xss-firefox-blame.png -------------------------------------------------------------------------------- /images/chap0x07/xss-firefox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/xss-firefox.png -------------------------------------------------------------------------------- /images/chap0x07/xss-hello-world-in-2020.08.27-with-notes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/xss-hello-world-in-2020.08.27-with-notes.png -------------------------------------------------------------------------------- /images/chap0x07/xss-hello-world-in-2020.08.27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/xss-hello-world-in-2020.08.27.png -------------------------------------------------------------------------------- /images/chap0x07/xss-history-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x07/xss-history-1.png -------------------------------------------------------------------------------- /images/chap0x08/firewall-definition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/firewall-definition.png -------------------------------------------------------------------------------- /images/chap0x08/firewall-history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/firewall-history.png -------------------------------------------------------------------------------- /images/chap0x08/gartner-2019-fw-magic-quadrant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/gartner-2019-fw-magic-quadrant.png -------------------------------------------------------------------------------- /images/chap0x08/gartner-2022-fw-magic-quadrant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/gartner-2022-fw-magic-quadrant.png -------------------------------------------------------------------------------- /images/chap0x08/hybrid-mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/hybrid-mode.png -------------------------------------------------------------------------------- /images/chap0x08/lb-fw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/lb-fw.png -------------------------------------------------------------------------------- /images/chap0x08/nat-type-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/nat-type-1.png -------------------------------------------------------------------------------- /images/chap0x08/nat-type-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/nat-type-2.png -------------------------------------------------------------------------------- /images/chap0x08/nat-type-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/nat-type-3.png -------------------------------------------------------------------------------- /images/chap0x08/netfilter-iptables-arch-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/netfilter-iptables-arch-1.png -------------------------------------------------------------------------------- /images/chap0x08/netfilter-iptables-arch-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/netfilter-iptables-arch-2.png -------------------------------------------------------------------------------- /images/chap0x08/netfilter-iptables-arch-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/netfilter-iptables-arch-3.png -------------------------------------------------------------------------------- /images/chap0x08/netfilter-iptables-on-host.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/netfilter-iptables-on-host.png -------------------------------------------------------------------------------- /images/chap0x08/netfilter-iptables-workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/netfilter-iptables-workflow.png -------------------------------------------------------------------------------- /images/chap0x08/packet-filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/packet-filter.png -------------------------------------------------------------------------------- /images/chap0x08/private-addr-range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/private-addr-range.png -------------------------------------------------------------------------------- /images/chap0x08/proxy-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/proxy-1.png -------------------------------------------------------------------------------- /images/chap0x08/proxy-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/proxy-2.png -------------------------------------------------------------------------------- /images/chap0x08/routing-mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/routing-mode.png -------------------------------------------------------------------------------- /images/chap0x08/state-check-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/state-check-1.png -------------------------------------------------------------------------------- /images/chap0x08/state-check-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/state-check-2.png -------------------------------------------------------------------------------- /images/chap0x08/tips-fw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/tips-fw.png -------------------------------------------------------------------------------- /images/chap0x08/transparent-mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x08/transparent-mode.png -------------------------------------------------------------------------------- /images/chap0x09/fpr-fnr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x09/fpr-fnr.png -------------------------------------------------------------------------------- /images/chap0x09/ids-arch-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x09/ids-arch-1.png -------------------------------------------------------------------------------- /images/chap0x09/ids-arch-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x09/ids-arch-2.png -------------------------------------------------------------------------------- /images/chap0x09/ids-arch-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x09/ids-arch-3.png -------------------------------------------------------------------------------- /images/chap0x09/ids-deploy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x09/ids-deploy.png -------------------------------------------------------------------------------- /images/chap0x09/ids-fw-idr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x09/ids-fw-idr.png -------------------------------------------------------------------------------- /images/chap0x09/ids-history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x09/ids-history.png -------------------------------------------------------------------------------- /images/chap0x09/ids-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x09/ids-model.png -------------------------------------------------------------------------------- /images/chap0x09/ids-role.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x09/ids-role.png -------------------------------------------------------------------------------- /images/chap0x09/integraded-ids.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x09/integraded-ids.png -------------------------------------------------------------------------------- /images/chap0x09/suricata-rules-demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x09/suricata-rules-demo.png -------------------------------------------------------------------------------- /images/chap0x10/0day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x10/0day.png -------------------------------------------------------------------------------- /images/chap0x10/cyber-security-3d-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x10/cyber-security-3d-model.png -------------------------------------------------------------------------------- /images/chap0x10/func-model-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x10/func-model-1.png -------------------------------------------------------------------------------- /images/chap0x10/func-model-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x10/func-model-2.png -------------------------------------------------------------------------------- /images/chap0x10/func-model-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x10/func-model-3.png -------------------------------------------------------------------------------- /images/chap0x10/func-model-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x10/func-model-4.png -------------------------------------------------------------------------------- /images/chap0x10/func-model-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x10/func-model-5.png -------------------------------------------------------------------------------- /images/chap0x10/heartbleed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x10/heartbleed.png -------------------------------------------------------------------------------- /images/chap0x10/mod-security.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x10/mod-security.png -------------------------------------------------------------------------------- /images/chap0x10/object-oriented-harden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x10/object-oriented-harden.png -------------------------------------------------------------------------------- /images/chap0x10/web-threat-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x10/web-threat-model.png -------------------------------------------------------------------------------- /images/chap0x11/CanaryTokens-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x11/CanaryTokens-1.png -------------------------------------------------------------------------------- /images/chap0x11/CanaryTokens-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x11/CanaryTokens-2.png -------------------------------------------------------------------------------- /images/chap0x11/honeyfarm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x11/honeyfarm.png -------------------------------------------------------------------------------- /images/chap0x11/honeynet-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x11/honeynet-1.png -------------------------------------------------------------------------------- /images/chap0x11/honeynet-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x11/honeynet-2.png -------------------------------------------------------------------------------- /images/chap0x11/honeypot-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x11/honeypot-1.png -------------------------------------------------------------------------------- /images/chap0x11/honeypot-arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x11/honeypot-arch.png -------------------------------------------------------------------------------- /images/chap0x11/redirect-in-honeyfarm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x11/redirect-in-honeyfarm.png -------------------------------------------------------------------------------- /images/chap0x12/md5-collision-pe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x12/md5-collision-pe.png -------------------------------------------------------------------------------- /images/chap0x13/360-number-leak.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/360-number-leak.jpg -------------------------------------------------------------------------------- /images/chap0x13/4g-fake-base-station.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/4g-fake-base-station.png -------------------------------------------------------------------------------- /images/chap0x13/5g-fake-base-station.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/5g-fake-base-station.png -------------------------------------------------------------------------------- /images/chap0x13/anti-shoulder-surfing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/anti-shoulder-surfing.jpg -------------------------------------------------------------------------------- /images/chap0x13/appleid-icloud-blackmail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/appleid-icloud-blackmail.jpg -------------------------------------------------------------------------------- /images/chap0x13/callerid-spoof.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/callerid-spoof.jpg -------------------------------------------------------------------------------- /images/chap0x13/dumpster-diving.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/dumpster-diving.jpg -------------------------------------------------------------------------------- /images/chap0x13/mobile-dial-sound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/mobile-dial-sound.png -------------------------------------------------------------------------------- /images/chap0x13/phishing-quiz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/phishing-quiz.png -------------------------------------------------------------------------------- /images/chap0x13/qrcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/qrcode.png -------------------------------------------------------------------------------- /images/chap0x13/shoulder-surfing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/shoulder-surfing.jpg -------------------------------------------------------------------------------- /images/chap0x13/volte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/volte.png -------------------------------------------------------------------------------- /images/chap0x13/watering-hole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/watering-hole.png -------------------------------------------------------------------------------- /images/chap0x13/winrar4.20.exploit.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/winrar4.20.exploit.gif -------------------------------------------------------------------------------- /images/chap0x13/wl-thzp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/wl-thzp.png -------------------------------------------------------------------------------- /images/chap0x13/wx-con-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/wx-con-1.jpg -------------------------------------------------------------------------------- /images/chap0x13/wx-con-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/chap0x13/wx-con-2.jpg -------------------------------------------------------------------------------- /images/llm-sec/LLM-Alignment-Frameworks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/llm-sec/LLM-Alignment-Frameworks.png -------------------------------------------------------------------------------- /images/llm-sec/SurveyOfHallucination.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/llm-sec/SurveyOfHallucination.png -------------------------------------------------------------------------------- /images/llm-sec/TruthfulQA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/llm-sec/TruthfulQA.png -------------------------------------------------------------------------------- /images/llm-sec/jailbreak-demo-chatgpt-chatglm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/llm-sec/jailbreak-demo-chatgpt-chatglm.png -------------------------------------------------------------------------------- /images/llm-sec/jailbreak-demo-doubao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/llm-sec/jailbreak-demo-doubao.png -------------------------------------------------------------------------------- /images/llm-sec/knowledge-shortcut-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/llm-sec/knowledge-shortcut-1.png -------------------------------------------------------------------------------- /images/llm-sec/knowledge-shortcut-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/llm-sec/knowledge-shortcut-2.png -------------------------------------------------------------------------------- /images/llm-sec/let-chatgpt-teach-you-jailbreak-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/llm-sec/let-chatgpt-teach-you-jailbreak-1.png -------------------------------------------------------------------------------- /images/llm-sec/let-chatgpt-teach-you-jailbreak-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/llm-sec/let-chatgpt-teach-you-jailbreak-2.png -------------------------------------------------------------------------------- /images/llm-sec/llm-genealogy.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/llm-sec/llm-genealogy.webp -------------------------------------------------------------------------------- /images/reveal.js-multiplex.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/reveal.js-multiplex.gif -------------------------------------------------------------------------------- /images/vuls-awd/log4j2-vul-codes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/vuls-awd/log4j2-vul-codes.png -------------------------------------------------------------------------------- /images/vuls-awd/log4shell-and-aliyun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/vuls-awd/log4shell-and-aliyun.png -------------------------------------------------------------------------------- /images/vuls-awd/log4shell-detect-1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/vuls-awd/log4shell-detect-1.jpeg -------------------------------------------------------------------------------- /images/vuls-awd/log4shell-entrypoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/images/vuls-awd/log4shell-entrypoint.png -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "网络安全" 3 | author: 黄玮 4 | --- 5 | 6 | * [课程概况](intro.md.v4.html) 7 | 8 | ## 2024 年以后精简版课件 9 | 10 | --- 11 | 12 | ### 网络安全基础 13 | 14 | * [第一章 网络安全基础](chap0x01-slim.md.v4.html) | [PDF 打印版](chap0x01-slim.md.v4.html?print-pdf) 15 | * [第二章 系统安全、风险评估理论与应用](chap0x02-slim.md.v4.html) | [PDF 打印版](chap0x02-slim.md.v4.html?print-pdf) 16 | * [第三章 网络安全应用基础](chap0x03-slim.md.v4.html) | [PDF 打印版](chap0x03-slim.md.v4.html?print-pdf) 17 | 18 | --- 19 | 20 | ### 网络监听与扫描 21 | 22 | * [第四章 网络监听](chap0x04.md.v4.html) | [PDF 打印版](chap0x04.md.v4.html?print-pdf) 23 | * [第五章 网络扫描](chap0x05.md.v4.html) | [PDF 打印版](chap0x05.md.v4.html?print-pdf) 24 | 25 | --- 26 | 27 | ### 网络与系统渗透 28 | 29 | * [第六章 网络与系统渗透](chap0x06.md.v4.html) | [PDF 打印版](chap0x06.md.v4.html?print-pdf) 30 | * [第七章 Web应用漏洞攻防](chap0x07.md.v4.html) | [PDF 打印版](chap0x07.md.v4.html?print-pdf) 31 | 32 | --- 33 | 34 | ### 网络与系统防御 35 | 36 | * [第八章 防火墙](chap0x08-slim.md.v4.html) | [PDF 打印版](chap0x08-slim.md.v4.html?print-pdf) 37 | * [第九章 入侵检测](chap0x09-slim.md.v4.html) | [PDF 打印版](chap0x09-slim.md.v4.html?print-pdf) 38 | * [第十章 应用程序安全加固](chap0x10.md.v4.html) | [PDF 打印版](chap0x10.md.v4.html?print-pdf) 39 | * [第十一章 蜜罐和蜜网](chap0x11.md.v4.html) | [PDF 打印版](chap0x11.md.v4.html?print-pdf) 40 | * [第十二章 计算机取证](chap0x12-slim.md.v4.html) | [PDF 打印版](chap0x12-slim.md.v4.html?print-pdf) 41 | * [第十三章 社会化网络安全](chap0x13-slim.md.v4.html) | [PDF 打印版](chap0x13-slim.md.v4.html?print-pdf) 42 | 43 | --- 44 | 45 | ## 2024 年以前完整版课件 46 | 47 | --- 48 | 49 | ### 网络安全基础 50 | 51 | * [第一章 网络安全基础](chap0x01.md.v4.html) | [PDF 打印版](chap0x01.md.v4.html?print-pdf) 52 | * [第二章 系统安全、风险评估理论与应用](chap0x02.md.v4.html) | [PDF 打印版](chap0x02.md.v4.html?print-pdf) 53 | * [第三章 网络安全应用基础](chap0x03.md.v4.html) | [PDF 打印版](chap0x03.md.v4.html?print-pdf) 54 | 55 | --- 56 | 57 | ### 网络监听与扫描 58 | 59 | * [第四章 网络监听](chap0x04.md.v4.html) | [PDF 打印版](chap0x04.md.v4.html?print-pdf) 60 | * [第五章 网络扫描](chap0x05.md.v4.html) | [PDF 打印版](chap0x05.md.v4.html?print-pdf) 61 | 62 | --- 63 | 64 | ### 网络与系统渗透 65 | 66 | * [第六章 网络与系统渗透](chap0x06.md.v4.html) | [PDF 打印版](chap0x06.md.v4.html?print-pdf) 67 | * [第七章 Web应用漏洞攻防](chap0x07.md.v4.html) | [PDF 打印版](chap0x07.md.v4.html?print-pdf) 68 | 69 | --- 70 | 71 | ### 网络与系统防御 72 | 73 | * [第八章 防火墙](chap0x08.md.v4.html) | [PDF 打印版](chap0x08.md.v4.html?print-pdf) 74 | * [第九章 入侵检测](chap0x09.md.v4.html) | [PDF 打印版](chap0x09.md.v4.html?print-pdf) 75 | * [第十章 应用程序安全加固](chap0x10.md.v4.html) | [PDF 打印版](chap0x10.md.v4.html?print-pdf) 76 | * [第十一章 蜜罐和蜜网](chap0x11.md.v4.html) | [PDF 打印版](chap0x11.md.v4.html?print-pdf) 77 | * [第十二章 计算机取证](chap0x12.md.v4.html) | [PDF 打印版](chap0x12.md.v4.html?print-pdf) 78 | * [第十三章 社会化网络安全](chap0x13.md.v4.html) | [PDF 打印版](chap0x13.md.v4.html?print-pdf) 79 | 80 | --- 81 | 82 | ### 综合实验 83 | 84 | * [网络安全综合实验:开源信息系统搭建、加固与漏洞攻防](vuls-awd.md.v4.html) 85 | 86 | -------------------------------------------------------------------------------- /intro.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "网络安全" 3 | author: 黄玮 4 | output: revealjs::revealjs_presentation 5 | --- 6 | 7 | # 课程概况 8 | 9 | --- 10 | 11 | ## 先修课程 12 | 13 | * 计算机安全与维护 14 | * 计算机⽹络A 15 | * [Linux 系统与网络管理](https://c4pr1c3.github.io/cuc-wiki/linux.html) 16 | * [密码学应用实践(推荐)](https://c4pr1c3.github.io/cuc-wiki/ac.html) 17 | 18 | --- 19 | 20 | ## 本课程使用教材 21 | 22 | [自编教材 - 在线](https://c4pr1c3.github.io/cuc-ns/) 23 | 24 | --- 25 | 26 | ## 硬件和软件环境 27 | 28 | * PC / macOS 29 | * Linux (Kali) 30 | * 虚拟化(`Virtualbox` 或 `Docker`) 31 | 32 | # 关于课程的教、学方法和原则 33 | 34 | --- 35 | 36 | ## 教 37 | 38 | * 授⼈以渔 39 | * 重思路、⽅向讲解,轻傻瓜式重复 40 | 41 | --- 42 | 43 | ## 学 44 | 45 | * 兴趣第⼀ 46 | * 尽信师,不如⽆师:质疑、思考、实践 47 | * 会用、用好互联⽹,特别是“搜索” 48 | * ⼀定要亲自动⼿实践 49 | 50 | --- 51 | 52 | ## 学习金字塔 53 | 54 | ![](images/chap0x01/pyramid-1.jpg) 55 | 56 | --- 57 | 58 | ## 遗忘金字塔 59 | 60 | ![](images/chap0x01/pyramid-2.jpg) 61 | 62 | --- 63 | 64 | ## 重要的事情说三遍 65 | 66 | * 主动 **学** 主动 **做** 主动 **讲** 67 | * 主动 **学** 主动 **做** 主动 **讲** 68 | * 主动 **学** 主动 **做** 主动 **讲** 69 | 70 | # 课程目标 71 | 72 | --- 73 | 74 | 通过本课程的讲授和实验操作 75 | 76 | * 你能了解到 77 | * ⽹络攻防基本原理 78 | * ⽹络攻防基本⼿段 79 | * 你不能了解到 80 | * 如何编写恶意代码 81 | 82 | # 课程体系 83 | 84 | --- 85 | 86 | | 内容主题 | 讲授学时 | 实验学时 | 难度评级 | 87 | | :-: | :-: | :-: | :-: | 88 | | 计算机网络安全基础 | 6 | 2 | ⭐️⭐️ | 89 | | 网络监听与扫描 | 6 | 6 | ⭐️⭐️⭐️ | 90 | | 网络与系统渗透 | 8 | 10 | ⭐️⭐️⭐️⭐️ | 91 | | 网络与系统防御 | 12 | 14 | ⭐️⭐️⭐️⭐️⭐️ | 92 | 93 | # 考核方式 94 | 95 | --- 96 | 97 | * 详见 `当年教学 Wiki` 。 98 | 99 | # Q&A 100 | 101 | --- 102 | 103 | 欢迎提问😁 104 | 105 | -------------------------------------------------------------------------------- /render.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # ref: https://github.com/jgm/pandoc/wiki/Using-pandoc-to-produce-reveal.js-slides 3 | 4 | output_dir=( 5 | "." 6 | "v4" 7 | "server" 8 | "client" 9 | ) 10 | 11 | secret=( 12 | "''" 13 | "'${PRETOKEN}'" 14 | "null" 15 | ) 16 | 17 | for input in ./*.md;do 18 | if [[ "$input" == "./README.md" ]];then 19 | continue 20 | fi 21 | i=0 22 | for dir in "${output_dir[@]}";do 23 | if [[ "$input" =~ index.md ]];then 24 | # 生成默认首页 25 | if [[ "$dir" != "v4" ]];then 26 | pandoc index.md -s -o "${dir}/index.html" 27 | fi 28 | continue 29 | fi 30 | if [[ $dir == "." ]];then 31 | multiplex='' 32 | else 33 | multiplex='true' 34 | fi 35 | if [[ "$dir" != "v4" ]];then 36 | output_ppt="${dir}/${input}.html" 37 | pandoc -t revealjs --template=lib/revealjs.template.html -s "${input}" -V theme=white -V transition=fade -V incremental=true -V slideNumber=true -o "${output_ppt}" -V revealjs-url="lib/reveal.js" -V history=true --no-highlight -V hlss=zenburn -V mathjax=true -V multiplex=${multiplex} -V multiplex-secret="${secret[$i]}" -V multiplex-id="${PREID}" -V multiplex-server="${PRESERVER}" 38 | else 39 | # reveal.js v4 based 40 | output_ppt="${input}.${dir}.html" 41 | pandoc -t revealjs --template=lib/revealjs.template.v4.html -s "${input}" -V theme=my-white -V transition=fade -V incremental=true -V slideNumber=true -o "${output_ppt}" -V revealjs-url="lib/reveal.js.v4" -V history=true --no-highlight -V hlss=monokai -V mathjax=true -V multiplex=${multiplex} -V multiplex-secret="${secret[$i]}" -V multiplex-id="${PREID}" -V multiplex-server="${PRESERVER}" -L revealjs-codeblock.lua 42 | fi 43 | i=$((i+1)) 44 | done 45 | done 46 | -------------------------------------------------------------------------------- /revealjs-codeblock.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | revealjs-codeblock - enable reveal.js code presentation features 3 | 4 | Copyright © 2020 Tim Sokollek 5 | 6 | Permission to use, copy, modify, and/or distribute this software for any 7 | purpose with or without fee is hereby granted, provided that the above 8 | copyright notice and this permission notice appear in all copies. 9 | 10 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 | ]] 18 | local function is_numberlines_class(class) 19 | return class == 'numberLines' or class == 'number-lines' 20 | end 21 | 22 | local function is_pre_tag_attribute(attribute) 23 | return attribute == 'data-id' 24 | end 25 | 26 | local function is_data_line_number_in_attributes(attributes) 27 | for _, attribute in ipairs(attributes) do 28 | if attribute[1] == 'data-line-numbers' then return true end 29 | end 30 | return false 31 | end 32 | 33 | function CodeBlock(block) 34 | if FORMAT == 'revealjs' then 35 | local css_classes = {} 36 | local pre_tag_attributes = {} 37 | local code_tag_attributes = {} 38 | 39 | for _, class in ipairs(block.classes) do 40 | if is_numberlines_class(class) then 41 | if not is_data_line_number_in_attributes(block.attributes) then 42 | table.insert(block.attributes, {'data-line-numbers', ''}) 43 | end 44 | else 45 | table.insert(css_classes, class) 46 | end 47 | end 48 | if block.identifier ~= '' then 49 | table.insert(pre_tag_attributes, 50 | string.format('id="%s"', block.identifier)) 51 | end 52 | if next(css_classes) then 53 | class_attribute = string.format('class="%s"', 54 | table.concat(css_classes, ' ')) 55 | table.insert(code_tag_attributes, class_attribute) 56 | end 57 | for _, attribute in ipairs(block.attributes) do 58 | attribute_string = string.format('%s="%s"', attribute[1], 59 | attribute[2]) 60 | if is_pre_tag_attribute(attribute[1]) then 61 | table.insert(pre_tag_attributes, attribute_string) 62 | else 63 | table.insert(code_tag_attributes, attribute_string) 64 | end 65 | end 66 | local html = string.format('
%s
', 67 | table.concat(pre_tag_attributes, ' '), 68 | table.concat(code_tag_attributes, ' '), 69 | block.text:gsub("<", "<"):gsub(">", ">")) 70 | return pandoc.RawBlock('html', html) 71 | end 72 | end 73 | -------------------------------------------------------------------------------- /server/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c4pr1c3/cuc-ns-ppt/c44719bcd1ba31459ce9dcf0b1524ce0c0ec5b73/server/.gitkeep --------------------------------------------------------------------------------