CN113329036B - 一种黑名单系统工作方法 - Google Patents

一种黑名单系统工作方法 Download PDF

Info

Publication number
CN113329036B
CN113329036B CN202110878320.7A CN202110878320A CN113329036B CN 113329036 B CN113329036 B CN 113329036B CN 202110878320 A CN202110878320 A CN 202110878320A CN 113329036 B CN113329036 B CN 113329036B
Authority
CN
China
Prior art keywords
access request
counter
modulation
hash
illegal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110878320.7A
Other languages
English (en)
Other versions
CN113329036A (zh
Inventor
许扬汶
刘天鹏
韩冬
孙腾中
刘灵娟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Big Data Group Co ltd
Original Assignee
Nanjing Big Data Group Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Big Data Group Co ltd filed Critical Nanjing Big Data Group Co ltd
Priority to CN202110878320.7A priority Critical patent/CN113329036B/zh
Publication of CN113329036A publication Critical patent/CN113329036A/zh
Application granted granted Critical
Publication of CN113329036B publication Critical patent/CN113329036B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]

Abstract

本发明公开了一种黑名单系统工作方法,用户输入重要合法访问请求集合、非法访问请求集合,构建黑名单系统包括复合型过滤器和全量黑名单;构造复合型过滤器时对所有重要合法访问请求和非法访问请求加以记录;在部署运行阶段对持续输入的访问请求进行合法性判别,如果该访问请求不在复合型过滤器内,判定为合法访问请求;否则,继续检索全量黑名单验证该请求是否是非法访问请求。本发明公开的黑名单系统工作方法动态地判定并阻止访问非法访问请求,同时降低重要合法访问请求的判定延迟。该方法可快速过滤非法访问请求,同时解决现有黑名单系统不能兼顾过滤效率和准确率的问题。

Description

一种黑名单系统工作方法
技术领域
本发明属于涉及网络安全领域,具体涉及一种黑名单系统工作方法。
背景技术
构造黑名单系统(Blacklist)是网络安全领域一个重要的技术问题。给定黑名单集合
Figure 349756DEST_PATH_IMAGE001
。黑名单系统就是为了判定任意的网络接入请求是否在该黑名单里。黑名单系统在各种系统尤其是在有网络接入的系统,比如电子商务网站、大数据计算服务等有广泛的应用。目前已有的黑名单系统工作方法可以分为两类:一类是全量验证的方法,另一类是基于过滤的方法。全量验证的方法是把每一个请求都在所有的黑名单中对比。而基于过滤的方法,则基于“过滤-验证”框架,会先使用过滤器过滤掉合法访问请求,从而得到潜在的非法访问请求,再进一步去检查黑名单全集从而最终准确确定是否是非法访问请求。
第一类全量验证的方法,直观的做法是在全体黑名单集合上构建一个哈希表,为每个需要验证的请求计算其哈希的位置,然后将哈希的位置加载进来再挨个对比。全量计算的方式可以得到100%的准确率,但是响应速度慢,尤其是需要从外存加载整个黑名单数据集,在网络访问中会引起较大延迟。
第二类基于过滤的方法则会通过各种过滤器过滤掉合法访问请求,过滤不掉的记录就是潜在的非法访问请求记录,再进行进一步的全量验证。相比于全量验证,过滤机制的引入可以极大的降低单个请求判定的时间。
目前的黑名单系统虽然可以较好的确认给定的请求是否是非法访问请求,但是对于一些重要用户的访问请求仍然存在极大的延迟。
发明内容
发明目的:本发明的目的在于提供满足重要用户的访问请求低延迟访问的黑名单系统工作方法。
技术方案:本发明为实现上述发明目的,公开一种黑名单系统工作方法,该方法包括步骤如下:
(1)输入重要合法访问请求集合、非法访问请求集合,构建黑名单系统包括复合型过滤器和全量黑名单;
(2)构建复合型过滤器;使用k个哈希函数将每个重要合法访问请求映射到计数器数组中k个计数器内,修改计数器的正部字段完成重要合法访问请求录入;
(3)使用k个哈希函数将每个非法访问请求映射到计数器数组中k个计数器内,修改计数器的负部字段完成非法访问请求录入;当非法访问请求的映射和重要合法访问请求的映射发生冲突时,调整非法访问请求映射使用的哈希函数并记录;
(4)构建全量黑名单;将每个非法访问请求完整的记录在全量黑名单中;
(5)接收用户输入的需要判别合法性的访问请求,如果该访问请求不在复合型过滤器内,那么就是合法访问请求;否则,继续检索全量黑名单验证该请求是否是非法访问请求。
进一步的,复合型过滤器包括哈希调制器和计数器数组,哈希调制器包括一组调制元组,每个调制元组由调制计数器与调制索引构成;调制计数器记录了其所属的调制元组被使用的次数;调制索引记录了该调制元组内存储的哈希函数的索引。计数器数组由一组计数器组成,每个计数器包含正部和负部两个字段。
进一步的,步骤2中重要合法访问请求所映射计数器的正部字段的值设置为1。
进一步的,步骤3中非法访问请求录入复合型过滤器具体步骤如下:
(S1)如果非法访问请求映射到k个计数器正部字段的值均为0,则将k个计数器负部字段的值均增加1;
(S2)如果非法访问请求映射到k个计数器正部字段的值不均为0,则用
Figure 293441DEST_PATH_IMAGE002
标记k个哈希函数中映射到正部字段的值不等于零的计数器对应的最小哈希函数,将除
Figure 587019DEST_PATH_IMAGE002
所映射的计数器之外k-1个计数器的负部字段的值增加1;
(S3)根据
Figure 424394DEST_PATH_IMAGE002
更新哈希调制器中的调制元组:首先检查待录入的非法访问请求在哈希调制器中映射的位置是否为空,如果非法访问请求映射的位置为空,则从尚未使用的哈希函数中选取一个能够使映射的计数器正部字段为1的哈希函数,将哈希函数的索引存储到对应的调制元组中,并将调制元组的调制计数器增加1;如果非法访问请求映射的位置不为空,则检查调制元组中已有的哈希函数能否复用,若能复用则将调制元组的调制计数器增加1,并将复用的哈希函数映射的计数器的负部字段的值增加1。
进一步的,步骤5中用户输入的待判别合法性的访问请求x是否在复合型过滤器内判断方法如下:
访问请求x使用k个哈希函数映射对应的计数器中有超过1个计数器负部字段的值为0,则判断访问请求x不在复合型过滤器内;如果只有1个计数器负部字段的值为0并且哈希调制器中访问请求x被映射到的调制元组的调制计数器值为0,则判断访问请求x不在复合型过滤器内。
进一步的,当非法访问请求集合内新增加非法访问请求时,将新增加的非法访问请求重复执行步骤3和步骤4,完成黑名单系统更新。
进一步的,由于哈希调制器包括一组调制元组,每个访问请求能够在哈希函数
Figure 145225DEST_PATH_IMAGE003
映射下对应一个调制元组,哈希函数
Figure 185994DEST_PATH_IMAGE003
不属于上述的k个哈希函数之一;
步骤S3中检查待录入的非法访问请求在哈希调制器中映射的位置是否为空,也即检查该访问请求在哈希函数
Figure 283263DEST_PATH_IMAGE003
映射下的元组的调制计数器的部分是否为0,如果映射到的哈希调制器调制元组为空,也即其调制计数器为0,则从尚未使用的哈希函数中选取出符合条件的哈希函数。一个符合条件的哈希函数是指其映射的计数器的正部为1。如果满足条件的调制哈希函数被找到,需要将它的索引会存储到哈希调制器并将对应的调制计数器增加1。
进一步的,步骤5中,当获取需要判别合法性的访问请求x后,检查k个初始哈希函数映射的计数器的负部字段的值。如果超过1个计数器的负部字段的值为0,则x不在复合型过滤器内;如果只有1个计数器的负部字段为0并且哈希调制器中x被哈希调制器内置的哈希函数
Figure 850510DEST_PATH_IMAGE003
映射到的调制元组的调制计数器的值为0,则x不在复合型过滤器内;如果只有1个计数器的负部字段的值为0并且哈希调制器中x被内置哈希函数
Figure 866877DEST_PATH_IMAGE003
映射到的调制元组的调制计数器的值不为0,则取出调制元组的调制索引,使用调制索引中对应的哈希函数重新映射x,如果新映射的计数器的负部字段为0,则x不在复合型过滤器内;除以上情况,其余均认为x在复合型过滤器内。
本申请公开的黑名单系统工作方法中,复合型过滤器能够快速对重要合法访问请求进行筛选,同时可以筛选出大部分普通合法请求,对疑似非法请求和非法请求利用包含非法访问请求集合的全量黑名单进行进一步筛选,确保在非法访问请求集合内的非法访问请求能够被稳定筛出。复合型过滤器的存在能够极大减少重要合法访问请求的鉴别延迟。全量黑名单通过全量验证的方法对每个疑似非法请求或非法请求进行验证,能够保证非法访问请求被稳定筛选出来。
有益效果:与现有技术相比,本发明的具有如下显著优点:
本发明所述技术方法能够快速准确判定给定的访问请求是不是非法访问请求,同时对于重要合法访问请求可以快速判定,极大的减少这些重要访问请求的判定时间。
附图说明
图1是本发明黑名单系统的整体架构与工作流程示意图;
图2是本发明黑名单系统中复合型过滤器的结构示意图;
图3是本发明黑名单系统中哈希调制器的结构示意图;
图4是本发明黑名单系统中重要合法访问请求和非法访问请求插入过程示意图。
具体实施方式
下面结合附图和实施例对本发明的技术方案做进一步详细说明。
如图1所示,一种黑名单系统工作方法,该方法包括步骤如下:
(1)输入非法访问请求集合为N={a,c},重要合法访问请求集合P={b},用户输入哈希函数数量k为3,同时给出3个哈希函数
Figure 519575DEST_PATH_IMAGE004
;构建黑名单系统包括复合型过滤器和全量黑名单;
(2)构建复合型过滤器;复合型过滤器包括哈希调制器和计数器数组,哈希调制器包括一组调制元组,每个调制元组由调制计数器与调制索引构成;调制计数器记录了其所属的调制元组被使用的次数;调制索引记录了该调制元组内存储的哈希函数的索引。计数器数组由一组计数器组成,每个计数器包含正部和负部两个字段。
(3)首先遍历重要合法访问请求集合P中的每一条访问请求,对于访问请求b,使用3个哈希函数将其映射到计数器数组中3个不同的计数器,本实施例中,访问请求b,被映射到第1、3、5个计数器,将这三个计数器的正部字段设置为1,如果一个计数器的正部字段的值已经为1,那么就直接略过。
(4)遍历非法访问请求集合N中的每一条访问请求,对于访问请求a,使用用户给定的3个哈希函数将访问请求a映射到3个计数器;对于访问请求c,同样使用用户给定的3个哈希函数将访问请求c映射到3个计数器;本实施例中,访问请求a映射到第2、4、6个计数器,访问请求c映射到第1、4、6个计数器。
(5)如果非法访问请求映射到的计数器正部字段的值均为0,则将计数器负部字段的值均增加1;本实施例中,访问请求a映射到3个计数器的正部字段都为0,将访问请求a映射到第2、4、6个计数器的负部字段增加1。
(6)如果非法访问请求映射到的计数器正部字段的值不均为0,则用
Figure 295901DEST_PATH_IMAGE002
标记哈希函数中映射到正部字段的值不等于零的计数器对应的最小哈希函数,将除
Figure 717655DEST_PATH_IMAGE002
所映射的计数器之外的计数器的负部字段的值增加1;根据
Figure 780289DEST_PATH_IMAGE002
更新哈希调制器中的调制元组:首先检查待录入的非法访问请求在哈希调制器中映射的位置是否为空,如果非法访问请求映射的位置为空,则从尚未使用的哈希函数中选取一个能够使映射的计数器正部字段为1的哈希函数,将哈希函数的索引存储到对应的调制元组中,并将调制元组的调制计数器增加1;如果非法访问请求映射的位置不为空,则检查调制元组中已有的哈希函数能否复用,若能复用则将调制元组的调制计数器增加1,并将复用的哈希函数映射的计数器的负部字段的值增加1。本实施例中,访问请求c映射到第1、4、6个计数器的正部字段不都为0,将3个哈希函数中正部字段非0的计数器对应的最小哈希函数
Figure 44917DEST_PATH_IMAGE005
记为
Figure 483989DEST_PATH_IMAGE002
,将第4、6个计数器的负部字段的值增加1,并更新哈希调制器。哈希调制器内置的哈希函数
Figure 901195DEST_PATH_IMAGE003
将c映射到第1个调制元组,则选取一个之前未使用过的哈希函数
Figure 134730DEST_PATH_IMAGE006
,该哈希函数将c映射到第3个计数器,将哈希函数对应的索引4存入调制元组的调制索引,并将调制元组的计数器增加1。
(7)步骤2至步骤6完成了复合型过滤器的搭建,本实施例中,全量黑名单内包括非法访问请求集合N为内的全部访问请求:访问请求a和访问请求c。
(8)当搭建完成的黑名单系统接收到需要判别合法性的访问请求时,如果该访问请求不在复合型过滤器内,判定为合法访问请求;否则,继续检索全量黑名单验证该请求是否是非法访问请求。本实施例中,当接收到访问请求为b时,该请求被用户给定的3个哈希函数映射到第1、3、5个计数器,因为第3、5个计数器的负部字段的值都是0,因此访问请求b不在复合型过滤器中,判定请求b为合法请求,向用户输出判别结果。
当接收到访问请求为a时,使用用户给的三个哈希函数将a映射到第2,4,6个计数器,发现所有映射的计数器负部都是非零,则判定a为潜在非法请求需要继续查询全量黑名单验证是否为非法访问请求。而对于访问请求c而言查询其在查询过程中映射的第1,4,6计数器中,第一个计数器的负部为0,也就是被调整过,那么就需要去哈希调制器内取出存储的哈希函数
Figure 496441DEST_PATH_IMAGE006
,然后将检查新映射的第二个计数器负部非0,那么c也是潜在的非法请求也需要继续检查全量黑名单从而确认c是否是非法访问请求。
本实施例中,当发现新的非法访问请求d时,将非法访问请求d纳入非法访问请求集合N内,形成新的非法访问请求集合N={a,c,d},同时执行步骤4至步骤6,将新的非法访问请求d录入复合型过滤器中;执行步骤7,将新的非法访问请求d录入全量黑名单内。最终完成黑名单系统的更新。
本申请中构建的黑名单系统,相比于传统的黑名单系统的工作方法,不仅可以百分百准确地识别出非法访问请求,同时对于重要的合法访问请求能够快速判定,降低这些重要访问请求的处理延迟。本发明提出的黑名单系统的工作方法能够正确识别出非法访问请求,同时不会误判非法的访问请求。

Claims (2)

1.一种黑名单系统工作方法,其特征在于:该方法包括步骤如下:
步骤1,输入重要合法访问请求集合、非法访问请求集合,构建黑名单系统包括复合型过滤器和全量黑名单;所述的复合型过滤器包括哈希调制器和计数器数组,哈希调制器包括一组调制元组,每个调制元组由调制计数器与调制索引构成;
步骤2,构建复合型过滤器;使用k个哈希函数将每个重要合法访问请求映射到计数器数组中k个计数器内,修改计数器的正部字段完成重要合法访问请求录入;
步骤3,使用k个哈希函数将每个非法访问请求映射到计数器数组中k个计数器内,修改计数器的负部字段完成非法访问请求录入;当非法访问请求的映射和重要合法访问请求的映射发生冲突时,调整非法访问请求映射使用的哈希函数并记录;
步骤4,构建全量黑名单;将每个非法访问请求完整的记录在全量黑名单中;
步骤5,接收用户输入的需要判别合法性的访问请求,如果该访问请求不在复合型过滤器内,那么就是合法访问请求;否则,继续检索全量黑名单验证该请求是否是非法访问请求;
所述的步骤2中重要合法访问请求所映射计数器的正部字段的值设置为1;
所述的步骤3中非法访问请求录入复合型过滤器具体步骤如下:
(S1)如果非法访问请求映射到k个计数器正部字段的值均为0,则将k个计数器负部字段的值均增加1;
(S2)如果非法访问请求映射到k个计数器正部字段的值不均为0,则用
Figure 858702DEST_PATH_IMAGE001
标记k个哈希函数中映射到正部字段的值不等于零的计数器对应的最小哈希函数,将除
Figure 348589DEST_PATH_IMAGE001
所映射的计数器之外k-1个计数器的负部字段的值增加1;
(S3)根据
Figure 941244DEST_PATH_IMAGE001
更新哈希调制器中的调制元组:首先检查待录入的非法访问请求在哈希调制器中映射的位置是否为空,如果非法访问请求映射的位置为空,则从尚未使用的哈希函数中选取一个能够使映射的计数器正部字段为1的哈希函数,将哈希函数的索引存储到对应的调制元组中,并将调制元组的调制计数器值增加1;如果非法访问请求映射的位置不为空,则检查调制元组中已有的哈希函数能否复用,若能复用则将调制元组的调制计数器值增加1,并将复用的哈希函数映射的计数器的负部字段的值增加1;
所述的步骤5中用户输入的待判别合法性的访问请求x是否在复合型过滤器内判断方法如下:
访问请求x使用k个哈希函数映射对应的计数器中有超过1个计数器负部字段的值为0,则判断访问请求x不在复合型过滤器内;如果只有1个计数器负部字段的值为0并且哈希调制器中访问请求x被映射到的调制元组的调制计数器值为0,则判断访问请求x不在复合型过滤器内。
2.根据权利要求1所述的黑名单系统工作方法,其特征在于:当非法访问请求集合内新增加非法访问请求时,将新增加的非法访问请求重复执行步骤3和步骤4,完成黑名单系统更新。
CN202110878320.7A 2021-08-02 2021-08-02 一种黑名单系统工作方法 Active CN113329036B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110878320.7A CN113329036B (zh) 2021-08-02 2021-08-02 一种黑名单系统工作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110878320.7A CN113329036B (zh) 2021-08-02 2021-08-02 一种黑名单系统工作方法

Publications (2)

Publication Number Publication Date
CN113329036A CN113329036A (zh) 2021-08-31
CN113329036B true CN113329036B (zh) 2021-11-05

Family

ID=77426684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110878320.7A Active CN113329036B (zh) 2021-08-02 2021-08-02 一种黑名单系统工作方法

Country Status (1)

Country Link
CN (1) CN113329036B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104601557A (zh) * 2014-12-29 2015-05-06 广东顺德中山大学卡内基梅隆大学国际联合研究院 一种基于软件定义网络的恶意网站防护方法及系统
EP3418909A1 (en) * 2017-06-19 2018-12-26 Thomson Licensing A method for accessing a key in a cuckoo hash table
CN111314301A (zh) * 2020-01-17 2020-06-19 武汉思普崚技术有限公司 一种基于dns解析的网站访问控制方法及装置
CN112532598A (zh) * 2020-11-19 2021-03-19 南京大学 一种用于实时入侵检测系统的过滤方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103581363B (zh) * 2013-11-29 2017-12-12 哈尔滨工业大学(威海) 对恶意域名和非法访问的控制方法及装置
CN104700459B (zh) * 2015-03-20 2016-03-23 东南大学 一种提高afc系统终端设备黑名单匹配效率的方法
CN111062013B (zh) * 2019-12-18 2022-06-03 北京爱奇艺科技有限公司 一种账号过滤方法、装置、电子设备及机器可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104601557A (zh) * 2014-12-29 2015-05-06 广东顺德中山大学卡内基梅隆大学国际联合研究院 一种基于软件定义网络的恶意网站防护方法及系统
EP3418909A1 (en) * 2017-06-19 2018-12-26 Thomson Licensing A method for accessing a key in a cuckoo hash table
CN111314301A (zh) * 2020-01-17 2020-06-19 武汉思普崚技术有限公司 一种基于dns解析的网站访问控制方法及装置
CN112532598A (zh) * 2020-11-19 2021-03-19 南京大学 一种用于实时入侵检测系统的过滤方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Hash轻量级RFID安全认证协议;张兴等;《计算机工程与设计》;20180516(第05期);全文 *

Also Published As

Publication number Publication date
CN113329036A (zh) 2021-08-31

Similar Documents

Publication Publication Date Title
US9742637B2 (en) System and method of high volume rule engine
EP2521066A1 (en) Fine-grained relational database access-control policy enforcement using reverse queries
US11334474B2 (en) Fast change impact analysis tool for large-scale software systems
CA3104312C (en) Systems and methods for storing object state on hash chains
WO2020230061A1 (en) Utility optimized differential privacy system
US20200364183A1 (en) Device and method for managing ledger data on blockchain
US10366081B2 (en) Declarative partitioning for data collection queries
CN114817974A (zh) 动态数据脱敏方法及系统、数据安全处理方法及系统
CN113329036B (zh) 一种黑名单系统工作方法
US11477228B2 (en) Method and system for blockchain accreditation mechanism based on cybersecurity risk
CN113795838A (zh) 通过对持久存储装置中的信息流建模来检测二级安全漏洞
US11860679B2 (en) Detecting security vulnerabilities in queries via an information flow graph
US20230267203A1 (en) Query generalization for prevention of injection attacks
US20120221512A1 (en) Dynamic database dump
CN110717192B (zh) 基于Key-Value加速器的面向大数据安全的访问控制方法
CN115412358B (zh) 网络安全风险评估方法、装置、电子设备及存储介质
CN109542939A (zh) 一种基于纠删码的count-min摘要方法及装置
CN117555906B (zh) 数据处理方法、装置、电子设备及存储介质
CN116595527B (zh) 一种内存木马的检测方法、系统、装置及可读存储介质
US11210201B2 (en) Scalable incremental analysis using caller and callee summaries
CN110502535B (zh) 数据访问方法、装置、设备和存储介质
CN108763363B (zh) 一种检验待写入记录的方法及装置
US8112415B1 (en) Optimized field unpacking for a data stream management system
CN116663051A (zh) 数据库权限的配置方法、介质、装置和计算设备
CN118051511A (zh) 一种海量数据快速校验及异常数据处理方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant