Mụ hỡnh quỏ trỡnh duyệt Web

Một phần của tài liệu một số kỹ thuật và xây dựng mô hình phòng thủ mạng (Trang 65)

Domain – Hosting

Mạng internet là mạng mỏy tớnh toàn cầu, nờn internet cú cấu trỳc địa chỉ, cỏch đỏnh địa chỉ đặc biệt, khỏc cỏch tổ chức địa chỉ của mạng viễn thụng. Khi sử dụng internet, ngƣời dựng khụng cần biết hoặc nhớ đến địa chỉ

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

IP mà chỉ cần nhớ tờn miền là truy cập đƣợc. Tờn miền bao gồm nhiều thành phần tạo nờn, cỏch nhau bởi dấu chấm. Thành phần thứ nhất “home” là tờn của mỏy chủ, thành phần thứ hai “vnn” thƣờng gọi là tờn miền mức hai, thành phần cuối cựng “vn” là tờn miền mức cao nhất.

Web hosting: Web hosting là nơi lƣu trữ tất cả trang web, cỏc thụng tin của website trờn một mỏy chủ internet.

Cỏc yờu cầu và tớnh năng của Web hosting:

- Web hosting phải cú một dung lƣợng lớn để lƣu trữ thụng tin của website.

- Phải hỗ trợ truy xuất mỏy chủ bằng giao thức FTP để cập nhật thụng tin website.

- Phải cú băng thụng đủ lớn để phục vụ trao đổi thụng tin website. - Hỗ trợ cỏc cụng cụ lập trỡnh trờn internet.

- Hỗ trợ cỏc dịch vụ email nhƣ POP3 email, email forwarding…

Web server.

Là mỏy chủ cú dung lƣợng lớn, tốc độ cao để lƣu trữ thụng tin và những website đó đƣợc thiết kế cựng với những thụng tin liờn qua khỏc.

3.1.2. Bảo mật ứng dụng web

Bảo mật là gỡ?

Bảo mật web là yờu cầu tất yếu bởi vỡ những mỏy tớnh mang tớnh toàn cầu đang ngày trở nờn kộm an toàn và phải đối mặt với cỏc nguy cơ về an ninh rất cao.

- 3 yếu tố đảm bảo an ninh thụng tin:

+ Tớnh bảo mật: đảm bảo chỉ ngƣời đƣợc phộp mới cú thể truy cập thụng

tin.

+ Tớnh toàn vẹn: đảm bảo chớnh xỏc và đầy đủ của thụng tin và cỏc

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

+ Tớnh sẵn sàng: đảm bảo ngƣời sử dụng đƣợc phộp cú thể truy cập

thụng tin.

Cỏc phương phỏp gõy mất an toàn thụng tin (Hỡnh 3-22)

- Thu thập thụng tin chung để tỡm kiếm cỏc thụng tin xung quanh website.

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

- Mụi trƣờng mạng, hệ điều hành, ngụn ngữ lập trỡnh, hệ quản trị cơ sở dữ liệu.

- Cỏc cổng dịch vụ tƣơng ứng đang mở trờn server. - Số lƣợt truy cập, băng thụng của website.

- Khảo sỏt ứng dụng web. - Thăm dũ, phỏt hiện lỗi.

- Khai thỏc lỗi để tấn cụng: đõy là giai đoạn quan trọng nhất để cú thể phỏ hoại hoặc chiếm quyền điều khiển đƣợc website.

- Một vài cỏc thức tấn cụng phổ biến:

+ SQL Injection: là kỹ thuật tấn cụng cho phộp kẻ tấn cụng lợi dụng lỗ hổng trong việc kiểm tra dữ liệu đƣa vào ứng dụng web để thi hành cỏc cõu lệnh SQL bất hợp phỏp.

+ Session Hijacking: là sử dụng phiờn làm việc của một ngƣời dựng, đó tạo đƣợc một kết nối hợp lệ bằng một phƣơng phỏp khụng hợp lệ.

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

+ Local Attack: là kiểu tấn cụng nội bộ từ bờn trong, đõy là khỏi niệm xuất hiện khi cỏc mỏy chủ mạnh lờn trong thời gian gần đõy.

Cỏc phương thức gõy mất an toàn thụng tin từ phớa người quản trị.

Hiện nay việc xõy dựng cỏc ứng dụng trờn web với mó nguồn mở phỏt triển rất mạnh, vỡ thế bất kỳ một website nào cũng cú khả năng bị tấn cụng.

3.2. Đề xuất phƣơng ỏn phũng thủ.

Một trong những năm gần đõy, Việt Nam ngày càng phỏt triển và nhất là về mặt cụng nghệ thụng tin. Đặc biệt là về ứng dụng web, hầu nhƣ mỗi ngƣời ai cũng đó từng nghe và làm việc trờn cỏc ứng dụng web. Website trở nờn phổ biến và trở thành một phần quan trọng của mỗi ngƣời, đặc biệt là cỏc doanh nghiệp, tổ chức. Bờn cạnh đú lý do an toàn bảo mật cho ứng dụng web luụn là một vấn đề nan giải. Một số phƣơng ỏn phũng thủ của website phổ biến hiện nay nhƣ:

3.2.1. SQL Injection

- Cỏch tấn cụng

Tin tặc trốn vào trang login những cõu lệnh truy vấn đặc biệt nhƣ cỏc ký tự *, “‟”, like, %…. Mục đớch là lấy cắp thụng tin trong database nếu nhƣ lập trỡnh viờn vẫn sử dụng việc truy vấn dữ liệu ở dạng thuần SQL.

Khi hacker gửi những dữ liệu (thụng qua cỏc form), ứng dụng Web sẽ thực hiện và trả về cho trỡnh duyệt kết quả của cõu truy vấn hay những thụng bỏo lỗi cú liờn quan đến cơ sở dữ liệu. Nhờ những thụng tin này mà hacker biết đƣợc nội dung cơ sở dữ liệu và từ đú cú thể điều khiển toàn bộ hệ thống ứng dụng.

Để trỡnh bày tốt hơn nội dung kỹ thuật này, ta sử xõy dựng bảng User để minh họa kỹ thuật tấn cụng.

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

STT Tờn trƣờng Cài đặt vật lý Kiểu Diễn giải

1 tkUsername Khúa chớnh Nvarchar(20) Mỗi ngƣời dựng cú 1 account đăng nhập

2 tkPassword Nvarchar(15) Password đăng nhập

Giả sử ứng dụng web cú đoạn mó sau:

Đoạn mó trờn kiểm tra chuỗi nhập Username và Password. Nếu tồn tại trong bảng User thỡ check = true, ngƣợc lại check = false.

Giỏ trị nhập vào là:

Cõu lệnh SQL lỳc này nhƣ sau:

Cõu lệnh so sỏnh trờn luụn luụn đỳng (vỡ „‟ luụn bằng „‟). Do đú cõu điều kiện trong mệnh đề where luụn đỳng. Giỏ trị tờn ngƣời sử dụng của dũng đầu tiờn trong bảng sẽ đƣợc chọn.

Kết hợp với kớ tự đặc biệt của SQL:

Kớ tự „ ; ‟ : đỏnh dấu kết thỳc một cõu truy vấn.

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Cõu lệnh SQL lỳc này cú cấu trỳc nhƣ sau:

Với cõu lệnh trờn thỡ bảng User sẽ bị xúa hoàn toàn.

Một vớ dụ khỏc sử dụng ký tự đặc biệt SQL để thõm nhập vào hệ thống nhƣ sau:

Cõu lệnh SQL nhƣ sau:

Cõu lệnh trờn cho phộp đăng nhập vào hệ thống với quyền admin mà khụng đũi hỏi password.

- Cỏch phũng thủ

Trong hầu hết cỏc trỡnh duyệt, những kớ tự nờn đƣợc mó húa trờn địa chỉ URL trƣớc khi đƣợc sử dụng.

Việc tấn cụng SQL Injection dựa vào những cõu thụng bỏo lỗi, do đú việc phũng chống hay nhất vẫn là khụng cho hiển thị những thụng điệp lỗi cho ngƣời dựng bằng cỏch thay thế những lỗi thụng bỏo bằng một trang do ngƣời phỏt triển thiết kế mỗi khi lỗi xảy ra trờn ứng dụng.

Kiểm tra kĩ giỏ trị nhập vào của ngƣời dựng, thay thế những kớ tự nhƣ „, ; v..v..

Loại bỏ cỏc kớ tự meta nhƣ “ ‟, “, /, \, ; “ và cỏc kớ tự extend nhƣ NULL, CR, LF, … trong cỏc string nhận đƣợc từ:

o Dữ liệu do ngƣời nhập

o Cỏc tham số từ URL

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Đối với cỏc giỏ trị numeric, hóy chuyển nú sang integer trƣớc khi thực hiện cõu truy vấn SQL, hoặc dựng ISNUMERIC để chắc chắn nú là một số integer.

Dựng thuật toỏn để mó húa dữ liệu

Tối ƣu húa cỏc hàm thực thi, truy vấn vào database (SQL, Oracle…. ) bằng việc truy vấn thụng qua cỏc procedure, function, qua tham số.

- Nhận xột:

Qua việc tỡm hiểu về kỹ thuật này ta càng thấy rằng việc kiểm tra dữ liệu trƣớc khi xử lý là cần thiết

Ứng dụng ngoài việc kiểm tra tớnh đỳng đắn của dữ liệu, cần mó húa dữ liệu ngay bờn trong cơ sở dữ liệu và khụng cho xuất trang web lỗi, bỏo nội dung lỗi cỳ phỏp SQL để hacker khụng thể thu thập thụng tin cơ sở dữ liệu

Song song với đú là cụng việc của ngƣời quản trị mạng

3.2.2. Session Hijacking

- Cỏch tấn cụng

Vớ dụ một ngƣời đang truy cập một website với thụng tin user, password của ngƣời đú để thực hiện một số hỡnh thức giao dịch kinh doanh qua website, khi ngƣời đú làm xong cụng việc và ra về. Một hacker nhẩy vào mỏy đú để sử dụng tiếp, và cố tỡnh mở website vừa nóy ngƣời dựng truy cập vào.

Nếu nhƣ lập trỡnh viờn tạo ra website khụng clear session, cỏc giỏ trị trờn cookie khi tắt trỡnh duyệt hay set một khoảng thời gian time out thỡ tin tặc sẽ lợi dụng để lấy cỏc thụng tin cũn lƣu lại trờn session hoặc cookie để truy cập vào website.

- Cỏch phũng thủ

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Kết hợp Session ID với thụng tin chứng thực đƣợc mó húa SSL của ngƣời dựng

Xúa bỏ Session khi ngƣời dựng thoỏt khỏi hệ thống hay hết hiệu lực, cú thể thực hiện trờn trỡnh chủ hoặc trờn trỡnh duyệt (cookie)

Ngƣời dựng phải dựng chế độ thoỏt khỏi hệ thống để xúa bỏ Session và cú thể cú những Session ID cũn lƣu lại trờn hệ thống khi họ quờn thoỏt ra ngoài những lần trƣớc

Thiết lập thời gian hết hiệu lực cho Session, trỏnh trƣờng hợp hacker cú thể duy trỡ Session và sử dụng nú lõu dài

Khụng để lộ thụng tin nhạy cảm nhƣ user, password trong session, giỏ trị cookie trờn browser

- Nhận xột:

Kỹ thuật tấn cụng này lợi dụng sự lỏng lẻo trong việc quản lý phiờn làm việc của ứng dụng đồng thời nhắm đến những ngƣời sử dụng thiếu cẩn trọng trong việc truy cập một ứng dụng web. Trong cỏc kỹ thuật tấn cụng đƣợc đề cập đến, thỡ kĩ thuật XSS và Session Hijacking là lợi dụng sự thiếu cẩn trọng của ngƣời dựng

3.2.3. Cross Site Scripting (XSS)

- Cỏch tấn cụng

Phƣơng phỏp Cross Site Scripting (đƣợc viết tắt là XSS) là phƣơng phỏp tấn cụng bằng cỏch chốn thờm những đoạn mó cú khả năng đỏnh cắp hay thiết lập đƣợc những thụng tin quan trọng nhƣ cookies, mật khẩu, … vào mó nguồn ứng dụng web để từ đú chỳng đƣợc chạy nhƣ là một phần của ứng dụng web và cú chức năng cung cấp hoặc thực hiện những điều hacker muốn.

Phƣơng phỏp này khụng nhằm vào mỏy chủ hệ thống mà chủ yếu tấn cụng trờn chớnh mỏy ngƣời sử dụng. Hacker sẽ lợi dụng sự kiểm tra lỏng lẻo

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

từ ứng dụng và hiểu biết hạn chế của ngƣời dựng cũng nhƣ biết cỏch đỏnh vào sự tũ mũ của họ dẫn đến ngƣời dựng bị mất thụng tin một cỏch dễ dàng.

Thụng thƣờng hacker lợi dụng địa chỉ URL để đƣa ra những liờn kết là tỏc nhõn kớch hoạt những đoạn chƣơng trỡnh đƣợc viết bằng ngụn ngữ mỏy khỏch nhƣ VBScript, JavaScript, css… đƣợc thực thi trờn chớnh trỡnh duyệt của nạn nhõn.

Hay:

Phần in đậm là đoạn mó đƣợc thờm vào với mục đớch đỏnh cắp cookies của nạn nhõn.

Vớ dụ trờn chỉ minh họa một cỏch đơn giản là thờm đoạn mó của mỡnh vào trang web thụng qua URL. Nhƣng thực sự thỡ cú rất nhiều cỏch để thờm đoạn mó JavaScript với mục đớch tấn cụng kiểu XSS. Hacker cú thể dễ dàng lợi dụng Document Object Model (DOM) để thay đổi ngữ cảnh và nội dung ứng dụng web. Sau đõy là danh sỏch nơi cú thể chốn đoạn mó:

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Phần in đậm là phần cú thể đặt đoạn mó đỏnh cắp thụng tin. - Cỏch phũng thủ.

Với những dữ liệu, thụng tin nhập của ngƣời dựng, ngƣời thiết kế ứng dụng web cần phải thực hiện vài bƣớc cơ bản sau:

Tạo ra dỏnh sỏch những thẻ HTML đƣợc phộp ứng dụng. Xúa bỏ thẻ <script>.

Lọc ra bất kỳ một đoạn mó JavaScript/ Java/ VBScript/ ActiveX /Flash Related nào.

Lọc dấu nhỏy đơn hay kộp.

Lọc ký tự Null ( vỡ khả năng thờm một đoạn mó bất kỳ sau ký tự Null khiến cho ứng dụng đó lọc bỏ thẻ <script> vẫn khụng nhận ra do ứng dụng nghĩ rằng chuỗi đó kết thỳc từ kớ tự Null này).

Xúa những kớ tự “ > ”, “ < “.

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Đối với ngƣời dựng, cần cấu hỡnh lại trỡnh duyệt để nhắc nhở ngƣời dựng cú cho thực thi ngụn ngữ kịch bản trờn mỏy của họ hay khụng? Tựy vào mức độ tin cậy mà ngƣời dựng quyết định.

- Nhận xột:

Kĩ thuật XSS khỏ phổ biến và dễ dàng ỏp dụng, tuy nhiờn mức độ thiệt hại chỉ dừng lại ở mức tấn cụng trờn mỏy nạn nhõn thụng qua những liờn kết hay form lừa đảo mà hacker đƣa đến cho nạn nhõn. Vỡ thế, ngoài việc ứng dụng kiểm tra tớnh đỳng đắn của dữ liệu trƣớc khi sử dụng thỡ việc cần nhất là ngƣời dựng nờn cảnh giỏc trƣớc khi vào một trang web mới. Cú thể núi nhờ vào sự cảnh giỏc của ngƣời dựng thỡ 90% đó đạt đƣợc sự bảo mật trong kĩ thuật này.

3.3. Xõy dựng mụ hỡnh demo phũng thủ

Cỏch đơn giản nhất để hacker hay một anonymous (nặc danh) trƣớc khi muốn tấn cụng một website là tỡm ra cỏc lỗi cơ bản thụng qua một số tool. Một trong những tool mà nặc danh hay dựng hiện nay là chƣơng trỡnh Web Vulnerability Scaner để dũ quột lỗi website. Sau đõy sẽ demo một số phƣơng phỏp phũng thủ cơ bản của website:

Lộ thụng tin về sản phẩm

Tỡnh Trạng

Cỏc website trờn mạng thƣờng bị lộ cỏc thụng tin về sản phẩm để phỏt triển website nhƣ sofware version, từ đú làm cho hacker dễ dàng tấn cụng hơn, giảm thời gian truy vấn để trực tiếp tấn cụng thẳng vào version tƣơng ứng của sản phẩm

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Hỡnh 3.3. Demo website tinhte.vn bị lộ thụng tin phỏt triển website

Cỏch khắc phục

Thờm cỏc đoạn lệnh sau vào webconfig:

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

1. Removing X-AspNet-Version

Add enableVersionHeader="false" in web.config

Hỡnh 3.5. Demo cỏch config để xúa thụng tin X-AspNet-Version

2. Remove X-Powered-By

Hỡnh 3.6. Demo cỏch config để xúa thụng tin X-Powered-By

3. Removing X-AspNetMvc-Version Trong file Global.asax.cs thờm dũng code: MvcHandler.DisableMvcResponseHeader = true;

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Lộ account khi forgot password

Tỡnh Trạng

Cỏc website hầu hết đều cú chức năng forgot password, khi điền một email hợp lệ, hệ thống thụng bỏo rằng email đó hợp lệ ngay trờn giao diện. Điều này vụ tỡnh làm lộ thụng tin account đú cú tồn tại trong hệ thống, và hacker sẽ giảm số thao tỏc để tỡm và tấn cụng vào account đú.

Cỏch khắc phục

Sửa lại message thụng bỏo cho hợp lý.

3.4 Kết luận chƣơng

Để tạo ra một sản phẩm phần mềm, một website đó khú thỡ bờn cạnh đú việc bảo mật, tạo tớnh bản quền của sản phẩm cũng hết sức quan trọng. Ngoài những phƣơng phỏp cơ bản để trỏnh tấn cụng thỡ chỳng ta cần phải update website liờn tục theo định kỳ, cần phải đƣợc backup server, cỏc dữ liệu quan trọng để tăng tớnh bảo mật, an toàn cao cho sản phẩm, website.

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN

1. Kết quả đạt đƣợc

Sau 6 thỏng làm luận văn tốt nghiệp với sự hƣớng dẫn tận tỡnh của thầy giỏo TS. Hồ Văn Canh , luận văn tốt nghiệp của em đó đƣợc hồn thành đỳng thời hạn và đạt đƣợc những kết quả nhƣ sau:

- Trỡnh bày tổng quan về an ninh mạng trong nƣớc và quốc tế - Nờu bật cỏc lỗ hổng bảo mật của mạng mỏy tớnh và hệ điều hành - Nờu rừ một số định nghĩa liờn quan tới bảo mật, web, mạng.

- Nờu bật một số lỗi thụng dụng và cỏch tấn cụng, phũng thủ trong website

- Xõy dựng thành cụng chƣơng trỡnh demo về phũng thủ một số phƣơng phỏp tấn cụng qua website

2. Hƣớng phỏt triển

Một phần của tài liệu một số kỹ thuật và xây dựng mô hình phòng thủ mạng (Trang 65)