1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo môn học nhập môn an toàn thông tin đề tài tìm hiểu top 10 lỗ hổng owasp

29 3 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trong anninh mạng, lỗ hổng bảo mật là các điểm yếu kỹ thuật hoặc phi kỹ thuật của một phần mềm, phần cứng,giao thức, một hệ thống thông tin.Các điểm yếu này bị các tội phạm mạng lợi dụng

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

TRƯỜNG THẦYNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG──────── * ───────

BÁO CÁO MÔN HỌC

Nhập môn an toàn thông tin

Đề tài:

Tìm hiểu Top 10 lỗ hổng OWASP

Sinh viên thực hiện: Nhóm 2, Lớp CNTT -K67

1 Nguyễn Thị Mai Quyên - 202290342 Lê Thị Kim Anh - 20229001

Giảng viên hướng dẫn:ThS Lê Văn Đồng

HÀ NỘI, 06-2023

Trang 2

LỜI NHẬN XÉT GIÁO VIÊN

Trang 3

 Nhóm 2 lớp K67-CNTT gồm 4 thành viên với các nội dung công việc được phân côngnhư sau:

1Nguyễn Thị Mai Quyên

Thuyết trình, demo tấn công, sửa thể thức

Làm slide

3Bùi Quang HảoChương 2: 2.6 – 2.10

4Lê Thị Kim AnhThuyết trình, demo tấn công.

Trang 4

Tuy nhiên, do kiến thức, kinh nghiệm và khả năng có hạn nên trong quá trình thực hiệnbáo cáo chúng em còn nhiều sai sót, mong nhận được sự đóng góp và cảm thông của thầy Lê VănĐồng

Chúng em xin chân thành cảm ơn thầy!

Trang 5

1.2 Nguyên nhân gây ra các lỗ hổng bảo mật của Website 14

1.3 Tiêu chuẩn OWASP là gì ? 14

1.3.1 Một số thành phần trong tiêu chuẩn OWASP 14

1.5 Tấn công là gì ? 16

Chương 2 TÌM HIỂU TOP 10 LỖ HỔNG OWASP 17

2.1 Broken Access Control ( Kiểm soát truy cập bị hỏng) 17

2.1.1 Broken Access Control ( Kiểm soát truy cập bị hỏng) là gì ? 17

2.1.2 Các lỗ hổng phổ biến: 17

2.1.3 Hậu quả: 17

2.1.4 Cách phòng chống 17

2.1.5 Kịch bản tấn công kiểm soát truy cập bị hỏng 18

2.1.6 Công cụ ứng dụng tấn công và khai thác lỗ hổng Broken Access Control: 18

2.2 Cryptographic failures ( Lỗi mật mã hỏng) 18

2.3.7 Công cụ phát hiện và tấn công lỗ hổng Injection 22

2.4 Insecure design ( thiết kế không an toàn) 22

2.4.2 Hậu quả 22

2.4.3 Cách ngăn chặn: 22

2.4.4 Kịch bản tấn công Insecure design 22

Trang 6

2.4.5 Công cụ phát hiện và tấn công lỗ hổng Insecure design 23

2.5 Security Misconfiguration ( Cấu hình bảo mật sai) 23

2.5.6 Công cụ hỗ trợ tấn công và khai thác lỗ hổng cấu hình bảo mật sai 25

2.6 Các thành phần dễ bị tổn hại và lỗi thời (Vulnerable and Outdated Components) 25

Trang 7

2.10.3 Nguyên nhân/cách tấn công 322.10.4 Phương pháp ngăn chặn 332.10.5 Kịch bản tấn công 33

Trang 8

Chương 1 TỔNG QUAN1.1 Lỗ hổng bảo mật Website là gì?

Vulnerability (lỗ hổng bảo mật) là một khái niệm phổ biến trong an toàn thông tin Trong an

ninh mạng, lỗ hổng bảo mật là các điểm yếu (kỹ thuật hoặc phi kỹ thuật) của một phần mềm, phần cứng,

giao thức, một hệ thống thông tin.

Các điểm yếu này bị các tội phạm mạng lợi dụng để khai thác và truy cập trái phép vào hệ thống máytính Một khi mà tội phạm mạng khai thác được lỗ hổng thì chúng có thể phát tán các mã độc, cài đặtphần mềm độc hại và thậm chí là đánh cắp các dữ liệu nhạy cảm.

Ngoài website thì lỗ hổng bảo mật thường sẽ xuất hiện ở: Ứng dụng web, ứng dụng mobile

 Các hệ điều hành và phần mềm Các thiết bị IoT

 Mã nguồn, API

 Các giao thức truyền tải, mã hóa Hệ thống mạng, thiết bị mạng.

1.2 Nguyên nhân gây ra các lỗ hổng bảo mật của Website

Quản lý mật khẩu kém: Những mật khẩu yếu có thể dễ dàng bị tấn công một cách nhanh chóng.

Đồng thời, việc sử dụng lại mật khẩu có thể dẫn đến từ một vi phạm dữ liệu và trở thành nhiều vụ viphạm đang xảy ra.

Lỗi do hệ điều hành: Cũng giống như bất cứ phần mềm nào khác thì hệ điều hành lúc này cũng

có thể xuất hiện lỗ hổng Các hệ điều hành không an toàn hay chạy mặc định, đặc biệt là để tất cả mọingười dùng có quyền truy cập đầy đủ lúc này sẽ có thể cho phép virus cùng với phần mềm độc hại thựcthi tất cả các lệnh.

Việc sử dụng internet: Hiện nay, internet được đánh giá là có rất nhiều loại phần mềm gián điệp,

đồng thời phần mềm quảng cáo cũng có thể sẽ được cài đặt tự động trên máy tính.

Lỗi phần mềm: Lập trình viên có thể vô tình hoặc cố ý để lại một lỗi, Lỗi này có khả năng sẽ

được khai thác dễ dàng trong phần mềm.

Đầu vào không được kiểm tra: Nguyên nhân tiếp theo chính là đầu vào của người dùng lúc này

không được kiểm tra một cách kỹ càng Nếu như trang web hoặc phần mềm của bạn cho rằng toàn bộ đầuvào đều an toàn thì chúng có thể thực thi đa dạng các lệnh SQL ngoài ý muốn.

Người sử dụng: Lỗ hổng lớn nhất đối với bất kỳ tổ chức nào có thể chính là người sử dụng đằng

sau hệ thống đó Tấn công phi kỹ thuật chính là mối đe dọa lớn nhất so với các tổ chức khác nhau.

1.3 Tiêu chuẩn OWASP là gì ?

OWASP là một tiêu chuẩn toàn cầu để phục vụ việc kiểm thử xâm nhập – Penetration Testing

(Pentest) được dễ dàng hơn Tiêu chuẩn này được đề xuất bởi một tổ chức phi lợi nhuận: Open WebApplication Security Project (OWASP).

Tiêu chuẩn OWASP giúp cho các chuyên gia kiểm thử (pentester) kiểm tra bảo mật cho website một cáchchi tiết, hiệu quả.

Trang 9

1.3.1Một số thành phần trong tiêu chuẩn OWASP

Input Validation

Bạn phải kiểm tra format, min, max, độ dài cho phép của các ô nhập liệu Ngoài ra, bạn nhớ mãhoá các ký tự đặc biệt Không bao giờ tin tưởng hoàn toàn người dùng, đó là một phương châmrất quan trọng đối với lập trình viên Việc kiểm tra dữ liệu được nhập vào từ người dùng là côngviệc vô cùng quan trọng Mục đích để tránh những sai sót không đáng có và các kiểu tấn côngXSS, CSRF.

Output Encoding

Mã hoá các giá trị được nhận từ các nguồn đến trang web Đôi khi, ở client được nhận những giátrị không đáng có như đoạn mã liên quan đến XSS, nếu không có những biện pháp xử lý trước khihiển thị sẽ vô tình kích hoạt bẫy của hacker.

Authentication and Password Management

Kiểm tra bảo mật với chức năng đăng nhập là vấn đề cực kỳ quan trọng, bạn phải đảm bảo việcđăng nhập cần sự an toàn và đúng với ý định của nhà phát hành ứng dụng.

Cryptographic Practices

Kiểm tra mã hóa thông tin trên đường truyền Đối với đối thượng là những website thương mạiđiện tử hay giao dịch thì việc kiểm tra, mã hóa đường truyền là một vấn đề hết sức quan trọng.Phần này sẽ gợi ý bạn một số lời khuyên hữu ích.

Error Handling and Logging

Kiểm tra cách xử lý lỗi của ứng dụng thông tin về lỗi cũng là một nguồn thu thập dữ liệu cho

Trang 10

hacker có thể tấn công vào website Những lúc đó ứng dụng cần có cơ chế xử lý để không gặpphải hiện tượng tự nhiên lăn đùng ra chết mà quản trị chẳng hay chết khi nào và vì sao lại chết.Để biết điều, đó ta phải ghi Log các hoạt động của hệ thống Tuy nhiên, hacker có thể khai tháclog để đánh hệ thống.

Data Protection

Thu thập thông tin về đối tượng,thông tin về server Bước này rất quan trọng bởi khi đã xác địnhđược chính xác thông tin liên quan sẽ hình thành nên kịch bản để các Pentester có thể tấn côngkhai thác những lỗi liên quan đến websever mà không cần quan tâm tới ứng dụng đang chạy có antoàn hay không, từ đó có cách nhìn tổng quát về sản phầm cần pentest.

Communication Security

Bạn nên kiểm soát chặt chẽ quá trình giao tiếp với các thành phần khác như API, server khácthông qua giao thức kết nối, VPN, Chẳng hạn như HTTPS không được thực hiện chính xác vàđể lại lỗ hổng, giúp tin tặc có thể ăn cắp thông tin tài khoản, mật khẩu, địa chỉ hay bất cứ thôngtin có giá trị nào khác.

System Configuration Cần đánh giá về hệ thống máy chủ, không chỉ dừng ở bước đánh giá ứng

dụng, bạn cần phải đánh giá cả nền tảng mà các ứng dụng chạy trên đó bởi nó có thể gây nguy hạikhông chỉ đến web mà còn đến cả hệ thống server Hình thức kiểm tra được sử dụng là whiteboxvà graybox Ngoài ra, do cấu hình an ninh lỏng lẻo tại các tầng kiến trúc của web như nền tảng,framework, máy chủ, cơ sở dữ liệu và mã tùy chỉnh nên tin tặc có thể khai thác tấn công và cóquyền truy cập dữ liệu Vì thế, tất cả các tầng kiến trúc của web phải được cập nhật thườngxuyên.

Khuyến khích các nhà phát triển thực hành mã hóa an toàn bằng cách tích hợp kiểm tra an ninh ởtừng giai đoạn phát triển Điều này sẽ giúp cho các ứng dụng trong quá trình phát triển tránh đượccác lỗi và an toàn hơn.

Tài liệu Hướng dẫn Kiểm tra của OWASP cung cấp chi tiết về các kỹ thuật đánh giá, cung cấpmột cái nhìn rộng hơn vào nhiều nền tảng công nghệ giúp người kiểm tra lựa chọn cách thức phùhợp nhất để tiến hành kiểm tra.

Tài liệu OWASP Top 10 cung cấp các hướng dẫn kỹ thuật giúp chống lại các cuộc tấn công vàđiểm yếu bảo mật phổ biến nhất và duy trì tính bảo mật (Confidentiality), tính toàn vẹn (Integrity)và tính sẵn sàng (Availability) của ứng dụng (CIA).

Cộng đồng OWASP cũng đã phát triển một số công cụ bảo mật và hướng dẫn sử dụng tập trungvào kiểm tra ứng dụng web một cách tự động Một vài công cụ như: WebScarab, Wapiti,JBroFuzz và SQLiX Các công cụ này cũng được cài đặt sẵn trong hệ điều hành BackTrack.

Trang 11

1.5 Tấn công là gì?

Tấn công là kỹ thuật mà kẻ tấn công sử dụng để khai thác các lỗ hổng trong ứng dụng Các cuộctấn công thường bị nhầm lẫn với các lỗ hổng, vì vậy hãy cố gắng đảm bảo rằng cuộc tấn công mà bạnđang mô tả là điều mà kẻ tấn công sẽ thực hiện, chứ không phải là điểm yếu trong ứng dụng.

Trang 12

Chương 2 TÌM HIỂU TOP 10 LỖ HỔNG OWASP2.1 Broken Access Control ( Kiểm soát truy cập bị hỏng)

2.1.1 Broken Access Control (Kiểm soát truy cập bị hỏng) là gì ?

Broken Accsess Control là sự kiểm soát người dùng cho phép họ thực thi những hành động bên ngoàiquyền hạn Các lỗi thường dẫn đến tiết lộ thông tin trái phép sửa đổi hoặc phá hủy tất cả dữ liệu hoặcthực hiện chức năng ngoài giới hạn người dùng.

2.1.4 Cách phòng chống

 Kiểm soát truy cập, kiểm soát này chỉ hiệu quả khi thực hiện ở mã nguồn ứng dụng (code) phíamáy chủ

 Thực hiện các cơ chết kiểm soát quyền truy cập và thực hiện nó trên toàn ứng dụng.

 Triển khai các cơ chế kiểm soát truy cập một lần và sử dụng lại chúng trong toàn bộ ứng dụng,bao gồm việc giảm thiểu Chia sẻ tài nguyên giữa các bên (CORS).

 Phân tách các nghiệp vụ ứng dụng khác nhau theo mô hình miền (domain model).

 Thiết lập hạn chế cho các API và kiểm soát truy cập để giảm thiểu tác hại từ công cụ tấn công tựđộng.

 Các nhà phát triển và nhà kiểm định chất lượng nên triển khai kiểm soát truy cập đối với mỗichức năng và thực hiện các bài kiểm tra tích hợp.

2.1.5 Kịch bản tấn công kiểm soát truy cập bị hỏng

Kịch bản 1: Trong trường hợp sau đây, kẻ tấn công sử dụng kỹ thuật duyệt bắt buộc để khai thác một thưmục tĩnh không được bảo vệ trên hệ thống đích

 Bước 1: Kẻ tấn công sư dụng công cụ quét tự động để tìm kiếm các tài nguyên không được liênkết trên hệ thống đích và tìm thấy tài nguyên không được bảo vệ: /admin

 Bước 2: Kẻ tấn công bắt đầu một cuộc tấn công duyệt bắt buộc trên hệ thống đích để xác minhxem có cần quyền quản trị để truy cập trang quản trị hay không.

 Bước 3: Kẻ tấn công truy cập vào trang quản trị với tư cách là người dùng chưa được xác thực vàthực hiện hành động trái phép.

Trang 13

Kịch bản 2: Kẻ tấn công điều hướng trình duyệt đến các URL mục tiêu Quyền quản trị được yêu cầuđể truy cập vào trang quản trị.

https://example.com/app/getappInfo https://example.com/app/admin_getappInfo

Nếu một người dùng chưa được xác thực có thể truy cập vào một trong hai trang hoặc một ngườikhông phải quản trị viên có thể truy cập vào trang quản trị, đó là lỗ hổng của ứng dụng.

2.1.6 Công cụ ứng dụng tấn công và khai thác lỗ hổng Broken Access Control:

 Burp Suite: cung cấp tính năng để phát hiện và khai thác lỗ hổng bảo mật Nmap: công cụ quét mạng và phát hiện lỗ hổng bảo mật.

 Nessus: công cụ quét lỗ hổng bảo mật tự động.

 OpenVas: có thể phát hiện lỗ hổng cấu hình bảo mật sai và cung cấp báo cáo chi tiết về các lỗ hổng.

 Acunetix: công cụ quét lỗ hổng bảo mật sử dụng các kỹ thuật quét tự động để phát hiện lỗ hổng.

2.2 Cryptographic failures ( Lỗi mật mã hỏng)2.2.1 Cryptographic failures là gì?

Cryptographic failures bảo mật thông tin nhạy cảm bằng cách mã hóa thông tin theo các cách khác nhau,nhưng nếu cách mã hóa đó kẻ tấn công có thể giải mã được hay là cách thức giải mã không đảm bảo antoàn bản rõ thì những thông tin đó sẽ bị rò rỉ ra ngoài.

Những kẻ tấn công thường nhắm mục tiêu nhạy cảm, ví dụ như: mật khẩu, số thẻ tín dụng và thông tincác nhân khi bảo vệ không đúng cách Lỗi mật mã là nguyên nhân gốc rễ của việc lộ dữ liệu nhạy cảm.Theo OWASP 2021 việc bảo mật dữ liệu của bạn khỏi các lỗi mã hóa đã trở nên quan trọng hơn bao giờhết.

2.2.2 Các lỗi phổ biến:

 Lưu trữ hoặc chuyển dữ liệu ở dạng văn bản rõ ràng ( lỗi phổ biến nhất) Sử dụng nhưng giao thức truyền dữ liệu dạng rõ như: HTTP, FTP  Sử dụng những mã hóa đã cũ hoặc yếu

 Sử dụng những hàm băm không dùng nữa như : MD5, SHA1 Khóa bí mật dễ đoán

 Chuỗi mã hõa không được xác thực

2.2.3 Hậu quả:

Trang 14

 Mất quyền riêng tư: một lỗ hổng mật mã có thể cho phép kể tấn công truy cập trái phép vào thôngtin bảo mật Điều này có thể dẫn đến việc tiết lộ thông tin cá nhân, dữ liệu tài chính, thông tinkinh doanh quan trọng hoặc các bí mật quốc gia.

 Mất tính toàn vẹn: nếu hệ thống mật mã bị tấn công và tạo ra dữ liệu không xác định hoặc đượcsửa đổi, thông tin quan trọng có thể bị thay đổi hoặc bị mất tính toàn vẹn Điều này gây ra sựnhầm lẫn, thiệt hại tài chính.

 Giả mạo và phá vỡ xác thực: làm cho quy trình xác thực trở nên không tin cậy, cho phép kẻ tấncông giả mạo danh tính và truy cập trái phép vào các tài khoản hoặc hệ thống.

 Ảnh hưởng đến danh tiếng

2.2.4 Cách ngăn chặn:

 Phân loại dữ liệu đang được ứng dụng xử lý, lưu trữ hoặc truyền đi Xác định dữ liệu nào nhạycảm theo luật bảo mật, yêu cầu quy định hoặc nhu cầu kinh doanh.

 Không sử dụng những giao thức đã cũ như: FTP, SMTP để vận chuyển dữ liệu nhạy cảm

 Đảm bảo các thuật toán mã hóa đạt tiêu chuẩn mạnh mẽ và được cập nhật mới nhất, sử dụng quảnlý khóa phù hợp.

 Mã hóa dữ liệu trên đường truyền bằng TLS, HTTPS. Tắt bộ nhớ đệm cho các phản hồi có chứa dữ liệu nhạy cảm.

 Lưu trữ mật khẩu bằng các hàm băm mạnh như: Argon2, scrypt, bcrypt  Luôn sử dụng mã hóa được xác thực thay vì chỉ mã hóa

2.2.5 Ví dụ kịch bản tấn công

Kịch bản 1: Trong kịch bản tấn công dưới đây kẻ tấn công sử dụng bảng cầu vồng để bẻ khóa các hàmbăm mật khẩu không có giá trị trong cơ sở dữ liệu.

 Bước 1: Kẻ tấn công giành được quyền truy cập vào mạng của một tổ chức

 Bước 2: Kể tấn công sử dụng một lỗ hổng ứng dụng để lấy cơ sở dữ liệu mật khẩu

 Bước 3: Vì cơ sở dữ liệu sử dụng hàm băm không có giá trị để mã hóa mật khẩu nên kẻ tấn côngcó thể sử dụng bảng cầu vồng để lộ mật khẩu.

 Bước 4: Kẻ tấn công sử dụng các công cụ nhồi thông tin xác thực để kiểm tra các cặp thông tinxác thực trên các trang web khác.

Kịch bản 2: Một ứng dụng mã hóa số thẻ tín dụng trong cơ sở dữ liệu bằng cách sử dụng mã hóa cơ sở dữliệu tự động Tuy nhiên, dữ liệu này sẽ tự động được giải mã khi được truy xuất, cho phép một lỗ hổngSQL injection truy xuất số thẻ tín dụng ở dạng văn bản rõ ràng.

Trang 15

2.2.6 Công cụ hỗ trợ để tấn công và khai thác lỗ hổng Cryptographic Failures:

 OpenSSL: là thư viện mã nguồn mở phổ biến trong việc triển khai các giao thức mật mãvà các thuật toán mã hóa.

 John the Ripper: công cụ khai thác mật khẩu Nó có thể sử dụng để tấn công các lỗ hổngliên quan đến mật khẩu và các lỗi mật mã trong việc bảo vệ mật khẩu.

 Hashcat: công cụ khai thác mật khẩu , hỗ trợ khai thác lỗ hổng mật khẩu Cain & Abel: công cụ phổ biến cho việc khai thác mật khẩu và tấn công mạng.

2.3 Injection ( Tiêm lệnh)2.3.1 Lỗi Injection là gì ?

Injection là lỗi xảy ra khi người tấn công nhập dữ liệu làm thi hành những câu lệnh không ý muốn trên hệthống.

2.3.2 Một số cách tiêm phổ biến

 SQL injection: tiêm vào một đoạn mã hợp lệ vào trong cơ sở dữ liệu để truy suất dữ liệu

 Command injection: tiêm những câu lệnh hệ thống độc hại thường ở dạng tập lệnh để khai thácdữ liệu nhạy cảm.

 XSS-Cross – site Scripting: tiêm những đoạn mã vào trang web mục đích để khai thác dữ liệu trêntrang web.

 Không hiển thị Exception hay thông báo lỗi để tránh kẻ tấn công có thể suy đoán kết quả Thiết lập quyền sử dụng cho người dùng phù hợp

 Chủ động sử dụng các công cụ dò quét lỗ hỏng bảo mật Backup dữ liệu thường xuyên

2.3.5 Kịch bản tấn công Injection:

 Bước 1: Kẻ tấn công đưa câu lệnh truy vấn hoặc mã code vào phần tử dễ bị tấn công của ứngdụng.

 Bước 2: Máy chủ ứng dụng web thực hiện tiêm

 Bước 3: Kẻ tấn công giành được quyền truy cập trái phép, gây ra sự từ chối dịch vụ, đánh cắp dữliệu nhạy cảm hoặc gây ra hậu quả bất chính Kẻ tấn công có thể lấy mọi trường dữ liệu từ tất cảngười dùng thay vì từ một người dùng cụ thể.

Ngày đăng: 24/07/2024, 16:05

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w