본 프로젝트는 경북대학교와 (주)YH데이터베이스와의 산학 협력 프로젝트로 진행 되었습니다.
본 프로젝트의 모듈은 Apache2.0 라이선스를 따르는 DL4J를 기반으로 작성 되었습니다.
본 프로젝트는 기술의 발달로 다양해지고 변화하는 네트워크 상의 공격에 대응하기 위해 딥러닝 기법을 이용한 새로운 대처 방법을 찾고자 진행 되었습니다. 이를 통해 네트워크 장치의 분석 데이터를 기반으로 한 효율적인 이상 패킷 차단 기술을 확보하고, 그에 따른 적정 자원 할당 및 처리의 방향을 찾아보고자 합니다.
우분투 리눅스 환경을 기반으로 진행합니다.
-
git 복사. (경로 설정을 위해 ~$에 설치 하는 것을 권장)
~$ git clone https://github.com/Screwlim/20192_yhdatabase.git- pcap(raw packet) to nsl-kdd 변환 모듈 빌드.
~$ git clone https://github.com/AI-IDS/kdd99_feature_extractor.git
~$ cd kdd99_feature_extractor
~/kdd99_feature_extractor$ mkdir build-files
~/kdd99_feature_extractor$ cd build-files
~/kdd99_feature_extractor/build-files$ cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" ..
~/kdd99_feature_extractor/build-files$ cd ..
~/kdd99_feature_extractor$ cmake --build ./build-files --target kdd99extractor -- -j 4
-
intelliJ에서 ~/20192_yhdatabase/ML module/pom.xml 불러오기.
-
~/20192_yhdatabase/ML module/src/main/java/org/deeplearning4j/examples/deeplearning/Training3.java로 학습. 학습 완료 된 모델은 ~/20192_yhdatabase/ML module/src/main/resources/trainedModel 경로에 저장.
-
Service.java의 IPaddress 변수에 자신의 IP주소 입력.
-
Classification.java의 path 변수에 원하는 분류 모델(또는 학습 한 모델)설정.
-
Service.java 실행.
data_set (상세정보)
신경망을 학습시키고 테스트할 때 사용된 모든 데이터 셋
DL4J라이브러리를 사용한 신경망 설계 프로젝트 파일
- DL4J (http://deeplearning4j.org/)
- kdd99 형식 추출 모듈 (https://github.com/AI-IDS/kdd99_feature_extractor)