MySQL 관련 질문!!!!
현재 Snort룰을 참고하고 있습니다.
스노트룰을 디비에 넣어서 패턴 매치 할려고 합니다..
디비에 넣는 부분인데,, 저 같은 경우 각 프로토콜 별로 테이블을 만든후
그 테이블을 각 프로토콜별로 구조체에 넣어서 패킷과 패턴매치를 할려고합니다
그런데,, 문제가 있습니다.
+----+------+------+----------+----------+-
| No | Name | Type | Src_port | Dst_port | Alert | Mail | Log TL|
+----+------+------+----------+----------+-
| 1 | Jolt | Dos | NULL | NULL | 1 | 0 | 0 |NULL
+----+------+------+----------+----------+-
예를 들면 이부분에서 NULL 있잖아여.. Port부분은 스노트의 Any옵션때문에
저렇게 해 놓았거든요,, 좋은 방법있으면 말씀해주세영,,
그리고 포트 부분 말고 다른 부분에서의 NULL은 해당 공격에 대해서 룰옵션을 쓰지 않는것입니다.
이렇게만든 디비를 C 에서 부릅니다.
NULL데이타를 부를때 int 형으로 불러질줄 알았습니다.. 표시될때 걍 (NULL)이라고 표시될거라 생각했죠..
하지만 실행시키니 바로 세그맨테이션 오류가 나더군요,,,
그래서 문자형으로 불러봤더니 (NULL)값을 가지고 오더군요
그렇다고 포트부분하고, 비어있는 필드를 전부 캐릭터형으로 불러올수도 없
고,, 아니면 NULL대신 아무값이 없다라는,, 뭐 그런 자료형이나 방법 있습니
까? 길었네요,,, 방법 아시는분은 답장 달아주세요~~
아무값이 없다는 뜻의 NULL 말고, ''이것도 있는데 이것또한 문자형이구,,
테스트를 해본결과 1. DB(char) C(atoi()) 출력 = 0
2. DB(int) C(int) 출력 = 세크멘데이션오류
3. DB(char) C(char) 출력 = NULL
*디비내용은 NULL이라고 가정
해본방법은 룰옵션에 없는 공격데이터를 1.NULL, 2.'' 이 두개 값을 넣어보았습니다.
고수님들 부탁드립니다~~~~
댓글 달기