网络安全
文章平均质量分 69
网络安全开发
securitysun
分享个人历年来工作中整理的笔记
展开
-
SYN小包攻击原理
在syn flood攻击场景下,为了提高发送效率在服务端产生更多的syn等待队列,攻击程序在填充包头时,IP首部和TCP首部都不填充可选的字段,因此IP首部长度恰好是20字节,TCP首部也是20字节,共计40字节。这时整个数据包长度为14字节的以太头,20字节的IP头,20字节的TCP头,再加上因为最小包长度要求而填充的6哥字节的0,共计60字节。|14字节以太头部|20字节IP头部|20字节TCP|6字节填充|4字节校验。|目的MAC|源MAC|协议类型|IP头|TCP头|以太网填充|CRC校验。原创 2023-11-29 10:23:50 · 701 阅读 · 0 评论 -
DDoS检测防御实现方案
对pps或bps汇聚统计,当超过阈值时触发告警,告警内容包括:攻击类型、起始时间、流量大小pps,bps,目标IP,目标端口。对pps或bps汇聚统计,当超过阈值时触发告警,告警内容包括:攻击类型、起始时间、流量大小pps,bps,目标IP,目标端口。对pps或bps汇聚统计,当超过阈值时触发告警,告警内容包括:攻击类型、起始时间、流量大小pps,bps,目标IP,目标端口。对pps或bps汇聚统计,当超过阈值时触发告警,告警内容包括:攻击类型、起始时间、流量大小pps、bps,目标IP,目标端口。原创 2023-10-12 09:36:27 · 783 阅读 · 0 评论 -
CDN安全面临的问题及防御架构
攻击方式:HTTP Get、HTTP Post、Local DNS、DNS flood、DNS 反射、权威DNS、SYN flood(TCP协议的标志位都能组成一个flood)、UDP flood、四层DDos、Connection flood、SSDP。基于协议栈优化linux操作系统,例如腾讯Tlinux kemel(前置判断和过滤HTTPS支持、前置判断算法改进)、IDC硬件(入口)anti-DDos产品、云清洗(骨干网络、更近源站、节点的本地化)应用层的DDos、CC攻击---CDN WAF。原创 2023-08-06 12:19:14 · 717 阅读 · 0 评论 -
openssl c代码开发demo
//gcc -Wall -o ssl-svr-demo ssl-svr-demo.c -lssl -lcrypto#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/socket.h>#include <sys/types.h>#include <netinet/in.h>#include <netdb.原创 2022-01-06 10:45:09 · 622 阅读 · 0 评论 -
网络安全策略管理架构
两个收发策略接口,分别是RESTFULAPI、CLI。收到策略解析,使用文件型、轻量级sqlite数据库存储,存于表A。(查了一下sqlite可以批量写入、删除、查询)。黑名单策略存于表B。原创 2022-04-27 22:05:29 · 2175 阅读 · 0 评论 -
记一次dpdk 16.11版本移植错误排查
移植后cmd_thread_init()报错,修改cmd使用的管理核。server启动后报段错误,tx_buffer初始化失败。增大hugepage,报错remap失败。reboot设备,修改server的启动参数,绑定网卡到dpdk,启动成功。原创 2022-05-14 11:27:06 · 580 阅读 · 2 评论 -
tcp分片攻击与防御原理
攻击原理正常的网络流量中很少出现TCP分片报文,如果网络中TCP分片报文增多,则很可能正受到ddos攻击。攻击者向攻击目标发送大量的TCP分片报文。通常会造成以下危害:大量的TCP分片报文消耗带宽资源,造成被攻击者的响应缓慢甚至无法正常回应。网络设备或服务器收到大量的TCP分片报文,会进行分片重组,这样会导致网络设备或服务器的性能降低,甚至无法正常工作。防御原理TCP分片分为首分片和后续分片,可以只对首分片执行防御动作,如果首分片异常被丢弃了,后续分片因找不到首分片的会话会直接被后续原创 2022-02-22 09:10:46 · 5359 阅读 · 0 评论 -
dpdk从给定的port/queue捕获流量
简介dpdk编程之从给定的port/queue tuple捕获流量。rte_lcore_idrte_lcore_id()返回当前运行的lcore id。lcore指的是EAL linux线程。EAL创建和管理eal线程通过remote_launch来实现任务分配。在每个EAL线程中,有一个称为_lcore_id TLS是线程的独一无二的id。通常EAL线程绑定物理cpu,lcore_id通常等于cpuid。当使用多线程时,绑定不再在线程和指定物理cpu之间总是1:1.原创 2022-04-20 18:09:41 · 3248 阅读 · 0 评论 -
DDOS检测之首包丢弃
攻击原理对于有些攻击是不断变换源IP地址或者源端口号的,这样的攻击报文都不相同,而且攻击量很大。通过首包丢弃,可以有效拦截这部分流量。防御原理正常情况下,对于TCP、DNS、ICMP报文都具有重传功能,如果在交互过程中报文被丢弃,则都会重传。首包丢弃正式利用了报文的重传机制,将收到的第一个报文丢弃,以判定后续是否有重传报文。首包丢弃就是为了防御大流量攻击,与源认证方式结合可有效防御变换源IP或源端口号的攻击。判定报文是否属于重传报文是基于三元组及时间间隔来判断的。三元组包含源原创 2022-02-22 09:09:06 · 3471 阅读 · 0 评论 -
针对DDoS攻击异常流量攻击统计
基本目标时发现异常的流量攻击事件,并且自动上报清洗平台,完成流量清洗攻击检测Syn flood基于检测对象,对pps做汇聚统计,当超过阈值时触发告警,告警内容包括:攻击类型、起始时间、流量大小pps,目标IP,目标端口Ack flood基于检测对象,对pps或bps汇聚统计,当超过阈值时触发告警,告警内容包括:攻击类型、起始时间、流量大小pps,bps,目标IP,目标端口......原创 2020-02-27 00:29:56 · 1218 阅读 · 0 评论 -
dpdk从环形队列ring获取解析数据包,并使用hashtable统计
result = rte_ring_dequeue_burst(arg0,arg1,arg2,arg3)将多个对象从一个环形队列ring取出,直到达到最大数量。该函数调用多消费者或单消费者批量出队列,取决于在创建ring时指定的默认行为。arg0为环形队列ring指针arg1为 指用数据包填充的void*指针数组指针,示例为void* dequeued[]数组arg2为从环出列到 obj_table 的对象数。arg3如果如果非NULL,则为返回出队完成后剩余的环条目数。返回值为出队的对象数原创 2022-04-21 17:17:42 · 2367 阅读 · 0 评论 -
DNS攻击防护原理
针对四种防护算法进行DNS攻防测试,防护算法如下:默认算法(限速)TC重传cname跳转首次query丢弃重点针对攻击原理、防护原理进行说明,针对如何测试,提供参考文档。DNS request flood攻击篇攻击原理:1、DNS request flood攻击原理其实很简单,就是黑客控制僵尸网络向DNS服务器发送大量的不存在域名的解析请求,最终导致服务器因大量DNS请求而超载,无法继续响应正常用户的DNS请求,从而达到攻击的目的。2、在DNS request flood攻击过程中,攻击的目标可能是D...原创 2022-07-12 22:45:36 · 1888 阅读 · 6 评论 -
hyperscan在IPS/IDS产品中的应用
hypercan简介hyperscan是基于intel的高速正则表达式匹配引擎,这个基于状态机(Automata)的引擎经过了多年开发经过不断优化与完善,效率非常之高,虽然没有pcre等对正则语法支持全面,但非常适用于网络设备。用户可以在网络设备数据面(Data Plane)使用hyperscan进行规则匹配,实现高性能DPI/lPS/IDS等应用API说明文档: http://01org.github.io/hyperscan/dev-reference/getting_started.h..原创 2020-12-06 23:44:22 · 810 阅读 · 4 评论 -
利用icmp隧道转发绕过限制
步骤1. icmp隧道实战应用场景。2. 在建立icmp隧道的两端机器上分别编译安装PingTunnel。3. 通过icmp隧道来转发常规tcp端口。基础环境准备ubuntu16-LAMP入侵者为公网的一台vps(ubuntu 16.04.3 LTS),相当于隧道客户端,公网 ip: 192.168.3.110。heightlamp目标边界的一台 linux web 机器(centOS 7),相当于隧道服务端,公网 ip: 192.168.3.76,内网 ip:...原创 2021-05-19 12:00:25 · 690 阅读 · 0 评论 -
新能源汽车智能制造工控安全解决方案
新能源汽车智能制造业,工控网络安全需要知道的事情,及工控网络安全解决方案简介。为智能汽车制造企业生产网网络安全保驾护航。原创 2021-11-22 10:40:59 · 10958 阅读 · 0 评论 -
DDOS之首包丢弃防护
首包丢弃为了防御大流量攻击,与源认证方式结合,有效防御攻击源变换源IP、端口号。对于TCP、DNS、ICMP报文都具有重传的特点,如在交互过程中报文被丢弃,则会重传。原创 2022-03-25 09:00:05 · 579 阅读 · 0 评论 -
SSL-DoS和SSL-DDos攻击与防御
SSL握手的过程中,在协商加密算法时服务器CPU的开销是客户端开销的15倍左右。攻击者利用这一特点,在一个TCP连接中不停地快速重新协商(这种行为是被SSL所允许的),从而耗尽服务器CPU资源,这种攻击叫做SSL-DoS。...原创 2022-03-25 09:17:18 · 888 阅读 · 0 评论 -
c语言线程池编码示例
thread_pool.c#include "thread_pool.h"thread_pool *pool = NULL;static void * thread_pool_entrance(void *arg){ int thread_id = (int)arg; printf("thread %d is created\n",thread_id); while(1) { pthread_mutex_lock(&(pool->queue_mutex)); w原创 2022-03-14 13:59:44 · 148 阅读 · 0 评论 -
dpdk l3fwd实现ip acl规则下发
整个L3fwd有三千多行代码,但总体思想就是在L2fwd的基础上,增加网络层的根据 IP 地址进行路由查找的内容。l2fwd例子中,代码中网卡没有配置多队列,所以性能上有些局限性,而l3fwd的例子中,网卡配置了多队列这就是在网络转发调试过程中,很多场景下直接使用l2fwd进行转发测试,往往达不到最佳效果的根本原因2.l2fwd中,报文转发流程相对简单,仅仅改了mac就发包了,无需过多判断l3fwd中,需查询路由表,相对实现复杂些dpdk的acl算法。大致用法如下:配置如原创 2021-12-01 09:42:59 · 2892 阅读 · 9 评论 -
dpdk helloworld执行测试过程
【执行helloworld测试程序】1、export RTE_SDK=/home/chaihua/dpdk-16.04;export RTE_TARGET=x86_64-native-linuxapp-gcc2、cd ${RTE_SDK}/examples/helloworld3、make config T=x86_64-native-linuxapp-gcc4、make install T=x86_64-native-linuxapp-gcc5、./helloworld -c f原创 2021-12-01 09:39:57 · 496 阅读 · 0 评论 -
NUMA调试命令
【NUMA技术的常用调试命令】NUMA技术相关笔记_jollyjumper的专栏-CSDN博客NUMA,非统一内存访问(Non-uniform Memory Access),介于SMP(对称多处理)和MPP(大规模并行处理)之间,各个节点自有内存(甚至IO子系统),访问其它节点的内存则通过高速网络通道。NUMA信息主要通过BIOS中的ACPI(高级配置和编程接口)进行配置,Linux对NUMA系统的物理内存分布信息从系统firmware的ACPi表中获得,最重要的是SRAT(System Res原创 2021-12-01 09:09:49 · 693 阅读 · 0 评论 -
openssl异步说明
Asyn mode是OpenSSL支持异步I/O(AIO)的模式,在这个模式下openssl把硬件加速卡等不占用cpu的操作剥离出来,单独交给一个叫asyn job的结构去做。在asyn job执行的过程中,cpu可以把当前任务暂停,切换上下文(保存/恢复栈,寄存器等,用__setjump, longjump实现)返回给user。User需要主动(或者等待硬件加速卡的事件通知)去epoll这个as...原创 2020-02-24 17:43:54 · 2239 阅读 · 0 评论 -
dpdk testpmd测试硬件cksum计算工具
dpdk testpmd测试硬件cksum计算工具原创 2021-11-24 15:44:40 · 661 阅读 · 0 评论 -
dpdk-pktgen快速发包工具踩坑日记
1、git clone git://dpdk.org/apps/pktgen-dpdk2、sudo yum install libpcap-devel.x86_643、将RTE_ASSERT 修改为RTE_MBUF_ASSERT3、make4、sudo ./setup.sh5、执行./pktgen -c 0x1f -n 3 -- -P -m "[1:3].0, [2:4].1"6、start 0 发包开始【测试环境测试方案】(1)两个口直连,可以小包打到20Gbp原创 2021-11-24 13:24:24 · 2997 阅读 · 0 评论 -
dpdk网卡多队列相关的技术
将网卡的某个接收队列分配给某个核,从该队列中收到的所有报文都应当在该指定的核上处理结束。从核对应的本地存储中分配内存池,接收报文和对应的报文描述符都位于该内存池。为每个核分配一个单独的发送队列,发送报文和对应的报文描述符都位于该核和发送队列对应的本地内存池中。可以看出不同的核,操作的是不同的队列,从而避免了多个线程同时访问一个队列带来的锁的开销。但是,如果逻辑核的数目大于每个接口上所含的发送队列的数目,那么就需要有机制将队列分配给这些核。不论采用何种策略,都需要引入锁来保护这些队列的数据。网卡是如原创 2021-11-24 13:15:40 · 958 阅读 · 0 评论 -
网络路由相关的知识
网络路由相关的知识原创 2021-11-24 13:06:59 · 3862 阅读 · 0 评论 -
nginx 异步openssl Intel QAT硬件加速方案
Intel QuickAssist简介通过内核空间中的设备驱动程序和用户空间中的库访问qat技术加速器。加密服务通过标准引擎框架提供给openssl。引擎构建在用户空间库之上,qatapi接口跨版本无需修改。这种分层和与openssl框架的集成允许应用程序无缝利用。......原创 2021-11-23 15:18:11 · 3319 阅读 · 0 评论 -
tcp异常报文攻击与检测原理
简介TCP报文标志位包括:URGACKPSHRSTSYNFIN攻击者通过发送非法TCP flag组合的报文对主机造成危害。检测异常检查TCP报文的各个标志位URG、ACK、PSH、RST、SYN、FIN,如果标志位异常,则认为是TCP异常报文。内置规则将所有TCP异常报文全部丢弃,记录攻击日志。异常检测如下: Syn option字段不完整(syn-64) 6个标志位全为1。 6个标志位全为0。 SYN和FIN位同时为1。...原创 2020-12-18 00:07:30 · 1673 阅读 · 0 评论 -
编译安装fastsocket内核
下面所有编译安装操作是以 root 用户权限进行操作。编译安装fastsocket内核第一步需要下载代码,当然这是废话了,下载到/opt目录下:git clone https://github.com/fastos/fastsocket.git编译安装下载之后,需要进入其目录中:cd fastsocket/kernel因为是涉及到内核嘛,编译之前需要做一些参数选项配置,使用 make config 会累死人的,好几千个选项参数需要你一一配置,大部分时间,默认配置就挺好的:..原创 2020-12-10 14:49:58 · 160 阅读 · 0 评论 -
exar加速卡驱动加载
exar加速卡安装openssl测试情况a).DX_SDK_v2.2.1L_PUBLIC_20150116.tar.gzMd5:2042102d996454d245870d15059b4828b).DX_SDK_v2.2.1L_EXAR_20150116.tar.gzMd5:aa6d6aa4e77e234cb378e0742e73ecfdc).openssl_engin...原创 2020-02-24 17:37:50 · 434 阅读 · 0 评论 -
linux xmlrpc 服务端 java客户端
最近在搞利用xmlrpc协议与java端通信,其好处就是可以跨平台通信java、c、PHP、c++都支持。首先需要去sourceforge网站去下载xmlrpc库安装在系统上,我用c实现了一个服务端,c服务端最主要的是这个函数xmlrpc_decompose_value,稍后讲解,以下是c服务端代码,java客户端没有贴:原创 2015-07-16 23:41:19 · 885 阅读 · 1 评论