服务器遭攻击,oracle分析日志

联系:手机/微信(+86 17813235971) QQ(107644445)QQ咨询惜分飞

标题:服务器遭攻击,oracle分析日志

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

今天公司服务器出现问题,经过启动日志功能,分析日志,大概确定是dos攻击

部分日志如下:

2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml -  80 - 121.204.33.120  Mozilla/4.0(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02  10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 -  114.41.216.107 Mozilla/4.0(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1)  200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET  /index.shtml - 80 - 221.15.37.5  Mozilla/4.0(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02  10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 -  114.41.216.107 Mozilla/4.0(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1)  200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET  /index.shtml - 80 - 114.41.216.107  Mozilla/4.0(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02  10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 -  114.41.216.107 Mozilla/4.0(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1)  200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET  /index.shtml - 80 - 114.41.216.107  Mozilla/4.0(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02  10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 -  222.81.14.4 Mozilla/4.0(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0  64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET  /index.shtml - 80 - 180.126.191.98  Mozilla/4.0(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02  10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 -  117.15.210.226 Mozilla/4.0(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1)  200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET  /index.shtml - 80 - 121.204.33.120  Mozilla/4.0(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02  10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 -  112.122.131.60 Mozilla/4.0(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1)  200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET  /index.shtml - 80 - 118.77.181.47  Mozilla/4.0(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64

日志文件实在太多了,最后几分钟都就有20m左右,我们肉眼看上去,没有什么规律可寻的,我决定采用oracle数据帮我们分析

建表如下:

get   varchar2(3000)–保存日志中的一条记录

ip varchar2(15)–保存日志中请求服务器的ip地址(分析的重点)

gettime varchar2(20)  –保存时间(本来有date类型的,不知道为什么,和后面的proc中的程序有的冲突,我也不想改存储过程了,就先改了这个,有时间再想想程序)

第一步:通过net把.log 的日志文件中的数据导入到db的dos_gj中的get列中,程序如下:

string txt = Show_page("log.log");
string[] aba = txt.Replace("\r\n", "@").Split('@');
for (int i = 0; i < aba.Length; i++)
{
OracleHelper.ExecuteNonQuery(OracleHelper.
ConnectionStringLocalTransaction,
System.Data.CommandType.Text,
"insert into dos_gj(get) values (:abc)", new OracleParameter("abc", aba[i]));
}

//读取文件的 Show_page()函数就不放出来了

大概半个多小时,20m文件的数据,全部分条导入到数据中,统计,一共近20w条

第二步:使用proc对这些数据进行分析:

proc如下 :

create or replace
procedure dos_fx
is
cursor c1 is
select get from dos_gj;
begin
for c2 in c1 loop
update dos_gj set
ip=REGEXP_SUBSTR( get, '(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])(\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){3} '),
gettime=REGEXP_SUBSTR( get, '\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}') where get=c2.get;
end loop;
commit;
end;
exec  dos_fx;

不知道什么原因,执行了快两个小时了,现在还是在执行中,我现在怀疑在oracle中cursor +正则表达式+update,执行效率正的很低啊,才20w条数据,执行了2个小时,还没有结果,郁闷,在等待中……

这些对oracle有点无语了,害的我现在还不能睡觉,等在电脑面前,早知道就用ms sql了,听说 2005也支持正则功能了。继续等待(2010年7月3日2:04:58),这个效率,这个速度有点无语哦,听说oracle速度很快,我还得好好学习 哦。等了两个多小时就是学艺不精的后果。

最后想想这个update table的思路不行,新建了一张,使用了新的存储过程(insert)

create or replace procedure dos_fx
is
cursor c1 is
select get from dos_gj;
begin
for c2 in c1 loop

insert into dos_gj_1(ip,gettime,get)values(REGEXP_SUBSTR( c2.get,  '(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])(\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){3}  '),
REGEXP_SUBSTR( c2.get, '^(\d{4})-(\d{2})-(\d{2}) (\d{2}:\d{2}:\d{2})'),c2.get);
end loop;
commit;
end;

同上表,然后执行insert操作,考虑到sql dev占用内存太大,这次使用了pl/sql dev操作,结果使用了1分钟37秒就完成了近20w的数据的操作,这才是oracle的本色啊,O(∩_∩)O哈哈~。

现在想想,应该是刚刚前面的update那种操作导致了数据库死锁导致无限的等待。

好了,数据从log文件,到数据库里面,已经数据提取成功,剩下的就是相关统计的oracle了

统计ip攻击情况

不到一个小时的攻击的结果大概如上图,任务大概完成,先睡觉去,明天继续分析

此条目发表在 Oracle 分类目录。将固定链接加入收藏夹。

评论功能已关闭。