1. Trang chủ
  2. » Công Nghệ Thông Tin

Nghiên cứu những nguy cơ mất an toàn trên HĐH Linux và các giải pháp tăng cường

70 316 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 70
Dung lượng 2,44 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Với sự bùng nổ trong lĩnh vực tin học hiện nay, việc đảm bảo an toàn trở nên quan trọng và cần thiết hơn. Với bối cảnh nền kinh tế thế giới đang có xu hướng toàn cầu hóa hiện nay, và trước thực trạng về vấn đề vi phạm bản quyền ở Việt Nam, thì việc sử dụng hệ điều hành Linux là một giải pháp tốt nhất. Trong tương lai, hi vọng hệ điều hành này sẽ là hệ điều hành chủ đạo ở trong nước và phục vụ cho mọi người.

Trang 1

NGHIÊN CỨU NHỮNG NGUY CƠ MẤT AN TOÀN VÀ GIẢI PHÁP TĂNG CƯƠNG AN TOÀN CHO HỆ

ĐIỀU HÀNH LINUX

Ngành: Công nghệ thông tin

Hà Nội, 2015

Trang 2

DANH MỤC HÌNH VẼ VI DANH MỤC CÁC BẢNG VIII LỜI NÓI ĐẦU XI

CHƯƠNG I GIỚI THIỆU HỆ ĐIỀU HÀNH LINUX 1

1.1 Giới thiệu về hệ điều hành Linux 1

1.1.1 Giới thiệu về UNIX và Linux 1

1.1.2 Phiên bản cho server và client 4

1.2 Kiến trúc hệ điều hành Linux 8

1.3 So sánh hệ điều hành Linux và windows 9

1.3.1 Ưu điểm 9

1.3.2 Nhược điểm 12

CHƯƠNG II NGHIÊN CỨU NHỮNG NGUY CƠ MẤT AN TOÀN VÀ GIẢI PHÁP TĂNG CƯỜNG AN NINH CHO HỆ ĐIỀU HÀNH LINUX 15

2.1 Những nguy cơ mất an toàn trên hệ điều hành Linux 15

2.1.1 Những nguy cơ mất an toàn trong cài đặt, cấu hình hệ thống 15

2.1.2 Những lỗ hổng mới 17

2.2 Giải pháp tăng cường an ninh cho hệ điều hành Linux 24

2.2.1 Thiết lập chính sách bảo mật cho hệ điều hành Linux 24

2.2.2 Các giải pháp khác 39

CHƯƠNG III CÀI ĐẶT THỰC HIỆN TẤN CÔNG SHELLSHOCK 41

3.1 Mô hình cài đặt và thực hiện tấn công 41

3.2 Khai thác lỗ hổng trên máy chủ Web Apache 43

3.3 Khai thác lỗ hổng ShellShock trên dịch vụ SSH 50

3.3.1 Tạo tài khoản người dùng trên máy chủ 51

3.3.2 Tạo các khóa xác thực dành cho máy trạm 51

3.3.3 Thêm khóa xác thực vào tập tin cấu hình sshd trên máy chủ 53

3.3.4 Đăng nhập sử dụng khóa xác thực 54

3.3.5 Thực hiện tấn công 55

KẾT LUẬN 58

TÀI LIỆU THAM KHẢO 59

Trang 4

Danh mục từ

MIT Massachusetts Institute of

Technology

Viện Công nghệ Massachusetts

PC Personal Computer Máy tính cá nhân

HĐH Hệ điều hành

CPU Central Processing Unit Bộ xử lý trung tâm

ADM Arrow Diagramming Method Phương pháp mô tả bằng sơ

đồ mũi tênSUN Stanford University Network Công ty sản xuất phần mềm

Tập hợp các phần mềm miễn phí tương thích với UNIX

MIPS Microprocessor without

Interlocked Pipeline Stages

BSD Berkeley Software

Distribution

Hệ điều hành được phát triển từ UNIX

FORTRAN Formula Translator Ngôn ngữ lập trình

RPM Red Hat Package Manager Chương trình cài đặt

POSIX Portable Operating System

Interface for Unix Giao diện hệ điều hành

UNIX Unics- Uniplexed Information

and Computing System Hệ điều hành máy tínhNTFS New Technology File System Hệ thông tập tin

Trang 5

EXT Extended file system Hệ thống tập tin

GUI Graphical User Interface Giao diện đồ họa người

dùngARM Advanced RISC Machine Cấu trúc vi xử lý

GIMP GNU Image Manipulation

Program

Chương trình máy tính xử

lý hình ảnhGRUB GRand Unified Bootloader Trình khởi động máy tínhLILO Linux Loader Trình khởi động máy tínhRHEL Red Hat Enterprise Linux Bản phân phối của Linux

DHCP Dynamic Host Configuration

Protocol

Giao thức cấu hình máy chủđộng

HIDS Host-based instrusion

Detection System

Hệ thống phát hiện xâm nhập

BIOS Basic Input/Output System Hệ thống xuất nhập cơ bản

SFTP Secure Shell File Transfer

Protocol

Giao thức truyền tập tin

TLS Transport Layer Security Bảo mật tầng truyền tảiVPN Virtual Private Network Mạng riêng ảo

MAC Media Access Control Địa chỉ vật lý

TCP Transmission Control

Protocol

Giao thức tầng vận tải

DNAT Destination Network Address

Transaltion Chuyển đổi địa chỉ đích

SNAT Stateful Network Address

Trang 7

Hình 1.1 Kiến trúc của Linux 8

Hình 2.1 Lỗi GHOST.c 18

Hình 2.2 GHOST-test.sh dựa trên hệ thống RHEL/CentOS 19

Hình 2.3 Lỗ hổng ShellShocl trên OS X của Apple 20

Hình 2.4 Kiểm tra lỗ hổng ShellShock bằng công cụ trực tuyến trên shellshocker.net 22

Hình 2.5 Cơ chế phát sinh lỗ hổng ShellShock 23

Hình 2.6 Mô hình IP tables trên Linux 35

Hình 2.7 Mô hình hoạt động của Iptables 36

Hình 3.1 Mô hình Client- Server 41

Hình 3.2 Cài đặt địa chỉ IP trên máy trạm 42

Hình 3.3 Cài đặt địa chỉ IP trên máy chủ Unbutu 42

Hình 3.4 Kiểm tra kết nối giữa 2 máy 43

Hình 3.5 Cập nhật gói phần mềm trên máy chủ Unbutu 43

Hình 3.6 Cài đặt apache2 trên máy chủ 44

Hình 3.7 Kiểm tra hoạt động của máy chủ Web 44

Hình 3.8 Tạo nội dung tập lệnh Bash CGI 45

Hình 3.9 Kiểm tra nội dung tệp lệnh CGI 45

Hình 3.10 Sử dụng curl chèn đoạn mã lệnh vào truy vấn HTTP 46

Hình 3.11 Tập tin Hacked.txt được tạo trên máy chủ 47

Hình 3.12 Kiểm tra kết quả tấn công 47

Hình 3.13 Sử dụng Netcat để kiểm tra kết nối 48

Hình 3.14 Truy vấn HTTP từ máy tấn công đến máy chủ 48

Hình 3.15 Kết quả yêu cầu kết nối ngược 49

Hình 3.16 Khai thác lỗ hổng ShellShock thành công 50

Hình 3.17 Tạo tài khoản người dùng “shellshock” 51

Hình 3.18 Kiểm tra việc khởi tạo người dùng “shellshock” 51

Hình 3.19 Tạo thu mục lưu trữ tài khoản người dùng 51

Hình 3.20 Thiết lập quyền sở hữu thư mục cho người dùng 51

Hình 3.21 Tạo cặp khóa RSA 52

Trang 8

Hình 3.24 Xác nhận khóa công khai trên máy chủ 53

Hình 3.25 Tạo thư mục chứa khóa xác thực 53

Hình 3.26 Lưu trữ khóa công khai trên tập tin xác thực 54

Hình 3.27 Chỉnh sửa tập tin cấu hình dịch vụ SSH 54

Hình 3.28 Đăng nhập vào máy chuủ thông qua dịch vụ SSH 54

Hình 3.29 Yêu cầu xác thực mật khẩu 55

Hình 3.30 Chèn lệnh Bash Shell vào khóa công khai 55

Hình 3.31 Lưu khóa công khai vào tập tin xác thực trên máy chủ 56

Hình 3.32 Truy vấn dịch vụ SSH tới máy chủ 56

Hình 3.33 Truy cập vào máy chủ thông qua dịch vụ SSH 57

Trang 9

Bảng 1.1 Một số phiên bản của Unix 2 Bảng 1.2 Bảng so sánh tổng quan giữa HĐH Linux và Windows 12

Trang 10

Trong quá trình học tập và nghiên cứu đề tài, em xin được gửi lời cảm

ơn trân trọng và sâu sắc nhất tới giáo viên hướng dẫn đã tận tình chỉ bảo,hướng dẫn và truyền đạt kiến thức cho em trong quá trình thực hiện đề tàinày Đồng thời các thầy cô đượctrong khoa và các bạn đã giúp đỡ, tạo điềukiện cho em hoàn thành đồ án Mặc dù em đã cố gắng hết sức và được thamkhảo từ các tài liệu chuyên ngành nhưng chắc chắn đề tài không thể tránhđược những thiếu sót, vì vậy rất mong nhận được những ý kiến đóng góp củacác thầy cô và bạn đọc để đề tài được hoàn thiện hơn

Em xin chân thành cảm ơn!

Hà nội, ngày 01 tháng 06 năm 2015

Sinh viên thực hiện

Trang 11

học, mang theo nhiều đặc tính an toàn bao hàm các cơ chế bảo mật, cùng vớitính chất của một mã nguồn mở đã được đánh giá là một trong những hệ điềuhành bảo mật tốt nhất Rất nhiều công ty, tổ chức trên thế giới chấp nhậnLinux như là một nền tảng cho sản phẩm của họ, cũng như nhiều công ty,ISPs sử dụng máy chủ Linux như là các Internet gateway Hơn nữa, Linuxserver là một trong những thách thức lớn đối với tình trạng xâm nhập bất hợppháp Do đó, vấn đề tăng cường an toàn cho hệ thống Linux trở nên quantrọng và bức thiết hơn Đồ án nghiên cứu các vấn đề cấp thiết trong việc bảo

vệ an toàn dữ liệu, giúp cải thiện đáng kể tư duy và sự hiểu biết về hệ điềuhành Linux đối với một sinh viên an toàn thông tin, đồng thời có một cái nhìntổng quát về an toàn hệ thống và tầm quan trọng của các cơ chế khi thực hiệncác vấn đề bảo mật

Nội dung của đồ án gồm 3 chương:

Chương I: Giới thiệu hệ điều hành Linux

Chương này sẽ đánh giá tổng quát về hệ điều hành, lịch sử phát triển, ưunhược điểm, đồng thời có sự so sánh cơ bản giữa hệ điều hành Linux với hệđiều hành Windows đang phổ biến

Chương II: Nghiên cứu những nguy cơ mất an toàn và giải pháp tăng cường an ninh cho hệ điều hành Linux

Nghiên cứu những lỗ hổng mới, các điểm yếu trong bảo mật, kẽ hởtrong giao thức Tìm hiểu các công cụ, giải pháp an ninh hỗ trợ cho hệ điềuhành Linux

Chương III: Cài đặt thực hiện tấn công ShellShock

Triển khai một kịch bản tấn công Linux CentOS thông qua lỗ hổngShellShock

Trang 12

CHƯƠNG I GIỚI THIỆU HỆ ĐIỀU HÀNH LINUX

1 Giới thiệu về hệ điều hành Linux

1.1.1 Giới thiệu về UNIX và Linux

Năm 1964, Bell Labs, MIT & Gerenal Electric phát triển một hệ điều hành gọi là MULTISC (Mutilplexed Information and Computing System) Sau

đó năm 1969, Ken Thompson viết một hệ điều hành trên hệ thống máy tính PDP-7, và hệ điều hành này được gọi là UNIX (Uniplexed Information and Computing System).

Năm 1973, Riche và Thompson viết lại nhân của hệ điều hành UNIXtrên ngôn ngữ C, dễ dàng cài đặt tới các loại máy tính khác nhau, tính chất

này được gọi là tính khả chuyển (portable) của UNIX.

Năm 1977, hai bản phân phối của UNIX được công bố là: System V củaAT&T, Novell và Berkeley Software Distribution (BDS) của Đại họcBerkeley

Giai đoạn 1985-1987, UNIX phiên bản 2 và 3 tương ứng được công bố.Trong giai đoạn này, có khoảng 100.000 bản UNIX được phổ biến trên thếgiới, được cài đặt từ máy vi tính đến các hệ thống lớn

Đầu năm 1990, UNIX phiên bản 4 được đưa ra như là một chuẩn củaUNIX Đây là sự kết hợp của các phiên bản sau:

- AT&T UNIX phiên bản 3

- Berkeley Software Distribution (BDS)

- XENIX của MicroSoft

Trang 13

AIX International Business

Machines AT&T System V

A/UX Apple Computer AT&T System V

SoftWare Distribution)

Irix Silicon Graphics AT&T System V

Foundation

OSF/1

Digital Equipment Corporation

BDS

SCO UNIX Santa Cruz Operation AT&T System V

Solaris Sun Microsystems AT&T System V

Ultrix Digital Equipment

Bảng 1.1 Một số phiên bản của Unix

Một số đặc trưng của hệ điều hành UNIX:

- Là hệ điều hành đa người dùng, đa chương trình Trong đó mỗi ngườidùng có thể thực hiện các chương trình một cách độc lập

- Hệ điều hành được viết trên ngôn ngữ lập trình C, dễ dàng đọc hiểu vàthay đổi để cài đặt trên các loại máy tính mới (tính khả chuyển)

- Có giao diện người dùng đơn giản, đầy đủ chức năng cơ bản và cung cấpcác dịch vụ cho người dùng

Trang 14

- Đảm bảo nguyên tắc xây dựng các chương trình phức tạp từ nhữngchương trình đơn giản.

- Sử dụng duy nhất một hệ thống file cho phép dễ dàng lưu trữ và sửa đổi

- Hỗ trợ kết nối cơ bản với các thiết bị ngoại vi

- Có cơ chế ẩn cấu trúc máy đối với người dùng, đảm bảo tính độc lập củachương trình đối với dữ liệu và phần cứng, tạo điều kiện thuận lợi cho ngườilập trình khi viết các chương trình chạy UNIX với các điều kiện phần cứnghoàn toàn khác biệt

Năm 1991, Linus Torvalds, sinh viên trường Đại học Tổng hợp Helsinki Phần Lan bắt đầu xem xét Minix là một phiên bản của Unix với mục đích tạo

ra một hệ điều hành Unix chạy trên PC với bộ xử lý Intel 80386

Ngày 25/08/1991, Linus cho ra đời Version 0.01 và thông báo trên

comp.os.minix về dự định của mình về Linux.

Tháng 1/1992, Linus cho ra đời phiên bản version 0.02 với shell và trìnhbiên dịch C Linux không cần Minix nữa để biên dịch lại hệ điều hành củamình Linus đặt tên hệ điều hành của mình là Linux

Năm 1994 phiên bản chính thức 1.0 được phát hành Hỗ trợ giao thứcmạng TCP/IP chuẩn UNIX Trình điều khiển thiết bị đã được bổ sung để chạy

IP trên một mạng Ethernet hoặc qua modem Hệ thống file trong Linux 1.0 đãđược tối ưu hơn so với hệ thống file của Minux, ngoài ra hỗ trợ điều khiểnSCSI truy nhập đĩa tốc độ cao

Tháng 6-1996, phiên bản Linux 2.0 được công bố Có hai đặc trưng nổibật của phiên bản Linux 2.0 là hỗ trợ kiến trúc phức hợp, bao gồm cả cổngAlpha 64-bit, và hỗ trợ kiến trúc đa bộ xử lý

Tới năm 2000, phiên bản Linux 2.4 được phát hành Một trong đặc điểmđược quan tâm của nhân này là hỗ trợ mã ký tự Unicode 32 bít, thuận lợi choviệc xây dựng các giải pháp toàn diện và triệt để đối với vấn đề ngôn ngữ tựnhiên trên phạm vi toàn thế giới

Linux là một hệ điều hành dạng UNIX (Unix-like Operating System)

chạy trên máy PC với bộ điều khiển trung tâm CPU Intel 80386 trở lên, hay

Trang 15

các bộ xử lý trung tâm tương thích ADM, Cyrix Linux ngày nay có thể chạytrên các máy Macintosh hoặc SUN Space.

Quá trình phát triển của Linux được tăng tốc bởi sự giúp đỡ của chương

trình GNU (GNU’s Not Unix), đó là chương trình phát triển các Unix có khả

năng chạy trên nhiều nền tảng Phiên bản mới nhất của Linux kernel là 2.6.25,

có khả năng điều khiển các máy đa bộ vi xử lý (hiện tại hỗ trợ máy tính có tối

đa 16 CPUs) Linux kernel 2.6.25 cũng đồng thời nâng cấp hệ thống file Ext4(phiên bản cũ là Ext3), giúp hỗ trợ dung lượng block lớn hơn- từ 4K lên 64K

và rất nhiều các tính năng khác

Một số đặc điểm chính của Linux:

- Là hệ điều hành miễn phí đa nhiệm đa người dùng, tương thích với nhiều

hệ điều hành như DOS, Microsoft Windows…

- Là một hệ điều hành với mã nguồn mở, được phát triển qua cộng đồngnguồn mở (bao gồm cả Free Software Foundation) nên Linux phát triển rấtnhanh và là một trong số ít các hệ điều hành được quan tâm nhiều nhất trênthế giới hiện nay

- Hardware: Chạy trên nhiều platform, Alpha, AMD, MIPS, PowerPC,Sparc,…

- Giao diện đồ họa: hỗ trợ GNOME, KDE,… Hỗ trợ nhiều giao thứcmạng, bắt nguồn và phát triển từ dòng BSD Thêm vào đó, Linux còn hỗ trợtính toán thời gian thực

- Ngôn ngữ lập trình: C, C++, FORTRAN, Java, Perl, Python, PHP…

- Dễ dàng quản lý từ xa: dễ dàng truy cập từ xa bằng dòng lệnh hoặc GUI

- Tính ổn định cao: Linux có thể chạy nhiều năm không cần reboot

1.1.1 Phiên bản cho server và client

Hiện nay Linux có rất nhiều bản phân phối khác nhau, một phần bởi vìtính chất nguồn mở của nó Sau đây là một số bản phân phối chủ yếu và đượcdùng phổ biến hiện nay

Red Hat Linux: là một trong những phiên bản thương mại đầu tiên của

GNU/Linux và được xem là chuẩn nhất trong số các phiên bản khác Phiênbản 1.0 đầu tiên được công bố vào năm 1995 nhưng chỉ vài tháng sau, phiên

Trang 16

bản 2.0 bổ sung công nghệ RPM (Red Hat Package Manager – Trình quản lý gói tin của Red Hat) tiếp tục được công bố Sự ra đời của RPM giúp việc cài

đặt, cập nhật, xóa, bổ sung các gói phần mềm trở nên dễ dàng hơn trước rấtnhiều

Vào tháng 9/2003, hãng Red Hat đã quyết định tập trung vào việc pháttriển các phiên bản phiên bản dành cho doanh nghiệp Đồng thời, Red Hatcũng ủy quyền phiên bản cộng đồng cho Fedora Core – đây là dự án nguồn

mở độc lập với Red Hat Hiện tại, một số sản phẩm hàng đầu của Red Hat làFedora, Red Hat Network và một số dịch vụ cập nhật phần mềm Internet.Các ngôn ngữ lập trình được sử dụng trong Red Hat: ngôn ngữ lập trình

C chiếm vị trí quan trọng với hơn 60% số lượng các dòng mã lệnh (hơn 30triệu dòng mã lệnh), kế tiếp là C++ với khoảng 10 triệu dòng mã lệnh và theosau là Shell (khoảng 3 triệu dòng mã lệnh)

Bên cạnh đó, Red Hat cũng có phiên bản hướng doanh nghiệp là bản

Red Hat Enterprise Linux (RHEL) Một điểm lưu ý, Red Hat cũng đưa ra các

dịch vụ tư vấn công nghệ thông tin và chương trình cấp chứng chỉ tương tựnhư Microsoft

Ubuntu

Phiên bản mới nhất: Ubuntu 14.04

Ubuntu là một phiên bản phân phối của Linux, vào thời điểm hiện tại nó

đã chạm mốc 20 triệu người sử dụng trong tám năm kể từ khi được biết đến là

hề điều hành mã nguồn mở Linux Ubuntu là hệ điều hành Linux hoàn hảo đểngười dùng mới sử dụng hệ điều hành Linux bắt đầu tập làm quen Hệ điềuhành này cũng là một trong những đối thủ hàng đầu như là một sự thay thếWindows Hệ điều hành Ubuntu có nhiều Theme rất tốt cho máy tính để bàn

và có giao diện trực quan dễ dàng sử dụng

Fedora

Phiên bản mới nhất: Fedora 18

Fedora là một trong những hệ điều hành Linux có lượng người dùng lớn

và có nhiều diễn đàn hỗ trợ Tính năng linh hoạt làm cho hệ điều hành này trởthành một trong những sự lựa chọn tốt nhất Fedora thích hợp cho các doanhnghiệp

Linux Mint

Trang 17

Là một bản phân phối khác của Linux, Linux Mint được công bố năm

2006 Dựa trên bản phân phối Ubuntu, thêm vào các chủ đề riêng, các bộ ứngdụng độc đáo và đặc biệt mạnh về đồ họa Hệ điều hành này sử dụng môitrường desktop: mintDesktop, mintInstall để thuận tiện trong cài đặt ứng dụngmintMenu giúp điều hướng dễ dàng

Phiên bản mới nhất: Linux Mint 14 (Nadia) Trong đó rất nhiều phần

mềm hữu ích được cài đặt sẵn, bao gồm phần mềm hỗ trợ các trình điều khiểnthiết bị Linux Mint khá thân thiện với người dùng, hiệu quả sử dụng cao.Mint đã được tùy chỉnh màn hình desktop và các menu, và nó có giao diệnweb

OpenSUSE

Phiên bản mới nhất: openSUSE 12.3

OpenSUSE là cộng đồng mã nguồn mở được tài trợ bởi Novell NhómopenSUSE có hai mục tiêu: làm cho openSUSE dễ dàng sử dụng cho bất cứngười sử dụng nào và đơn giản hóa việc phát triển cũng như đóng gói mãnguồn của openSUSE để làm cho nó thân thiện với lập trình viên Bản phânphối Linux này có số lượng các phần mềm và các công cụ phong phú đểngười dùng có thể dễ dàng sử dụng như: SpiderOak lưu trữ đám mây, MozillaFirefox để duyệt web và mã nguồn mở email client Thunderbird

PCLinuxOS

Phiên bản mới nhất: PClinux OS KDE

Hệ điều hành PCLinuxOS là bản phân phối của Linux rất dễ sử dụng, có

hỗ trợ card đồ họa và âm thanh khác nhau Sự khác biệt giữa bản phân phốinày là nó sử dụng giao diện KDE thay vì GNOME khá bình thường Với sự

hỗ trợ tốt cho đồ họa và điều khiển âm thanh, trình duyệt bổ sung và các địnhdạng phương tiện truyền thông, PCLinuxOS có thể là một lựa chọn tốt chongười mới bắt đầu

Debian

Được công bố từ năm 1993, bản phân phối này được đánh giá là bản

Linux tốt được thử nghiệm Dù là nền tảng của bản phân phối Ubuntu, nhưng Debian thích hợp hơn với người dùng có kinh nghiệm Debian sử dụng các

thành phần mã nguồn mở và đi kèm với hơn 20.000 gói phần mềm ứng dụngđược cài đặt sẵn và miễn phí Người dùng có thể thực hiện các công việc như

Trang 18

chỉnh sửa tài liệu, chơi trò chơi, viết mã chương trình và nhiều hơn nữa vớicác công cụ được cung cấp hoàn toàn miễn phí.

CentOS

Phiên bản mới nhất: 7.0

CentOS là một hệ thống được phát triển dựa trên các gói phần mềm của

bản RedHat(RedHat Enterprise Linux System- RHEL) nhằm đưa các mã

nguồn RedHat gốc biên dịch phát triển tập trung vào phần mềm mã nguồn

mở CentOS được sử dụng rộng rãi trong Web Hosting

Mageia

Phiên bản mới nhất: Mageia 2

Hệ điều hành Linux này đã phát triển mạnh mẽ kể từ năm 2012 Mageia

là một phần của Mandriva, khá là phổ biến Mageia có hầu hết các tính năng

của Linux với khả năng cơ bản, nhưng chưa mạnh Hệ điều hành này có thểchạy được trên bất kỳ máy tính nào và thường được cấu hình cho các máy

chủ Những người phát triển hệ điều hành Mageia luôn mong muốn cung cấp

miễn phí cho nhu cầu của tất cả người sử dụng

Arch Linux

Phiên bản mới nhất: Arch Linux 01/02/2013

Arch Linux được phát triển độc lập, bản phân phối Linux này có i686 vàx86_64 được tối ưu hóa nhắm đến người dùng Linux Quản lý đóng gói sảnphẩm, cung cấp thông tin cập nhật kịp thời để cài đặt phần mềm Arch Linux

có thể được cài đặt trên máy tính thông qua máy chủ FTP Tùy chỉnh cài đặt

có thể được thực hiện thông qua trình cài đặt mặc định Hơn nữa, Arch xây

dựng hệ thống (ABS- Arch Build System) cung cấp một cách dễ dàng xây

dựng các gói mới, tinh chỉnh hoặc sửa đổi cấu hình gói mặc định, và chia sẻhoặc nhúng các gói với những người dùng khác thông qua kho lưu trữ Archcủa người dùng Linux

Ngoài ra, một số bản phân phối Linux đang được phát triển như: Evolve

OS, Elementary OS và Ozon OS.

1.2 Kiến trúc hệ điều hành Linux

Linux dựa trên kiến trúc UNIX, là POSIX- Portable Operating System Interface for Unix tuân thủ và hỗ trợ hầu hết các tiêu chuẩn đặt ra cho UNIX.

Trang 19

Do đó, các kiến trúc cơ bản và nhiều tính năng của UNIX và Linux đều giốngnhau Trong thực tế, Linux thường được coi là một phiên bản khác của UNIX.Các hệ thống tập tin được hỗ trợ bởi Linux cũng tương tự như các tập tinUNIX hệ thống Cả hai đều có cấu trúc tương tự như sau:

Hình1.1 Kiến trúc của Linux

Cấu trúc Linux gồm 3 phần: Hardware (phần cứng), kernel (nhân), shell

và các tiện ích (utilities), chương trình (programs) và công cụ (tools) Trong

đó:

Shell: Cung cấp các tập lệnh cho người dùng thao tác với kernel để thực

hiện công việc, là bộ biên dịch lệnh và hoạt động như một kết nối trung gian

giữa Kernel với người dùng Shell nhận dòng lệnh do người dùng đưa vào, và

từ dòng lệnh nói trên, phân tích lệnh và gọi các chương trình tương ứng vớilệnh để thực hiện Một lệnh bao gồm tên lệnh và tham số: từ đầu tiên là tên

lệnh, các từ tiếp theo (nếu có) là các tham số Tiếp theo, shell sử dụng kernel

để khởi tạo một quá trình mới và sau đó, shell chờ đợi quá trình con này tiếnhành, hoàn thiện và kết thúc Khi shell sẵn sàng tiếp nhận dòng lệnh củangười dùng, một dấu nhắc shell (còn gọi là dấu nhắc nhập lệnh) xuất hiện trênmàn hình

Utilities(tiện ích): Các tiện ích được người dùng sử dụng thường xuyên.

Được dùng cho nhiều thứ như thao tác tập tin, đĩa, nén, sao lưu tập tin… Hầu

Trang 20

hết các tiện ích sử dụng trong Linux đều là sản phẩm của GNU Linux cónhiều tiện ích như là biên dịch, gỡ lỗi, soạn thảo văn bản…

Programs: khác với tiện ích thì các ứng dụng có độ phức tạp rất lớn

được các nhà sản xuất viết ra như word, quản trị cơ sở dữ liệu…

Kernel: là trung tâm điều khiển của hệ điều hành Linux, chứa các mã

nguồn điều khiển hoạt động của toàn bộ hệ thống Kernel được phát triển liên

tục, thường có hai phiên bản đồng thời là phiên bản mới nhất và phiên bản ổn

định nhất Kernel được thiết kế theo dạng các modulo chương trình có vai trò

điều khiển các thành phần của máy tính, phân phối các tài nguyên cho người

dùng (các quá trình người dùng) Kernel chính là cầu nối giữa chương trìnhứng dụng với phần cứng Người dùng sử dụng bàn phím nhập nội dung yêu

cầu của mình và yêu cầu đó được kernel gửi tới shell: Shell phân tích lệnh vàgọi các chương trình tương ứng với lệnh để thực hiện

1.3 So sánh hệ điều hành Linux và windows

1.3.1 Ưu điểm

Linux và Windows là hai hệ điều hành với những lợi thế riêng và có

sự khác biệt về tính năng Bảng dưới đây so sánh những ưu điểm cơ bản giữa hai hệ điều hành:

ƯU ĐIỂMChi phí Linux được phân phối và tải về

miễn phí

$ 119 - $ 199,99, 69 $ cho sinh viên

99 $ để nâng cấp lên pro.Phát triển và

Phát triển và phân phối độcquyền bởi Microsoft

Sử dụng Linux có thể được cài đặt trên

nhiều phần cứng máy tính, từ

Trên máy tính để bàn, máytính xách tay, máy chủ và

Trang 21

điện thoại di động, máy tínhbảng và video game, trên cácmáy tính lớn và các siêu máytính.

Cấu hình Là file text, vì vậy dễ dàng

chỉnh sửa Có thể xóa bỏ hoàntoàn những cấu hình cũ khikhông cần

Tất cả cấu hình được lưutrong registry Khi muốnchỉnh sửa rất phức tạp,thường phải sử dụng phầnmềm thứ ba

Linux print server

Linux Apache Web

Linux database

Linux – Based DNS

Active directory server

Firewall

Các client chạy Windows

Print server

Một ISS(Internet Information Service)

WINS server(Windows Internet Naming Service)

DNS server(Domain Name System)

Chế độ giao

diện văn bản

BASH (Bourne Again Shell) là

vỏ mặc định của Linux Hỗ trợbiên dịch lệnh

Windows sử dụng một tiệních dòng lệnh và mỗi phiênbản của Windows có duynhất một biên dịch lệnh vớiDOS, gần đây có sự bổ

Trang 22

sung của PowerShell có thểtùy chọn sử dụng nhiềulệnh như Unix.

Ngôn ngữ

có sẵn

Hiệu suất Linux cung cấp hiệu suất cao

trên các máy trạm và trên mạng

Có thể xử lý nhiều người sửdụng tại một thời điểm

Được thiết kế cho duy nhấtmột người sử dụng

Mã độc Rất ít mã độc có thể tấn công Có nhiều mã độc tồn tại

trong môi trường Windows.GUI và

Kernel

GUI tách biệt với Kernel Người

sử dụng có thể sử dụng GUI haykhông, hoặc sử dụng những GUIkhác nhau => cho phép tùy biến,phù hợp với server, tiết kiệmđược bộ nhớ và ít bị lỗi

GUI và Kernel là không thểtách rời => tiện lợi chongười dùng

Trang 23

x86-64: phiên bản XP - 8ARM: phiên bản RTTính ổn định Không cần phải khởi động lại

theo định kỳ để duy trì hiệusuất Có thể xử lý số lượng lớnngười sự dụng và không làmtreo hoặc làm chậm do các vấn

Nếu có một cuộc tấn công sẽ cócác giải pháp tức thời được thựchiện bởi các nhà phát triển trêntoàn thế giới giải quyết

Dễ bị nhiễm mã độc và cáccuộc tấn công khác

Bảng 1.2 Bảng so sánh tổng quan giữa HĐH Linux và Windows

1.3.2 Nhược điểm

Mặc dù Linux đang có tốc độ phát triển nhanh và đặc tính kỹ thuật tốtnhưng Linux vẫn chưa có thể đến với người sử dụng cuối do vẫn còn tồn tạinhững nhược điểm sau:

Đòi hỏi người dùng phải thành thạo

Trước kia việc sử dụng và cấu hình Linux được xem là một công việcchỉ dành cho những kỹ thuật viên công nghệ thông tin Hầu như mọi côngviệc đều thực hiện trên các dòng lệnh và phải cấu hình nhờ sửa trực tiếp cácfile Mặc dù trong những phiên bản gần đây, các hệ điều hành Linux cónhững cải tiến đáng kể, nhưng so với Windows, tính thân thiện của Linux vẫncòn là một vấn đề lớn Đây là một trong những nguyên nhân chủ yếu khiếnLinux mặc dù có rất nhiều đặc tính kỹ thuật tốt nhưng vẫn chưa đến được vớingười dùng cuối

Tính tiêu chuẩn hóa

Linux được phát hành miễn phí nên bất cứ ai cũng có thể tự đóng gói,phân phối theo những cách riêng Hiện tại có khá nhiều bản Linux phát triển

Trang 24

từ một kernel ban đầu cùng tồn tại như: Redhat, SuSE, Knoppix… Ngườidùng phải tự so sánh xem phiên bản nào là phù hợp với nhu cầu sử dụng.Điều này có thể gây khó khăn cho người dùng, nhất là những người có kiếnthức về tin học hạn chế.

Số lượng các ứng dụng chất lượng cao trên Linux còn hạn chế

Mặc dù Windows có các sản phẩm nào thì Linux cũng gần như có phầnmềm tương tự, (VD: OpenOffice trên Linux tương tự như MSOffice, hayGIMP tương tự như Photoshop…) Tuy nhiên chất lượng những sản phẩmnày chưa thể so sánh được với các sản phẩm viết cho windows

Phần cứng

Một số nhà sản xuất phần cứng không có driver hỗ trợ Linux Tuy nhiênvẫn có thể tìm thấy các driver này trên internet do cộng đồng mã nguồn mởviết

Trên cơ sở nhìn nhận một cách khách quan các ưu, nhược điểm của hệđiều hành Linux cũng như xu hướng phát triển tin học hiện tại có thể thấy đốivới người dùng thông thường, việc chuyển từ Windows sang Linux trong mộtthời gian ngắn là chưa thể Tuy nhiên, đối với những người làm tin học, kỹ sưcông nghệ thông tin, quản trị viên, sinh viên,…việc tìm hiểu và nghiên cứuLinux và phần mềm mã nguồn mở là một điều kiện rất tốt để nâng cao hiểubiết Linux vẫn được đánh giá là một hệ điều hành rất có giá trị : chi phí thấp,linh hoạt và ổn định

Trang 25

CHƯƠNG II NGHIÊN CỨU NHỮNG NGUY CƠ MẤT AN TOÀN VÀ GIẢI PHÁP TĂNG CƯỜNG AN NINH CHO HỆ ĐIỀU

có xuất hiện một vài loại mã độc hoạt động trên môi trường Linux nhưngkhông ảnh hưởng nhiều đến người dùng Linux) Nhưng một hệ thống Linuxđược cấu hình không tốt sẽ không bằng một hệ thống Microsoft được cấuhình tốt Chương này tìm hiểu những nguy cơ mất an toàn trên hệ điều hànhLinux, đồng thời giới thiệu những vấn đề cơ bản của an ninh, bảo mật, cácbiện pháp phòng ngừa để bảo mật dữ liệu trên hệ điều hành Linux

2. Những nguy cơ mất an toàn trên hệ điều hành Linux

1.2.1 Những nguy cơ mất an toàn trong cài đặt, cấu hình hệ thống

Tài khoản Guest (tài khoản khách)

Các hệ điều hành Ubuntu, Linux Mint, Elementary, … đều hỗ trợ tài

khoản khách (Guest), đồng nghĩa với việc bất cứ người dùng nào cũng có thể

đăng nhập vào hệ thống mà không cần mật khẩu Vì vậy, để đảm bảo an ninhcần phải vô hiệu hóa tài khoản này

sau đó truyền thông với máy chủ đang chạy dịch vụ mạng và thực hiện gỡ rối

Nhưng telnet không được mã hóa, vì vậy telnet có lỗ hổng trước các kiểu tấn công “packet-sniffing” và “man-in-the-middle” Do đó không nên sử dụng

Trang 26

Telnet để truyền tải username và password ngoại trừ các trường hợp tài khoản

sử dụng một lần

Mật khẩu

Khi lựa chọn mật khẩu, điều quan trọng là chọn những mật khẩu không

dễ đoán Cần có một tiêu chuẩn cho mật khẩu, không nên sử dụng những từphổ biến để làm mật khẩu vì tin tặc sẽ dễ dàng đoán biết được Có nhữngchương trình có sẵn để kiểm tra độ an ninh của mật khẩu bằng cách thử nhiều

từ có sẵn trong từ điển Nếu mật khẩu là một từ tìm thấy trong từ điển, bảomật trở nên vô dụng

Tài khoản root

Tài khoản root được gán quyền nhiều nhất trên một hệ thống Unix vàkhông có một hạn chế bảo mật nào Người dùng tài khoản root có quyền thựchiện tất cả các công việc hành chính Điều này có nghĩa là người quản trị cầnphải chú ý khi gán tài khoản root cho người dùng, chỉ với một câu lệnh nhậpsai có thể xóa sạch tất cả các tập tin hệ thống

Grub-bootloader

Có 2 booloader phổ biến trên Linux là GRUB và LILO (tiền thân củaGRUB) Cả 2 chương trình này đều có chung mục đích: cho phép người dùnglựa chọn một trong các hệ điều hành có trên máy tính để khởi động, sau đóGRUB sẽ nạp kernel của hệ điều hành đó vào bộ nhớ và chuyển quyền điềukhiển máy tính cho kernel này

Tuy nhiên khi khởi động Linux có thể gặp phải lỗi với GRUB ngăn cảntiến trình khởi động của hệ thống Có thể nhận thấy sự cố bằng những dấuhiệu xuất hiện:

- GRUB đã bị xóa hoàn toàn và người dùng sẽ không thấy gì ngoại trừmột con trỏ nhấp nháy khi máy chủ khởi động

- GRUB sẽ tạo ra một thông báo lỗi GRUB cụ thể

- GRUB cho biết nó không thể tìm thấy một file cần thiết

Phân quyền file

Linux xác định ba quyền trên các tập tin là read (đọc), write (viết), execute (thực thi) đối với ba đối tượng là người sở hữu (the owner), nhóm sở hữu (the group owner), người dùng khác (other user) Tuy nhiên, Linux là

một hệ điều hành đa người dùng vì vậy quá trình quy định quyền hạn trên các

Trang 27

tập tin đòi hỏi phải chặt chẽ và linh hoạt Do đó bất kỳ ai cũng có thể chỉnh

sửa các world-writable file dẫn tới rủi ro về bảo mật Vì vậy cần cấp phát

quyền hạn cho các thư mục dạng trên cho phù hợp

Mã độc

Tất cả các hệ thống máy tính có thể bị nhiễm các phần mềm độc hại,virus, bao gồm cả Linux Tuy nhiên, rất ít mã độc có thể tấn công Linux, vìvậy người sử dụng thường không cài đặt phần mềm chống lại mã độc Nhưngngay cả một hệ thống vá lỗi đầy đủ không có lỗ hổng được biết vẫn có thể bịtấn công Hơn nữa, hầu như tất cả các phần mềm chạy trên Linux là mã nguồn

mở, làm cho phần mềm độc hại dễ dàng xâm nhập Dưới đây là một số ví dụ:

- Một tài khoản người dùng có thể có một mật khẩu yếu và chịu một cuộc

1.2.2 Những lỗ hổng mới

Thư viện mã Glibc

Glibc là một thư viện chuẩn của ngôn ngữ lập trình C được sử dụngtrong các hệ điều hành tựa Unix

Ngày 27/1/2015 các chuyên gia bảo mật của Qualys đã phát hiện ra một

lỗ hổng nguy hiểm mới được công bố với tên “GHOST” GHOST là một lỗhổng bảo mật của thư viện glibc, xuất phát từ lỗi tràn bộ đệm trong hàm

nss_hostname_digits_dots() Hàm này được sử dụng bởi hàm

_gethostbyname Lỗ hổng này cho phép kẻ tấn công kiểm soát, điều khiển từ

xa hoàn toàn hệ thống bằng cách khai thác lỗ hổng tràn bộ đệm trong chứcnăng GetHOST của glibc Lỗ hổng GHOST có thể tồn tại trên các máy chủ

Trang 28

chạy hệ điều hành Linux mà có sử dụng thư viện glibc từ các phiên bản 2.18trở về trước

Có 2 phương pháp để kiểm tra và tìm ra xem máy tính có tồn tại lỗ hổngGHOST hay không:

- Phương pháp 1: Dùng chương trình C để kiểm tra:

Sử dụng lệnh wget để tải về GHOST.C trên một hệ thống Linux:

Wget

https://webshare.uchicago.edu/orgs/ITServices/itsec/Downloads/G HOST.c

hoặc

wget -O GHOST.c

https://gist.githubusercontent.com/koelling/ef9b2b9d0be6d6dbab6 3/raw/de1730049198c64eaf8f8ab015a3c8b23b63fd34/gistfile1.c

Trang 29

- Phương pháp 2: Kiểm tra Bash

Sử dụng tài khoản với RHN(Red Hat Network), người dùng có thể tải về

một tệp lệnh để kiểm tra xem hệ thống đang sử dụng có tồn tại lỗ hổng

GHOST hay không:

wget -O GHOST- test.sh

http://www.cyberciti.biz/files/scripts/GHOST-test.sh.txt

bash GHOST-test.sh

Kết quả trả về:

Hình 2.3 GHOST-test.sh dựa trên hệ thống RHEL/CentOS

GHOST là một lỗ hổng nghiệm trọng và đã tồn tại trong glibc một thờigian khá dài Tuy nhiên với các phiên bản mới ra thì người dùng có thể yêntâm về lỗ hổng bảo mật này Về mức độ nguy hại, sẽ không đảm bảo an toàn

nếu sử dụng hàm gethostbyname trong các ứng dụng Nhiều bản phân phối

của Linux đang được nhiều máy chủ sử dụng tồn tại lỗ hổng này như:

- RHEL (Red Hat Enterprise Linux) version 5.x, 6.x and 7.x

- CentOS Linux version 5.x, 6.x & 7.x

- Ubuntu Linux version 10.04, 12.04 LTS

- Debian Linux version 7.x

- Linux Mint version 13.0

- Fedora Linux version 19 or older

- SUSE Linux Enterprise 11 and older (also OpenSuse Linux 11 or older versions)

- Arch Linux glibc version <= 2.18-1

Để khắc phục lỗi GHOST, người dùng chỉ cần update glibc lên bản mớinhất và khởi động lại các dịch vụ bị ảnh hưởng:

Trang 30

- Bước 1: Kiểm tra phiên bản glibc đang sử dụng (Ubuntu, Debian,RHEL/CentOS) với câu lệnh:

yum update glibc

Có thể sử dụng update cho toàn bộ hệ thống (cách làm này có thể sẽ

khiến hệ thống khởi động lại server dẫn đến gián đoạn dịch vụ của server):+ Cho Ubuntu/Debian:

apt-get update && sudo apt-get upgrade

+ Cho Centos/RHEL:

yum update

Lỗ hổng Shellshock

Shellshock (hay còn được gọi là Bash bug) là một lỗ hổng bảo mật trong

Bash, được công bố vào ngày 25 tháng 9 năm 2014 Nhiều dịch vụ mạng, nhưcác máy chủ web, sử dụng Bash để thực thi lệnh khi cần thiết, cho phép kẻ tấncông khai thác lỗ hổng bảo mật Shellshock ở những phiên bản Bash lỗi đểđiều khiển từ xa máy chủ của các trang web hay các hệ thống mạng máy tính,

từ đó thực hiện các cuộc tấn công

Hình 2.4 Lỗ hổng ShellShocl trên OS X của AppleShellshock không đe dọa máy tính dùng Windows hay thiết bị WindowsPhone chạy các hệ điều hành do Microsoft phát triển không dùng nhân Linux

Trang 31

Chỉ những hệ thống máy chủ, thiết bị mạng như tường lửa (firewall), bộ định

tuyến mạng (router) cùng nhiều ứng dụng như OpenSSH, DHCP trên nềnLinux/Unix nhúng phần mềm Bash bên trong, bao gồm cả hệ điều hành OS Xcho máy Mac, hay iOS cho iPhone/iPad của Apple mới bị mắc lỗi này

Để kiểm tra máy chủ hay máy tính cá nhân có lỗ hổng Shellshock haykhông, người dùng có thể thực hiện một cách dễ dàng qua dòng lệnh dưới đâytrên Terminal:

$env x = '() { :;}; echo vulnerable' bash - c "echo this is a test"

Nếu kết quả trả về là:

vulnerable

this is a test

thì có nghĩa là máy tính đang kiểm tra có lỗ hổng Shellshock

Ngược lại, nếu máy tính đã được cập nhật bản vá và được bảo vệ thì giaodiện Terminal sẽ hiện thông báo:

$env x='() { :;}; echo vulnerable' bash -c "echo this is a test" bash:

warning: x: ignoring function definition attempt bash: error

importing function definition for `x' this is a test

thì có nghĩa là máy tính đang kiểm tra không có lỗ hổng Shellshock

Việc kiểm tra như trên chỉ áp dụng với phiên bản cũ của Shellshock Đã

có rất nhiều phiên bản Shellshock khác nhau lần lượt được công bố như 2014-6271, CVE-2014-7169, CVE-2014-7186, CVE-2014-7187, CVE-2014-

CVE-6277, CVE-2014-6278 Vì vậy người dùng có thể sử dụng công cụ trực tuyếntrên trang shellshocker.net để kiểm tra bằng một câu lệnh:

curl https://shellshocker.net/shellshock_test.sh | bash

Trang 32

Hình 2.5 Kiểm tra lỗ hổng ShellShock bằng công cụ trực tuyến trên

shellshocker.net

Cơ chế phát sinh ShellShock

Lỗ hổng Shellshock ảnh hưởng trực tiếp tới Bash (Bourne Again Shell),

một công cụ mà các hệ thống nền tảng Unix sử dụng để thực hiện các dònglệnh và tập lệnh Bash được cài đặt mặc định như giao diện dòng lệnh trong

hệ thống Trong các hệ điều hành nền tảng Unix và các hệ điều hành khác có

hỗ trợ Bash mỗi chương trình khi chạy sẽ có một danh sách các cặpname/value được gọi là các biến môi trường Khi một chương trình khởi chạymột chương trình khác nó sẽ cung cấp một danh sách khởi tạo các biến môitrường cho chương trình mới này.Mặt khác, Bash lưu giữ một danh sách cáchàm chứa một tập các lệnh mà sẽ được thực thi cùng với chương trình.VìBash hoạt động như là một trình thông dịch lệnh và vừa được coi như là mộtlệnh, nên có thể chạy Bash từ chính môi trường của nó.Khi điều này xảy ra,thực thể ban đầu có thể xuất (export) các biến môi trường và các định nghĩahàm thành các thực thể mới Các định nghĩa hàm được xuất ra bằng cách mãhóa chúng cùng với các biến môi trường có giá trị bắt đầu bằng “()” theo sau

là định nghĩa hàm Thực thể mới của Bash khi chạy sẽ tìm các biến môitrường có giá trị theo định dạng này và chuyển chúng thành các hàm Nó thựchiện việc chuyển đổi bằng cách tạo ra một đoạn mã từ giá trị của biến môitrường và thực thi nó, vấn đề ở chỗ các phiên bản Bash lỗi không kiểm tratính hợp lệ của một định nghĩa hàm do đó một lỗ hổng bảo mật Shellshock sẽđược tạo ra theo cách này

Từ đây có thể giải thích cách hoạt động cho đoạn mã sau:

Trang 33

$env x = '() { :;}; echo vulnerable' bash - c "echo this is a test"

Đoạn mã trên tạo ra một biến môi trường bắt đầu với chuỗi “() { :; }”,tạo ra một định nghĩa hàm rỗng Tiếp theo sau là lệnh sẽ được thực thi khibiến môi trường này được xuất ra Lệnh Bash được chạy sau đó sẽ thực hiệnviệc xuất ra biến môi trường này và lệnh echo sẽ được thực thi cùng với nó

Hình 2.6 Cơ chế phát sinh lỗ hổng ShellShock

Giải pháp khắc phục

Giải pháp khắc phục sự cố Shellshock không hề phức tạp.Người dùngchỉ cần cập nhật ứng dụng Bash lên phiên bản mới nhất Việc cập nhật nàyđược thực thi bằng lệnh khá đơn giản tùy thuộc từng hệ điều hành:

Trang 34

pacman – Syu

- OS X của Apple:

brew update

brew install bash

sudo sh -c 'echo "/usr/local/bin/bash" >> /etc/shells'

chsh -s /usr/local/bin/bash

sudo mv /bin/bash /bin/bash-backup

sudo ln -s /usr/local/bin/bash /bin/bash

Các bản vá lỗi Shellshock đã được cập nhật gần đây Tuy nhiên các bản

vá hiện tại vẫn chưa hoàn toàn khắc phục được tất cả mọi vấn đề liên quanđến Shellshock vì vậy kẻ tấn công vẫn có thể khai thác lỗ hổng này bằngnhiều cách khác nhau

3 Giải pháp tăng cường an ninh cho hệ điều hành Linux

1.3.1 Thiết lập chính sách bảo mật cho hệ điều hành Linux

Kết nối vào Inernet luôn tiềm ẩn những nguy hiểm cho hệ thống mạngvới mức an toàn thấp Từ những vấn đề trong các dịch vụ TCP/IP truyềnthống, tính phức tạp của việc cấu hình máy chủ, các lỗ hổng an ninh bên trongquá trình phát triển phần mềm và nhiều nhân tố khác góp phần làm cho những

hệ thống máy chủ không được chuẩn bị chu đáo có thể bị xâm nhập và luôntồn tại những nguy cơ tiềm tàng về vấn đề an toàn trong đó Mục đích củamột chính sách an toàn hệ thống là quyết định một tổ chức sẽ phải làm nhưthế nào để bảo đảm vấn đề bảo mật Để có được một chính sách an ninh hiệuquả, người xây dựng các chính sách này phải hiểu và có thể kết hợp tất cả cácthông tin, yêu cầu,… Những sai sót trong chính sách an ninh không chỉ liênquan đến những kẻ xâm nhập, mà còn liên quan đến những vấn đề bìnhthường như thời tiết, thiên tai, cháy, nổ, hư hỏng thiết bị, Do vậy, việc thiếtlập một chính sách an ninh tốt cho việc giải quyết những sự cố phải được lên

kế hoạch kỹ lưỡng, được xem xét và chứng nhận bởi người có quyền hạn

Hardening là quá trình nâng cao tính bảo mật cho một hệ thống bằng

cách tạo ra các thay đổi trên hệ thống đó Bước đầu tiên trong việc bảo mậtbất kỳ hệ thống nào, Linux hay Windows, là phải đảm bảo rằng hệ thống đó

Trang 35

nằm ở vị trí an toàn như trung tâm dữ liệu (data center), trung tâm điều hành mạng (network openration center) nhằm ngăn chặn hacker truy cập vật lý (physical acsess) tới hệ thống.

Bước kế tiếp là phải đề ra chính sách mật khẩu (password policy) chặt

chẽ Người dùng không nên để lộ tên tài khoản người dùng và mật khẩu cho

kẻ xấu biết được Ngoài ra, các quản trị viên cũng cần đảm bảo rằng các tài

khoản trên hệ thống của mình không có tài khoản nào có mật khẩu rỗng (null password).

Deny all (hay Whitelisting) là một trong những chính sách tốt nhằm bảo

vệ hệ thống trước nguy cơ tấn công mạng Ban đầu tất cả người dùng bênngoài đều bị cấm truy cập vào hệ thống Sau đó, người quản trị sẽ cấp quyềntruy cập xác đáng cho từng người dùng thật sự tin cậy Cách này giúp đảmbảo rằng người dùng không thể truy cập tới các file mà họ không được phép

truy cập Trong Linux, thực hiện lệnh sau để áp dụng chính sách deny all:

#cat’’ALL:ALL”>> /ect/host.deny

Một cách khác nữa để bảo vệ Linux server là loại bỏ các phần mềm vàdịch vụ không cần thiết Đồng thời, đảm bảo rằng hệ thống luôn được cậpnhật mới và đầy đủ các bản vá lỗi

Các quản trị viên cũng nên thường xuyên kiểm tra log hệ thống để phát

hiện sớm nhât các dấu hiện bất thường mà có thể dẫn đến hệ thống bị tấncông và phá hoại

Dưới đây là một số bước để tăng cường an ninh cho Linux server:

Lựa chọn và cài đặt hệ điều hành

- Sử dụng phiên bản Linux (Distro) nổi tiếng

- Phân vùng ổ cứng: đặt các file của hệ điều hành trên một phân vùng táchbiệt với chương trình, dữ liệu các nhân của người dùng

- Sau khi hoàn tất việc cài đựt hệ điều hành, áp dụng tất cả các bản quantrọng cho hệ điều hành

- Kích hoạt và cấu hình Iptables

- Cài đặt một hệ thống phát hiện xâm nhập cho host (HIDS)

- Không cài đặt bất kỳ các ứng dụng hoặc dịch vụ dư thừa nào,

Ngày đăng: 09/11/2017, 13:37

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w