Bảo mật trong dịch vụ mạng

Một phần của tài liệu ỨNG DỤNG KIẾN TRÚC HƯỚNG DỊCH VỤ VÀ CÔNG NGHỆ DỊCH VỤ MẠNG TRONG XÂY DỰNG PHẦN MỀM (Trang 64 - 69)

5. Xây dựng dịch vụ mạng

5.2.Bảo mật trong dịch vụ mạng

Mô hình STRIDE

Do bản chất tự nhiên, nhiều dịch vụ mạng được đặt trong một môi trường không an toàn – Internet. Vì lý do này, các dịch vụ mạng phải được triển khai những công nghệ bảo mật thích hợp.

Trước khi xây dựng các hệ thống của mình, chúng ta nên đặt ra các câu hỏi sau:

• Một tin tặc chiếm quyền điều khiển giỏ hàng trực tuyến như thế nào?

• Mức độ ảnh hưởng khi một kẻ tấn công bằng cách từ chối sự truy cập vào dịch vụ của những người dùng hợp lệ là gì?

• Một kẻ tấn công có thể xem hoặc thay đổi dữ liệu truyền từ dịch vụ tới người dùng bằng cách nào?

Để làm được điều này, chúng ta sử dụng mô hình STRIDE. STRIDE là một từ viết tắt của sáu loại nguy cơ an toàn sau:

• Sự giả mạo định danh (Snoofing identity): Sự giả mạo có nghĩa là việc truy cập một cách bất hợp pháp và sau đó sử dụng thông tin thẩm định quyền của người dùng khác, như username và mật khẩu.

• Sự giả mạo dữ liệu (Tampering with data): Sự giả mạo dữ liệu bao gồm việc cố tình sửa đổi dữ liệu, ví dụ: thực hiện các thay đổi không được phép đối với dữ liệu, thay đổi dữ liệu khi dữ liệu truyền giữa hai máy tính trên một hệ thống mạng mở như Internet.

• Từ chối (Repudiation): Từ chối xảy ra khi các người dùng từ chối thực hiện những hành động mà các bên khác không có cách nào để chứng minh điều ngược lại – ví dụ, một người dùng thực hiện một thao tác bất hợp pháp trong hệ thống không có khả năng ghi lại các thao tác bị cấm. Sự không thể chối từ là khả năng của hệ thống có thể chống lại các nguy cơ từ chối. Ví dụ, nếu một người dùng mua một món hàng thì anh ta sẽ phải ký vào mặt hàng này trên biên lai. Người bán hàng có thể sử dụng biên lai đó như một bằng chứng là khách hàng đã nhận được gói hàng.

• Sự lộ thông tin (Information disclosure): các nguy cơ lộ thông tin bao gồm việc phơi bày thông tin cho những người không được truy cập vào nó. Ví dụ, một người dùng có khả năng được được file mà mình không có quyền truy cập hoặc khả năng mọt kẻ đột nhập có thể đọc dữ liệu truyền giữa hai máy tính.

• Từ chối dịch vụ (Denial of Service): Các tấn công từ chối dịch vụ đối với những người dùng hợp lệ, ví dụ, bằng cách làm cho Web server tạm thời bị vô hiệu hóa.

• Sự nâng đặc quyền (Elevation of privilege): trong loại nguy cơ này, một người dùng không có quyền nhận được quyền truy cập và do đó, có khả năng truy cập để làm tổn hại hoặc phá hủy toàn bộ hệ thống.

Quay trở lại các câu hỏi được đặt ra trước khi xây dựng hệ thống, chúng ta thấy rằng câu hỏi đầu tiên liên quan tới nguy cơ giả mạo dữ liệu (T), câu hỏi thứ hai liên quan tới nguy cơ từ chối dịch vụ (D) và câu hỏi thứ ba liên quan tới nguy cơ lộ thông tin và nguy cơ giả mạo thông tin (I và T).

Một cách đơn giản nhất để áp dụng mô hình STRIDE cho ứng dụng là xem xét mỗi loại nguy cơ sẽ có ảnh hưởng tới mỗi thành phần và các kết nối giữa các thành phần như thế nào. Thực chất của việc này là xem xét mỗi phần của ứng dụng và quyết định xem nguy cơ S, T, R, I, D hay E tồn tại ở thành phần hoặc quy trình đó và ghi chúng lại.

Lựa chọn các kỹ thuật để làm giảm nguy cơ.

Bước tiếp theo là xác định các kỹ thuật làm giảm nguy cơ thích hợp. Bảng dưới đây chỉ ra một số kỹ thuật và công nghệ đó.

Loại nguy cơ Kỹ thuật giảm nhẹ nguy cơ

Giả mạo định danh

Các quy tắc thẩm định quyền sử dụng các công nghệ như thẩm định cơ bản, thẩm định cốt yếu, chứng nhận X.509, thẩm định .NET Passport, và các thẩm định dựa form khác. Lưu ý rằng một số trường hợp cần thẩm định máy khách, còn một số trường hợp lại cần thẩm định máy chủ.

Chúng ta cũng có thể chứng minh rằng dữ liệu đến từ một nơi nào đó bằng cách ký và xác nhận chữ ký. Không lưu giữ các thông tin mật một theo cách không an toàn, đặc biệt là các thông tin thẩm định quyền như mật khẩu hay số định danh cá nhân (PIN).

Giả mạo thông tin

Bảo vệ dữ liệu với các danh sách điều khiển truy cập (ACL – Access Control List) hoặc các quyền hợp lý. Xác định xem dữ liệu có bị làm giả không bằng cách sử dụng các mã băm hoặc các mã thẩm định thông điệp.

Từ chối Bảo vệ khỏi nguy cơ từ chối bao gồm sự thẩm định và dữ liệu được ký, cũng như việc ghi và kiểm tra log. Lộ thông tin Dữ liệu có thể bảo vệ bằng cách sử dụng các danh

đảm bảo tính riêng tư như mã hóa có thể có ích nếu các khóa được sử dụng để mã hóa và giải mã cũng được bảo vệ khỏi nguy cơ bị lộ.

Từ chối dịch vụ

Các nguy cơ từ chối dịch vụ rất khó để chống lịa vì rất khó xác định khi nào máy chủ bận thật sự và khi nào nó bị tấn công. Nếu chúng ta hạn chế các yêu cầu người dùng, chúng ta có thể sẽ ngăn cản những truy cập của người dùng hợp lệ. Một kỹ thuật đơn giản là hạn chế những hành động mà người dùng vô danh có thể thực hiện. Ví dụ, chúng ta sẽ cấp phát 10% tài nguyên cho người dùng vô danh và 90% tài nguyên cho người dùng hợp lệ.

Một số giải pháp khác không nằm trong tầm kiểm soát ứng dụng một cách trực tiếp bao gồm tường lửa và các bộ định tuyến lọc gói tin.

Nâng đặc quyền

Không yêu cầu các đặc quyền mà mình không cần đến. Bằng cách đó, nếu kẻ tấn công có biết được mã số an toàn thì cũng không thể gây nhiều tổn hại vì anh ta không có nhiều quyền.

Một ví dụ về dịch vụ mạng. (adsbygoogle = window.adsbygoogle || []).push({});

Xét một trường hợp đơn giản, trong đó một người dùng trao đổi thông tin với dịch vụ mạng, dịch vụ mạng sau đó lại trao đổi thông tin với một cơ sở dữ liệu và trả lại nội dung cho người dùng như trong hình dưới đây.

Hình 2.7: Một ví dụ dịch vụ mạng

Bảng dưới đây liệt kê một số nguy cơ đối với hệ thống và cách thức làm giảm nhẹ mức độ ảnh hưởng của những nguy cơ này.

Đích ID Loại nguy cơ Mô tả Các kỹ thuật làm giảm nguy cơ

mạng 1 công dịch vụ mạng bằng cách sử dụng tấn công từ chối dịch vụ phân tán và đặt dịch vụ của chính mình lên Internet. Ứng dụng của người dùng không biết rằng đang truyền thông với một dịch vụ giả mạo. kết nối SSL/TLS từ người dùng để thẩm định máy chủ. Trên đường dữ liệu từ người dùng đến dịch vụ 2 2 T và I Kẻ tấn cống xem hoặc thay đổi thông tin trên đường từ người dùng tới máy chủ và ngược lại.

Sử dụng

SSL/TLS hoặc IPSec để mã hóa dữ liệu khi nó vào/ra khỏi dịch vụ mạng Trên đường dữ liệu từ người dùng đến dịch vụ 3 3 E Kẻ tấn công xem dữ liệu mật khẩu trên đường từ người dùng đến máy chủ, nếu người dùng là một quản trị hệ thống, kẻ tấn cống có thể sử dụng username và mật khẩu. Sử dụng một cơ chế thẩm định quyền không truyền mật khẩu dưới dạng tường minh hoặc sử dụng SSL/TLKS hoặc IPSec để bảo vệ kênh truyền tin.

Dịch vụ

mạng 4 4 D quá tải dịch vụ mạng Kẻ tấn công làm bằng hàng nghìn yêu cầu không có thật và làm dịch vụ mạng chậm lại.

Sử dụng một tường lửa để giới hạn dữ liệu nào là được phép. Xây dựng các logic giới hạn lượng dữ liệu được gửi bởi một người dụng hoặc một địa chỉ IP. Việc giới hạn bằng các địa chỉ IP có thể là khó giải quyết, tuy nhiên, nhiều người dùng hợp lệ sử dụng các ISP có một số lượng hạn chế các địa chỉ IP, vì vậy, nhiều yêu cầu có thể đến từ cùng một địa chỉ IP trong khi thực tế thì chúng từ các người dùng khác nhau trong cùng một máy chủ ủy nhiệm (proxy

server). Dữ liệu SQL Server 5 5 T và I Kẻ tấn công truy cập dữ liệu trong SQL Server một cách trực tiếp mà không thông qua dịch vụ mạng Giới hạn những dữ liệu được phép sử dụng để xây dựng các truy vấn SQL. SQL Server 6 6 S, T, R, I, D, E Kẻ tấn công sử dụng các thủ tục lưu (stored procedure) xp_cmdshell được xây dựng sẵn trong SQL Server để gọi mã nguy hiểm trong cơ sở dữ liệu SQL. Lệnh này có thể gọi bất kỳ lệnh nào tại máy chủ.

Giới hạn những dữ liệu nào được phép sử dụng để xây dựng các truy vấn cơ sở dữ liệu. Loại bỏ các thủ tục lưu (stored procedure) mở rộng như xp_cmdshell. Không kết nối tới SQL Server bằng tài khoản của người quản trị hệ thống vì tài khoản này có thể thực hiện bất kỳ nhiệm vụ SQL Server nào, bao gồm cả việc gọi xp_cmdshell.

Các công nghệ bảo mật dịch vụ mạng.

Bước thứ ba trong quy trình mô hình hóa nguy cơ bao gồm việc chọn lựa các công nghệ phù hợp để áp dụng các kỹ thuật giảm tác hại của các nguy cơ đã được chọn lựa.

Thẩm định quyền các dịch vụ mạng:

Thẩm định quyền là khả năng chứng minh một thực thể - ví dụ, một người sử dụng hoặc một máy tính – đúng là thực thể như nó khẳng định. Chúng ta có thể xác nhận điều khẳng định này bằng cách sử dụng một thực thể được gọi là một ủy nhiệm cung cấp chứng nhận. Chứng nhận thường bao gồm tên người dùng (username) và mật khẩu. Một dịch vụ mạng chạy trên IIS có một số các giao thức thẩm định quyền cho nó, đáng chú ý nhất trong số đó là:

• Thẩm định người dùng vô danh. • Thẩm định cơ sở.

• Thẩm định cốt yếu. • Thẩm định Windows.

• Thẩm định dựa trên chứng thực. • Thẩm định dựa trên form. • Thẩm định .NET Passport.

Quyền hạn của các dịch vụ mạng:

Khi ứng dụng xác định một ủy nhiệm bằng cách sử dụng một cơ chế thẩm định quyền, nó cần xác định xem người dùng có truy cập tới các tài nguyên được bảo vệ hay không và có thể gọi các hàm cụ thể, trong đó đáng chú ý nhất là sự sử dụng các danh sách điều khiển truy cập. Một danh sách điều khiển truy cập gồm nhiều điểm vào kiểm soát truy cập (ACE – Access Control Entries). Mỗi điểm vào kiểm soát truy cập liệt kê một ủy nhiệm và chứa các thông tin về ủy nhiệm và các thao tác có thể thực hiện trên tài nguyên. Ví dụ, một vài người được trao quyền đọc và một số khác có thể có toàn quyền.

Điểm mạnh thật sự của các danh sách điều khiển truy cập là ở chỗ chúng luôn luôn được tuân theo theo cùng một cách thức, không quan tâm tới cơ chế truy cập.Vì vậy, nếu vì một vài lý do nào đó mà một kẻ tấn công có thể qua được dịch vụ và do đó phá hỏng logic quyền hạn ở mức ứng dụng và truy cập tài nguyên một cách trực tiếp thì chính sách quyền hạn trong các danh sách điều khiển truy cập của tài nguyên vẫn còn có hiệu lực.

Một phần của tài liệu ỨNG DỤNG KIẾN TRÚC HƯỚNG DỊCH VỤ VÀ CÔNG NGHỆ DỊCH VỤ MẠNG TRONG XÂY DỰNG PHẦN MỀM (Trang 64 - 69)