Skip to content

Latest commit

 

History

History
103 lines (97 loc) · 5.27 KB

README.md

File metadata and controls

103 lines (97 loc) · 5.27 KB

Application - Web Log Analysis

Description

Web Log Analysis is an application desined to analyze web log services, visualize statistical data, and transmit log data from Apache server and ModSecurity firewall. The applicaiton provides an overview of overall log data, status and security problems from server and firewall.

This project is developed in the Java prpgramming language with JavaFx for the user interface and adhering to Object-Oriented Programming principles. It is also managed and built by Maven ,which helps optimize the development process and integrate the necessary libraries.

Key Feature

  • Log parsing and analysis: Reads and analyzes Apache server and ModSecurity firewall log files.
  • Statistical insights: Visualization statistics data such as total visit, error, log traffic per hour,etc.
  • Interactive interface: Allow user interaction to filter and view detailed information.

Feature Demo

This demo mainly uses the login as visitor feature, which is a sample profile that allows users to try out the app's features without entering log data.

Visualize data

Visualization.mp4

Filter log data

Filter.mp4

Stream log data

Strean.mp4

For further guide and fully demo, see this full video on youtube for demo with Ubuntu OS: https://youtu.be/eq44JOHHUHw

Code structure

.
├── access.log
├── modsec.log
├── mvnw
├── mvnw.cmd
├── pom.xml
├── profile.txt
└── src
    └── main
        ├── java
        │   ├── hust
        │   │   └── soict
        │   │       └── cybersec
        │   │           └── webloganalysis
        │   │               ├── controller
        │   │               │   ├── CreProfileController.java
        │   │               │   ├── DashboardController.java
        │   │               │   ├── ExplorerController.java
        │   │               │   ├── LoginController.java
        │   │               │   ├── StreamController.java
        │   │               │   └── WelcomeController.java
        │   │               ├── Main.java
        │   │               ├── model
        │   │               │   ├── LogEntry
        │   │               │   │   ├── AccessLog.java
        │   │               │   │   ├── AuditLog.java
        │   │               │   │   ├── IpAddress.java
        │   │               │   │   ├── Rule.java
        │   │               │   │   └── StatusCode.java
        │   │               │   └── Parser
        │   │               │       ├── ParseAccessLog.java
        │   │               │       └── ParseAuditLog.java
        │   │               └── util
        │   │                   ├── AccessLogTable.java
        │   │                   ├── AuditLogTable.java
        │   │                   ├── Config.java
        │   │                   ├── IpAddressToCountryName.java
        │   │                   ├── LogLineChart.java
        │   │                   ├── RuleTable.java
        │   │                   ├── StatusCodeTable.java
        │   │                   └── StreamLogTable.java
        │   └── module-info.java
        └── resources
            └── hust
                └── soict
                    └── cybersec
                        └── webloganalysis
                            ├── database
                            │   └── GeoLite2-Country.mmdb
                            ├── image
                            │   ├── detective.png
                            │   ├── HaiNhat.jpg
                            │   ├── log_analysis.png
                            │   ├── login.png
                            │   └── TuanAnh.jpg
                            ├── log_sample
                            │   ├── access.log
                            │   └── modsec.log
                            └── view
                                ├── CreProfile.fxml
                                ├── Dashboard.fxml
                                ├── Explorer.fxml
                                ├── Login.fxml
                                ├── Stream.fxml
                                └── Welcome.fxml

System Requirement

  • Java 22 or higher
  • Maven
  • JavaFX(included in JDK 22 and above)

Installation and Running

  1. Clone the repository
  2. Build with Maven
  3. Run the application

Author

hust.soict.cybersec.project1