Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
VII-O-4
QUY TRÌNH ĐÁNH GIÁ AN NINH CHO KDC
TRONG HỆ THỐNG MẠNG TRIỂN KHAI GIAO THỨC KERBEROS 5
Lê Hoài Nhâm, Dƣơng Bảo Quân,Lê Quốc Hoà,Trƣơng Phƣớc Hƣng
Trường Đại học Khoa học Tự nhiên,Đại học Quốc gia Thành phố Hồ Chí Minh
TÓM TẮT
Bài báo này trình bày quy trình đánh giá an ninh thông tin cho hệ thống mạng dùng Kerberos phiên bản 5
chạy trên một hệ điều hành cụ thể (CentOS 6.5). Quy trình đánh giá an ninh thông tin này được dựa theo các tài
liệu của CIS – một tổ chức cộng đồng mở cung cấp nhiều tài liệu về đánh giá an ninh thông tin. Quy trình đánh
giá bắt đầu bằng việc lập ra một danh sách liệt kê những chi tiết sẽ đánh giá dựa theo tiêu chuẩn của CIS, sau
đó xây dựng một công cụ đánh giá hệ thống dựa trên danh sách này. Sau khi có được kết quả của công cụ đánh
giá, các lỗ hổng tồn tại trên hệ thống sẽ được tìm ra và sẽ được vá lại.Ví dụ, một công cụ đã được xây dựng giúp
đảm bảo rằng mật khẩu được tạo bởi người dùng phải đủ mạnh để chống lại các kiểu tấn công từ điển hoặc vét
cạn. Quy trình đánh giá an ninh và các công cụ chúng tôi xây dựng có thể áp dụng ngay vào các hệ thống thực
tế, giúp nhân viên quản trị hệ thống tiết kiệm thời gian quản trị và bảo trì.
Từ khoá: Kerberos, chứng thực, đánh giá an ninh, gia cố hệ thống.
GIỚI THIỆU
Kerberos [1, [2] là một giao thức chứng thực mang lại độ tin cậy cao. Giao thức Kerberos được phát triển
bởi MIT (Massachusetts Institute of Technology) vào những năm 80 của thế kỷ XX.Mục tiêu của MIT khi xây
dựng Kerberos là một giao thức chứng thực trên môi trường mạng không an toàn giữa các máy tính được cho là
an toàn. Ngày nay, Kerberos được ứng dụng rộng rãi trong các sản phẩm thương mại và các tổ chức, doanh
nghiệp.Kerberos được tích hợp mặc định trong các phiên bản Microsoft Windows hiện tại.Active Directory một ứng dụng sử dụng giao thức Kerberos được Microsoft chỉnh sửa lại, được dùng rộng rãi trong các doanh
nghiệp.Apple cũng tích hợp Kerberos trong các sản phẩm Mac OS của mình.
Kerberos còn nhận được sự quan tâm nghiên cứu và ứng dụng vào nhiều lĩnh vực khác nhau: Quản lý bảo
mật mạng GMS bằng Kerberos 5 [3], ứng dụng tính năng single-sign-on của Kerberos vào giao thức VoIP[4],
thiết kế và cài đặt Kerberos 5 cho các thiết bị nhúng [5], tích hợp Kerberos và sinh trắc học vào các dịch vụ di
động [6], chứng thực Kerberos dựa trên địa điểm [7], chứng thực Kerberos bằng public key [8], cải tiến Kerbeors
dựa trên cải tiến thuật toán RSA [9].
Kerberos mang lại những ưu điểm nổi bật như chứng thực an toàn: không truyền mật khẩu qua mạng trong
quá trình chứng thực, khác với cách làm của đa số các giao thức chứng thực hiện tại; do đó tránh được cách tấn
công nghe lén mật khẩu trên đường truyền. Chứng thực cả 2 phía: trong một phiên chứng thực, ngoài việc máy
trạm chứng thực với máy chủ thì máy chủ cũng phải chứng thực với máy trạm.Đa số các giao thức chứng thực
khác không chứng thực máy chủ với máy trạm, do đó dễ dàng xảy ra tình trạng máy trạm bị lừa giao tiếp với
máy chủ giả mạo.Ngoài ra, Kerberos còn mang lại tính năng single-sign-on: máy trạm chỉ cần đăng nhập (nhập
mật khẩu) một lần và có thể sử dụng nhiều dịch vụ khác nhau trong một khoảng thời gian cho phép; máy trạm
không cần phải nhập mật khẩu lại mỗi lần sử dụng dịch vụ.Máy trạm chỉ cần sử dụng một mật khẩu duy nhất cho
tất cả các dịch vụ.
Tuy nhiên, ngoài các ưu điểm nổi bật đã nêu thì Kerberos cũng tồn tại một số nhược điểm.Nếu một hệ
thống sử dụng phương pháp chứng thực bằng Kerberos, cần đảm bảo rằng tất cả các dịch vụ đều chứng thực
thông qua Kerberos.Nếu tồn tại một giao thức không chứng thực thông qua Kerberos thì xem như độ tin cậy của
Kerberos cũng như của cả hệ thống không còn.Việc chuyển từ các giao thức chứng thực khác sang Kerberos
sẽtiêu tốn nhiều thời gian và công sức.Tất cả các dịch vụ màmáy trạm sử dụng dễ dàng bị xâm nhập nếu mật
khẩu bị đánh cắp, do máy trạm chỉ sử dụng một mật khẩu cho tất cả các dịch vụ.Thông tin của các tài khoản đều
được lưu trữ trên một máy chủ (được gọi là Key Distribution Center - KDC), máy chủ này cũng đảm nhận việc
chứng thực cho toàn hệ thống; nếu máy chủ này bị tấn công thì toàn hệ thống sẽ bị sụp đổ.
Kerberos cung cấp một cơ chế chứng thực mạnh trên đường truyền không an toàn giữa các máy tính được
cho là đáng tin cậy. Trên thực tế, những nguy hiểm của hệ thống thường do sự bất cẩn của người dùng gây ra,
nên giả thuyết các máy tính được cho là đáng tin cậy thường không đảm bảo. Đặc biệt với tầm quan trọng của
KDC, những cấu hình không thận trọng trên KDC sẽ dẫn đến những hậu quả tiềm ẩn khó lường.Dựa trên những
quan điểm đã nêu, bài báo này hướng đến việc xây dựng một quy trình đánh giá mức độ an toàn của KDC; từ đó
có thể mở rộng thành quy trình đánh giá mức độ an toàn cho một hệ thống mạng bất kỳ. Mục tiêu của quy trình
đánh giá này là tìm ra các lỗ hổng dựa trên những cấu hình không an toàn trên KDC, ví dụ như cấu hình cho
ISBN: 978-604-82-1375-6
24
Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
Kerberos sử dụng thuật toán mã hoá yếu (DES), cấu hình cho phép một phiên làm việc quá dài, .v.v… Từ đó,
chúng tôi đưa ra giải pháp gia cố các lỗ hổng này dựa trên các điều kiện hiện tại của hệ thống.
Nội dung trình bày tiếptheo của bài báođược tổ chức như sau: Mục II trình bày về giao thức Kerberos 5.
Đánh giá mức độ bảo mậtcủa KDC được mô tả trong mục III.Mục IV trình bày phần thảo luận.Mục V mô phỏng
chương trình minh hoạ.Kết luận và hướng phát triển được đề cập trong mục VI.
KERBEROS 5
Tổng quan giao thức Kerberos
Kerberos là một giao thức chứng thực mạng, được thiết kế bởi MIT vào thập niên 80 của thế kỉ
XX.Kerberos cung cấp các tính năng nổi bật sau: bảo mật, single-sign-on, chứng thực tập trung, chứng thực hai
chiều.
Bảo mật
Quá trình chứng thực của giao thức Kerberos là an toàn vì mật khẩu của người dùng không được truyền
qua mạng. Do đó kẻ xấu không thể nghe lén và không thể đánh cắp được mật khẩu.
Single-sign-on
Single-sign-on có nghĩa là người dùng chỉ cần chứng thực một lần để có thể sử dụng tất cả các tài nguyên
mạng có hỗ trợ Kerberos. Khi người dùng chứng thực bản thân với Kerberos ở đầu phiên làm việc, người dùng
sẽ được cấp một vé. Vé này sẽ được tự động chuyển đến dịch vụ mà người dùng muốn truy cập. Dịch vụ sẽ cho
phép người dùng truy cập nếu vé hợp lệ. Do đó người dùng không cần đăng nhập lại mỗi lần sử dụng dịch vụ mà
chỉ cần giữvé này, đây chính là single-sign-on. Ví dụ người dùng có thể sử dụng vé được cấp để truy cập vào các
máy chủ: ssh, ftp, pop3,… mà không cần phải chứng thực lại.
Chứng thực tập trung
Chứng thực tập trung có liên quan mật thiết đến single-sign-on. Kerberos sử dụng một máy chủ (gọi là
KDC) để chứng thực tất cả người dùng. Người dùng chỉ cần phải chứng thực bản thân mình với KDC để truy cập
các dịch vụ trong một hệ thống mạng sử dụng Kerberos. Thông tin chứng thực của tất cả người dùng đều được
lưu trữ tập trung ở KDC.
Chứng thực hai chiều
Khi truy cập tài nguyên trên mạng, chúng ta thường chỉ chứng thực bản thân với máy chủ cung cấp dịch vụ
mà quên rằng máy chủ đó có đáng tin cậy hay không.Với chứng thực hai chiều, cả người sử dụng và máy chủ
cung cấp dịch vụ đều phải chứng thực với bên còn lại, điều này giúp tránh khả năng giả mạo ở cả máy trạm và
máy chủ.
Các phiên bản Kerberos đầu tiên chỉ được nghiên cứu và thử nghiệm trong nội bộ MIT.Kerberos 4[10] là
phiên bản đầu tiên được MIT công bố rộng rãi vào năm 1989. Kerberos 4 đã được một số tổ chức chấp nhận và
họ đã sử dụngKerberos cho hệ thống của mình. Kerberos 5 được công bố vào năm 1993, được định nghĩa trong
RFC 1510, và được cập nhật trong RFC 4120 (năm 2005). Kerberos 5 là phiên bản mới nhất của Kerberos tính
đến thời điểm hiện tại. Kerberos 5 được phát triển để bổ sung những thiếu sót của Kerberos 4. Kerberos 5 được
thêm vào một số tính năng và những nâng cấp về bảo mật. Những tính năng được thêm vào Kerberos 5:
Credentials forwarding and delegation: tính năng này cho phép người dùng chuyển vé của mình đến một
máy khác khi người dùng đã chứng thực với máy đó. Ví dụ, khi người dùng đăng nhập vào máy chủ ssh bằng
Kerberos, bây giờ người dùng này muốn đăng nhập vào máy chủ tập tin (file server). Đối với Kerberos 4, người
dùng này phải chứng thực với KDC một lần nữa mới có thể đăng nhập vào máy chủ tập tin vì hiện tại người
dùng đang kết nối đến máy chủ tập tin từ máy chủ ssh, và máy chủ ssh không chứa vé của người dùng này. Điều
này gây ra một lỗ hổng bảo mật rất nghiêm trọng, giả sử người dùng đăng nhập vào máy chủ thông qua giao thức
telnet, khi người dùng chứng thực với KDC thì người dùng phải nhập mật khẩu, mật khẩu sẽ truyền qua mạng ở
dạng không được mã hóa từ máy của người dùng đến máy chủ telnet. Với Kereros 5, khi người dùng đăng nhập
và sử dụng máy chủ telnet, các vé của người dùng sẽ được chuyển qua máy chủ ssh, người dùng này không cần
phải chứng thực một lần nữa để sử dụng các dịch vụ khác.
Replay cache: Nhằm chống lại kiểu tấn công replay attack, replay cache lưu giữ thông tin của những người
dùng đã đăng nhập vào hệ thống trong một khoảng thời gian nhất định (mặc định là 5 phút), nếu một yêu cầu
đăng nhập được gửi đến có thông tin trùng với thông tin đang được lưu trữ, yêu cầu này sẽ bị huỷ và một thông
báo lỗi sẽ được trả về cho người dùng.
Chứng thực giữa các hệ thống: đối với Kerberos 5, người dùng của một hệ thống có thể sử dụng vé của hệ
thống này để đăng nhập vào một hệ thống khác (với điều kiện các hệ thống đã cấu hình cho phép tính năng này).
Các thuật toán mã hóa mạnh hơn: Kerberos 5 sử dụng các thuật toán mã hoá an toàn như 3DES,
AES,…Thuật toán mã hoá DES vẫn được hỗ trợ nhưng không khuyến khích sử dụng.
Pre-authentication: Kerberos 4 luôn gửi trả về mô ̣t AS _REP khi có mô ̣t AS _REQ, điề u này dẫn đế n kh ả
năng bi ̣tấ n công từ điể n hoă ̣c vét ca ̣n . Giả sử kẻ xấu gửi AS _REQ với mô ̣t principal nào đó , KDC sẽ ta ̣o mô ̣t
ISBN: 978-604-82-1375-6
25
Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
AS_REP đươ ̣c mã hóa bởi khóa bí m ật của principal này và gửi về cho kẻ xấ u . Lúc này kẻ xấu có thể sử dụng
cách tấn công từ điể n hoă ̣c vét ca ̣n để tim
̀ ra khóa bí m ật của principal này, và không phải ai trong chúng ta cũng
có thói quen đặt m ật khẩu đủ ma ̣nh .Kerberos 5 cung cấ p mô ̣t tin
́ h năng là pre -authentication nhằ m giảm thiể u
khả năng tấn công từ điển hoă ̣c vét ca ̣n xảy ra .Pre-authentication yêu cầ u máy tr ạm phải chứng minh bản thân
trước khi đươ ̣c nhâ ̣n đư ợc AS_REP. Có nhiều cách được sử dụng để làm pre -authentication, tuy nhiên mã hóa
timestamp là cách thường đươ ̣c dùng nhấ t . Khi mô ̣t máy tr ạm gửi mô ̣t AS _REQ, và KDC có sử dụng pre authentication, KDC sẽ gửi mô ̣t KRB_ERROR về cho máy trạm.KRB_ERROR giúp máy tr ạm biế t rằ ng KDC sử
dụng pre-authentication và máy tr ạm phải ta ̣o mô ̣t authenticator (timestamp đươ ̣c mã h óa bằng khóa bí m ật của
máy trạm) sau đó gửi authenticator và AS _REQ đế n cho KDC .Nế u authenticator đươ ̣c chấ p nhâ ̣n , KDC sẽ gửi
AS_REP đế n cho máy tr ạm.Nế u không , KDC sẽ gửi KRB _ERROR thông báo rằ ng pre -authentication đã thấ t
bại.
Ngoài phiên bản Kerberos được phát triển ban đầu bởi MIT, còn có một số phiên bản Kerberos được phát
triển bởi các tổ chức khác (ví dụ như các tổ chức Heimdal, Microsoft, Apple). Một số phiên bản là mã nguồn
mở, số còn lại là phiên bản thương mại.
Cách hoạt động của giao thức Kerberos 5
Hình 17. Cách thức hoạt động của giao thức Kerberos 5
Một hệ thống mạng sử dụng giao thức chứng thực Kerberos 5 (Hình 1.) gồm các thành phần sau: các máy
trạm sử dụng dịch vụ, các máy chủ cung cấp dịch vụ, và máy chủ chứng thực (còn gọi là KDC – Key
Distribution Center).
Kerberos sử dụng một tư tưởng chứng thực sáng tạo: vé. Mỗi người dùng sẽ được cấp một vé khi chứng
thực với KDC.Sau đó người dùng sẽ sử dụng vé này để yêu cầu các vé tương ứng với các dịch vụ mà người dùng
muốn truy cập.
Khi một máy trạm muốn truy cập và sử dụng các dịch vụ, trước tiên máy trạm cần trao đổi gói tin với
KDC.Đầu tiên, máy trạm gửi một gói tin có tên là Authentication Server Request (còn gọi là AS_REQ) đến
KDC để yêu cầu truy cập dịch vụ.Gói tin AS_REQ là gói tin chứa văn bản thuần tuý không được mã hoá, chứa
các thông tin như định danh của máy trạm, giờ hiện tại của máy trạm, và principal của KDC.Khi AS nhận được
AS_REQ, AS sẽ kiểm tra xem principal có tồn tại hay không, và giờ hệ thống của máy trạm có trùng khớp với
giờ của KDC hay không (có thể chênh lệch tối đa là 5 phút). Quá trình kiểm tra này không có mục đích chống lại
kiểu tấn công replay attack, vì thông tin trong AS_REQ là ở dạng văn bản không mã hóa. Mục đích của quá trình
kiểm tra này là để thông báo cho máy trạm biết khi giờ hệ thống của máy trạm và KDC không trùng khớp với
nhau. Một thông báo lỗi sẽ được gửi đến máy trạm khi quá trình kiểm tra thất bại và máy trạm sẽ không được
chứng thực.
Nếu AS_REQ hợp lệ, AS sẽ phát sinh một chuỗi ngẫu nhiên làm khóa phiên. Khóa phiên này sẽ được chia
sẻ giữa máy trạm và TGS. Khóa này dùng để mã hóa các gói tin được tạo bởi máy trạm để yêu cầu vé từ TGS.
KDC sẽ tạo ra 2 bản của khóa này, một gửi cho máy trạm và một cho TGS.
AS sẽ trả lời máy trạm với gói tin có tên là Authentication Server Reply, còn gọi là AS_REP. Gói tin này
gồm 2 phần: khóa phiên được tạo bởi AS; thông tin về máy trạm đã qua kiểm tra, và một bản sao chép của khóa
phiên được tạo bởi AS, các thông tin này được mã hóa bởi khóa bí mật của TGS. Tất cả các thông tin trên sau đó
được mã hóa bởi khóa bí mật của máy trạm (được tạo từ mật khẩu của người dùng). Khi nhận được AS_REP,
máy trạm sẽ dùng khóa bí mật của mình để giải mã và lấy khóa phiên. Phần được mã hóa bởi khóa bí mật của
TGS được gọi là TGT, máy trạm không thể giải mã phần TGT này. Khi máy trạm gửi TGT cho TGS, TGS sẽ
dùng khóa bí mật của mình để giải mã và lấy khóa phiên. Khi đó, máy trạm và TGS đã có khóa phiên và dùng
khóa phiên này để mã hóa và giải mã các gói tin tiếp theo.
ISBN: 978-604-82-1375-6
26
Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
Qua phần đầu của quá trình trao đổi khóa ở trên, có thể thấy rằng khóa bí mật của máy trạm đóng vai trò
quan trọng trong việc an toàn của giao thức Kerberos. Bởi vì AS dễ dàng gửi AS_REP cho bất cứ ai, kẻ xấu hoàn
toàn có thể lấy được một AS_REP và dò ra mật khẩu của người dùng bằng các phương pháp như tấn công vét
cạn (brute force), tấn công từ điển (dictionary attack) nếu mật khẩu quá đơn giản. Do đó, việc đặt mật khẩu phức
tạp và không chia sẻ cho bất cứ ai là điều rất quan trọng.
ĐÁNH GIÁ MỨC ĐỘ BẢO MẬT CỦA KDC
Giới thiệu về CIS
CIS (Center of Internet Security) là một tổ chức phi lợi nhuận và là một cộng đồng bao gồm:
Những chuyên gia về bảo mật trong lĩnh vực công nghệ thông tin sẵn sàng chia sẻ kiến thức và kinh
nghiệm với người khác để phát triển những cấu hình bảo mật chuẩn cho một hệ thống công nghệ thông tin từ các
thiết bị mạng, hệ điều hành, ứng dụng cho đến những thiết bị di động.
Những công ty, tổ chức là thành viên của CIS hỗ trợ tài chính giúp CIS có thể phát triển, đưa ra những
nguồn tài liệu bảo mật dựa trên sự thống nhất (consensus-based).Do đó, những thành viên này cũng ảnh hưởng
chủ yếu đến việc CIS chỉ định nguồn phát triển đối với từng dự án nhất định.
CIS thông qua những sáng kiến đóng góp của người sử dụng máy tính (end-users) từ các tổ chức nhà nước,
các trường đại học, cao đẳng, và các công ty trong mọi lĩnh vực; kết hợp với những nhà phát triển phần cứng,
phần mềm, những công ty phát triển và tư vấn bảo mật… để giúp những công ty, doanh nghiệp có thể quản lý
những rủi ro liên quan đến bảo mật thông tin bằng cách cung cấp những phương pháp, công cụ để đo lường,
quản lý và cải thiện tình trạng bảo mật của những hệ thống và thiết bị có kết nối với Internet.
Nhiệm vụ chính của CIS là thiết lập và đẩy mạnh việc sử dụng những tiêu chuẩn dựa trên sự thống nhất
(consensus-based standards) để nâng cao mức độ bảo mật và tính cá nhân trong một hệ thống có kết nối Internet
(Internet-connected system).
Nguồn tài liệu chính mà CIS phát triển và phát hành là:
Những cấu hình bảo mật chuẩn (Security Configuration Benchmarks): diễn tả những kỹ năng thực hành tốt
nhất cho việc cấu hình bảo mật cho một hệ thống từ thiết bị, hệ điều hành cho đến các ứng dụng.
Công cụ kiểm tra theo các chuẩn của CIS (Benchmark Audit Tool)
Hệ đo lường mức độ bảo mật (Security Metrics): cung cấp cho các quản trị mạng có những hiểu biết sâu
hơn về mức độ bảo mật của hệ thống mình.
Tiêu chuẩn bảo mật của CIS dành cho MIT Kerberos
Theo tiêu chuẩ n mà CIS đưa ra đươ ̣c áp du ̣ng cho phầ n cấ u hình của MIT
bao gồ m 4 hạng mu ̣c chính:
Kerberos Runtime
KDC Congiguration (kdc.conf)
Kerberos Configuration (krb5.conf)
Kerberos Database Access Control List (kadm5.acl)
Kerberos mà chúng tôi cài đă ̣t
Kerberos Runtime
Trong hạng mu ̣c này CIS đưa ra các tiêu chuẩ n cấ u hình bảo mâ ̣t về người sở hữu (owner) của các tập tin
thực thi trên hê ̣ thố ng, và quyền truy cập tập tin với người sở hữu (owner), nhóm (group), đố i tươ ̣ng khác (other).
Ví dụ trường hợp cụ thể về yêu cầu của CIS đ ối với ― KDC Daemon (krb5kdc)‖ có đường dẫn cu ̣ thể là
/usr/bin/krb5kdc:
Đối tượng sở hữu (owner) của tập tin này phải là root:root.
Cấ m quyề n ghi vào tâ ̣p tin đố i với nhóm (group) và các đối tượng khác (other).
KDC Configuration (kdc.conf)
Trong hạng mu ̣c này CIS đề câ ̣p đế n các giá tri ̣đươ ̣c cấ u hình trong t ập tinkdc.confvà có cả yêu cầu về
quyề n đố i với mô ̣t số tâ ̣p tin cu ̣ thể .
Ví dụ một trường hợp cụ thể về yêu cầu của CIS đối với giá trị cấu hì nh trong tâ ̣p tin kdc.conf: CIS yêu cầ u
mô ̣t thuâ ̣t toán mã hoá ma ̣nh đươ ̣c sử du ̣ng trong quá trin
̀ h thương lươ ̣ng khoá và truyề n vé cho các máy tr ạm:
Đường dẫn đến tập tin: /var/kerberos/krb5kdc/kdc.conf
Giá trị được cấu hình có tên là: master_key_type
Các giá trị được cho phép sử dụng là : aes256-cts-hmac-sha1-96, aes128-cts-hmac-sha1-96, des3-cbc-sha1,
arcfour-hmac-md5
ISBN: 978-604-82-1375-6
27
Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
Kerberos configuration (krb5.conf)
Trong hạng mu ̣c này cũng tương t ự so với h ạng mu ̣c trước (KDC Configuration)chỉ khác m ột điểm là áp
dụng cho tập tin /etc/krb5.conf. Tập tin này chứa thông tin cấu hình của hệ thống Kerberos, bao gồm thông tin
định danh cho KDC và các máy chủ cung cấpứng dụng.Các chính sách cấu hình trong tập tin này là rất quan
trọng, vì chỉ cần một lỗi cấu hình sai của người quản trị sẽảnh hưởng đến toàn hệ thống Kerberos.
Một vài thông tin cấu hình tiêu biểu cho Kerberos mà CIS yêu cầuđánh giá như: Phân quyền truy cập tập
tin chứa các khoá mã hoá, quy định về thuật toán mã hoátrên đường truyền, các thuật toán không được sử dụng,
thời gian sử dụng của vé, …
Kerberos Database Access Control List
Về cơ bản Kerberos có một hệ quản trị cơ sở dữ liệu riêng, lưu trữ thông tin về tài khoản của người quản trị
và các người dùng. Ngoài thông tin về tên người dùng và mật khẩu còn có các thông tin kèmtheo nhằm quy định
về chính sách cho từng người dùng cụ thể.
Đểhạn chế các rủi ro về cơ sở dữ liệu Kerberos có một trình quản lý quyền truy cập vào cơ sở dữ liệu gọi là
kadmind.Khi tài khoản của một người dùng bị tấn công thìkadmind có nhiệm vụhạn chế khả năng làmảnh hưởng
tới các người dùng khác.
Các thông tin mà tổ chức CIS yêu cầuđánh giá có thể kể đến như: Phân quyền truy cập tập tin cấu hình
Kerberos ACL, phiên bản của các khoá khác nhau, nhânđôi các khoáphiên, …
Quá trình thực hiện
Quy trin
̀ h biên soa ̣n tâ ̣p tin danh sách các hạng mu ̣c kiể m tra (checklist)
Về nguyên lý tổ chức CIS áp dụngnguyên tắc chia để trị cho bài toánđánh giáan ninh cho hệ thống
Kerberos. Tức là từ một hệ thống mạng Kerberos CIS chia ra thành các mô-đun, và từ các mô-đun đó sẽ có
cáchạng mục liên quan tới nó cần đượcđánh giá mức độ bảo mật. Từđó tổ chức CIS xây dựng lên một bộ
checklist, quy định nghiêm ngặt về cáchạng mục cần đượcđánh giátheo thứ tự từng thành phần một.
Checklist mà CIS cung cấp chỉáp dụng được cho quá trìnhđánhgiáan ninh thủ công. Điều này gây tốn thời
gian cho việcđánh giá một hệ thống mạngđang hoạtđộng liên tục.Quy trin
̀ h mà các công ty làm về đánh giá an
ninh thông tin cho hê ̣ thố ng m ạng được trình bày ở Hình 2.Họ biên soa ̣n tâ ̣p tin XML để có th ể đánh giá h ệ
thống một cách tự đô ̣ng.
Hình 18. Quy trình biên soạn tập tin các hạng mục cần kiểm tra
Bƣớc 1: Tìm kiếm checklist phù hợp của tổ chức CIS quy định về việc đánh giá an ninh cho hệ thống
mạng sử dụng giao thức Kerberos của MIT.
Bƣớc 2: Đọc hiểu từng hạng mục một trong checklist về: nội dung chính của từng hạng mục, rủi ro về lỗ
hổng được miêu tả, cách thức thực hiện việc đánh giá, thực hiện việc đánh giá thử nghiệm, …Sau khi hiểu hết
chi tiết từng hạng mục một thì tiến hành xậy dựng tập checklist để đánh giá tự động. Đây là tập tin XML, các
hạng mục được định nghĩa theo cấu trúc XML. Đây là bước cực kỳ quan trọng trong giai đoạn xây dựng
checklist, bởi vì chỉ cần một lỗi nhỏ xảy ra trong cấu trúc XML sẽ khiến ta phải chỉnh sửa lại toàn bộ tập tin
XML này.
Bƣớc 3: Yêu cầu cần đạt được trong bước này là tạo ra một checklist với tập tin XML hoàn thiện. Từ tập
tin XML có được trong bước 2 chúng tôi tiến hành kiểm tra tự động với chương trình tự viết bằng ngôn ngữ Perl,
để chỉnh sửa những lỗi nhỏ nhất có thể.
Miêu tả cấ u trúc của tâ ̣p tin XML
Về cơ bản cấ u trúc của tâ ̣p tin XML bao gồ m các hạng mu ̣c cầ n đươ ̣c kiể m tra khi chương trình th ực thi.
Cấu trúc của mỗihạng mục bao gồm cácthẻtheo cú pháp của XML quy định.
Sau đây là cấu trúc tổng quát cho mộthạng mục được miêu tả trong tập tin XML:
ISBN: 978-604-82-1375-6
28
Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
Mỗi hạng mục đều cóđịnh dạng giống nhau về các thông tin như: Miêu tả lỗ hổng
(thẻ), rủi ro có thể khi mắc phảilỗhổng này (thẻ), cách
thứcđánh giá (thẻ) và liên kết tham khảo (thẻ ) thông tin
vềlỗhổng này trên trang Web chính thức của MIT.Các hạng mu ̣c có các chin
́ h sáchđánh giá khác nhau s ẽ đươ ̣c
phân biê ̣t dựa vào thẻ Số nguyên. Mỗi số nguyên khác nhau sẽ có nhi ều cách đánh giá khác
nhau, theo yêu cầ u của CIS cho MIT Kerberos thì khi biên soa ̣n ra tâ ̣p tin XML có 10 cách đánh giá khác nhau .
Các cáchđánh giá tiêu biểu như là: Kiểm tra thông tin cấu hình của một tập tin cụ thể, kiểm tra phân quyền truy
cập tập tin bằng cách thực thi lệnh trên Shell của hệđiều hành CentOS, thực hiện câu truy vấn đến cơ sở dữ liệu
của Kerberos, …
Sau đây là một vài ví du ̣ cu ̣ thể về các cấ u trúc c ủa các hạng mu ̣c được miêu tả một cách chi tiếttheo phiên
bản thủ công của CIS trong tâ ̣p tin xml.
Ví dụ 1:
The Kerberos database administration utility is implemented as an executable command
line tool, kadmin.local. Ensure access to the Kerberos administration server reflects least
privilege.
Ensuring that access to the Kerberos database administration utility reflects least privilege
will in-turn help ensure the integrity and availability of KDC operations.
0
stat -L --format "%U:%G %A" /usr/sbin/kadmin.local
root:root -rwxr-xr-x
http://web.mit.edu/kerberos/krb5current/doc/admin/admin_commands/kadmin_local.html
Giải thích :Đối với h ạng mu ̣c này có yêu c ầu làđánh giá an ninh cho tiệních quản trị cơ sở dữ liệu của
Kerberos, theo miêu tả trong thanh có giá trị = 0, chương trình s ẽ thực thi dòng lê ̣nh trong
thẻ để kiểm tra phân quyền truy cập tập tin /usr/sbin/kadmin.local và lấy kết quả
kiể m tra xem kế t quả có giố ng như CIS khuyế n nghi ̣hay không . Nếu giống thì kết luận dành cho hạng mục này
làPASS, ngược lại làFINDING.
Ví dụ 2:
The allow_weak_crypto directive determines if weak encryption types are permitted. Ensure
this directive is configured to disallow weak encryption types.
Ensuring that weak encryption types are disallowed reduces the probability of sensitive
information becoming compromised. These encryption types are considered "weak" because there are
cryptographic attacks that significantly reduce the search space or the search space is small relative to modern
computing power. These algorithms are typical very old and use small key sizes.
1
/etc/krb5.conf
[libdefaults]
allow_weak_crypto
ISBN: 978-604-82-1375-6
29
Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
false
false
http://web.mit.edu/kerberos/krb5current/doc/admin/conf_files/krb5_conf.html#libdefaults
Giải thích: Đối với hạng mu ̣c đươ ̣c yêu c ầu kiể m tra thông tin c ấu hình trong tập tin /etc/krb5.conf. Giá trị
trong thanh là 1, thuô ̣c loa ̣i kiể m tra giá tri ̣cấ u hin
̀ h trong tâ ̣p tin . Chương trình sẽ mở tập
tin có đường dẫn/etc/krb5.conf, phạmvi kiểm tra trong vùng[libdefaults], kiểm tra dòng bắt đầu với
chuỗiallow_weak_crypto được gán giá trị là true hay false. Nếu là false thìhạng mục này được kết luận làPASS,
còn ngược lại thì kết luận làFINDING.
Ý nghĩa của tập XML mang lại: Giúp mô-đun hoá các thành phần, mang tính kế thừa cao và giúp chương
trìnhđánh giá hoạt động uyển chuyển hơn. Giả sử hai năm sau tiêu chuẩn CIS cập nhật checklist thì ta chỉ cần
cập nhật lại tập tin XML mà không cần chỉnh lại mã nguồn của chương trìnhđánh giá.
THẢO LUẬN
Bài báo tập trung vào việcđánh giáan ninh cho hệ thống mạng sử dụng giao thức Kerberos của MIT. Chúng
tôi chỉđánh giá mức độ bảo mật về cấu hình của KDC. Độan toàn của giao thức Kerberos không được đề cập
trong bài báo này.
Việc đánh giá mức độ bảo mật của các cấu hình trên máy chủ KDC (là thành phần quan trọng nhất trong hệ
thống mạng sử dụng giao thức chứng thực Kerberos) là một việc làm rất cần thiết và thực tế.Kerberos là một
giao thức chứng thực hoạt động giữa các máy tính (giả thuyết là đáng tin cậy), trên một môi trường mạng không
an toàn. Từ giả thuyết này, thấy rõ việc trao đổi các gói tin trên mạng là hoàn toàn đáng tin cậy.Tuy nhiên giả
thuyết các máy tính đáng tin cậy là một giả thuyết không đảm bảo. Những sơ suất trong việc sử dụng máy tính,
hay việc tuỳ chỉnh các cấu hình không an toàn là nguyên nhân dẫn đến các lỗ hổng bảo mật nghiêm trọng. Việc
tuỳ chỉnh các cấu hình không an toàn càng trở nên nghiêm trọng hơn đối với các máy chủ. Giả sử người quản trị
máy chủ KDC tuỳ chỉnh cấu hình cho phép người dùng đặt mật khẩu đơn giản, hay sử dụng thuật toán mã hoá
không an toàn là một trong những nguyên nhân dẫn đến những lỗ hổng bảo mật của hệ thống mạng sử dụng
Kerberos. Mật khẩu người dùng có thể bị đánh cắp bởi các cách thức tấn công như tấn công vét cạn, tấn công từ
điển nếu mật khẩu đơn giản. Hoặc các thông điệp trao đổi dễ dàng bị giải mã nếu sử dụng thuật toán mã hoá
không an toàn.
CHƢƠNG TRÌNH MINH HOẠ
Công cụ đánh giá tự động
Trong quá trình thực hiện đánh giá bảo mật của Kerberos, chúng tôi nhận thấy việc đánh giá bảo mật cho
Kerberos nói riêng, và một hệ thống bất kỳ nói chung, là một việc làm tiêu tốn nhiều thời gian. Do đó, chúng tôi
đã xây dựng một công cụ hỗ trợ đánh giá bảo mật của Kerberos một cách tự động, công cụ này sẽ giúp tiết kiệm
đáng kể thời gian và công sức của người quản trị hệ thống. Giúp người quản trị hệ thống có nhiều thời gian đối
với các công việc quan trọng hơn: gia cố những lỗ hổng bảo mật đã được phát hiện trong quá trình đánh giá.
Cách thức hoạt động của công cụ đánh giá tự động được mô tả trong Hình3.:
Hình 3. Các bước thực hiện của công cụđánh giá tự động
Bƣớc 1: Chương trình hoạt động trên giao diện dòng lệnh và nhận tham số đầu vào là đường dẫn đến tập
tin checklist XML và tập tin mẫu báo cáo.
Bƣớc 2: Chương trình sẽ thao tác tập tin XML, và tạo thành một danh sách liên kết. Tương ứng với mỗi
thành phần của danh sách liên kết là một hạng mục cần đánh giá.
ISBN: 978-604-82-1375-6
30
Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
Bƣớc 3: Chương trình sẽ đánh giá từng hạng mục được miêu tả trong danh sách liên kết và cho ra kết luận
đánh giá là PASS hay FINDING. Các hành động mà chương trình thực hiện để đánh giá hệ thống là: kiểm tra tập
tin cấu hình của Kerberos, kiểm tra chính sách phân quyền thư mục và tập tin, truy vấn vào cơ sở dữ liệu của
Kerberos, …
Bƣớc 4: Khi đã có kết luận là PASS hay FINDING của từng hạng mục, chương trình sẽ xuất kết quả đánh
giá ra tập tin HTML. Tập tin này ghi lại về hiện trạng của hệ thống Kerberos theo tiêu chuẩn của CIS, miêu tả
các lỗ hổng đang tồn tại trên hệ thống. Chúng ta cần có chính sách cụ thể để lưu trữ tập tin báo cáo này.
Công cụ gia cố an ninh hệ thống
Viê ̣c gia cố cho hê ̣ thố ng là mô ̣t vấ n đề hế t sức khó khăn và phức ta ̣p . Vì công việc này yêu cầu người gia
cố phải có kiế n thức thâ ̣t chuyên sâu và hiể u chi tiế t về hê ̣ thố ng mình s ẽ gia cố .Nế u mô ̣t vấ n đề nhỏ xảy ra có
thể tạo ra các lỗ hổng bảo mật mới, hoặc làm cho hê ̣ thố ng ngưng hoa ̣t đô ̣ng và gây hâ ̣u quả rấ t lớn .
Tạo tài khoản với mật khẩu an toàn
Trong phầ n cấ u hiǹ h của Kerberos có p hầ n Plugins nhưng mă ̣t đinh
̣ ch ức năng này đã đươ ̣c tắ t . Sau khi
nghiên cứu , chúng tôi quyế t đinh
. Vì trong quá
̣ gia cố cho hê ̣ thố ng Kerberos về vấ n đề ta ̣o mâ ̣t khẩ u an toàn
trình triển khai hệ thống Kerberos, chúng tôi đã gă ̣p mô ̣t số lỗi bảo mâ ̣t nghiêm tro ̣ng trong viê ̣c ta ̣o các tài khoản
cho: cơ sở dữ liê ̣u (database), quản trị (admin), các người dùng (users). Do đó chúng tôi quyế t đinh
̣ cho ̣n h ạng
mục này để gia cố.
Hình 4. Công cụ hỗ trợ tạo tài khoản với mật khẩu an toàn
Để phu ̣c vu ̣ cho việc gia cố về vấ n đề ta ̣o mâ ̣t khẩ u an toàn chúng tôi tiế n đế n viế t mô ̣t công c ụ(Hình 4.) có
các chức năng sau đây:
Nhâ ̣p tên người dùng và mật khẩu.
Không cho phép nhâ ̣p mật khẩu rỗng.
Không cho phép mật khẩu trùng hay là chuỗi con của tên người dùng.
Không cho phép m ật khẩu trùng với bô ̣ từ điể n đươ ̣c quy đinh
̣ : viê ̣c sử du ̣ng bô ̣ từ điể n không nhấ t thiế t
phải tuân theo một bộ từ điển nào mà có thể tuỳ biến đối với đặc thù ngôn ngữ của mỗi quố c gia hay các tổ chức.
Truy câ ̣p vào cơ sở dữ liê ̣u của Kerberos và thêm tài khoản vào .
Công cụ hỗ trợ cấp, huỷ vé và chọn thuật toán mã hoá
Nhận thấy các chương trình Kerberos trên máy trạm Linux khó sử dụng đối với người dùng cuối; việc thay
đổi cấu hình cũng như việc thay đổi các thuật toán mã hóa theo nhu cầu của người dùng gặp hạn chế. Người
dùng cuối bắt buộc phải đọc các tài liệu về cấu hình Kerberos trên máy trạm, việc này không đem lại tính tiện
dụng khi sử dụng.Chúng tôi đã quyết định phát triển một công cụ hỗ trợ cho máy trạm Linux.
Công cụ hỗ trợ cho máy trạm Linux cung cấp cho người dùng một giao diện trực quan, dễ sử dụng.Giúp
cho việc yêu cầu một vé, hủy một vé trở nên dễ dàng và thân thiện hơn. Ngoài ra, một trong những tính năng
quan trọng mà công cụ hỗ trợ này đem lại chính là khả năng hỗ trợ người dùng chọn các thuật toán theo nhu cầu
cá nhân. Việc lựa chọn thuật toán mã hóa khi trao đổi gói tin đóng vai trò không kém quan trọng so với các phần
khác của hệ thống, vì vấn đề cốt lõi đem đến sự bảo mật vẫn là dựa trên các thuật toán mã hóa. Nếu người dùng
chọn thuật toán mã hóa yếu thì việc bẻ khóa sẽ rất dễ dàng; hoặc người dùng để các tùy chọn trong tập tin cấu
hình là mặc định sẽ dẫn đến trường hợp máy chủ dịch vụ sử dụng thuật toán mã hóa kém an toàn và máy trạm
vẫn chấp nhận kết nối. Công cụ này hỗ trợ người dùng chọn một thuật toán mã hóa nhất định trong quá trình trao
ISBN: 978-604-82-1375-6
31
Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
đổi gói tin, tránh trường hợp chấp nhận một cách không kiểm soát các thuật toán mã hóa khi giao tiếp với máy
chủ. Các chức năng của công cụ như sau:
Yêu cầu một vé mới.
Hủy vé đã yêu cầu.
Chọn thuật toán mã hóa mặc định khi trao đổi gói tin.
Hình 5. Côngcụ cấp, huỷ vé và chọn thuật toán mã hoá
Công cụ này được viết bằng ngôn ngữ lập trình python (Hình 5.).Chúng tôi quyết định chọn python là vì
python là một ngôn ngữ lập trình mạnh mẽ, dễ sử dụng, và được cài đặt sẵn trên đa số các hệ điều hànhLinux.
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
Chúng tôi đã đề xuất được một quy trình đánh giá an ninh thông tin cho hệ thống sử dụng Kerberos, từ đó
mở rộng ra quy trình đánh giá an ninh thông tin cho một hệ thống mạng bất kỳ. Quy trình này đáp ứng được nhu
cầu thực tế hết sức cần thiết: kiểm tra các lỗ hổng bảo mật do sơ suất trong cấu hình hệ thống, hay do thiếu kiến
thức bảo mật dẫn đến việc cấu hình không đúng đắn. Từ quy trình đã đề xuất, chúng tôi cũng đã xây dựng thành
công một công cụ hỗ trợ việc đánh giá một hệ thống hoàn toàn tự động, giúp tiết kiệm thời gian và công sức của
người quản trị hệ thống. Chúng tôi cũng đã xây dựng được các công cụ hỗ trợ gia cố những lỗi bảo mật thường
gặp nhưng ít được quan tâm: sử dụng mật khẩu yếu và thuật toán mã hoá không an toàn.
Hướng phát triển:
Xây dựngcông cụ giúp đánh giá và gia cố toàn diện một hệ thống mạng bất kỳ; giúp đảm bảo mức độ an
toàn của hệ thống mạng của các tổ chức, doanh nghiệp.
Xây dựng bộ trọng sốđể tính điểm bảo mật cho từnghạng mục và cho cả hệ thống Kerberos. Từđó giúp
người quản trị biếtđượcđộan ninh của hệ thốngđang ở mức nào.
Lời cảm ơn:Nhóm tác giả xin chân thành cảm ơn đến Quý Thầy Cô khoa Công Nghệ Thông Tin,
trường Đại học Khoa Học Tự Nhiên đã động viên, góp ý và giúp đỡ nhóm hoàn thành bài báo.
ISBN: 978-604-82-1375-6
32
Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
AN AUDIT PROCESS OF SECURITY LEVEL ON KDC IN
NETWORK SYSTEMS USING KERBEROS 5
Le Hoai Nham, Duong Bao Quan, Le Quoc Hoa, Truong Phuoc Hung
University of Science, VNU-HCM
ABSTRACT
This paper presents the audit process of the security level in the network systems using Kerberos version 5
running on a particular operating system (CentOS 6.5). This process is based on CIS’s documents – a
community organization providing many documents about auditing. First of all, the process of auditing a system
starts by making a checklist based on CIS standard, then we build a tool to check the system according to this
checklist. After getting the results of the audit process, security holes of the system can be found and will be
patched. For instance, a tool is made to make sure the passwords created for users are strong enough to against
brute-force attack or dictionary attack. Our proposed audit process and its application could be immediately
applied to real systems to help the administrators in saving time for management and maintain.
TÀI LIỆU THAM KHẢO
[1] C. Neuman and T. Ts’o, Kerberos: an authentication service for computer networks, IEEE Communications
Magazine32 (1994) 33-38.
[2] C. Neuman, T. Yu, S. Hartman, and K. Raeburn, The Kerberos network authentication service (V5),IETF
RFC 4120(2005).
[3] M.Jaiganesh and B.Ramdoss, Security Management in Kerberos V5 for GMS Network, International
Conference on Computing, Communication and Networking(2008).
[4] Jung-Shian Li,Chuan-Kai Kao, and Shiou-Jing Lin, A Kerberos-based Single Sign-On System for VoIP SIP
Servers and Clients with a Terminal Mobility Capability,International Symposium on Computer,
Communication, Control and Automation2(2010) 75-80.
[5] Kazunori Miyazawa, Design and Implementation of Kerberos Version 5 for Embedded Devices,IEEE
International Conference on Industrial Informatics(2010) 449-453.
[6] Fengling Han, Mohammed Alkhathami, and Ron Van Schyndel, Biometric-Kerberos Authentication
Scheme for Secure Mobile Computing Services,International Congress on Image and Signal
Processing3(2013) 1694–1698.
[7] N.T. Abdelmajid, S. Shepherd, K. Mahmoud, Location-Based Kerberos Authentication Protocol, IEEE
International Conference on Social Computing(2010) 1099 - 1104.
[8] Sufyan T. Faraj Al-Janabi and Mayada Abdul-salam Rasheed, Public-Key Cryptography Enabled Kerberos
Authentication, Developments in E-systems Engineering(2011) 209-214.
[9] Dahui Hu, Zhiguo Du, An improved Kerberos protocol based on fast RSA algorithm, IEEE International
Conference on Information Theory and Information Security (2010) 274-278.
[10] S.P. Miller, B. C. Neuman, J. I. Schiller, and J.H. Saltzer, Kerberos Authentication and Authorization
System,Massachusetts Institute of Technology (1987).
ISBN: 978-604-82-1375-6
33
... chương trình ánh giá THẢO LUẬN Bài báo tập trung vào việcđánh gi an ninh cho hệ thống mạng sử dụng giao thức Kerberos MIT Chúng ch đánh giá mức độ bảo mật cấu hình KDC Đ an toàn giao thức Kerberos. .. TRIỂN Chúng đề xuất quy trình đánh giá an ninh thông tin cho hệ thống sử dụng Kerberos, từ mở rộng quy trình đánh giá an ninh thông tin cho hệ thống mạng Quy trình đáp ứng nhu cầu thực tế cần thiết:... dụngnguyên tắc chia để trị cho toánđánh gi an ninh cho hệ thống Kerberos Tức từ hệ thống mạng Kerberos CIS chia thành mô-đun, từ mô-đun có cáchạng mục liên quan tới cần đượcđánh giá mức độ bảo mật Từđó