Trong quá trình xác thực thực thể, các thực thể đó có thể là một người sử dụng máy tính cánhân hoặc nhóm cá nhân, chẳng hạn như một doanh nghiệp, nhập các thông tin vào trang w
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN
²
BÁO CÁO BÀI TẬP LỚN
Môn: Kiến trúc hướng dịch vụ
Nguyễn Hoàng Minh
Hoàng Trí Nhân
Đỗ Thị Thanh Thùy Nguyễn Thanh Hiếu Trần Chí Trung
Hà Nội - 2011
Trang 2MỤC LỤC
I SECURITY OVERVIEW 3
1 Giới thiệu về Security Information (SI) 3
2 Security Services 3
3 Security Mechanisms 4
II SOA SECURITY INTRODUCTION 5
1 Tại sao lại cần SOA 5
2 SOA yêu cầu những phương pháp bảo mật mới 6
3 Các khía cạnh chức năng của bảo mật 7
4 Các khía cạnh phi chức năng của bảo mật 10
5 Các xu hướng bảo mật mới cho SOA 11
III SOA SECURITY THREATS 12
1 Threats to service 12
2 Threats to service registration/deregistration 13
3 Use of standard 13
4 SQL injection 14
5 Cross Site Scripting (XSS) 15
6 Replay attack 17
7 DoS attack ( tấn công từ chối dịch vụ ) 17
IV SOA SECURITY TECHNIQUES 17
1 Các dạng thuật toán mã hóa 17
2 Mã hóa thông điệp SOAP 18
3 Sử dụng chữ ký điện tử 19
V TIÊU CHUẨN CHO BẢO MẬT WEB SERVICES (WS) 21
1 Khung tiêu chuẩn của Bảo mật Web Services (WSS) 21
2 Tổng quan về các tiêu chuẩn hiện tại đang được áp dụng 22
Trang 3I SECURITY OVERVIEW
1 Giới thiệu về Security Information (SI)
Ngày nay, sự phát triển của Internet và mạng máy tínḥ đã giúp cho việc trao đổi thông tin trởnên nhanh gọn, dễ dàng.E-mail cho phép người ta nhận hay gửi thư ngay trên máy tính của mình,E-business cho phép thực hiện các giao dịch buôn bán trên mạng,
Tuy nhiên lại phát sinh những vấn đề mới Thông tin quan trọng nằm ở kho dữ liệu hay đangtrên đường truyền có thể bị trộm cắp, có thể bị làm sai lệch, có thể bị giả mạo Điều đó có thểảnh hưởng tới các tổ chức, các công ty hay cả một quốc gia Những bí mật kinh doanh, tài chínhlà mục tiêu của các đối thủ cạnh tranh Những tin tức về an ninh quốc gia là mục tiêu của các tổchức tình báo trong và ngoài nước
Theo số liệu của CERT (Computer Emegency Response Team: Đội cấp cứu MT), số lượng các
vụ tấn công trên Internet mỗi ngày một nhiều, qui mô của chúng mỗi ngày một lớn và ph ươngpháp tấn công ngày càng hoàn thiện Ví dụ cùng lúc tin tặc đã tấn công vào cả 100 000 máy tính
có mặt trên mạng Internet, những máy tính của các công ty, các trường học, các cơ quan nhà
nư-ớc, các tổ chức quân sự, các nhà băng, cùng lúc ngưng hoạt động
Khi trao đổi thông tin trên mạng, những tình huống mới nảy sinh:
Người ta nhận được một bản tin trên mạng, thì lấy gì làm bảo đảm rằng nó là của đối tác đãgửi cho họ Khi nhận được tờ Sec điện tử hay Tiền điện tử trên mạng, thì có cách nào để xácnhận rằng nó là của đối tác đã thanh toán cho ta Tiền đó là tiền thật, hay tiền giả?
Thông thường, người gửi văn bản quan trọng phải ký phía dưới Nhưng khi truyền trên mạng,văn bản hay giấy thanh toán có thể bị trộm cắp và phía dưới nó có thể dán một chữ ký khác Tómlại với cách thức ký như cũ, chữ ký rất dễ bị giả mạo
Để giải quyết tình hình trên, vấn đề bảo đảm SI đã trở nên thực sự quan trọng Trong những
phần sau chúng ta sẽ tìm hiểu về Security Services và Security Mechanism
2 Security Services
2.1 Authentication – Xác thực
Xác thực đúng thực thể cần kết nối, giao dịch
Xác thực đúng thực thể có trách nhiệm về nội dung thông tin (Xác thực nguồn gốc TT)
2.2 Authorization-Trao quyền
Trao quyền là quá trình xác định 1 thực thể xác định có quyền truy cập 1 dịch vụ cụ thể trongmiền an toàn không (Policies/Roles/Groups)
2.3 Integrity – tính toàn vẹn
Ngăn chặn hay hạn chế việc bổ sung, loại bỏ và sửa dữ liệu không được phép
//Chủ yếu được sử dụng với kĩ thuật băm và chữ ký số
2.4 Confidentiality-tính bí mật
Thông tin không bị lộ đối với người không được phép
//Chủ yếu được sử dụng với mã hóa bằng khóa
2.5 Auditing-kiểm tra
Giữ trách nhiệm về mọi sự trao quyền đã xảy ra
2.6 Privacy-tính riêng tư
Quyền của cá nhân để xác định cho mình khi nào, làm thế nào và đến mức độ nào thông tin về
họ được truyền đạt cho người khác
2.7 Non-repudiation – Chống sự chối bỏ
Để đảm bảo rằng các tin nhắn được chuyển giao đã được gửi và nhận,các bên phải tuyên bố cógửi và nhận tin nhắn Một bằng chứng không thể chối cãi đã được lưu giữ nếu có tranh cãi trongtương lai
Trang 43 Security Mechanisms
3.1 Entity Authentication – Xác thực thực thể
Xác thực thực thể là một phương pháp xác thực yêu cầu một chương trình ứng dụng ở phíangười dùng ví dụ như trình duyệt web, cung cấp nhận dạng khi truy cập 1 trang web hoặc khuvực giới hạn nào đó trên trang web đó
Trong quá trình xác thực thực thể, các thực thể đó có thể là một người sử dụng máy tính cánhân hoặc nhóm cá nhân, chẳng hạn như một doanh nghiệp, nhập các thông tin vào trang web.Những thông tin thường có dạng là username và password của người sử dụng Một khi thông tinnày được gửi, hệ thống máy chủ trang web có thể xác minh nếu cả hai chứng chỉ phù hợp vớitiêu chuẩn ghi trong hệ thống của mình Nếu các thông tin là chính xác, các thực thể được cấpquyền truy cập vào khu vực mong muốn hoặc thông tin họ yêu cầu
Xác thực thực thể là một quá trình được sử dụng để hạn chế các thực thể không được phép truycập thông tin trên mạng, nó được coi là hạn chế hoặc bí mật Truy cập trái phép thông tin bị hạnchế có thể dẫn đến hành vi trộm cắp dữ liệu, nhiễm virus và các tập tin bị hỏng
3.2 Message Authentication – Xác thực thông tin
Xác thực thông tin là một thủ tục xác minh tính xác thực tạo điều kiện cho việc xác minh tínhtoàn vẹn của thông điệp cũng như tính xác thực của nguồn gố tin nhắn
Xác thực thông tin xác định rằng tin nhắn đã không được thay đổi từ khi thời điểm nó bắt đầutruyền đi, trong đó: sự xác nhận của người khởi tạo thông điệp được xác minh, và nguồn, tínhduy nhất, và tính toàn vẹn của thông điệp cũng được xác minh
Xác thực thông tin cung cấp hai dịch vụ Một là đảm bảo tính toàn vẹn thông điệp và hai là xácminh người gửi tin nhắn Để yêu cầu chứng thực, ứng dụng gửi phải thiết lập mức độ xác thựccủa thông điệp được chứng thực Khi chứng thực được yêu cầu, một chữ ký số và chứngnhận(chứng chỉ) của người sử dụng đính kèm ID của người gửi vào phía ngoài tin nhắn Xácthực cho tính toàn vẹn của tin nhắn đảm bảo rằng không có ai giả mạo tin nhắn hoặc thay đổi nộidung của nó Khi tin nhắn được kí số khi gửi đi, và ở đích đến nó cũng phải xác nhận chữ kí sốtrước khi lưu thông điệp lại.Một khi tin nhắn được xác nhận toàn vẹn thì nghĩa là nó đã đượcchứng thực người gửi
3.3 Enchiper/Dechiper
* Mã hóa là quá trình chuyển thông
tin có thể đọc được (gọi là Bản rõ)
thành thông tin “khó” thể đọc được
theo cách thông thường (gọi là Bản
mã) Đó là một trong những kỹ thuật
để bảo mật thông tin
* Giải mã là quá trình chuyển thông
tin ngược lại: từ Bản mã thành Bản
rõ
* Thuật toán mã hoá hay giải mã là
thủ tục tính toán để thực hiện mã hóa
hay giải mã
* Khóa mã hóa là một giá trị làm
cho thuật toán mã hoá thực hiện theo
cách riêng biệt và sinh ra bản rõ
riêng Thông thường khoá càng lớn thì bản mã càng an toàn Phạm vi các giá trị có thể có củakhoá được gọi là Không gian khoá
* Hệ mã hóa là tập các thuật toán, các khóa nhằm che giấu thông tin, cũng như làm cho rõ nó
Trang 53.4 Access Control List – Danh sách điều khiển truy cập
ACL đồi với một hệ thống file của máy tính là một danh sách các quyền gắn với các đối tượngkhác nhau.ACL quy định cụ thể với mỗi người dùng hay quy trình hệ thống được cấp quyền truycập đến các đối tượng cũng như các thao tác được tác động lên đối tượng đó.Mỗi mục trong 1ACL điển hình quy định cụ thể một người và một thao tác Ví dụ nếu 1 file có ACL có chứa(Mike,delete), điều này cho phép Mike có thể xóa file đó
Khi 1 người yêu cầu 1 thao tác trên 1 đối tượng trong 1 mô hình security dựa trên ACL, đầutiên hệt điều hành kiểm tra trên ACL danh mục cho phép xem thao tác mà người dùng yêu cầu
đó có được cho phép hay không.Một vấn đề quan trọng trong mô hình security dựa trên ACL làxác định người dùng và quy trình được truy cập vào khu vực chỉnh sửa ACL ACL hay được ápdụng trong việc phân cấp hệ thống
Bằng cách nào đó người ta phải thể hiện đó là “ chữ ký” của họ (chữ ký bằng “tay”, một dấuhiệu riêng của họ), người khác “khó thể” giả mạo (bắt chước) được
Mọi cách sao chép chữ ký trên tài liệu thông thường (trên giấy trắng), dễ bị phát hiện, vì bảnsao có thể phân biệt được với bản gốc
Nhưng “ký” trên tài liệu trong máy tính hay tài liệu truyền qua mạng máy tính như thế nào, khinội dung tài liệu được biểu diễn dưới dạng số hoá (chỉ dùng số 0 và 1), ta gọi là “tài liệu số” Việc giả mạo và sao chép lại đối với “ tài liệu số” là hoàn toàn dễ dàng, không thể phân biệtđược bản gốc với bản sao Hơn nữa, một tài liệu số có thể bị cắt dán, lắp ghép là hoàn toàn có thểvà ta không thể phân biệt được bản gốc với bản sao
Vậy một chữ ký như chữ ký bằng “tay” thông thường ở cuối “tài liệu số”́, không thể chịutrách nhiệm đối với toàn bộ nội dung tài liệu
“Chữ ký” như thế nào thì mới thể hiện được trách nhiệm đối với toàn bộ “tài liệu số” ? Chắc chắn chữ ký đó phải được “ký” trên từng bít của tài liệu số
Vậy “ký” trên tài liệu số được thực hiện như thế nào ?
Thực chất của việc “ký số̉” trên “tài liệu số” là “mã hoá ” “tài liệu số” đó
Bản mã chính là “Chữ ký số̉” hay “Chữ ký điện tử” (Digital Signature)
Xác nhận ”chữ ký” là kiểm tra việc mã hoá trên có đúng không
Như vậy khi gửi một tài liệu số có chữ ký trên đó, người ta phải gửi cả 2 file: một file tài liệuvà một file chữ ký Nhờ đó mới kiểm tra được có đúng chữ ký đó ký trên tài liệu đi kèm haykhông
II SOA SECURITY INTRODUCTION
1 Tại sao lại cần SOA
Mô hình kiến trúc doanh nghiệp đôi khi cần thay đổi, như việc mở rộng kinh doanh, thay đổiloại ứng dụng hoặc phát triển, nâng cấp cơ sở hạ tầng ứng dụng Mục đích của IT là hỗ trợ cácdoanh nghiệp với rất nhiều các hoạt động con người phức tạp có thể hoạt động hiệu quả Tuynhiên, trong một số trường hợp, chính những đặc điểm của hệ thống IT hiện tại lại ngăn cản cácdoanh nghiệp thực hiện các chiến lược kinh doanh mới
Những đặc điểm của các kiến trúc hiện tại là:
Các ứng dụng được phát triển độc lập với những ứng dụng khác, và chỉ hoạt động trong phạm
vi ứng dụng này
Trang 6 Sự khác biệt về nền tảng, ngôn ngữ lập trình và giao thức làm cho các ứng dụng, hệ thốngkhó giao tiếp với nhau.
Công nghệ bảo mật hiện tại phụ thuộc quá nhiều vào phạm vi doanh nghiệp và các rào cản đãtạo ra dẫn đến việc khó hợp tác giữa các doanh nghiệp với nhau
Tất cả những rào cản này làm cho việc thay đổi hệ thống khó khăn, chậm chạp, chi phí cao vàkhông đáp ứng kịp các chiến lược kinh doanh mới SOA giúp giải quyết vấn đề này, đó là doSOA dựa trên một số nguyên lý cơ bản sau:
Các ứng dụng phải cho phép sử dụng lại Nó phải cho phép kết hợp được các dịch vụ của cácứng dụng khác nhau để tạo các dịch vụ cao cấp hơn hoặc các ứng dụng phức hợp
Sự khác nhau về công nghệ không còn là cản trở và khả năng tương hợp (interoperability)phải là một tiêu chí quan trọng
Các chuẩn mở phải được chấp nhận để cho phép khả năng tích hợp giữa các doanh nghiệp.Cho phép phối hợp các nghiệp vụ thông qua nhiều người cung cấp, đối tác, và khách hàng
Có sự điều khiển và quản lý để đảm bảo sự linh hoạt do ba đặc điểm đầu cung cấp không dẫnđến sự mất kiểm soát
2 SOA yêu cầu những phương pháp bảo mật mới
Các phương pháp bảo mật truyền thống thừa nhận và sử dụng rào cản giữa các hệ thống,doanh nghiệp để tăng hiệu quả bảo mật Những đặc điểm của SOA đòi hỏi những rào cản phảiđược hạ thấp Tuy nhiên, điều này dẫn đến nhiều vấn đề về bảo mật, đòi hỏi chúng ta phải tìm racác phương pháp bảo mật mới, phù hợp với SOA
Hãy quan sát hình vẽ dưới đây, đó là kiến trúc bảo mật ứng dụng truyền thống
Trong mô hình, một ứng dụng tự quản lý bảo mật và dựa trên một kênh an toàn để bảo vệ dữliệu trao đổi với ứng dụng client Hai đặc điểm của mô hình:
Hình 1 Mô hình bảo mật ứng dụng truyền thống
Server phải biết mô hình bảo mật đang dùng: ai ra các quyết định bảo mật, khi nào, ở đâu
Server phải đủ tin cậy để thấy tất cả dữ liệu, bao gồm cả các dữ liệu nhạy cảm của client.Bây giờ hãy xem xét một ứng dụng là sự kết hợp của các dịch vụ từ nhiều ứng dụng khác:
Server Application
Client
Functional module
Functional module Kênh an toàn dùng
SSL/TLS
Trang 7Hình 2 Mô hình nhiều ứng dụngSự khác biệt của mô hình 2 so với mô hình 1:
Dựa vào SOA, các module chức năng trong một ứng dụng có thể kết hợp với các modulechức năng trong ứng dụng khác để tạo ra các ứng dụng phức hợp (ví dụ Ứng dụng 1)
Ứng dụng phức hợp kết hợp với các dịch vụ của các doanh nghiệp khác (vd ứng dụng 2)
Các dịch vụ của một doanh nghiệp có thể được gọi trực tiếp (như cách client 3 gọi dịch vụ2b) hoặc bởi các ứng dụng của doanh nghiệp đối tác (như dịch vụ p2 gọi dịch vụ 2b)
Nếu theo nguyên lý của mô hình 1, ứng dụng 2 không còn được bảo mật Do đó, mô hình bảomật không thể đặt cứng trong ứng dụng nữa
Một vấn đề khác là dữ liệu riêng tư cần che giấu Ví dụ, một phần thông điệp gửi từ client 4lên server là nhạy cảm, chỉ dịch vụ 2b được sử dụng Trong trường hợp này, một kênh an toàngiữa client 4 và dịch vụ 2b là chưa đủ vì p2 có thể thấy tất cả mọi thứ được gửi lên từ client 4 Như vậy, các phương pháp bảo mật truyền thống không còn đủ khả năng đáp ứng trong SOA,chúng ta phải tìm ra các phương pháp bảo mật hữu hiệu hơn Dĩ nhiên, bất cứ một phương phápbảo mật mới nào cũng phải dựa trên đặc điểm của SOA, nghĩa là bảo mật nhưng vẫn phải đảmbảo các dịch vụ là “mở” nhất có thể, dễ sử dụng nhất có thể Không có rào cản về công nghệ,cũng như đảm bảo khả năng tương hợp giữa các hệ thống Đi xa hơn, điều mong muốn là kiếntrúc bảo mật cũng là hướng dịch vụ, tức là cơ sở hạ tầng bảo mật có thể được truy cập độc lậpcông nghệ, sử dụng chuẩn mở, được quản lý thông qua chính sách là một chuẩn SOA
Ở trên, chúng ta chỉ đề cập đến cách nhìn trừu tượng về bảo mật Cụ thể, các khía cạnh bảomật nào chúng ta cần xác định có thể được chia làm hai nhóm:
Các khía cạnh chức năng của bảo mật: các phương pháp, cơ chế bảo mật
Các khía cạnh phi chức năng của bảo mật: giúp các giải pháp bảo mật hoạt động tốt hơn.Trong các phần sau, chúng ta sẽ tìm hiểu cụ thể các khía cạnh bảo mật này, so sánh việc sửdụng chúng trong các ứng dụng truyền thống và trong SOA
3 Các khía cạnh chức năng của bảo mật
3.1 Authentication (xác thực)
Ứng dụng phải xác thực rằng chỉ những người dùng hợp lệ mới được sử dụng chúng Có ba
“bằng chứng” để xác thực:
Trang 8Loại bằng chứng Mô tả Ví dụ
Bạn biết gì Bạn cung cấp một hoặc nhiều thông
tin bí mật mà ứng dụng muốn biết
- Username, password đã đăng ký
- Câu hỏi xác thựcBạn có gì Bạn phải sở hữu cái gì đó mà ứng
dụng mong muốn
- Bạn phải chứng tỏ bạn sở hữumột mẩu phần cứng đặc biệt nhưRSA token bằng cách điền số hiểnthị trên token
Bạn là ai Bạn cung cấp các bằng chứng sinh
a Chiến lược xác thực truyền thống
Bất kể sử dụng loại bằng chứng nào trong ba loại trên, ứng dụng cũng phải có một bản saochép đúng của những bằng chứng đó để so sánh
Nhiệm vụ xác thực người dùng vẫn thuộc về bản thân ứng dụng
b Chiến lược xác thực trong SOA
Các phương pháp xác thực trên không hoàn toàn đảm bảo trong SOA Dưới đây là một số tình huống:
Tình huống Chiến lược xác thực đề xuất
Dịch vụ được gọi trực tiếp bởi
một ứng dụng client thuộc cùng
doanh nghiệp
Sử dụng thư mục chung
Dịch vụ được gọi bởi một dịch
vụ khác hoặc ứng dụng phức
hợp trong cùng doanh nghiệp
- Nếu người gọi là một dịch vụ khác với cùng yêu cầuxác thực, dịch vụ được gọi có thể tin tưởng kết quả xácthực Ngược lại, dịch vụ được gọi thực hiện xác thựclại người dùng bằng cách dùng thư mục chung
- Nếu người gọi là một ứng dụng phức hợp, dịch vụđược gọi có thể tin tưởng kết quả hoặc xác thực lại
Dịch vụ được gọi bởi một một
ứng dụng của đối tác
Dựa vào kết quả xác thực của đối tác
3.2 Authorization (phân quyền)
Xác thực xác định bạn là ai, phân quyền xác định bạn được làm gì
a Chiến lược phân quyền truyền thống
Hầu hết các ứng dụng có một mô hình điều khiển truy cập riêng, việc quyết định cấp quyềntruy cập tài nguyên cho một hành động nào đó được thiết lập cứng trong ứng dụng
Hai mô hình điều khiển truy cập phổ biến nhất là RBAC (Role-Based Access Control) vàACL (Access Control List) Trong RBAC, quyền được gán trên role Trong ACL, người quản trịgắn một danh sách các luật với tài nguyên Một luật khai báo việc cho phép hay không cho phépmột hành động cụ thể trên tài nguyên cụ thể
b Chiến lược phân quyền trong SOA
Giả sử có một ứng dụng phức hợp với nhiều dịch vụ Một hành động trong ứng dụng này cóthể bao gồm nhiều hành động trong các dịch vụ thành phần, vậy ứng dụng phải kiểm tra các luậtđiều khiển truy cập của tất cả các dịch vụ này trước khi thực hiện hành động Tuy nhiên, chỉ cóthể thực hiện điều đó trong trường hợp tập luật truy cập của mỗi dịch vụ thành phần sẵn sàng với
Trang 9ứng dụng phức hợp Thực tế, điều này là không thể, vì trong các ứng dụng truyền thống, luật truycập được thiết kế không trong suốt.
3.3 Data confidentiality (Bảo mật dữ liệu)
Dữ liệu trao đổi qua mạng cần được bảo vệ, nhất là các dữ liệu nhạy cảm, các bí mật cá nhân
a Chiến lược bảo vệ dữ liệu truyền thống
Mã hóa là kỹ thuật chuẩn để bảo đảm an toàn cho dữ liệu trao đổi qua mạng Các ứng dụngyêu cầu bảo mật thường thiết lập kênh an toàn để trao đổi dữ liệu, sử dụng SSL (Secure SocketsLayer) / TLS (Transport Layer Security) SSL/TLS mã hóa toàn bộ dữ liệu trao đổi trên kênh
b Chiến lược bảo vệ dữ liệu trong SOA
SOA cho phép các doanh nghiệp dễ dàng tích hợp dịch vụ của họ với của đối tác, và thỏa mãncác yêu cầu của doanh nghiệp Tuy nhiên, lại có thêm một vấn đề phức tạp: thông tin khách hànglại vượt ra khỏi giới hạn sở hữu của doanh nghiệp, nghĩa là một doanh nghiệp có thể biết đượckhách hàng của doanh nghiệp đối tác, đây là điều không mong muốn Điều này làm cho chiếnlược bảo vệ dữ liệu truyền thống không còn đủ hữu ích để sử dụng trong SOA
3.4 Data integrity and nonrepudiation (Toàn vẹn dữ liệu và chống chối bỏ)
Khi một ứng dụng nhận một thông điệp, nó cần phải biết chắc thông điệp nhận được là củangười gửi mong muốn, không bị thay đổi bởi người thứ ba Nghĩa là, ứng dụng có trách nhiệmxác thực sự toàn vẹn dữ liệu nhận được Hơn nữa, người gửi không thể thoái thác hay từ chốirằng mình đã gửi Điều này quan trọng với cả người gửi và người nhận dữ liệu
a Chiến lược truyển thống để đảm bảo toàn vẹn dữ liệu và chống chối bỏ
SSL/TLS, được sử dụng bởi hầu hết các ứng dụng để chắc chắn sự bảo mật của dữ liệu traođổi qua mạng, đồng thời giúp cho việc xác thực tính toàn vẹn của dữ liệu nhận được và chốngchối bỏ
b Toàn vẹn dữ liệu và chống chối bỏ trong SOA
Như đã mô tả ở phần 3.3, trong SOA, kỹ thuật SSL/TLS không đảm bảo việc bảo mật dữ liệutrao đổi qua mạng, như vậy nó cũng không thể đảm bảo tính toàn vẹn dữ liệu và chống chối bỏ
3.5 Bảo vệ chống lại tấn công
Mọi ứng dụng mạng đều phải được bảo vệ trước sự tấn công Các cuộc tấn công đều nhằmvào ba loại điểm yếu sau:
Điểm yếu trong mã nguồn ứng dụng: Ví dụ, sự lỏng lẻo trong kiểm định thông tin nhập vàocủa người dùng trước khi thực thi nó trong một câu lệnh SQL cho phép những kẻ tấn côngđánh lừa ứng dụng thực thi những đoạn mã SQL tùy tiện, có thể gây hại hệ thống
Điểm yếu trong kỹ năng quản trị: Ví dụ, nếu quản trị hệ thống không thay đổi mật khẩu củangười dùng mặc định, kẻ tẩn công có thể lợi dụng điều này để vào hệ thống và chiếm lợi
Điểm yếu trong cơ sở hạ tầng mạng: TCP/IP có rất nhiều điểm yếu Thêm vào đó, TCP/IPvà hệ điều hành thường có những điểm yếu cố hữu có thể bị những kẻ tấn công khai thác
a Chiến lược truyền thống chống lại sự tấn công
Các phương pháp truyền thống để chống lại sự tấn công khá đa dạng:
Sử dụng tường lửa, tạo sự ngăn cách bên ngoài với các ứng dụng bên trong nhiều nhất cóthể
Chạy ứng dụng trong một “hộp cát” (đã có các chế độ bảo mật) để hạn chế thiệt hại khi bịtấn công
Kiểm tra mã nguồn ứng dụng cẩn thận
Sử dụng hệ thống có khả năng phát hiện xâm nhập để quản lý các hoạt động của ứng dụng
b Chiến lược chống tấn công trong SOA
Trong SOA, rất nhiều mã nguồn được phơi bày, một cách trực tiếp hay gián tiếp, cho các bênthứ ba, cơ hội tấn công hệ thống tăng lên nhiều lần Tính chất “mở” của các dịch vụ làm cho nódễ bị tấn công bởi kiểu tấn công từ chối dịch vụ (DoS)
Trang 103.6 Bảo vệ sự riêng tư
Các công ty thường bị ngăn chặn, bởi pháp luật hoặc hợp đồng, việc tiết lộ thông tin cá nhâncủa khách hàng cho bên thứ ba Do đó, các ứng dụng cũng phải được thiết kế và quản lý để tránhsự rò rỉ thông tin khách hàng
a Chiến lược truyền thống để bảo vệ sự riêng tư
Sự rò rỉ thông tin riêng xảy ra chủ yếu do hai nguyên nhân chính:
Lỗ hổng trong các luật điều khiển truy cập: ví dụ, một ứng dụng e-learning không nên chophép người khác, ngoại trừ người quản trị, được thấy những thông tin riêng của các thànhviên trong khóa học
Việc này có thể ngăn chặn bằng việc xem xét và kiểm tra kỹ để giảm thiểu tối đa các lỗ hổngtruy cập
Điểm yếu bị khai thác bởi những kẻ tấn công: điểm yếu có thể nằm trong ứng dụng hoặc từsự quản trị kém Ví dụ, sự lỏng lẻo trong việc kiểm tra thông tin người dùng nhập vào trướckhi thực thi câu lệnh SQL, kẻ tấn công có thể nhập vào các lệnh để truy vấn các thông tinnhạy cảm từ cơ sở dữ liệu
Việc này có thể ngăn chặn bằng cách tăng kỹ năng quản trị, kiểm tra bảo mật, hay sử dụngcác công cụ phát hiện xâm nhập
b Chiến lược bảo vệ sự riêng tư trong SOA
Với SOA, việc bảo vệ sự riêng tư có nhiều thách thức hơn Vì SOA cho phép dễ dàng gọidịch vụ từ nhiều bên, cơ hội vô tình chia sẻ thông tin khách hàng sẽ tăng lên
Trên đây, chúng ta đã tìm hiểu những khía cạnh chức năng của bảo mật, với cách sử dụngtruyền thống và những ánh hưởng cũng như không phù hợp của những phương pháp bảo mật ấytrong SOA
4 Các khía cạnh phi chức năng của bảo mật
4.1 Tính tương hợp
Một trong những nguyên lý cơ bản của SOA là đảm bảo tính tương hợp, nghĩa là một dịch vụ
có thể được sử dụng bởi bất cứ ai, bất kể sự khác biệt về nền tảng công nghệ Đó là một sự đảmbảo của SOA Như vậy, các phương pháp bảo mật cũng không được phá vỡ quy tắc này
a Chiến lược truyền thống để đảm bảo sự tương hợp
Khi chưa có SOA, sự tương hợp giữa các ứng dụng chưa được quan tâm, nên sự tương hợpcủa các phương pháp bảo mật cũng chưa được quan tâm nhiều
b Tính tương hợp trong bảo mật SOA
Với SOA, tính tương hợp không những là mục tiêu quan trọng, mà còn là mục tiêu bắt buộccần phải đạt được Điều ta mong muốn đó là một dịch vụ hoạt động trên bất kỳ nền tảng nào cũngđược bảo vệ, nhưng không ảnh hưởng tới khả năng tương hợp với các dịch vụ, ứng dụng khác
4.2 Khả năng quản lý
Khả năng quản lý đề cập đến sự dễ dàng trong việc quản lý hệ thống bảo mật, bao gồm cấuhình, dự phòng, kiểm tra và bảo trì
a Chiến lược truyền thống để đảm bảo khả năng quản lý
Các hệ thống truyền thống chưa quan tâm nhiều đến sự dễ quản lý hệ thống bảo mật, mà chỉchủ yếu dựa trên tài khoản người dùng và sự đồng bộ hóa mật khẩu
b Yêu cầu về khả năng quản lý trong SOA
Trong SOA, sự tương tác giữa các ứng dụng là rất nhiều, rất khó để biết các lựa chọn bảo mậtmà ứng dụng đưa ra là đúng đắn và dễ hiểu Nói cách khác, việc kiểm tra các chế độ bảo mật làrất khó nếu chúng ta không thay đổi cách quản lý truyền thống
4.3 Dễ dàng phát triển
a Chiến lược truyền thống
Trang 11Rất may mắn, các phương pháp bảo mật truyền thống cũng đã đảm bảo được phần nào tiêuchí này, các nhà thiết kế, phát triển và kỹ sư có thể hiểu và sử dụng chúng trong thực tế Thêmvào đó, các thư viện, framework và các tiện ích khác cũng giúp giảm gánh nặng cho các nhà pháttriển.
b Yêu cầu trong SOA
Trong SOA, các giải pháp bảo mật phức tạp hơn với hệ thống truyền thống Do đó, các giảipháp bảo mật trong SOA phải dễ dàng sử dụng và phát triển
5 Các xu hướng bảo mật mới cho SOA
5.1 Message-level security (Bảo mật mức thông điệp)
Như đã thảo luận, SOA yêu cầu những thay đổi trong việc bảo mật và toàn vẹn dữ liệu Bảomật mức thông điệp (ngược lại với bảo mật mức transport) là một phương pháp mới giải quyếtvấn đề này Với phương pháp này, các phần khác nhau của thông điệp có thể được bảo vệ theocách khác nhau, để đảm bảo chúng chỉ phù hợp với đối tượng được chỉ định
Trong ví dụ bên, ACME brokerage firm được tích hợp với một ngân hàng để tạo sự dễ dànghơn cho khách hàng trong việc trả tiền
mua hàng Tuy nhiên, trong các hệ thống
truyền thống, khách hàng phải tin tưởng
ACME khi cung cấp thông tin tài khoản
ngân hàng, đây là điều không phải ai cũng
muốn Phương pháp bảo mật mức thông
điệp đã giải quyết được khó khăn này
John bảo vệ phần thông điệp (thông tin tài
khoản ngân hàng) mà John chỉ muốn gửi
cho ngân hàng, theo một phương pháp bảo
mật khác với thông điệp mà John gửi cho
ACME
5.2 Bảo mật như một dịch vụ
Theo tư tưởng của SOA, việc bảo mật
cũng là một dịch vụ Một dịch vụ bảo mật
cho phép ứng dụng xác thực, phân quyền,
mã hóa/giải mã thông điệp, ký/niêm phong thông điệp và ghi log Nó cũng có thể bảo vệ thôngđiệp trước những điểm yếu
Ý tưởng của một dịch vụ bảo mật có điểm giống và khác so với dịch vụ ứng dụng thôngthường Điểm giống đó là, một dịch vụ bảo mật có thể được sử dụng bởi bất cứ ứng dụng nào, sựkhác biệt về công nghệ không phải là vấn đề Điểm khác đó là, một dịch vụ bảo mật hoạt độngngầm định trong hệ thống, ngay cả khi không được gọi tường minh Hãy xem ví dụ bên dưới,dịch vụ bảo mật là một phần của ESB:
Trang 12Trong mô hình trên, dịch vụ bảo mật là trung tâm, không thuộc về ứng dụng cụ thể nào, nó cóthể đáp ứng yêu cầu về bảo mật mà không ảnh hưởng đến ứng dụng nào Coi bảo mật như mộtứng dụng giúp giảm tải nhiều gánh nặng cho người phát triển, giúp họ tập trung vào việc pháttriển các dịch vụ kinh doanh SOA hỗ trợ các chuẩn như SAML (Security Assertion MarkupLanguage) và WS-Trust để thực thi các dịch vụ bảo mật.
5.3 Bảo mật theo chính sách
Dù giải pháp có tốt thế nào đi nữa, nếu nó không dễ dàng sử dụng và quản lý, nó không thể ápdụng trong thực tế Phần trước ta đã thảo luận các yêu cầu phi chức năng của các giải pháp bảomật SOA Bảo mật theo chính sách là một phương pháp mới đáp ứng những yêu cầu này
Ý tưởng của phương pháp Bảo mật theo chính sách khá đơn giản Những yêu cầu và cơ chếbảo mật không được áp cứng trong ứng dụng, mà phải khai báo động Việc khai báo động chínhsách bảo mật khá thuận tiện: Nó tách luồng bảo mật ra khỏi luồng nghiệp vụ, để luồng bảo mậtcho các chuyên gia bảo mật Nó đảm bảo sự chắc chắn cho các yêu cầu bảo mật phải tuân thủgiữa các ứng dụng Quan trọng hơn, tính tương hợp được nâng lên thành chính sách giúp các bên
so sánh để tìm ra phương án bảo mật khả thi
III SOA SECURITY THREATS
Threats (Mối đe dọa) - Theo Glossary of Key Information Security Terms của NIST, mối đe dọađược định nghĩa là: "Bất kỳ hoàn cảnh hoặc sự kiện có tiềm năng tác động bất lợi đến hoạt động
tổ chức (bao gồm cả nhiệm vụ, chức năng, hình ảnh, hoặc danh tiếng), tổ chức tài sản, cá nhânthông qua truy cập trái phép, phá hủy, tiết lộ, sửa đổi các thông tin và, hoặc từ chối dịch vụ".Trong SOA, mối đe dọa được tìm thấy ở những điểm sau:
1 Threats to service
Các service sẽ cung cấp phương tiện để tương tác với ứng dụng và hệ thống Trên thực tế, mỗiservice có thể trở thành một điểm bị tấn công Các yêu cầu bảo mật của hệ thống này có thể khácvới các yêu cầu bảo mật của dịch vụ client Ví dụ, ta có 1 service truy cập trực tiếp vào ứng dụngvà chỉnh sửa ứng dụng, điều mà không thể truy cập từ 1 client Cung cấp phân quyền cho 1 ứng
Trang 13dụng độc lập là rất khó Nếu việc phân quyền không chính xác, việc truy cấp có thể được chophép hoặc cấm
Do tính kết nối lỏng của hệ thống SOA, khả năng đảm bảo tính bảo mật và toàn vẹn chomessage cũng gặp nhiều khó khăn Giao thức transport level trước đây (như SSL/TLS) được sửdụng giữa 2 điểm cuối để đảm bảo an toàn và toàn vẹn thông tin trên đường truyền Bởi các dịch
vụ không có vị trí xác định bởi vậy nó không thể đoán được đâu là điểm cuối và liệu có thể tintưởng được Do đó thay vì sử dụng bảo mật transport level, người ta sử dụng message-level
2 Threats to service registration/deregistration
Kho luu trữ dịch vụ có thể trở thành điểm nhạy cảm của tấn công lặp lại Đối thủ có thể nắm bắtđược việc đăng ký hay hủy đăng ký của dịch vụ và tiến hành tấn công Kiểu tấn công lặp lại này
có thể dẫn đến tấn công DoS hay việc đăng ký service cũ không an toàn Đối thủ cũng có thể thựchiện việc tấn công điều tra theo cách tạo ra 1 hàng tồn kho có sẵn trong các dịch vụ có sẵn Đểngăn chặn kiểu tấn công này, việc phân quyền, xác thực, tích hợp và an toàn cần phải được duytrì trong suốt quá trình đăng ký cũng như hủy đăng ký
3 Use of standard
Bởi vì SOA dựa vào các chuẩn, điều đó bắt buộc các chuẩn cần phải có bảo mật chắc chắn Cácchuẩn được sử dụng trong SOA (hầu hết là chuẩn cho web service như là XML, SOAP, UDDI)không nhấn mạnh bảo mật Một vài giao thức cung cấp bảo mật bên trong các chuẩn như là SSLcho HTTP và mã hóa cho XML Một ví dụ khi sử dụng các chuẩn này có thể dẫn đến vấn đề vớitường lửa Một số công ty sử dụng tường lửa để kiểm soát tất cả các kết nối từ bên ngoài công ty.Khi SOA được cài đặt, HTTP và SSL được sử dụng Những giao thức này sử dụng cổng 80 và
443 để vượt qua tường lửa Điều này có thể trở thành một mối đe dọa đối với dịch vụ web đó.Các dịch vụ yêu cầu 1 ngôn ngữ miêu tả để mô tả những cái mà dịch vụ cung cấp và cái màdịch vụ yêu cầu Ngôn ngữ thường được sử dụng trpng SOA là WSDL (Web Service DescriptionLanguage) Những ngôn ngữ này nên sử dụng chuẩn mở để có tương thích với các dịch vụcustomer Những chuẩn mở này cũng cho phép các đối thủ có thể scan để tìm kiếm các lỗ hổngtrong dịch vụ của ta
Các kiểu tấn công điển hình :
Threat Category Threat Definition
Spoofing
Giả mạo
Có được quyền truy cập vào hệ thống bằng cách
sử dụng một identity bị đánh cắp như usernamevà password
Tampering Sửa đổi trái phép các dữ liệu
Repudiation Người sử dụng (hợp pháp hay không) phủ nhận
rằng họ đã thực hiện hành động hay 1 giao dịch
Nó xảy ra khi người dùng với quyền hạn cụ thể
có khả năng truy cập ứng dụng với mức cao hơn
để phá hủy hệ thống