LI ỜỞ ĐẦU
4.2 Hướng phát triển
Triển khai thành công hệ thống website apache kết hợp PHP, MySQL trên Linux.
Triển khai thành công tường lửa UTM bảo vệ cho hệ thống máy chủ. Đưa ra được các nguy cơ mất an toàn bảo mật và các biện pháp khắc phục. Tuy nhiên, do giới hạn về thời gian nên vẫn chưa thể triển khai hết các kỹ thuật nâng cao bảo mật hệ thống website cũng như cập nhật các kỹ thuật tấn công website mới nhất. Nếu có điều kiện sẽ tiến hành đi sâu vào nghiên cứu:
Các lỗi gây ra mất an toàn, bảo mật cho hệ thống website.
Đưa ra các giải pháp tối ưu nhằm ngăn chặn việc mất an toàn thông tin website.
Cập nhật các kỹ thuật mới nhất có liên quan đến việc mất an toàn, bảo mật website.
Triển khai các ứng dụng dò tìm lỗi bảo mật website.
Giả lập các cuộc tấn công vào hệ thống website và thực hiện các biện pháp phòng chống.
TÀI LIỆU THAM KHẢO [1] http://vi.wikipedia.org/wiki/Website [2] http://vi.wikipedia.org/wiki/www [3] http://vi.wikipedia.org/wiki/Trình_duyệt_web [4] http://vi.wikipedia.org/wiki/Linux [5] http://vi.wikipedia.org/wiki/Apache_(HTTP) [6] http://vi.wikipedia.org/wiki/PHP [7] http://vi.wikipedia.org/wiki/MySQL [8] http://vi.wikipedia.org/wiki/Firewall
[9] Nguyễn Duy Thăng, Nguyễn Minh Thu (2003). Nghiên cứu một số vắn đề về bảo mật ứng dụng web trên internet , Luận văn tốt nghiệp, Trường Đại học KHTN Tp. HCM, TP. HCM.
[10]http://en.wikipedia.org/wiki/Secure_Sockets_Layer
[11]Bao gồm thông tin tham khảo từ các website sau:
- http://www.howtoforge.com/ - http://sourceforge.net - http://httpd.apache.org/ - http://php.net/ - http://www.mysql.com/ - http://www.phpmyadmin.net/home_page/index.php - http://www.thegeekstuff.com/2011/03/install-apache2-ssl/ - https://library.linode.com/web-servers/apache/mod-security [12]http://www.checkpoint.com
PHỤ LỤC 5.1 Cơ chế hoạt động của SSL
SSL(Secure Socket Layer ) là giao thức đa mục đích được thiết kế để tạo ra các giao tiếpgiữa hai chương trình ứng dụng trên một cổng định trước (socket 443) nhằm mã hoá toàn bộ thông tin đi/đến, mà ngày nay được sử dụng rộng rãi cho giao dịch điện tử như truyền số hiệu thẻ tín dụng, mật khẩu, số bí mật cá nhân (PIN) trên Internet.
Giao thức SSL (Secure Socket Layer) tổ hợp nhiều giải thuật mã hóa nhằm đảm bảo quá trình trao đổi thông tin trên mạng được bảo mật. Việc mã hóa dữ liệu diễn ra một cách trong suốt, hỗ trợ nhiều giao thức khác chạy trên nền giao thức TCP. Sercure Socket Layer (SSL) hiện nay là giao thức bảo mật rất phổ biến trên Internet trong các hoạt động thương mại điện tử (E-Commerce). Việt Nam đang trên đường hội nhập với nền công nghệ thông tin thế giới, nên nay mai, các hoạt động giao dịch trên mạng ở Việt Nam cũng sẽ diễn ra sôi nổi, khi đó vấn đề bảo mật trở nên quan trọng, việc triển khai SSL là điều thiết yếu. Tuy nhiên đến nay hình như vẫn chưa có trang Web nào ở Việt Nam sử dụng SSL trong các giao dịch của mình. Bài viết này nhằm giới thiệu sơ lược về SSL cũng như cách triển khai SSL trên Internet Information Server (IIS) 5.0 và Windows 2000 Giao thức SSL được hình thành và phát triển đầu tiên năm 1994 bởi nhóm nghiên cứu Netscape dẫn dắt bởi Elgammal và ngày nay đã trở thành chuẩn bảo mật thực hành trên mạng Internet. Phiên bản SSL hiện nay là 3.0 và vẫn đang tiếp tục được bổ sung và hoàn thiện.
SSL là giao thức tầng (layered protocol), bao gồm 4 giao thức con sau: + Giao thức SSL Handshake.
+ Giao thức SSL Change Cipher Spec. + Giao thức SSL Alert.
+ SSL Record Layer.
Hình 5.1
Theo biểu đồ trên, SSL nằm trong tầng ứng dụng của giao thức TCP/IP. Do đặc điểm này, SSL có thể được dùng trong hầu hết mọi hệ điều hành hỗ trợ TCP/IP mà không cần phải chỉnh sửa nhân của hệ thống hoặc ngăn xếp TCP/IP. Điều này mang lại cho SSL sự cải tiến mạnh mẽ so với các giao thức khác như IPSec (IP Security Protocol). Vì giao thức này đòi hỏi nhân hệ điều hành phải hỗ trợ và chỉnh sửa ngăn xếp TCP/IP. SSL cũng có thể dễ dàng vượt qua tường lửa và proxy, cũng như NAT(Network Address Translation) mà không cần nguồn cung cấp.
Hoạt Động Của Giao Thức SSL: Điểm cơ bản của SSL được thiết kế độc lập với tầng ứng dụng để đảm bảo tính bí mật, an toàn và chống giả mạo luồng thông tin qua Internet giữa hai ứng dụng bất kỳ, thí dụ như webserver và các trình duyệt khách (browsers), do đó được sử dụng rộng rãi trong nhiều ứng dụng khác nhau trên môi trường Internet.
Toàn bộ cơ chế hoạt động và hệ thống thuật toán mã hoá sử dụng trong SSL được phổ biến công khai, trừ khoá chia xẻ tạm thời (session key) được sinh ra tại thời điểm trao đổi giữa hai ứng dụng là tạo ngẫu nhiên và bí mật đối với người quan sát trên mạng máy tính. Ngoài ra, giao thức SSL còn đỏi hỏi ứng dụng chủ phải được chứng thực bởi một đối tượng lớp thứ ba (CA) thông qua giấy chứng thực điện tử (digital certificate) dựa trên mật mã công khai.
Sau đây ta xem xét một cách khái quát cơ chế hoạt động của SSL để phân tích cấp độ an toàn của nó và các khả năng áp dụng trong các ứng dụng nhạy cảm, đặc biệt là các ứng dụng về thương mại và thanh toán điện tử.
Hình 5.2
Từng bước thành lập một kết nối SSL Giao thức SSL dựa trên hai nhóm con giao thức là giao thức “bắt tay” (handshake protocol) và giao thức “bản ghi” (record
protocol). Giao thức bắt tay xác định các tham số giao dịch giữa hai đối tượng có nhu cầu trao đổi thông tin hoặc dữ liệu, còn giao thức bản ghi xác định khuôn dạng cho tiến hành mã hoá và truyền tin hai chiều giữa hai đối tượng đó. Khi hai ứng dụng máy tính, thí dụ giữa một trình duyệt web và máy chủ web, làm việc với nhau, máy chủ và máy khách sẽ trao đổi “lời chào”(hellos) dưới dạng các thông điệp cho nhau với xuất phát đầu tiên chủ động từ máy chủ, đồng thời xác định các chuẩn về thuật toán mã hoá và nén số liệu có thể được áp dụng giữa hai ứng dụng. Ngoài ra, các ứng dụng còn trao đổi “số nhận dạng/khoá theo phiên” (session ID, session key) duy nhất cho lần làm việc đó. Sau đó ứng dụng khách (trình duyệt) yêu cầu có chứng thực điện tử (digital certificate) xác thực của ứng dụng chủ (web server). Chứng thực điện tử thường được xác nhận rộng rãi bởi một cơ quan trung gian (là CA -ertificate Authority) như RSA Data Sercurity hay VeriSign Inc., một dạng tổ chức độc lập, trung lập và có uy tín. Các tổ chức này cung cấp dịch vụ “xác nhận” số nhận dạng của một công ty và phát hành chứng chỉ duy nhất cho công ty đó như là bằng chứng nhận dạng (identity) cho các giao dịch trên mạng, ở đây là các máy chủ webserver.
Sau khi kiểm tra chứng chỉ điện tử của máy chủ (sử dụng thuật toán mật mã công khai, như RSA tại trình máy trạm), ứng dụng máy trạm sử dụng các thông tin trong chứng chỉ điện tử để mã hoá thông điệp gửi lại máy chủ mà chỉ có máy chủ đó có thể giải mã. Trên cơ sở đó, hai ứng dụng trao đổi khoá chính (master key) - khoá bí mật hay khoá đối xứng - để làm cơ sở cho việc mã hoá luồng thông tin/dữ liệu qua lại giữa hai ứng dụng chủ khách. Toàn bộ cấp độ bảo mật và an toàn của thông tin/dữ liệu phụ thuộc vào một số tham số: (i)số nhận dạng theo phiên làm việc ngẫu nhiên; (ii) cấp độ bảo mật của các thuật toán bảo mật áp dụng cho SSL; và (iii) độ dài của khoá chính (key length) sử dụng cho lược đồ mã hoá thông tin. Các thuật toán mã hoá và xác thực của SSL được sử dụng bao gồm:
1) DES - viết tắt của Data Encryption Standard. DES là hệ bảo mật đối xứng dùng khóa riêng, nghĩa là cả bên gởi và bên nhận phải biết cùng một khóa. Phương pháp nầycòn được gọi là khóa bí mật hoặc bảo mật đối xứng. Vấn đề chính trong phương
pháp này là bên gởi và bên nhận phải trao đổi khóa một cách an toàn. Một phương pháp khác là bảo mật dùng khóa công khai. Trong sơ đồ này, mỗi người có một cặp khóa, một khóa bí mật và một khóa công khai. Bên gởi mã hóa thông điệp bằng khóa công khai của bên nhận và thông điệp này chỉ được giải mã bởi khóa bí mật của bên nhận. Như vậy vấn đề trao đổi khóa được giải quyết vì các khóa được thông báo công khai.
Tiền thân của nó là Lucifer, một thuật toán do IBM phát triển. Cuối năm 1976, DES đượcchọn làm chuẩn mã hóa dữ liệu của nước Mỹ, sau đó được sử dụng rộng rãi trên toàn thế giới. DES cùng với mã hóa bất đối xứng đã mở ra một thời kì mới cho ngành mã hóa thông tin. Trước DES, việc nghiên cứu và sử dụng mã hóa dữ liệu chỉ giới hạn trong chính phủ và quân đội. Từ khi có DES, các sản phẩm sử dụng nó tràn ngập thị trường. Đồng thời,việc nghiên cứu mã hóa thông tin cũng không còn là bí mật nữa mà đã trở thành một ngành khoa học máy tính bình thường. Trong khoảng 20 năm sau đó, DES đã trải qua nhiều khảo sát, phân tích kỹ lưỡng và được công nhận là an toàn đối với các dạng tấn công (tất nhiên,ngoại trừ brute- force). Tới tháng 7 năm 1998, EFF (Electronic Frontier Foundation) đã"brute-force" thành công DES trong 56 giờ. Ít lâu sau đó cùng với mạng tính toán ngang hàng Distribute.net, tổ chức này đã lập nên kỉ lục mới là 22 giờ 15 phút. Sự kiện này chứng tỏ cỡ chìa 56 bit của DES đã lỗi thời và cần được thay thế. DES là kỹ thuật bảo mật khóa riêng dùng thuật toán để mã hóa theo từng khối 64-bit với khóa 56- bit. Thuật toán này đượcgiải thích trong mục “Cryptography”. Khóa 56-bit chophép khoảng một triệu mũ 4 tổ hợp khác nhau. Ngoài ra, mỗi khối trong dòng dữ liệu được mã hóa bằng các biến dạng khóa khác nhau, làm khó phát hiện sơ đồ mã hóa trong các thông điệp dài.
Hình 5.3 Giai đoạn 1: Hoán vị 64 bit trong một khối.
Giai đoạn 2: ứng dụng đưa ra thao tác 16 vòng trong 64 bit. Giai đoạn 3 : Hoán vị 64 bit sử dụng nghịch đảo của hoán vị gốc.
2) SA - thuật toán chữ ký điện tử, chuẩn xác thực điện tử, phát minh và sử dụng của chính phủ Mỹ.
4) MD5 - thuật toán tạo giá trị “băm” (message digest), phát minh bởi Rivest; 5) RC2, RC4 - mã hoá Rivest, phát triển bởi công ty RSA Data Security;
6) RSA- là một thuật toán mã hóa khoá công cộng bất đối xứng được sử dụng rất rộng rãi trong giao dịch điện tử. Whitfield Diffie và Martin Hellman thiết kế phương pháp mã hóa khoá công cộng không đối xứng vào giữa những năm 1970. Cơ bản là, ai muốn mã hóa và gửi thông điệp tới người khác cần phải tạo ra hai mã khóa. Một mã được giữ bí mật riêng và mã kia được phổ biến công cộng, giống như danh bạ điện thoại gồm số điện thoại của mọi người. Nếu có người muốn gửi thông điệp đến cho bạn, anh ta dung mã khóa công cộng của bạn, mã hóa nó, và gửi tới bạn thông điệp đó. Chỉ có khóa riêng của bạn có thể giải mã, nếu có người ngăn chặn thông điệp thì không thể giải mã nó bằng khóa công cộngcủa bạn được.Dù Diffie và Hellman thiết kế mã hóa khóa công cộng không đối xứng, nhưngchính RSA (Rivest, Shamir, Adleman) Data Systems (nay thuộc Security Dynamics) đã đưa ứng dụng này vào hệ thống thực tế.
7) RSA key exchange - thuật toán trao đổi khoá cho SSL dựa trên thuật toán RSA; 8) SHA-1 - thuật toán hàm băm an toàn, phát triển và sử dụng bởi chính phủ Mỹ. 9) SKIPJACK - thuật toán khoá đối xứng phân loại được thực hiện trong phần cứng Fortezza, sử dụng bởi chính phủ Mỹ.
`10) Triple-DES - mã hoá DES ba lần.
5.2 Tấn công từ chối dịch vụ
Một cuộc tấn công từ chối dịch vụ (tấn công DoS - Viết tắt của Denial of Service) hay tấn công từ chối dịch vụ phân tán(tấn công DDoS - Viết tắt của Distributed Denialof Service) là một nỗ lực làm cho những người dùng không thể sử dụng tài nguyên củamột máy tính. Mặc dù phương tiện để tiến hành, động cơ, mục tiêu của tấn công từ chối dịch vụ có thể khác nhau, nhưng nói chung nó gồm có sự phối hợp, sự cố gắng ác ý của một người hay nhiều người để một trang, hay hệ thống mạng không thể sử dụng, làm gián đoạn, hoặc làm cho hệ thống đó chậm đi một cách đáng kể với người dùng bình thường, bằng cách làm quá tải tài nguyên
hay server tiêu biểu như ngân hàng, cổng thanh toán thẻ tín dụng và thậm chí DNS root servers.
Một phương thức tấn công phổ biến kéo theo sự bão hoà máy mục tiêu với các yêu cầu liên lạc bên ngoài, đến mức nó không thể đáp ứng giao thông hợp pháp, hoặc đáp ứng quá chậm. Trong điều kiện chung, các cuộc tấn công DoS được bổ sung bởi ép máy mục tiêu khởi động lại hoặc tiêu thụ hết tài nguyên của nó đến mức nó không cung cấp dịch vụ, hoặc làm tắc nghẽn liên lạc giữa người sử dụng và nạn nhân.
Hình 5.4
• Mạng thực thi chậm khác thường khi mở tập tin hay truy cập Website. • Không thể dùng một website cụ thể.
• Không thể truy cập bất kỳ website nào. • Tăng lượng thư rác nhận được.
Không phải tất các các dịch vụ đều ngừng chạy, thậm chí đó là kết quả của một hoạt động nguy hại, tất yếu của tấn công DoS. Tấn công từ chối dịch cũng có thể dẫn tới vấn đề về nhánh mạng của máy đang bị tấn công. Ví dụ: băng thông của router giữa Internet và LAN có thể bị tiêu thụ bởi tấn công, làm tổn hại không chỉ máy tính ý định tấn công mà còn là toàn thể mạng.
Các phương thức tấn công
Tấn công từ chối dịch vụ là một loại hình tấn công nhằm ngăn chặn những người dùng hợp lệ được sử dụng một dịch vụ nào đó. Các cuộc tấn công có thể được thực hiện nhằm vào bất kì một thiết bị mạng nào bao gồm là tấn công vào các thiết bị định tuyến, web, thư điện tử và hệ thống DNS.
Tấn công từ chối dịch vụ có thẻ được thực hiện theo một số cách nhất định. Có năm kiểu tấn công cơ bản sau đây:
1. Nhằm tiêu tốn tài nguyên tính toán như băng thông, dung lượng đĩa cứng hoặc thời gian xử lý
2. Phá vỡ các thông tin cấu hình như thông tin định tuyến
3. Phá vỡ các trạng thái thông tin như việc tự động reset lại các phiên TCP. 4. Phá vỡ các thành phần vật lý của mạng máy tính
5. Làm tắc nghẽn thông tin liên lạc có chủ đích giữa các người dùng và nạn nhân dẫn đến việc liên lạc giữa hai bên không được thông suốt.
Một cuộc tấn công từ chối dịch vụ có thể bao gồm cả việc thực thi malware nhằm: Làm quá tải năng lực xử lý, dẫn đến hệ thống không thể thực thi bất kì một công việc nào khác.
• Những lỗi gọi tức thì trong microcode của máy tính.
• Những lỗi gọi tức thì trong chuỗi chỉ thị, dẫn đến máy tính rơi vào trạng thái hoạt động không ổn định hoặc bị đơ.
• Những lỗi có thể khai thác được ở hệ điều hành dẫn đến việc thiếu thốn tài nguyên hoặc bị thrashing. VD: như sử dụng tất cả các năng lực có sẵn dẫn đến không một công việc thực tế nào có thể hoàn thành được.
• Gây crash hệ thống.
• Tấn công từ chối dịch vụ iFrame: trong một trang HTML có thể gọi đến một trang webnào đó với rất nhiều yêu cầu và trong rất nhiều lần cho đến khi băng thông của trang web đó bị quá hạn.
• Tấn công từ chối dịch vụ là sự vi phạm chính sách sử dụng internet của IAB