【问题标题】:decoded snort logs解码的 snort 日志
【发布时间】:2017-02-15 18:07:19
【问题描述】:

我使用了这个命令:

$ snort -b -l /home/username/snort-2.9.9.0/snort_logs

记录 snort 数据包,但它给了我 ASCII 格式..

我想要普通文本格式的日志文件,我该怎么做?

谢谢

【问题讨论】:

  • Snort 仅以数据包格式存储数据包。您的情况是您将数据包作为文本编辑器打开。
  • 如果snort连接到DB,只有包头以外的数据区可以16进制存储。数据区的十六进制可以解码成可读的文本。
  • 我想将日志发送到 hadoop mapreduce 来统计数据包,所以它必须是文本对吗?当我在 hadoop 中打开日志时,它显示为不可读的字符.. 那么我应该怎么做才能使日志能够计数?
  • 我不知道你想要什么。您想了解 Hadoop 和 Snort 中的哪些内容?如果您想了解 hadoop,请将人类可读的数据发送到 hadoop。如果你想了解snort,可以通过wireshark等数据包转储工具打开日志。如果您想了解这两者,packetpig 可能会帮助您。祝你好运。
  • 或者如果使用这个命令'snort -b -l /home/username/snort-2.9.9.0/snort_logs -K ascii',只有包头被存储为可读文本。但是如果只存储包头,Snort 就没有用了。

标签: security logging file-format logfile snort


【解决方案1】:

要使用hadoop分析snort,首先您需要在将snort日志转换为可读文本后上传。 我在必要时解码了存储在 mysql 中的 snort 日志。如下php代码是我的解码工具

[rawdata_up.php]

<html>
<head>
<link rel="stylesheet" href="./main.css">
<script lang="javascript">
function checkInput (form) {
 if(!(form.userfile.value)) {
            alert("choice file");
            form.userfile.focus();
        return;
    }

myChoices.submit();
}
</script>

</head>
<body>
<form name=myChoices method="POST" ENCTYPE="multipart/form-data" action="rawdata_post.php?TyPe=<?$TyPe?>">
<table width="802" border="0" cellspacing="0" cellpadding="1" align="center">
<tr><td bgcolor="#8080FF">
<table width="800" border="0" cellspacing="1" cellpadding="5" align="center">
<tr>
<td width="800" colspan="5" align="center" bgcolor="#CFD0ED"><b>Mass Rawdata Decoding Page</b></td>
</tr>
<tr>
        <td colspan="5" bgcolor="#FAFAEE"></td>
</tr>
<td align="center" bgcolor="#FAFAEE"><font size=2><b>File</b></font></td>
<td align="center" bgcolor="#FAFAEE">
<input type="file" name="userfile" size="60"></td>
          <td style='padding-left:10px;'bgcolor=#FAFAEE>
                <select name=TyPe>
                <option value='A'>HEX</option>
                <option value='B'>URL</option>
                </select>
                </td>
</tr>
<td align="center" colspan="5" bgcolor="CFD0ED">
<font size=2>
<input type="button" value="Decode" onclick="checkInput(this.form)">
</font>
</td>
</tr>
</table>
</form>
</body>
<table align="center"><a href=http://localhost/index.html>home</a></table>
</html>

[rawdata_post.php]

<table border=1 cellspacing=1 bgcolor=black>
<?
function hex2bin($hexdata) {
  $bindata="";

  for ($i=0;$i<strlen($hexdata);$i+=2) {
    $bindata.=chr(hexdec(substr($hexdata,$i,2)));
  }

  return $bindata;
}
#####uploaded file directory####
$TyPe = $HTTP_POST_VARS["TyPe"];
#$uploaddir = 'rawdata_tmp/';
$uploaddir = '../../PHP/phptemp/';
$uploadfile = $uploaddir . $_FILES['userfile']['name'];
$userfile_name = $_FILES['userfile']['name'];
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {

#$csv_file = "rawdata_tmp/$userfile_name";
$csv_file = "../../PHP/phptemp/$userfile_name";
 $fp = fopen ("$csv_file","r");
        while ($line = fgetcsv($fp,100000,","))
         {
        for ($i = 0 ; $i < sizeof($line) ; $i++) {
                $field_[$i] = $line[$i] ;
                $STR = hex2bin($field_[$i]);
                $STR2=$field_[$i];
                if ($TyPe=='A'){
                $STR=htmlspecialchars($STR);
        ?>
<tr bgcolor=white><td>
        <?
                echo $STR;
        ?>
</td></tr>  
        <?
                }else{
                $STR2=urldecode("$STR2");
                $STR2=htmlspecialchars($STR2);
        ?>
<tr bgcolor=white><td>
        <?
                echo $STR2;
        ?>
</td></tr>
        <?
                }
                }
        }
        fclose($fp);
} else {
 print "upload fail~~\n";
 print_r($_FILES);
}
print "</pre>";
?>
</table>
<title>
<?
echo $userfile_name
?>
</title>
<a href=http://localhost/index.html>home</a></table>

祝你好运~

【讨论】:

  • 你能告诉我在哪里使用这个代码吗?我需要安装 Web 服务器、mysql 还是将其放在文件或命令提示符中?或者我应该把它改写成java代码?我是否在同一个地方同时使用 (rawdata_up.php) 和 (rawdata_post.php) 方法?
  • 最后一个问题,这段代码是只转换特定的日志文件还是所有的日志?
  • 如果snort连接mysql,pcap日志可以16进制存储(数据表的data_payload字段)。而这个php代码可以解码十六进制。仅由支持 php 的 apache 等 Web 服务器使用。然后就可以应用了。
猜你喜欢
  • 2015-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多