Bảo mật Linux
Bảo mật Linux
Tại sao cần phải bảo mật hệ thống
Trong thế giới thay đổi từng ngày trong việc truyền thông dữ liệu toàn cầu, những kết nối Internet rẻ tiền và tốc độ ngày một nhanh hơn
Bảo mật Linux
Tại sao cần phải bảo mật hệ thống
Trong thế giới thay đổi từng ngày trong việc truyền thông dữ liệu toàn cầu, những kết nối
Internet rẻ tiền và tốc độ ngày một nhanh hơn thì việc bảo mật hệ thống là một vấn đề hết sức
hữu ích. Bảo mật là một đòi hỏi thiết yếu bởi vì những máy tính mang tính toàn cầu đang ngày
càng trở nên kém an toàn. Thử tưởng tượng một gói dữ liệu khi di chuyển từ điểm A sang điểm
B, gói dữ liệu này có thể đi qua nhiều điểm trên mạng và nếu như tại một máy nào đó người sử
dụng có thể lấy thông tin trên gói dữ liệu này và biết các thông tin chi tiết của máy gửi, họ có thể
sử dụng các kỹ thuật cao để truy nhập bất hợp pháp vào máy gửi và có thể phá hỏng máy này
hoặc toàn bộ hệ thống tùy theo mức độ thao tác. Những thao tác mà các người sử dụng bất hợp
pháp này có thể làm trên hệ thống là ăn cắp thông tin hệ thống, từ chối các dịch vụ sử dụng trên
hệ thống.
Mục đích của việc bảo mật là thông báo cho người sử dụng, phòng ban trong hệ thống biết các
vấn đề về việc bảo vệ thông tin và kỹ thuật của họ. Các luật bảo mật cũng chỉ dẫn cho họ biết
thông tin về các máy mà họ có thể gặp trong đường mạng.
Bảo mật là gì ?
Trước hết phải nhận ra một điều là không có một hệ thống nào là hoàn toàn bảo mật tuyệt đối.
Tất cả những gì mà nhà quản trị có thể làm là tăng thêm sự khó khăn cho người dùng khi họ có ý
định thâm nhập hệ thống. Nhà quản trị hệ thống cần phải quyết định sự cân bằng giữa các mục
đích, ý định sử dụng của hệ thống. Cần phải quyết định mức độ bảo mật cần thiết cho hệ thống
của mình.
Đối với các nhà cung cấp sản phẩm thì mục tiêu của họ là cung cấp càng nhiều các dịch vụ càng
tốt, đơn giản hóa các việc sử dụng dịch vụ trong hệ thống, và nói chung là tất cả những gì mà họ
có thể làm để cho sản phẩm có thể tiêu thụ nhiều. Việc này vô hình chung đã làm cho nhà quản
trị hệ thống trở nên phức tạp hơn. Bởi vì các dịch vụ đa dạng má các nhà cung cấp phát triển có
thể trở thành cổng sau cho các cracker có thể thâm nhập hệ thống.
Như vậy, có thể mô tả sự tác động của việc này đối với các nhà quản trị như sau :
+ Các dịch vụ chống lại các vấn đề bảo mật : như đã nói ở trên thì các dịch vụ mà các nhà cung
cấp sản phẩm phát triển có thể cho phép người dùng sở hữu các nguồn tài nguyên trên hệ thống
và dĩ nhiên là điều này hoàn toàn không đòi hỏi một chứng thực nào cả. Đây là một việc hết sức
nguy hiểm cho hệ thống và nhiệm vụ của nhà quản trị là cần phải quyết định hạn chế các dịch
vụ cần thiết trong hệ thống hơn là bảo mật cho các dịch vụ này.
+ Dễ dàng trong sử dụng thì khó khăn trong bảo mật : một hệ thống mà dễ dàng cho phép sự
thâm nhập của người dùng là một điều hết sức nguy hiểm cho việc bảo mật hệ thống. Nên có cơ
chế chứng thực cho mỗi sử dụng, điều này có thể gây rắc rối trong việc sử dụng nhưng nó làm
cho hệ thống trở nên an toàn hơn, đặc biệt nếu có thể thì nên áp dụng cơ chế chứng thực thường
xuyên để tăng thêm phần bảo mật cho hệ thống.
+ Kết quả của sự bảo mật chính là giảm sự mất mát thông tin : việc thiết lập các cơ chế bảo
mật như sử dụng firewall, cơ chế chứng thực, nghiêm ngặt trong vấn đề sử dụng tương ứng sẽ
làm giảm bớt sự mất mát thông tin, mất mát dịch vụ, … Điều này tương ứng với cái giá phải trả
cho các nhà quản trị.
Cần phải bảo vệ những gì trong hệ thống
Trước khi quyết định việc bảo mật hệ thống thì nhà quản trị cần phải biết xem mình cần phải
bảo vệ những gì trong hệ thống đó. Những thông tin sau có thể giúp cho nhà quản trị có thể biết
thêm thông tin về những vấn đề cần bảo vệ trong hệ thống :
+ Sự liều lĩnh trong bảo mật : có thể khiến cho một người thâm nhập không hợp pháp có thể
thành công trong việc thâm nhập. Liệu người này có thể thực thi các chương trình trong hệ thống,
hay truy cập các tập tin hệ thống cũng như làm hại đến hệ thống. Những hoạt động này có thể
khiến cho hệ thống ngừng hoạt động không, họ có thể khiến cho hệ thống trở nên rối tung, …
+ Luồng : thông thường khi một người sử dụng thâm nhập vào hệ thống không có chứng thực thì
thread chính là cách thông thường mà họ được cung cấp. Nhà quản trị cần phải quyết định xem
những người nào được phép truy cập vào hệ thống thông qua mạng và những phân luồng nào mà
họ được phép sử dụng. Có rất nhiều người thâm nhập qua hệ thống thông qua phân luồng này,
nhà quản trị cần phải xem xét họ là một trong những kiểu người thâm nhập nào dưới đây :
Curious : loại thâm nhập vào hệ thống và chỉ muốn xem hệ thống thuộc loại nào cũng
như những dữ liệu của hệ thống.
Malicious : loại này thường làm chết hệ thống mà họ xâm nhập, thay đổi website hệ
thống, hoặc là khiến cho nhà quản trị phải tốn nhiều thời gian trong việc khôi phục lại
những gì mà họ phá hoại.
Hight-Profile Intrunder : loại xâm nhập này thường cố gắng sử dụng hệ thống mà họ
đang thâm nhập để truy cập ra bên ngoài, hoặc có thể là để quảng cáo cho tài năng của
chính mình.
Competition : loại này thì thích thú với các thông tin dữ liệu trong hệ thống. Họ có thể là
một người nào đó mà có thể nghĩ rằng hệ thống của nhà quản trị có gì đó hấp dẫn đối với
họ.
Borrower : loại này thích thong dong trong hệ thống của nhà quản trị, sử dụng các dịch vụ
server như irc, DNS, …
Leapfrogger : loại này thích sử dụng hệ thống của nhà quản trị để kết nối với các hệ
thống khác, nếu như hệ thống của nhà quản trị có chức năng hoạt động như một gateway
thì họ thường cố gắng làm cho hệ thống trở nên không tin tưởng đối với các hệ thống
khác.
Phát triển quy tắc bảo mật
Việc tạo nên một quy tắc bảo mật đơn giản, tổng quát cho hệ thống để mọi người dùng trong
hệ thống có để đọc hiểu nó dễ dàng và thực hành theo. Điều này có thể bảo vệ dữ liệu của hệ
thống được an toàn như là các thông tin riêng tư của các người dùng. Một số điều cần nhận biết
để thêm vào là : ai là người được quyền kết nối vào hệ thống, ai được phép cài đặt các phần
mềm, ai là người sở hữu các dữ liệu, …
Một quy tắc bảo mật tổng quát chấp nhận được khởi đầu bằng câu như sau :
Cái gì không cho phép thì sẽ bị cấm
Các bước để phát triển các quy tắc bảo mật
Việc thiết lập quy tắc bảo mật đòi hỏi phải qua các bước nhất định mà nhà quản trị cần phải
tuân thủ chặt chẽ :
+ tìm xem những gì mà nhà quản trị cần phải bảo vệ trong hệ thống, cũng như là tìm hiểu
xem là cần phải bảo vệ từ những địa điểm nào.
+ quyết định các phân luồng, xem xét các tiến trình đang tiếp diễn và tìm xem tiến trình
nào làm suy yếu hệ thống để tối ưu hệ thống.
Một trong những lý do quan trọng để thiết lập các quy tắc bảo mật là phải chắc chắn rằng nó có
tác động đáng giá cho việc phát triển các việc bảo mật này. Chẳn hạn như cần phải biết các tài
sản trong hệ thống bao gồm những gì, có thể ví dụ một hệ thống thông thường bao gồm những
tài nguyên sau :
+ phần cứng : CPU, bảng mạch chính, bàn phím, màn hình, máy trạm, máy cá nhân, máy
in, ổ đĩa, các đường truyền thông, router, …
+ phần mềm : nguồn của các chương trình, các chương trình object, các util, nhìn chung là
các chương trình hữu ích cho hệ thống.
+ dữ liệu : đang thực thi, lưu trữ trên mạng, backup, nhật ký hằng ngày,
+ nhân lực : người dùng, những người cần thiết hoạt động trên hệ thống.
+ tài liệu : trong chương trình, phần cứng, hệ thống, các hàm cục bộ quản trị.
+ tài nguyên cung cấp : giấy, mẫu in, các phương tiện hổ trợ hệ thống khác.
Có một số vấn đề cần nhận rõ khi phát triển một quy tắc bảo mật mà nhà quản trị không thể bỏ
qua được liệt kê dưới đây là :
+ ai là người được phép sử dụng tài nguyên
+ các mục đích của việc sử dụng tài nguyên
+ ai là người được chứng thực cho việc sử dụng các kết nối và sử dụng trên
+ ai có thể là người có thể quản trị hệ thống
+ quyền lợi và nhiệm vụ của người dùng trong hệ thống là gì
+ quyền lợi và nhiệm vụ của nhà quản trị ngược lại đối với các người dùng trong hệ
thống.
+ cần phải làm gì với các thông tin nhạy cảm
Chúng ta sẽ thảo luận rõ hơn trong phần sau đây các thông tin nói trên :
+ ai là người được phép sử dụng tài nguyên : một bước cơ bản là nhà quản trị phải quyết
định ai là người được phép sử dụng tài nguyên và dịch vụ trong hệ thống. Quy tắc này
nhất thiết phải chỉ định rõ ràng ai là người được chứng thực sử dụng các dịch vụ này.
+ mục đích của việc sử dụng các tài nguyên : sau khi quyết định được ai là người được
phép sử dụng tài nguyên trên hệ thống thì một điều cần thiết là cung cấp các hướng dẫn
cho những việc sử dụng tài nguyên hệ thống được chấp nhận. Nhất thiết nhà quản trị cần
phải có những hướng dẫn khác nhau cho nhiều loại người dùng khác nhau. Quy tắc cần
phải chỉ định những sử dụng cho phép cũng như những sử dụng không cho phép. Cũng
cần thiết là chỉ định những loại người dùng bị ngăn cấm. Nên chỉ định một cách hạn chế
các người dùng và chứng thực. Những điểm trình bày dưới đây nên được kiểm tra trước
khi phát triển một bảo mật sử dụng chấp nhận được :
có cho phép phá vỡ các account
có cho phép phá vỡ các mật mã
việc ngắt các dịch vụ trong hệ thống có cho phép không
một người dùng có cần một chứng thực để đọc các thông tin trong một tập tin có
thể đọc không
có cho phép người dùng có thể hiệu chỉnh các tập tin không thuộc sở hữu của họ
thậm chí ngay cả khi họ được quyền thay đổi tập tin
người dùng có nên chia xẻ account không
đa số câu trả lời cho các câu hỏi trên là ‘không’.
+ ai là người được chứng thực sử dụng các kết nối và các quyền lợi : quy tắc bảo mật
của hệ thống nên hiển thị ai là người được chứng thực cho phép sử dụng các dịch vụ. Sau
đó là quyết định các kiểu kết nối mà họ được phép truy cập. Nếu như nhà quản trị không
điều khiển được người nào được phép sử dụng các kết nối đến hệ thống thì dĩ nhiên họ
cũng không thể điều khiển được người dùng nào hiện diện trên hệ thống. Việc điều
khiển được người dùng nào được phép truy cập vào hệ thống còn có thể giúp cho nhà
quản trị có thể phát hiện ai đang sử dụng hệ thống khi có vấn đề xảy ra đối với hệ thống.
Cũng xuất phát từ vấn đề bảo mật thì nhà quản trị cần phải xem xét cơ chế mà họ tạo
các tài khoản. Trong trường hợp lõng lẻo nhất, một người sử dụng có chứng thực chấp
nhận được kết nối vào hệ thống sẽ có thể trực tiếp truy cập vào hệ thống và tạo tài
khoản thủ công thông qua các cơ chế tạo tài khoản của nhà cung cấp sản phẩm. Tổng
quát thì cơ chế này cung cấp một sự tin tưởng tuyệt đối đối với người đang vận hành
chúng, và dĩ nhiên là người dùng này có một số lượng lớn những đặc quyền trong hệ
thống. Nếu đây là lựa chọn của nhà quản trị thì họ nên lựa chọn một số người tin tưởng
để trình bày tác vụ này. Một lựa chọn khác là sử dụng một hệ thống thêm để các người
dùng chứng thực có tài khoản chạy.
+ ai là người có đặc quyền quản trị hệ thống : một điều hết sức là cần thiết trong vấn đề
bảo mật là hết sức cẩn thận trong việc quyết định ai là người có đặc quyền quản trị hệ
thống. Việc hạn chế các đặc quyền này là hết sức cần thiết. Mặc khác chỉ nên cung cấp
đầy đủ các đặc quyền để họ có thể thao tác được các dịch vụ mong muốn. Một điều nữa
là các người dùng nắm giữ các đặc quyền nên khai báo tài khoản của mình đến trung tâm
bảo mật của hệ thống. Nếu người dùng được nhà quản trị cung cấp các đặc quyền này
không có tài khoản thì có thể họ sẽ là một sự nguy hiểm cho hệ thống.
+ quyền lợi và nghĩa vụ của người dùng : người dùng nên biết rõ quyền lợi và nghĩa vụ
của mình đối với hệ thống nhằm đáp ứng đầy đủ các yêu cầu của nhà quản trị. Những
chủ đề dưới đây là một số những điều mà nhà quản trị cần phải hiểu rõ trong các lĩnh vực
này :
những chỉ dẫn mà nhà quản trị cung cấp ( nơi mà người dùng bị ngăn cấm, và hơn
nữa là những ngăn cấm này là gì )
nơi mà người dùng có thể chia sẽ tài khoản của mình hoặc cho phép người khác
sử dụng tài khoản của họ.
có thể bảo mật đến cỡ nào khi người dùng sử dụng password
người dùng thường thay đổi mật mã như thế nào và những mật mã nào bị chặn
hoặc cho phép.
nơi mà nhà quản trị có thể cung cấp các người dùng backup
ẩn giấu các thông tin mà có thể hữu ích cho người khác
các quy tắc đối với việc truyền thông điện tư
+ nên làm gì đối với các thông tin nhạy cảm : trước khi cho phép người dùng sử dụng các
dịch vụ trong hệ thống, nhà quản trị phải quyết định mức độ mà nhà quản trị cung cấp các
chế độ bảo mật. Để quyết định điều này thì cần phải quyết định mức độ nhạy cảm của
dữ liệu mà người dùng lưu trữ trên hệ thống. Dĩ nhiên là nhà quản trị không muốn người
dùng lưu trữ thông tin nhạy cảm trên hệ thống mà họ không bảo mật tốt. Nhà quản trị nên
cung cấp các thông tin này cho người dùng để họ lưu trữ bằng những cách khác.
Ý nghĩa của việc bảo mật hệ thống
Việc bảo vệ một site là hết sức có ý nghĩa bởi vì nhà quản trị có thể bảo vệ các tài nguyên của
hệ thống mà thường xuyên được sử dụng như : máy tính cục bộ, dữ liệu của hệ thống, người
dùng, hệ thống mạng, … Thử tưởng tượng điều gì sẽ xảy ra nếu một người phá hoại có thể sẽ
xóa bỏ các dữ liệu của các người dùng, thay đổi các website hệ thống, hoặc là công bố những kế
hoạch tuyệt mật của hệ thống ra bên ngoài. Nếu như có ý định thiết lập một hệ thống mạng thì
nhà quản trị sẽ phải quyết định những tài khoản nào sẽ được thiết lập trước khi thiết lập máy
cục bộ của nhà quản trị.
Nếu như một nhà quản trị nào đó nghĩ rằng hệ thống của họ nhỏ thì sẽ không có người nào có ý
định phá hoại hệ thống của họ thì đây sẽ là một sai lầm lớn bởi vì kẻ phá hoại vẫn có thể ghé
thăm hệ thống của họ. Bởi vì khi có thể thâm nhập vào hệ thống của bạn thì họ có thể nhờ vào
hệ thống của mình mà truy cập vào các hệ thống khác một cách dễ dàng, …
Người phá hoại có rất nhiều thời gian để họ tìm hiểu về một hệ thống trong mục đích của họ,
và do đó thì việc bảo mật hệ thống sẽ khiến họ có thể tốn nhiều thời gian để theo dõi những
thay đổi trong vấn đề bảo mật của hệ thống.
+ bảo mật các máy tính trong hệ thống : có lẽ là việc mà các nhà quản trị thường làm để bảo mật
cho hệ thống là dựa trên việc bảo mật cho các máy tính. Và dĩ nhiên là họ cũng mong muốn các
người dùng cũng tuân thủ theo ý muốn này. Công việc này tương đối không khó lắm đối với một
người dùng bình thường chẳn hạn như chọn một mật khẩu tốt ( khó bị đoán bởi người khác, thay
đổi mật khẩu thường xuyên, … ), bảo mật các dịch vụ mạng trong máy cục bộ, nâng cấp thường
xuyên các chương trình bảo mật hệ thống mà từ đó có thể phát hiện nhiều lỗ hổng trong việc
bảo mật của hệ thống. Mặc dù điều này là hết sức cần thiết tuy nhiên đây có thể là một thao tác
cồng kềnh đối với một hệ thống mạng lớn.
+ bảo mật mạng cục bộ : việc bảo mật cho hệ thống mạng cục bộ cũng cần thiết không kém gì
việc bảo mật cho từng máy tính trong hệ thống. Thử tưởng tượng một hệ thống mạng có tới
hàng trăm hoặc hàng ngàn máy tính thì việc bảo mật hệ thống dựa trên từng máy tính là không
thể. Đối với một hệ thống lớn thì cần phải chắc chắn rằng chỉ có những người được chứng thực
mới sử dụng được hệ thống mạng, xây dựng một hệ thống bức tường lửa ( firewall ) ngăn chặn
những xâm nhập bất hợp pháp, sử dụng những giải thuật mã hoá mạnh mẽ, và cần phải chắc
chắn rằng là không có một máy tính kém an toàn nào nằm trong hệ thống của nhà quản trị, đây
chính là trách nhiệm của một nhà quản trị.
+ bảo mật theo kiểu ẩn giấu : điều này có nghĩa là nhà quản trị sẽ di chuyển toàn bộ những tập
tin cũng như các dịch vụ quan trọng trong hệ thống tới một chổ khác an toàn mà kẻ phá hoại
không thể nghĩ tới ( điều này có nghĩa là chỗ di chuyển sẽ là một chổ không theo chuẩn mặc địch
của dịch vụ cài đặt ) và do đó thì họ không thể phá hoại hệ thống được. Tuy nhiên kiểu bảo mật
này hoàn toàn chưa an toàn tuyệt đối bởi vì một kẻ phá hoại có thể tìm ra nơi nhà quản trị cất giữ
những tập tin cũng như dịch này.
An toàn vật lý
Tầng đầu tiên trong việc bảo mật chính là nhà quản trị cần phải bảo vệ vật lý hệ thống máy tính
của họ. Ai là người có thể sử dụng máy tính của hệ thống, liệu nhà quản trị có thể bảo vệ hệ
thống khỏi những ý muốn riêng tư bất chợt của họ không.
Một câu hỏi đặt ra là liệu mức độ bảo vệ ở cấp độ vật lý này là như thế nào ??? Nếu đây chỉ là
một người dùng cá nhân tại nhà thì rõ ràng việc bảo vệ này chỉ nhằm tránh bị những đứa trẻ
trong nhà vô tình tiếp cận, còn nếu đây là một hệ thống trong phòng thí nghiệm thì có thể vẫn có
những nhu cầu tiếp cận máy tính, trong một số công ty thì việc rời khỏi máy tính mà không có sự
tắt an toàn là hết sức nguy hiểm.
Có thể liệt kê một số phương thức để bảo vệ hệ thống ở cấp độ vật lý là : khoá cửa phòng, dây
cáp, cabin, đây là một số phương thức khá tốt cho nhà quản trị.
Khóa máy tính : nhiều case máy tính hiện đại có chức năng khóa chống việc bị người khác mở
hộp máy và lấy đi các phần cứng trong máy tính. Điều này có thể còn giúp cho việc bảo vệ máy
tính khỏi bị người khác khởi động lại. Một vài case máy tính hiện đại còn có các chức năng khác
như không cho phép người khác thay thế các bàn phím khác cũng như các thiết bị vật lý khác.