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

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

31 298 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

Định dạng
Số trang 31
Dung lượng 670 KB

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ấncô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ữngcuộc t

Trang 1

Trờng đại học vinh Khoa công nghệ thông tin

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ôngtin 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ùngchung nguồn dữ liệu Nếu không có hệ thống mạng, dữ liệu phải đợc in ra giấythì 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ênthiết bị lu 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áytí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àinguyê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

Trang 2

Đồ án tốt nghiệp Nghiên cứu một số vấn đề bảo mật ứng dụng web

đ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!

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ữngtạ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ạntruy nhập vào nhiều nơi trên thế giới, Internet còn cho phép nhiều ngời khôngmờ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 Nhng nó cũng là nguy cơ chính dẫn đến thông tincủ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ứumá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áctrờ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ụ

Trang 3

Đồ án tốt nghiệp Nghiên cứu một số vấn đề bảo mật ứng dụng web

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ấncô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ữngcuộc tấn công nhằm vào hệ thống của họ

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ácvớ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 quaviệ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ếtbằ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ântá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 racò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ờidù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-

Trang 4

Đồ án tốt nghiệp Nghiên cứu một số vấn đề bảo mật ứng dụng web

ờng đợc cài đặt bằng các ngôn ngữ Java, NET, ASP, PHP đợc triển khaitrê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áchnhiệ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

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ệnhcơ 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, lu 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

Trang 5

Đồ án tốt nghiệp Nghiên cứu một số vấn đề bảo mật ứng dụng web

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á 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ếthacker

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 đợcthự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ấpdị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 (nhMicrosoft 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ếptớ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ềuhành Các cổng này để mở nhằm cho phép liên lạc với hoạt động giao thôngmạ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

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ốngmạng….Hacker thờng là những chuyên gia về máy tính Hacker không tạo ra các

Trang 6

Đồ án tốt nghiệp Nghiên cứu một số vấn đề bảo mật ứng dụng web

kẽ hở cho hệ thống, nhng 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ìnhtrong 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 hayngờ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 mu lợi riêng, những ngời này bị xem nh là BlackHat( Hackernó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à HTTPrequests (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:

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ặcPOST), đị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

 Header trả lời:

HTTP/1.1 200 OK

Server: Microsoft-IIS/5.0

Trang 7

Đồ án tốt nghiệp Nghiên cứu một số vấn đề bảo mật ứng dụng web

Date: Thu, 13 Jul 2000 05:46:53 GMT

Content-Length: 2291

Content-Type: text/html

Set-cookie:ASPSESSIONIDQQGGGNCC=LKLDFFKCINFLDMFHCBCBMFLJ;

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

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à HTTPkhông lu 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àygâ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, ứngdụng Web đa ra một khái niệm phiên làm việc (Session) Còn SessionID là mộtchuỗi để chứng thực phiên làm việc Một số trình chủ sẽ cung cấp một SessionIDcho 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 lu vào:

về ngời dùng đã ghé thăm site và những vùng họ đi qua trong site

Những thông tin này có thể bao gồm tên/định danh ngời dùng, mật khẩu, sởthích, thói quen….Cookie đợc browser của ngời dùng chấp nhận lu trên đĩa cứng

Trang 8

Đồ án tốt nghiệp Nghiên cứu một số vấn đề bảo mật ứng dụng web

của máy mình, không phải browser nào cũng hỗ trợ cookie Sau một lần truy cậpvào site, những thông tin về ngời dùng đợc lu trữ trong cookie ở những lần truycập sau đến site đó, web site có thể dùng lại những thông tin trong cookie (nhthông tin liên quan đến việc đăng nhập vào 1 forum….) mà ngời sử dụng khôngphải làm lại thao tác đăng nhập hay phải nhập lại các thông tin khác Vấn đề đặt

ra là có nhiều site quản lý việc dùng lại các thông tin trong cookie không chínhxác, kiểm tra không đầy đủ hoặc mã hóa các thông tin trong cookie còn sơ hởgiúp cho hacker khai thác để vợt qua cách cửa đăng nhập, đoạt quyền điều khiểnsite

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

+ Đờ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 trng đợc web server lu 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ệthoặ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 thaythế 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 haykhông đáp ứng, nếu yêu cầu đợc đáp ứng, proxy server sẽ kết nối với server thậtthay 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 giangiữ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 đã đợcphâ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àimộ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

Trang 9

Đồ án tốt nghiệp Nghiên cứu một số vấn đề bảo mật ứng dụng web

 ấ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ằngcách gửi một session ID hợp lệ đến ngời dùng, sau khi ngời dùng đăngnhập vào hệ thống thành công, hacker sẽ dùng lại session ID đó và nghiễmnhiên trở thành ngời dùng hợp lệ

 Đá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 khinạn nhân đã đăng nhập vào hệ thống bằng cách giải mã session ID của họ

đợc lu 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êntrì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ấpphá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 roottrê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ônngữ 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ửinhững kí tự trong chuỗi câu lệnh nh <script> trong kĩ thuật XSS, trongSQL 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âutruy vấn hay những giá trị không hợp lệ để đăng nhập vào hệ thống

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

Trang 10

Đồ án tốt nghiệp Nghiên cứu một số vấn đề bảo mật ứng dụng web

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 truyxuất đến file, cơ sở dữ liệu….mà bình thờng không thể xem đợc trênwebsite

 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ủachuỗ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ênkhô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 lu trữ trongnhững biến nh biến trên URL, biến ẩn form, cookie….Bởi vì việc kiểmsoát biến cha đợc quan tâm đúng mức nên hacker có thể lợi dụng sửa đổigiá 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 nhmã 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ốngluô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 ứngdụ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

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ôngDoS

Trang 11

Đồ án tốt nghiệp Nghiên cứu một số vấn đề bảo mật ứng dụng web

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êncookie, 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ànthiệ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ọihoạt động của hacker trong quá trình tấn công ứng dụng

1.1 Thao tác trên URL

Trang 12

Đồ án tốt nghiệp Nghiên cứu một số vấn đề bảo mật ứng dụng web

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 hayPOST 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 trongchuỗi URL

Ví dụ: Có một trang web ứng dụng cho phép thành viên đã đợc thay đổi mậtkhẩ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:

 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 khicho 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à HiddenForm Field Biến bẩn form không hiển thị trên màn hình trình duyệt nhng ngờidù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 lu 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:

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

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

</form>

Nếu không có sự thay đổi nào thì yêu cầu đến trình chủ có nội dung:

Trang 13

Đồ án tốt nghiệp Nghiên cứu một số vấn đề bảo mật ứng dụng web

POST /cuahang.p1 HTTP/1.1

Giaca=99.99

Nhng 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”>

 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ánmã hóa MD5 hoặc một kiểu hash một chiều khác để tổng hợp chuỗi đó và

lu 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ớicùng một khóa mà ta định trớc Sau đó đem so sánh với “Chuỗi mẫu”, nếuchũ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 lu 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)

Trang 14

Đồ án tốt nghiệp Nghiên cứu một số vấn đề bảo mật ứng dụng web

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ểnweb 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ểmthì đề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ấncô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ếnnhất của Web Applications và mối đe doạ của chúng đối với ngời sử dụng ngàycà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ácyêu cầu (request) đợc gửi từ các máy client tới server nhằm chèn vào đó cácthô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à

Nhng 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 websitenhng đó 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

Trang 15

Đồ án tốt nghiệp Nghiên cứu một số vấn đề bảo mật ứng dụng web

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 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ácloại virus, backdoor, worm

Tuy nhiên có thể thay thể URL bằng JavaScript:

getURL(“javascript:alert(document.cookie)”)

Ví dụ trên sẽ làm xuất hiện bảng thông báo cha cookie của trang web chứa tậptin flash đó Nh vậy là trang web đó đã bị tấn công, bằng cách chèn một đoạnJavaScript vào ứng dụng web thông qua tập tin flash Một ví dụ khác rõ hơn vềcách tấn công này là:

Đây là đoạn lệnh trong tập tin flash và sẽ đợc thi hành khi tập tin flash đợc

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 webchứa các thông tin về bảo mật nh securityfocus.com, securiteam.com, Tuynhiê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 hayAppScan, đó là những chơng trình scan khá tuyệt, ta không chỉ kiểm tra đợc cáclỗi XSS mà nó còn cho phép ta kiểm tra các lỗi khác trong Website đó, Server

đó

Tất nhiên không phải lúc nào chúng ta cũng cần kiểm tra tất cả, nếu nh chỉmuốn kiểm tra các lỗi XSS có trong website, chỉ cần sử dụng screamingCSS Đó

Ngày đăng: 15/12/2015, 10:50

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[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
[2] Internetwork Design Guide, 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

TỪ KHÓA LIÊN QUAN

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