Đề cương khóa học

Ngày 1

Bảo mật IT và lập trình an toàn

  • Bản chất của bảo mật
  • Các thuật ngữ liên quan đến bảo mật IT
  • Định nghĩa về rủi ro
  • Các khía cạnh khác nhau của bảo mật IT
  • Yêu cầu của các lĩnh vực ứng dụng khác nhau
  • Bảo mật IT so với lập trình an toàn
  • Từ lỗ hổng đến botnets và tội phạm mạng
    • Bản chất của lỗi bảo mật
    • Lý do khó khăn
    • Từ máy tính bị lây nhiễm đến các cuộc tấn công có mục tiêu
  • Phân loại lỗi bảo mật
    • Thuật ngữ Landwehr
    • Bảy Vương quốc Hại Hoa
    • OWASP Top Ten 2013
    • So sánh OWASP Top Ten 2003 – 2013

Giới thiệu về chu trình phát triển phần mềm an toàn của Microsoft® (SDL)

  • Chương trình
  • Các ứng dụng đang bị tấn công...
    • Sự tiến hóa của tội phạm mạng
    • Các cuộc tấn công tập trung vào các ứng dụng
    • Hầu hết lỗ hổng nằm trong các ứng dụng nhỏ của ISV
  • Nguồn gốc của SDL của Microsoft...
    • Lịch sử bảo mật tại Microsoft...
    • Các ứng dụng nào cần tuân theo SDL?
  • Chu trình phát triển phần mềm an toàn của Microsoft (SDL)
    • Chu trình phát triển phần mềm an toàn của Microsoft (SDL)
    • Yêu cầu trước SDL: Đào tạo bảo mật
    • Giai đoạn Một: Yêu cầu
    • Giai đoạn Hai: Thiết kế
    • Giai đoạn Ba: Thực hiện
    • Giai đoạn Bốn: Xác minh
    • Giai đoạn Năm: Phát hành – Kế hoạch phản ứng
    • Giai đoạn Năm: Phát hành – Đánh giá an toàn cuối cùng
    • Giai đoạn Năm: Phát hành – Lưu trữ
    • Yêu cầu sau SDL: Phản ứng
    • Hướng dẫn quy trình SDL cho các ứng dụng LOB
    • Hướng dẫn SDL cho các phương pháp nhanh nhẹn
    • Phát triển phần mềm an toàn đòi hỏi cải tiến quy trình

Nguyên tắc thiết kế an toàn

  • Diện tích tấn công
    • Giảm diện tích tấn công
    • Diện tích tấn công – một ví dụ
    • Phân tích diện tích tấn công
    • Giảm diện tích tấn công – các ví dụ
  • Bảo mật
    • Bảo mật
    • Hiểu hành vi và quan ngại của ứng dụng
  • Phòng thủ nhiều lớp
    • Nguyên tắc cốt lõi của SDL: Phòng thủ nhiều lớp
    • Phòng thủ nhiều lớp – một ví dụ
  • Nguyên tắc quyền tối thiểu
    • Quyền tối thiểu – một ví dụ
  • Cài đặt an toàn
    • Cài đặt an toàn – các ví dụ

Nguyên tắc thực hiện an toàn

  • Chương trình
  • Chu trình phát triển phần mềm an toàn của Microsoft (SDL)
  • Cơ bản về tràn bộ đệm
    • Các thanh ghi chính của bộ xử lý Intel 80x86
    • Bố cục địa chỉ bộ nhớ
    • Cơ chế gọi hàm trong C/C++ trên x86
    • Các biến số cục bộ và khung ngăn xếp
    • Tràn ngăn xếp
      • Tràn bộ đệm trên ngăn xếp
      • Bài tập – giới thiệu
      • Bài tập BOFIntro
      • Bài tập BOFIntro – xác định bố cục ngăn xếp
      • Bài tập BOFIntro – một cuộc khai thác đơn giản
  • Xác thực đầu vào
    • Các khái niệm xác thực đầu vào
    • Các vấn đề về số nguyên
      • Biểu diễn các số nguyên âm
      • Tràn số nguyên
      • Tràn số học – đoán kết quả!
      • Bài tập IntOverflow
      • Giá trị của Math.Abs(int.MinValue) là gì?
    • Giải quyết các vấn đề về số nguyên
      • Giải quyết các vấn đề về số nguyên
      • Tránh tràn số học – phép cộng
      • Tránh tràn số học – phép nhân
      • Phát hiện tràn với từ khóa checked trong C#
      • Bài tập – Sử dụng từ khóa checked trong C#
      • Các ngoại lệ được kích hoạt bởi tràn trong C#
    • Trường hợp nghiên cứu – Tràn số nguyên trong .NET
      • Một lỗ hổng tràn số nguyên thực tế
      • Khai thác lỗ hổng tràn số nguyên
    • Lỗ hổng chuyển hướng đường dẫn
      • Giải quyết lỗ hổng chuyển hướng đường dẫn

Ngày 2

Nguyên tắc thực hiện an toàn

  • Tiêm mã
    • Các phương pháp tấn công tiêm SQL thông thường
    • Tiêm SQL mù và dựa trên thời gian
    • Phương pháp bảo vệ chống tiêm SQL
    • Tiêm lệnh
  • Xác thực bị hỏng - quản lý mật khẩu
    • Bài tập – Yếu điểm của mật khẩu đã được băm
    • Quản lý và lưu trữ mật khẩu
    • Các thuật toán băm chuyên dụng cho việc lưu trữ mật khẩu
  • Cross-Site Scripting (XSS)
    • Cross-Site Scripting (XSS)
    • Tiêm CSS
    • Khai thác: tiêm thông qua các thẻ HTML khác
    • Phòng ngừa XSS
  • Thiếu kiểm soát truy cập chức năng
    • Lọc tải lên tệp
  • Mật mã thực tế
    • Cung cấp tính bảo mật với mật mã đối xứng
    • Các thuật toán mã hóa đối xứng
    • Mật mã khối – các chế độ hoạt động
    • Băm hoặc tiêu đề tin nhắn
    • Các thuật toán băm
    • Mã xác thực thông điệp (MAC)
    • Cung cấp tính toàn vẹn và xác thực với khóa đối xứng
    • Cung cấp tính bảo mật với mã hóa công khai
    • Quy tắc chung – sở hữu khóa riêng
    • Các lỗi phổ biến trong quản lý mật khẩu
    • Bài tập – Mật khẩu được mã hóa cứng
    • Kết luận

Nguyên tắc xác minh an toàn

  • Kiểm thử chức năng so với kiểm thử bảo mật
  • Các lỗ hổng bảo mật
  • Xếp hạng ưu tiên
  • Kiểm thử bảo mật trong chu trình SDLC
  • Các bước lập kế hoạch kiểm thử (phân tích rủi ro)
  • Xác định phạm vi và thu thập thông tin
    • Chủ thể có liên quan
    • Tài sản
    • Diện tích tấn công
    • Mục tiêu bảo mật cho kiểm thử
  • Xây dựng mô hình đe dọa
    • Xây dựng mô hình đe dọa
    • Hồ sơ của kẻ tấn công
    • Xây dựng mô hình đe dọa dựa trên cây tấn công
    • Xây dựng mô hình đe dọa dựa trên các trường hợp sử dụng sai/lạm dụng
    • Trường hợp sử dụng sai/lạm dụng – ví dụ đơn giản về cửa hàng trực tuyến
    • Tiếp cận mô hình đe dọa dựa trên STRIDE cho từng yếu tố – MS SDL
    • Xác định mục tiêu bảo mật
    • Vẽ sơ đồ – các ví dụ về các yếu tố DFD
    • Sơ đồ dòng dữ liệu – ví dụ
    • Liệt kê đe dọa – các yếu tố STRIDE và DFD của MS SDL
    • Phân tích rủi ro – phân loại các đe dọa
    • Mô hình xếp hạng đe dọa/rủi ro DREAD
  • Các kỹ thuật và công cụ kiểm thử bảo mật
    • Các phương pháp kiểm thử tổng quát
    • Kỹ thuật cho các bước khác nhau của chu trình SDLC
  • Đánh giá mã nguồn
    • Đánh giá mã nguồn cho bảo mật phần mềm
    • Phân tích nhiễm
    • Các nguyên tắc
  • Phân tích mã nguồn tĩnh
    • Phân tích mã nguồn tĩnh
    • Bài tập – Sử dụng các công cụ phân tích mã nguồn tĩnh
  • Kiểm thử việc thực hiện
    • Xác minh thời gian chạy thủ công
    • Kiểm thử bảo mật thủ công so với tự động
    • Kiểm thử thâm nhập
    • Kiểm thử chịu tải
  • Mô phỏng
    • Kiểm thử bảo mật tự động - mô phỏng
    • Thách thức của mô phỏng
  • Công cụ quét lỗ hổng web
    • Bài tập – Sử dụng công cụ quét lỗ hổng
  • Kiểm tra và củng cố môi trường
    • Hệ thống đánh giá rủi ro chung – CVSS
    • Công cụ quét lỗ hổng
    • Cơ sở dữ liệu công cộng
  • Trường hợp nghiên cứu – Bỏ qua xác thực dạng
    • Lỗ hổng kết thúc bằng byte NULL
    • Lỗ hổng bỏ qua xác thực dạng trong mã
    • Khai thác lỗ hổng bỏ qua xác thực dạng

Nguồn kiến thức

  • Nguồn lập trình an toàn – bộ công cụ khởi đầu
  • Cơ sở dữ liệu lỗ hổng
  • Hướng dẫn lập trình an toàn .NET tại MSDN
  • Bảng gian lận lập trình an toàn .NET
  • Sách đề xuất – .NET và ASP.NET
 14 Giờ học

Số người tham gia


Giá cho mỗi người tham gia

Đánh giá (5)

Các khóa học sắp tới

Các danh mục liên quan