Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# .github/workflows/main.yml
name: CI/CD Test Workflow

on:
push:
branches:
- lab3
<<<<<<< HEAD
workflow_dispatch:

jobs:
build:
runs-on: windows-latest

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Show system info
run: |
echo OS Info:
systeminfo
echo CPU Info:
wmic cpu get name,NumberOfCores,NumberOfLogicalProcessors
echo Memory Info:
wmic memorychip get capacity,manufacturer,partnumber,speed

- name: Run a simple script
<<<<<<< HEAD
run: echo "Hello, GitHub Actions!"
88 changes: 88 additions & 0 deletions lab1/submission1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Task 1

## Commit Signing

Commit signing is a way to cryptographically verify the identity of the author of a commit. Git supports multiple signing methods, including GPG and SSH keys. The signature is embedded in the commit and verified by platforms like GitHub and Bitbucket, which display a verification status (such as "Verified").

## Benefits of SSH Signing

### 1. Simple Setup

- SSH keys are already widely used for authentication with remote repositories.
- Does not require installing or configuring GPG, which can be complex, especially on Windows.
- Creating and adding SSH keys is quick and straightforward.

### 2. Enhanced Trust and Security

- Signed commits prove that the commit was created by a specific person (the SSH key owner).
- Helps prevent history tampering or malicious impersonation.

### 3. Platform Integration

- GitHub displays the signature status directly in pull requests and commit history.
- Commit signing can be enforced via branch protection rules.
- Bitbucket Server and Data Center (starting with version 8.8) also support SSH commit verification.

### 4. Reuse of Existing Keys

- The same SSH keys that are already used for repository access can be used again.
- No need to manage a separate GPG key.

### 5. Compliance and Audit Support

- Signed commits create a cryptographically verifiable trail of changes.
- Facilitates auditability and helps meet security and compliance requirements.

## Conclusion

Using SSH commit signatures is a convenient way to prove authorship of code changes. It is especially valuable in collaborative development, open source projects, and environments with strong security requirements.


---

# Task 2

## Standard Merge

Creates a merge-commit and saves the change log of all branches

### Pros:

- Stores the full log of changes
- Is convenient for collaborative environments

### Cons:

- A large volume of merge-commits can clutter the commit history

## Squash and Merge

Combines all the commits in a branch before merging

### Pros:

- Increased history readability

### Cons:

- Information about intermediate commits is lost

## Rebase and Merge

Applies all commits over the base branch

### Pros:

- Linear history with no merge commits

### Cons:

- Can be dangerous in collaborative environments

## Why Standard Merge is Prefered

Because it:

- Saves the full commit history
- Allows for an easy management of who and when applied what changes
- Does not rewrite history, making it safe for collaborative projects
Empty file added lab2/submission2.md
Empty file.
34 changes: 34 additions & 0 deletions lab3/submission3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Task 1

## Setup

- A new branch for lab 3 was created
- A workflow file `main.yaml` was added to `.github/workflows/`
- Workflow runs upon being pushed into a lab3 branch

## Terminology

- **Workflow** is an automated process, described by a YAML file
- **Job** — a task in the workflow
- **Step** — a step in the task
- **runs-on** — determines the runner OS

## Results

- Workflow launched upon being pushed
- Step output looked like "Hello, GitHub Actions!"
- No errors occured

# Task 2

## Changes

- `workflow_dispatch` was added for manual startup
- `Show system info` step was added to display runner information
- Workflow file was uploaded into the master branch in order for Workflow Dispatch to work

## Observations

- Manual lauch works
- System information was gathered and displayed
- No runtime errors in the final version (errors due to incorrect commands for the runner were encountered in one of the iterations)
Binary file added lab4and5/sub4_imgs/image-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub4_imgs/image-10.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub4_imgs/image-11.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub4_imgs/image-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub4_imgs/image-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub4_imgs/image-4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub4_imgs/image-5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub4_imgs/image-6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub4_imgs/image-7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub4_imgs/image-8.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub4_imgs/image-9.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub4_imgs/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub5_imgs/image-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub5_imgs/image-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub5_imgs/image-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub5_imgs/image-4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub5_imgs/image-5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub5_imgs/image-6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub5_imgs/image-7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub5_imgs/image-8.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added lab4and5/sub5_imgs/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
144 changes: 144 additions & 0 deletions lab4and5/submission4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
# Task 1

## Boot performance

1. System Boot Time

`systemd-analyze` showed the overall startup time, while `systemd-analyze blame` showed what constituted the overall startup time

![](./sub4_imgs/image.png)

2. System load

`uptime` and `w` show the system load. `w` provides more detailed information

![](./sub4_imgs/image-1.png)

## Process Forensics

```bash
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -n 6
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -n 6
```

The above commands are used to show processes sorted by the amount of memory and cpu power they take up.

`/usr/bin/gnome-shell` is the most memory and cpu intensive process

![](./sub4_imgs/image-2.png)

## Service Dependencies

```bash
systemctl list-dependencies
```

The above command lists dependencies (shocking)

![](./sub4_imgs/image-3.png)

```bash
systemctl list-dependencies multi-user.target
```

The above command does the same but for a multi-user.target and not a default one

![](./sub4_imgs/image-4.png)

## User Sessions

```bash
who -a
last -n 5
```

The first command shows the current login information and the last command shows the last 5 logins

![](./sub4_imgs/image-5.png)

## Memory Analysis

```bash
free -h
cat /proc/meminfo | grep -e MemTotal -e SwapTotal -e MemAvailable
```

The first command shows general information about RAM, while the last one shows specific information from the /proc/meminfo file

![](./sub4_imgs/image-6.png)

# Task 2

## Network Path Tracing

1. Traceroute Execution:

Command:
```bash
traceroute github.com
```

Output:

![](./sub4_imgs/image-7.png)

- Only the first hop was successfully displayed
- The rest of the hops are unavailable

2. DNS Resolution Check

Command:

```bash
dig github.com
```

Output:

![](./sub4_imgs/image-8.png)

- DNS request successfully allowed domain github.com for IP of 140.82.121.3
- Got a response from the local DNS-server 127.0.0.53

## Packet Capture

```bash
sudo timeout 10 tcpdump -c 5 -i any 'port 53' -nn
```

![](./sub4_imgs/image-9.png)

- There were no DNS requests during the execution of this command :>

## Reverse DNS

Command:

```bash
dig -x 8.8.4.4
```

Output:

![](./sub4_imgs/image-10.png)

- Successful reverse DNS lookup: IP `8.8.4.4` resolved to `dns.google`

Command:

```bash
dig -x 1.1.2.2
```

Output:

![](./sub4_imgs/image-11.png)

- Reverse DNS lookup for IP `1.1.2.2` failed — no PTR record found (NXDOMAIN).

## Summary

- ICMP-based path tracing (traceroute) appears restricted by the network or provider.
- DNS queries are functioning correctly via the local resolver.
- DNS packet capture showed no traffic due to lack of activity during capture.
- Reverse DNS lookups work selectively depending on IP address — 8.8.4.4 resolved, 1.1.2.2 did not.
67 changes: 67 additions & 0 deletions lab4and5/submission5.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Task 1

## VirtualBox

VirtualBox version: 7.1.10

## Installation process

![](./sub5_imgs/image.png)
![](./sub5_imgs/image-2.png)
![](./sub5_imgs/image-1.png)
![](./sub5_imgs/image-3.png)


## Installed VM

![](./sub5_imgs/image-4.png)

# Task 2

## Processor, RAM, and Network Information

### Processor

Command used:

```bash
lscpu
```

Output:

![](./sub5_imgs/image-5.png)

### RAM

Command used:

```bash
free -h
```

Output:

![](./sub5_imgs/image-6.png)

### Network

Command used:

```bash
ip a
```

Output:

![](./sub5_imgs/image-7.png)

## OS specifications

Command used:

```bash
hostnamectl
```

![](./sub5_imgs/image-8.png)