▲GN⁺ 2024-04-28 | parent | ★ favorite | on: 서버의 폭력성 선택(cliffle.com)Hacker News 의견 요약하면 다음과 같습니다: REPLY_FAULT가 연쇄적으로 전파되는지 여부와 그로 인한 취약점에 대한 우려가 제기됨 A가 B를 기다리고, B가 C를 기다리는 상황에서 C가 REPLY_FAULT를 하면 A도 함께 종료되는지 확인 필요 만약 그렇다면 전체 시스템이 취약해질 수 있음 SEND가 순환 구조라면 의도치 않게 자기 자신을 종료시킬 수도 있음 REPLY_FAULT는 접근 제어 등 애플리케이션 특화 오류를 정의하고 구현하는 방법을 제공함 이는 시스템이 작고 밀접하며 대부분 시스템 설계자가 애플리케이션을 작성할 때 유용함 그러나 제3자 코드와 연동할 때는 상대방이 언제든 프로세스를 즉시 종료시킬 수 있어 우려됨 세상에는 관리자에게 시달리는 개발자들이 작성한 많은 열악한 드라이버와 백그라운드 프로세스가 존재함 한 팀이 모든 코드를 작성하는 시스템에서는 의심스러운 클라이언트를 제거하는 것이 반복 속도를 높일 수 있음 Hubris는 서버가 클라이언트가 처리할 수 없는 효과를 수행하도록 하는 커널로 볼 수 있음 이는 코드 재사용과 구성을 어렵게 만들지만 실행 모델을 단순화함 정적 임베디드 시스템에서는 올바른 절충안이 될 수 있음 Hubris와 Humility는 깊이 몰두하고 싶은 기술이지만 시간과 의무의 한계로 어려움 HTTP에 대한 만우절 RFC로 "당신이 부끄러워해야 합니다"라는 의미의 HTTP 499 상태 코드를 제안함 이는 "뭐야... 그런데 사실 괜찮네" 같은 맥락에 어울림 아인슈타인의 명언 "가능한 한 단순하게, 그러나 지나치게 단순하지 않게"를 인용하며 Hubris의 설계가 후자를 위반했다고 지적함 실제 세계의 혼란을 전혀 허용하지 않는 운영 환경에는 관심이 없음 Humility는 디버거로서 훌륭한 이름임 많은 프로그래머들이 "좋은" 코드는 디버깅이 필요 없다고 가정하고 디버거 사용을 거부함 Linux에서는 소켓만으로 다른 프로그램을 직접 종료시킬 수는 없지만, root 권한으로 다른 프로세스를 종료시키거나 심지어 재부팅할 수 있음 컨테이너에서는 root 권한이 일반적이라 이런 위험성이 존재함 "받아들일 때는 관대하고 내보낼 때는 엄격하라"는 기존 네트워크 시스템의 지혜와는 다소 상충됨 그러나 API를 변경하면서 기존 프로그램의 호환성을 유지하려면 받아들일 때 관대해야 할 수밖에 없음
Hacker News 의견
요약하면 다음과 같습니다:
REPLY_FAULT가 연쇄적으로 전파되는지 여부와 그로 인한 취약점에 대한 우려가 제기됨
REPLY_FAULT는 접근 제어 등 애플리케이션 특화 오류를 정의하고 구현하는 방법을 제공함
한 팀이 모든 코드를 작성하는 시스템에서는 의심스러운 클라이언트를 제거하는 것이 반복 속도를 높일 수 있음
Hubris는 서버가 클라이언트가 처리할 수 없는 효과를 수행하도록 하는 커널로 볼 수 있음
Hubris와 Humility는 깊이 몰두하고 싶은 기술이지만 시간과 의무의 한계로 어려움
HTTP에 대한 만우절 RFC로 "당신이 부끄러워해야 합니다"라는 의미의 HTTP 499 상태 코드를 제안함
아인슈타인의 명언 "가능한 한 단순하게, 그러나 지나치게 단순하지 않게"를 인용하며 Hubris의 설계가 후자를 위반했다고 지적함
Humility는 디버거로서 훌륭한 이름임
Linux에서는 소켓만으로 다른 프로그램을 직접 종료시킬 수는 없지만, root 권한으로 다른 프로세스를 종료시키거나 심지어 재부팅할 수 있음
"받아들일 때는 관대하고 내보낼 때는 엄격하라"는 기존 네트워크 시스템의 지혜와는 다소 상충됨