목록분류 전체보기 (115)
뭉크테크

저번 포스팅에 이어 LLM API의 취약점에 관한 이야기를 이어가도록 하겠습니다. 🚨 LLM API의 취약점 체이닝 쉽게 이해하기!많은 기업이 **LLM(대형 언어 모델)**을 API와 연결해서 사용하고 있어요.그런데, 공격자는 LLM을 통해 여러 개의 API를 조작하여 보안 취약점을 연결(체이닝)할 수도 있습니다! 😨👉 이 문서의 핵심 내용은:LLM이 무해해 보이는 API만 사용해도, 이를 조합해서 보안 공격이 가능하다!"취약점 체이닝(Vulnerability Chaining)"을 통해 LLM이 예상치 못한 방식으로 API를 악용할 수 있다!공격자는 LLM이 접근할 수 있는 모든 API를 분석한 후, 기존의 웹 해킹 기법을 적용한다! 🟢 1️⃣ 취약점 체이닝이란? (Vulnerability Ch..

Web LLM Attack 여러 웹 서비스 운영 회사들은 온라인 고객 경험을 개선하기 위해 LLM(Large Language Models)을 기존 서버와 통합하는데 서두르곤한다. 그러나 이는 공격자가 직접 액세스할 수 없는 데이터, API 또는 사용자 정보에 대한 액세스를 활용하는 웹 LLM 공격에 노출될 가능성이 있다. 예를 들어, 다음과 같다. 1️⃣ 공격자가 LLM을 이용해 숨겨진 데이터 찾기 🔍🔹 LLM이 접근할 수 있는 데이터를 알아내는 공격LLM은 다양한 소스(프롬프트, 학습 데이터, API)를 통해 정보를 얻어요.공격자는 이를 악용해 민감한 데이터를 LLM을 통해 알아내려고 함.💡 예시"이 시스템이 어떤 API를 사용하고 있는지 말해줘." "너의 훈련 데이터에 포함된 사용자 정보가 있니..

개요메모리의 오버레이와 스왑 자체가 Virtual Memory System을 이야기하고자 하는 초석이다. 핵심은 바로 다음과 같다.어떤 C언어로 작성된 S/W가 있고 컴파일러는 CPU가 알아들을 수 있게 C언어를 번역하여 기계어로 만들어 주는데 기계어 코드가 프로세스 내의 모듈이 되고 메모리의 OS영역, 공통모듈영역(DLL)을 제외한 사용자 영역에 집어넣어서 실행되는데 이를 연산의 실행이라 한다. 메모리 오버레이 문제는 OS는 옛날에 MS-DOS를 썼는데 이때 시절 OS는 역할이 단순 I/O해주는 거 외에는 별거 없었다. 그러다보니 S/W 개발자가 모든 처리를 직접하는 일이 많았다. 중요한 것은 기계어를 사용자 영역에 로드하여 작동되다가 그 프로그램을 끝내고 다른걸 실행하려고 하면 메모리 용량이 옛날에는..

개요메모리라고 하는것에 대해서 어느 한 단위가 있는데 크기가 1byte가 되는 것이고 이 1byte마다 메모리 주소가 붙는데 이 주소가 64bit 체계이면 64bit system, 32bit체계이면 32bit system이라고 불린다. 근데 이것이 Application 수준에도 적용된다. 절대 주소와 상대 주소 이야기중요한 것은 RAM에는 하드웨어 수준에 부여된 주소체계가 있고 Application Process수준에 부여된 주소체계가 있는데 이 둘이 조금 다르다. 즉 이 둘의 차이가 있다. 이 둘은 가상메모리 체계를 쓰기 때문에 두 영역에서 쓰이는 주소는 일치하지 않는다. 그래서 메모리의 어떤 주소를 애기할때는 2가지 기준으로 간다. 이는 절대주소와 상대주소로 생각해볼 수 있다. 쉽게 생각해서 배열을 ..

개요 옛날에는 512KB 메모리 양을 가진 8088XT라는 PC가 있었는데 이 PC CPU 쿨럭 성능이 10MHz정도 된다.( 5MHz ~ 16MHz)여기서 상식적으로 알아야 할 내용이 뭐냐면 메모리는 총 2분류로 나눠지는데 RAM이라는 1차메모리가 있고 SSD 혹은 HDD라는 2차메모리가 있다. 여기서 메모리 주소 애기가 나오는데 메모리라고 하는 것에 대해서 어느 공간을 일부 잘라서 그 공간에 일련번호를 붙이는데 그 일련번호를 메모리 주소라고 한다. 또한 이 메모리 주소가 붙은 메모리의 일정한 단위 크기는 1byte이다. 즉, 1byte마다 메모리 주소가 붙는다. 그리고 영문자 한 글자를 저장할 수 있는 기억 공간의 최소단위이며, 컴퓨터는 기억 공간을 관리할 때 1Byte 단위로 관리한다. 위 그림을..
1. IPC(Inter-Process Communication) 개념독립적 메모리 공간운영체제(OS)는 각 프로세스가 서로 다른 가상 메모리 공간(VMS)을 사용하도록 보장합니다.임의로 다른 프로세스 메모리에 접근하면 “해킹”에 해당하고, 정상적인 환경에서는 OS가 이를 방지합니다.왜 IPC가 필요한가?프로세스 간에 데이터를 교환하거나 협업이 필요한 경우, OS가 허용하는 “공식적인 통로”를 사용해야 합니다.2. IPC 수단: 메모리 기반 vs 파일 기반2.1 메모리(RAM) 기반 IPC공유 메모리(Shared Memory):여러 프로세스가 동일한 물리 메모리(페이지)를 서로 다른 가상 주소에 매핑받아 사용하는 방식입니다.예: 리눅스의 shmget() / shmat(), Windows의 “Named Sh..

1. CPU 스케줄링 개요스케줄링(Scheduling) 이란, 여러 프로세스(그리고 그 내부의 스레드)에게 CPU라는 한정된 자원을 어떻게 분배할지를 결정하는 일련의 정책과 메커니즘을 의미합니다.흔히 식당 비유를 들면,“프로세스” = 식당에 온 “손님 한 그룹”“스레드” = 그 그룹에 속한 “개인”“OS” = 식당의 “매니저(혹은 종업원)”OS가 손님(프로세스/스레드)에게 CPU라는 자원을 적절히 나눠주는 과정을 스케줄링이라고 볼 수 있습니다. 2. 스케줄링의 세 가지 단계(레벨)고수준(장기) 스케줄링 (Level 1)Job 스케줄링이라고도 함.어떤 프로세스(또는 Job)가 시스템에 들어올 수 있는가, 그리고 얼마나 많은 프로세스(= 식당 정원)를 동시에 활성화할 것인지를 결정합니다.시스템 전체 부하(C..

프로세스와 쓰레드 개념프로세스라 함은 OS 관리 단위이고, 프로그램이 RAM 위에 올라가면 이를 프로세스라 부른다. 그리고 프로세스 내부에 연산할 거리가 있는데, 이를 Thread 라 부른다. 이러한 Thread는 프로세스 하나당 최소 하나 이상으로 이루어져, 쓰레드라는 흐름을 형성한다.프로세스를 코드 덩어리로 본다면, 스레드는 그 코드안에 하나의 함수 단위로 생각해보거나, 그 함수안에 코드 한 줄이나 두 줄로 생각해보면 쉬울것이다. 이때, 쓰레드 흐름이 여러 개가 될 수 있고, 이를 멀티 threding이라 부른다. 자원캄퓨터에서 자원은 CPU를 사용하는 경우와 RAM을 사용하는 경우가 있다. 또한 HDD같은 2차 메모리에서도 사용을 한다. 여기서 RAM + HDD를 Virtual Memory형태로 ..

프로세스 생성과 복사Win32 API vs UNIXcreateProcess()fork(), exec()ExitProcess()exit()waitForSingleObject()wait() 가상메모리 애기를 하면 항상 따라다니는 놈이 process다. process단위로 OS가 접근제어를 하는데 파일이나 여러 자원에 대한 접근제어를 의미한다. 어떤 프로세스에 대해 OS가 접근허가를 하면 그 권한을 쓰레드들은 다 공유하게 된다. 그리고 가상메모리라는 공간은 여러 프로세스가 실행되고 있어도 이 가상 메모리 공간은 독립적인 공간으로서 보장을 받는다. 그리고 그 thred들이 가상 메모리를 사용이 가능하다. 우리가 OS내에서 새로운 프로세스를 생성해야 한다고 보면 새로운 프로세스가 생성이 될때마다 독립적인 가상메..

개요 프로세스 상태는 이전 포스트에서 설명한 상태말고도 중요한 상태가 sleep상태와 suspend상태가 있다. sleep상태와 suspend상태는 둘다 보류상태지만 좀 다른 부분이 존재한다.suspend상태는 OS 혹은 다른 프로세스로부터 강제된 상태를 말하는데즉 의도치 않은 요인으로 그 원인이 swap날때 (가상메모리 상태에서 보류상태나 대기상태가 너무 오래될때)혹은 프로그램이 죽을때 발생하고sleep상태는 자발적으로 된 상태로 우리가 코드로 Thread.sleep(10)을 쓴 상태로 볼 수 있다.중요한 것은 Ready-Queue에서 쓰레드가 sleep이나 suspend를 하면 이 대기열에서 이탈을 하는데예를 들어 sleep(10) 함수를 호출하면 10ms만큼만 쉬는게 아니라 + @만큼 더 쉬는데@:..