基于Snort入侵检测系统的分析与应用

合集下载

入侵检测实验报告小结(3篇)

入侵检测实验报告小结(3篇)

第1篇一、实验背景与目的随着信息技术的飞速发展,网络安全问题日益凸显。

为了保障网络系统的安全稳定运行,入侵检测技术应运而生。

本次实验旨在通过实际操作,深入了解入侵检测系统的原理、技术以及在实际应用中的效果,提高对网络安全防护的认识。

二、实验内容与步骤1. 实验环境搭建(1)硬件环境:一台装有Windows操作系统的计算机,用于安装入侵检测系统。

(2)软件环境:安装Snort入侵检测系统、WinPCAP抓包工具、Wireshark网络分析工具等。

2. 实验步骤(1)安装WinPCAP:按照向导提示完成安装,使网卡处于混杂模式,能够抓取数据包。

(2)安装Snort:采用默认安装方式,完成安装。

(3)配置Snort:编辑Snort配置文件,设置规则、端口、网络接口等信息。

(4)启动Snort:运行Snort服务,使其处于监听状态。

(5)抓取数据包:使用Wireshark抓取网络数据包,观察入侵检测系统的工作效果。

(6)分析数据包:对抓取到的数据包进行分析,验证入侵检测系统是否能够正确识别和报警。

三、实验结果与分析1. 实验结果(1)Snort入侵检测系统成功启动,并进入监听状态。

(2)通过Wireshark抓取到的数据包,入侵检测系统能够正确识别出攻击行为,并发出报警。

(3)分析数据包,发现入侵检测系统对多种攻击类型(如SQL注入、跨站脚本攻击等)具有较好的检测效果。

2. 实验分析(1)Snort入侵检测系统在实验过程中表现良好,能够有效地检测出网络攻击行为。

(2)通过实验,加深了对入侵检测原理和技术的理解,掌握了Snort的配置和使用方法。

(3)实验过程中,发现入侵检测系统对某些攻击类型的检测效果不够理想,如针对加密通信的攻击。

这提示我们在实际应用中,需要根据具体场景选择合适的入侵检测系统。

四、实验总结与展望1. 实验总结本次实验通过实际操作,使我们对入侵检测系统有了更加深入的了解。

实验结果表明,入侵检测技术在网络安全防护中具有重要作用。

snort日志分析和管理工具

snort日志分析和管理工具

snort日志分析和管理工具2001年08月20日13:57:03简介1.什么是入侵检测2.什么是snort3.什么是日志分析4.snort的日志格式4.1.基于文本的格式4.2.tcpdump格式4.3.数据库5.工具5.1.管理基于文本日志的工具5.2.基于tcpdump日志文件的分析工具5.3.数据库分析工具总结参考简介snort是一个轻量级的网络入侵检测系统,它可以记录所有可能的入侵企图。

记录信息的文件可以是文本、XML、libpcap格式,也可以把把信息记录到syslog或者数据库。

本文将介绍一些用于snort日志管理的工具。

不过,本文无法囊括所有的分析工具。

因为snort 作为一个自由、健壮的入侵检测系统,受到很多人的关注,因此针对它开发的工具层出不穷。

本文将介绍的工具主要针对三种输出格式:文本、libpcap(也就是tcpdump格式)和数据库。

我们将主要介绍这些工具的安装和功能。

1.什么是入侵检测入侵检测就是一个监视计算机系统或者网络上发生的事件,然后对其进行安全分析的过程。

大多数的入侵检测系统都可以被归入到基于网络、基于主机以及分布式三类。

基于网络的入侵检测系统能够监视网络数据发现入侵或者攻击的蛛丝马迹;基于主机的入侵检测系统能够监视针对主机的活动(用户的命令、登录/退出过程,使用的数据等等),以此来判断入侵企图;分布式IDS通过分布于各个节点的传感器或者代理对整个网络和主机环境进行监视,中心监视平台收集来自各个节点的信息监视这个网络流动的数据和入侵企图。

各种入侵检测系统使用的检测方法可以分为两类:基于特征码的检测方法和异常检测。

使用基于特征码检测方法的系统从网络获得数据,然后从中发现以知的攻击特征。

例如:在某些URL中包含一些奇怪的Unicode编码字符就是针对IIS Unicode缺陷的攻击特征。

此外各种模式匹配技术的应用,提高了这种检测方法的精确性。

使用异常检测的系统能够把获得的数据与一个基准进行比较,检测这些数据是否异常。

入侵检测技术与Snort讲课文档

入侵检测技术与Snort讲课文档
✓ 针对入侵者采取的措施;
✓修正系统;
✓ 收集更详细的信息。
2.被动响应 在被动响应系统中,系统只报告和记录发生 的事件。
第十七页,共27页。
5.3 入侵检测系统的实现
第十八页,共27页。
网络安全需要各个安全设备
的协同工作和正确设置。由于
入侵检测系统位于网络体系中
的高层,高层应用的多样性导
致了入侵检测系统分析的复杂
第二十一页,共27页。
2)内网主干(防火墙内侧)
将检测器放在防火墙内侧,比放在DMZ中安全;受干扰 的机会少,报警几率也少;所检测到的都是已经渗透过防火 墙的攻击行为;也可以检测到内部可信用户的越权行为
3)外网入口(防火墙外侧)
可以记录针对目标网络的攻击类型,并进行计数
4)在防火墙的内外都放置
既可以检测内部攻击,又可以检测到外部攻击,无需猜测攻 击是否穿越防火墙,但开销大
数据
数据
事件
结 果
结果


数据分析 数据收集
第八页,共27页。
1.收集的数据内容
①主机和网络日志文件
主机和网络日志文件记录了各种行为类型,包含 了发生在主机和网络上的不寻常和不期望活动的证据, 留下黑客的踪迹,通过查看日志文件,能发现成功的 入侵或入侵企图,并很快启动响应的应急响应程序
②目录和文件中不期望的改变
5)关键子网
可检测到对系统关键部位的攻击,将有限的资源用在最值 得保护的地方,获得最大效益或投资比
3.在基于主机的IDS中部署入侵检测器
基于主机的IDS通常是一个程序,部署在最重要、最需要保护 的主机上
第二十二页,共27页。
检测到入侵行为需要报警。具体报警的内容 和方式,需要根据整个网络的环境和安全需要 确定。例如:

snort工作原理

snort工作原理

snort工作原理Snort是一个轻量级的网络入侵检测系统,旨在侦测和防御网络攻击。

Snort的工作原理是分析网络流量,用规则匹配来检测潜在的攻击。

在本文中,我们将探讨Snort 的工作原理,包括数据包捕获、插件、规则匹配以及警报生成。

数据包捕获Snort通过捕获网络数据包来分析网络流量。

它可以在不同的网络层次上进行捕获,包括链路层、网络层、传输层和应用层。

Snort通常在网络边界处放置,例如防火墙或路由器,以便实时监控网络流量。

为了捕获数据包,Snort使用一个称为libpcap的库。

这个库允许它在通信设备(如网卡)与主机之间进行数据包截获。

一旦Snort捕获数据包,它解析其内容并将其传递给后面的插件进行处理。

插件Snort使用插件来执行各种任务,包括流量解码、规则匹配、警报生成等。

Snort的插件基于模块化设计,使其易于扩展和定制。

流量解码插件用于解析捕获的数据包。

Snort支持多种协议,包括TCP、UDP、ICMP和HTTP等。

它可以重组分段的数据包,并把分段分组成完整的数据包进行处理。

为了提高性能,Snort还支持多线程处理。

规则匹配插件是Snort的核心功能之一。

它使用规则库来检测潜在的攻击。

规则库中包括多个规则,每个规则定义了一个或多个攻击模式。

例如,规则可能定义HTTP头中的恶意字符或SQL注入攻击。

规则匹配插件比较数据包内容与规则库中的规则,寻找匹配项。

如果发现匹配项,Snort就会生成一个警报。

警报生成插件用于生成警报。

Snort支持多种警报输出格式,包括命令行、日志文件和SNMP。

警报可以包括多个级别,从警告到紧急程度不等。

此外,Snort可以使用“预处理器”插件来执行额外的安全检查,例如检测虚假的IP头部、检测扫描和检测攻击的方向等。

规则匹配规则匹配是Snort最重要的功能之一。

在Snort的规则库中,每个规则都有一个唯一的“规则ID”,形如“alert tcp any any -> any 80”。

snort

snort

认识和使用SNORTMaster and use Snort孙进高清福曹家麟摘要:入侵检测已经日益成为网络安全中不可或缺的一部分,它为网络提供了一个防御层,在这一层中我们可以预先定义可能的入侵行为以便对网络活动进行监视,当发现在可能的入侵行为时就会报警通知系统管理员。

现在计算机安全市场上有许多入侵检测系统,但它们都面临一个共同的问题,就是难于配置而且一般价格不菲,Snort相对于它们来说在这方面有相当大的优势。

关键词:IDS,入侵检测系统,Snort。

Abstract: Intrusion Detection System (IDS) is an important part of network security architecture. They provide a layer of defense, which monitors network traffic for predefined suspicious activity, and alert system administrators when potential hostile traffic is detected. There are many commercial Intrusion Detection Systems nowadays, but almost all of them have the commonalities that they share such as complex deployment and high monetary cost. Snort has more advantage than them.Key words: IDS, Intrusion Detection System, Snort.1引言snort是一个免费的基于libpcap的轻量级网络入侵检测系统。

它能够跨系统平台操作,自带轻量级的入侵检测工具可以用于监视小型的TCP/IP网络,在进行网络监视时snort能够把网络数据和规则进行模式匹配,从而检测出可能的入侵企图,同时它也可以使用SPADE 插件,使用统计学方法对网络数据进行异常检测,这些强大的检测功能为网络管理员对于入侵行为做出适当的反击提供了足够的信息。

基于Snort的入侵检测系统研究

基于Snort的入侵检测系统研究

安仝系统被破坏造成的直接经济损 失上 百万美元 。进入 新世 纪后,这样 的损 失猛增到 了2 0 亿美元 以 00 上 。我国计算机网络在 国民经济的各个方面广泛应用 ,因此 安全因素导致 的损失也不可 忽视 ,对代 网
络 安 全 的 观 念 也 待加 强 。不 能只 是 使 用 防 火 墙 和 一 些 网络 安全 扫 描 软 件 来 防止 外 部 用 户 对 网 络 系统 的
ห้องสมุดไป่ตู้
1 1 5 利用特殊的命令序列进 行攻击 ,如正常登陆进程系统后设法 得到超级用户权限;利用正常网络 ..
操 作 向 目的系 统 传 送恶 意 的信 息 进攻 系统 ,如特 洛 尹 木 马 ,jv p l t c i e等 心。 a aA p e ,A t vX 12 网络 入 侵检 测 系统 分 类 . I S 据 采 集 数 据 源 的 同 ,可 分 为 基 于 主 机 的 ( o t b s d D根 h s- a e )、基 于
网络的 ( e — a e )和混 合式 ( y r d n tb s d h b i )检测系 统 。根据 分析 引擎检 测方法 的不 同又可 以分 为异常 ( n m l e e t o )检 测和误 用 ( i u e d t c in a o a y d t c in m s s e e t o )检测 。在现 在市 场上 流行 的 IS 品有 : D产 N I cbr omn tr Etr ss A 的 y e C p o i o , n e a y 的 D a o S n e , C 的 e r s I , S m n e 的 n t o l r r g n e s r A T u t D y a t c ep e e。
收 稿 日期 :2 O - O 一 l O 6- 4 3 基 金 项 目: 内 江 师 范 学 院 大 学 生 科 研 项 目 ( 5 D- 1 1 0 NS - 0 ) 作 者简 介 :毛 德 全 ( 9 4 ) 1 8 一 ,男 , 四川 威 远 人 , 内江 师 范 学 院2 0 级 学 生 。 I 02

Snort的配置与使用

入侵检测技术
第六章 Snort的配置与使用
本章内容
Snort的安装与配置 Snort的总体结构分析 Snort的使用 Snort的规则 使用Snort构建入侵检测系统实例
6.1 SNORT的安装与配置
3
一、Snort简介
1. Snort的组成
数据包解码器 检测引擎 日志和报警子系统
$ChartLib_path=”C:\php\jpgraph\src”;
配置并启动snort
打开C:\snort\etc\snort.conf文件,将文件中的下列语句: include classification.config include reference.config
四、Snort的配置
配置预处理器
是在基于规则的模式匹配之前运行的模块,通常为规 则匹配进行一些前期的处理。如:IP分片重组 (frag2)、TCP流重组(stream4) 、各种应用层解码 等。根据需要配置,通常采用默认值.
配置输出插件
主要在报文匹配某条规则需要输出时,调用相应的输 出插件。根据snort.conf说明进行相应配置。
<C:\snort\contrib\create_mysql
需要了解的Mysql命令:
显示数据库列表: show databases;
显示库中的数据表: use mysql; show tables;
建库与删库: create database 库名; drop database 库名;
定制snort规则集
#include <被包含文件的完整路径和文件名>
include $RULE_PATБайду номын сангаас/local.rules

基于SNORT体系的实时入侵检测研究

Z A Xn j Z E G h n o . WAN C u -f n H O I —x . H N C u -h u G hn ag
u n m l ne i , eto fm dn Tc og n omna/ og , ia hno 78 6 C/) 内 o a i rt Dp YI o eo e noy adc uctn Cl e/ hoSad g 2 62 ,ha r u vsy nr hl m i o l  ̄ e z n > ;
插件 :预 处理插 件 、检 测插件 和输 出插 件。本 文所研 究 的
BP神经 网络 技 术 的应用 即处于 预处 理 插件 的位 置 ,它工 作在 包解 码之 后 ,规 则匹 配之前 ,灵 活性 最强 。
S R N0 T的 规则检 测算 法使用 了 B B y r Mo r) M(o e- oe、 W u Ma - e 和 Ah - o aik等 算法 ,它们都 是字 符 — n br o C rs c
Ke w o d S O y r s: N BT; I rs n e eto n u i d tcin; n ua ewok; n t r scr y t o e rl t r n e wok e ui t
1引言
基 于 特 征 匹 配 的 入 侵 检 测 系统 (DS, I t u i n I n r so De eto S se ,因其 成熟性 和实 用性 已经被 广泛 应 tci n y tm)
可 以完成 实时流 量分 析和对 网络数 据
包 的安全性 进 行测试 等功 能 ,能 完成协 议分 析 、内容 查找
或 匹配 ,能 用来探 测 多种攻 击和嗅 探 。S NORT将所 有 已 知 的攻 击 以规 则 的形 式存 放 在规 则库 中 ,是 一个 经典 的 、

Snort 检测软件的了解

作业四Snort检测软件的了解姓名:陈清早学号:PT1400158目录1Snort系统概述1.1Snort的功能1.2Snort特点1.3Snort系统结构1.4Snort模块分析2相关协议介绍2.1Ethernet协议2.2IP协议2.3TCP协议3Snort规则3.1规则的结构4Snort规则典型实例分析—特洛依木马5结论参考文献1Snort系统概述Snort是以开放源代码形式发行的一个功能强大、跨平台、轻量级的网络入侵检测系统。

最初由Martin Roesch编写,并由遍布世界各地的众多程序员共同维护和升级。

从检测模式而言,Snort属于网络入侵检测(NIDS)的误用检测。

它通过libpcap库函数(数据包捕获函数库)从网络中抓取数据包,对数据包进行解析,接着启动检测引擎,将解释好的数据包和规则模式集进行比较。

如果匹配规则成功,则认为该入侵行为成立,使用规定的方式进行响应,然后结束一个数据包的处理过程,再抓取下一个数据包。

如果未被规则匹配到,则是正常行为,直接返回,抓取下一个包进行处理。

1.1Snort的功能(1)Snort是基于规则检测的入侵检测工具,即针对每一种入侵行为,都提炼出它的特征值,并按照规范写成检测规则,形成一个规则数据库。

利用此规则库和捕获的数据包进行比较,来判断是否为入侵。

目前,Snort的检测规则库主要针对缓冲区溢出、端口扫描和CGI (Common Gateway Interface公共网关接口)攻击等。

(2)Snort集成了多种告警机制来提供实时告警功能,包括:syslog(系统日志)、用户指定文件、Unix Socket(套接字)、通过Smblient(查看访问共享资源)使用WinPopup(window 中局域网发送和接收消息进程)对Windows客户端告警。

(3)Snort的插件机制使得它具有很好的扩展性和可移植性,用户可以根据自己的需要及时在短时间内调整检测策略,对于新的攻击威胁做出迅速反应。

snort工作原理

snort工作原理Snort是一种开源的网络入侵检测系统(NIDS),它可以监视网络流量并检测可能的攻击。

Snort广泛用于企业和政府机构的网络安全中,本文将深入探讨Snort的工作原理。

一、Snort概述Snort最初由Martin Roesch在1998年创建,它被设计为一种轻量级的网络入侵检测系统。

Snort是基于规则的,它使用预定义的规则来检测网络流量中的攻击。

Snort可以在多种平台上运行,包括Windows、Linux和Unix等操作系统。

Snort的基本功能包括:网络流量捕获、流量分析和规则匹配。

Snort可以捕获网络流量并将其转换为易于分析的数据格式。

Snort 还可以对网络流量进行深度分析,包括协议解析、数据包重组和会话重建等。

最后,Snort将网络流量与预定义的规则进行匹配,以检测可能的攻击。

二、Snort的组件Snort由多个组件组成,每个组件都有不同的功能。

下面介绍Snort的主要组件:1. SnifferSniffer是Snort的核心组件,它用于捕获网络流量。

Sniffer 可以捕获多种网络流量,包括TCP、UDP和ICMP等。

Sniffer还可以捕获分段的网络流量,并将其重组成完整的数据包。

2. PreprocessorPreprocessor是Snort的预处理器,它用于对网络流量进行深度分析。

Preprocessor可以对网络流量进行协议解析、数据包重组和会话重建等。

Preprocessor还可以检测网络流量中的异常行为,并生成相应的警报。

3. Detection engineDetection engine是Snort的检测引擎,它用于对网络流量进行规则匹配。

Detection engine使用预定义的规则来检测网络流量中的攻击。

如果网络流量与规则匹配,则Detection engine会生成相应的警报。

4. Output moduleOutput module是Snort的输出模块,它用于将警报发送给管理员。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ቤተ መጻሕፍቲ ባይዱ
2开源 的 S n o r t 软件
2 . 1 认识 S n o r t
行解决 , 通过这一方法保证 国家安全 。I D S 可 以监 视系统动态 , 检查系统 漏洞 , 判断分 析异常行 为, 进行 日志 管理 , 发 出警报 。 它可 以阻止一个攻 击 , 但是无法 抵御病 毒 , 只 能 检 测 出一 些 基
( 2 ) 根据分析 引擎 的不 同, 可 以分为特征检测和 基于异常 的检测 。 I D S使用攻击库进 行数据 的分析 , 攻击库里是 已知 的攻
击 行 为特 征 。 如 有 异 常 行 为 , 即不 同 于 攻击 库 里 已知 的 攻 击 行
泄露等威胁带来的严重性问题也深受人们 的关注 。 入侵检测系
台。
回溯漏洞 、 红色代码蠕虫和尼姆达蠕 虫席卷 了上千上万 台计算 机, 给 网络带来类似恐怖袭击般的极大危害[ 1 】 。如今互 联网已融
进 我 们 的工 作 和 日常 生 活 中 , 每 个 行 业 和 地 区都 因 计 算 机 而 飞 速 发 展 。随信 息 爆 炸 时 代 而 来 的 入 侵 攻 击 , 网络 资 源 滥 用 , 信 息
方面要 增强检测能力 ; 另一 方 面 , 如 果 入 侵 者 的 目标 是 I D S ,
主 动响应指 I D S在收集跟 踪入侵信 息的 同时可 以 自动进 行漏 洞修 复等 ; 被动 响应是指记 录下入侵信 息 , 以对入侵者透 明的 方式发送警报给管理员 。显然主动响应会更受“ 欢迎 ” 。
复杂化 也给入侵检测带来 巨大 的挑战 , 入侵 检测系统本身也会
存 在 漏 洞 被攻 击 ,有 些 攻 击 工 具 甚 至 可 以 知 道 入 侵 检 测 的 存 在, 所 以入 侵 检 测 系 统 任 重道 远 。
入侵检测系统 的工作 原理类似 于海关, 检 查每一个请求通
过的人 员 , 如 果 发 现 可 疑 人 员 就 要 发 出警 报 , 并 由相 关 人 员进
网络入侵指在非法或未授权 的情 况下, 通过 计算机程序访
问网 络 或 文件 产 生 安全 威胁 或 伤 害 的行 为 。2 0 0 1 年, 由于 目录
操作来寻 找攻击特 征, 对 单台主机进行保护 ; D I D S实现远程控
测器 ,并且把 报警信 息和 日志 发送 到一个统 一的中央管 理平
流程及检 测规 则 , 进而通过 S n o r t 入侵检测 系统的应用进行 其入侵检 测能力的测试 , 最后 对 S n o t 自身的安 全性 等问题做 r
了初 步 的 分析 。
【 关键词 】 S n o t r ; 入侵检 测 ; 安 全性
0引 言
络传 输来寻 找攻击特征 ; H I D S是 通 过 监 视 主 机 和 文 件 系 统 的
计 算 机 和 网络 免遭 威 胁 与 伤 害 。随 着 防 火 墙 的普 及 , 人 们 已不 满 足 于 防火 墙 的 网 络控 制 , 需 更 高 级 的 技 术 来 维 护 网络 安 全 。
除了一些利益 性问题, 如今黑客心理也许只 想展现 自己的 过硬 技术 , 不需要 可 以说服人 的理 由, 如 果他能攻破你 的计算 机, 那 么他就会那 样行动 。只要有 网络, 就会存在 网络安全 问
题 。 网络 攻击 事 件 发 生 率 也 在 逐 年 上 升 , 攻 击 工 具 的 自动 化 和
早在 1 9 8 0年代就 由 J n a me s P . A d e r s o n 提 出了入侵 检测的概念 ,
提 议 改 进 审 计 跟 踪 数据 监 视 入侵 活 动 的想 法 埘 。 1 . 2 入 侵 检 测 系 统 的功 能 与 分 类
通 过 瓦解 I D S来 解 除 警 报 , 从而 实现某些 非法 目的, 那 么 一 旦
攻击成功 , 就会造成 网络 的全 面瘫痪 , 后果不堪设想 , 所 以如何
增强 I D S的 安 全度 和鲁 棒 性 也尤 为重 要 。 1入 侵 检 测 系 统
1 . 1 入侵检测技术
( 4 ) 根据数据 的存 储方式不 同, 可 以分 为使 用数据库和使
: 一 … 堡… 一 皇… . . 膪
UJ { AN C O l J TE
基于 S n o r t 入 侵 检 测 系统 的分 析 与 应 用
郑 丽华 ,陈丽 卿
( 福 州大学数 学与计算机科学学院 福建 福 州 3 5 0 1 0 8 )
【 摘 要】 入侵检测 系 统( I D s ) 作 为有效的防入 侵手段在 3今 " - 网络安全体 系中 占 有 重要地位 , 它通过 自 动、 实时地检 测入侵行 为 , 及时发 出警报来保障网络 安全 。而 S n o r t 是一个开放 源代码 的轻量级 网络解决方案 , 它有着数据 包噢探 、 数 据 包记 录、 入侵检测、 报警和 日志等功能。本文 围绕入侵检测技术展 开, 主要分析 了 I DS的基本原理、 S n o t的结构、 r 工作
统 有 效 地 解 决 了大 部分 问题 , 但 是 网络 的攻 击 手 段 也 在 日渐 强 大, 在 这 场 入 侵 与 防 御 的大 战 中 , 针 对 越 来 越 复 杂 的攻 击 方 法 ,

为发生时 , I D S也能检测出来, 报警 阻止 。
( 3 ) 根 据 响应 方 式 的不 同 , 可 以分 为 主 动 响 应 和 被 动 响应 。
于漏洞传播的蠕虫。 一个 I D S从体 系 上 可 以分 成 四个 模 块 1 3 ] 。 即
用数据文件 的 I D S 。 规则的保证通常使用数据库来支持, 数据库 和数据文件的实时更新也是 I D S一个重要 问题 。
1 . 3入 侵 检测 系统 的重 要 性
入侵检 测能够 自动检测来 自其他计 算机未 经授权 或恶 意 的访 问, 通过收集数据加 以分析 , 区分善意与恶意 的访 问, 保护
相关文档
最新文档