전체 글 76

유심 해킹 사건에서 사용된 악성코드 'BPFDoor' 에 대해서 알아보기 (2) 왜 BPFDoor였는가?

BPF에 대해서 설명한 이전 포스트https://yoons-dev-review.tistory.com/entry/%EC%9C%A0%EC%8B%AC-%ED%95%B4%ED%82%B9-%EC%82%AC%EA%B1%B4%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%EB%90%9C-%EC%95%85%EC%84%B1%EC%BD%94%EB%93%9C-BPFDoor-%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0-1-BPF%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80 유심 해킹 사건에서 사용된 악성코드 'BPFDoor' 에 대해서 알아보기 (1) BPF란 무엇인가?이번 SK텔..

Linux 2025.05.27

유심 해킹 사건에서 사용된 악성코드 'BPFDoor' 에 대해서 알아보기 (1) BPF란 무엇인가?

이번 SK텔레콤(SKT) 유심 해킹 사건에서 사용된 악성코드는 'BPFDoor' 계열로 알려져있다. 기본적으로 네트워크를 공부하거나 업으로 삼고 있는 사람들이라면 BPF (Berkeley Packet Filter) 에 대해서 한 번 쯤은 들어봤을 거라 생각한다. 들어보지 못했더라도 한번 쯤은 봤을 거로 생각한다.그렇기에 관심이 있는 사람들은 BPF와 BPFDoor는 다르다는 것을 알 것이다. ​하지만 직업으로 삼고 있는 사람들이 아니라면 잘 모를 수도 있긴 하다.​또한 이번 사건의 공격방식으로 쓰였던 BPFDoor이라는 백도어 프로그램과 BPF라는 필터 기술이 아예 같은 것이라고 인식하고 있는 사람들도 꽤나 있는 것 같았다. ​우선 BPFDoor와 BPF는 명백히 다르다.​BPFDoor는 Berkeley..

Linux 2025.05.08

리눅스 기록용 ( iptables)

1. iptables 관련 iptables -I INPUT -p tcp -s 출발지IP -d 목적지IP --dport 8443 -i eth2 -j ACCEPT iptables를 사용하여 INPUT 체인에 새 규칙을 추가하는 명령어 1. -I INPUT : 'INPUT' 체인에 새 규칙 삽입한다. ( -I 옵션은 --insert 옵션의 축약형) 2. -p tcp : TCP 프로토콜을 사용하는 패킷에 대해서 이 규칙 적용 3. -s 출발지IP (ex : 192.168.0.1) : 출발지IP주소가 192.168.0.1 인 패킷에 대해서 규칙 적용하겠다. 4. -d 목적지IP(ex : 115.112.102.1) : 목적지IP주소가 115.112.102.1인 패킷에 대해서 규칙을 적용하겠다. 5.--dport 8..

Linux 2023.05.09

#25 <멘탈을 바꿔야 인생이 바뀐다>

저자 : 박세니 출판 : 마인드셋 발매 : 2022.05.03 우리는 누구나 상상을 한다. 그런데 '내가 원하는 것'을 상상하는 사람은 많지 않고, '내가 원하지 않는 것'을 상상하는 사람이 너무나 많다. 책 는 20년간 25,000건의 강연 및 상담 사례로 증명한 성공심리학 코치인 박세니 작가가 집필한 책이다. 우리는 살아감에 있어 멘탈, 즉 정신력이 중요하다는 것을 알고있다. 그렇기에 멘탈을 강하게 하는 방법에 각자 삶에서 터득한 방식으로 살아간다. 그리고 앞으로도 자기가 터득한 방법들로 살아갈 것이다. 그런데 이 멘탈이란 것이 시간이 지남에 있어 강해지기도 하지만 우리네 인생처럼 노후화 되어 간다는 사실을 알게 된 뒤로 올바른 멘탈 등의 관심이 많아졌고 그 때 발견한 책이 바로 이 책이다. 책에서는..

Book review 2023.02.12

왜 hex인코딩에서 unsigned char 로 선언해야할까?

문자열이 주어지고 해당 문자열을 인코딩 하려 할때는 char 배열이나 포인터로 선언해서 문자열을 주고 그것을 인코딩 하면 된다. 하지만 binary data의 경우에는 ascii 값 128 이상의 문자가 들어올 경우가 있다. (더 자세한 번호별 문자 모양은 확장 아스키값을 구글에 쳐서 보면 될 것같다.) 예를 들어 한글, 한문 등등 영어외의 문자들의 경우이다. binary data는 말 그대로 데이터 이기 때문에 문자를 0과 1로만 나타내는 것이고 0과1의 배치 규칙에 따라 영어인지, 숫자인지 를 다시 인지시키는 것이다. 나의 경우 char 문자열 배열로 16진수의 binary data를 주어지고 그것을 인코딩 하려고 할때 나타난 에러였다. char는 1바이트이다 그런데 부호가 있다. 즉 8비트를 전부 ..

4.C 2022.09.25

함수원형에 나오는 restrict는 무엇을 의미할까?

함수의 매뉴얼을 보다보면 매개변수에 restrict으로 선언해놓는 경우가 여럿 보인다. 개발자로 공부를 함에 있어 이런게 궁금하지 않을 수 없어서 찾아본 결과 최적화 이슈를 해결하기 위해 c99에서나온 키워드라는 것을 알았다. 이 키워드는 어셈블리어에서부터 세분화해서 봐야하는 키워드 이다. 그렇지만 쉽게 설명하는것이 쉽게 이해할 수 있을거라 생각해서 정리한 결과는 아래와 같다. 실제로 우리가 소스코드를 작성하고 컴파일을 하면 어떠한 변수를 선언하고 해당 변수에 대해 수정,삭제 등을 하지 않아도 어셈블리단에서 프로세스가 돌때마다 해당 변수를 찾아가서 확인을 한다.(이 변수가 진짜 그대로인지 확인하는역할) 그리고 나서 변경점이 없다는 것을 확인하고 쓰게 한다. 그런데 restrict 키워드를 사용하면 해당 ..

4.C 2022.09.16

Size_t 형은 뭘까?

함수들의 메뉴얼을 보다보면 매개변수의 형식이 size_t 인 경우가 있다. 그래서 size_t라는 형이 있는지 확인이 필요했고, 무엇을 의미하는지, 왜 쓰는지에 대해 알고싶었다. 사진을 보면 size_t 형은 결국 typedef unsigned int 형식이다. 다시말해 unsigned int형을 typedef로 선언한 별칭이다. 근데 그러면 unsigned int로 쓴다는 건 부호가 없는 정수형식이라는 것을 길기때문에 size_t 형식으로 나타낸걸로 생각하면 되나? 아니다. size_t형식은 먼저 int나 unsigned int와 같이 운영체제의 비트에 따라 크기가 달라진다. x86(32비트)운영체제에서는 부호없는 32비트 정수(4byte)가 될 것이고 x64(64비트)운영체제에서는 부호없는 64비트의..

4.C 2022.09.16

strtok_s가 thread safe 한 이유

우선 strtok 함수의 인터페이스와 사용예시는 다음과 같다. #include char *strtok(char *restrict str, const char *restrict delim); //=======함수 예시 #include #include int main(){ char str[] = "Hello World."; char *ptr = strtok(str, " "); while (ptr != NULL){ printf("%s\n", ptr); ptr = strtok(NULL, " "); } } strtok함수는 delim 매개변수로 주어진 구분자들을 str문자열에서 찾아내 해당 구분자 앞까지를 token화시켜 구분한다. 구분자로 지정되어있던 곳을 NULL로 바꾼후 str을 출력하고 다시 str문자열의..

4.C 2022.09.16

C언어 공부

JAVA를 공부하다가 C언어를 공부하려니까 상당히 어려운 부분이 많다. 솔직히 어렵다기 보단 익숙하지 않아 힘든 부분이 많다. JAVA의 String이 C언어는 배열과 포인터를 활용해서 써야한다는것 부터가 조금 빡세다. 그래도 C언어의 매력은 역시 내가 메모리 할당을 직접 할 수 있다는 점과 내가 디버깅하는 동안 메모리 안을 쳐다보면서 실제로 데이터가 어떻게 움직이는지 볼 수 있다는 점인것 같다. 그리고 C언어를 공부하면서 내가 JAVA공부를 하는동안 공부하는 방식이 약간 잘못되었다는 점을 인지중이다. 공부하는방식을 바꾸려고 노력중이나 6개월을 했던 방식을 한번에 바꾸려고 하니까 살짝 어렵다. C언어는 포인터로 시작해 포인터로 끝난다는 말이 있는데 진짜 왜 그런지를 체감중이다. 지금 내가 하고 있는 공부..

3.Github 2022.08.28

github TIL 관련

개발공부를 하고 6개월이 지났다. 기존에는 내가 공부하고 습득했던 지식들을 티스토리 이곳에 적어서 정리했었는데 개발자들이 github를 사용하고 또한 그 곳에 TIL 레파지토리를 만들어서 정리하는 방법이 있다는 것을 알고 요새는 TIL 쪽에다가 정리중이다. github 잔디를 키울 겸 공부한 내용을 복습할 겸 작성 중이다. 앞으로 티스토리에다가는 TIL에서 한번 정제되어진 내용들을 정리해서 올릴 생각이다. 그리고 아마 이 곳은 개발 관련 뉴스 와 독서 등 자기계발 적인 부분을 중점적으로 올릴 예정이다. 관련링크 https://github.com/YoonSeung/TIL

3.Github 2022.08.05