intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Luận văn Thạc sĩ Công nghệ thông tin: Ứng dụng kỹ thuật bảo mật trong Microsoft .NET vào Hệ thống quản lý và luân chuyển văn bản nội bộ tại GPBank

Chia sẻ: Yi Yi | Ngày: | Loại File: PDF | Số trang:78

34
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trong phạm vi luận văn này sẽ tập trung nghiên cứu xây dựng và phát triển hệ thống TMS dạng ứng dụng web để đảm bảo việc hỗ trợ, vận hành và quản trị hệ thống tập trung. Luận văn cũng nghiên cứu các kỹ thuật bảo mật theo yêu cầu của TT 18/2018 và Quy định an toàn bảo mật thông tin của GPBank đểứng dụng vào hệthống TMS.

Chủ đề:
Lưu

Nội dung Text: Luận văn Thạc sĩ Công nghệ thông tin: Ứng dụng kỹ thuật bảo mật trong Microsoft .NET vào Hệ thống quản lý và luân chuyển văn bản nội bộ tại GPBank

  1. ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN MẠNH ỨNG DỤNG KỸ THUẬT BẢO MẬT TRONG MICROSOFT .NET VÀO HỆ THỐNG QUẢN LÝ VÀ LUÂN CHUYỂN VĂN BẢN NỘI BỘ TẠI GPBANK LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội – 2019
  2. ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN MẠNH ỨNG DỤNG KỸ THUẬT BẢO MẬT TRONG MICROSOFT .NET VÀO HỆ THỐNG QUẢN LÝ VÀ LUÂN CHUYỂN VĂN BẢN NỘI BỘ TẠI GPBANK Ngành: Công nghệ thông tin Chuyên ngành: Kỹ Thuật Phần Mềm Mã số: 8480103.01 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS TRƯƠNG NINH THUẬN Hà Nội – 2019
  3. 1 LỜI CẢM ƠN Đầu tiên, tôi xin bày tỏ lòng cảm ơn chân thành và sâu sắc nhất đến PGS.TS Trương Ninh Thuận vì sự hướng dẫn và chỉ bảo tận tình cùng với những định hướng, những lời khuyên, những kiến thức vô cùng quý giá của Thầy trong quá trình em theo học cũng như làm luận văn tốt nghiệp. Tôi xin được gửi lời cảm ơn tới các Thầy Cô trong khoa Công nghệ thông tin - trường Đại học Công Nghệ - Đại học Quốc gia Hà Nội nói chung cũng như các thầy cô trong bộ môn Công nghệ Phần mềm nói riêng đã tận tình giảng dạy, trang bị cho tôi những kiến thức quý báu trong suốt quá trình tôi học tập tại khoa. Đây cũng chính là tiền đề để tôi có được những kiến thức cần thiết để hoàn thiện luận văn này. Cuối cùng, tôi cũng xin được gửi lời cảm ơn chân thành đến các anh chị em đồng nghiệp cũng như gia đình, bạn bè, người thân đã giúp đỡ tôi cả về vật chất lẫn tinh thần để tôi hoàn thành được luận văn này. Mặc dù đã rất cố gắng nhưng luận văn chắc chắn không tránh khỏi những thiếu sót, tôi rất mong nhận được những ý kiến đánh giá và phê bình từ phía các Thầy Cô để luận văn được hoàn thiện hơn. Tôi xin chân thành cảm ơn! Hà nội, tháng 05 năm 2019 Học viên Trần Mạnh
  4. 2 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp với đề tài “Ứng dụng kỹ thuật bảo mật trong Microsoft .NET vào Hệ thống quản lý và luân chuyển văn bản nội bộ tại GPBank” này là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn của PGS.TS Trương Ninh Thuận. Các kết quả tôi trình bày trong luận văn là hoàn toàn trung thực và chưa từng được được nộp như một khóa luận, luận văn hay luận án tại trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội hoặc bất kỳ trường đại học nào khác. Tôi đã trích dẫn đầy đủ các tài liệu tham khảo, các công trình nghiên cứu liên quan ở trong nước và quốc tế trong phần tài liệu tham khảo. Ngoại trừ các tài liệu tham khảo này, luận văn này hoàn toàn là công việc của riêng tôi. Nếu có bất cứ phát hiện nào về sự gian lận sao chép tài liệu, công trình nghiên cứu của tác giả khác mà không ghi rõ trong phần tài liệu tham khảo, tôi xin chịu hoàn toàn trách nhiệm về kết quả luận văn của mình. Hà nội, tháng 05 năm 2019 Học viên Trần Mạnh
  5. 3 MỤC LỤC LỜI CẢM ƠN ..................................................................................................................1 LỜI CAM ĐOAN ............................................................................................................2 MỤC LỤC .......................................................................................................................3 DANH SÁCH KÝ HIỆU, CHỮ VIẾT TẮT ...................................................................6 DANH SÁCH HÌNH VẼ.................................................................................................7 DANH SÁCH BẢNG......................................................................................................9 Chương 1: Giới thiệu .....................................................................................................10 1.1. Tính cấp thiết của đề tài ......................................................................................10 1.2. Mục tiêu và phạm vi nghiên cứu .........................................................................11 1.3. Hướng nghiên cứu và cách giải quyết .................................................................11 1.4. Cấu trúc của luận văn ..........................................................................................12 Chương 2: TỔNG QUAN VỀ BẢO MẬT HỆ THỐNG PHẦN MỀM ........................13 2.1. Sự cần thiết đối với bảo mật máy tính ................................................................13 2.2. Các khái niệm cơ bản ..........................................................................................13 2.2.1. Lỗ hổng bảo mật ...........................................................................................13 2.2.2. Khai thác lỗ hổng ..........................................................................................14 2.2.3. Nguy cơ và rủi ro ..........................................................................................14 2.2.4. Tấn công .......................................................................................................15 2.2.5. Hacker ...........................................................................................................16 2.3. Các lỗ hổng phần mềm quan trọng .....................................................................16 2.3.1. SQL Injection................................................................................................16 2.3.2. OS Command Injection ................................................................................17 2.3.3. Buffer overflow ............................................................................................17 2.4. Các kiểu tấn công ................................................................................................17 2.4.1. Tấn công Brute-Force ...................................................................................17 2.4.2. Tấn công xác thực .........................................................................................18 2.4.3. Tấn công giả mạo..........................................................................................19 2.4.4. Tấn công từ chối dịch vụ ..............................................................................20 2.4.5. Tấn công cuộc gọi thủ tục từ xa (Remote Procedure Call attack) ................20 2.4.6. Tấn công tiêm mã (Code injection) .............................................................20 2.5. Lập trình bảo mật ................................................................................................20 2.5.1. Các thuộc tính bảo mật .................................................................................20 2.5.2. Lập trình an toàn ...........................................................................................22
  6. 4 2.6. Kết luận ...............................................................................................................22 Chương 3: BẢO MẬT HỆ THỐNG PHẦN MỀM TRONG .NET ..............................23 3.1. Tổng quan kiến trúc bảo mật hệ thống phần mềm ..............................................23 3.1.1. Vòng đời phát triển .......................................................................................23 3.1.2. Phân tích yêu cầu bảo mật ............................................................................24 3.1.3. Thiết kế bảo mật ...........................................................................................25 3.1.4. Đánh giá bảo mật ..........................................................................................29 3.1.5. Kiểm thử bảo mật .........................................................................................30 3.2. Bảo mật trong .NET ............................................................................................32 3.2.1. .NET Framework ..........................................................................................32 3.2.2. .NET Runtime security .................................................................................34 3.2.3. Kiến trúc bảo mật .NET ................................................................................34 3.2.4. Thư viện bảo mật trong .NET .......................................................................45 3.3. Một số kiểu tấn công ứng dụng Web ..................................................................47 3.3.1. SQL Injection................................................................................................48 3.3.2. Cross-site scripting (XSS) ............................................................................48 3.3.3. HTTP Harvesting ..........................................................................................49 3.4. Kết luận ...............................................................................................................49 Chương 4: MỘT MÔ HÌNH ỨNG DỤNG KỸ THUẬT BẢO MẬT TRONG MICROSOFT .NET TẠI GPBANK .............................................................................50 4.1. Mô tả bài toán......................................................................................................50 4.1.1. Mục đích .......................................................................................................50 4.1.2. Phạm vi .........................................................................................................50 4.1.3. Yêu cầu cụ thể ..............................................................................................51 4.1.4. Giải pháp .......................................................................................................52 4.2. Phân tích nghiệp vụ .............................................................................................52 4.2.1. Mô tả chức năng ...........................................................................................52 4.2.2. Quy trình luân chuyển yêu cầu chuyển tiền .................................................53 4.2.3. Biểu đồ ca sử dụng .......................................................................................56 4.2.4. Biểu đồ lỗ hổng ca sử dụng ..........................................................................60 4.2.5. Các Module chức năng hệ thống ..................................................................60 4.3. Thiết kế hệ thống .................................................................................................61 4.3.1. Mô hình tổng thể hệ thống ............................................................................61 4.3.2. Mô hình chức năng .......................................................................................61 4.3.3. Kiến trúc hệ thống ........................................................................................62
  7. 5 4.4. Xây dựng hệ thống thử nghiệm ...........................................................................62 4.4.1. Môi trường cài đặt, triển khai .......................................................................62 4.4.2. Màn hình giao diện .......................................................................................62 4.4.3. Đánh giá khả năng an toàn và bảo mật của hệ thống ...................................64 4.4.4. Một số Test case về an toàn và bảo mật của hệ thống ..................................72 4.5. Kết luận ...............................................................................................................74 Chương 5: KẾT LUẬN .................................................................................................75 TÀI LIỆU THAM KHẢO .............................................................................................76
  8. 6 DANH SÁCH KÝ HIỆU, CHỮ VIẾT TẮT Ký hiệu Thuật ngữ Ý nghĩa CNTT Công nghệ thông tin Code Mã (trong phần mềm) Client Máy trạm CN/PGD Chi nhánh/Phòng giao dịch DDoS Distributed Denial of Service Tấn công từ chối dịch vụ DoS Denial of Service Từ chối dịch vụ GPBank Ngân hàng TM TNHH MTV Dầu Khí Toàn Cầu Hacker Tin tặc HĐH Hệ điều hành HTTP Hypertext Transfer Protocol Giao thức truyền siêu văn bản HTTPS Hypertext Transfer Protocol Bảo mật giao thức truyền siêu Secure văn bản NTFS Window NT File System Hệ thống file Window Server Máy chủ SSL Secure Socket Layer Bảo mật lớp cổng TSC Trụ sở chính TSL Transport Layer Securrity Bảo mật lớp vận chuyển TT 18/2018 Thông tư số 18/2018/TT- NHNN ngày 21/08/2018 Quy định về an toàn hệ thống thông tin trong hoạt động Ngân hàng
  9. 7 DANH SÁCH HÌNH VẼ Hình 2.1: Tấn công chủ động. .......................................................................................15 Hình 2.2: Tấn công thụ động. ........................................................................................16 Hình 3.1: Các bước xây dựng một hệ thống bảo mật. ...................................................23 Hình 3.2: Xác định quyền dựa trên vai trò của người dùng. .........................................28 Hình 3.3: Bảo mật ứng dụng web .NET. .......................................................................35 Hình 3.4: Cơ chế degest gửi password. .........................................................................36 Hình 3.5: Ví dụ cài đặt file web.config. ........................................................................38 Hình 3.6: Ví dụ về cài đặt xác thực Forms. ...................................................................39 Hình 3.7: Ví dụ về cài đặt chứng thực. ..........................................................................40 Hình 3.8: Các dịch vụ bảo mật ASP.NET. ....................................................................41 Hình 3.9: Cấu hình xác thực Token...............................................................................43 Hình 3.10: Cấu hình xác thực PKI X.509 Certificate. ..................................................43 Hình 3.11: Kiến trúc bảo mật SQL Server. ...................................................................44 Hình 3.12: Mã hóa và giải mã với 1 khóa. ....................................................................45 Hình 3.13a: Mã hóa với Public key và giải mã với Private key. ...................................46 Hình 3.13b: Mã hóa với Private key và giải mã với Public key....................................47 Hình 4.1: Quy trình tạo yêu cầu chuyển tiền. ................................................................54 Hình 4.2: Quy trình kiểm tra, xác nhận yêu cầu............................................................55 Hình 4.3: Ca sử dụng các module trong hệ thống. ........................................................57 Hình 4.4: Ca sử dụng Quản lý phòng ban. ....................................................................57 Hình 4.5: Ca sử dụng Quản lý khóa ký. ........................................................................58 Hình 4.6: Ca sử dụng Quản lý luân chuyển yêu cầu chuyển tiền..................................58 Hình 4.7: Ca sử dụng Thống kê – báo cáo. ...................................................................59 Hình 4.8: Ca sử dụng Quản lý người dùng....................................................................59 Hình 4.9: Ca sử dụng Cấu hình hệ thống. .....................................................................60 Hình 4.10: Lỗ hổng ca sử dụng. ....................................................................................60 Hình 4.11: Mô hình tổng thể hệ thống. .........................................................................61 Hình 4.12: Mô hình chức năng. .....................................................................................61 Hình 4.13: Kiến trúc hệ thống. ......................................................................................62 Hình 4.14: Giao diện đăng nhập hệ thống. ....................................................................63 Hình 4.15: Giao diện nhập yêu cầu chuyển tiền............................................................63 Hình 4.16: Giao diện xác nhận yêu cầu chuyển tiền. ....................................................64 Hình 4.17: Thiết kế bảng các tham số hệ thống cấu hình mật khẩu người sử dụng. ....65 Hình 4.18: Thiết kế cấu hình thông tin User. ................................................................65
  10. 8 Hình 4.19: Mã hóa mật khẩu lưu vào Cơ sở dữ liệu. ....................................................66 Hình 4.20: Sử dụng Store procedure xác thực người dùng. ..........................................66 Hình 4.21: Sử dụng Validation control, giới hạn độ dài và hủy bỏ Autocomplete. ......67 Hình 4.22: Thiết lập phòng chống tấn công Cross-Site Scripting. ................................67 Hình 4.23: Mã hóa xâu kết nối Cơ sở dữ liệu trong file web.config. ............................68 Hình 4.24: Mã xâu kết nối Cơ sở dữ liệu lưu vào Registry...........................................69 Hình 4.25: Cấu hình bảo mật trong file web.config. .....................................................69 Hình 4.26: Cấu hình ghi nhật ký. ..................................................................................70 Hình 4.27: Tạo mã TestKey với độ dài 8 ký tự. ............................................................70 Hình 4.28a: Mã hóa file sử dụng thư viện Rfc2898DeriveBytes. .................................71 Hình 4.28b: Giải mã file sử dụng thư viện Rfc2898DeriveBytes. ................................71
  11. 9 DANH SÁCH BẢNG Bảng 4.1: Mô tả bảng tham số cấu hình mật khẩu cho User. ........................................64 Bảng 4.2: Mô tả bảng tham số cấu hình cho User. ........................................................65 Bảng 4.3: Kết quả thực hiện Test lỗ hổng SQL Injection. ............................................72 Bảng 4.4: Kết quả thực hiện Test lỗ hổng Cross-Site Scripting. ...................................73
  12. 10 Chương 1: Giới thiệu 1.1. Tính cấp thiết của đề tài Ngày nay, công nghệ thông tin đang được ứng dụng ngày càng nhiều và ảnh hưởng sâu sắc đến mọi mặt của đời sống. Chúng ta có thể thấy công nghệ thông tin được áp dụng trong hầu hết các lĩnh vực của cuộc sống, từ trò chơi điện tử được thiết kế để đáp ứng nhu cầu giải trí, các ứng dụng soạn thảo văn bản hỗ trợ việc xử lý các công việc văn phòng, đến các ứng dụng áp dụng trong quá trình quản trị, điều hành các hoạt động sản xuất kinh doanh của mỗi doanh nghiệp. Với mục đích nâng cao tính hiệu quả trong hoạt động sản xuất kinh doanh, ứng dụng công nghệ thông tin vào quá trình quản trị, điều hành các hoạt động sản xuất kinh doanh đòi hỏi tính liên tục cao, hạn chế tối đa những gián đoạn có thể xảy ra, vì chỉ cần một lỗi nhỏ cũng có thể làm gián đoạn hoạt động sản xuất kinh doanh gây ra thiệt hại về kinh tế cho doanh nghiệp. Trong thời gian vừa qua, vấn đề an toàn, an ninh thông tin và chủ quyền quốc gia là vấn đề thời sự cấp bách với Việt Nam khi chúng ta phải đối mặt với hàng loạt các cuộc tấn công từ quốc tế. Đặc biệt với những hệ thống nhạy cảm như an ninh quốc phòng, sân bay hay ngân hàng là những hệ thống cần phải được tăng cường bảo đảm an toàn nếu không muốn gây ra những thiệt hại lớn về kinh tế hay an ninh quốc phòng. Ngày 21/08/2018, Thống đốc Ngân hàng Nhà nước đã ký ban hành Thông tư 18/2018/TT-NHNN quy định về an toàn hệ thống thông tin trong hoạt động ngân hàng, thay thế thông tư số 31/2015/TT-NHNN ngày 28/12/2015 quy định về đảm bảo an toàn, bảo mật hệ thống công nghệ thông tin trong hoạt động ngân hàng. Thông tư 18/2018/TT-NHNN được ban hành nhằm cập nhật các quy định mới của Luật An toàn thông tin mạng và các văn bản hướng dẫn đồng thời phản ánh đầy đủ, sát thực hơn các yêu cầu về an ninh bảo mật trong tình hình mới, phù hợp với thực tế phát triển nhanh chóng, đa dạng về công nghệ thông tin [1]. Nội dung của TT 18/2018 quy định về an toàn và bảo mật đối với hệ thống ứng dụng như:  Ghi nhật ký hoạt động của hệ thống thông tin và người sử dụng.  Quản lý truy cập hệ thống thông tin và ứng dụng.  Quy định về quản lý mã khóa bí mật. Tháng 11/2018, GPBank cũng đã xây dựng và triển khai Quy định an toàn và bảo mật thông tin nhằm đáp ứng và tuân thủ các quy định của thông tư 18/2018/TT-NHNN của Ngân hàng Nhà nước. Nội dung của Quy định cũng quy định liên quan đến an toàn và bảo mật hệ thống ứng dụng như:  Giám sát và ghi nhật ký hoạt động của hệ thống.  Quản lý truy cập  Quy định đặt mật khẩu  Quy định về đảm bảo an toàn, bảo mật cho hệ thống ứng dụng
  13. 11  Quy định về sử dụng các giải thuật trong mã hóa. Một số hệ thống ứng dụng nghiệp vụ tại GPBank được xây dựng và phát triển từ cách đây khoảng 12 năm, hiện tại hệ thống không đáp ứng được các yêu cầu quản lý mới về nghiệp vụ và không tuân thủ đầy đủ các quy định mới nhất về an toàn bảo mật hệ thống ứng dụng. Do đó, xây dựng và phát triển mới hệ thống ứng dụng nghiệp vụ đáp ứng được yêu cầu nghiệp vụ mới và tuân thủ các quy định về an toàn bảo mật càng trở lên cấp thiết. 1.2. Mục tiêu và phạm vi nghiên cứu Hệ thống TestKey Management System (TMS) là hệ thống thực hiện quản lý các yêu cầu chuyển tiền thanh toán quốc tế của khách hàng. Hệ thống này được xây dựng và phát triển từ năm 2006, hiện tại hệ thống không đáp ứng được các yêu cầu quản lý mới về nghiệp vụ và không tuân thủ các quy định mới nhất về an toàn bảo mật hệ thống ứng dụng. Thêm vào đó, phòng Thanh toán quốc tế tại TSC cần xây dựng mới hệ thống TMS quản lý tâp đáp ứng được yêu cầu mới về nghiệp vụ và tuân thủ các quy định về an toàn bảo mật của hệ thống ứng dụng theo TT 18/2018 và Quy định an toàn bảo mật hệ thống thông tin của GPBank. Mục tiêu của luận văn là nghiên cứu xây dựng và phát triển mới hệ thống TestKey Management System đáp ứng được yêu cầu mới về nghiệp vụ và tuân thủ các quy định về an toàn bảo mật. Trong phạm vi luận văn này sẽ tập trung nghiên cứu xây dựng và phát triển hệ thống TMS dạng ứng dụng web để đảm bảo việc hỗ trợ, vận hành và quản trị hệ thống tập trung. Luận văn cũng nghiên cứu các kỹ thuật bảo mật theo yêu cầu của TT 18/2018 và Quy định an toàn bảo mật thông tin của GPBank để ứng dụng vào hệ thống TMS. 1.3. Hướng nghiên cứu và cách giải quyết Việc lựa chọn công nghệ để xây dựng hệ thống ứng dụng cũng được đặt ra để làm sao đáp ứng được yêu cầu. Xây dựng và phát triển các ứng dụng web là giải pháp để giải quyết các bài toán yêu cầu xây dựng hệ thống quản lý nghiệp vụ tập trung từ các phòng ban nghiệp vụ tại TSC của GPBank. Các ứng dụng nghiệp vụ web cho phép người phát triển ứng dụng và cài đặt các giải pháp bảo mật tập trung đảm bảo tuân thủ theo quy định của Ngân hàng Nhà nước và GPBank, đồng thời đối với ứng dụng web thì người dùng không cần cài đặt mà chỉ cần sử dụng trình duyệt để đăng nhập và sử dụng hệ thống. Hiện nay, có một số ngôn ngữ cho phép các nhà phát triển xây dựng các ứng dụng web như PHP, NodeJS, Java, .Net,… Tuy nhiên các ứng dụng nghiệp vụ tại GPBank đa phần được xây dựng và phát triển trên nền tảng Microsoft .NET trong đó chủ yếu là ASP.NET. Vì vậy, việc lựa chọn công nghệ ASP.NET của Microsoft để xây dựng hệ thống quản lý và luân chuyển văn bản nội bộ tại GPBank, cụ thể ở đây là xây
  14. 12 dựng hệ thống TestKey Management System (TMS). Việc lựa chọn xây dựng ứng dụng TMS trên nền tảng ASP.NET cũng là để phù hợp với hệ thống hạ tầng hiện tại và tránh phát sinh thêm chi phí. Ngoài ra, .NET cũng cung cấp đầy đủ công cụ và các thư viện cho phép xây dựng và ứng dụng nhằm đáp ứng các yêu cầu về an toàn và bảo mật cho hệ thống ứng dụng. 1.4. Cấu trúc của luận văn Trong khuôn khổ luận văn này tôi tập trung trình bày những khái niệm tổng quan về bảo mật phần mềm, kiến trúc bảo mật hệ thống phần mềm, một số lỗ hổng phần mềm quan trọng và một số kiểu tấn công. Trình bày về bảo mật trong Microsoft .NET, bảo mật ASP.NET, đồng thời ứng dụng các kỹ thuật bảo mật của ASP.NET vào “Hệ thống Quản lý và luân chuyển văn bản nội bộ tại GPBank”. Luận văn được trình bày trong 6 chương: Chương 1: Giới thiệu tổng quan luận văn, lý do chọn đề tài, mục tiêu, phạm vi và hướng giải quyết của luận văn. Chương 2: Giới thiệu những khái niệm tổng quan về bảo mật trong hệ thống phần mềm, các lỗ hổng bảo mật cũng như các kiểu tấn công. Chương 3: Giới thiệu tổng quan về kiến trúc bảo mật hệ thống phần mềm, tổng quan về bảo mật trong Microsoft .Net, bảo mật trong ASP.NET. Chương 4: Một mô hình ứng dụng kỹ thuật bảo mật trong ASP.NET của Microsoft tại GPBank. Chương 5: Tóm tắt kết quả thu được qua luận văn.
  15. 13 Chương 2: TỔNG QUAN VỀ BẢO MẬT HỆ THỐNG PHẦN MỀM 2.1. Sự cần thiết đối với bảo mật máy tính Các máy tính ngày nay được sử dụng để quản lý nhiều chức năng từ các tài khoản ngân hàng đến các hồ sơ sức khỏe. Chúng ta giữ thẻ tín dụng của chúng ta an toàn để không ai có thể đánh cắp được chúng. Tuy nhiên, với sự ra đời của Thương mại điện tử, người ta có thể mua hàng hóa mà không cần thẻ tín dụng vật lý. Ngày nay, một tên tội phạm không cần đánh cắp thẻ tín dụng vật lý, chúng chỉ cần biết chi tiết thông tin thẻ tín dụng đó. Do đó, chúng cần đảm bảo rằng máy tính lưu trữ thông tin thẻ tín dụng cần được bảo mật. Các máy tính được sử dụng để quản lý và lưu trữ nhiều thông tin, từ giải trí đến thông tin công ty, từ thông tin cá nhân đến giấy phép lái xe, tất cả đều được duy trì bởi máy tính. Nếu chúng ta không bảo mật và bảo vệ máy tính, chúng ta có nguy cơ bị tấn công và mất mát dữ liệu. 2.2. Các khái niệm cơ bản Bảo mật (Security) là các biện pháp được thiết lập để bảo vệ một ứng dụng/hệ thống ứng dụng chống lại các hành động không lường trước được cho rằng các hành động đó sẽ ảnh hưởng hoặc phá hủy ứng dụng/hệ thống ứng dụng. Hành động không lường trước có thể là cố ý hoặc vô ý. Trong phần này luận văn trình bày một số khái niệm liên quan đến bảo mật trong hệ thống phần mềm [2]. 2.2.1. Lỗ hổng bảo mật Các lỗ hổng bảo mật là những điểm yếu trong hệ thống hoặc ẩn chứa trong một dịch vụ hệ thống đó cung cấp, dựa vào đó tin tặc có thể khai thác xâm nhập trái phép để thực hiện các hành động phá hoại hoặc chiếm đoạt tài nguyên bất hợp pháp. Đối với một hệ thống máy tính, lỗ hổng có thể ở bất cứ đâu. Nó có thể trong một chương trình người dùng, trong một Hệ điều hành (Windows XP, Windows NT, UNIX), trong cơ sở dữ liệu, hoặc do người quản trị yếu kém không hiểu sâu sắc các dịch vụ cung cấp và/hoặc do người sử dụng có ý thức bảo mật kém. Đối với lỗ hổng phần mềm, đây là lỗ hổng liên quan đến lỗi (bug) trong phần mềm. Bug là lỗi code khiến hệ thống thực hiện một hành động không mong muốn. Các bug này có thể khiến hệ thống gặp sự cố, kết nối bị lỗi, không đăng nhập được, nâng cao đặc quyền người dùng hoặc cấp quyền truy cập trái phép vào hệ thống. Mức độ ảnh hưởng của các lỗ hổng là khác nhau. Có những lỗ hổng chỉ ảnh hưởng đến chất lượng dịch vụ cung cấp, có những lỗ hổng ảnh hưởng nghiêm trọng đến toàn bộ hệ thống… các lỗ hổng bảo mật sẽ là các điểm yếu có thể tạo ra sự ngưng trệ của dịch vụ.
  16. 14 2.2.2. Khai thác lỗ hổng Một khi xác định được lỗ hổng, tin tặc có thể viết ra một chương trình lợi dụng lỗi để xâm nhập và chiếm quyền kiểm soát thiết bị. Tội phạm mạng tìm điểm yếu trong các phần mềm bảo vệ hệ thống, có thể là một kết nối mạng không được bảo vệ đúng cách. Nếu tin tặc có thể tiếp cận máy tính mục tiêu, chúng có thể tìm hiểu về hệ thống đó. Làm thế giúp chúng xác định các phương pháp tiếp cận riêng - truy cập các tệp tin cụ thể hay chạy các chương trình nhất định - từ đó chúng có thể kiểm soát máy tính và dữ liệu. Trong những năm gần đây, tin tặc bắt đầu nhắm mục tiêu vào các trình duyệt web bởi những phần mềm này được phép kết nối Internet và thường được cho phép để chạy các chương trình nhỏ; do đó tồn tại rất nhiều lỗ hổng có thể bị khai thác. Những lỗ hổng ban đầu có thể cho phép tin tặc kiểm soát máy tính mục tiêu, trước khi lấy đó làm bàn đạp để xâm nhập vào mạng lưới lớn hơn. Đôi khi các lỗ hổng được chính các nhà phát triển phần mềm phát hiện hoặc do người dùng hay các nhà nghiên cứu cảnh báo. Có những trường hợp, tin tặc hoặc cơ quan gián điệp của chính phủ phát hiện cách thức xâm nhập vào hệ thống nhưng không thông báo với bên phát triển. Do đó, phần mềm hoặc phần cứng sẽ dễ bị xâm nhập cho đến khi có bản vá hoặc bản sửa lỗi được tạo và phân phối tới người dùng. 2.2.3. Nguy cơ và rủi ro Nguy cơ Nguy cơ (threat) là những sự kiện có khả năng ảnh hưởng đến an toàn của hệ thống [2, 3]. Ví dụ: tấn công từ chối dịch vụ (DoS và DDoS) là một nguy cơ đối với hệ thống các máy chủ cung cấp dịch vụ trên mạng. Khi nói đến nguy cơ, nghĩa là sự kiện đó chưa xảy ra, nhưng có khả năng xảy ra và có khả năng gây hại cho hệ thống. Có những sự kiện có khả năng gây hại, nhưng không có khả năng xảy ra đối với hệ thống thì không được xem là nguy cơ. Rủi ro Rủi ro (risk) là xác suất xảy ra thiệt hại đối với hệ thống [2, 3]. Rủi ro bao gồm 2 yếu tố: Khả năng xảy ra rủi ro và thiệt hại do rủi ro gây ra. Có những rủi ro có khả năng xảy ra rất cao nhưng mức độ thiệt hại thì thấp và ngược lại. Ví dụ: rủi ro mất thông tin trên hệ thống không có cơ chế bảo vệ tập tin, chẳng hạn như Windows 98. Windows 98 không có cơ chế xác thực người sử dụng nên bất cứ ai cũng có thể sử dụng máy với quyền cao nhất. Nếu trên đó chỉ có chứa các tập tin văn bản không có tính bí mật thì việc mất một tập tin thì thiệt hại gây ra chỉ là mất công sức đánh máy văn bản đó. Đây là dạng rủi ro có xác suất xảy ra cao nhưng thiệt hại thấp.
  17. 15 Cần chú ý phân biệt giữa nguy cơ và rủi ro. Nguy cơ là những hành vi, những sự kiện hoặc đối tượng có khả năng gây hại cho hệ thống. Rủi ro là những thiệt hại có khả năng xảy ra đối với hệ thống. Ví dụ: Tấn công từ chối dịch vụ là một nguy cơ (threat). Đây là một sự kiện có khả năng xảy ra đối với bất kỳ hệ thống cung cấp dịch vụ nào. Thiệt hại do tấn công này gây ra là hệ thống bị gián đoạn hoạt động, đây mới là rủi ro (risk). Tuy nhiên, không phải bất kỳ tấn công từ chối dịch vụ nào xảy ra cũng đều làm cho hệ thống ngưng hoạt động, và hơn nữa, tấn công từ chối dịch vụ không phải là nguồn gốc duy nhất gây ra gián đoạn hệ thống; những nguy cơ khác như lỗi hệ thống (do vận hành sai), lỗi phần mềm (do lập trình), lỗi phần cứng (hư hỏng thiết bị, mất điện, …) cũng đều có khả năng dẫn đến gián đoạn hệ thống. 2.2.4. Tấn công Tấn công bảo mật là các cuộc tấn công máy tính làm tổn hại đến bảo mật của hệ thống. Về mặt khái niệm, các cuộc tấn công bảo mật có thể được phân thành 2 loại là các cuộc tấn công chủ động và tấn công thụ động [8] trong đó kẻ tấn công có quyền truy cập bất hợp pháp vào tài nguyên hệ thống. 2.2.4.1. Tấn công chủ động Tấn công chủ động là các cuộc tấn công trong đó kẻ tấn công cố gắng sửa đổi thông tin hoặc tạo một thông báo sai. Việc ngăn chặn các cuộc tấn công này là khá khó khăn vì có một loạt các lỗ hổng vật lý, mạng và phần mềm. Chính vì vậy phải có cơ chế phục hồi khi phát hiện ra hệ thống bị gián đoạn hoặc chậm chễ. Hình 2.1: Tấn công chủ động. 2.2.4.2. Tấn công thụ động Tấn công thụ động là các cuộc tấn công mà kẻ tấn công thực hiện nghe lén trái phép, chỉ cần theo dõi việc truyền hoặc thu thập thông tin. Kẻ trộm không thực hiện bất kỳ thay đổi nào đối với dữ liệu hoặc hệ thống.
  18. 16 Hình 2.2: Tấn công thụ động. Tấn công thụ động rất khó phát hiện vì nó không liên quan đến bất kỳ sự thay đổi nào trong dữ liệu hoặc tài nguyên hệ thống. Có thể ngăn chặn tấn công thụ động bằng cách sử dụng các phương thức mã hóa trong đó dữ liệu trước tiên được mã hóa đầu người gửi, sau đó tại đầu người nhận dữ liệu sẽ được giải mã về dữ liệu ban đầu. 2.2.5. Hacker Tin tặc (Hacker) Một hacker máy tính là bất kỳ một chuyên gia máy tính nào sử dụng kiến thức kỹ thuật của họ để khắc phục một vấn đề [10]. Hacker sử dụng các các kiến thức kỹ thuật của họ khai thác các lỗ hổng bảo mật, các bug để xâm nhập vào hệ thống máy tính. Mũ đen (Blackhat) Thuật ngữ blackhat dùng để chỉ một hacker máy tính không có đạo đức, chuyên đột nhập vào các mạng an toàn để phá hủy, sửa đổi, đánh cắp dữ liệu hoặc làm cho các mạng không thể sử dụng được đối với người sử dụng có quyền [10]. Mũ trắng (Whitehat) Thuật ngữ whitehat dùng để chỉ một hacker máy tính có đạo đức hoặc một chuyên gia bảo mật máy tính, chuyên kiểm tra việc thâm nhập và các phương pháp kiểm tra khác đảm bảo cho hệ thống thông tin của tổ chức an toàn. 2.3. Các lỗ hổng phần mềm quan trọng Để xây dựng phần mềm bảo mật, không thể thiếu sự hiểu biết về các lỗ hổng phần mềm. Trong phần này, luận văn sẽ trình bày tổng quan ngắn gọn về các lỗ hổng quan trọng và nguy hiểm [4]. 2.3.1. SQL Injection SQL Injection là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng của việc kiểm tra dữ liệu đầu vào trong các ứng dụng Web và các thông báo lỗi trả về của
  19. 17 hệ quản trị CSDL để tiêm vào (inject) và thi hành các câu lệnh SQL bất hợp pháp bằng cách sử dụng nối chuỗi. SQL Injection có thể cho phép những kẻ tấn công thực hiện các thao tác thêm mới, cập nhật, xóa trên CSDL của ứng dụng. SQL Injection là một công cụ trung gian để tấn công các ứng dụng web có dữ liệu được quản lý bởi các hệ quản trị CSDL như: MS SQL Server, Oracle, MySQL, DB2. 2.3.2. OS Command Injection Tiêm dòng lệnh vào hệ điều hành (OS Command Injection) hay còn gọi là tiêm shell (shell injection) là một lỗ hổng bảo mật web cho phép kẻ tấn công thực thi các lệnh hệ điều hành tùy ý trên máy chủ đang chạy một ứng dụng. Các lỗ hổng tiêm dòng lệnh vào hệ điều hành (OS Command Injection) xảy ra khi phần mềm tích hợp dữ liệu do người dùng quản lý trong một lệnh, được xử lý theo trình thông dịch lệnh shell. Nếu dữ liệu không được kiểm tra, tin tặc có thể sử dụng các siêu ký tự sell để thay đổi lệnh đang được thực thi. Điểm yếu này là ngôn ngữ độc lập. 2.3.3. Buffer overflow Trong bảo mật máy tính và lập trình, một lỗi tràn bộ nhớ đệm (buffer overflow) hay còn gọi tắt là lỗi tràn bộ đệm là một lỗi lập trình có thể gây ra một ngoại lệ truy cập bộ nhớ máy tính và chương trình bị kết thúc. Nó xảy ra khi một chương trình cố gắng thêm dữ liệu vào bộ nhớ đệm hơn dung lượng lưu trữ mà nó cho phép. Việc ghi dữ liệu ra bên ngoài bộ nhớ có thể làm hỏng chương trình, hỏng dữ liệu và thậm chí có thể gây ra việc thực thi mã độc. Các ngôn ngữ lập trình như Java, Python, Visual Basic, C# đều có các giới hạn các kiểu dữ liệu gốc để kiểm tra các ràng buộc của các kiểu dữ liệu này. 2.4. Các kiểu tấn công Có rất nhiều kiểu tấn công bảo mật khác nhau, dưới đây là một số loại tấn công bảo mật điển hình. [2, 10] 2.4.1. Tấn công Brute-Force Tấn công Brute-Force là gì? Tấn công Brute-Force (Brute-Force attack) là một phương pháp thực hiện thử mật khẩu đúng sai. Hacker sẽ sử dụng phần mềm để tự động thử đăng nhập username và password phổ biến nhằm đăng nhập trái phép vào các tài khoản. Với các hệ thống phức tạp hơn, việc dò tìm mật khẩu sẽ là lần lượt để nâng cao khả năng thành công, nhưng đồng nghĩa với việc này là mất nhiều thời gian dò mật khẩu lên không giới hạn.
  20. 18 Hậu quả của tấn công Brute-Force Hậu quả của tấn công Brute-Force là chúng ta bị lộ thông tin đăng nhập vào hệ thống (username và password). Mức độ nghiêm trọng tùy thuộc vào thông tin bị rò rỉ. Cách phòng chống tấn công Brute-Force Để phòng chống tấn công Brute-Force chúng ta lên thực hiện như sau:  Đặt tên đăng nhập (username) khó đoán, nên tránh các tên đăng nhập như admin, administrator.  Mật khẩu dài, mạnh, có ký tự đặc biệt và không liên quan đến các thông tin cá nhân.  Đặt thêm captra cho ô đăng nhập  Hạn chế số lần đăng nhập sai. 2.4.2. Tấn công xác thực Xác thực là cấp độ bảo mật đầu tiên trong phần lớn các hệ thống. Đây là phương pháp tấn công sử dụng kỹ thuật xác nhận và phản hồi để xác thực. Đây là cách hệ thống xác thực người dùng là hợp pháp. Sau khi xác thực thành công, người dùng sẽ được phép truy cập vào tài nguyên của hệ thống. 2.4.2.1. Tấn công từ điển Tấn công từ điển là gì? Tấn công từ điển (Dictionary attack) là kỹ thuật phá mã hoặc vượt qua một cơ chế xác thực bằng cách thử các khóa mã hay mật khẩu trong một danh sách dài gọi là từ điển (danh sách được chuẩn bị trước). Đối với tấn công từ điển, không gian khóa được tìm kiếm một cách hệ thống, thử trong vùng có nhiều khả năng thành công nhất. Nguy cơ tấn công  Người dùng đặt mật khẩu ngắn, 7 ký tự hoặc ít hơn.  Đặt mật khẩu bằng những từ đơn giản, những từ đơn dễ tìm thấy trong từ điển, dễ đoán các biến thể trên từ (Viết hoa một chữ, thêm 1 số vào chữ). Cách khắc phục  Mật khẩu dài, mạnh, có ký tự đặc biệt và không liên quan đến các thông tin cá nhân.  Hạn chế số lần đăng nhập sai. 2.4.2.2. Tấn công phát lại Tấn công phát lại là gì? Tấn công phát lại (Replay attack) là một hình thức tấn công mạng lưới trong đó các thực thể độc hại chặn và lặp lại việc truyền tải một dữ liệu hợp lệ đi vào trong
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2