website/app/Route/Index.elm

280 lines
11 KiB
Elm
Raw Normal View History

2023-10-24 05:23:25 +07:00
module Route.Index exposing (ActionData, Data, Model, Msg, route)
import BackendTask exposing (BackendTask)
import FatalError exposing (FatalError)
import Head
import Head.Seo as Seo
2023-11-05 22:06:54 +07:00
import Html.Styled exposing (..)
import Html.Styled.Attributes as Attributes
2023-10-24 05:23:25 +07:00
import Link exposing (Link)
import Pages.Url
import PagesMsg exposing (PagesMsg)
import UrlPath
import Route
import RouteBuilder exposing (App, StatelessRoute)
import Shared
import View exposing (View)
type alias Model =
{}
type alias Msg =
()
type alias RouteParams =
{}
type alias Data =
{ message : String
}
type alias ActionData =
{}
route : StatelessRoute RouteParams Data ActionData
route =
RouteBuilder.single
{ head = head
, data = data
}
|> RouteBuilder.buildNoState { view = view }
data : BackendTask FatalError Data
data =
BackendTask.succeed Data
|> BackendTask.andMap
(BackendTask.succeed "Hello!")
head :
App Data ActionData RouteParams
-> List Head.Tag
head app =
Seo.summary
{ canonicalUrlOverride = Nothing
2023-11-05 22:06:54 +07:00
, siteName = "nganhkhoa.com"
2023-10-24 05:23:25 +07:00
, image =
2023-11-05 22:06:54 +07:00
{ url = "https://nganhkhoa.com/nganhkhoa.png" |> Pages.Url.external
, alt = "nganhkhoa"
2023-10-24 05:23:25 +07:00
, dimensions = Nothing
, mimeType = Nothing
}
2023-11-05 22:06:54 +07:00
, description = "Personal blog of nganhkhoa"
2023-10-24 05:23:25 +07:00
, locale = Nothing
2023-11-05 22:06:54 +07:00
, title = "Anh Khoa Nguyen"
2023-10-24 05:23:25 +07:00
}
|> Seo.website
2023-11-05 22:06:54 +07:00
withSpacing : (List (Html msg) -> Html msg) -> List (Html msg) -> Html msg
withSpacing element =
List.intersperse (text " ") >> element
2023-10-24 05:23:25 +07:00
view :
App Data ActionData RouteParams
-> Shared.Model
-> View (PagesMsg Msg)
view app shared =
2023-11-06 00:20:32 +07:00
{ title = "nganhkhoa"
2023-10-24 05:23:25 +07:00
, body =
2023-11-05 22:06:54 +07:00
[ img [Attributes.src "/nganhkhoa.png"] []
, withSpacing (p [])
[ text "Welcome to my personal website, where I post random things and thoughts."
]
, withSpacing (p [])
[ text "I'm a Security Engineer at"
, Link.link (Link.external "https://bshield.io") [Attributes.target "_blank"] [text "BShield"]
, text "and"
, Link.link (Link.external "https://verichains.io") [Attributes.target "_blank"] [text "Verichains."]
, text "Before that, I was a member of Efiens under the name"
, Link.link (Link.external "https://blog.efiens.com/author/luibo/") [] [text "luibo."]
]
, withSpacing (p [])
[ text "My specialty are in computer security: memory forensics, binary analysis, program analysis, and compiler."
, text "My interest in computer systems are programming languages."
, text "I am finding for opportunities in type theory, operational semantic, and formal methods."
]
, withSpacing (p [])
[ text "My Github is"
, Link.link (Link.external "https://github.com/nganhkhoa") [Attributes.target "_blank"]
[text "nganhkhoa."]
, text "But I also maintain my personal git at"
, Link.link (Link.external "https://git.nganhkhoa.com/nganhkhoa") [Attributes.target "_blank"]
[text "git.nganhkhoa.com."]
]
, text "You can find out more about me in my "
, Link.link (Link.external cvpdf) [Attributes.target "_blank"] [text "CV."]
, br [] []
, text "I often write blogs, most of them are based on my research knowledge."
, text "You can find my blogs "
, Link.link (Link.internal (Route.Blog__Slug_ { slug = "" })) [] [ text "here." ]
, br [] []
, text "I also wrote a series about Mach-O binary format."
, text "You can find it "
, Link.link (Link.internal (Route.Osx__Slug_ { slug = "" })) [] [ text "here." ]
, br [] []
, text "I am a Vietnamese polyglot, fluent in English, conversational in Japanese, beginners in Mandarin and Korean."
, withSpacing (p [])
[ text "\"I use (neo)Vim and Arch, btw\" - probably me."
, text "This site is written using"
, Link.link (Link.external "https://elm-pages.com/") [] [ text "elm-pages." ]
]
, projects
, br [] []
, publications
2023-10-24 05:23:25 +07:00
]
}
cvpdf : String
cvpdf = "cv.pdf"
2023-11-05 22:06:54 +07:00
projects : Html msg
projects =
div []
[ h1 [] [text "My Projects"]
, div []
2023-12-14 22:57:51 +07:00
[ h2 [] [text "(2023) TSShock"]
2023-11-05 22:06:54 +07:00
, withSpacing (p [])
[ text "At Verichains, our team discovered multiple weaknesses in most implementations of Threshold ECDSA Signature Scheme following the works of"
, Link.link (Link.external "https://eprint.iacr.org/2019/114") [] [text "Gennaro and Goldfeder."]
, text "As the result, we presented our findings at "
, Link.link (Link.external "https://www.blackhat.com/us-23/briefings/schedule/#tsshock-breaking-mpc-wallets-and-digital-custodians-for-billion-profit-33343") [] [text "Black Hat USA 2023"]
, text "and"
, Link.link (Link.external "https://conference.hitb.org/hitbsecconf2023hkt/session/tsshock-breaking-mpc-wallets-and-digital-custodians/") [] [text "Hack In The Box Phuket 2023"]
, text "titled \"TSSHOCK: Breaking MPC Wallets and Digital Custodians for $BILLION$ Profit\"."
]
]
, div []
2023-12-14 22:57:51 +07:00
[ h2 [] [text "(2023) Audited Vietnam Citizen Card"]
2023-11-05 22:06:54 +07:00
, withSpacing (p [])
[ text "Performed auditing of the protocol and the chip-based Citizen Card of Vietnam."
, text "Simulation of NFC protocols conforming to ICAO 9303."
, text "Found several vulnerabilities in applications verifying the authenticity of these cards."
, text "Government applications and devices are also audited."
, text "The foundation research for the development of"
, Link.link (Link.external "https://bshield.io/") [] [text "BShield Secure-ID."]
]
]
, div []
2023-12-14 22:57:51 +07:00
[ h2 [] [text "(2019 - 2023) Mach-O binary format analysis and obfuscation"]
2023-11-05 22:06:54 +07:00
, withSpacing (p [])
[ text "Research into Mach-O binary format, which is used in Apple devices."
, text "Proposed obfuscation for the Mach-O binary."
, text "Familiar with tools for pentesting iOS applications."
]
]
, div []
2023-12-14 22:57:51 +07:00
[ h2 [] [text "(2021-2022) LLVM based Obfuscation"]
2023-11-05 22:06:54 +07:00
, withSpacing (p [])
[ text "Build a LLVM based obfuscation compiler."
, text "Extend"
, Link.link (Link.external "https://doi.org/10.1109/SPRO.2015.10")
[] [text "Obfuscator-LLVM"]
, text "with"
, Link.link (Link.external "https://doi.org/10.1007/978-3-540-77535-5_5")
[] [text "Mixed Boolean-Arithmetic"]
, text "as well as many other obfuscation passes."
, text "Fully updated to LLVM 14 with support for both new and legacy pass manager."
, text "A CTF challenge is released obfuscated using our obfuscator in"
, Link.link (Link.external "https://twitter.com/hgarrereyn/status/1477919411977830402")
[] [text "TetCTF 2022"]
]
]
, div []
2023-12-14 22:57:51 +07:00
[ h2 [] [text "(2019-2023) Windows Live Memory Forensics"]
2023-11-05 22:06:54 +07:00
, withSpacing (p [])
[ text "Research into Windows Forensics."
, text "Learned techniques used in Memory Forensics and familiar with tools like Volatility."
, text "Develope a new method for Live Forensics using Memory Forensics without Memory Extraction."
, text "A prototype is implemented, capable of inspecting the kernel global variables, structures,"
, text "and performing"
, Link.link (Link.external "https://doi.org/10.1016/j.diin.2016.01.005")
[] [text "Pool Tag Quick Scanning."]
, text "This prototype is updated in 2023 to also detect injected code in processes for detection of"
, text "DLL Injection, Reflective DLL Injection, Process Hollowing, and similar malware techniques."
]
]
]
publications : Html msg
publications =
div []
[ h1 [] [text "Publications"]
, text "Most of my publications are drafts and not reviewed paper."
, text " "
, text "Because I am not in an academic environment so I do not know how to publish."
, br [] []
, br [] []
, withSpacing (div [])
[ text "New Key Extraction Attackson Threshold ECDSA Implementations."
, text "Duy Hieu Nguyen, Anh Khoa Nguyen, Huu Giap Nguyen, Thanh Nguyen, Anh Quynh Nguyen."
, text "August 2023."
, br [] []
, Link.link (Link.external "https://verichains.io/tsshock") [] [text "[website]"]
, Link.link (Link.external "https://www.verichains.io/tsshock/verichains-tsshock-wp-v1.0.pdf")
[Attributes.target "_blank"]
[text "[whitepaper]"]
, Link.link (Link.external "https://youtu.be/1ks2jcS7UE4") [] [text "[HITB Recordings]"]
]
, br [] []
, withSpacing (div [])
2023-12-14 22:57:51 +07:00
[ text "Obfuscate API calls in Mach-O Binary."
2023-11-05 22:06:54 +07:00
, text "Anh Khoa Nguyen."
, text "Expecting 2024."
, br [] []
, Link.link (Link.external "macho-obfuscation.pdf")
[Attributes.target "_blank"]
2023-12-14 22:57:51 +07:00
[text "[preprint]"]
2023-11-05 22:06:54 +07:00
]
, br [] []
, withSpacing (div [])
2023-12-14 22:57:51 +07:00
[ text "Live Memory Forensics Without RAM Extraction."
2023-11-05 22:06:54 +07:00
, text "Anh Khoa Nguyen, Dung Vo Van Tien."
, text "Expecting 2024."
, br [] []
, Link.link (Link.external "live-memory-forensics.pdf")
[Attributes.target "_blank"]
2023-12-14 22:57:51 +07:00
[text "[preprint]"]
2023-11-05 22:06:54 +07:00
]
, br [] []
, h2 [] [text "Dissertations"]
, withSpacing (p [])
[ text "After I graduated, I often advise undergraduate students on their dissertations."
, text "The list below contains my dissertation and dissertations I advised."
]
, withSpacing (div [])
[ text "Windows Memory Forensics: Finding hidden processes in a running machine."
, br [] []
, text "Author: Anh Khoa Nguyen."
, br [] []
, text "Advisors: An Khuong Nguyen, Le Thanh Nguyen, Quoc Bao Nguyen."
, br [] []
, text "Year: 2020"
, br [] []
, Link.link (Link.external "https://drive.google.com/file/d/1Z_cKtBsi_gm8ugsrnAEPo-Wmx9GAuaSK/view?usp=sharing")
[Attributes.target "_blank"]
[text "[pdf]"]
]
, br [] []
, withSpacing (div [])
[ text "Windows Memory Forensics: Detecting hidden injected code in a process."
, br [] []
, text "Author: Vo Van Tien Dung."
, br [] []
, text "Advisors: An Khuong Nguyen, Anh Khoa Nguyen."
, br [] []
, text "Year: 2023"
, br [] []
, Link.link (Link.external "https://drive.google.com/file/d/1X18tr4OvcNYRoyxzTcsxM_MgjcqVW1sk/view?usp=sharing")
[Attributes.target "_blank"]
[text "[pdf]"]
]
]