1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Nghiên cứu một số vấn đề bảo mật ứng dụng web

36 17 0

Đ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

Thông tin cơ bản

Tiêu đề Nghiên Cứu Một Số Vấn Đề Bảo Mật Ứng Dụng Web
Tác giả Trần Văn Quế
Người hướng dẫn TS. Nguyễn Trung Hoà
Trường học Trường Đại Học Vinh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2010
Thành phố Vinh
Định dạng
Số trang 36
Dung lượng 0,93 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Một phần rất lớn các vụ tấn công không đ-ợc thông báo, vì nhiều lý do, trong đó có thể kể đến nỗi lo bị mất uy tín, hoặc đơn giản những ng-ời quản trị hệ thống không hề hay biết những cu

Trang 2

Lời nói đầu

Trong công cuộc đổi mới không ngừng của khoa học kỹ thuật công nghệ, nhiều lĩnh vực đã và đang phát triển v-ợt bậc đặc biệt là lĩnh vực công nghệ thông tin Mạng máy tính đ-ợc hình thành từ nhu cầu muốn chia sẻ tài nguyên

và dùng chung nguồn dữ liệu Nếu không có hệ thống mạng, dữ liệu phải đ-ợc in

ra giấy thì ng-ời khác mới có thể hiệu chỉnh và sử dụng đ-ợc hoặc chỉ có thể sao chép lên thiết bị l-u trữ khác do đó tốn nhiều thời gian và công sức

Khi ng-ời làm việc ở môi tr-ờng độc lập mà nối máy tính của mình với máy tính của nhiều ng-ời khác, thì ta có thể sử dụng trên các máy tính khác và cả máy in Mạng máy tính đ-ợc các tổ chức sử dụng chủ yếu để chia sẻ, dùng chung tài nguyên và cho phép giao tiếp trực tuyến bao gồm gửi và nhận thông

điệp hay th- điện tử, giao dịch, th-ơng mại điện tử, tìm kiếm thông tin trên mạng Chính vì những vai trò rất quan trọng của mạng máy tính với nhu cầu của cuộc sống con ng-ời, bằng những kiến thức đã đ-ợc học ở tr-ờng chúng em đã

chọn đồ án: Nghiên cứu một số vấn đề bảo mật Web Với nội dung chính đ-ợc

đề cập và nghiên cứu trên mô hình mạng LAN (Local Area Network – mạng nội bộ) và quản trị th- điện tử nội bộ với phần mềm Microsoft Exchange Server

2003

Do thời gian và kiến thức có hạn nên bài viết còn hạn chế, rất mong đ-ợc sự

góp ý của các Thầy Cô giáo và em xin chân thành cảm ơn thầy giáo TS: Nguyễn Trung Hoà đã tận tình giúp đỡ để em hoàn thành đồ án này

Xin trân trọng cảm ơn!

Trang 3

Nghiên cứu một số vấn đề về bảo mật ứng dụng web

Nh- ta đã biết hiện nay, khái niệm mạng toàn cầu - Internet không còn mới

mẻ Nó đã trở nên phổ biến tới mức không cần phải chú giải gì thêm trong những tạp chí kỹ thuật, còn trên những tạp chí khác thì tràn ngập những bài viết dài, ngắn về Internet Khi những tạp chí thông th-ờng chú trọng vào Internet thì giờ

đây, những tạp chí kỹ thuật lại tập trung vào khía cạnh khác: an toàn thông tin

Đó cùng là một quá trình tiến triển hợp logic: khi những vui thích ban đầu về một siêu xa lộ thông tin, bạn nhất định nhận thấy rằng không chỉ cho phép bạn truy nhập vào nhiều nơi trên thế giới, Internet còn cho phép nhiều ng-ời không mời mà tự ý ghé thăm máy tính của bạn

Thực vậy, Internet có những kỹ thuật tuyệt vời cho phép mọi ng-ời truy nhập, khai thác, chia sẻ thông tin Nh-ng nó cũng là nguy cơ chính dẫn đến thông tin của bạn bị h- hỏng hoặc phá huỷ hoàn toàn

Theo số liệu của CERT(Computer Emegency Response Team - “ Đội cấp cứu máy tính” ), số l-ợng các vụ tấn công trên Internet đ-ợc thông báo cho tổ chức này là ít hơn 200 vào năm 1989, khoảng 400 vào năm 1991, 1400 vào năm 1993,

và 2241 vào năm 1994 Những vụ tấn công này nhằm vào tất cả các máy tính có mặt trên Internet, các máy tính của tất cả các công ty lớn nh- AT&T, IBM, các tr-ờng đại học, các cơ quan nhà n-ớc, các tổ chức quân sự, nhà băng Một số vụ tấn công có quy mô khổng lồ (có tới 100.000 máy tính bị tấn công) Hơn nữa, những con số này chỉ là phần nổi của tảng băng Một phần rất lớn các vụ tấn công không đ-ợc thông báo, vì nhiều lý do, trong đó có thể kể đến nỗi lo bị mất

uy tín, hoặc đơn giản những ng-ời quản trị hệ thống không hề hay biết những cuộc tấn công nhằm vào hệ thống của họ

Trang 4

CHƯƠNG 1 GIớI THIệU ứNG DụNG WEB

1 Khái niệm ứng dụng Web (Web Application)

ứng dụng Web là một ứng dụng chủ/khách sử dụng giao thức HTTP để t-ơng tác với ng-ời dùng hay hệ thống khác

Trình khách dành cho ng-ời sử dụng th-ờng là một trình duyệt web nh- IE, Netcape Navigator Ng-ời dùng gửi và nhận các thông tin từ trình chủ thông qua việc tác động vào các trang web Các ch-ơng trình có thể là các trang thông tin, trao đổi mua bán, các diễn đàn, gửi nhận email…

Tốc độ phát triển của các ứng dụng web rất nhanh, ngày nay Web th-ờng đ-ợc viết bằng các ngôn ngữ Java hay các ngôn ngữ t-ơng tự và chạy trên máy chủ phân tán, kết nối đến nhiều nguồn dữ liệu

Một ứng dụng web th-ờng có kiến trúc gồm:

- Lớp trình bày: Lớp có nhiệm vụ hiển thị dữ liệu cho ng-ời dùng, ngoài ra còn có thể có thêm các ứng dụng tạo bố cục cho trang web

- Lớp ứng dụng: là nơi xử lý của ứng dụng web, nó sẽ xử lý thông tin ng-ời dùng yêu cầu, đ-a ra quyết định, gửi kết quả đến lớp trình bày lớp này th-ờng đ-ợc cài đặt bằng các ngôn ngữ Java, NET, ASP, PHP đ-ợc triển khai trên các trình chủ nh- IBM, Apache,IIS…

- Lớp dữ liệu: th-ờng là các hệ quản trị cơ sở dữ liệu(DBMS) chịu trách nhiệm quản lý các file dữ liệu và quyền sử dụng

Mô hình hoá của một ứng dụng web

Trang 5

Trong đó:

- Trình khách( hay còn gọi là trình duyệt): IE, NN

- Trình chủ: Apache, IIS…

- Hệ quản trị cơ sở dữ liệu: SQL server, My SQL, DB2, Access…

2 Mô tả hoạt động của một ứng dụng web

Đầu tiên trình duyệt sẽ gửi một yêu cầu đến trình chủ web thông qua các lệnh cơ bản GET, POST… của giao thức HTTP, trình chủ lúc này có thể cho thực thi một ch-ơng trình đ-ợc xây dựng từ nhiều ngôn ngữ khác nhau hoặc trình chủ yêu cầu bộ diễn dịch thực thi các trang ASP, PHP theo yêu cầu của trình khách Tuỳ theo các tác vụ của ch-ơng trình đ-ợc cài đặt mà nó xử lý, tính toán kết nối

đến cơ sở dữ liệu, l-u thông tin do trình khách gửi đến…và từ đó trả về cho trình khách 1 luồng dữ liệu có định dạng theo giao thức HTTP nó gồm 2 phần:

- Header mô tả các thông tin về gói dữ liệu và các thuộc tính, trạng thái trao

đổi giữa trình duyệt và Webserver

- Body là phần nội dung dữ liệu mà server gửi về client, nó có thể là một file HTML, một hình ảnh, một đoạn phim hay một trang tài liệu

3 Các vấn đề về bảo mật Web

Mặc dù không thể phủ nhận những cải tiến nâng cao đáng kể hiện nay, nh- vấn đề bảo mật trong ứng dụng Web vẫn không ngừng tăng lên Nguyên nhân có thể xuất phát từ các đoạn mã không phù hợp Nhiều điểm yếu nghiêm trọng hay các lỗ hổng cho phép hacker xâm nhập thẳng và truy cập vào cơ sở dữ liệu tách lấy dữ liệu nhạy cảm Nhiều cơ sở dữ liệu chứa thông tin giá trị (nh- chi tiết cá

Trang 6

nhân, thông tin tài chính) khiến chúng trở thành đích nhắm th-ờng xuyên của hầu hết hacker

Một cuộc nghiên cứu gần đây chỉ ra rằng 75% các cuộc tấn công mạng đ-ợc thực hiện ở mức ứng dụng Web

 Website và các ứng dụng Web liên quan luôn phải sẵn sàng 24/7 để cung cấp dịch vụ theo yêu cầu khách hàng, yêu cầu từ phía nhân viên, nhà cung cấp và nhiều ng-ời liên quan khác

 T-ờng lửa, SLL không thể bảo vệ ứng dụng Web tr-ớc mọi hoạt động hacking, đơn giản vì truy cập vào Website phải để ở chế độ public để bất kỳ

ai cũng có thể ghé thăm Website đ-ợc Tất cả hệ thống cơ sở dữ liệu hiện đại (nh- Microsoft SQL Server, Oracle, MySQL) đều có thể truy cập qua một số cổng cụ thể (nh- cổng 80, 433) Nếu muốn, một ng-ời nào đó có thể kết nối trực tiếp tới cơ sở dữ liệu một cách hiện quả khi v-ợt qua cơ chế bảo mật của

hệ điều hành Các cổng này để mở nhằm cho phép liên lạc với hoạt động giao thông mạng hợp pháp, và do đó cũng hình thành nên lỗ hổng lớn nguy hiểm

 Các ứng dụng Web th-ờng truy cập dữ liệu cuối nh- cơ sở dữ liệu khách hàng, điểu khiển dữ liệu có giá trị và do đó rất khó để có thể tuyệt đối an toàn

 Hầu hết ứng dụng Web đều là tự tạo, do đó ít có đ-ợc các kiểm tra trình độ hơn so với các phần mềm cùng loại Do đó các ứng dụng tùy biến th-ờng dễ

bị tấn công hơn

Có thể nói ứng dụng Web là một cổng vào (gateway) của cơ sở dữ liệu, nhất là các ứng dụng tùy biến Chúng không đ-ợc phát triển với mức bảo mật tốt nhất vì không phải qua các kiểm tra bảo mật thông th-ờng

Trang 7

CHƯƠNG 2 GIớI THIệU SƠ LƯợC Về CáC Kỹ THUậT TấN CÔNG ứNG DụNG WEB

1 CáC KHáI NIệM THUậT NGữ LIÊN QUAN

1.1 Hacker

Hacker là một thuật ngữ dùng để chuyên chỉ những kẻ phá hoại các hệ thống mạng…Hacker th-ờng là những chuyên gia về máy tính Hacker không tạo ra các

kẽ hở cho hệ thống, nh-ng hacker lại là những ng-ời am hiểu về hệ điều hành,

hệ quản trị cơ sở dữ liệu, các ngôn ngữ lập trình…Họ sử dụng kiến thức của mình trong việc tìm tòi và khai thác các lỗ hổng của hệ thống mạng Một số hacker chỉ dừng lại ở việc phát hiện và thông báo lỗi tìm đ-ợc cho những nhà bảo mật hay ng-ời phát triển ch-ơng trình, họ đ-ợc xem nh- là WhiteHat (Hacker nón trắng) Một số hacker dựa vào những lỗ hổng thực hiện việc khai thác trái phép nhằm mục đích phá hoại hay m-u lợi riêng, những ng-ời này bị xem nh- là BlackHat( Hacker nón đen)

Vì tính chất phổ biến của thuật ngữ hacker, nên trong phần trình bày, sẽ sử dụng “ hacker” thay cho “ kẻ tấn công”

1.2 HTTP Header

HTTP Header là phần đầu (header) của thông tin mà trình khách và trình chủ gửi cho nhau Những thông tin trình khách gửi cho trình chủ đ-ợc gọi là HTTP requests (yêu cầu) còn trình chủ gửi cho trình khách là HTTP responses (trả lời) Thông th-ờng, một HTTP header gồm nhiều dòng, mỗi dòng chứa tên tham số

và giá trị Một số tham số có thể đ-ợc dùng trong cả header yêu cầu và header trả lời, một số khác thì chỉ đ-ợc dùng riêng trong từng loại Ví dụ:

 Header yêu cầu:

Trang 8

User-Agent: Mozilla/4.0 {compatible: MSIE 5.5; Windows NT 5.0}

Accept-Encoding: gzip, deflate

o Dòng đầu là dòng yêu cầu cho biết ph-ơng thức yêu cầu (GET hoặc POST), địa chỉ yêu cầu (/tintuc/homnay.asp) và phiên bản HTTP (HTTP/1.1)…

o Tiếp theo là các tham số Chẳng hạn nh-:

 Accept-Language: Cho biết ngôn ngữ dùng trong trang web

 Host: Cho biết địa chỉ máy chủ

 Referer: Cho biết địa chỉ của trang web tham chiếu tới

o Header của HTTP request sẽ kết thúc bằng một dòng trống

o Tiếp theo là các tham số

o Tiếp theo là một dòng trống để báo hiệu kết thúc header, tiếp theo là phần thân của HTTP response

Trang 9

1.3 Session

HTTP là giao thức h-ớng đối t-ợng tổng quát, phi trạng thái, nghĩa là HTTP không l-u trữ trạng thái làm việc giữa trình duyệt với trình chủ Sự thiếu sót này gây khó khăn cho một số ứng dụng Web, bởi vì trình chủ không biết đ-ợc tr-ớc

đó trình duyệt đã có những trạng thái nào Vì thế, để giải quyết vấn đề này, ứng dụng Web đ-a ra một khái niệm phiên làm việc (Session) Còn SessionID là một chuỗi để chứng thực phiên làm việc Một số trình chủ sẽ cung cấp một SessionID cho ng-ời dùng khi họ xem trang web trên trình chủ

Để duy trì phiên làm việc thì sessionID th-ờng đ-ợc l-u vào:

đoạt quyền điều khiển site

Cookies th-ờng có các thành phần sau :

+ Tên: do ng-ời lập trình web site chọn

+ Domain: là tên miền từ server mà cookie đ-ợc tạo và gửi đi

Trang 10

+ Đ-ờng dẫn: thông tin về đ-ờng dẫn ở web site mà bạn đang xem

+ Ngày hết hạn: là thời điểm mà cookie hết hiệu lực

+ Bảo mật: Nếu giá trị này đựơc thiết lập bên trong cookie, thông tin sẽ đựơc mã hoá trong quá trình truyền giữa server và browser

+ Các giá trị khác: là những dữ liệu đặc tr-ng đ-ợc web server l-u trữ để nhận dạng về sau các giá trị này ko chứa các khoảng trắng, dấu chấm, phẩy và bị giới hạn trong khoảng 4k

1.5 Proxy

Proxy cung cấp cho ng-ời sử dụng truy xuất Internet những nghi thức đặc biệt hoặc một tập những nghi thức thực thi trên dual_homed host hoặc bassion host Những ch-ơng trình client của ng-ời sử dụng sẽ qua trung gian proxy server thay thế cho server thật sự mà ng-ời sử dụng cần giao tiếp

Proxy server xác định những yêu cầu từ client và quyết định đáp ứng hay không đáp ứng, nếu yêu cầu đ-ợc đáp ứng, proxy server sẽ kết nối với server thật thay cho client và tiếp tục chuyển tiếp những yêu cầu từ client đến server, cũng nh- trả lời của server đến client Vì vậy proxy server giống cầu nối trung gian giữa server và client

2 GIớI THIệU SƠ LƯợC CáC Kỹ THUậT TấN CÔNG

Sau đây là các khái niệm sơ l-ợc các kĩ thuật tấn công ứng dụng Web đã đ-ợc phân loại dựa trên mức độ gây tác hại đối với ứng dụng

2.1 Kiểm soát truy cập web (Web access control)

Thâm nhập hệ thống qua cửa sau (Back door)

Trong quá trình thiết kế ứng dụng, những ng-ời phát triển ứng dụng có thể cài một “ cửa sau” (back door) để sau này có thể thâm nhập vào hệ thống một cách

dễ dàng

2.2 Chiếm hữu phiên làm viêc

 ấn định phiên làm việc (Session Fixation)

Là kĩ thuật tấn công cho phép hacker mạo danh ng-ời dùng hợp lệ bằng cách gửi một session ID hợp lệ đến ng-ời dùng, sau khi ng-ời dùng đăng nhập vào hệ thống thành công, hacker sẽ dùng lại session ID đó và nghiễm nhiên trở thành ng-ời dùng hợp lệ

Trang 11

 Đánh cắp phiên làm việc (Session Hijacking)

Là kĩ thuật tấn công cho phép hacker mạo danh ng-ời dùng hợp lệ sau khi nạn nhân đã đăng nhập vào hệ thống bằng cách giải mã session ID của họ

đ-ợc l-u trữ trong cookie hay tham số URL, biến ẩn của form

2.3 Lợi dụng các thiếu sót trong việc kiểm tra dữ liệu nhập hợp lệ (Input validation)

Hacker lợi dụng những ô nhập dữ liệu để gửi đi một đoạn mã bất kì khiến cho

hệ thống phải thực thi đoạn lệnh đó hay bị phá vỡ hoàn toàn

 Kiểm tra tính đúng đắn của dữ liệu bằng ngôn ngữ phía trình duyệt (Client-side validation)

Do ngôn ngữ phía trình duyệt (JavaScript, VBScrip…) đ-ợc thực thi trên trình duyệt nên hacker có thể sửa đổi mã nguồn để có thể vô hiệu hóa sự kiểm tra

 Tràn bộ đệm (Buffer OverFlow)

Một khối l-ợng dữ liệu đ-ợc gửi cho ứng dụng v-ợt quá l-ợng dữ liệu

đ-ợc cấp phát khiến cho ứng dụng không thực thi đ-ợc câu lệnh dự định

kế tiếp mà thay vào đó phải thực thi một đoạn mã bất kì do hacker đ-a vào

hệ thống Nghiêm trọng hơn nếu ứng dụng đ-ợc cấu hình để thực thi với quyền root trên hệ thống

 Mã hóa URL (URL Encoding)

Lợi dụng chuẩn mã hóa những kí tự đặc biệt trên URL mà hacker sẽ mã hóa tự động những kí tực bất hợp lệ - những kí tự bị kiểm tra bằng ngôn ngữ kịch bản để v-ợt qua vòng kiểm soát này

 Kí tự Meta (Meta-characters)

Sử dụng những kí tự đặc biệt hacker có thể chèn thêm vào dữ liệu gửi những kí tự trong chuỗi câu lệnh nh- <script> trong kĩ thuật XSS, trong SQL injection…để thực thi câu lệnh

 Chèn câu truy vấn SQL (SQL Injection)

Trong lập trình với cơ sở dữ liệu, ng-ời lập trình đã sai sót trong vấn đề kiểm tra giá trị nhập vào để từ đó hacker lợi dụng thêm vào những câu truy vấn hay những giá trị không hợp lệ để đăng nhập vào hệ thống

Trang 12

 Ngôn ngữ phía máy chủ (Server side includes)

Là khả năng thêm vào những câu lệnh thuộc hệ thống nh- nhúng file (include file), truy xuất cơ sở dữ liệu…khiến cho hacker có cơ hội truy xuất đến file, cơ sở dữ liệu…mà bình th-ờng không thể xem đ-ợc trên website

 Kí tự rỗng (Null characters)

Lợi dụng chuỗi kí tự th-ờng kết thúc bằng \0 mà hacker th-ờng thêm vào

để đánh lừa ứng dụng vì với những ứng dụng sử dụng ch-ơng trình CGI nh- C++ thì C++ cho rằng \0 là dấu kết thúc chuỗi

Ví dụ: Hacker thêm chuỗi sau:

Ô nhập: … \0<script>alert(document.cookie)</script>

Nếu ứng dụng sử dụng ch-ơng trình C++ để kiểm tra tính đúng đắn của chuỗi thì chuỗi trên hợp lệ do C++ sẽ nhận biết “ \0” là kết thúc chuỗi nên không kiểm tra đoạn sau…

 Thao tác trên tham số truyền (Parameter manipulation)

Những thông tin trao đổi giữa trình chủ và trình duyệt đ-ợc l-u trữ trong những biến nh- biến trên URL, biến ẩn form, cookie…Bởi vì việc kiểm soát biến ch-a đ-ợc quan tâm đúng mức nên hacker có thể lợi dụng sửa

đổi giá trị biến để đánh cắp phiên làm việc của ng-ời dùng hay thay đổi giá trị một món hàng…

2.4 Để lộ thông tin

Những tập tin và ứng dụng trên hệ thống chứa những thông tin quan trọng nh- mã nguồn một trang Web hay tập tin chứa mật khẩu của ng-ời dùng trên hệ thống luôn là mục tiêu của hacker Ngoài ra những lời chú thích trong mã nguồn cũng là nguồn thông tin hữu ích cho hacker

Hacker sử dụng trả lời HTTP từ hệ thống để xác định một tập tin hay ứng dụng có tồn tại hay không

Ví dụ:

.HTTP 200: Tập tin tồn tại

.HTTP 404: Tập tin không tồn tại

Trang 13

2.5 Từ chối dịch vụ (Denial of service DoS)

Tấn công kiểu DoS là kiểu tấn công làm cho các dịch vụ mạng bị tê liệt, không còn khả năng đáp ứng yêu cầu nữa Loại tấn công này ảnh h-ởng đến nhiều hệ thống, rất dễ thực hiện và lại rất khỏ bảo vệ hệ thống khỏi yêu cấu tấn công DoS

Trang 14

CHƯƠNG 3 MộT Số Kĩ THUậT TấN CÔNG ứNG DụNG WEB

1 THAO TáC TRÊN THAM Số TRUYềN

Thao tác trên tham số truyền là kĩ thuật thay đổi thông tin quan trọng trên cookie, URL hay biến ẩn của form Kĩ thuật Cross-Site Scripting, SessionID, SQL Injection, Buffer Overflow…cũng cần dùng đến các tham số này để hoàn thiện các b-ớc tấn công của hacker Có thể nói tham số truyền là đầu mối cho mọi hoạt động của hacker trong quá trình tấn công ứng dụng

1.1 Thao tác trên URL

1.1.1 Khái niệm:

Khi nhập một form HTML thì kết quả sẽ đ-ợc gửi đi theo hai cách: GET hay POST Nếu dùng GET, thì tất cả các tên biến và giá trị của nó sẽ xuất hiện trong chuỗi URL

Ví dụ: Có một trang web ứng dụng cho phép thành viên đã đ-ợc thay đổi mật khẩu

http://www.nganhang.com/example?user=abc&newpass=123

Với: Username là tên ng-ời cần thay đổi mật khẩu

Newpass là mật khẩu mới cho username

Tuy nhiên, bằng cách thay đổi tham số nh- sau:

Trang 15

bảng băm Nếu t-ơng ứng với bản ghi trong dữ liệu thì hợp lệ Còn nếu không thì server biết rằng ng-ời dùng đã thay đổi URL

 Ngoài ra, với những thông tin có giá trị, cần mã hóa thông tin này tr-ớc khi cho hiển thị trên trình duyệt để tránh hacker có thể sửa đổi tùy ý

1.2 Thao tác trên biến ẩn form

1.2.1 Khái niệm

Thông tin có thể đ-ợc chuyển đổi thông qua một biến ẩn form, gọi là Hidden Form Field Biến bẩn form không hiển thị trên màn hình trình duyệt nh-ng ng-ời dùng có thể tìm thấy nội dung của nó trong “ view source” , vì thế đây là một

điểm yếu để hacker lợi dụng bằng cách l-u nội dung trang web xuống trình duyệt, thay đổi nội dung trang và gửi đến trình chủ

Ví dụ: Form gốc có nội dung nh- sau:

<input type=”hiden” name=”giaca” value=”99.99”>

Nh-ng nếu hacker gán một giá trị khác cho tr-ờng “ giaca” :

<form action= http://www.tancong.com/cuahang.p1 method=”POST”>

Trang 16

Ngoài việc thay đổi nội dung biến ẩn của form, hacker còn biến đổi nội dung các thành phần trong form, nh- chiều dài của một ô nhập dữ liệu để thực hiện việc tấn công “ BUFFER OVERFLOW” ,…

 Ghép tên và giá trị của biến ẩn thành một chuỗi đơn Sử dụng thuật toán mã hóa MD5 hoặc một kiểu hash một chiều khác để tổng hợp chuỗi đó và l-u nó vào một hidden field gọi là “ Chuỗi mẫu”

Khi giá trị trong form đ-ợc gửi đi, các thao tác nh- trên đ-ợc thực hiện lại với cùng một khóa mà ta định tr-ớc Sau đó đem so sánh với “ Chuỗi mẫu” , nếu chũng không khớp nhau thì chứng tỏ giá trị trong biểu mẫu đã

bị thay đổi

 Dùng một sessionID để tham chiếu đến thông tin đ-ợc l-u trữ trên cơ sở dữ liệu

2 CHèN Mã LệNH THựC THI TRÊN TRìNH DUYệT NạN NHÂN (CROSS-SITE SCRIPTING)

2.1 Cross-Site Scripting (XSS)

Là một trong những kĩ thuật tấn công phổ biến nhất hiên nay, đồng thời nó cũng là một trong những vấn đề bảo mật quan trọng đối với các nhà phát triển web và cả những ng-ời sử dụng web Bất kì một website nào cho phép ng-ời sử dụng đăng thông tin mà không có sự kiểm tra chặt chẽ các đoạn mã nguy hiểm thì đều có thể tiềm ẩn các lỗi XSS

1 XSS là gì ?

Cross-Site Scripting hay còn đ-ợc gọi tắt là XSS (thay vì gọi tắt là CSS để tránh nhầm lẫn với CSS-Cascading Style Sheet của HTML) là một kĩ thuật tấn

Trang 17

công bằng cách chèn vào các website động (ASP, PHP, CGI, JSP ) những thẻ HTML hay những đoạn mã script nguy hiểm có thể gây nguy hại cho những ng-ời sử dụng khác Trong đó, những đoạn mã nguy hiểm đựơc chèn vào hầu hết

đ-ợc viết bằng các Client-Site Script nh- JavaScript, JScript, DHTML và cũng có thể là cả các thẻ HTML

Kĩ thuật tấn công XSS đã nhanh chóng trở thành một trong những lỗi phổ biến nhất của Web Applications và mối đe doạ của chúng đối với ng-ời sử dụng ngày càng lớn

2 XSS hoạt động nh- thế nào ?

Về cơ bản XSS cũng nh- SQL Injection hay Source Injection, nó cũng là các yêu cầu (request) đ-ợc gửi từ các máy client tới server nhằm chèn vào đó các thông tin v-ợt quá tầm kiểm soát của server Nó có thể là một request đ-ợc gửi

từ các form dữ liệu hoặc cũng có thể đó chỉ là các URL nh- là

Nh-ng nếu nh- các kĩ thuật tấn công khác có thể làm thay đổi đ-ợc dữ liệu

nguồn của web server (mã nguồn, cấu trúc, cơ sở dữ liệu) thì XSS chỉ gây tổn hại

đối với website ở phía client mà nạn nhân trực tiếp là những ng-ời khách duyệt site đó Tất nhiên đôi khi các hacker cũng sử dụng kĩ thuật này đề deface các website nh-ng đó vẫn chỉ tấn công vào bề mặt của website Thật vậy, XSS là những Client-Side Script, những đoạn mã này sẽ chỉ chạy bởi trình duyệt phía client do đó XSS không làm ảnh h-ởng đến hệ thống website nằm trên server Mục tiêu tấn công của XSS không ai khác chính là những ng-ời sử dụng khác của website, khi họ vô tình vào các trang có chứa các đoạn mã nguy hiểm do các

Trang 18

hacker để lại họ có thể bị chuyển tới các website khác, đặt lại homepage, hay nặng hơn là mất mật khẩu, mất cookie thậm chí máy tính bạn có thể sẽ bị cài các loại virus, backdoor, worm

Nh- vậy là khi ng-ời dùng xem trang web chứa tập tin flash này thì ngay lập tức cookie của họ do trang web chứa tập tin flash đó tạo ra sẽ gửi về cho hacker

2.3 Phát hiện XSS bằng cách nào?

Nếu nh- chúng ta sử dụng các mã nguồn của các ch-ơng trình có sẵn chúng ta

có thể tham khảo danh sách các lỗ hổng của ch-ơng trình bạn trên các trang web chứa các thông tin về bảo mật nh- securityfocus.com, securiteam.com, Tuy nhiên nếu các website đ-ợc tự viết mã nguồn thì chúng ta không thể áp dụng ph-ơng pháp trên Trong tr-ờng hợp này ta cần đến các ch-ơng trình scanner tự

động Nếu sử dụng trong môi tr-ờng Windows chúng ta có thể dùng N-Stealth

Ngày đăng: 14/10/2021, 23:55

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] Internetwork Design Guide, Copyright Cisco Press 2003 Sách, tạp chí
Tiêu đề: Internetwork Design Guide
Nhà XB: Cisco Press
Năm: 2003
[4] Mạng Máy tính và các hệ thống mở Nguyễn Thúc Hải NXBGD 1999 [5] Mạng căn bản - NXB Thống Kê Sách, tạp chí
Tiêu đề: Mạng Máy tính và các hệ thống mở
Tác giả: Nguyễn Thúc Hải
Nhà XB: NXBGD
Năm: 1999
[7] Mạng máy tính : Nguyễn Gia Hiểu – NXB Thông Tin Sách, tạp chí
Tiêu đề: Mạng máy tính
Tác giả: Nguyễn Gia Hiểu
Nhà XB: NXB Thông Tin
[9] TCP/IP Network Administration. Craig Hunt, O‟ Reilly &amp; Associates Sách, tạp chí
Tiêu đề: TCP/IP Network Administration
Tác giả: Craig Hunt
Nhà XB: O'Reilly & Associates
[10] www.Quantrimang.com [11] http://www.google.com.vn Link
[1] Internetworking Design Basics, Copyright Cisco Press 2003 Khác
[3] LAN Design Manual. BICSI Khác
[6] Giáo trình: Quản trị mạng – HTC Khác
[8] Giáo trình: Thiết kế và xây dựng mạng LAN và WAN - Dự án 112 Khác

HÌNH ẢNH LIÊN QUAN

Mô hình hoá của một ứng dụng web. - Nghiên cứu một số vấn đề bảo mật ứng dụng web
h ình hoá của một ứng dụng web (Trang 4)
Để trình bày tốt nội dung này, đồ án sử dụng bảng Taikhoan STT Tên tr-ờng Kiểu tr-ờng  Kích th-ớc  - Nghiên cứu một số vấn đề bảo mật ứng dụng web
tr ình bày tốt nội dung này, đồ án sử dụng bảng Taikhoan STT Tên tr-ờng Kiểu tr-ờng Kích th-ớc (Trang 20)

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w