Raihan Ul Islam

35 papers B 1C 3Misc 1Journal 16Unranked 12
YearRankTypeTitle / Venue / Authors
2026 J jnl
Array
Al Hossain, Umme Hani Konok, Raihan Ul Islam, Mohammad Shahadat Hossain, Prashanta Dutta
2025 J jnl
IEEE Access
Al Hossain, Umme Hani Konok, MD Tahsin, Raihan Ul Islam, Mohammad Rifat Ahmmad Rashid, Mohammad Shahadat Hossain, Karl Andersson
2025 J jnl
Array
Mohammad Rifat Ahmmad Rashid, Md. Al Ehtesum Korim, Mahamudul Hasan, Md. Sawkat Ali, Mohammad Manzurul Islam, Taskeed Jabid, Raihan Ul Islam, Maheen Islam
2025 J jnl
Nat. Lang. Process. J.
Mohammad Rifat Ahmmad Rashid, Aritra Das, Kazi Ferdous Hasan, Md. Rakibul Hasan, Mithila Sultana, Mahamudul Hasan, Raihan Ul Islam, Rashedul Amin Tuhin, M. Saddam Hossain Khan
2024 conf
AIBThings
Habibur Rahman, Md Tanvir Chowdhury, Monjurul Islam Sumon, Fatiha Mahbub Mim, Mohammad Rifat Ahmmad Rashid, Raihan Ul Islam, Mahamudul Hasan
2024 C conf
CLOSER
Vinay Yadhav, Andrew Williams, Ondrej Smid, Jimmy Kjällman, Raihan Ul Islam, Joacim Halén, Wolfgang John
2023 J jnl
CoRR
Seraj Al Mahmud Mostafa, Md Z. Islam, Mohammad Z. Islam, Fairose Jeehan, Saujanna Jafreen, Raihan Ul Islam
2023 Misc conf
UCC
Ali Balador, Lizzy Tengana, Mohammad Ashjaei, Raihan Ul Islam, Saad Mubeen
2023 J jnl
IEEE Access
Mohammad Newaj Jamil, Mohammad Shahadat Hossain, Raihan Ul Islam, Karl Andersson
2022 conf
BI
Shafkat Raihan, Mumtahina Ahmed, Angel Sharma, Mohammad Shahadat Hossain, Raihan Ul Islam, Karl Andersson
2022 conf
MIET (2)
Mohammad Shahadat Hossain, Mumtahina Ahmed, S. M. Shafkat Raihan, Angel Sharma, Raihan Ul Islam, Karl Andersson
2022 J jnl
Cogn. Comput.
Tawsin Uddin Ahmed, Mohammad Newaj Jamil, Mohammad Shahadat Hossain, Raihan Ul Islam, Karl Andersson
2022 J jnl
Expert Syst. Appl.
Sami Kabir, Raihan Ul Islam, Mohammad Shahadat Hossain, Karl Andersson
2022 J jnl
J. Internet Serv. Inf. Secur.
Mumtahina Ahmed, Mohammad Shahadat Hossain, Raihan Ul Islam, Karl Andersson
2021 conf
BI
Shafkat Raihan, Sharif Noor Zisad, Raihan Ul Islam, Mohammad Shahadat Hossain, Karl Andersson
2021 conf
AII
Nagifa Ilma Progga, Noortaz Rezoana, Mohammad Shahadat Hossain, Raihan Ul Islam, Karl Andersson
2021 conf
TCCE
Tawsin Uddin Ahmed, Sazzad Hossain, Mohammad Shahadat Hossain, Raihan Ul Islam, Karl Andersson
2021 J jnl
Algorithms
Sharif Noor Zisad, Etu Chowdhury, Mohammad Shahadat Hossain, Raihan Ul Islam, Karl Andersson
2021 conf
AII
Tahmina Akter Sumi, Mohammad Shahadat Hossain, Raihan Ul Islam, Karl Andersson
2020 J jnl
IEEE Access
Raihan Ul Islam, Mohammad Shahadat Hossain, Karl Andersson
2020
Raihan Ul Islam
2020 J jnl
Sensors
Sami Kabir, Raihan Ul Islam, Mohammad Shahadat Hossain, Karl Andersson
2020 J jnl
J. Wirel. Mob. Networks Ubiquitous Comput. Dependable Appl.
Mohammad Newaj Jamil, Mohammad Shahadat Hossain, Raihan Ul Islam, Karl Andersson
2018 conf
LCN Workshops
Ahmed Afif Monrat, Raihan Ul Islam, Mohammad Shahadat Hossain, Karl Andersson
2018 J jnl
Soft Comput.
Raihan Ul Islam, Mohammad Shahadat Hossain, Karl Andersson
2018 ch.
Applications of Big Data Analytics
Ahmed Afif Monrat, Raihan Ul Islam, Mohammad Shahadat Hossain, Karl Andersson
2017 C conf
iiWAS
Md Rafiul Sabbir Hridoy, Mohammad Shahadat Hossain, Raihan Ul Islam, Karl Andersson
2017 conf
INFOCOM Workshops
Raihan Ul Islam, Karl Andersson, Mohammad Shahadat Hossain
2016 J jnl
J. Wirel. Mob. Networks Ubiquitous Comput. Dependable Appl.
Sumeet Thombre, Raihan Ul Islam, Karl Andersson, Mohammad Shahadat Hossain
2016 conf
INFOCOM Workshops
Sumeet Thombre, Raihan Ul Islam, Karl Andersson, Mohammad Shahadat Hossain
2015 C conf
iiWAS
Raihan Ul Islam, Karl Andersson, Mohammad Shahadat Hossain
2014 conf
IMIS
Caner Kilinc, Seraj Al Mahmud Mostafa, Raihan Ul Islam, Kashif Shahzad, Karl Andersson
2014 J jnl
J. Wirel. Mob. Networks Ubiquitous Comput. Dependable Appl.
Raihan Ul Islam, Mischa Schmidt, Hans-Joerg Kolbe, Karl Andersson
2012 conf
GLOBECOM Workshops
Raihan Ul Islam, Mischa Schmidt, Hans-Joerg Kolbe, Karl Andersson
2011 B conf
LCN
Karl Andersson, Seraj Al Mahmud Mostafa, Raihan Ul Islam
redb/extractors/basicproperties.py
← Index redb/extractors/basicproperties.py python
from dataclasses import asdict
import inspect
import os
import magic
from magika import Magika
from datetime import datetime, timezone
from typing import Any, List, Tuple

from redb.extractors.enum import Tag
from redb.models.dataclasses import BasicProperties
from redb.extractors.extractor import Extractor


class BasicPropertiesExtractor(Extractor):

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        parent_sha256=None,
        precomputed_hashes=None,
        is_fat=None,
        child_sha256=None,
        child_architecture=None,
        child_filetype=None,
        first_seen=None,
    ):
        super().__init__(
            filepath,
            log,
            exporters=exporters,
            index_prefix=index_prefix,
            elastic_index=elastic_index,
            known_benign=known_benign,
            known_malicious=known_malicious,
            precomputed_hashes=precomputed_hashes,
        )
        self.basic_properties = None
        self.elastic_index = self.index_prefix + "-basic_properties"
        self.is_packed = None
        self.parent_sha256 = parent_sha256  # For FAT Mach-O slices, points to container hash
        self.is_fat = is_fat  # True for FAT Mach-O containers, None otherwise
        self.child_sha256 = child_sha256  # SHA256 hashes of children (FAT slices, zip contents)
        self.child_architecture = child_architecture  # Architecture names for FAT Mach-O slices
        self.child_filetype = child_filetype  # Magika filetypes for children (useful for zip archives)
        self.first_seen = first_seen  # From catalog_samples, None for local files

    def tag(self):
        return Tag.BASIC_PROPERTIES.value

    def _extract_basic_properties(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        filename = None  # Reserved for future use
        sample_name = os.path.basename(self.filepath)
        file_entropy = round(self.calculate_entropy(self.binary), 3)
        type_ = magic.from_buffer(self.binary)
        type_mime = magic.from_buffer(self.binary, mime=True)
        type_magika = Magika().identify_bytes(self.binary).output.label
        size = len(self.binary)
        self.basic_properties = BasicProperties(
            filename, sample_name, size, type_, type_mime, type_magika,
            file_entropy, self.is_packed, self.is_fat, self.child_sha256,
            self.child_architecture, self.child_filetype,
            first_seen=str(self.first_seen) if self.first_seen else None,
        )
        self.log.debug(f"Basic Properties dump: {asdict(self.basic_properties)}")

    def extract(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        try:
            self._extract_basic_properties()
            # self.export_to_elastic([self.basic_properties])
            return self.basic_properties
        except Exception as e:
            self.log.error(f"Extract basic properties error {self.hash.sha256} Exception: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.basic_properties
        elif exporter_type == "ClickHouseExporter":
            data = [[
                self.sha256,
                self.md5,
                self.sha1,
                self.parent_sha256,  # NULL for standalone/FAT, fat_hash for slices
                self.basic_properties.child_sha256 or [],  # SHA256 hashes of children
                self.basic_properties.child_architecture or [],  # Architecture names for FAT slices
                self.basic_properties.child_filetype or [],  # Magika filetypes for children
                self.basic_properties.is_fat,  # True for FAT Mach-O containers, NULL otherwise
                self.basic_properties.filename,
                self.basic_properties.sample_name,
                self.basic_properties.filesize,
                self.basic_properties.file_entropy,
                self.basic_properties.filetype,
                self.basic_properties.filetype_mime,
                self.basic_properties.filetype_magika,
                self.first_seen or datetime(1970, 1, 1, tzinfo=timezone.utc),  # From catalog_samples, epoch zero for local files (uses original datetime, not string)
                datetime.now(timezone.utc)
            ]]

            column_names = [
                'sha256', 'md5', 'sha1', 'parent_sha256', 'child_sha256', 'child_architecture', 'child_filetype',
                'is_fat', 'filename', 'sample_name',
                'filesize', 'file_entropy', 'filetype', 'filetype_mime',
                'filetype_magika', 'first_seen', 'analysis_date'
            ]

            column_type_names = [
                'String', 'String', 'String', 'Nullable(String)',
                'Array(FixedString(64))', 'Array(LowCardinality(String))', 'Array(LowCardinality(String))',
                'Nullable(UInt8)', 'Nullable(String)', 'String',
                'UInt64', 'Float64', 'LowCardinality(String)',
                'LowCardinality(String)', 'LowCardinality(String)',
                'DateTime64(3, \'UTC\')',
                'DateTime64(3, \'UTC\')'
            ]

            return data, column_names, column_type_names

    def get_clickhouse_table(self) -> str:
        return "redb_basic_properties"