更安全的服务器:Windows账号权限修改监控

系统入侵首先从账号权限修改开始,常见的操作有,给自己开新账号,修改已有账号权限,如:提升guest账号为管理员等,如果手工去检查账号的变化,不仅繁琐,而且会遗漏,因为有经验的黑客操作后,会清除事件日志。

理想的方式是,只要服务器账号权限发生改变,就即时通知相关人员。

在.net中,提供了EventLog对象,我们可以利用EventLog的EntryWrittenEvent事件来监控账号相关的操作。

static  AutoResetEvent signal;

void  Listen() {
    EventLog log 
=   new  EventLog();
    
    
//  和安全相关的系统事件
    log.Log  =   " Security " ;

    
//  监听EventLog写入事件
    log.EntryWritten  +=   new  EntryWrittenEventHandler(OnEntryWritten);
    log.EnableRaisingEvents 
=   true ;

    
//  等待
    signal  =   new  AutoResetEvent( false );
    signal.WaitOne();
}

public   void  OnEntryWritten( object  source, EntryWrittenEventArgs e) {
   
//  监听所有系统管理事件
     if  (e.Entry.CategoryNumber  ==   7 ) {
        EventLogEntry entry 
=  e.Entry;
       
string  userName  =  entry.UserName;
        
long  eventID  =  entry.InstanceId;
        DateTime dateAdded 
=  entry.TimeGenerated;
        
string  message  =  entry.Message;

        
//  测试:写入到文本文件,实际使用时可以发邮件,或记到数据库
        
//  File.AppendAllText("c:\\event.txt", string.Format("\r\nEventID:{0}\r\nTime:{1}\r\n{2}\r\n\r\n", eventID, dateAdded.ToString(), message));
    }
}


为了让这儿的监控程序在后台执行,还可以包装成服务,包装成服务的例子程序,从这儿下载:
UserOperateMonitor.rar

转载于:https://www.cnblogs.com/jiyang/archive/2011/06/01/User_Operate_Monitor.html

你可能感兴趣的:(更安全的服务器:Windows账号权限修改监控)