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

XÂY DỰNG WEBSITE PYTHON THU THẬP,QUẢN LÝ LỖI HỆ THỐNG VỚI MÃ NGUỒN MỞ OSSEC

57 396 1

Đ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 57
Dung lượng 2,89 MB

Nội dung

XÂY DỰNG WEBSITE PYTHON THU THẬP VÀ QUẢN LÝ SỰ KIỆN AN NINH VỚI MÃ NGUỒN MỞ OSSEC XÂY DỰNG WEBSITE PYTHON THU THẬP VÀ QUẢN LÝ SỰ KIỆN AN NINH VỚI MÃ NGUỒN MỞ OSSEC Thu thập và hoàn thành việc phân tích đầy đủ các loại dữ liệu và mã nguồn mở OSSEC tạo ra.Xây dựng được các chức năng cơ bản của website thu thập và quản lý sự kiện anh ninh với giao diện đơn giản, cung cấp nhiều thông tin, đem lại cái nhìn tổng quát về hệ thống.Biết thêm kiến thức về mã nguồn mở OSSEC mã nguồn mở hệ thống phát hiện xâm nhập (HIDS)Có kiến thức thêm về xây dựng website với Django framework, xử lý dữ liệu với ngôn ngữ Python, PostgreSQL và một số phần mềm hỗ trợ khác. XÂY DỰNG WEBSITE PYTHON THU THẬP VÀ QUẢN LÝ SỰ KIỆN AN NINH VỚI MÃ NGUỒN MỞ OSSEC XÂY DỰNG WEBSITE PYTHON THU THẬP VÀ QUẢN LÝ SỰ KIỆN AN NINH VỚI MÃ NGUỒN MỞ OSSEC Tiếp tục tìm hiểu và xây dựng lên một hệ thống OSSIM hoàn chỉnh cung cấp đầu đủ chức năng:Quản lý agents, servers, rules, …Quản lý nhiều người dùng cùng sử dụng hệ thốngHệ thống thông kê với bảng vẽ, biểu đồ, hình ảnh.Tối ưu hoá quá trình xử lý và lưu trữ dữ liệu nhằm tăng hiệu suất cho hệ thốngKết hợp với các hệ thống khác từ khối lượng dữ liệu lớn thu thập được XÂY DỰNG WEBSITE PYTHON THU THẬP VÀ QUẢN LÝ SỰ KIỆN AN NINH VỚI MÃ NGUỒN MỞ OSSEC

Trang 1

KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

XÂY DỰNG HỆ THỐNG THU THẬP VÀ QUẢN LÝ SỰ KIỆN AN NINH VỚI MÃ NGUỒN

MỞ OSSEC

Trang 3

Mạng máy tính và truyền thông đã nhiệt tình chỉ dẫn và giúp đỡ, trong đó em xin gửilời cảm ơn sâu sắc đến thầy đã nhiệt tình hướng dẫn các bước để thực hiện đề tài, giúp

em giải quyết nhiều khó khăn và nảy ra nhiều ý tưởng mới Đồng thời em cũng gửi lờicảm ơn đến các anh/chị khóa trên, các bạn trong lớp đã đóng góp ý kiến để em hoànthiện báo cáo một cách tốt nhất

Mặc dù đã cố gắng, tuy nhiên trong một thời gian ngắn cũng như kiến thức cònnhiều hạn chế nên chắc chắn không thể tránh khỏi những sai sót Em rất mong nhậnđược những sự đánh giá, góp ý của thầy để hoàn thiện kiến thức của mình hơn

Một lần nữa, em xin chân thành cảm ơn thầy rất nhiều! Chúc thầy sức khỏe và gặpnhiều thành công trong sự nghiệp

TP Hồ Chí Minh, tháng 06 năm 2017

Trang 4

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Trang 5

Xây dựng hệ thống thu thập và quản lý sự kiện an ninh với mã nguồn mở OSSEC.

2 Giảng viên hướng dẫn:

3 Sinh viên thực hiện:

4 Thời gian thực hiện:

5 Nội dung đề tài:

- Tìm hiểu về mã nguồn mở hệ thống phát hiện xâm nhập(HIDS) –OSSEC

- Tìm hiểu về hệ quản trị cơ sở dữ liệu PostgreSQL

- Tìm hiểu và xây dựng giao diện bằng HTML, CSS, jQuery, Boostrap

- Tìm hiểu và xây dựng website trên Python web framework Django

6 Cấu trúc báo cáo:

Chương 1: Giới thiệu đề tài Chương này trình bày về bối cảnh, mục đích và lý do

chọn đề tài

Chương 2: Cơ sở lý thuyết Chương này trình bày về hệ thống phát hiện xâm nhập

– mã nguồn mở OSSEC, các lý thuyết cơ bản về Python, Django, PostgreSQL, HTML,CSS, jQuery, Boostrap

Chương 3: Phân tích thiết kế hệ thống Chương này trình bày về việc phân tích và

thiết kế xây dựng hệ thống thu thập, quản lý các sự kiện an ninh

Chương 4: Triển khai và xây dựng hệ thống Chương này trình bày về triển khai,

mô phỏng hệ thống và các bước cài đặt

Chương 5: Kết luận, hướng phát triển đề tài Chương này tổng kết về những kết

quả đạt được, những ưu khuyết điểm của hệ thống và hướng phát triển

Trang 7

1.1 Tên đề tài 1

1.2 Thực trạng và lý do chọn đề tài 1

1.2.1 Thực trạng vấn đề 1

1.2.2 Hướng giải quyết 2

Chương 2: CƠ SỞ LÝ THUYẾT 3

2.1 Hệ thống phát hiện xâm nhập – mã nguồn mở OSSEC 3

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

2.1.2 OSSEC – mã nguồn mở về HIDS 4

2.1.3 OSSEC – lợi ích và các tính năng nổi trội 5

2.1.3.1 Lợi ích 5

2.1.3.2 Tính năng nổi trội 6

2.2 Ngôn ngữ Python và hệ quản trị CSDL PostgreSQL 7

2.2.1 Ngôn ngữ Python 7

2.2.1.1 Python là gì? 7

2.2.1.2 Các phiên bản 8

2.2.1.3 Những ưu điểm của Python 8

2.2.2 Hệ quản trị CSDL PostgreSQL 9

2.2.2.1 PostgreSQL là gì? 9

2.2.2.2 Một số ưu điểm của PostgreSQL 9

2.3 Ngôn ngữ HTML 11

Trang 8

2.5.1 Giới thiệu 13

2.5.2 Một số ưu điểm của Framework Django 15

2.5.3 Cấu trúc của một Django project 15

Chương 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 18

3.1 Mô tả hệ thống 18

3.2 Phân tích thành phần xử lý 19

3.2.1 Quản trị logs 19

3.2.2 Quản lý tính toàn vẹn 20

3.3 Phân tích thành phần dữ liệu 21

3.3.1 Xây dựng mô hình dòng dữ liệu (DFD) 21

3.4 Mô hình thực thể kết hợp (ERD) 23

3.4.1 Biểu diễn các thực thể 23

3.4.2 Biểu diễn các quan hệ 23

3.4.3 Biểu diễn mô hình thực thể kết hợp (ERD) 25

Chương 4: TRIỂN KHAI HỆ THỐNG VÀ WEBSITE 26

4.1 Triển khai hệ thống 26

4.2 Triển khai website 26

4.3 Giao diện website hệ thống 31

Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 36

Trang 9

5.4 Thu hoạch chung 36 5.5 Hướng phát triển đề tài 37 Tài liệu tham khảo 45

Trang 10

Hình 2.2: Bố cục cơ bản của 1 trang HTML 12

Hình 2.3: Mô hình MVC trong Django 14

Hình 2.4: Framework Django 14

Hình 2.5: Khởi tạo 1 project Django đơn giản 16

Hình 2.6: Khởi chạy Django project 17

Hình 2.7: Hiển thị Django project trên trình duyệt 17

Hình 3.1: Sơ đồ triển khai hệ thống 18

Hình 3.2: Mô hình DFD mức ngữ cảnh 21

Hình 3.3: Mô hình biểu diễn các thực thể 23

Hình 3.4: Biểu diễn quan hệ một – một 24

Hình 3.5: Biểu diễn quan hệ một - nhiều (bắt buộc) 24

Hình 3.6: Biểu diễn quan hệ một – nhiều 24

Hình 3.7: Mô hình ERD của hệ thống 25

Hình 4.1: Danh sách source code các tác vụ chạy ngầm 27

Hình 4.2: Danh sách urls mapping của Log app 29

Hình 4.3: ListView của Log app 29

Hình 4.4: Xử lý các dữ liệu trên template với Django template tags 30

Hình 4.5: Trang hiển thị danh sách tất cả logs 31

Hình 4.6: Trang tìm kiếm danh sách logs 32

Hình 4.7: Trang hiển thị chi tiết log 32

Hình 4.8: Trang hiển thị danh sách syschecks 33

Hình 4.9: Trang tìm kiếm danh sách syschecks 33

Hình 4.10: Trang hiển thị chi tiết syscheck 34

Trang 11

Bảng 2.2: Giới hạn kích thước tối đa trong PostgreSQL 11

Trang 12

CSS Cascading Style Sheet

ERD Entity Relationship Diagram

HIDS Host-based Intrusion Detection SystemHTML Hypertext Markup Language

OSSEC Open Source HIDS SECurity

Trang 13

Chương 1: TỔNG QUAN ĐỀ TÀI

OSSEC là một mã nguồn mở về hệ thống phát hiện xâm nhập (HIDS) thực hiệncác hoạt động phân tích, kiểm tra tính toàn vẹn, giám sát đăng ký Windows, phát hiệnrootkit, cảnh báo theo thời gian và phản hồi động Nó có thể được sử dụng để theo dõimột server hoặc hàng nghìn client trong chế độ server/agent

Bên cạnh các giải pháp thương mại hay hỗ trợ có phí về hệ thống thu thập và quản

lý sự kiện an ninh dựa trên công nghệ nền tảng là OSSEC như AlienVault UnifiedSecurity Management™ (USM), Wazuh Open Source Host and Endpoint Security thìbản thân OSSEC cũng có một phiên bản web cung cấp giao diện trực quan cho ngườidùng quản lý Tuy nhiên, phiên bản website của OSSEC gần như là một dự án chết vàkhông còn hỗ trợ nữa, giao diện hiện tại chưa thực sự đem lại cái nhìn chi tiết, toàn vẹncho toàn bộ tình hình an ninh, sự kiện diễn ra trong hệ thống

Trang 14

1.2.2 Hướng giải quyết

Cũng chính vì những vấn đề trên mà em đã nảy ra ý tưởng về tiến hành xây dựnglên một hệ thống thu thập và quản lý sự kiện an ninh với mã nguồn mở OSSEC trênnền web nhằm đáp ứng nhu cầu theo dõi, quản lý các sự kiện an ninh trong hệ thống

Hi vọng đem lại những cái nhìn cụ thể, cải thiện những vấn đề thiếu sót trên phiên bảnwebsite hiện tại của OSSEC, tập trung những vấn đề cốt lõi trong việc quản lý an ninhthông tin

Thông qua việc theo dõi thông tin thu thập được trên website hệ thống, người quảntrị sẽ có thể dễ dàng phân tích dữ liệu, phát hiện ra những rủi ro, lỗ hổng bảo mật mà

hệ thống minh đang gặp phải Từ đó tiến hành các giải pháp ngăn ngừa, ngăn chặn đểbảo vệ thông tin, các tài sản quý giá cho cá nhân, doanh nghiệp

Trang 15

Chương 2: CƠ SỞ LÝ THUYẾT

2.1 Hệ thống phát hiện xâm nhập – mã nguồn mở OSSEC

nó không giống như loại Network-based IDS Một trong những ưu điểm củaviệc sử dụng HIDS là nó có thể chặn các traffic đã được mã hóa Nhược điểmchính của HIDS chính là chi phí triển khai cũng như tài nguyên ngày càng phình

to ra Mặc định thì cơ sở dữ liệu HIDS được lưu trữ tại local và chính điều nàycũng có thể xem là một nhược điểm nếu như máy tính chứa HIDS gặp trục trặcthì cơ sở dữ liệu cũng sẽ gặp lỗi

- Network-based intrusion detection system (NIDS) – nó có thể được càiđặt trên các máy tính nhưng hiện nay có các thiết bị NIDS chuyên dụng, nóicách khác NIDS có thể chạy trên một thiết bị riêng biệt NIDS có khả năng kiểmtra tất cả các gói dữ liệu đi vào mạng Với HIDS bạn chỉ có thể xem được cácgói dữ liệu của máy tính đó nhưng với NIDS bạn có thể xem được tất cả Ưuđiểm của NIDS là ít tốn kém và giảm dung lượng tài nguyên lưu trữ Tuy nhiên,bất cứ cái gì cũng có ưu và nhược NIDS không thể giám sát những thứ đangvận hành trong một hệ điều hành

Trang 16

2.1.2 OSSEC – mã nguồn mở về HIDS

OSSEC[1] ban đầu phát triển bởi Daniel B Cid vào tháng 9 năm 2005, sau đóđược Third Brigade, Inc mua lại vào tháng 6 năm 2008 Đến tháng 5 năm 200, mua lạiThird Brigade và dự án OSSEC, tiếp tục phát triển OSSEC theo hướng mã nguồn mở

và miễn phí Các thông tin cơ bản về OSSEC:

Stable release 2.8.3 / November 5, 2015

Operating System

Bảng 2.1: Các thông tin cơ bản về OSSEC

OSSEC là một mã nguồn mở về hệ thống phát hiện xâm nhập (HIDS) để thực hiệncác hoạt động phân tích, kiểm tra tính toàn vẹn, giám sát đăng ký Windows, phát hiệnrootkit, cảnh báo theo thời gian, và phản hồi động OSSEC hỗ trợ hầu hết các hệ điềuhành, bao gồm: Linux, OpenBSD, FreeBSD, MacOS, Solaris và Windows Nó có cấutrúc trung tâm(client – server) cho phép theo dõi, quản lý số lượng lớn các máy tínhđầu cuối

OSSEC là mã nguồn mở, do đó bạn có dễ dàng thay đổi, chỉnh sửa mã nguồn, sửdụng mã nguồn để xây dựng nên các hệ thống phục vụ cho các mục đích của mình Nóđược sử dụng rất phổ biến bởi các IPSs, tổ chức, chính phủ, quân đội, các tập đoàn haythậm chí là các datacenter cho giải pháp về HIDS Cộng đồng sử dụng OSSEC cũng rấtlớn nên bạn có thể dễ dàng nhờ giúp đỡ từ hỗ trợ cộng đồng hay các hỗ trợ có tính phí

Trang 17

2.1.3 OSSEC – lợi ích và các tính năng nổi trội

2.1.3.1 Lợi ích

- Yêu cầu tuân thủ

OSSEC giúp khách hàng đáp ứng yêu cầu tuân thủ về PCI (Payment Card Industry)

và HIPAA (Healthcare Information Portability and Accountability Act) Nó cho phépkhách hàng phát hiện và cảnh báo về sửa đổi hệ thống tập tin trái phép và hành vi nguyhiểm nhúng trong các tập tin đăng nhập của các sản phẩm thương mại cũng như cácứng dụng tùy chỉnh

- Đa nền tảng

OSSEC cho phép xây dựng hệ thống phát hiện xâm nhập toàn diện với các chínhsách cụ thể trên nhiều nền tảng như Linux, Solaris, Windows và Mac OS X

- Thời gian thực và cấu hình cảnh báo linh động

OSSEC cho phép khách hàng cấu hình các sự kiện họ muốn được thông báo, và chophép họ tập trung vào việc nâng cao mức độ ưu tiên của các sự cố quan trọng đối vớitiếng ồn thông thường trên bất kỳ hệ thống nào Các tùy chọn về phản ứng tích cực đểchặn một cuộc tấn công ngay lập tức cũng có sẵn

- Tích hợp với cơ sở hạ tầng hiện tại

OSSEC sẽ tích hợp với các sản phẩm thương mại của khách hàng như SIM / SEM(Quản lý sự cố Bảo mật / Quản lý sự kiện Bảo mật) từ các để báo cáo tập trung vàtương quan các sự kiện

- Quản lý tập trung

Trang 18

OSSEC cung cấp một máy chủ quản lý tập trung được đơn giản hóa để quản lý cácchính sách trên nhiều hệ điều hành.

- Agent và giám sát không agent

OSSEC cung cấp sự linh hoạt trong việc theo dõi và giám sát các hệ thống và cácthành phần mạng như bộ định tuyến và tường lửa Giám sát không trung lập cho phépkhách hàng có các hạn chế về phần mềm được cài đặt trên hệ thống (như các hệ thốnghoặc thiết bị được FDA chấp thuận) đáp ứng các yêu cầu về an ninh và tuân thủ

2.1.3.2 Tính năng nổi trội

- Kiểm tra tính toàn vẹn tập tin

Có một điểm chung với bất kỳ cuộc tấn công nào vào mạng và máy tính của bạn: họthay đổi hệ thống của bạn theo cách nào đó Mục tiêu kiểm tra toàn vẹn tệp tin (hoặcgiám sát toàn vẹn tệp tin FIM) là phát hiện những thay đổi này và cảnh báo bạn khichúng xảy ra

- Quản lý log

Mỗi hệ điều hành, ứng dụng và thiết bị trên mạng của bạn tạo ra nhật ký (sự kiện)

để cho bạn biết điều gì đang xảy ra OSSEC thu thập, phân tích và tương quan các nhật

ký này để cho bạn biết nếu có điều gì đáng ngờ xảy ra (tấn công, lạm dụng, lỗi, )

- Phát hiện Rootkit

Các hacker hình sự muốn giấu hành động của họ, nhưng sử dụng phát hiện rootkitbạn có thể được thông báo khi hệ thống được sửa đổi theo cách chung của rootkit

- Phản hồi động

Trang 19

Phản hồi đang hoạt động cho phép OSSEC thực hiện ngay khi thông báo được chỉđịnh được kích hoạt Điều này có thể ngăn sự cố phát tán trước khi quản trị viên có thểhành động.

2.2 Ngôn ngữ Python và hệ quản trị CSDL PostgreSQL

2.2.1 Ngôn ngữ Python

2.2.1.1 Python là gì?

Python[2] là một ngôn ngữ lập trình thông dịch do Guido van Rossum tạo ra năm

1990, được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận PythonSoftware Foundation quản lý

Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện chongười mới học lập trình Cấu trúc của Python còn cho phép người sử dụng viết mã lệnhvới số lần gõ phím tối thiểu với sự hỗ trợ lớn từ các thư viện cộng đồng

Ban đầu, Python được phát triển để chạy trên nền Unix Nhưng rồi theo thời gian,

nó đã "bành trướng" sang mọi hệ điều hành từ MS-DOS đến Mac OS, OS/2, Windows,Linux và các hệ điều hành khác thuộc họ Unix Mặc dù sự phát triển của Python có sựđóng góp của rất nhiều cá nhân, nhưng Guido van Rossum hiện nay vẫn là tác giả chủyếu của Python Ông giữ vai trò chủ chốt trong việc quyết định hướng phát triển củaPython

Trang 20

Hình 2.1: Python

2.2.1.2 Các phiên bản

Python 1: bao gồm các bản phát hành 1.x Giai đoạn này, kéo dài từ đầu đến cuốithập niên 1990 Từ năm 1990 đến 1995, Guido làm việc tại CWI (Centrum voorWiskunde en Informatica – Trung tâm Toán-Tin học tại Amsterdam, Hà Lan) Phiênbản cuối cùng phát hành tại CWI là 1.2

Python 2: vào năm 2000, Guido và nhóm phát triển Python dời đến BeOpen.com

và thành lập BeOpen PythonLabs team Phiên bản Python 2.0 được phát hành tại đây.Python 3, còn gọi là Python 3000 hoặc Py3K: Dòng 3.x sẽ không hoàn toàn tươngthích với dòng 2.x, tuy vậy có công cụ hỗ trợ chuyển đổi từ các phiên bản 2.x sang 3.x.Nguyên tắc chủ đạo để phát triển Python 3.x là “bỏ cách làm việc cũ nhằm hạn chếtrùng lặp về mặt chức năng của Python”

Python được thiết kế để trở thành một ngôn ngữ dễ học, mã nguồn dễ đọc, bố cụctrực quan, dễ hiểu Python tăng cường sử dụng từ khóa tiếng Anh, hạn chế các kí hiệu

Trang 21

Python đã hỗ trợ cho một chế độ tương tác cho phép thử nghiệm tương tác và gỡlỗi các đoạn mã Việc thực hiện tiêu chuẩn của Python được viết trong ANSI C, và biêndịch và chạy trên hầu như tất cả các nền tảng lớn hiện đang sử dụng.

Python cho phép chia chương trình thành các module để có thể sử dụng lại trongcác chương trình khác Nó cũng cung cấp sẵn một tập hợp các module chuẩn mà lậptrình viên có thể sử dụng lại trong chương trình của họ, tạo như Python trở thành ngônngữ có hệ thống module, thư viện rộng rãi nhất

2.2.2 Hệ quản trị CSDL PostgreSQL

2.2.2.1 PostgreSQL là gì?

PostgreSQL[3] là hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở tiên tiến mà mụcđích chính là tuân thủ theo chuẩn và khả năng mở rộng PostgreSQL hay còn gọi làPostgree áp dụng chuẩn SQL ANSI/IOS cùng với các phiên bản PostgreSQL có thểchạy trên tất cả các hệ điều hành, bao gồm cả Linux, UNIX (AIX, BSD, HP-UX, SGIIRIX, Mac OS X, Solaris, Tru64), và Windows

So với các hệ quản trị cơ sử dữ liệu quan hệ khác, PostgreSQL khá khác Nó hỗ trợhướng đối tượng mạnh mẽ và chức năng cơ sở dữ liệu quan hệ Ví dụ như hỗ trợ hoàntoàn cho các giao dịch đáng tin cậy như là Atomicity, Consistency, Isolation,Durability (ACID)

Do có nền tảng công nghệ mạnh mẽ, Postgres có hoàn toàn có khả năng xử lýnhiều tiến trình rất hiệu quả Sự hỗ trợ đồng thời đạt được mà không cần đọc các khóanhờ vào sự thực hiện của Multiversion Concurrency Control (MVCC), mà nó cũngđảm bảo việc tuân thủ theo ACID

- Mô hình dữ liệu

Trang 22

PostgreSQL không chỉ là cơ sở dữ liệu quan hệ, nó là quan hệ hướng đối tượng.Điều này cung cấp cho nó một vài lợi thế so với các cơ sở dữ liệu SQL mã nguồn mởkhác như MySQL, MariaDB và Firebird.

Một đặc điểm cơ bản của cơ sở dữ liệu quan hệ hướng đối tượng là hỗ trợ các đốitượng người dùng tự định nghĩa và các hành vi của chúng bao gồm các kiểu dữ liệu,các hàm, các thao tác, các tên miền và các chỉ mục

- Các kiểu dữ liệu và cấu trúc

Có một danh sách các kiểu dữ liệu PostgreSQL hỗ trợ Bên cạnh kiểu số, point, chuỗi, boolean, và các kiểu dữ liệu mà bạn mong muốn (và nhiều tùy chọnkhác), PostgreSQL tự hào với uuid, tiền tệ, liệt kê(enumerated), hình học(geometric),nhị phân(binary), địa chỉ mạng, chuỗi bit, tìm kiếm văn bản, xml, json, mảng, hỗn hợp,

floating-và các loại khoảng, cũng như một floating-vài kiểu internal cho nhận biết đối tượng floating-và vị tríđăng nhập

- Hỗ trợ JSON

Hỗ trợ JSON của PostgreSQL cho phép bạn ít sơ đồ (schema-less) trong một cơ sở

dữ liệu SQL Điều này có thể hữu ích khi cấu trúc dữ liệu yêu cầu phải có sự linh hoạtbởi vì nó vẫn thay đổi trong phát triển hoặc khi nó không biết các trường dữ liệu màđối tượng dữ liệu sẽ chứa

- Tạo một kiểu mới

Và nếu danh sách các loại dữ liệu mở rộng có sẵn của PostgreSQL là không đủ, bạn

có thể sử dụng lệnh CREATE TYPE để tạo ra các kiểu dữ liệu mới như hỗn hợp

(composite), liệt kê (enumerated), khoảng (range) và base

Trang 23

PostgreSQL có thể xử lý một lượng lớn dữ liệu Các giới hạn về kích thước gửiđược liệt kê dưới đây:

Kích thước tối đa của cơ sở dữ liệu Không giới hạn

Kích thước tối đa của table 32 TB

Kích thước tối đa của hàng (row) 1.6 TB

Kích thước tối đa của trường (field) 1 GB

Số hàng tối đa trên mỗi bảng Không giới hạn

Số cột tối đa trên mỗi bảng 250 - 1600 phụ thuộc vào kiểu cột

Số lượng index tối đa trên mỗi bảng Không giới hạn

Bảng 2.2: Giới hạn kích thước tối đa trong PostgreSQL

- Toàn vẹn dữ liệu

PostgreSQL phấn đấu để phù hợp với chuẩn ANSI-SQL:2008, tuân thủ đầy đủACID (Atomicity, Consitency, Isolation và Durability), và cũng được biết đến cáctham chiếu vững chắc của nó (rock-solid referential) và toàn vẹn giao dịch(transactional integrity) Các khóa chính, hạn chế và các tầng khóa ngoài, các ràngbuộc duy nhất, các ràng buộc not null, kiểm tra các ràng buộc và các tính năng toànvẹn dữ liệu khác để chắc chắn chỉ dữ liệu hợp lệ mới được lưu trữ

2.3 Ngôn ngữ HTML

HTML[4] là chữ viết tắt cho HyperText Markup Language, hay là "Ngôn ngữ Đánh

dấu Siêu văn bản" Nó dùng để định dạng bố cục, các thuộc tính liên quan đến cáchhiển thị của một đoạn văn bản và được hiển thị trên một chương trình đặc biệt ta gọi làtrình duyệt Hiện nay có khá nhiều trình duyệt như Firefox, Chrome, Cốc Cốc, Tất cảtrình duyệt đều có điểm chung là giúp người dùng thao tác với website và nó đều có

Trang 24

khả năng biên dịch những đoạn mã HTML, CSS và Javascript Cùng với HTML tạo ra

bộ ba nền tảng kỹ thuật cho website

Thông thường bố cục HTML của một website có dạng như sau:

Hình 2.2: Bố cục cơ bản của 1 trang HTML

Trong đó:

- <!DOCTYPE html> là phần khai báo kiểu tài liệu là HTML5 để trình duyệt

hiển thị một cách chính xác

- <html></html> là cặp thẻ nằm ngoài cùng và nó có nhiệm vụ là bao hết nội

dung của trang web lại Thẻ này là bắt buộc đối với 1 trang web

- <head></head> là phần khai báo các thông tin của trang web, include các thư

viên, các file css, javascript

- <title></title> nằm bên trong thẻ <head></head> và đây chính là khai báo tiêu

Trang 25

- <body></body> là thành phần quan trọng nhất, nó chứa nhưng đoạn mã HTML

dùng để hiển thị trên website

- Các cặp thẻ <h1></h1>, <p></p> còn lại nằm trong thẻ <body></body> là các

thẻ định dạng dữ liệu

2.4 Ngôn ngữ CSS

CSS[5] là chữ viết tắt của cụm từ "Cascading Style Sheet", nó là một ngôn ngữđược sử dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngôn ngữ đánhdấu (ví dụ như HTML) Có thể hiểu đơn giản rằng, nếu HTML đóng vai trò định dạngcác phần tử trên website như việc tạo ra các đoạn văn bản, các tiêu đề, bảng,…thì CSS

sẽ giúp chúng ta có thể thêm một chút “phong cách” vào các phần tử HTML đó nhưđổi màu sắc trang, đổi màu chữ, thay đổi cấu trúc …

Có một ví dụ trực quan để diễn tả nhiệm vụ của CSS như sau, giả sử bạn xây nhà

và bạn sẽ sử dụng gạch để xây dựng ngôi nhà Nhưng để trang trí cho ngôi nhà thì bạn

sẽ sử dụng một số đồ nội thất khác như sơn màu, thì lúc này sơn màu sẽ tác độnglàm thay đổi màu sắc mặc định của gạch Nói ví von thì màu sơn chính là CSS và gạchchính là HTML

2.5 Python web framework – Django

2.5.1 Giới thiệu

Django[6] là một web framework miễn phí mã nguồn mở được viết bằng Python.Django sử dụng mô hình Model-View-Control (MVC), được phát triển bởi DjangoSoftware Foundation (DSF) – một tổ chức phi lợi nhuận độc lập Nó không phải là mộtmicro-framework như Flask, mà là một framework với đầy đủ các thư viện, module hỗtrợ các web-developer

Trang 26

Hình 2.3: Mô hình MVC trong Django

Django được đưa vào sử dụng rộng rãi từ năm 2005, ban đầu là một frameworkhướng đối tượng cho một website của tờ báo ở Kansas Ngay lập tức framework nàyđược phổ biến và phát triển rất mạnh Django rất thích hợp để xây dựng nên các trangwebsite lớn Đó là lí do tại sao Django đang dần được phổ biến nhằm triển khai các dự

án một cách nhanh chóng với những quy mô lớn

Trang 27

2.5.2 Một số ưu điểm của Framework Django

- Django được thiết kế với triết lý làm sao để các lập trình viên đưa các ý tưởng

trở thành một sản phẩm nhanh nhất có thể

- Có đầy đủ các thư viện/module cần thiết: Django có sẵn các thư viện về user

authentication, content admin, site maps, RSS feed,

- Đảm bảo về tính bảo mật: Không còn các nỗi lo về các lỗi bảo mật thông thường

như SQL Injection, cross-site scripting, cross-site request forgery hayclickjacking nữa Django cũng cung cấp cả phương pháp để lưu mật khẩu antoàn nữa

- Khả năng mở rộng tốt: Django có thể đáp ứng lượng traffic lớn, nghĩa là bạn

không cần phải lo lắng về khả năng mở rộng sản phẩm của mình nữa

- Tính linh hoạt: Xây dựng CMS, hoặc Ecommerce Website, hay kể cả Social

Network, Scientific Computing Platforms, tất cả đều có thể với Django

2.5.3 Cấu trúc của một Django project

Để tạo một project Django thì bạn mở Terminal/Command Prompt lên, tải và càiđặt module django cho Python, chuyển đến thư mục muốn tạo, sử dụng command

django-admin startproject simple_ossec_webui tạo một project với tên là simple_ossec_webui Khi đặt tên project bạn tránh đặt những tên trùng với các từ khóa

có sẵn trong Python như sys, os, django… để tránh bị xung đột Cách tốt nhất là sửdụng các module tạo môi trường ảo của Python để tách riêng biệt các module trong quátrình phát triển

Trang 28

Hình 2.5: Khởi tạo 1 project Django đơn giản

Lệnh startproject sẽ tạo một thư mục có tên là simple_ossec_webui, cấu trúc củabên trong sẽ gồm:

- simple_ossec_webui: thư mục gốc của project, các app nhỏ của project sẽ nằm

trong thư mục này

- manage.py: là một tiện ích command-line của Django hỗ trợ việc thao tác với

các app, models trong project

- simple_ossec_webui/ init .py: File rỗng, có mục đích biến folder này

thành một

- simple_ossec_webui/settings.py: Các settings của project ở trong này.

- simple_ossec_webui/urls.py: Định nghĩa các URL của Project.

- simple_ossec_webui/wsgi.py: Dùng để deploy project của bạn lên Server.

Ngày đăng: 17/12/2018, 10:39

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] ossec.github.io. Open Source HIDS SECurity. [Online]. Available Khác
[2] wikipedia.org. Python (programming language). [Online]. Available Khác
[3] wikipedia.org. Object-relational database management system (PostgreSQL). [Online]. Available Khác
[4] wikipedia.org. HTML (Hypertext Markup Language). [Online]. Available Khác
[5] wikipedia.org. Cascading Style Sheets (CSS).[Online]. Available Khác
[6] wikipedia.org. Python web framework (Django). [Online]. Available Khác
[7] celeryproject.org. Distributed Task Queue (Celery). [Online]. Available Khác
[8] wikipedia.org. Bootstrap (front-end framework). [Online]. Available Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w