Các kỹ thuật tấn công vƣợt qua Tƣờng lửa ứng dụng web

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu cải tiến tập luật trong hệ thống giám sát an ninh mạng 04 (Trang 46 - 51)

2.2.1 Tƣờng lửa ứng dụng web là gì?

Theo báo cáo hàng năm của hãng Imperva cho biết xu hƣớng tấn công vào ứng dụng Web trong những năm gần đây đang có dấu hiện gia tăng. Cụ thể là trong báo cáo năm 2014 của hãng này cho biết lƣu lƣợng tấn công nguy hiểm vào ứng dụng Web có dấu hiệu tăng đáng kể trong năm 2014 với các tấn công Tiêm mã SQL tăng 10% và gia tăng 44% các cuộc tấn công đƣợc ghi nhận so với cùng kỳ năm trƣớc. Trong đó có 48,1% các cuộc tấn công này nhằm vào các trang Web bán hàng, 10% nhằm vào các tổ chức tài chính. Dựa trên những thống kê nhƣ vậy, yêu cầu cấp thiết đặt ra cho những ngƣời quản trị hệ thống phải có một cơ chế phịng thủ theo chiều sâu cùng với các thiết bị phần cứng hoặc phần mềm nhằm bảo mật cho ứng dụng Web và hạn chế tối đa những thiệt hại do các tấn công này mang lại. [12].

Tƣờng lửa ứng dụng web (WAF) là tƣờng lửa ứng dụng web thực hiện nhiệm vụ phát hiện và ngăn chặn các tấn công web. WAF là một thiết bị phần cứng hoặc

phần mềm hoạt động tại tầng 7 trong mơ hình OSI (Open Systems Interconnection) thực hiện theo dõi, giám sát thơng tin đƣợc truyền qua giữa trình duyệt của ngƣời dùng và Web Server thông qua giao thức HTTP hoặc HTTPS. WAF đƣợc thiết kế để phát hiện và phịng chống một lƣợng lớn các tấn cơng vào ứng dụng web, cũng nhƣ đƣa ra các giải pháp khắc phục khi xảy ra sự cố. Bên cạnh đó cơ chế hoạt động của WAF dựa trên các mẫu tấn cơng có sẵn và so sánh với các dữ liệu mà nó thu thập đƣợc để đƣa ra cảnh báo.

Tùy thuộc vào hệ thống mạng hoặc kiến trúc mạng, có thể phân biết WAF theo các công nghệ sau:

 Passive divices (giống IDS)

 Active divices (giống proxy)

 Plug-in/module trong web hoặc ứng dụng máy chủ

 Plugin-in/module trong ứng dụng

2.2.2 Một số phƣơng pháp tấn công vƣợt các thiết bị Tƣờng lửa ứng dụng web

Dựa trên các thành phần của cấu trúc Web đặc biệt là Web Server mà kẻ tấn công sử dụng các dạng tấn công sau nhằm mục đích vƣợt qua các tƣờng lửa ứng dụng Web.

Với các kỹ thuật tấn công Tiêm mã SQL kẻ tấn công dựa vào cách thiết kế của ứng dụng Web cho phép ngƣời dùng chèn ký tự có chủ đích vào sau câu lệnh. Phƣơng pháp này là phƣơng pháp cổ điển đã đƣợc sử dụng từ rất lâu, và đƣợc biến hóa tùy vào các thuộc tính của cơ sở dữ liệu để từ đó có thể thực thi các lệnh truy vấn vào cơ sở dữ liệu. Một số dạng ký tự chèn vào sau câu lệnh phổ biến nhƣ: /**/, //, #, -+, ;%00. Dƣới đây là một số phƣơng pháp sử dụng để bỏ qua sự phát hiện của WAF mà các kẻ tấn công hay sử dụng.

Case changing: Trƣờng hợp này đƣợc áp dụng khi có một số tƣờng lửa ứng

dụng Web chỉ lọc các ký tự chữ thƣờng mà không lọc các ký tự chữ hoa. VD:

id=1+UnIoN/**/SeLeCT, hoặc với XSS -> AlErt(1) hay <ScRipt>

Alert(Aaa)<ScrItp/>.

Inline Comment: Một số tƣờng lửa ứng dụng Web chỉ lọc các từ khóa dạng

nhƣ ―/union\sselect/ig‖ thì kẻ tấn cơng có thể sử dụng cách inline comment để chia các từ khóa đó ra thành nhiều phần nhỏ hơn nhằm vƣợt qua bộ lọc của tƣờng lửa: VD:

id=1/*!UnIoN*/SeLeCT. Phƣơng pháp này đƣợc kẻ tấn công sử dụng thông qua trạng

thái của SQL, nếu từ khóa ―table_name‖ hoặc ―information_schema‖ bị lọc thì kẻ tấn cơng có thể thêm các inline comment có thể để thực hiện vƣợt qua tƣờng lửa. VD: Giả sử tổ hợp các từ khóa sau đây bị lọc: union, where, table_name, table_schema, =, and information_schema. Kẻ tấn cơng có thể dùng phƣơng pháp inline comment sau để thực hiện vƣợt qua bộ lọc nhƣ sau:

/*information_schema*/,tables/*!WHERE*/+/*!TaBlE_ScHeMa*/+like+database()- -

. Hoặc một dạng khác của inline comment:

id=1+UnIoN/*&a=*/SeLeCT/*&a=*/1,2,3,database()-- -

Phần lớn các sản phẩm tƣờng lửa ứng dụng Web đƣợc viết bằng ngôn ngữ C nên đối với tấn cơng Tràn bộ đệm thì điều này khiến cho khả năng xử lý chƣơng trình thể bị tràn khi xử lý một lƣợng dữ liệu đầu vào lớn. VD: id=1 and (select 1)=(Select

0xAA 1000 more

A‟s)+UnIoN+SeLeCT+1,2,version(),4,5,database(),user(),8,9,10,11,12,13,14,15,16,1 7,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36-+

Replaces keywords: Đối với một số tƣờng lửa ứng dụng Web các bộ lọc sẽ xóa

bỏ các từ khóa đƣợc lọc và thay vào một khoảng trắng. VD: Có một kiểu lọc trong tƣờng lửa ứng dụng Web thay thế từ khóa ―union‖ và ―select‖ bằng một khoảng trắng thì trong trƣờng hợp này kẻ tấn cơng có thể thực hiện vƣợt qua tƣờng lửa ứng dụng Web bằng cách thêm vào giữa các từ này một từ bị lọc để WAF loại bỏ từ này và nối các từ cịn lại với nhau. VD: id=1+UNIunionON+SeLselectECT+1,2,3--. Theo nhƣ ví dụ trên thì từ khóa ―union‖ và ―select‖ sẽ bị thay thế và loại bỏ, dẫn đến truy vấn sẽ là:

UNION+SELECT+1,2,3--.

Mã hóa ký tự (Character encoding): Hầu hết các các tƣờng lửa ứng dụng

Web sẽ thực hiện giải mã và lọc một số ký tự mà kẻ tấn công thƣờng hay sử dụng để thực thi các câu lệnh hoặc đoạn mã bất hợp pháp. Tuy nhiên, một số tƣờng lửa ứng dụng Web chỉ giải mã các giá trị nhập vào một lần duy nhất và sau đó thực hiện lọc ký tự. Do vậy nếu kẻ tấn cơng thực hiện mã hóa các ký nguy hiểm đƣợc chèn vào hai lần thì có thể họ có thể thực hiện tấn công vƣợt qua các tƣờng lửa ứng dụng Web này trong khi ứng dụng sẽ thực hiện giải mã tiếp lần hai khi chạy chƣơng trình. VD:

id=1%252f%252a*/UNION%252f%252a

/SELECT%252f%252a*/1,2,password%252f%252a*/FROM%252f%252a*/Users--+.

Một số ví dụ của đoạn chƣơng trình đƣợc mã hóa hai lần:

Single Quote ' %u0027

%u02b9 %u02bc %u02c8 %u2032 %uff07 %c0%27 %c0%a7 %e0%80%a7 __

White Space: %u0020

%uff00 %c0%20 %c0%a0 %e0%80%a0

Hex encoding: Kẻ tấn cơng có thể sử dụng công cụ chuyển đổi ký tự string

sang ký tự hexa tại đƣờng dẫn http://www.swingnote.com/tools/texttohex.php để thực hiện tấn công vƣợt qua tƣờng lửa ứng dụng Web. VD: %uff41%uff42%uff43='abc' Sử dụng hàm CHAR() để thay thế ký tự ―abc‖ sang ký tự ASCII. Với kỹ thuật mã hóa URL này, kẻ tấn cơng có thể áp dụng cho các tấn cơng mà các tham số truyền vào trên URL để thực hiện các tấn công vƣợt qua tƣờng lửa ứng dụng Web.

Kỹ thuật tấn công vƣợt tƣờng lửa ứng dụng Web nâng cao: Với mỗi loại

tƣờng lửa ứng dụng Web đều có cách xử lý dữ liệu và bộ lọc khác nhau. Do vậy cách tốt nhất để kẻ tấn cơng có thể thực hiện vƣợt tƣờng lửa thành cơng là tìm ra đƣợc cơ chế hoạt động của bộ lọc đang hoạt động nhƣ thế nào. Chẳng hạn tƣờng lửa ứng dụng Web có thể chỉ lọc một từ khóa, hay nhiều từ khóa kết hợp. VD: Nếu từ khóa ―union select‖ bị chặn thì kẻ tấn cơng có thể thực hiện xem từ khóa ―union‖ có bị chặn không? ―id=1+Select+1,2,3—“ , nếu sau khi bỏ ―union‖ mà xảy ra lỗi là ―Error at line 1 near \‖\‖+1,2,3—―, thì kẻ tấn có thể nhận thấy từ khóa ―select‖ đã bị lọc và họ có thể chèn các khoảng trắng vào giữa từ khóa nhƣ sau ―sel%0bect+1,2,3‖. Điều quan trọng là kẻ tấn cơng sẽ phải tìm hiểu và kiểm tra các giá trị bị lọc để từ đó tìm phƣơng pháp để loại bỏ bộ lọc. Ngoài ra kẻ tấn cơng cịn đặc biệt chú ý đến phiên bản của từng hệ quản trị cơ sở dữ liệu, vì đối với các phiên bản khác nhau thì cơ chế xử lý truy vấn sẽ khác nhau.

Khi kẻ tấn công đã thực hiện tất cả các trƣờng hợp ở trên nhƣng vẫn khơng thành cơng thì họ có thể chuyển sang tìm các ký tự bị lọc, bị loại bỏ để đƣa ra cách thức vƣợt qua bộ lọc. Các ký tự kiểm tra có thể là “[;:{}()*&$/|<>?"']”. VD, sau khi

thử tất cả các ký tự, kẻ tấn công thấy đƣợc rằng ký tự ―?‖ bị lọc khi truyền dữ liệu vào và đƣợc thay thế bằng khoảng trắng thì họ có thể dùng từ khóa ―id=1+uni?on+sel?ect+1,2,3--+‖ để vƣợt qua bộ lọc. Trong trƣờng hợp này từ khóa ―UNunionION+SELselectECT‖ khơng sử dụng đƣợc bởi vì từ khóa ―union‖và ―select‖ không bị thay thế bằng khoảng trắng và chỉ có ký tự mới bị thay thế bằng khoảng trắng. Khi kẻ tấn cơng tìm ra đƣợc ký tự bị lọc đƣợc thay thế bằng khoảng trắng thì họ sẽ tìm ra đƣợc cách để có thể vƣợt qua bộ lọc đó. Một số từ khóa đƣợc sử dụng để vƣợt qua bộ lọc dựa vào sự khác nhau của hệ quả trị cơ sở dữ liệu cũng nhƣ phiên bản của nó.

id=1+(UnIoN)+(SelECT)+ id=1+(UnIoN+SeLeCT)+

id=1+(UnI)(oN)+(SeL)(EcT)

id=1+‟UnI”On‟+'SeL”ECT‟ <-MySQL only id=1+'UnI'||'on'+SeLeCT' <-MSSQL only

Tổng kết chƣơng II

Chƣơng này chúng tôi đã nêu một số kỹ thuật tấn công vào ứng dụng Web phổ biến, và đồng thời cũng cung cấp một số kỹ thuật tấn công vƣợt qua tƣờng lửa ứng dụng Web nhằm nhận dạng các kỹ thuật tấn cơng này để tối ƣu hóa việc thiết kế tập luật trong chƣơng sau.

Chƣơng III sẽ đề cập đến phƣơng pháp trích chọn các trƣờng thơng tin quan trọng từ nguồn nhật ký hệ thống sẵn có nhƣng chƣa đƣợc định dạng để cập nhật thêm nhật ký hệ thống mới bổ sung cho hệ thống hệ thống giám sát an ninh mạng.

CHƢƠNG III: PHƢƠNG PHÁP TRÍCH XUẤT CÁC TRƢỜNG THƠNG TIN QUAN TRỌNG TỪ NHẬT KÝ HỆ THỐNG

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu cải tiến tập luật trong hệ thống giám sát an ninh mạng 04 (Trang 46 - 51)