Chia Sẽ Kinh Nghiệm Về IT



Tìm Kiếm Với Google
-


Gởi Ðề Tài Mới  Gửi trả lời
 
Công Cụ Xếp Bài
Tuổi 14-08-2009, 10:44 PM   #1
hoctinhoc
Guest
 
Trả Lời: n/a
Sử dụng isa server 2006 hạn chế tấn công sql injection
SỬ DỤNG ISA SERVER 2006 HẠN CHẾ TẤN CÔNG SQL INJECTION
(Phần 1: Tìm hiểu và xây dựng cơ sở dữ liệu trên MSDE)
I. Giới thiệu:
Bạn là quản trị mạng của một doanh nghiệp, công ty bạn có xây dựng website đặt tại web server công ty bạn. Bạn sử dụng firewall Microsoft ISA Server 2006 để tiến hành publish web server để khách hàng có thể truy cập web site của công ty bạn. Đây là web site động, có tương tác với cơ sở dữ liệu. Cơ sở dữ liệu có thể là Microsoft SQL Server, MySQL, MSDE, Oracle,...SQL Injection là một trong những hình thức tấn công vào cơ sở dữ liệu dựa trên sự sơ hở của người lập trình web. Attacker (kẻ tấn công) sau khi tìm ra lỗi của trang web, attacker có thể nhập vào một số từ khóa đặc trưng vào FORM hoặc URL để tiến hành khai thác cơ sở dữ liệu như xem dữ liệu, xóa dữ liệu, cập nhật dữ liệu theo ý muốn. Để minh họa bài viết này tôi minh họa việc khai thác lỗi SQL Injection dựa trên đoạn code có sẵn , chưa khắc phục lỗi này và sử dụng ISA Server 2006 để hạn chế hình thức tấn công trên.
Bài viết gồm 2 phần:
Phần 1: Tìm hiểu và xây dựng cơ sở dữ liệu trên MSDE
Phần 2: Thực hiện khai thác lỗi SQL Injection và dùng ISA Server 2006 hạn chế việc khai thác lỗi này
II. Một số khái niệm cơ bản về MSDE

MSDE (Microsoft Data Engine
hoặc Microsoft Desktop Engine) là một hệ quản trị cơ sở dữ liệu của Microsoft, tương tự MS SQL Server. Phiên bản này là FREE, nên có một số giới hạn sau:
- Không có công cụ giao diện đồ họa để quản lý cơ sở dữ liệu.
- Kích thước database không vượt quá 2GB lưu trữ.
- Không vượt quá 25 kết nối đồng thời.

Một số giới hạn khác khi sử dụng MSDE:

- Failover clustering.
- Log shipping.
- Parallel DBCC.
- Parallel create index.
- Enhanced read ahead and scan.
- Indexed views.
- Federated database server.
- System area network support (SAN).
- Graphical DBA, and developer utilities and wizards.
- Full-text search.
- Analysis services.
- OLAP partitions.
- Partition wizard.
- Linked OLAP cubes.
- ROLAP dimension support.
- HTTP Internet support.
- Custom rollups.
- Calculated Cells.
- Write back to dimensions.
- Very large dimension support.
- Actions.
- Real-time OLAP.
- Distributed partition cubes.
- Data mining.
- English query.
Tuy nhiên MSDE lại phù hợp với web site nhỏ, doanh nghiệp nhỏ khi doanh nghiệp đó mới bắt đầu cho sự phát triển của mình.
Yêu cầu khi cài đặt MSDE:
- Hỗ trợ tối đa 2CPU trong Windows NT/Win2000/XP/2003 và 1CPU trong Win98/ME.
- Hỗ trợ tối đa 2 GB Ram
- Database lưu trữ tối đa 2GB.

1. Cài đặt MSDE
- Download MSDE 2000 SP4 tại đây
- Sau khi tải file này về, chạy file này để xả nén vào 1 thư mục (ví dụ C:\SQL2KSP4)
- Để cài đặt MSDE, bạn vào thư mục sau khi xả nén (C:\SQL2KSP4\MSDE) có file setup.ini . Bạn có thể khai báo sẵn cơ chế chứng thực khi login vào database trong file setup.ini hoặc có thể không xài file setup.ini thì khai báo cơ chế chứng thực trong lúc quá trình setup.
- Có 4 loại cơ chế chứng thực:

+ Windows authentication without network access
+ Windows authentication with network access
+ Mixed Windows and SQL mode authentication without network access
+ Mixed Windows and SQL mode authentication with network acces

Để việc cài đặt tốt hơn, trước khi cài đặt MSDE, bạn nhớ disable các chương trình diệt virus, sau khi cài đặt xong thì có thể enable lại bình thường.

Không sử dụng file setup.ini thì thực hiện như sau:
  • Windows authentication with network access: Với kiểu chứng thực này, khi client kết nối vào database, client không nhập username và password do đó username và password (dưới dạng plain text) sẽ không gửi qua đường mạng, chỉ có chương trình ứng dụng của Windows và .NET mới có thể truy cập vào database.Chương trình ứng dụng tại client sẽ tự động login vào MSDE bằng user account hiện hành tại máy trạm. Chạy file setup.exe như sau:
    C:\...MSDE\>Setup.exe DISABLENETWORKPROTOCOLS=0 SAPWD="password"INSTANCENAME="myinstance"
    với SAPWD là password của user sa (system admin: account quản trị database), INSTANCENAME là 1 hệ cơ sở dữ liệu
  • Mixed Windows and SQL mode authentication with network access (Java and Win access over a network): Với kiểu chứng thực này, sử dụng trộn lẫn 2 loại chứng thực là dùng user account của Windows và user sa (system admin) của MSDE. Client có thể truy cập database bằng chương trình ứng dụng của Windows và ứng dụng Java qua đường mạng. Username và password sẽ được gửi qua đường mạng dạng plain text (không mã hóa). Chạy file setup.exe như sau:
    C:\...MSDE\>Setup.exe DISABLENETWORKPROTOCOLS=0 SAPWD="password" INSTANCENAME="myinstance" SECURITYMODE=SQL
  • Mixed Windows and SQL mode authentication without network access (Local Java and Win access only):Với kiểu chứng thực này, không gán quyền cho việc truy cập qua mạng, sử dụng trộn lẫn 2 loại chứng thực là dùng user account của Windows và user sa (system admin) của MSDE. Chỉ có những chương trình cục bộ mới được phép truy cập database.
    C:\...MSDE\>Setup.exe SAPWD="password "INSTANCENAME="myinstance" SECURITYMODE=SQL
  • Windows authentication without network access: Với kiểu chứng thực này, không gán quyền cho việc truy cập qua mạng. Sử dụng user account của Windows để chứng thực và chỉ có cục bộ mới được phép truy cập database. Đây là loại chứng thực được đánh giá là bảo mật nhất.
    C:\...MSDE\>Setup.exe SAPWD="password " INSTANCENAME="myinstance"
Sử dụng file setup.ini như sau:
Điền vào sau từ khóa [Option] tùy theo mỗi loại chứng thực
  • Mixed Windows and SQL mode authentication with network access.
    [Options]
    DISABLENETWORKPROTOCOLS=0
    SAPWD="password"
    INSTANCENAME="myinstance"
    SECURITYMODE=SQL
  • Windows authentication with network access.
    [Options]
    DISABLENETWORKPROTOCOLS=0
    SAPWD="password"
    INSTANCENAME="myinstance"
  • Mixed Windows and SQL mode authentication without network access
    [Options]
    SAPWD="password"
    INSTANCENAME="myinstance"
    SECURITYMODE=SQL
  • Windows authentication without network access
    [Options]
    SAPWD="password"
    INSTANCENAME="myinstance"
Sau đó chạy file setup.exe để cài đặt.

Trường hợp MSDE đã cài sẵn rồi, và muốn cấu hình lại cơ chế chứng thực thì thực hiện như sau
- Mở Administrative Tools > Services : stop dịch vụ database instance tương ứng
- Vào Run gõ regedit , tìm tới HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\myinstance\MSSQLServer, tìm key LoginMode. Key này =1 sử dụng Windows authentication, key này =0 hoặc =2 sử dụng Windows và SQL authentication
2. Một số lệnh cơ bản khi sử dụng MSDE
Để thay đổi password của user sa (system administrator) , truy cập vào đường dẫn C:\Program Files\Microsoft SQL Server\80\Tools\Binn, sử dụng công cụ osql
- Đối với Windows authentication
C:\Program Files\Microsoft SQL Server\80\Tools\Binn> osql –E –S localhost\myinstance
1> use master
2> go
1> exec sp_password @old = null, @new = ‘newpassword’, @loginame = 'sa'
2> go
Password changed.
1>quit
trong đó localhost là tên máy cài MSDE
- Đối với Mixed mode
C:\Program Files\Microsoft SQL Server\80\Tools\Binn>osql –U sa –P password –S localhost\myinstance
1> use master
2> go
1> exec sp_password @old = null, @new = ‘newpassword’, @loginame = 'sa'
2> go
Password changed.
1>quit
Để xem version của MSDE gõ lệnh
C:\Program Files\Microsoft SQL Server\80\Tools\Binn>osql -E -S localhost\myinstance
1> select @@version
2> go
Microsoft SQL Server 2000 - 8.00.2039 (Intel X86)
May 3 2005 23:18:38
Copyright (c) 1988-2003 Microsoft Corporation
Desktop Engine on Windows NT
5.2 (Build 3790: Service Pack 2)

8.00.194 - MSDE 2000
8.00.384 - MSDE 2000 SP1
8.00.534 - MSDE 2000 SP2
8.00.760 - MSDE 2000 SP3
8.00.2039 - MSDE 2000 SP4
Bạn có thể dùng lệnh osql /? để tìm hiểu thêm về lệnh này
III. Chuẩn bị
Download và cài đặt các công cụ sau:
  1. Microsoft .NET Framework 2.0 Service Pack 1 (x86): download
  2. Microsoft Core XML Services (MSXML) 6.0 Service Pack 1: download
  3. Microsoft SQL Server Management Studio Express: download
    hoặc tất cả phần mềm tại đây
Mô hình lab

IV. Các bước thực hiện
1. Cài đặt ASP.NET và IIS
2. Cài đặt Microsoft .NET Framework 2.0 Service Pack 1 (x86)
3. Cài đặt Microsoft Core XML Services (MSXML) 6.0 Service Pack 1
4. Cài đặt Microsoft SQL Server Management Studio Express
5. Cài đặt MSDE
6. Tạo cơ sở dữ liệu
V. Thực hiện
Thực hiện tại máy Web Server
1. Cài đặt ASP.NET và IIS
2. Cài đặt Microsoft .NET Framework 2.0 Service Pack 1 (x86)
3. Cài đặt Microsoft Core XML Services (MSXML) 6.0 Service Pack 1
4. Cài đặt Microsoft SQL Server Management Studio Express
5. Cài đặt MSDE
B1. Mở file setup.ini và khai báo như sau:
[Options]
SAPWD="P@ssword"
INSTANCENAME="Bank"
SECURITYMODE=SQL
B2. Chạy file setup.exe, cài đặt xong thì khởi động lại máy
6. Tạo cơ sở dữ liệu
Sử dụng MS SQL Server Management Studio Express để tạo cơ sở dữ liệu
Chạy chương trình SQL Server Management Studio Express, login bằng username sa, password P@ssword

Chuột phải Database chọn New Database

Đặt tên database là CreditCardDB

Chọn Script Action to New Query Windows, nhìn góc tay trái bên dưới đợi tạo xong query đóng cửa sổ này lại

Chọn Menu Query > Excute

Chuột phải Database chọn Refresh thấy CreditCardDB đã tạo xong

Chuột phải Tables > New Table

Khai báo các trường trong table này như hình

Chuột phải UserID chọn Set Primary Key

Đóng cửa sổ tạo table chọn Yes

Đặt tên cho table này là Users >OK

Chuột phải Tables chọn New Table

Tạo các trường trong table như hình

Chuột phải OrderID chọn Set Primary Key

Đóng cửa sổ này

Chọn Yes

Đặt tên cho Table này là Orders

Chuột phải dbo.Users chọn Open Table

Nhập dữ liệu cho Table Users

Chuột phải dbo.Orders chọn Open Table

Nhập dữ liệu cho Table Orders

Chuột phải CreditCardDB chọn New Query

gõ lệnh như hình
SELECT * FROM Users; SELECT * From Orders;

Chọn Meny Query > Execute

Kết quả của 2 Table Users và Orders như hình

Kết thúc phần 1.
Bây giờ bạn đã chuẩn bị xong cơ sở dữ liệu để tiếp tục phần 2.
Chúc bạn thành công.
Xem tiếp Phần 2
———————————————— ———————————————— ———————————————— ——
Mr. Sử Trí Thức
Nhất Nghệ Support Team

  Trả lời ngay kèm theo trích dẫn này
Gửi trả lời



Quyền Hạn Của Bạn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Hình Cảm xúc đang Mở
[IMG] đang Mở
Mã HTML đang Tắt




Bây giờ là 06:19 AM. Giờ GMT +7



Diễn đàn tin học QuantriNet
quantrinet.com | quantrimang.co.cc
Founded by Trương Văn Phương | Developed by QuantriNet's members.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.