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

Báo cáo chủ đề tấn công và phòng chống sql injection

32 2 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Tấn công và phòng chống SQL injection
Tác giả Vũ Thùy Linh
Người hướng dẫn Dương Thúy Hường
Trường học Trường Đại học Công nghệ Thông tin và Truyền Thông Thái Nguyên
Chuyên ngành An toàn Thông tin
Thể loại Báo cáo chủ đề
Năm xuất bản 2023
Thành phố Thái Nguyên
Định dạng
Số trang 32
Dung lượng 2,94 MB

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

Nội dung

Codd xuất bản tháng6 năm 1970 trong tạp chí Communications of the ACM củaHiệp hội ACM[8] , một môhình đã được chấp nhận rộng rãi là mô hình tiêu chuẩndùng cho hệ thống quản lý cơ sở dữ l

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN

THÔNG THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN

-BÁO CÁO Chủ đề :

Trang 2

Thái Nguyên, 2023

Trang 4

CHƯƠNG 1: Tổng quan về SQL injection

1.1 Khái niệm

1.1.1 SQL

Là ngôn ngữ truy vấn mang tính cấu trúc, là một loại ngôn ngữ máy tính phổ biến để tạo, sửa, và lấy dữ liệu từ một hệ quản trị cơ sở dữ liệu quan hệ Ngônngữ này phát triển vượt xa so với mục đích ban đầu là để phục vụ các hệ quản trị

cơ sở dữ liệu đối tượng-quan hệ Nó là một tiêu chuẩn ANSI ISO/

Từ một bài báo tham dự hội thảo khoa học A Relational Model of Data for

Large Share Data Banks (tạm dịch là "Mô hình quan hệ cho dữ liệu dùng trong

ngân hàng dữ liệu chia sẻ có khối lượng lớn") của tiến sĩ Edgar F Codd xuất bản tháng6 năm 1970 trong tạp chí Communications of the ACM củaHiệp hội ACM[8] , một môhình đã được chấp nhận rộng rãi là mô hình tiêu chuẩndùng cho hệ thống quản lý cơ sở dữ liệu quan hệ

Giữa những năm 1970, một nhóm các nhà phát triển tại trung tâmnghiên cứu của IBM tại San Jose phát triển hệ thống cơ sở dữ liệu "Hệ thống R"dựa trên mô hình của Codd Structured English Query Language, viết tắt là

"SEQUEL" (tạm dịch là "Ngôn ngữ truy vấn tiếng Anh có cấu trúc"), được thiết kế

để quản lý và truy lục dữ liệu được lưu trữ trong Hệ thống R Sau này, tên viết tắtSEQUEL được rút gọn thành SQL để tránh việc tranh chấp nhãn hiệu (từSEQUEL đã được một công ty máy bay của UK là Hawker-Siddeley đăng ký).Mặc dù SQL bị ảnh hưởng bởi công trình của tiến sĩ Codd nhưng nó không do tiến

sĩ Codd thiết kế ra Ngôn ngữ SEQUEL được thiết kế bởi Donald D Chamberlin

vàRaymond F Boyce tại IBM, và khái niệm của họ được phổ biến để tăng sự chú ý

Trang 5

IBM bắt đầu phát triển các sản phẩm thương mại bổ sung thêm SQL dựa trênnguyên mẫu Hệ thống R bao gồm System/38 (Hệ thống/38) (được công bố năm

1978 và được thương mại hóa tháng 8 năm 1979, SQL/DS (được giới thiệu vàonăm 1981) và DB2 (năm 1983)

Cùng thời điểm đó Relational Software, Inc (bây giờ là OracleCorporation) đã nhận thấy tiềm năng của những khái niệm được Chamberlin andBoyce đưa ra và đã phát triển phiên bản Hệ quản trị cơ sở dự liệu quan hệ riêngcủa họ cho Navy, CIA và các tổ chức khác Vào mùa hè năm 1979, RelationalSoftware, Inc giới thiệu Oracle V2 (Phiên bản 2), phiên bản thương mại đầu tiên

hỗ trợ SQL cho máy tính VAX Oracle thường xuyên được nhắc tới một cáchkhông nghiêm túc vì đã tấn công thị trường của IBM trong 2 năm, nhưng việctáo bạo nhất trong quan hệ công chúng của họ là tấn công một phiên bản của IBMSystem/38 chỉ trong có vài tuần Tương lai của Oracle đã được đảm bảo vì có sựquan tâm đáng kể của công chúng sau đó mới phát triển, trong khi đã có nhiềuphiên bản của các nhà cung cấp khác

IBM đã quá chậm trong việc phát triển SQL và các sản phẩm quan hệ, có lẽ

vì ban đầu nó không dùng được trong môi trường Unix và máy tính lớn(Mainframe), và họ sợ nó sẽ làm giảm lợi nhuận thu được từ việc bán các sảnphẩm cơ sở dữ liệu IMS (những sản phẩm dựa trên mô hình cơ sở dữ liệu địnhhướng chứ không phải cơ sở dữ liệu quan hệ) của mình Trong lúc đó,Oracle vẫn đang phát triển, IBM đang phát triển System/38, được mong đợi

là hệ cơ sở dữ liệu quan hệ đầu tiên của họ Với năng lực và thiết kế tiên tiến của

nó, người ta cho rằng nó có thể sẽ thay thế cho hệ thống Unix và máy tính lớn.SQL được thừa nhận là tiêu chuẩn của ANSI (American National StandardsInstitute) vào năm 1986 và ISO (International Organization for Standardization)năm 1987 ANSI đã công bố cách phát âm chính thức của SQL là "ess kyoo ell",nhưng rất nhiều các chuyên gia cơ sở dữ liệu nói tiếng Anh vẫn gọi nó là sequel.Một quan niệm sai khác cũng được phổ biến rộng rãi đó là "SQL" là chữ viết tắtcủa "Structured Query Language" (Ngôn ngữ truy vấn có cấu trúc)

Trang 6

1.2 Các lỗi SQL injection thường gặp

1.2.1 Không kiểm tra ký tự thoát truy vấn

Đây là dạng lỗi SQL injection xảy ra khi thiếu đoạn mã kiểm tra dữ liệu đầuvào trong câu truy vấn SQL Kết quả là người dùng cuối có thể thực hiện một sốtruy vấn không mong muốn đối với cơ sở dữ liệu của ứng dụng Dòng mã sau sẽminh họa lỗi này:

statement = "SELECT * FROM users WHERE name = '" + userName + "';"Câu lệnh này được thiết kế để trả về các bản ghi tên người dùng cụ thể từbảng những người dùng Tuy nhiên, nếu biến "userName" được nhập chính xáctheo một cách nào đó bởi người dùng ác ý, nó có thể trở thành một câu truy vấnSQL với mục đích khác hẳn so với mong muốn của tác giả đoạn mã trên

Ví dụ, ta nhập vào giá trị của biến userName như sau:

a' or 't'='t

Khiến câu truy vấn có thể được hiểu như sau:

SELECT * FROM users WHERE name = 'a' or 't'='t';

Nếu đoạn mã trên được sử dụng trong một thủ tục xác thực thì ví dụ trên cóthể được sử dụng để bắt buộc lựa chọn một tên người dùng hợp lệ bởi 't'='t' luônđúng Trong khi hầu hết các SQL server cho phép thực hiện nhiều truy vấn cùnglúc chỉ với một lần gọi, tuy nhiên một số SQL API như mysql_query của php lạikhông cho phép điều đó vì lý do bảo mật Điều này chỉ ngăn cản tin tặc tấn công

Trang 7

bằng cách sử dụng các câu lệnh riêng rẽ mà không ngăn cản tin tặc thay đổi các từtrong cú pháp truy vấn Các giá trị của biến "userName" trong câu truy vấn dướiđây sẽ gây ra việc xoá những người dùng từ bảng người dùng cũng tương tự nhưviệc xóa tất cả các dữ liệu được từ bảng dữ liệu (về bản chất là tiết lộ các thông tincủa mọi người dùng), ví dụ này minh họa bằng một API cho phép thực hiện nhiềutruy vấn cùng lúc:

a';DROP TABLE users; SELECT * FROM data WHERE 't' = 't

Điều này đưa tới cú pháp cuối cùng của câu truy vấn trên như sau:SELECT * FROM users WHERE name = 'a';DROP TABLE users;SELECT * FROM data WHERE 't' = 't';

1.2.2 Xử lý không đúng kiểu

1.2.3 Tường lửa lọc gói

Khi phân loại tường lửa dựa trên phương pháp hoạt động của chúng, loại cơbản nhất là tường lửa lọc gói Loại tường lửa này hoạt động như một điểm kiểm tra

an ninh nội tuyến được gắn vào bộ định tuyến hoặc bộ chuyển mạch Tên củatường lửa cho thấy, nó giám sát lưu lượng mạng bằng cách lọc các gói tin đến theothông tin mà mang theo

Mỗi một gói dữ liệu sẽ bao gồm một tiêu đề và dữ liệu mà nó truyền đi.Loại tường lửa này quyết định một gói tin được cho phép hay bị từ chối truy cậpdựa trên thông tin tiêu đề Để làm như vậy, tường lửa sẽ kiểm tra giao thức, địa chỉ

IP nguồn, IP đích, cổng nguồn và cổng đích Tùy thuộc vào cách các con số khớpvới danh sách kiểm

Trang 8

soát truy cập (quy tắc xác định lưu lượng truy cập mong muốn hoặc khôngmong muốn) mà các gói được truyền hoặc loại bỏ Nếu một gói dữ liệu không phùhợp với tất cả các quy tắc bắt buộc thì nó sẽ không được phép truy cập vào hệthống.

Tường lửa lọc gói là một giải pháp rất nhanh chóng mà không cần nhiều tàinguyên Tuy nhiên, đây không phải là an toàn nhất Mặc dù nó kiểm tra thông tintiêu đề nhưng nó lại không kiểm tra dữ liệu bên trong gói tin đó Phần mềm độchại cũng có thể được tìm thấy trong phần này của gói dữ liệu Do đó, tường lửa lọcgói không phải là lựa chọn tốt nhất để bảo mật hệ thống mạnh mẽ

Loại tường lửa này không kiểm tra dữ liệu thực tế mà chỉ kiểm tra thông tin

về giao dịch Ngoài ra, các cổng cấp mạch rất dễ thiết lập và không yêu cầu máychủ proxy riêng

1.2.3.2 Tường lửa kiểm tra trạng thái

Tường lửa kiểm tra trạng thái theo dõi trạng thái của kết nối bằng cách giámsát quá trình bắt tay 3 bước TCP Điều này cho phép tường lửa theo dõi toàn bộ kếtnối – từ đầu đến cuối – chỉ cho phép lưu lượng trở lại dự kiến vào

Khi bắt đầu kết nối và yêu cầu dữ liệu, việc kiểm tra trạng thái sẽ xây dựng

cơ sở dữ liệu (bảng trạng thái) và lưu trữ thông tin kết nối Trong bảng trạng thái,các thông tin như: IP nguồn, cổng nguồn, IP đích và cổng đích cho mỗi kết nốiđược ghi chú rõ ràng Sử dụng phương pháp kiểm tra trạng thái sẽ tự động tạo racác quy tắc tường lửa để cho phép lưu lượng truy cập dự kiến

Loại tường lửa này được sử dụng làm bảo mật bổ sung Nó thực thi nhiềukiểm tra và an toàn hơn so với các bộ lọc không trạng thái Tuy nhiên, không giốngnhư lọc gói/ không trạng thái, tường lửa trạng thái kiểm tra dữ liệu thực tế được

Trang 9

truyền qua nhiều gói Do đó, chúng cũng yêu cầu nhiều tài nguyên của hệ thốnghơn.

Trang 10

1.2.3.3 Tường lửa proxy

Tường lửa proxy đóng vai trò như một thiết bị trung gian giữa hệ thống bêntrong và bên ngoài giao tiếp qua Internet Nó bảo vệ mạng bằng cách chuyển tiếpcác yêu cầu từ máy khách ban đầu và che nó làm mạng của chính nó Proxy cónghĩa là đóng vai trò thay thế Theo đó, vai trò của tường lửa này chính là làmnhiệm vụ thay thế nó Nó thay người dùng gửi yêu cầu

Khi người dùng gửi yêu cầu truy cập một trang web, thông báo sẽ được giaođến máy chủ proxy Proxy chuyển tiếp tin nhắn đến máy chủ web Làm như vậy sẽ

ẩn nhận dạng và định vị địa lý của người dùng, bảo vệ người dùng khỏi mọi hạnchế và các cuộc tấn công tiềm ẩn Sau đó, máy chủ web phản hồi và cung cấp choproxy thông tin được yêu cầu Cuối cùng thông tin này được chuyển cho máykhách

1.2.3.4 Tường lửa thế hệ tiếp theo (NGFW)

Tường lửa thế hệ tiếp theo là một thiết bị bảo mật kết hợp một số chức năngcủa các loại tường lửa khác Nó kết hợp kiểm tra gói tin, trạng thái và gói tin sâu.Nói một cách đơn giản, tường lửa NGFW kiểm tra tải trọng thực tế của gói tin thay

vì chỉ tập trung vào thông tin tiêu đề

Không giống như các tường lửa truyền thống, tường lửa thế hệ tiếp theokiểm tra toàn bộ giao dịch dữ liệu Những thông tin kiểm tra bao gồm cả quá trìnhbắt tay TCP, cấp độ bề mặt và kiểm tra gói tin sâu Sử dụng NGFW giúp ngườidùng được bảo vệ khỏi các cuộc tấn công của phần mềm độc hại, các mối đe dọabên ngoài và xâm nhập

1.2.3.5 Tường lửa đám mây

Tường lửa đám mây hoặc tường lửa dưới dạng dịch vụ (Faas) là một giảipháp đám mây để bảo vệ hệ thống mạng Giống như các giải pháp đám mây khác,

nó được duy trì và chạy trên Internet bởi các nhà cung cấp bên thứ ba

Khách hàng thường sử dụng tường lửa đám mây làm máy chủ proxy, nhưngcấu hình có thể thay đổi tùy theo nhu cầu riêng của mình Lợi thế chính của họ là

Trang 11

khả năng mở rộng Chúng độc lập với tài nguyên vật lý, cho phép mở rộng dunglượng tường lửa theo tải lưu lượng Các doanh nghiệp sử dụng giải pháp này đểbảo vệ mạng nội bộ hoặc các cơ sở hạ tầng đám mây khác (Iaas / Paas).

Trang 12

1.3 Nguyên lý hoạt động của tường lửa

Tường lửa được đặt ở cấp phần cứng hoặc phần mềm của hệ thống để bảo

vệ nó khỏi lưu lượng độc hại Tùy thuộc vào thiết lập, nó có thể bảo vệ một máyhoặc toàn bộ mạng máy tính Thiết bị kiểm tra lưu lượng đến và đi theo các quy tắcđược xác định trước

Giao tiếp qua Internet được thực hiện bằng cách yêu cầu và truyền dữ liệu

từ người gửi đến người nhận Dữ liệu không thể được gửi đi toàn bộ mà đượcchia thành các gói dữ liệu có thể dễ dàng quản lý Những gói tin được chia nhỏ nàytạo nên thực thể được truyền ban đầu Vai trò của tường lửa là kiểm tra các gói dữliệu di chuyển đến và đi từ máy chủ

Mỗi gói dữ liệu bao gồm một tiêu đề (thông tin điều khiển) và tải trọng (dữliệu thực tế) Tiêu đề cung cấp thông tin về người gửi và người nhận Trước khi góitin có thể xâm nhập vào mạng nội bộ thông qua cổng được xác định thì phải vượtqua tường lửa Việc gói tin có được nhận hay không phụ thuộc vào thông tin mà nómang theo có tương ứng với các quy tắc được xác định trước hay không

Ví dụ tường lửa có thể có quy tắc loại trừ lưu lượng truy cập đến từ một địachỉ IP được chỉ định sẵn Nếu nó nhận được các gói dữ liệu có địa chỉ IP đó trongtiêu đề, thì tường lửa sẽ từ chối quyền truy cập Tương tự, tường lửa có thể từ chốiquyền truy cập của bất kỳ ai ngoại trừ các nguồn đáng tin cậy đã xác định từ trước

Có nhiều cách để cấu hình và tạo các quy tắc trên thiết bị bảo mật này

CHƯƠNG 2: TỔNG QUAN VỀ BẢO MẬT MẠNG LAN

2.1 Tổng quan về mạng LAN

Mạng LAN (viết tắt của Local Area Network - mạng cục bộ) là một hệthống gồm các thiết bị như máy tính, smartphone, tablet, máy in,… Các thiết bịnày được kết nối và chia sẻ thông tin, dữ liệu với nhau trong một không gian giớihạn thông qua hệ thống mạng không dây (wifi) hoặc các sợi cáp mạng (cable).Mạng LAN thường được sử dụng để kết nối các máy tính với các máy tính

ở trong gia đình, trong một phòng game hoặc một tòa nhà hay cơ quan tổ chức Cự

Trang 13

ly dùng mạng LAN có thể giới hạn ở trong phạm vi 100m Những máy tính có cự

ly xa sẽ

Trang 14

sử dụng mạng internet để dễ dàng trao đổi thông tin Loại mạng này chỉ phùhợp để kết nối các thiết bị trong các không gian nhỏ như trường học, doanh nghiệp,nhà ở,… Do đó, nó được xem như một loại mạng nội bộ.

Ngoài ra, khái niệm wifi rất quen thuộc với chúng ta Các thiết bị được kếtnối với nhau thông qua wifi sẽ được gọi là hệ thống mạng LANkhông dây – WLAN (Wireless Local Area Network)

Minh họa một mô hình mạng LAN

2.2 Những quy tắc bảo mật mạng LAN quan trọng

2.2.1 Sao lưu dữ liệu giá trị

Khi bật máy tính lên để sử dụng, thì khả năng mất dữ liệu sẽ luôn luôn tiềm

ẩn Thậm chí ngay cả khi bạn không kết nối với mạng internet thì khả năng mất dữliệu vẫn có thể xảy ra Ổ cứng bị lỗi là một khả năng có thể gây nên việc mất dữliệu Hoặc bạn có thể vô tình xoá mất file dữ liệu quan trọng Vậy nên, đầu tiên làbạn cần sao lưu dữ liệu, dùng CD, DVD, ổ cứng hay trên các phương tiện lưu trữkhác

Trang 15

2.2.2 Cài và cập nhật đều đặn phần mềm diệt virus

Trang 16

Windows sẽẽ cài nhi u file, chềề ương trình và d ch vị ụ không c n thi t màầề ềế

không th ể g ỡ b ỏ bằềng Add/Remove Programs trong Control Panel Những file không đ ủ xác thực vềề tính an toàn này ti m ềề ẩn nhi u nhềềng nguy c ơ mầết s ự b oảmật, t o cạ ơ s ở cho những k đẻ ột nhập khai thác

Bạn c ng nên gũ ỡ b ỏ 1 sốế chương trình không c n thi t nhầề ềế ư games,… Để

tránh nh ng r i ro và c ng là ữ ủ ũ đ ể thúc đẩy t c ốế đ ộ cho h đ ệ iềều hành, bạn ch ỉnên

cài nh ng gì c n thi t ữ ầề ềế Đ ể g ỡ b ỏ những ch ng trình này, b n có thươ ạ ể s ử dụng

những công c ụ chuyên dụng nh xplite c a LitePC, hay nLite c a Nuhiư ủ ủ(freeware)

2.2.3 Gỡ bỏ những file, chương trình và dịch vụ không cần thiết

Windows sẽẽ cài nhi u file, chềề ương trình và d ch vị ụ không c n thi t màầề ềế

không th ể g ỡ b ỏ bằềng Add/Remove Programs trong Control Panel Những file không đ ủ xác thực vềề tính an toàn này ti m n r t nhi u nhềề ẩ ầế ềềng nguy c ơ mầết sự

bảo m t, t o cậ ạ ơ s ở cho những k đẻ ột nhập khai thác

Bạn c ng nên gũ ỡ b ỏ 1 sốế chương trình không c n thi t đầề ềế ể tránh những r iủ

ro Điều đó cũng thúc đẩy tốc độ của hệ điều hành lên rất nhiều Đ ể g ỡ b ỏ nhữngchương trình này, b n có thạ ể s ử dụng nh ng công c ữ ụ chuyên dụng nh xpliteưcủa LitePC, hay nLite của Nuhi (freeware)

2.2.4 Cập nhật hệ điều hành

Đ ộ bảo m t không ậ được b o vả ệ k lỹẽ ưỡ ng thì k ẻ tầế n công sẽẽ ềẽ dàng tiềếd pcận được Vì vậy Windows thường có nh ng ữ đợt c p nh t cho máy tính ậ ậ đ ể máyluôn luôn trong tình tr ng ạ được an toàn tuy t i Cách làm này sệ đốế ẽẽ giúp máy c aủ

bạn không dềẽ b ị k ẻ xầếu thâm nh p ậ Đ ể kiểm tra các bả ận c p nh t cho Windowsậ

bằềng cách vào Windows Update trong Internet Explorer.

Nềếu ph i qu n lý nhi u máy tính b n có th dùng công cả ả ềềể ụ mạnh h n nhơ ưMBSA (Microsoft Baseline Security Analyzer) Vi c b o m t m ng LAN n u chệ ả ậ ạ ềế

có ít máy tính thì vi c c p nh t tệ ậ ậ ương i dđốế ềẽ và không m t quá nhi u th i gian.ầế ềề

Ngày đăng: 20/09/2023, 15:39

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w