Skip to content

Commit a4be1c8

Browse files
committed
markdown features
rm extra deps blogs blog post[a few links misisng] finalised all links complete slight update slight update update gsoc summary Signed-off-by: aryan <[email protected]> navigation arrows fixed for testimonials and sponsors (#31) * Update globals.css * navigation arrows fixed responsive
1 parent 9fdce6b commit a4be1c8

File tree

7 files changed

+16466
-5716
lines changed

7 files changed

+16466
-5716
lines changed

Blogs/gsoc24_New_documentation_site_summary.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ Deploying the site using GitHub Pages was relatively easy, thanks to a pre-exist
6565

6666
However, ensuring that submodules were updated before deployment was crucial. I explored several approaches to trigger the main repo to fetch updates from child repos upon commits, but this proved complex.
6767

68-
Ultimately, we opted for a daily cron job to update submodules and deploy the site with the latest changes.
68+
This [github action](https://github.com/intelowlproject/docs/blob/main/.github/workflows/deploy_and_update_submodules.yml) handles all the updation required.
6969

7070
## Addition of Docstrings
7171

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
---
2+
title: New Analyzers for IntelOwl.
3+
date: 2024-08-19
4+
cover: /images/gsoclogo.png
5+
author: Nilay Gupta
6+
---
7+
8+
## Introduction
9+
10+
As an engineer, I'm always on the lookout for interesting projects and products. One such project that caught my eye was Honeynet's IntelOwl Project. I'll keep this blog short and crisp, elucidating all my contributions since then.
11+
12+
### Pre-GSOC Commits/Discussions
13+
14+
| PR Number | Title |
15+
| --------- | ----- |
16+
| [#2209](https://github.com/intelowlproject/IntelOwl/pull/2209) | Tweet feedsfixes#1770 |
17+
| [#2178](https://github.com/intelowlproject/IntelOwl/pull/2178) | Fixes bgp ranking#1901 |
18+
| [#2126](https://github.com/intelowlproject/IntelOwl/pull/2126) | Feodo tracker#1103 |
19+
| [#2164](https://github.com/intelowlproject/IntelOwl/pull/2164) | Misp, closes #1955 |
20+
| [#2161](https://github.com/intelowlproject/IntelOwl/pull/2161) | Pinning image version of Phoneinfoga Analyzer |
21+
| [#2148](https://github.com/intelowlproject/IntelOwl/pull/2148) | Boolean toggle |
22+
| [#2115](https://github.com/intelowlproject/IntelOwl/pull/2115) | Validin#1966 |
23+
| [#2108](https://github.com/intelowlproject/IntelOwl/pull/2108) | Zippy_scan closes #1951 |
24+
| [#2107](https://github.com/intelowlproject/IntelOwl/pull/2107) | PhoneInfoga#995 |
25+
| [#2096](https://github.com/intelowlproject/IntelOwl/pull/2096) | Update censys.io, Closes #439 |
26+
| [#2080](https://github.com/intelowlproject/IntelOwl/pull/2080) | Mmdb server, closes #1779 |
27+
| [#19](https://github.com/intelowlproject/intelowlproject.github.io/pull/19) | fixed Scroll Bar Appearance |
28+
29+
As can be noticed, my contributions were pretty heavy on developing and fixing analyzers. Inevitably, the project I chose was developing **New Analyzers for IntelOwl**.
30+
31+
In my proposal, I proposed to develop around 30 new analyzers for the community of IntelOwl users.
32+
33+
# GSoC Deliverables and Tasks
34+
35+
As anticipated, my proposal was selected, and I was assigned the project. One of my mentors, and the owner of IntelOwl, Matteo Lodi, created a [GitHub Project/Kanban board](https://github.com/orgs/intelowlproject/projects/11/). All individual issues solved, pull requests and commits cab be accessed using the board.
36+
37+
I'll now proceed to elaborate on all the significant PRs mentioned.
38+
39+
- **Blint Analyzer [PR #2257](https://github.com/intelowlproject/IntelOwl/pull/2257) :**
40+
[Blint](https://github.com/owasp-dep-scan/blint) is a Binary Linter that checks the security properties and capabilities of your executables. Supported binary formats: - Android (apk, aab) - ELF (GNU, musl) - PE (exe, dll) - Mach-O (x64, arm64).
41+
- **HudsonRock Analyzer [PR #2327](https://github.com/intelowlproject/IntelOwl/pull/2327) :**
42+
[Hudson Rock](https://cavalier.hudsonrock.com/docs) provides its clients the ability to query a database of over 27,541,128 computers which were compromised through global info-stealer campaigns performed by threat actors.
43+
- **CyCat Analyzer [PR #2328](https://github.com/intelowlproject/IntelOwl/pull/2328/) :**
44+
[CyCat](https://cycat.org/) or the CYbersecurity Resource CATalogue aims at mapping and documenting, in a single formalism and catalogue available cybersecurity tools, rules, playbooks, processes and controls.
45+
- **Vulners Analyzer [PR #2340](https://github.com/intelowlproject/IntelOwl/pull/2340) :**
46+
[Vulners](vulners.com) is the most complete and the only fully correlated security intelligence database, which goes through constant updates and links 200+ data sources in a unified machine-readable format. It contains 8 mln+ entries, including CVEs, advisories, exploits, and IoCs — everything you need to stay abreast on the latest security threats.
47+
- **Ailtyposquatting Analyzer [PR #2341](https://github.com/intelowlproject/IntelOwl/pull/2341) :**
48+
[AILTypoSquatting](https://github.com/typosquatter/ail-typo-squatting) is a Python library to generate list of potential typo squatting domains with domain name permutation engine to feed AIL and other systems.
49+
- **DetectItEasy Analyzer [PR #2354](https://github.com/intelowlproject/IntelOwl/pull/2354) :**
50+
[DetectItEasy](https://github.com/horsicq/Detect-It-Easy) is a program for determining types of files.
51+
- **Malprob Analyzer [PR #2357](https://github.com/intelowlproject/IntelOwl/pull/2357) :**
52+
[Malprob](https://malprob.io/) is a leading malware detection and identification service, powered by cutting-edge AI technology.
53+
- **AdGuard Analyzer [PR #2363](https://github.com/intelowlproject/IntelOwl/pull/2363) :**
54+
[Adguard](https://github.com/AdguardTeam/AdguardSDNSFilter), a filter composed of several other filters (AdGuard Base filter, Social media filter, Tracking Protection filter, Mobile Ads filter, EasyList and EasyPrivacy) and simplified specifically to be better compatible with DNS-level ad blocking.
55+
- **Auto creation default test user with debug=true [PR #2369](https://github.com/intelowlproject/IntelOwl/pull/2369) :**
56+
Auto create an Admin user whenever IntelOwl starts up for the first time to avoid user creation on every new build while development.
57+
- **Spamhaus_WQS Analyzer [PR #2378](https://github.com/intelowlproject/IntelOwl/pull/2378) :**
58+
[Spamhaus_WQS](https://docs.spamhaus.com/datasets/docs/source/70-access-methods/web-query-service/000-intro.html) : The Spamhaus Web Query Service (WQS) is a method of accessing Spamhaus block lists using the HTTPS protocol.
59+
- **Crt_sh Analyzer [PR #2379](https://github.com/intelowlproject/IntelOwl/pull/2379) :**
60+
[Crt_Sh](https://crt.sh/) lets you get certificates info about a domain.
61+
- **Orkl_search Analyzer [PR #2380](https://github.com/intelowlproject/IntelOwl/pull/2380) :**
62+
[Orkl](https://orkl.eu/) is the Community Driven Cyber Threat Intelligence Library.
63+
- **Goresym Analyzer, fixes#1451 and fixes executable file support [PR #2401](https://github.com/intelowlproject/IntelOwl/pull/2401) :**
64+
- [GoReSym](https://github.com/mandiant/GoReSym) is a Go symbol parser that extracts program metadata (such as CPU architecture, OS, endianness, compiler version, etc), function metadata (start & end addresses, names, sources), filename and line number metadata, and embedded structures and types.
65+
66+
I fixed an important bug which involed correcting support for mimetype `application/vnd.microsoft.portable-executable` and `application/x-dosexec`. I had to migrate back, run a query to find all the analyzers that supported `application/x-executable` in previously, use the resultant list to migrate and update all the specific analyzers.
67+
- **JA4_DB Analyzer [PR #2402](https://github.com/intelowlproject/IntelOwl/pull/2402) :**
68+
[JA4_DB](https://ja4db.com/) lets you search a fingerprint in JA4 databse.
69+
- **Spamhaus_drop Analyzer [PR #2422](https://github.com/intelowlproject/IntelOwl/pull/2422) :**
70+
[Spamhaus_DROP](https://www.spamhaus.org/blocklists/do-not-route-or-peer/) protects from activity directly originating from rogue networks, such as spam campaigns, encryption via ransomware, DNS-hijacking and exploit attempts, authentication attacks to discover working access credentials, harvesting, DDoS attacks.
71+
- **Leakix Analyzer [PR #2423](https://github.com/intelowlproject/IntelOwl/pull/2423) :**
72+
[LeakIX](https://leakix.net/) is a red-team search engine indexing mis-configurations and vulnerabilities online.
73+
- **Iocextract Analyzer [PR #2426](https://github.com/intelowlproject/IntelOwl/pull/2426) :**
74+
[IocExtract](https://github.com/InQuest/iocextract) package is a library and command line interface (CLI) for extracting URLs, IP addresses, MD5/SHA hashes, email addresses, and YARA rules from text corpora. It allows for you to extract encoded and "defanged" IOCs and optionally decode or refang them.
75+
- **Apivoid Analyzer [PR #2428](https://github.com/intelowlproject/IntelOwl/pull/2428) :**
76+
[ApiVoid](https://www.apivoid.com/) provides JSON APIs useful for cyber threat analysis, threat detection and
77+
threat prevention, reducing and automating the manual work of security analysts.
78+
- **CriminalIp Analyzer [PR #2435](https://github.com/intelowlproject/IntelOwl/pull/2435) :**
79+
[Criminal IP](https://www.criminalip.io/) is an OSINT search engine specialized in attack surface assessment and threat hunting. It offers extensive cyber threat intelligence, including device reputation, geolocation, IP reputation for C2 or scanners, domain safety, malicious link detection, and APT attack vectors via search and API.
80+
- **Criminalip_Scan Analyzer [PR #2438](https://github.com/intelowlproject/IntelOwl/pull/2438)**
81+
CriminalIp_Scan is an implementation of scan APIs provided by [CriminalIp](https://www.criminalip.io/) specifically for domains.
82+
- **Polyswarm analyzer [PR #2439](https://github.com/intelowlproject/IntelOwl/pull/2439) :**
83+
Scans a file using the [Polyswarm](https://docs.polyswarm.io/) API.
84+
- **PolyswarmObs [PR #2439](https://github.com/intelowlproject/IntelOwl/pull/2439) :**
85+
Scan an observable using [Polyswarm](https://docs.polyswarm.io/) API. Paid plan is required for IP and Domain scans. Hash scan is free.
86+
- **Knock analyzer [PR #2448](https://github.com/intelowlproject/IntelOwl/pull/2448) :**
87+
[Knock](https://github.com/guelfoweb/knock) or Knockpy is a portable and modular python3 tool designed to quickly enumerate subdomains on a target domain through passive reconnaissance and dictionary scan.
88+
- **Improved PE_info analyzer [PR #2464](https://github.com/intelowlproject/IntelOwl/pull/2464) :**
89+
Improve PE_info analyzer; added support for ".NET" files and their info extraction .
90+
- **Droidlysis analyzer [PR #2454](https://github.com/intelowlproject/IntelOwl/pull/2454) :**
91+
[DroidLysis](https://github.com/cryptax/droidlysis) is a pre-analysis tool for Android apps: it performs repetitive and boring tasks we'd typically do at the beginning of any reverse engineering. It disassembles the Android sample, organizes output in directories, and searches for suspicious spots in the code to look at. The output helps the reverse engineer speed up the first few steps of analysis.
92+
- **MobSF Analyzer [PR #2461](https://github.com/intelowlproject/IntelOwl/pull/2461) :**
93+
[Mobsfscan](https://github.com/MobSF/mobsfscan) is a static analysis tool that can find insecure code patterns in your Android and iOS source code. Supports Java, Kotlin, Android XML, Swift and Objective C Code.
94+
- **Apk_artifacts analyzer [PR #2469](https://github.com/intelowlproject/IntelOwl/pull/2469) :**
95+
Apk [artifacts](https://github.com/guelfoweb/artifacts) provides APK strings analysis. It provides analysis, similarity and a report of an apk file.
96+
- **Markdown Features [PR #33](https://github.com/intelowlproject/intelowlproject.github.io/pull/33) :**
97+
Improved markdown support for IntelOwl's blog site.
98+
99+
## Ending Note and Next Steps
100+
101+
GSoC has been a hell of a ride for me. At first glance, implementing a new analyzer seems to be an easy task and, in fact, it is pretty easy. The real challenge starts when one has to develop and test multiple of them in parallel. The current framework for analyzer development is really smooth for one-at-a-time approach but things get really intricate and tricky while working on a handful of them at the same time. Migration issues, dependency management, database integrity are a few topics that scratch the surface. Re-building the project from scratch every-time you switch to develop another analyzer is surely an option but its time taking and to deliver an avg of 3 analyzers per week requires quicker solutions, plus, I'm too impatient for it :P
102+
As a beginner in the tech world, I came across a huge load of challenges as I proceeded with each analyzer in the project. Navigating through unforeseeable bugs, git conflicts, packages becoming unmaintainable, etc helped me grow exponentially as a developer.
103+
All this experience has helped me understand the importance of OSINT in cybersecurity; how my contributions are a tiny but impactful effort in making the world a safer pace.
104+
105+
I'm always eager to work on new ideas and features in this project. I hope that I'm able to make time to contribute more to the project in the future and give back to the community as much as I can.
106+
Thanks to my mentors, Matteo Lodi and Daniel Rosetti for their continuous support and making this GSoC a worthwhile experience, thankyou IntelOwl :)

components/Slider.tsx

Lines changed: 50 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,24 @@
44
import { TestimonialData } from "../constants/testimonialsdata";
55
import { Sponsordata } from "../constants/sponsordata";
66
import Link from "next/link";
7-
import { Autoplay } from "swiper";
7+
import SwiperCore, { Autoplay, Navigation } from "swiper";
88
import { Swiper, SwiperSlide } from "swiper/react";
99
import "swiper/css";
10+
import "swiper/swiper-bundle.css";
1011

11-
interface sliderProps {
12+
SwiperCore.use([Autoplay, Navigation]);
13+
14+
interface SliderProps {
1215
isTestimonial: boolean;
1316
}
1417

15-
export default function Slider(props: sliderProps) {
18+
export default function Slider(props: SliderProps) {
1619
const { isTestimonial } = props;
1720

1821
return (
1922
<>
2023
{isTestimonial ? (
21-
<div id="testimonials-element" className="w-[100%]">
24+
<div id="testimonials-element" className="w-[100%] relative">
2225
<div className="mx-auto max-w-screen-xl py-16 sm:px-6 lg:px-8">
2326
<Swiper
2427
spaceBetween={25}
@@ -40,49 +43,48 @@ export default function Slider(props: sliderProps) {
4043
delay: 4000,
4144
disableOnInteraction: false,
4245
}}
43-
modules={[Autoplay]}
46+
navigation={{
47+
prevEl: ".swiper-button-prev",
48+
nextEl: ".swiper-button-next",
49+
}}
4450
className="h-full"
4551
>
46-
{TestimonialData.map((testimonial, index) => {
47-
return (
48-
<div key={index} className="swiper-slide h-full bg-white">
49-
<SwiperSlide className="bg-[#16161D] md:!h-[30rem] lg:!h-[30rem] p-8 xl:p-8 rounded-xl mx-2 border-solid border border-[#39393F]">
50-
<div className="h-full w-full flex flex-col justify-between">
51-
<p className="relative mt-4 text-gray-500">
52-
<span className="text-xl">&ldquo;</span>
53-
{testimonial.review.length <= 300
54-
? testimonial.review
55-
: testimonial.review.slice(0, 300) + "..."}
56-
<span className="text-xl">&rdquo;</span>
57-
</p>
58-
<div className="flex flex-row gap-4 text-left items-start">
59-
<figcaption className="flex justify-center items-center space-x-3">
60-
<img
61-
className="w-12 h-12 rounded-full"
62-
src="/images/favicon.png"
63-
alt="profile picture"
64-
/>
65-
<div className="space-y-0.5 font-medium dark:text-white text-left">
66-
<p className="font-medium font-SpaceGrotesk opacity-90 text-white text-xl">
67-
{testimonial.name}
68-
</p>
69-
<p className="font-medium font-SpaceGrotesk text-white opacity-70 text-md text-left">
70-
{testimonial.designation}
71-
</p>
72-
</div>
73-
</figcaption>
52+
{TestimonialData.map((testimonial, index) => (
53+
<SwiperSlide key={index} className="bg-[#16161D] md:!h-[30rem] lg:!h-[30rem] p-8 xl:p-8 rounded-xl mx-2 border-solid border border-[#39393F]">
54+
<div className="h-full w-full flex flex-col justify-between">
55+
<p className="relative mt-4 text-gray-500">
56+
<span className="text-xl">&ldquo;</span>
57+
{testimonial.review.length <= 300 ? testimonial.review : testimonial.review.slice(0, 300) + "..."}
58+
<span className="text-xl">&rdquo;</span>
59+
</p>
60+
<div className="flex flex-row gap-4 text-left items-start">
61+
<figcaption className="flex justify-center items-center space-x-3">
62+
<img
63+
className="w-12 h-12 rounded-full"
64+
src="/images/favicon.png"
65+
alt="profile picture"
66+
/>
67+
<div className="space-y-0.5 font-medium dark:text-white text-left">
68+
<p className="font-medium font-SpaceGrotesk opacity-90 text-white text-xl">
69+
{testimonial.name}
70+
</p>
71+
<p className="font-medium font-SpaceGrotesk text-white opacity-70 text-md text-left">
72+
{testimonial.designation}
73+
</p>
7474
</div>
75-
</div>
76-
</SwiperSlide>
75+
</figcaption>
76+
</div>
7777
</div>
78-
);
79-
})}
78+
</SwiperSlide>
79+
))}
8080
</Swiper>
81+
<div className="swiper-button-next"></div>
82+
<div className="swiper-button-prev"></div>
8183
</div>
8284
</div>
8385
) : (
8486
<div id="sponsor-element" className="w-[90%]">
85-
<div className="mx-auto max-w-screen-xl px-4 py-16 sm:px-6 lg:px-8">
87+
<div className="mx-auto max-w-screen-xl px-4 py-16 sm:px-6 lg:px-8 relative">
8688
<Swiper
8789
spaceBetween={25}
8890
breakpoints={{
@@ -103,13 +105,20 @@ export default function Slider(props: sliderProps) {
103105
delay: 4000,
104106
disableOnInteraction: false,
105107
}}
106-
modules={[Autoplay]}
108+
navigation={{
109+
prevEl: ".swiper-button-prev",
110+
nextEl: ".swiper-button-next",
111+
}}
112+
className="h-full"
107113
>
108114
{Sponsordata.map((sponsor, index) => {
109115
return (
110116
<div key={index} className="swiper-slide">
117+
111118
<SwiperSlide className="bg-[#16161D] md:!h-[35rem] p-8 xl:p-16 rounded-xl mx-2 border-solid border border-[#39393F]">
119+
112120
<div className="flex flex-col items-center justify-around space-y-7 ">
121+
113122
<p className="relative mt-4 text-gray-500">
114123
{sponsor.companydesc}
115124
</p>
@@ -138,6 +147,8 @@ export default function Slider(props: sliderProps) {
138147
);
139148
})}
140149
</Swiper>
150+
<div className="swiper-button-next ssn"></div>
151+
<div className="swiper-button-prev ssp"></div>
141152
</div>
142153
</div>
143154
)}

0 commit comments

Comments
 (0)