Software Restriction Policy (tức SRP) - tiện ích giới
hạn chính sách phần mềm
Software Restriction Policy (tức SRP) - tiện ích giới hạn chính sách phần
mềm - được giới thiệu lần đầu tiên vào tháng 10 năm 2001 cùng với sự ra
đời của Microsoft Windows XP Professional. Từ đó cho đến nay, tiện ích
này có một cuộc sống khá trầm lặng, trầm lặng hơn bất cứ cái gì bạn có
thể nói đến. Mục đích của loạt bài này là mang SRP ‘trở lại cuộc sống’
trong thế giới thực, để khuyến khích cộng đồng quản trị viên trên thế
giới suy nghĩ lại về các chính sách phần mềm và thậm chí có thể triển
khai SRP trong thiết lập mạnh nhất của nó: sử dụng mô hình
Whitelisting.
Tại sao lại là SRP?
Người dùng doanh nghiệp hiện nay cộng tác với nhau bằng e-mail, tin nhắn
tức thời, các ứng dụng ngang hàng thay vì kiểu gặp mặt truyền thống hay gọi
điện thoại vốn gây nhiều tốn kém hơn trước đây. Họ sử dụng Internet để tìm
kiếm và chia sẻ thông tin. Các hình thức này ngày càng phổ biến thì những đe
doạ từ mã độc hại cũng ngày càng tăng. Người dùng thường mang theo dữ
liệu ‘ngoài tầm kiểm soát’ vào bộ nhớ, máy nghe nhạc MP3, v.v… liên tục từ
nhà đến văn phòng quan rồi từ văn phòng về nhà. Dữ liệu đó có thể đơn giản
như Word, Excel cho tới phức tạp hơn như game, công cụ hack và cả
malware. Ngày nay ở phương tây (và sẽ là ở Việt Nam trong tương lai gần),
máy tính xách tay phổ biến hơn máy để bàn. Chúng được kết nối tới các
mạng ‘ngoài tầm kiểm soát’ bao gồm cả mạng đi dây cũng như tất cả các kiểu
công nghệ không dây, khiến chúng tự đặt mình vào nguy cơ cao bị xâm hại
bởi mã độc và các cuộc tấn công.
Từ sự phân tích trên, chúng ta có thể thấy có nhiều lý do vì sao ngày nay cần
phải triển khai SRP:
Điều doanh nghiệp mong muốn
Để bảo vệ trước các nguy hiểm:
nhất:
Phần mềm độc hại (malware);
phần mềm gián điệp (spyware);
Bảo vệ được máy tính trước khả virus; trojan horse; các cuộc tấn
năng bị xâm phạm. công từ chối dịch vụ (DoS); bị lộ
dữ liệu riêng tư hoặc dữ liệu
doanh nghiệp….
Game và các phần mềm không
Ngăn chặn được phần mềm không
chính thống khác làm giảm hiệu
mong muốn chạy trên máy tính
suất và tiêu tốn tài nguyên mạng,
của doanh nghiệp.
tài nguyên máy tính.
Chạy phần mềm trái phép trên
Ngăn chặn được phần mềm không mạng doanh nghiệp có thể dẫn
bản quyền chạy trên máy tính đến một số vấn đề về luật pháp.
doanh nghiệp. Không một tổ chức nào muốn bị
các nhà chức trách “sờ gáy”.
Ngăn chặn xung đột ứng dụng mà
Cấm phần mềm không được hỗ có thể dẫn đến khả năng phá hoại
trợ chạy trên máy tính doanh hệ thống, không tương thích với
nghiệp. phần mềm chính thống, các vấn
đề gỡ lỗi phức tạp…
Cấm phần mềm không rõ nguồn Những thứ mà bạn không biết
gốc chạy trên máy tính doanh rằng có thể (hay sẽ có thể) gây
nghiệp. nguy hại cho bạn.
Sẽ phải mất rất nhiều tiền để khắc
phục hậu quả sau khi máy tính
Giảm được tổng chi phí bản
doanh nghiệp bị nhiễm virus và
quyền sở hữu (TCO).
có thể gặp phải một nguy hiểm
khác đã đề cập ở trên.
Hầu hết mọi quản trị viên và các nhà quản lý đều muốn loại trừ nguy hiểm từ
virus máy tính và các đối tượng khác đề cập đến trong bảng 1. Điều này có
thể thực hiện được thông qua SRP. Trong SRP, chúng ta sẽ định nghĩa như
thế nào là một file thực thi và điều khiển ActiveX nào có thể chạy. Nếu đó
chỉ là các script nâng cao và được đánh dấu kỹ thuật số, chúng có thể chạy.
Chúng ta có thể đưa ra quy định bắt buộc rằng chỉ có các ứng dụng nâng cao
mới được phép chạy trên máy tính doanh nghiệp bằng cách sử dụng công
nghệ tích hợp sẵn. Chúng ta có thể khoá các client, đôi khi thậm chí cả server
để chúng thực hiện trong phạm vi không hơn không kém theo những gì bạn
muốn. Tiện ích này hoàn toàn miễn phí và nằm ngay trước mắt chúng ta.
Các Software Restriction Policy (tức SRP) thực thi tại thời gian chạy. Người
dùng sẽ nhận một khối thông báo như trong hình 1 khi cố gắng chạy mã
không được chấp thuận. Hình 2 thể hiện trình đơn popup cho các script bị
cấm.
Hình 1
Hình 2
Với SRP, thậm chí bạn có thể giới hạn một quản trị viên cục bộ không được
thực thi mã khác ngoài ý bạn. Nhiều công ty cung cấp cho người dùng thông
thường đặc quyền quản trị bởi gặp phải nhiều vấn đề khác nhau giữa đặc
quyền và ứng dụng. Nhưng với SRP chạy trên phần đầu chương trình cài đặt,
các quản trị viên mạng có thể cảm thấy hầu như tuyệt đối an toàn.
Bạn có thể nói rằng người dùng của mình không thể cài đặt phần mềm trái
phép do bi giới hạn đặc quyền (không phải là quản trị viên cục bộ), nhưng sự
thật thì tất cả mọi kiểu file thực thi đều có thể chạy và thực hiện hoạt động
không mong muốn. Ví dụ như với tiện ích nhỏ ProduKey, sẽ rất hữu ích nếu
bạn quên mã số sản phẩm, chẳng hạn của Exchange, Office, SQL hay bản
thân hệ điều hành Windows khi muốn cài đặt chúng. Nhưng dưới góc nhìn
của một nhà quản trị thì tiện ích này để lại một vấn đề lớn: ngay cả người
dùng bị giới hạn cũng có thể đọc được mã số sản phẩm trên máy cục bộ. Điều
đó có nghĩa là người dùng hoàn toàn có thể truy lục ra bộ khoá bản quyền
(VLK) và cài đặt lên máy tính gia đình của họ hay bất cứ nơi nào họ thích
bằng bản quyền VLK doanh nghiệp đã lấy được.
Blacklisting và Whitelisting
Hình thức lọc cổng đầu tiên trên router mạng đầu những năm 90 của thế kỷ
trước được cấu hình chỉ loại bỏ một số cổng cụ thể, và cho phép tất cả các
thành phần còn lại ở bên ngoài, trên mạng Internet được đi qua. Quản trị viên
mạng luôn bị chậm một bước so với hacker, những kẻ thường xuyên thay đổi
cách thức tấn công để liên tục thâm nhập được vào dịch vụ mới. Ví dụ như
ngay sau khi quản trị viên loại bỏ nguy hiểm sắp đến cho TELNET thì
RLOGIN hay FTP đã bị tấn công. Đó là cuộc chạy đua vũ trang không có
điểm dừng, dẫn đến sự ra đời của nguyên tắc tường lửa “Default Deny” (từ
chối mặc định). Sẽ không có gì được cho phép mặc định trừ khi bạn định
nghĩa ra một số ngoại lệ.
Thử nhìn vào các ứng dụng diệt virus bạn sẽ thấy chúng cần được update dấu
hiệu virus liên tục để nhận dạng mã nào không nên chạy trên máy tính trong
mạng. Vậy tại sao chúng ta không đảo ngược lại tiến trình, định nghĩa cái gì
cần chạy và bỏ lại tất cả những thứ khác ở đằng sau. Thực trạng như vậy
cũng giống như với tất cả ứng dụng phần mềm chạy ở mọi máy tính trên thế
giới ngày nay. Tại sao cứ phải mặc định chạy tất cả thành phần ở một phần
mềm trong khi hầu hết mọi trường hợp chúng ta đều biết chính xác ứng dụng
nào cần để khởi động trong môi trường? Vì sao không giới thiệu nguyên tắc
“từ chối mặc định tất cả các ứng dụng” trên máy tính client và đưa ra ngoại lệ
cho quy tắc mặc định về ứng dụng người dùng muốn chạy?
Phương thức “Từ chối mặc định tất cả các ứng dụng” còn được gọi là
Whitelisting (WL). Khi cầu hình SRP trong chế độ WL, Default Security
Level (mức bảo mật mặc định) được thiết lập là “Disallowed” (không cho
phép). Sau đó, một số quy tắc bổ sung với các ngoại lệ cho mặc định mới
được tạo. Như vậy có nghĩa là không có file nào được thực thi trên máy tính
trừ phi bạn mô tả nó trong một chính sách.
Nếu muốn sử dụng WL, bạn cần một doanh sách hoàn chỉnh phần mềm được
phép sử dụng. Và nếu muốn dùng hàm băm HASH cho phương thức nhận
dạng, bạn cần truy cập vào file thực thi. Nếu thích sử dụng nguyên tắc chứng
chỉ, bạn cần hoặc là một file chứng chỉ (.CER hay .CRT), hoặc là chỉ cần
truy cập vào file thực thi đã được đánh dấu.
Blacklisting (BL) là Default Security Level sau khi cho phép SRP, còn được
biết đến với cái tên “mô hình không giới hạn”. Người ta ví BL như là ‘dã
tràng xe cát’, một công việc không bao giờ kết thúc và không có mức bảo
mật như WL. Với số lượng lớn lại phong phú đa dạng của các loại mã độc,
thật khó có thể loại bỏ tất cả chúng chỉ thông qua “dấu hiệu mã” hay sử dụng
tên file. Tại sao phải duy trì danh sách hàng triệu kiểu malware - một danh
sách luôn tăng nhanh không ngừng- thay vì có thể quản lý danh sách chỉ từ
50 đến 100 ứng dụng cần thiết bên trong một tổ chức?
Khi xem xét dưới góc độ khả năng quản lý, BL dễ dàng hơn nhiều cả trong
triển khai. Nhưng đơn giản là nó không thể có mức bảo mật tốt như WL. BL
phù hợp cho kiểu quản lý máy tính lỏng lẻo. Nếu muốn khoá chặt chẽ hệ
thống để máy tính được giới hạn cao và an toàn thì WL là lựa chọn tốt nhất
cho đến nay.
Công cụ ‘kiểm chứng khái niệm’ Gpdisable do Mark Russinovich tạo ra một
vài năm trước đây là một ví dụ tốt giải thích cho lý do vì sao WL lại đánh bật
được BL. Với Gpdisable hay một công cụ tương tự, ngay cả người dùng giới
hạn cũng có thể loại bỏ được các group policy đang chạy trên một Windows
client (có SRP), trừ phi SRP được thi hành khi dùng Whitelisting.
Chỉ có “Default deny all application” là sẽ vượt qua được sự kiểm chứng của
thời gian. Đáng tiếc chúng ta vẫn cần dùng các phần mềm diệt virus để bảo
vệ máy tính của mình trước mã và file thực thi độc hại. Đừng quên rằng SRP
“chỉ” ngăn chặn phần mềm không mong muốn chạy trên máy cục bộ. Nó vẫn
có thể mang file thực thi lên ổ cứng hay dưới dạng file đính kèm trong thư
điện tử mà không vấp phải xung đột với bất cứ chính sách nào.
Tương lai
Hy vọng rằng Microsoft sẽ tiếp tục tạo chương trình chấp nhận ứng dụng mới
dễ dàng hơn trong những năm tới. Sẽ rất tuyệt nếu có thể ‘nhập’ một SRP hay
giá trị số của hàm băm (HASH) cho một ứng dụng. Điều này sẽ đòi hỏi các
hãng phần mềm thuộc nhóm thứ ba phân phối một SRP ‘mẫu’ cho các ứng
dụng của họ để người quản trị mạng có thể dễ dàng nhập chúng vào, thay vì
phải tự tạo chính sách một cách thủ công. Những “mẫu” này sẽ gồm có giá trị
băm của tất cả thực thi và đòi hỏi phải có thư viện liên kết động (DDL).
Đáng tiếc, hiện nay vẫn còn quá ít hãng phần mềm sử dụng công nghệ đánh
dấu mã. Hy vọng rằng họ sẽ sử dụng các chứng chỉ số cho công nghệ này
thường xuyên hơn trong tương lai.
Tôi muốn chia sẻ một ý tưởng để quản trị WL dễ dàng hơn. Với các quy tắc
hàm băm (HASH), người quản trị phải mở GPO (Group Policy Object) và
dẫn file... Nếu chương trình này được kịch bản hoá và lập biểu thời gian,
người quản trị mạng sẽ phải đặt file thực thi vào một thư mục “phê chuẩn”
trung tâm (đặc quyền NTFS phải được thiết lập phù hợp). Khi script chạy, nó
sẽ tạo giá trị băm (hash) tự động và thêm giá trị vào chính sách “không giới
hạn” trong một GPO cụ thể. Với chứng chỉ cũng có thể làm tương tự, chỉ cần
đặt chứng chỉ vào thư mục trung tâm, chờ script hay tiến trình xuất hiện và
sau đó phần mềm được chấp thuận trên mạng. Vâng, đó mới chỉ là một giấc
mơ. Hy vọng ai đó sẽ biến nó thành sự thực vào một ngày không xa, có thể
chính là Microsoft chưa biết chừng.
Kết luận
Software Restriction Policy (SRP) đã xuất hiện và đi vào hoạt động được xấp
xỉ 6 năm. Tuy nhiên bây giờ nó vẫn là một thứ ‘chưa phổ biến’ mặc dù thực
sự tiện ích này có thể mang đến mức bảo mật rất cao cho cả client và server.
Khi được áp dụng một cách chính xác, Software Restriction Policy sẽ nâng
cao đáng kể tính toàn vẹn cho máy trong tổ chức của bạn với phí tổn thậm chí
thấp hơn tổng chi phí bản quyền trong một thời gian dài.
Ở phần tiếp theo của loạt bài này chúng ta sẽ xem SRP được thiết kế, triển
khai và cấu hình như thế nào.