라우팅 프로토콜 구성 1) 라우팅 테이블 패킷을 목적지로 라우팅할 때 참조하는 테이블 목적지 주소, Output I/F, Metric 값 2) Message 라우터 간 라우팅을 위해 교환하는 메시지 이웃 도달 메시지, 라우팅 정보 3) Metric 라우팅 테이블 생성 및 업데이트 시 최적의 경로를 결정 경로길이, 홉(Hop) 수, 대역폭, 비용, 신뢰성 라우팅 프로토콜 중 동적 라우팅 - IGP - Link State Vector - OSPF 프로토콜에 대해 알아보고, 실습해본다. OSPF(Open Shortest Path First) 라우터가 목적지 경로를 SPF(Shortest Path First) 알고리즘을 통해 모든 라우팅 테이블에 기록 “소요비용(Cost)”이 가장 작은 경로를 최적의 경로를 선..
[분석환경] Windows 7 Ultimate 64bit [분석도구] PEiD, Stud_PE, BinText, PEView, OllyDbg, IDA Pro 리버싱 실력 향상을 위해 악성코드 분석을 하던 중 랜섬웨어를 분석하게 되어 정리로 남겨둔다. 자동화된 도구의 사용을 최대한 배제하였다.(IDA Hex-Ray 등). 분석에 사용한 바이너리는 교내 사이버보안 연구센터에서 제공받았으며 블로그를 통해 공유하지 않는다. 랜섬웨어(Ransomware) 랜섬웨어는 컴퓨터 시스템을 감염시켜 접근을 제한하고 일종의 몸값을 요구하는 악성 소프트웨어의 한 종류이다. 컴퓨터로의 접근이 제한되기 때문에 제한을 없애려면 해당 악성 프로그램을 개발한 자에게 지불을 강요받게 된다. 위키백과 Petya MBR Locker 랜섬웨..
라이엇 게임즈는 공식 홈페이지에서 롤 api를 통해 게임 정보와 유저 정보를 제공한다. https://developer.riotgames.com/ Riot Developer Portal About the Riot Games API With this site we hope to provide the League of Legends developer community with access to game data in a secure and reliable way. This is just part of our ongoing effort to respond to players' and developers' requests for data and developer.riotgames.com 라이엇 계정이 있다면 개..
보안을 전공하고 관련 직무에 있어서 그런지 항상 새로운 것을 배우는 것은 즐겁다. 끊임없이 개발되는 새로운 언어와 기술들을 보면 배움을 게을리 하는 것은 요즘 시대를 살아가는 것에 대한 예의가 아니지 않을까. 프로젝트로 모바일 애플리케이션 취약점을 조사할 일이 생겨서 이곳 저곳 알아보던 중 하나의 코드로 멀티 플랫폼(Android, iOS)에서 동작 가능한 앱을 만들 수 있는 언어에 관심을 가지게 되었다. 그 중 좋은 인연이 닿아 도서 한 권을 서평할 기회를 얻었고 이에 글을 남깁니다. 소개 이 책은 다트와 플러터의 기초를 모두 다루면서, 비전공자도 이해할 수 있도록 환경 세팅부터 책과 한단계씩 성장할 수 있도록 구성되어 있다. 제목에서 부터 알 수 있듯, 다트언어에 대한 부분과 플러터에 대한 부분으로 ..
1. Abstract 버퍼오버플로우 공격은 1988년 그 취약점이 발견된 이후 가장 심각하고 오래 지속되고 있는 공격 중 하나이다. 공격성공을 최소화 시키기 위해 몇 가지 기법이 개발되어 왔지만 30년이 지난 지금도 문제가 곳곳에서 발생하고 공격자가 시스템에 침입하여 임의 코드를 실행할 수 있도록 계속 허용하고 있다. 이 문서는 레드햇 6.2환경에서의 SUID가 설정된 쉘코드를 이용해서 취약한 프로그램의 버퍼오버플로우를 이용한 사용자 코드 실행 기법, 운영체제의 다양한 방어 기법에 대해 다룬다. setreuid()와 setuid()가 포함된 쉘코드를 생성하고 NOP Sled와 환경변수를 활용한 버퍼오버플로우 공격에 대해 다룬다. 개선된 운영체제(redhat6.2 이후)에서 추가된 메모리 공격 보호 기법에..
IPv4 vs IPv6 등장배경 •현재 사용중인 인터넷 프로토콜인 IPv4(Internet Protocol Version 4)는 광범위한 네트워크의 사용을 예측하지 못하던 시대에 등장 •IPv4 – 이론 상 42억여개의 인터넷 주소 지원 –But, 부족하다. 비교 IPv4 IPv6 주소 체계 32bit 128bit 주소 개수 2^32(약 42억 개) 2^128(약 3.4x10^38 개) 패킷 헤더 가변적 고정적(40 옥텟) 주소 할당 방법 A, B, C, D(멀티캐스트) 클래스 CIDR CIDR 기반 계층적 할당 주소 유형 유니캐스트(unicast) 멀티캐스트(multicast) 브로드캐스트(broadcast) 유니캐스트(link-local address, site-local address, global..
Request Smuggling 불특정 다수의 사용자로부터 받은 HTTP 요청을 프록시와 웹서버가 처리하는 과정에서 사용자가 요청한 HTTP 패킷을 조작할 수 있는 공격이다. 웹서버는 클라이언트의 요청을 직접 처리하는 것이 아니라 메인서버의 과부하를 방지하기 위해 LB나 리버시 프록시 등 중간에서 요청을 처리하여 전달한다. 이 과정에서 HTTP/1.1에서는 여러개의 요청을 연속적으로 전달할 수 있도록 지원하는데 패킷을 받아 처리하는 과정에서 Content-Length, Transfer-Encoding 에 대한 처리를 서로 다르게 하여 패킷의 시작과 끝부분을 다르게 해석하는 문제가 발생한다. CL.CL 여러 Content-Length 헤더가 존재하거나 유효하지 않은 값일 경우 400 상태 코드로 응답해야한..
1. 서론 산술 부호화(Arithmetic Coding)에 대해 설명하고 예제 메시지를 부호, 복호화 방법에 대해 설명한다. 2. 사전 연구 2.1 압축 알고리즘 데이터 압축은 데이터를 더 적은 공간에 효율적으로 전송, 저장하기 위한 기술이다. 데이터를 더 작은 크기로 변환시키는 인코딩과 저장된 데이터를 다시 원래의 형태로 복원시키는 디코딩 과정으로 이루어진다. 디코딩한 데이터의 세부 사항 일부를 잃는 손실 알고리즘과 모두 보존하는 무손실 알고리즘이 있다. 무손실 압축 알고리즘에는 반복 길이 부호화와 허프만 부호화, 산술 부호화 등이 있다. 손실 압축 알고리즘은 인간의 느끼지 못하는 정도의 음성, 화상의 변화를 역이용하여 압축률을 높인다[1]. 2.2 허프만 부호(Huffman Code) 허프만 부호는 ..
안드로이드 설치 파일(APK) 역공학 환경 구성 gomguk.tistory.com/16에서 작성한 앱을 역공학으로 분석해보고 동시에 apk 구조에 대한 학습 다운로드 및 설치 APK Tool(apk → smali) https://ibotpeaches.github.io/Apktool/ java 1.8 버전 이상 필요 java -version apktool -v 설치확인 Dex2Jar(dex → jar) https://sourceforge.net/projects/dex2jar/ brew로도 설치 가능 brew install dex2jar 디컴파일 d2j-dex2jar [apk파일명] JD-GUI (jar → java) http://jd.benow.ca/ 위 방법으로 분석이 안될 때 바이트 코드 뷰어나 Jad..
gomguk.tistory.com/15 에서 작성한 앱에서 기능을 추가한다. 목적 : URI-3 에서 만든 앱에서 JavaScript Interface 등록한 함수를 html에서 호출하도록 변경한다. 패키지 변경 기존에 사용한 flutter 내장 Webview는 JS를 안정적으로 지원하지 않는다고 한다. 그래서 공식 패키지 중 "flutter_inappwebview" https://pub.dev/documentation/flutter_inappwebview/latest/index.html 를 이용한다. 설치 pubspec.yml 에서 flutter_inappwebview: 4.0.0 import 'package:flutter_inappwebview/flutter_inappwebview.dart'; And..