보안을 전공하고 관련 직무에 있어서 그런지 항상 새로운 것을 배우는 것은 즐겁다. 끊임없이 개발되는 새로운 언어와 기술들을 보면 배움을 게을리 하는 것은 요즘 시대를 살아가는 것에 대한 예의가 아니지 않을까. 프로젝트로 모바일 애플리케이션 취약점을 조사할 일이 생겨서 이곳 저곳 알아보던 중 하나의 코드로 멀티 플랫폼(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..