Qui Truong

Ngày Đăng:

02/06/2023 22:57

Ngày Cập Nhật:

02/06/2023 22:59

Tác giả: Qui Truong
Ngày đăng: 02/06/2023 22:57

Chào mừng bạn đến với bài viết về "Audit trong Oracle Database: Tăng cường bảo mật và theo dõi dữ liệu". Trong bài viết này, chúng tôi sẽ giới thiệu về các mục tiêu quan trọng mà bạn sẽ đạt được sau khi hoàn thành bài học này.

  1. Hiểu rõ về trách nhiệm của DBA trong bảo mật và kiểm tra dữ liệu: Bạn sẽ được làm quen với các trách nhiệm quan trọng mà người quản trị cơ sở dữ liệu (DBA) phải đảm nhận để đảm bảo bảo mật và kiểm tra dữ liệu một cách hiệu quả.
  2. Kích hoạt kiểm tra unified (Unified Auditing): Chúng tôi sẽ hướng dẫn bạn cách kích hoạt tính năng kiểm tra unified trong Oracle Database. Việc này sẽ cho phép bạn thu thập thông tin kiểm tra từ nhiều nguồn khác nhau trong cơ sở dữ liệu của bạn, tạo ra một cơ sở dữ liệu kiểm tra unified mạnh mẽ.
  3. Tạo các chính sách kiểm tra unified (Unified Audit Policies): Bạn sẽ được hướng dẫn cách tạo ra các chính sách kiểm tra unified để xác định các hành động kiểm tra cần được theo dõi trong cơ sở dữ liệu. Điều này cho phép bạn tùy chỉnh việc kiểm tra dựa trên nhu cầu cụ thể của tổ chức của bạn.
  4. Duy trì Audit Trail: Chúng tôi sẽ chỉ cho bạn cách duy trì Audit Trail - một sổ ghi lại chi tiết về các hoạt động kiểm tra trong cơ sở dữ liệu. Bằng cách duy trì Audit Trail, bạn có thể theo dõi và phân tích dữ liệu kiểm tra để phát hiện và ngăn chặn các hành vi đáng ngờ hoặc không phù hợp.

Với những kiến thức và kỹ năng bạn thu thập được sau bài học này, bạn sẽ có khả năng tăng cường bảo mật và theo dõi dữ liệu trong Oracle Database, đảm bảo sự an toàn và tuân thủ quy định bảo mật của tổ chức của bạn.

Audit trong oracle: Khả năng bảo mật database

Oracle Database cung cấp khung chương trình tốt nhất trong ngành cho một hệ thống bảo mật. Nhưng để khung chương trình này có hiệu quả, người quản trị cơ sở dữ liệu phải tuân thủ các phương pháp tốt nhất và liên tục theo dõi hoạt động cơ sở dữ liệu.

Hạn chế Truy cập vào Data và Service

Không phải tất cả người dùng đều có quyền truy cập vào tất cả dữ liệu. Việc giới hạn truy cập được xác định dựa trên yêu cầu kinh doanh, mong đợi của khách hàng và những hạn chế pháp lý ngày càng tăng. Thông tin về thẻ tín dụng, dữ liệu chăm sóc sức khỏe, thông tin cá nhân và các dữ liệu tương tự cần được bảo vệ khỏi việc truy cập trái phép.

Hệ thống Oracle Database cung cấp các cơ chế ủy quyền tinh vi để giới hạn quyền truy cập vào cơ sở dữ liệu. Giới hạn truy cập là phải tuân thủ nguyên tắc quyền ít nhất, tức là chỉ cấp cho người dùng những quyền hạn cần thiết nhất.

Xác thực người dùng

Để thực hiện kiểm soát truy cập vào dữ liệu nhạy cảm, hệ thống phải biết ai đang cố gắng truy cập vào dữ liệu. Việc xác thực bị đe dọa có thể làm cho tất cả các biện pháp bảo mật khác trở nên vô dụng.

Hình thức cơ bản nhất của xác thực người dùng là yêu cầu người dùng cung cấp một cái gì đó mà họ biết, chẳng hạn như một mật khẩu. Đảm bảo rằng mật khẩu tuân theo các quy tắc đơn giản có thể tăng đáng kể độ an toàn của hệ thống của bạn.

Phương pháp xác thực mạnh hơn bao gồm yêu cầu người dùng cung cấp một cái gì đó mà họ sở hữu, chẳng hạn như một mã thông báo hoặc chứng chỉ hạ tầng khóa công khai (PKI).

Một hình thức xác thực mạnh hơn nữa là xác định người dùng thông qua đặc điểm sinh trắc học độc nhất như vân tay, quét mống mắt, các mẫu cấu trúc xương, và như vậy.

Máy chủ Oracle Database hỗ trợ các kỹ thuật xác thực tiên tiến (như xác thực dựa trên mã thông báo, sinh trắc học và chứng chỉ) thông qua tùy chọn Bảo mật Nâng cao Oracle. Tài khoản người dùng không sử dụng phải bị khóa để ngăn cản việc tấn công vào xác thực.

Giám sát hoạt động đáng ngờ:

Ngay cả người dùng được ủy quyền và xác thực cũng có thể gây tổn hại đến hệ thống của bạn. Xác định hoạt động không bình thường trong cơ sở dữ liệu (như một nhân viên bất ngờ truy vấn lượng lớn thông tin thẻ tín dụng, kết quả nghiên cứu hoặc thông tin nhạy cảm khác) có thể là bước đầu tiên để phát hiện sự ăn cắp thông tin.

Máy chủ Oracle Database cung cấp một bộ công cụ giám sát phong phú để theo dõi hoạt động của người dùng và nhận biết các xu hướng đáng ngờ.

Giám xác tuân thủ quy định - Monitoring for compiance

Quá trình Auditing, bao gồm việc ghi lại và lưu trữ thông tin về các hoạt động trong hệ thống, tạo ra khối lượng công việc bổ sung cho hệ thống. Việc tập trung vào Auditing là điều quan trọng để chỉ ghi lại những sự kiện liên quan.

Bằng cách thực hiện Auditing cụ thể, tác động lên hiệu suất hệ thống có thể được giảm thiểu. Tuy nhiên, nếu Auditing không được focus đúng cách, nó có thể ảnh hưởng đáng kể đến hiệu suất hệ thống.

Có các phương pháp Audit khác nhau trong Oracle Database

  • Auditing bắt buộc(Mandatory auditing): Một số hoạt động được Auditing mặc định, bất kể các tùy chọn Auditing hoặc tham số khác. Điều này cần thiết để cơ sở dữ liệu ghi lại các hoạt động cụ thể như kết nối bởi người dùng có đặc quyền.
  • Auditing cơ sở dữ liệu tiêu chuẩn(Standard database auditing): Quản trị viên có thể chọn các đối tượng và các quyền để Auditing và tạo các chính sách(policy) Auditing phù hợp.
  • Auditing dựa trên giá trị(Value-based auditing): Mở rộng Auditing cơ sở dữ liệu tiêu chuẩn bằng cách ghi lại không chỉ sự kiện Auditing mà còn các giá trị thực tế đã được insert, update hoặc delete. Auditing dựa trên giá trị được thực hiện thông qua cơ chế Triggers trong cơ sở dữ liệu.
  • Auditing tinh vi (FGA- Fine-grained auditing): Mở rộng Auditing cơ sở dữ liệu tiêu chuẩn bằng cách ghi lại câu lệnh SQL thực tế đã được thực thi, thay vì chỉ ghi lại rằng sự kiện đã xảy ra.

Các phương pháp Auditing này cung cấp tính linh hoạt trong việc giám sát và theo dõi hoạt động trong cơ sở dữ liệu trong khi đảm bảo tác động tối thiểu đến hiệu suất hệ thống.

Thông qua việc sử dụng chính sách Auditing, bạn có thể cấu hình các thiết lập Auditing cho các hoạt động sau đây:

  • Đăng nhập vào cơ sở dữ liệu và việc sử dụng đặc quyền và vai trò.
  • Thực thi các câu lệnh SQL trên các đối tượng cơ sở dữ liệu cụ thể.
  • Giá trị ngữ cảnh ứng dụng(Application context values)
  • Các tiện ích và tính năng bao gồm:
    1. Oracle Data Pump.
    2. Oracle Database Real Application Security.
    3. Oracle Database Vault.
    4. Oracle Label Security.
    5. Oracle Recovery Manager.
    6. Oracle SQL*Loader Direct Load.

Các hoạt động bắt buộc Audit - Mandatorily Audited Activities

  • CREATE/ALTER/DROP AUDIT POLICY
  • Auditing/Loại bỏ Auditing (AUDIT/NOAUDIT)
  • Thực thi package DBMS_FGAPL/SQL
  • Thực thi package DBMS_AUDIT_MGMTPL/SQL
  • Cố gắng thay đổi bảng AUDSYS audit trail (ALTER TABLE)
  • Các câu lệnh cấp cao nhất được thực hiện bởi các người dùng SYS, SYSDBA, SYSOPER, SYSASM, SYSBACKUP, SYSDG và SYSKM cho đến khi cơ sở dữ liệu mở. Sau khi cơ sở dữ liệu mở, các người dùng này sẽ được Auditing dựa trên các cài đặt Auditing đã được xác định

Hiểu cách triển khai Auditing - Understanding Auditing Implementation:

Kiểu Auditing hỗn hợp (mixed mode auditing) là kiểu mặc định khi bạn tạo một cơ sở dữ liệu Oracle mới. Đây là một cách thức kết hợp giữa các tính năng Auditing trước đây của Oracle Database 12c và các tính năng Auditing unified mới. Tuy nhiên, Oracle đề xuất chuyển sang sử dụng Auditing unified.

Để kiểm tra xem cơ sở dữ liệu đã được chuyển sang sử dụng Auditing unified hay chưa, bạn có thể truy vấn bảng V$OPTION. Sử dụng câu lệnh SELECT value FROM v$option WHERE parameter = 'Unified Auditing', bạn sẽ nhận được kết quả cho biết liệu Auditing unified đã được kích hoạt hay chưa.

Trước Oracle Database 12c, các bản ghi Auditing từ các nguồn khác nhau được lưu trữ ở các vị trí khác nhau. Oracle Database 12c hỗ trợ Auditing unified, trong đó tất cả các bản ghi Auditing được lưu trữ trong một bảng Auditing duy nhất.

Khi tạo một cơ sở dữ liệu Oracle Database 12c mới, chế độ Auditing hỗn hợp (mixed mode auditing) được kích hoạt. Chế độ này cho phép bạn sử dụng các tính năng Auditing có sẵn trước Oracle Database 12c và các tính năng Auditing unified.

 Chế độ Auditing hỗn hợp được kích hoạt theo mặc định thông qua chính sách Auditing được định nghĩa trước ORA_SECURECONFIG cho các cơ sở dữ liệu mới được tạo. Nếu bạn đang nâng cấp một cơ sở dữ liệu lên Oracle Database 12c, bạn phải chuyển đổi thủ công sang Auditing unified để sử dụng các tính năng Auditing unified. Oracle Corporation khuyến nghị bạn chuyển đổi sang Auditing unified.

Các quyền quản trị cần thiết cho hoạt động Auditing

Để có thể cấu hình Auditing và xem dữ liệu Auditing, người dùng phải được cấp quyền phù hợp. Để đảm bảo sự phân tách trách nhiệm, Oracle cung cấp hai roles mặc định sau:

  • AUDIT_ADMIN: Vai trò này cho phép người dùng cấu hình các thiết lập Auditing, tạo và quản lý chính sách Auditing (unified và fine-grained), và xem và phân tích dữ liệu Auditing. Thông thường, vai trò này được cấp cho các quản trị viên bảo mật.
  • AUDIT_VIEWER: Vai trò này cho phép người dùng chỉ xem và phân tích dữ liệu Auditing. Thông thường, vai trò này được cấp cho các Auditing viên bên ngoài.

Bằng cách sử dụng những vai trò này, ta có thể tách riêng quyền cấu hình và quản lý Auditing khỏi quyền xem dữ liệu Auditing, giúp đảm bảo tính riêng tư và an toàn trong quá trình Auditing.

Database auditing: Overviews

db-oracle-audit-fga

Database auditing: Overviews

Để sử dụng các tính năng của bảng Auditing unified, bạn phải kích hoạt Auditing unified trước tiên. Sau đó, bạn cần tạo và kích hoạt các chính sách Auditing unified để chỉ định những hoạt động nào sẽ được Auditing.

Khi người dùng thực hiện một lệnh hoặc hoạt động được định nghĩa trong chính sách Auditing, các bản ghi Auditing sẽ được tạo ra. Các bản ghi Auditing được ghi vào một bảng Auditing trong schema AUDSYS và có thể được xem bằng cách truy vấn bảng UNIFIED_AUDIT_TRAIL.

Theo dõi bảng Auditing là một nhiệm vụ quản trị quan trọng. Tùy thuộc vào sự focus của các tùy chọn Auditing, bảng Auditing có thể tăng kích thước rất nhanh.

Nếu không theo dõi bảng Auditing đúng cách, nó có thể tạo ra quá nhiều bản ghi gây ảnh hưởng đến hiệu suất hệ thống. Chi phí Auditing liên quan trực tiếp đến số lượng bản ghi được tạo ra.

Thông tin chi tiết về các bước này sẽ được cung cấp sau trong bài học này.

Tìm hiểu sơ lược về kiến trúc của Audit trong oracle

db-oracle-audit-fga

Tìm hiểu sơ lược về kiến trúc của Audit trong oracle

Chế độ hoạt động mặc định của Auditing unified là chế độ ghi vào hàng đợi (queued write mode). Các bản ghi Auditing được ghi vào một hàng đợi trong Khu vực SGA. Các hàng đợi có tên trong SGA tương ứng với một lưu trữ bền vững trong các bảng thuộc sở hữu của AUDSYS.

Khi hàng đợi SGA tràn, một quy trình nền sẽ ghi nội dung vào bảng (hoặc các bảng). Mỗi client có hai hàng đợi SGA để một khách hàng có thể tiếp tục ghi vào hàng đợi thứ hai trong khi hàng đợi đầu tiên đang được ghi vào bảng.

Bạn có thể sử dụng thủ tục sau để ghi rõ hàng đợi vào đĩa để xem ngay lập tức các bản ghi trong hành trình Auditing:

SQL> EXEC SYS.DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL

Kích hoạt Unified Audit trong Oracle

db-oracle-audit-fga

db-oracle-audit-fga

Trước khi bật tính năng Auditing unified, hãy tắt phiên bản cơ sở dữ liệu và trình nghe (listener). Thực hiện các bước sau:

  1. Đổi thư mục đến $ORACLE_HOME/rdbms/lib và thực thi lệnh sau: make -f ins_rdbms.mk uniaud_on ioracle ORACLE_HOME=$ORACLE_HOME.  Lệnh make được sử dụng để liên kết lại tệp thực thi Oracle với một tập hợp thư viện khác nhau để bật Auditing unified.
  2. Sau khi lệnh make hoàn thành, khởi động lại trình nghe và phiên bản cơ sở dữ liệu.
  3. Bạn có thể đăng nhập vào SQL*Plus và kiểm tra xem Auditing unified đã được bật hay chưa bằng cách thực hiện lệnh sau:

SQL> select value2 from v$option where parameter = 'Unified Auditing';

Kết quả trả về sẽ là TRUE nếu Auditing unified đã được bật.

Configuring Audit trong oracle

db-oracle-audit-fga

Configuring Audit trong oracle

Bạn có thể cấu hình Auditing bằng cách nhóm các thiết lập Auditing vào một chính sách Auditing unified. Oracle Database bao gồm ba chính sách Auditing unified được xác định trước, bao gồm các thiết lập Auditing bảo mật thông thường được sử dụng:

  • ORA_SECURECONFIG: Chứa các thiết lập Auditing mặc định tương tự như Oracle Database 11g. Chính sách này được bật mặc định cho các môi trường Auditing unified và Auditing chế độ hỗn hợp.
  • ORA_DATABASE_PARAMETER_AUDIT: Chứa các thiết lập Auditing cho các lệnh Oracle Database thông thường được sử dụng để thiết lập tham số (ALTER DATABASE, ALTER SYSTEM và CREATE SPFILE).
  • ORA_ACCOUNT_MGMT_AUDIT: Chứa các thiết lập Auditing cho các lệnh quản lý tài khoản người dùng và các quyền thông thường được sử dụng (CREATE USER, ALTER USER, DROP USER, CREATE ROLE, DROP ROLE, ALTER ROLE, SET ROLE, GRANT và REVOKE).

Các chính sách Auditing chi tiết cho phép bạn xác định điều kiện cụ thể để tạo ra một bản ghi Auditing. Thông tin bổ sung về các phương pháp này sẽ được cung cấp sau trong bài học.

Tạo 1 chính sách unified auditing

db-oracle-audit-fga

Tạo 1 chính sách unified auditing

Sử dụng câu lệnh CREATE AUDIT POLICY để tạo một chính sách Auditing unified. Ví dụ trên trang giúp hiển thị cách tạo một chính sách Auditing có tên SELECT_EMP_POL. Chính sách này chỉ định rằng các câu lệnh SELECT vào bảng HR.EMPLOYEES sẽ được Auditing.

Create a auditing policy: System-wide audit options

db-oracle-audit-fga

Create a auditing policy: System-wide audit options

Bạn có thể tạo một chính sách Auditing với các tùy chọn Auditing toàn hệ thống hoặc cụ thể cho đối tượng. Các tùy chọn Auditing toàn hệ thống có thể là ba loại:

  • Tùy chọn Auditing Privileges: Auditing tất cả các sự kiện sử dụng system privileges đã chỉ định, như ví dụ đầu tiên trong hình trên.
  • Tùy chọn Auditing Action: Chỉ ra hành động RDBMS nào sẽ được Auditing, chẳng hạn như hành động ALTER TRIGGER trong ví dụ thứ hai.
  • Tùy chọn Auditing Roles: Auditing việc sử dụng tất cả các system privileges hoặc object privileges được cấp trực tiếp cho vai trò MGR_ROLE, như trong ví dụ thứ ba.

Bạn có thể cấu hình các tùy chọn Auditing privileges, actions và roles cùng nhau trong cùng một policy  Auditing, như được hiển thị trong ví dụ thứ tư.

Bạn có thể tìm danh sách các tùy chọn Auditing toàn hệ thống có thể Auditing trong bảng SYS.AUDITABLE_SYSTEM_ACTIONS.

Create an audit policy: Object-specific actions

db-oracle-audit-fga

Create an audit policy: Object-specific actions

Các tùy chọn Auditing cụ thể cho đối tượng là loại tùy chọn Auditing thứ hai. Những tùy chọn này là các hành động cụ thể áp dụng cho các đối tượng trong cơ sở dữ liệu. Các tùy chọn Auditing hành động cấp đối tượng được liệt kê trong bảng SYS.AUDITABLE_OBJECT_ACTIONS.

Ví dụ đầu tiên trong hình trên tạo một chính sách Auditing để Auditing bất kỳ hành động select và update nào trên bất kỳ đối tượng nào và bất kỳ khóa nào trên bảng HR.EMPLOYEES.

Ví dụ thứ hai tạo một chính sách Auditing để Auditing bất kỳ hành động cụ thể cho đối tượng nào.

Ví dụ thứ ba tạo một chính sách Auditing để Auditing bất kỳ hành động execute nào trên bất kỳ đối tượng thủ tục nào và bất kỳ cấp quyền nào trên thủ tục HR.RAISE_SALARY_PROC.

Các tùy chọn Auditing cấp đối tượng là động. Tức là các thay đổi trong các tùy chọn này sẽ áp dụng cho các phiên người dùng hiện tại và các phiên người dùng sau này.

Create an audit policy: Specifying conditions

db-oracle-audit-fga

Create an audit policy: Specifying conditions

Các policy Auditing có thể đánh giá điều kiện theo từng câu lệnh, một lần trong phiên hoặc một lần trong phiên làm việc.

Ví dụ đầu tiên trong hình trên là tạo một policy Audit để Auditing bất kỳ hành động đổi tên nào trên bảng HR.EMPLOYEES và bất kỳ hành động sửa đổi nào trên bảng HR.JOBS, miễn là người dùng thực hiện câu lệnh Auditing là JIM. Điều kiện được đánh giá chỉ một lần trong phiên làm việc.

Ví dụ thứ hai tạo một chính sách Auditing để Auditing bất kỳ hành động sửa đổi nào trên bảng OE.ORDERS, miễn là người dùng thực hiện câu lệnh Auditing là chủ sở hữu schema OE. Điều kiện được đánh giá mỗi khi một câu lệnh ALTER được thực thi trên bảng OE.ORDERS.

Ví dụ thứ ba tạo một chính sách Auditing để Auditing bất kỳ quyền nào được cấp cho vai trò DBA, miễn là tên phiên bản là "sales". Điều kiện được đánh giá chỉ một lần trong suốt vòng đời của cơ sở dữ liệu. Sau khi Oracle Database đánh giá điều kiện, nó lưu trữ và sử dụng lại kết quả trong phần còn lại của vòng đời của cơ sở dữ liệu.

Kích hoạt và hủy kích hoạt audit policies

db-oracle-audit-fga

Kích hoạt và hủy kích hoạt audit policies

Sau khi tạo chính sách Auditing, bạn phải kích hoạt nó bằng cách sử dụng câu lệnh AUDIT. Mặc định, tất cả người dùng đều được Auditing, trừ khi bạn xác định danh sách các người dùng không được Auditing.

Áp dụng chính sách Auditing cho một hoặc nhiều người dùng bằng cách sử dụng mệnh đề BY. Người quản lý Auditing sẽ Auditing các hoạt động cụ thể của người dùng SYS giống như các hoạt động của người dùng khác. Loại bỏ một số người dùng bằng cách sử dụng mệnh đề EXCEPT.

Bạn không thể có một danh sách BY và một danh sách EXCEPT trong cùng một câu lệnh kích hoạt chính sách.

Hồ sơ Auditing được tạo ra cho cả các hành động thất bại và thành công của người dùng. Nếu bạn chỉ muốn Auditing các hành động khi các hành động của người dùng thất bại, sử dụng mệnh đề WHENEVER NOT SUCCESSFUL.

Nếu bạn chỉ muốn Auditing các hành động khi các hành động của người dùng thành công, sử dụng mệnh đề WHENEVER SUCCESSFUL. Khi bạn bỏ qua mệnh đề WHENEVER, câu lệnh sẽ được Auditing bất kể hành động có thành công hay không, và cột RETURN_CODE sẽ hiển thị liệu hành động có thành công hay không.

Để vô hiệu hóa một chính sách Auditing, sử dụng câu lệnh NOAUDIT.

Altering a unified audit policy

db-oracle-audit-fga

Altering a unified audit policy

Bạn có thể thay đổi hầu hết các thuộc tính trong một chính sách Auditing unified, trừ thuộc tính CONTAINER. Bạn có thể thay đổi các chính sách Auditing đã được kích hoạt và vô hiệu hóa. Bạn không cần phải kích hoạt lại một chính sách Auditing sau khi thay đổi.

Đối với một chính sách Auditing unified dành cho đối tượng, các thiết lập Auditing mới sẽ có hiệu lực ngay sau khi nó đã được thay đổi, cho cả phiên làm việc hiện tại và các phiên làm việc tiếp theo.

Nếu bạn thay đổi các tùy chọn Auditing hệ thống hoặc các điều kiện Auditing của chính sách, chúng sẽ được kích hoạt cho các phiên làm việc mới, nhưng không áp dụng cho phiên làm việc hiện tại.

Viewing audit policy information

db-oracle-audit-fga

Viewing audit policy information

Truy vấn AUDIT_UNIFIED_POLICIES để xem danh sách các chính sách Auditing hiện có. Cột CONDITION_EVAL_OPT xác định khi nào điều kiện, nếu có, được đánh giá.

Truy vấn AUDIT_UNIFIED_ENABLED_POLICIES để xem danh sách các chính sách Auditing được kích hoạt. Cột ENABLED_OPT cho biết liệu có được xác định danh sách người dùng được Auditing với giá trị BY hay có được xác định danh sách ngoại lệ của người dùng bị loại trừ với giá trị EXCEPT.

Các người dùng được Auditing hoặc loại trừ được liệt kê trong cột USER_NAME. Các cột SUCCESS FAILURE xác định liệu chính sách tạo ra các bản ghi Auditing chỉ khi các hành động của người dùng thành công hay thất bại.

Chia sẽ bài viết này

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Qui Truong

Thông tin tác giả:

Xin chào mọi người, mình là Qui Trương. Hiện tại, ngoài công việc là một DBA thì mình còn là một người sáng tạo nội dung trên trang blog caitrang.com. Mỗi ngày, mình luôn tìm kiếm cách để chia sẻ những nội dung độc đáo, ý nghĩa và mang tính cảm hứng tới mọi người. Mình tin rằng qua từng dòng viết, mình có thể kết nối và tạo dựng một cộng đồng đọc giả thú vị và ý nghĩa.

Page [tcb_pagination_current_page] of [tcb_pagination_total_pages]

>