Làm cứng hệ thống là 1 thuật ngữ, cũng là 1 công việc căn bản nhất mà System Admin cần phải làm ngay sau khi đã cài xong 1 thành phần nào đó. Thành phần đó có thể là Hệ điều hành, dịch vụ máy chủ. Hệ điều hành thì thường là Linux Server, Window Server; dịch vụ máy chủ thì có thể là Apache, NginX. Mục đích: Hiểu được hardening là gìCần phải hardening những module lớn nhỏ nào của LinuxVì sao phải hardening nó, hardening nó như thế nàoĐể đảm bảo mật khẩu đủ độ mạnh, người dùng được khuyến nghị đặt mật khẩu dài và phức tạp, điều này tuy tốt nhưng lại dẫn đến việc ghi nhớ mật khẩu trở nên khó khăn hơn là nhưng mật khẩu ngắn và đơn giản. Thêm vào đó, việc không nên đặt mật khẩu cho các tài khoản giống nhau lại làm cho người dùng càng khó ghi nhớ chính xác mật khẩu của các tài khoản. Theo nghiên cứu của NordPass vào năm 2020, mỗi người sẽ có trung bình 100 mật khẩu vậy nên việc mỗi mật khẩu là khác nhau và đáp ứng độ phức tạp thì việc ghi nhớ hết chúng là rất khó. Có thể một số người dùng sẽ nghĩ ra cách viết mật khẩu ra giấy hoặc ghi chú ở nơi nào đó trong máy tính. Đây là một cách giải quyết tạm thời nhưng cũng chứa đầy nguy hiểm nếu người khác vô tình hay cố ý nhìn được giấy ghi chú các mật khẩu đó. Như vậy, chúng ta có nguy cơ mất tài khoản, tài sản và quyền riêng tư cho nên việc ghi chú mật khẩu ra giấy ghi chú này là không đủ an toàn. Trong cách làm này, điểm yếu của nó là có thể bị người khác nhìn thấy và “đọc được” mật khẩu của mình, vậy để giải quyết vấn đề này chúng ta có thể sử dụng mã hóa để khiến cho người khác tuy nhìn thấy nhưng lại không “đọc được” mật khẩu. Họ lấy được mật khẩu đã mã hóa nhưng có được các chuỗi ký tự đó là vô nghĩa. Đây chính là vai trò của phần mềm quản lý mật khẩu, giúp cho người dùng có thể lưu trữ và quản lý tập trung các mật khẩu hiệu quả và an toàn, ngăn chặn người không được phép đăng nhập tài khoản, và giúp cho người dùng hợp pháp không cần phải ghi nhớ mật khẩu nhưng vẫn có thể đăng nhập tài khoản.
Trang 1PHẦN 1 HARDENING LINUX
Làm cứng" hệ thống là 1 thuật ngữ, cũng là 1 công việc căn bản nhất mà System Admin cần phải làm ngay sau khi đã cài xong 1 thành phần nào đó Thành phần đó có thể
là Hệ điều hành, dịch vụ máy chủ Hệ điều hành thì thường là Linux Server, Window Server; dịch vụ máy chủ thì có thể là Apache, NginX
• Mục đích:
o Hiểu được hardening là gì
o Cần phải hardening những module lớn /nhỏ nào của Linux
o Vì sao phải hardening nó, hardening nó như thế nào
Một số command làm việc với hostname của Linux
VD 1: Hiển thị hostname hiện tại của hệ thống
$ hostname
VD 2: Hiển thị địa chỉ IP của máy chủ
$ hostname -i
VD 3: Hiển thị Domain Name
$ hostname -d
VD 4: Hiển thị hostname (Ở định dạng ngắn gon):
$ hostname –s
Trang 2Định dạng date trong shell : https://renenyffenegger.ch/notes/Linux/shell/commands/date
Các option trong mkdir
- p: tạo thư mục cha cả khi nó chua tồn tại
- m : phần với quyền cụ thể
Trang 3- v : xem quá trình ạo thư mục
Lệnh cat
Một số link Hardening Centos 7
• https://www.lisenet.com/2017/centos-7-server-hardening-guide/
• https://gist.github.com/todmephis/9160c693b115dca4b6be73fd2b176458
• https://github.com/naingyeminn/CentOS7_Lockdown/blob/master/centos7.sh
• https://white.mywebsite.vn/threads/hardening-os-make-your-system-safer-centos7-part-2.14138/
Một số link viết Shell Script
Trang 4• https://www.bogotobogo.com/Linux/linux_tips2_bash.php
• https://freetuts.net/unixlinux-shell-script-basic-operators-1327.html
• https://itculy.blogspot.com/2018/06/linux-tim-hieu-ve-umask-trong-linux.html
• https://blog.cloud365.vn/shell/bash-shel-danh-cho-nguoi-moi-bat-dau-p1/
• https://cloudcraft.info/lap-trinh-bash-shell-co-ban-phan-1/
• https://www.justpassion.net/tech/system/linux-system/bash-shell/mang-trong-bash-shell.html
• https://www.7host.vn/cac-toan-tu-co-ban-cau-truc-so-sanh-va-mang-trong-bash
• https://blog.cloud365.vn/shell/bash-shel-danh-cho-nguoi-moi-bat-dau-p2/
• https://www.giatot7.com/cach-su-dung-lenh-sed-tren-linux-52294/#co-sed-t-t-c-nh-ng-i-u-o
• https://rapidsharefiles.net/audit-he-thong-linux-voi-auditd-tool-tren-centos-rhel/
• https://freetuts.net/lenh-yum-trong-linux-3324.html
• https://itfromzero.com/linux/tong-hop-cau-lenh-linux-lam-viec-voi-tap-tin-dinh-dang-text-txt.html
• https://blogd.net/linux/lenh-grep-toan-tap/
• https://www.programmersought.com/article/13071322203/
• https://www.linuxtechi.com/linux-grep-command-with-14-different-examples/
• https://freetuts.net/lenh-useradd-trong-linux-3293.html
PHẦN 2: PHẦN MỀM QUẢN LÝ MẬT KHẨU 1.1. Phần mềm quản lý mật khẩu:
1.1.1. Khái niệm phần mềm quản lý mật khẩu
Để đảm bảo mật khẩu đủ độ mạnh, người dùng được khuyến nghị đặt mật khẩu dài và phức tạp, điều này tuy tốt nhưng lại dẫn đến việc ghi nhớ mật khẩu trở nên khó khăn hơn
là nhưng mật khẩu ngắn và đơn giản Thêm vào đó, việc không nên đặt mật khẩu cho các tài khoản giống nhau lại làm cho người dùng càng khó ghi nhớ chính xác mật khẩu của các tài khoản Theo nghiên cứu của NordPass vào năm 2020, mỗi người sẽ có trung bình
100 mật khẩu vậy nên việc mỗi mật khẩu là khác nhau và đáp ứng độ phức tạp thì việc ghi nhớ hết chúng là rất khó Có thể một số người dùng sẽ nghĩ ra cách viết mật khẩu ra giấy hoặc ghi chú ở nơi nào đó trong máy tính Đây là một cách giải quyết tạm thời nhưng cũng chứa đầy nguy hiểm nếu người khác vô tình hay cố ý nhìn được giấy ghi chú các mật khẩu đó Như vậy, chúng ta có nguy cơ mất tài khoản, tài sản và quyền riêng tư cho nên việc ghi chú mật khẩu ra giấy ghi chú này là không đủ an toàn Trong cách làm này, điểm yếu của nó là có thể bị người khác nhìn thấy và “đọc được” mật khẩu của mình, vậy để giải quyết vấn đề này chúng ta có thể sử dụng mã hóa để khiến cho người khác tuy nhìn thấy nhưng lại không “đọc được” mật khẩu Họ lấy được mật khẩu đã mã hóa nhưng có được các chuỗi ký tự đó là vô nghĩa Đây chính là vai trò của phần mềm quản lý mật khẩu, giúp cho người dùng có thể lưu trữ và quản lý tập trung các mật khẩu
Trang 5hiệu quả và an toàn, ngăn chặn người không được phép đăng nhập tài khoản, và giúp cho người dùng hợp pháp không cần phải ghi nhớ mật khẩu nhưng vẫn có thể đăng nhập tài khoản
1.1.2. Lợi ích của phần mềm quản lý mật khẩu
- Không cần phải ghi nhớ các mật khẩu vẫn có thể đảm bảo khuyến nghị về việc đặt mật khẩu an toàn là ít nhất 8 ký tự và phải bao gồm số và ký tự đặc biệt,…
- Chỉ cần ghi nhớ một mật khẩu duy nhất để có truy cập vào tài khoản chứa các mật khẩu của mình trong phần mềm quản lý mật khẩu
- Từ lợi ích của việc không cần phải ghi nhớ mật khẩu chúng ta hoàn toàn có thể đặt mật khẩu bao gồm nhiều ký tự hơn, bởi vì mật khẩu gồm càng nhiều ký tự thì càng tốn nhiều thời gian để kẻ tấn công có thể dò tìm ra Để có thể dò tìm mật khẩu đáp ứng quy tắc an toàn bao gồm 12 ký tự thì phải tốn khoảng 200 năm nên chúng ta hoàn toàn có thể đặt mật khẩu từ 12 ký tự trở lên để chắc chắn không ai có thể dò tìm ra mật khẩu của mình
- Giúp cho việc đăng nhập tài khoản trở nên nhanh chóng và dễ dàng hơn Sau khi đăng nhập thành công vào tài khoản trong phần mềm quản lý mật khẩu, người dùng dễ dàng lấy được tài khoản/mật khẩu của mình đối với một dịch vụ mạng mong muốn sử dụng Điều này tránh tình trạng quên mật khẩu và nhầm lẫn mật khẩu giữa các dịch vụ mạng khác nhau
1.1.3. Các phần mềm quản lý mật khẩu
1.1.3.1. KeePass:
- KeePass là phần mềm quản lý mật khẩu mã nguồn mở, dung lượng nhẹ, miễn phí và
dễ sử dụng cho Window, cũng hỗ trợ macOS và Linux, được phát triển vào năm 2004 KeePass lưu trữ tên người dùng và mật khẩu ngoại tuyến trên thiết bị của người dùng ở dạng tệp được mã hóa, hỗ trợ nhập và xuất tệp dạng TXT, HTML, XML, CSV Đồng thời cũng hỗ trợ tự động điền thông tin đăng nhập vào trang đăng nhập, xác thực hai lớp và có công cụ tự động tạo mật khẩu
Trang 6Hình 1 1 Các gói cài đặt của KeePass
- KeePass có hai phiên bản là Installer (cần tải file EXE và cài đặt vài bước) và Portable (tải gói ZIP và chỉ cần giải nén vào USB mà không cần phải cài đặt)
- Không chỉ mật khẩu mà toàn bộ dữ liệu khác như tên đăng nhập, ghi chú đều được lưu trữ trong cơ sở dữ liệu, sau đó mã hóa bằng các thuật toán như thuật toán AES, Twofish Khóa chủ lưu trữ sử dụng hàm băm một chiều SHA-256
Hình 1 2 Gói cài đặt cho hệ điều hành Windows của KeePass
1.1.3.2. 1Password
Trang 7- 1Password là phần mềm quản lý mật khẩu hỗ trợ Windows, MacOS, Linux,
Android, iOS và có bản 1Password X bổ sung để tích hợp vào trình duyệt Chorme, Edge, Firefox Phần mềm cho phép chúng ta trải nghiệm miễn phí trong 14 ngày, sau đó sẽ tính phí sử dụng theo tháng Phiên bản trả phí có thêm các chức năng ghi log lại khi có thay đổi, điều chỉnh vai trò để thiết kế và ủy thác trách nhiệm tài khoản người dùng
Hình 1 3 1Password đặt mật khẩu chính
- Để tạo tài khoản cần xác thực email bằng 6 số được gửi hòm thư, sau đó là mật khẩu bao gồm ít nhất 10 ký tự
- Sau khi đặt mật khẩu, chúng ta được cung cấp một file PDF chứa địa chỉ đăng nhập, tài khoản email, khóa bí mật, mật khẩu chính Để đăng nhập tài khoản cần phải có tập tin này nên không được xóa
Trang 8Hình 1 4 1Password Emercy Kit
- Đây là phần mềm yêu cầu phải có kết nối mạng để có thể sử dụng, sau khi cài đặt và nhấn bắt đầu sử dụng, phần mềm sẽ mở trình duyệt với địa chỉ nằm trong Emergency Kit Sau khi nhập đúng Master Password thì có thể bắt đầu sử dụng các chức năng của phần mềm
Hình 1 5 1Password công cụ tạo mật khẩu tự động
- Khi tạo mật khẩu tự động cho phép điều chỉnh độ dài mật khẩu, ký tự trong mật khẩu có thể được bằng chữ, số, ký tự,…
Trang 9- Cung cấp rất nhiều mẫu để ghi nhớ như mẫu đăng nhập, mẫu thẻ tín dụng, mẫu tài khoản ngân hàng, mẫu lưu trữ tài liệu,…
Hình 1 6 Các mẫu cung cấp sẵn của 1Password
- Hỗ trợ xác thực hai yếu tố nhưng cần phải bật chức năng này
- Về phần bảo mật, dữ liệu sẽ được mã hóa bằng thuật toán AES 256-bit, chống các công cụ bẻ mật khẩu bằng cách sử dụng PBKDF2-HMAC-SHA256 cho dẫn xuất khóa, cung cấp chức năng tạo mật khẩu tự động để đảm bảo mật khẩu thỏa mãn các tiêu chí an toàn về việc đặt mật khẩu an toàn
Trang 10- 1Password có chức năng quản lý bảng tạm, chức năng này sẽ tự động xóa mật khẩu khỏi bảng tạm để ngăn chặn việc người khác truy cập vào dữ liệu khi ta quên gán mật khẩu đã sao chép, đồng thời cũng bảo vệ mật khẩu khỏi các công cụ lưu lịch sử bảng tạm 1.1.3.3. LastPass
- LastPass là phần mềm quản lý mật khẩu tiện ích tích hợp vào trình duyệt, và phần mềm trên thiết bị di động, có nhiều phiên bản: miễn phí (được trải nghiệm bản Premium
30 ngày, chỉ được truy cập bằng máy tính hoặc điện thoại), Premium có trả phí
- Khi đăng nhập hỗ trợ chức năng bàn phím trên màn hình giúp tránh các công cụ keylogger lưu lịch sử nhập từ bàn phím
Hình 1 7 Chức năng bàn phím trên màn hình của LastPass
- Giao diện khi thêm mật khẩu để lưu, có các chức năng nâng cao như yêu cầu nhập Master Password khi điền vào mẫu đăng nhập, tự động đăng nhập và tắt tự động điền thông tin
Trang 11Hình 1 8 Giao diện và các lựa chọn khi thêm mật khẩu của LastPass
- Khi truy cập vào trang có mật khẩu được lưu, ở ô nhập mật khẩu sẽ hiện icon sử dụng LastPass như hình 1.9
Hình 1 9 Icon đính kèm ô mật khẩu của LastPass
- Mỗi tài khoản lưu trong LastPass đều có tùy chọn nâng cao riêng biệt, nếu chọn chức năng yêu cầu nhập Master Password khi điền vào mẫu đăng nhập, cần phải nhập lại
Trang 12Master Password để có thể sử dụng phần mềm, việc này sẽ nâng cao an toàn khi sử dụng cho những mật khẩu thực sự quan trọng Với những mật khẩu ít quan trọng hơn chỉ cần không chọn vào chức năng này, tuy không an toàn bằng nhưng lại giúp nâng cao trải nghiệm sử dụng của người dùng
Hình 1 10 Nhập mật khẩu chính trước khi sử dụng của LastPass
- Về vấn đề an toàn, LastPass sử dụng mã hóa AES 256-bit và hàm dẫn xuất khóa
PBKDF2-SHA256 kết hợp giá trị salt để đảm bảo bảo mật trên đám mây Dữ liệu chỉ
được mã hóa và giải mã trên chính thiết bị của mình Mật khẩu và các khóa được sử dụng
để mã hóa và giải mã dữ liệu không được gửi đến máy chủ của LastPass do đó đảm bảo tính bảo mật của dữ liệu, kể cả LastPass cũng không thể truy cập được
1.1.4. So sánh các phần mềm quản lý mật khẩu phổ biến
- Giống nhau: sử dụng hàm băm băm mật khẩu duy nhất do người dùng nhập để xác thực người dùng và tạo ra khóa mã hóa để mã hóa và giải mã các dữ liệu quan trọng như mật khẩu, thẻ tín dụng, tài liệu quan trọng,… Giúp cho người dùng không cần phải nhớ nhiều mật khẩu, lưu trữ các thông tin quan trọng, ngăn chặn người không được phép truy cập vào dữ liệu, giúp người dùng có thể truy cập dữ liệu của chính mình một cách nhanh chóng khi cần Hỗ trợ rất nhiều hệ điều hành như Windows, Linux, MacOS, Android, iOS
- Khác nhau:
- Có 2 phiên bản: Installer
và Portable
- Có bản Command Line
để tích hợp với mã nguồn và quy trình làm việc
- Chỉ bao gồm tiện ích tích hợp vào trình duyệt và ứng dụng cho điện thoại
Android và iOS
Trang 13- Miễn phí
- Không cần kết nối mạng
để sử dụng
- Có công cụ tự tạo mật
khẩu có thể điều chỉnh để
đáp ứng các yêu cầu về
mật khẩu an toàn nhưng
cần cài đặt thêm
- Không có chức năng lưu
trữ file
- Giao diện xấu
- Tốn phí, cho phép trải nghiệm trong 15 ngày
- Cần có kết nối mạng để
sử dụng
- Có công cụ tự tạo mật khẩu có thể điều chỉnh
để đáp ứng các yêu cầu
về mật khẩu an toàn, được tích hợp sẵn trong phần mềm
- Có chức năng lưu trữ file nhưng giới hạn dung lượng tùy phiên bản
- Giao diện đẹp
- Cung cấp tính năng thông báo nếu thông tin của chúng ta bị lộ trên web đen
- Có phiên bản miễn phí
và tính phí, cho phép trải nghiệm các chức năng trong bản Premium trong
30 ngày
- Cần có kết nối mạng để
sử dụng
- Có công cụ tự tạo mật khẩu có thể điều chỉnh để đáp ứng các yêu cầu về mật khẩu an toàn, được tích hợp sẵn trong phần mềm
- Có chức năng lưu trữ file nhưng giới hạn dung lượng tùy phiên bản
- Giao diện đẹp
- Cung cấp tính năng thông báo nếu thông tin của chúng ta bị lộ trên web đen
- Hỗ trợ tính năng bàn phím trên màn hình
1.2. Vấn đề mất an toàn trong các phần mềm quản lý mật khẩu trên Web
Hầu hết các trình quản lý mật khẩu có thể liên kết với trình duyệt hoặc là một tiện ích tích hợp chung với trình duyệt có thể tự động quản lý các mật khẩu Chúng có thể tự động xác định các trường đăng nhập và điền vào với mật khẩu tương ứng Nếu tích hợp giữa trình quản lý mật khẩu và trình duyệt không tốt, các mật khẩu sẽ được điền vào các trường đăng nhập do kẻ tấn công nắm giữ hoặc những tổ chức thứ ba không mong muốn nắm giữ Dưới đây là một số vấn đề mất an toàn trong các phần mềm quản lý mật khẩu trên web:
1.2.1. HTTP và HTTPS
Trang 14Lỗ hổng tệ nhất được phát hiện là phần mềm quản lý mật khẩu MaskMe MaskMe đã không thiết lập phân biệt giữa HTTP và HTTPS, bởi vì MaskMe được cấu hình để tự động điền vào các trường xác định danh tính trên miền HTTPS như
https://www.google.com nhưng khi vào mẫu đăng nhập trên http://www.google.com, mẫu đăng nhập trên trang này cũng được tự động điền vào
Trong tấn công man-in-the-middle ở mạng không dây công cộng có thể đơn giản chuyển hướng nạn nhân đến trang giả mạo HTTP của các trang nổi tiếng với mẫu đăng nhập và JavaScript, tự động gửi đi sau khi mẫu đăng nhập được tự động điền vào bởi MaskMe Những ai sử dụng MaskMe với chức năng tự động điền vào được bật mặc định sẽ rất dễ
bị đánh cắp mật khẩu bằng cách kết nối đến điểm truy cập độc hại và nạn nhân không bao giờ biết mình bị lộ mật khẩu
1.2.2. Miền phụ tương tự
LastPass, MaskMe và 1Password sẽ xác thực vào bất kì trang nào trong một miền mà mật khẩu đã được lưu Nghĩa là mẫu đăng nhập trong trang https://forum.example.com sẽ được xem tương đương như mẫu đăng nhập trong trang https://example.com/log_in Tên miền phụ tương tự rất nguy hiểm bởi vì vài tên miền phụ như diễn đàn thảo luận, trang blog, mail có thể bị thao túng bởi kẻ tấn công Ví dụ như diễn đàn cho phép các bình luận dạng thẻ HTML có thể bị khai thác bởi kẻ tấn công bằng cách thêm vào mẫu đăng nhập,
từ đó đánh cắp thông tin danh tính từ người dùng
1.2.3. Không xác định chính xác trang đăng nhập
Không có phần mềm quản lý mật khẩu nào xác minh chính xác trang đăng nhập cho mật khẩu đã được ghi nhớ trên tên miền đã lưu Ví dụ như trang đăng nhập đặt trên
https://example.com/log_in thì tất cả phần mềm quản lý mật khẩu sẽ phát hiện mẫu đăng nhập ở bất cứ đâu trên tên miền https://example.com Điều này nghĩa là nếu kẻ tấn công
có thể tiêm nhiễm mẫu đăng nhập ở bất cứ đâu trong tên miền example thì thông tin đăng nhập của nạn nhân sẽ bị đánh cắp
1.2.4. Auto-Fill và Auto-Submit
Để việc sử dụng phần mềm quản lý mật khẩu thuận tiện hơn, LastPass và MaskMe có thể cấu hình để trình quản lý tự động điền thông tin đăng nhập của người dùng vào mẫu đăng nhập Thậm chí LastPass còn được cấu hình cho phép tự động gửi đi các thông tin sau khi
đã điền các thông tin đăng nhập Điều này đã làm gia tăng rủi ro lộ mật khẩu cảu người dùng bởi vì mẫu đăng nhập có thể bị giấu đi trong một mẫu khác Khi người dùng gửi đi mẫu mà họ thấy nhưng đồng thời cũng không biết rằng mật khẩu đã được điền vào các trường trong mẫu bị dấu đi và gửi đến kẻ tấn công
Trong cuộc thử nghiệm của isecpartners khi gửi mail lên ba nhà cung cấp webmail nổi tiếng với nội dung dạng HTML như sau:
<html>
<body>Thanks for taking our Survey !
<form action = “ https://www.isecpartners.com” method= “post ” style = ” font-size : medium ;