Lưu trữ‎ > ‎CMKT‎ > ‎

Bảo mật WEB/PORTAL

TỔNG QUAN

1. Vấn đề bảo mật các ứng dụng Website, Portal

Trong những ngày đầu phát triển của Internet thì khái niệm World Wide Web chỉ bao gồm các trang web chứa thông tin cơ bản dưới dạng tài liệu tĩnh. Các trình duyệt web được phát triển như một phương tiện tiếp nhận và hiển thị các thông tin trên các trang Web.

Dữ liệu từ các trang web sẽ chuyển xuống trình duyệt Web theo một chiều và không cần xác thực người dùng vì mỗi người sử dụng được cung cấp thông tin theo cùng một nội dung và cách trình bày. Do đó, bất kỳ mối đe dọa bảo mật chủ yếu phát sinh từ các lỗ hổng trong phần mềm máy chủ web. Nếu hacker tấn công máy chủ web, sẽ không truy cập vào bất kỳ thông tin nhạy cảm nào, thay vào đó, kẻ tấn công thường sẽ sửa đổi các tập tin trên máy chủ để thay đổi nội dung của website hoặc sử dụng máy chủ để lưu trữ và phát tán virus.

Ngày nay, World Wide Web thay đổi rất nhiều đến mức không thể nhận ra so với hình thức văn bản, hình ảnh ban đầu. Đa số các website hiện nay thực ra là các ứng dụng ví dụ: cho phép cá nhân hóa nội dung động, thiết lập theo sở thích cá nhân, các trang web cũng có thể chạy dưới dạng client-side scriptcho phép “thay đổi” trình duyệt Webthành một giao diện ứng dụng như web mail và phần mềm bản đồ (Yahoo Mail và Google Maps), …

Các ứng dụng dạng Web có khả năng hỗ trợ đăng ký và đăng nhập, giao dịch tài chính, tìm kiếm, và xác thực nội dung,… Phần lớn các thông tin xử lý là cá nhân và rất nhạy cảm. Do đó, bảo mật là một vấn đề lớn. Không ai muốn sử dụng một ứng dụng web, nếu biết rằng thông tin của mình sẽ được tiết lộ trái phép cho cá nhân, tổ chức khác.

1.1 Khái niệm về ứng dụng Web

Các ứng dụng web là các chương trình (máy tính) cho phép người truy cập website để chuyển lên và lấy dữ liệu về cơ sở dữ liệu thông qua Internet bằng cách sử dụng trình duyệt web. Dữ liệu sau đó được hiển thị trên trình duyệt của người dùng, thông tin trên đó được tạo ra tự động (theo một định dạng cụ thể, ví dụ như trong HTML bằng cách sử dụng CSS) bởi các ứng dụng web thông qua một máy chủ web.

Nếu tìm hiểu chi tiết về kỹ thuật hơn thì các ứng dụng Web truy vấn máy chủ dữ liệu (thực chất là một kho lưu trữ nội dung) và tự động tạo ra các dữ liệu trên website để hiển thị cho người dùng. Các dữ liệu trên Web được tự động tạo ra này sẽ theo một định dạng chuẩn được hỗ trợ bởi các trình duyệt khác nhau (HTML, XHTML,…). Để có tính tương tác cao, trình bày thu hút thì JavaScript (là một dạng của kịch bản phía người dùng) thường được sử dụng nhằm tạo ra thành phần động trên mỗi trang web (ví dụ như thay đổi hình ảnh, màu sắc,…. khi người sử dụng di chuyển chuột đến). Các trình duyệt web giữ vai trò then chốt do vừa diễn dịch, thực thi tất cả Script và hiển thị nội dung các trang web.

+ Một số chức năng phổ biến của các ứng dụng Web

Ứng dụng Web đã được phát triển nhằm thực hiện tất cả các chức năng hữu ích có thể sử dụng được trong môi trường trực tuyến (Internet). Dưới đây là một số chức năng của ứng dụng web đã được phát triển và sử dụng rất nhiều trong những năm gần đây:

  • Mua bán trực tuyến: Amazon, Ebay, 5giay.com, …
  • Mạng xã hội: Facebook, Linkedin
  • Ngân hàng trực tuyến: HSBC, Citibank, Vietinbank Ipay, ….
  • Tìm kiếm: Google, Bing, rongbay.com, …
  • Đấu giá: eBay, Ubid, …
  • Cờ bạc: Betfair, intercasino.com, gambling.com, …
  • Blog: Blogger, blogspot.com, …
  • Webmail (quản lý Email bằng trình duyệt Web): Gmail, Hotmail, Yahoo Mail, …
  • Tương tác thông tin (Interactive information): Wikipedia, Wikileak, ..

Hiện nay, với sự phát triển mạnh mẽ của Internet và các thiết bị di động cầm tay như: laptop, smarphone, tablet, … thì các ứng dụng phải đáp ứng khả năng kết nối di động bằng cách sử dụng trình duyệt web hoặc các ứng dụng riêng trên di động (Android, iOS, Windows Phone, …) sử dụng cơ chế kết nối đến Server dựa trên HTTP/HTTPS thông qua các hàm APIs. Đặc biệt, các ứng dụng trước đây thường chỉ dùng trong hệ thống nội bộ như: ERP, HR, Office, … do chứa các dữ liệu riêng tư, nhạy cảm với công ty, tổ chức thì hiện nay đã phải hỗ trợ kết nối rộng hơn ra khỏi hệ thống mạng nội bộ (Internet, VPN) thông qua các ứng dụng web. Ví dụ:

– Ứng dụng quản lý nhân sự (Human Resources – HR) cho phép người dùng truy cập thông tin bảng lương, cung cấp và nhận lại thông tin hiệu suất và quản lý tuyển dụng và quy trình kỷ luật.
– Phần mềm cộng tác (quản lý hồ sơ, công việc, …) dùng chia sẻ tài liệu, quản lý qui trình công việc và các dự án. Những chức năng này thường sẽ liên quan đến các vấn đề an ninh và quản trị rất quan trọng.
– Các ứng dụng văn phòng như văn bản, bảng tính, … đã chuyển sang ứng dụng web qua các dịch vụ như Google App, Microsoft Office 365,…

+ Các điểm mạnh của các ứng dụng Web

– Sử dụng giao thức HTTP (giao thức truyền thông cốt lõi được sử dụng để truy cập trong World Wide Web) với ưu thế nhẹ, đơn giản và hướng kết nối. HTTP có khả năng phục hồi kết nối trong trường hợp lỗi truyền thông và tránh việc máy chủ phải giữ kết nối mạng để mỗi người sử dụng, như các ứng dụng client/server truyền thống.
– Các trình duyệt web thường sẽ được cài đặt mặc định trên máy tính và thiết bị di động. Các ứng dụng web triển khai giao diện người dùng tự động đến trình duyệt của người dùng mà không cần phân phối, quản lý phần mềm riêng biệt đến người dùng. Khi cần thay đổi, nâng cấp tính năng, giao diện, … các ứng dụng web chỉ cần cấu hình trên máy chủ và có có hiệu lực ngay đến người dùng khi kết nối.
– Các trình duyệt web hiện nay hỗ trợ nhiều tính năng hướng người dùng cao, giao diện, tính năng có thể thay đổi theo ý người dùng. Ngoài ra, các trình duyệt hỗ trợ công cụ, tiện ích đi theo như: dịch từ điển, tải nhạc, tải phim, đa ngôn ngữ, …
– Các công nghệ nền và các ngôn ngữ phát triển các ứng dụng web tương đối đơn giản. Rất nhiều các nền tảng và công cụ phát triển để tạo điều kiện thuận lợi cho việc phát triển các ứng dụng web cho các đối tượng khác nhau như: người mới học, không chuyên về CNTT, … Ví dụ: bạn không là người học chuyên về CNTT chỉ cần làm theo một vài hướng dẫn là có thể tạo ứng dụng web cá nhân như: Blog, WordPress, … Ngoài ra, các công cụ và tài nguyên mã nguồn mở có sẵn để giúp người phát triển có thể xây dựng, tùy chỉnh các ứng dụng theo ý mình như: Joomla, DotnetNuke, Zope/Plone, …

+ Mô hình hoạt động của ứng dụng web

Thông thường mô hình của ứng dụng web theo mô hình 03 lớp. Lớp đầu tiên là trình duyệt web hoặc giao diện người dùng dạng Winform, lớp thứ hai là công cụ sử dụng công nghệ tạo ra các nội dung động như Java servlets (JSP) hoặc Active Server Pages (ASP), và lớp thứ ba là cơ sở dữ liệu có chứa nội dung (như tin tức, sản phẩm) và dữ liệu khách hàng (ví dụ như tên người dùng và mật khẩu, thông tin cá nhân, …)


Hình 1.1 Mô hình hoạt động ứng dụng web

Hình 1.2 (bên dưới) sẽ thể hiện chi tiết hơn quá trình từ lúc yêu cầu ban đầu được kích hoạt bởi người sử dụng thông qua trình duyệt trên Internet cho các máy chủ ứng dụng web, tiếp theo các ứng dụng web truy xuất đến máy chủ cơ sở dữ liệu để thực hiện các nhiệm vụ được yêu cầu như: thêm mới, cập nhật, lấy các thông tin trong cơ sở dữ liệu. Các ứng dụng web sau đó chuyển thông tin về đến trình duyệt web để cung cấp cho người dùng.


Hình 1.2 Mô hình chi tiết hoạt động ứng dụng web

1.2 Vấn đề bảo mật các ứng dụng Web

Khi các công nghệ mới được phát triển và ứng dụng mạnh mẽ như các ứng dụng web hiện nay, thì theo khách quan đi cùng với điều này sẽ là hàng loạt các lỗ hổng bảo mật mới ra đời. Đa số các cuộc tấn công nghiêm trọng vào các ứng dụng web là làm lộ thông tin, dữ liệu nhạy cảm hoặc truy cập không hạn chế với các hệ thống mà các ứng dụng đang hoạt động.

Đối với nhiều tổ chức một cuộc tấn công gây ngừng hoạt động hệ thống là một vấn đề nghiêm trọng. Các tấn công từ chối dịch vụ ở cấp độ ứng dụng có thể được sử dụng để đạt được mục tiêu gây cạn kiệt nguồn tài nguyên tương tự như cuộc tấn công đối với cơ sở hạ tầng. Tuy nhiên, các tấn công này thường được sử dụng tinh vi hơn về kỹ thuật và mục tiêu tấn công. Tấn công từ chối dịch vụ ở cấp độ ứng dụng có thể được sử dụng để gây hại người dùng hoặc dịch vụ cụ thể để đạt được một lợi thế cạnh tranh so với các đối thủ trong các lĩnh vực kinh doanh tài chính, game online, đấu giá, mua vé trực tuyến. Theo đánh giá của Gartner (công ty uy tính hàng đầu thế giới về đánh giá công nghệ) thì hơn 25% các cuộc tấn công dạng từ chối dịch vụ (DoS, DdoS) trong năm 2013 là nhằm vào các ứng dụng. Đặc biệt, trong sáu tháng cuối năm 2012, đã có nhiều cuộc tấn công DdoS vào các Ngân hàng của Mỹ và sẽ tiếp tục trong năm 2013.


Hình 1.3 đánh giá của Gartner cuộc tấn công dạng từ chối dịch vụ đối với các ứng dụng trong năm 2013

Tuy nhiên, một nhận thức sai lầm phổ biến cho rằng vấn đề bảo mật cho các ứng dụng web là an toàn. Chỉ cần chúng ta duyệt qua một số trang web mua bán hàng trực tuyến, vào trang “những câu hỏi thường gặp” (FAQ), chúng ta sẽ rất yên tâm rằng trang web này an toàn. Vì hầu hết các ứng dụng web này công bố an toàn bởi vì họ sử dụng SSL. Ví dụ: “Hệ thống thanh toán của Zalora.vn đã được mã hóa với mã bảo mật 128-bit SSL và được chứng nhận bởi VeriSign. Quý khách có thể thấy giao dịch an toàn qua biểu tượng Ổ khóa ở phía dưới trình duyệt. Chúng tôi không giữ lại thông tin thẻ tín dụng của quý khách sau khi giao dịch hoàn tất. Thông tin thẻ của quý khách sẽ được chuyển trực tiếp đến ngân hàng của chúng tôi. Quý khách có thể tin tưởng rằng với mỗi lần mua hàng, thông tin thẻ hoặc tài khoản ngân hàng của quý khách được bảo mật” theo trang bán hàng trực tuyến của Công ty TNHH Một Thành Viên Giờ Giải Lao Bán Lẻ & Giao Nhận

Trong thực tế, phần lớn các ứng dụng web là không an toàn, mặc dù đã sử dụng rộng rãi công nghệ bảo mật SSL và tuân thủ qui trình, tiêu chuẩn PCI (Payment Card Industry - chuẩn công nghiệp của thẻ thanh toán). Các điểm yếu hay lỗ hổng nghiêm trọng của các ứng dụng web thường bắt nguồn từ việc viết mã (coding) không đúng phương pháp hay qui trình phát triển ứng dụng không an toàn sẽ cho phép tin tặc (hacker) truy cập trực tiếp và khai thác cơ sở dữ liệu để lấy dữ liệu nhạy cảm.

Các công ty sử dụng các ứng dụng web có cơ sở dữ liệu chứa thông tin có giá trị (thông tin cá nhân, tài chính, kế hoạch kinh doanh) là mục tiêu tấn công thường xuyên của hacker. Mặc dù, hành vi phá hoại website như defacing, ghi điểm khi tấn công các trang web của công ty (http://www.zone-h.org) vẫn còn phổ biến, nhưng hacker chuyên nghiệp ngày nay thích truy cập vào các dữ liệu nhạy cảm trên máy chủ cơ sở dữ liệu vì sau đó sẽ bán dữ liệu để lấy tiền.

Trong mô hình 1.4 đã mô tả việc hacker có thể dễ dàng, nhanh chóng truy cập dữ liệu trong cơ sở dữ liệu thông qua một loạt các kỹ thuật tấn công với một ít may mắn do sơ suất trong sử dụng, cấu hình của người quản trị, lập trình dẫn đến lỗ hổng trong các ứng dụng web.


Hình 1.4 Mô hình chi tiết các bước tấn công vào ứng dụng web

Như đã đề cập ở trên, các trang web phụ thuộc vào cơ sở dữ liệu để cung cấp các thông tin cần thiết đến người dùng. Nếu các ứng dụng web không an toàn, thì toàn bộ cơ sở dữ liệu chứa thông tin nhạy cảm có rủi ro nghiêm trọng. Ngoài ra, một số hacker có thể đưa mã độc hại vào trong các ứng dụng web có lổ hổng bảo mật để lừa người dùng chuyển hướng đến các trang web lừa đảo. Kỹ thuật này được gọi là Cross-Site Scripting và có thể được sử dụng ngay cả khi các máy chủ web và cơ sở dữ liệu chứa không có lỗ hỏng bảo mật.

Như vậy vấn đề cốt lõi trong bảo mật ứng dụng web liên quan đến việc người dùng có thể nhập, tùy biến dữ liệu đầu vào bất kỳ. Các ứng dụng web cũng như các ứng dụng phân tán khác đều phải đối mặt với một vấn đề căn bản và cần phải giải quyết tốt đó là các kết nối từ phía client thường ngoài tầm kiểm soát của ứng dụng web, người dùng có nhập hay tùy biến dữ liệu đầu vào bất kỳ để chuyển về cho ứng dụng web xử lý. Do đó, để đảm bảo an toàn thì các ứng web phải giả định rằng các dữ liệu đầu vào có thể nguy cơ là mã độc và có các bước kiểm tra chắc chắn rằng hacker không thể thay thế hay chèn dữ liệu đầu vào một cách thủ công để gây hại cho các ứng dụng web bằng cách can thiệp vào tính logic, cách thức hoạt động của các ứng dụng web, từ đó có thể truy cập trái phép vào chức năng và dữ liệu ứng dụng web.

Vấn đề cốt lõi trong bảo mật ứng dụng web nêu trên được mô tả cụ thể qua các trường hợp sau:

– Người dùng có thể can thiệp vào bất kỳ phần dữ liệu được truyền giữa client và server, bao gồm các thông số gởi đi, cookies, và HTTP Header. Do đó, bất kỳ các kiểm soát bảo mật thực hiện trên client có thể dễ dàng bị vượt qua như chức năng kiểm tra xác nhận dữ liệu đầu vào. Ví dụ: người dùng có thể thay đổi thông tin HTTP header gởi về server. Các công cụ nảy rất nhiều và có các chức năng gắn thêm vào ngay trình duyệt người dùng như Modify Headers, Headertool, …



Hình 1.5 Giao diện trang web vietnamnet.vn khi vào máy tính để bàn



Hình 1.6 thay đổi HTTP Header thành thiết bị di động IPAD.



Hình 1.7 giao diện trang web vietnamnet.vn sau khi thay đổi

Kết quả giao diện khi vào cùng trang vietnamnet.vn nhưng ứng dụng web bây giờ đã nhận sai là kết nối từ thiết bị di động nên giao diện hiển thị trên màn hình là dành cho thiết bị di động.

– Người dùng có thể gửi yêu cầu theo thứ tự bất kỳ và có thể gửi các thông số tại một giai đoạn nhiều hơn một lần, hoặc không gì cả khác với những gì dự kiến theo trật tự, qui luật của ứng dụng web. Điều này có nghĩa là các giả định của nhà phát triển ứng dụng về cách người dùng sẽ tương tác với các ứng dụng sẽ không đúng. Ví dụ: một ứng web về quản lý nhân sự cho phép người dùng nhập thông tin nhân sự vào hệ thống. Khi tạo mới người dùng phần mềm kiểm tra có nhập trùng hay không? Nếu nhập trùng sẽ thông báo xác nhận và lưu thông tin hình ảnh tương ứng. Tuy nhiên, việc kiểm soát lại không kiểm tra lúc người nhập thay đổi thông tin nhân sự đã có và cố tình nhập trùng với nhân sự khác, thay đổi hình ảnh nhân sự đó. Kết quả hệ thống lưu 02 nhân sự giống nhau, khác nhau vệ hình ảnh. Đây là điều mà các nhà phát triển ứng dụng không nghĩ đến khi phát triển.

– Người sử dụng không bị giới hạn chỉ sử dụng một trình duyệt web để truy cập ứng dụng. Có rất nhiều công cụ được phổ biến rộng rãi để tấn công các ứng dụng web. Những công cụ này có thể thực hiện yêu cầu đến ứng dụng web mà không cần trình duyệt và có thể tạo ra số lượng lớn các yêu cầu rất nhanh để dò tìm và khai thác lổ hỏng như: W3AF framework, Appscan, Acunetix Web Scanner…

1.3 Danh sách rủi ro bảo mật cho các ứng dụng web OWASP Top 10


OWASP  là viết tắt của The Open Web Application Security Project (dự án mở về bảo mật ứng dụng Web), dự án là một sự cố gắng chung của cộng đồng giúp các tổ chức có thể phát triển, mua hoặc bảo trì các ứng dụng an toàn.

OWASP là một mô hình tổ chức mới. Việc không bị thương mại hóa ảnh hưởng giúp OWASP đưa ra những thông tin chính xác, không thiên vị và có giá trị về an toàn ứng dụng. OWASP không liên kết với bất kì công ty kỹ thuật nào, dù OWASP hỗ trợ về các mặt kỹ thuật trong an toàn thông tin ứng dụng. Cũng giống như những dự án phần mềm mã nguồn mở, OWASP tạo ra rất nhiều sản phẩm bằng sự hợp tác của cộng đồng. Nến tảng của OWASP là một tổ chức phi lợi nhuận và đảm bảo sự thành công lâu dài của dự án. Hầu hết thành phần của tổ chức là tình nguyện viên bao gồm Ban Quản Trị, Ban Điều Hành toàn cầu, lãnh đạo các chi nhánh, lãnh đạo các dự án và thành viên dự án. OWASP hỗ trợ sự sáng tạo trong nghiên cứu an toàn thông tin bằng các khoản trợ cấp và cơ sở hạ tầng.

OWASP cung cấp miễn phí và tính mở để phát triển các nội dung:

  • Công cụ và các tiêu chuẩn về an toàn các ứng dụng.
  • Sách về kiểm tra bảo mật ứng dụng, lập trình an toàn và các bài viết về kiểm định mã nguồn an toàn.
  • Thư viện và các tiêu chuẩn kiểm soát anh ninh ứng dụng.
  • Các chi nhánh của hội ở khắp nơi trên thế giới.
  • Những nghiên cứu mới nhất.
  • Những buổi hội thảo toàn cầu.
  • Địa chỉ thư liên lạc chung
  • Và nhiều nội dung khác

OWASP Top 10 2013 đánh dấu 11 năm hoạt động tuyên truyền về sự quan trọng của bảo mật thông tin cho các ứng dụng. WASP Top 10 xuất hiện đầu tiên vào năm 2003, được sửa đổi vài điểm nhỏ trong những năm 2004 và 2007, đến nay là phiên bản 2013. Mục tiêu chính của OWASP Top 10 là để hướng dẫn người lập trình viên, người thiết kế, kỹ sư, quản lí và cả tổ chức về hậu quả của những điểm yếu quan trọng nhất trong ứng dụng web. Top 10 cung cấp những kỹ năng cơ bản để bảo chống lại các rủi ro và hướng dẫn để xử lý.

A1 – Lỗi nhúng mã Xảy ra trong các ứng dụng như SQL, LDAP khi những dữ liệu không xác thực được gửi tới hệ thống biên dịch như một phần của mã lệnh. Những dữ liệu này của kẻ tấn công có thể lừa hệ thống biên dịch thực hiện những mã lệnh độc hại hoặc giúp kẻ tấn công xâm nhập đến những dữ liệu quan trọng một cách trái phép
A2 – Lỗi xác thực và quản lý phiên làm việc Những đoạn chương trình kiểm tra danh tính và quản lý phiên làm việc của người sử dụng thường hay được làm qua loa không đúng cách. Điều này giúp kẻ thâm nhập có thể ăn cắp mật mã, khóa, mã của các phiên làm việc {session token} hoặc tận dụng những lỗi khác để giả mạo danh tính các người dùng khác
A3 – Thực thi mã script xấu (XSS) Xảy ra khi một ứng dụng tiếp nhận những dữ liệu không đáng tin cậy và gửi nhúng đến cho trình duyệt web mà không qua xử lý và kiểm duyệt. XSS cho phép kẻ tấn công thực hiện mã độc trên trình duyệt của người bị tấn công và lợi dụng ăn cắp phiên truy cập để mạo danh hoặc hủy hoại trang web hoặc lừa người sử dụng đến những trang web chứa mã độc khác.
A4 – Đối tượng tham chiếu trực tiếp không an toàn Xảy ra khi người phát triển để lộ một tham chiếu đến những đối tượng trong hệ thống như các tập tin, thư mục hay khóa dữ liệu. Nếu chúng ta không có một hệ thống kiểm tra truy cập, kẻ tấn công có thể lợi dụng những tham chiếu này để truy cập dữ liệu một cách trái phép..
A5 – Sai sót cấu hình bảo mật Một cơ chế an ninh tốt cần phải định nghĩa những hiệu chỉnh về an ninh và triển khai nó cho các ứng dụng, máy chủ ứng dụng, máy chủ web, máy chủ dữ liệu và các ứng dụng nền tảng. Tất cả những thiết lập nên được định nghĩa, thực hiện và bảo trì bởi vì rất nhiều hệ thống không được triển khai với thiết lập an toàn mặc định. Các hiệu chỉnh cũng bao gồm cập nhật phần mềm và những thư viện được sử dụng bởi ứng dụng.
A6 – Phơi bày các dữ liệu nhạy cảm Nhiều ứng dụng web không bảo vệ dữ liệu nhạy cảm như thẻ tín dụng, mã số thuế và những mã xác thực bí mật bằng các phương thức mã hóa hay băm (hashing). Kẻ tấn công có thể ăn cắp hay thay đổi những dữ liệu hạy cảm này và tiến hành hành vi trộm cắp, gian lận thẻ tín dụng, v.v..
A7 – Thiếu chức năng điều khiển truy cập Gần như tất cả các ứng dụng web kiểm tra quyền truy cập cấp độ chức năng trước khi thực hiện chức năng mà có thể nhìn thấy trong giao diện người dùng. Tuy nhiên, các ứng dụng cần phải thực hiện kiểm tra kiểm soát truy cập tương tự trên máy chủ khi mỗi chức năng được truy cập. Nếu yêu cầu không được xác nhận, kẻ tấn công sẽ có thể giả mạo yêu cầu để truy cập vào chức năng trái phép
A8 – Giả mạo yêu cầu (CSRF) Kiểu tấn công này ép buộc trình duyệt web của một người dùng đã đăng nhập gửi những yêu cầu các HTTP giả bao gồm cookie của phiên truy cập và những thông tin tự động khác bao gồm thông tin đăng nhập đến một ứng dụng web. Điều này, cho phép kẻ tấn công buộc trình duyệt web tạo ra những yêu cầu đến ứng dụng web mà ứng dụng không thể biết đây là những yêu cầu giả mạo của kẻ tấn công.
A9 – Sử dụng thành phần đã tồn tại lỗ hổng Các lổ hỏng có thể có trong các thành phần (thành phần phát triển ứng dụng) như các thư viện, các framework, và mô-đun phần mềm khác. Các thành phần này gần như luôn luôn chạy với quyền cao nhất trong hệ thống. Vì vậy, nếu bị khai thác, Các thành phần này có thể gây mất dữ liệu nghiêm trọng. Các ứng dụng sử dụng các thành phần tồn tại lổ hỏng có thể làm suy yếu phòng thủ của hệ thống, cho phép một loạt các cuộc tấn công và ảnh hưởng đến hệ thống
A10 – Chuyển hướng và chuyển tiếp thiếu kiểm tra Ứng dụng web thường chuyển hướng, chuyển tiếp người dùng đến những trang web, website khác và sử dụng những thông tin thiếu tin cậy để xác định trang đích đến. Nếu không được kiểm tra một cách cẩn thận, kẻ tấn công có thể lợi dụng để chuyển hướng nạn nhân đến các trang web lừa đảo hay trang web chứa phần mềm độc hại, hoặc chuyển tiếp để truy cập các trang trái phép.

1.4 Các giải pháp nhận dạng tấn công tấn công website

1.4.1 Sự phát triển của nhận dạng tấn công ứng dụng web

Hệ thống phát hiện xâm nhập (IDS) đã được sử dụng trong nhiều năm. Mục đích của nó là để phát hiện các cuộc tấn công bằng cách giám sát lưu lượng mạng hoặc sự kiện phát sinh của hệ điều hành. Sau đó hệ thống phát hiện xâm nhập đã nâng cấp thêm tính năng là phòng chống xâm nhập nhằm ngăn chặn các xâm nhập trái phép.

Hiện nay, khi đề cập đến phát hiện xâm nhập thì đa số người dùng nghĩ đến một hệ thống phát hiện xâm nhập mạng (NIDS). Một NIDS hoạt động ở mức TCP/IP và được sử dụng để phát hiện các cuộc tấn công dịch vụ mạng, bao gồm các máy chủ web. Hệ thống IDS được triển khai phổ biến và rộng rãi với mục đích là giám sát các gói tin trên mạng để phát hiện gói tin nguy hiểm.

Ngoài ra, hệ thống phát hiện xâm nhập dựa trên máy chủ (HIDSs) làm việc ở cấp độ máy chủ. Mặc dù HIDS có thể phân tích lưu lượng mạng (chỉ có lưu lượng truy cập mà đến với máy chủ duy nhất) nhưng công việc này thường là của NIDSs. HIDS chủ yếu giám sát đến các sự kiện diễn ra trên các máy chủ (ví dụ như người dùng đăng nhập vào và ra và thực hiện lệnh) và các thông báo lỗi hệ thống được tạo ra. Một HIDS có thể đơn giản như một đoạn script kiểm tra thông tin tin đăng nhập phát sinh các thông báo lỗi. Một số HIDS phức tạp hơn sử dụng giám sát cuộc gọi hệ thống trên một mức độ nhân hệ điều hành để phát hiện các tiến trình lạ, không an toàn.

Việc sử dụng một phương pháp để phát hiện xâm nhập là không hiệu quả. Do đó, hệ thống quản lý an ninh thông tin (SIM) được thiết kế để quản lý các sự kiện bảo mật được thống kê từ các điểm kiểm tra, nơi mà có thể giám sát các lưu lượng truy cập mạng, các sự kiện hệ điều hành hoặc bất kỳ thông tin an ninh thông tin khác có liên quan.

Nhiều loại NIDS được phát triển, trong đó có NIDS nhằm phát hiện xâm nhập cho các ứng dụng web. Mặc dù, NIDS cho các ứng dụng web được thiết kế để giải quyết tốt vấn đề trợ giúp phát hiện xâm nhập ứng dụng web. Tuy nhiên, các NIDS này không thể thực hiện đầy đủ phát hiện các xâm nhập tiềm năng với các ứng dụng web vì những lý do sau đây:

• NIDSs được thiết kế để làm việc với giao thức TCP/IP. Web lại dựa trên giao thức HTTP, là một nội dung hoàn toàn mới với các vấn đề và thách thức riêng đối với giao thức TCP/IP.

• Vấn đề thực sự là các ứng dụng web không phải đơn giản là sử dụng giao thức HTTP. Thay vào đó, HTTP chỉ được sử dụng để thực hiện trao đổi dữ liệu của các ứng dụng cụ thể. Có thể xem như mỗi ứng dụng được xây dựng giao thức riêng của mình trên đầu trang của HTTP.

• Nhiều giao thức mới được triển khai trên HTTP (dịch vụ Web, XML-RPC, và SOAP) làm tăng mức độ phức tạp ứng dụng web lên.

• Các vấn đề khác, như sự bất lực của NIDS để giám sát dữ liệu đi qua kênh mã hóa SSL (hầu hết các ứng dụng web sử dụng để đảm bảo an toàn) và không có khả năng để đối phó với một số lượng lớn lưu lượng truy cập web.

Các nhà cung cấp của NIDSs đã phát triển các chức năng mở rộng để chống lại những thách thức trên như khả năng hiểu HTTP tốt hơn (như dữ liệu chuyển qua lại giữa người dùng và ứng dụng web). Các bức tường lửa chuyên sâu có thể kiểm tra ở mức độ cao hơn.

Cuối cùng, một loại IDS đã ra đời đó là tường lửa ứng dụng web (WAF). WAF còn được gọi là các cổng ứng dụng web, được thiết kế đặc biệt để bảo vệ các ứng dụng web. Các yêu cầu kết nối thay vì đi trực tiếp đến các ứng dụng web thì sẽ được đưa đến một WAF kiểm tra và kết nối nếu WAF cho rằng yêu cầu này an toàn.



Nhận dạng tấn công ứng dụng web

WAF được thiết kế hoàn toàn để đối phó với các cuộc tấn công vào ứng dụng web và phù hợp nhất cho mục đích phát hiện và ngăn chặn tấn công ứng dụng web. NIDS phù hợp cho các giám sát ở cấp độ mạng và không thể thay thế cho mục đích đó.

Nguồn: Huỳnh Hoàng Tân - Tường lửa cho ứng dụng web
Comments