Paternity Leave: Month 2

Michael Lynch

아빠 육아휴직: 2개월 차

한 줄 요약

일을 쉬는 게 생각보다 어렵습니다.

하이라이트

  • 일을 쉬는 게 생각보다 어렵다는 걸 깨닫고 있습니다.
  • 수면이 조금씩 나아지고 있습니다.
  • Nix를 활용해 매끄럽고 재사용 가능한 퍼즈 테스팅 워크플로를 만들었습니다.

목표 평가

매달 초에 달성하고 싶은 목표를 정합니다. 이번 달에는 목표를 얼마나 달성했을까요?

가족과 함께 시간 보내기

  • 결과: 아내와 갓 태어난 아들과 많은 시간을 보내고 친구와 가족을 자주 만났습니다.
  • 평가: A

잠시 일을 쉬어도 괜찮습니다

스스로를 항상 일해야 하는 사람이라고 생각한 적은 없는데, 막상 쉬려니 어렵습니다.

지난 세 달 동안 일과 관련해 얼마나 적은 일을 해냈는지 돌아보면 ‘이게 앞으로의 일상이 되면 어떡하지? 한 달에 몇 시간 일해서 생계를 꾸려야 하면 어떡하지?’ 하는 불안이 밀려옵니다.

이런 두려움이 대부분 비합리적이라는 것도 압니다. 수많은 사람들이 아이를 키우면서도 정상적으로 일하며 잘 지냅니다. 게다가 가까이에 육아를 기꺼이 도와주려는 가족도 많이 있습니다.

지난 시간을 어디에 썼는지 돌아보면 일할 시간이 부족하다고 걱정하는 게 더 터무니없게 느껴집니다. 가족, 친구와의 긴 만남과 가족으로서의 즐거운 활동으로 채워졌으니까요.

만약 상황이 “어머나! 수유하고 기저귀 갈고 밀린 잠을 자느라 시간이 하나도 없어!”였다면 모를까, 지금 제 반응은 사실상 “어머나! 어제는 3시간짜리 브런치와 친구들과의 7시간 만남 때문에 블로깅할 시간이 없었어!”에 가깝습니다.

또 한 가지는 평소보다 손님을 맞이하거나 다른 사람을 방문하는 데 훨씬 많은 시간을 쓰고 있다는 점입니다. 그래서 불안감의 일부는 그저 내향적인 사람이 늘어난 사회적 교류에 지쳐서 생긴 것이기도 합니다.

그래서 잠시 일을 쉬어도 괜찮고, 아들이 크면 시간이 더 생길 것이며, 내 시간을 어떻게 쓸지는 여전히 대부분 내가 통제할 수 있다는 사실을 스스로에게 상기시켜야 합니다.

신생아 수면 전략 다듬기

신생아 부모가 수면 이야기를 하는 건 진부하게 느껴집니다. 모든 초보 부모가 수면에 묘하게 집착하는 것처럼 보이니까요. 하지만 숙면이 일상에 미치는 영향이 워낙 크니, 모두가 그 이야기를 하는 것도 이해가 됩니다.

처음에는 아내가 수유를 전담하고 제가 기저귀 교체를 전담했습니다. 곧 밤에는 두 사람 모두 60~90분마다 일어나야 한다는 걸 깨달았고, 그래서 둘 다 제대로 잠을 잘 수 없었습니다.

몇 주가 지나자 교대제로 바꿔 한 명이 수유와 기저귀 교체를 모두 맡는 동안 다른 한 명은 잠을 자도록 했습니다. 저는 오후 9시부터 새벽 2시까지 첫 교대를 맡고, 아내는 새벽 2시 이후 아들이 처음 깨는 시점부터 교대를 이어받습니다. 이 방식은 큰 개선이었습니다. 교대 외 시간에 각자 4~5시간의 끊김 없는 수면을 보장받고, 교대 중에도 몇 시간의 단편적인 수면을 추가로 취할 수 있기 때문입니다.

수면 위생을 철저히 하니 아들이 더 잘 잔다는 것도 알게 되었습니다. 저희는 저녁 식사 후 TV를 한 시간 정도 보며 쉬는 걸 좋아하는데, TV를 보지 않은 날에는 모두, 특히 아들이 더 잘 잤습니다. 또 저는 아들이 자는 동안 거실에서 한두 시간 책을 읽곤 했는데, 불을 켜두면 아기 수면에 방해가 될 수 있다는 글을 읽고는 그 습관을 중단했습니다. 비록 아들과 함께하는 조용한 독서 시간이 그립긴 합니다.

전반적으로 저희 수면 전략은 잘 작동하고 있어 대부분의 날에 피로가 잘 풀린 느낌이 듭니다. 아들의 수면 패턴이 바뀌고 새로운 방법을 알게 되는 대로 계속 조정해 나갈 예정입니다.

Nix는 퍼즈 테스팅에 놀랍도록 좋은 도구입니다

약 10년 전 보안 컨설턴트로 일할 때 저는 퍼즈 테스팅을 활용해 오픈소스 동영상 플레이어인 VLC에서 심각한 취약점을 발견한 적이 있습니다.

지난 10년간 퍼즈 테스팅 관련 도구가 크게 발전해서 최신 기술을 직접 시험해보고 싶었습니다.

Antonio Morales의 2021년 퍼즈 테스팅 튜토리얼 시리즈를 찾았습니다. 이 시리즈는 AFL++를 사용하는데, 이제는 최고의 퍼징 도구는 아닌 것 같지만 일단 시작해 보았습니다. 첫 번째 튜토리얼에서는 오픈소스 PDF 처리 도구인 xpdf를 퍼징하는 방법을 보여줍니다. 저는 단계를 수정해 최신 버전의 xpdf를 대상으로 했고, 새로운 범위 외 메모리 읽기 버그를 발견했는데 무척 흥미로웠습니다.

알고 보니 다른 누군가가 2024년 9월에 동일한 취약점을 발견한 바 있었고, 그 제보는 더 일찍 비공개 이메일로 유지관리자에게 보고된 적이 있어 기각되었습니다. 그분도 저와 같은 튜토리얼을 따라 하다가 발견했을 거라 추측합니다. 제가 그 시리즈를 찾은 지 몇 주 뒤 해당 시리즈가 Hacker News 메인 페이지에 등장했습니다. 어떻게든 사람들이 3년 된 그 튜토리얼을 우연히 발견하고 있는 것 같습니다.

모든 퍼징 튜토리얼에서 특히 눈에 띈 점은 환경 설정 자체가 얼마나 번거로운지였습니다. Morales는 특정 버전의 Ubuntu에서 AFL++를 소스부터 컴파일하라고 안내하지만, 그가 언급한 패키지들이 모두 바뀐 지금 그 지침은 이미 오래되었습니다.

Morales가 언급한 모든 패키지 버전을 일일이 찾는 대신 저는 Nix를 활용할 기회를 발견했습니다. Nix를 사용하면 소스 파일에 도구 버전을 고정해 두고 앞으로도 그 버전이 제 의지와 상관없이 바뀌지 않을 거라는 확신을 가질 수 있습니다.

전체 퍼즈 테스팅 워크플로를 Nix flake로 만들 수 있었고, 이제 nix run만 입력하면 Nix가 초기 코퍼스를 다운로드하고 대상 프로그램을 컴파일한 뒤 퍼징을 시작합니다. 이달 말에 전체 동작 방식을 설명하는 블로그 글을 게시할 계획입니다.

마무리

완료한 일

  • 가족과 시간을 보냈습니다.
  • 가족과 너무 많은 시간을 보내는 건 아닌지 걱정했습니다.

배운 점

  • 일을 너무 오래 쉬는 것에 대한 두려움은 대부분 비합리적입니다.
  • Nix는 퍼즈 테스팅 워크플로를 만들기에 좋은 도구입니다.

다음 달 목표

  • 가족과 시간 보내기.
  • Nix를 활용한 퍼즈 테스팅 튜토리얼 게시하기.

도움 요청

  • AFL++의 현대적인 대안은 무엇인가요? honggfuzz인가요?
    • 정보보안 분야에서 일하신다면 요즘 핫한 퍼즈 테스팅 도구가 무엇인지 알려주세요.

원문은 Michael Lynch님이 에 게재했습니다.

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.